| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package smbprovider; |
| |
| // ErrorType matches 1:1 to FileSystemProvider#ProviderError in Chromium up |
| // until ERROR_PROVIDER_ERROR_COUNT. The ErrorTypes past that are specific to |
| // SmbProvider. |
| enum ErrorType { |
| ERROR_NONE = 0; |
| ERROR_OK = 1; |
| ERROR_FAILED = 2; |
| ERROR_IN_USE = 3; |
| ERROR_EXISTS = 4; |
| ERROR_NOT_FOUND = 5; |
| ERROR_ACCESS_DENIED = 6; |
| ERROR_TOO_MANY_OPENED = 7; |
| ERROR_NO_MEMORY = 8; |
| ERROR_NO_SPACE = 9; |
| ERROR_NOT_A_DIRECTORY = 10; |
| ERROR_INVALID_OPERATION = 11; |
| ERROR_SECURITY = 12; |
| ERROR_ABORT = 13; |
| ERROR_NOT_A_FILE = 14; |
| ERROR_NOT_EMPTY = 15; |
| ERROR_INVALID_URL = 16; |
| ERROR_IO = 17; |
| // Count of ProviderError. |
| ERROR_PROVIDER_ERROR_COUNT = 18; |
| // The following errors are not ProviderErrors, instead they are specific to |
| // SmbProvider. The jump in int value is to account for possible future |
| // additions to ProviderError. |
| ERROR_DBUS_PARSE_FAILED = 50; |
| ERROR_COPY_PENDING = 51; |
| ERROR_COPY_FAILED = 52; |
| ERROR_SMB1_UNSUPPORTED = 53; |
| ERROR_OPERATION_PENDING = 54; |
| ERROR_OPERATION_FAILED = 55; |
| } |
| |
| message DirectoryEntryProto { |
| optional bool is_directory = 1; |
| optional string name = 2; |
| // Size in bytes. |
| optional int64 size = 3; |
| // Seconds since unix epoch. |
| optional int64 last_modified_time = 4; |
| } |
| |
| // DirectoryEntryListProto is included in responses to ReadDirectory D-Bus |
| // method calls. |
| message DirectoryEntryListProto { repeated DirectoryEntryProto entries = 1; } |
| |
| // Used for passing inputs into SmbProvider.Mount(). |
| message MountOptionsProto { |
| // Path of the share to be mounted. (e.g. "smb://qnap/testshare") |
| optional string path = 1; |
| |
| // Authentication parameters. |
| optional string workgroup = 2; |
| optional string username = 3; |
| |
| // Mount options set by the client. |
| optional MountConfigProto mount_config = 4; |
| } |
| |
| message MountConfigProto { |
| // Boolean indication whether or not to enable NTLM protocol. False |
| // disables the NTLM protocol. |
| optional bool enable_ntlm = 1; |
| } |
| |
| // Used for passing inputs into SmbProvider.Unmount(). |
| message UnmountOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| } |
| |
| // Used for passing inputs into SmbProvider.ReadDirectory(). |
| message ReadDirectoryOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // Path of the directory to be read. The paths are relative to the mount root. |
| // (e.g. "/testfolder") |
| optional string directory_path = 2; |
| } |
| |
| // Used for passing inputs into SmbProvider.GetMetadataEntry(). |
| message GetMetadataEntryOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // Path of the entry to be read. This can be a file or directory path. |
| // The paths are relative to the mount root. (e.g. "/testfolder/dog.jpg") |
| optional string entry_path = 2; |
| } |
| |
| // Used for passing inputs into SmbProvider.OpenFile(). |
| message OpenFileOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // Path of the file to be opened. This must be a file path. |
| // Paths are relative to the mount root, e.g. "/animals/dog.jpg". |
| optional string file_path = 2; |
| // Boolean indicating write status. False indicates read only. |
| optional bool writeable = 3; |
| } |
| |
| // Used for passing inputs into SmbProvider.CloseFile(). |
| message CloseFileOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // ID of the file returned from OpenFile(). |
| optional int32 file_id = 2; |
| } |
| |
| // Used for passing inputs into SmbProvider.ReadFile(). |
| message ReadFileOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // ID of the file returned from OpenFile(). |
| optional int32 file_id = 2; |
| // Offset of the file to be read. |
| optional int64 offset = 3; |
| // Length in bytes to be read. |
| optional int32 length = 4; |
| } |
| |
| // Used for passing inputs into SmbProvider.DeleteEntry(). |
| message DeleteEntryOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // Path of the entry to be deleted. This can be a file or directory path. |
| // The paths are relative to the mount root. (e.g. "/testfolder/dog.jpg") |
| optional string entry_path = 2; |
| // Boolean indicating whether the delete should be recursive for directories. |
| optional bool recursive = 3; |
| } |
| |
| // Used for passing inputs into SmbProvider.CreateFile(). |
| message CreateFileOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // Path of the file to be created. Paths are relative to the mount root, |
| // e.g. "/animals/dog.jpg". |
| optional string file_path = 2; |
| } |
| |
| // Used for passing inputs into SmbProvider.Truncate(). |
| message TruncateOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // Path of the file to be truncated. Paths are relative to the mount root, |
| // e.g. "/animals/dog.jpg". |
| optional string file_path = 2; |
| // New desired length of the file. |
| optional int64 length = 3; |
| } |
| |
| // Used for passing inputs into SmbProvider.WriteFile(). |
| message WriteFileOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // ID of the file returned from OpenFile(). |
| optional int32 file_id = 2; |
| // Offset of the file for the write. |
| optional int64 offset = 3; |
| // Length of data being written. |
| optional int32 length = 4; |
| } |
| |
| // Used for passing inputs into SmbProvider.CreateDirectory(). |
| message CreateDirectoryOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // Path of the directory to be created. Paths are relative to the mount root. |
| // (e.g. "/testfolder/dogs") |
| optional string directory_path = 2; |
| // Boolean indicating whether the create should be recursive, meaning the |
| // parent directories will also be created if they currently don't exist. |
| optional bool recursive = 3; |
| } |
| |
| // Used for passing inputs into SmbProvider.MoveEntry(). |
| message MoveEntryOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // Source path of the entry to be moved. This can be a file or directory path. |
| // Paths are relative to the mount root. (e.g. "/testfolder/dog.jpg") |
| optional string source_path = 2; |
| // Destination path for the entry to be moved to. This must be a non-existent |
| // file or directory path. Paths are relative to the mount |
| // root. (e.g. "/testfolder/dog.jpg") |
| optional string target_path = 3; |
| } |
| |
| // Used for passing inputs into SmbProvider.CopyEntry(). |
| message CopyEntryOptionsProto { |
| // ID of the mount returned from Mount(). |
| optional int32 mount_id = 1; |
| // Source path of the entry to be copied. This can be a file or directory |
| // path. Paths are relative to the mount root. (e.g. "/testfolder/dog.jpg") |
| optional string source_path = 2; |
| // Destination path for the entry to be copied to. This must be a non-existent |
| // file or directory path. Paths are relative to the mount root. |
| // (e.g. "/testfolder/dog.jpg") |
| optional string target_path = 3; |
| } |
| |
| message GetDeleteListOptionsProto { |
| optional int32 mount_id = 1; |
| optional string entry_path = 2; |
| } |
| |
| message DeleteListProto { |
| repeated string entries = 1; |
| } |
| |
| // Used for passing inputs into SmbProvider.GetShares(). |
| message GetSharesOptionsProto { |
| // Url of the server containing the shares. (e.g. "smb://192.168.0.1") |
| optional string server_url = 1; |
| } |
| |
| // Used for passing inputs into SmbProvider.Remount(). |
| message RemountOptionsProto { |
| // Path of the share to be remounted. (e.g. "smb://192.168.0.1/testshare") |
| optional string path = 1; |
| // ID to assign to the mount. |
| optional int32 mount_id = 2; |
| |
| // Authentication parameters. |
| optional string workgroup = 3; |
| optional string username = 4; |
| |
| // Mount options set by the client. |
| optional MountConfigProto mount_config = 5; |
| } |
| |
| // Used for returning a list of hostnames from a parsed NetBios response packet. |
| message HostnamesProto { |
| repeated string hostnames = 1; |
| } |
| |
| // Used for passing inputs into Smbprovider.UpdateMountCredentials(). |
| message UpdateMountCredentialsOptionsProto { |
| // Mount ID of the mount to be updated. |
| optional int32 mount_id = 1; |
| // Updated workgroup. |
| optional string workgroup = 2; |
| // Updated username. |
| optional string username = 3; |
| } |
| |
| // Used for passing inputs into Smbprovider.Premount(). |
| message PremountOptionsProto { |
| // Share path URL of the mount. |
| optional string path = 1; |
| |
| // Mount options set by the client. |
| optional MountConfigProto mount_config = 2; |
| } |
| |
| // Used for passing inputs into Smbprovider.UpdateSharePath(). |
| message UpdateSharePathOptionsProto { |
| // Mount ID of the mount to be updated. |
| optional int32 mount_id = 1; |
| |
| // Share path of the mount to be updated. |
| optional string path = 2; |
| } |