// Copyright 2018 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SMBPROVIDER_MOUNT_CONFIG_H_
#define SMBPROVIDER_MOUNT_CONFIG_H_

#include <base/macros.h>

namespace smbprovider {

struct MountConfig {
  explicit MountConfig(bool enable_ntlm) : enable_ntlm(enable_ntlm) {}

  MountConfig(MountConfig&& other) = default;
  MountConfig(const MountConfig&) = delete;
  MountConfig& operator=(const MountConfig&) = delete;

  MountConfig& operator=(MountConfig&& other) = default;

  // If true, NTLM will be the fallback authentication protocol. If false, NTLM
  // fallback is disabled and only kerberos authentication may be used.
  bool enable_ntlm;
};

}  // namespace smbprovider

#endif  // SMBPROVIDER_MOUNT_CONFIG_H_
