This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
A channel type for files offered for transferring. The actual transmission of the data is done by reading or writing a socket, the type of socket (local Unix, IPv4, etc.) when the File channel is created.
The File channel type may be requested for handles of type HANDLE_TYPE_CONTACT.
The direction of the file transfer.
This property should become useless with the new request API.
The state of the file transfer as described by the File_Transfer_State enum.
The file's MIME type. This cannot change once the channel has been created.
This property is mandatory. Protocols which do not have a content-type property with file transfers should set this value to application/octet-stream.
The name of the file on the sender's side. This is therefore given as a suggested filename for the receiver. This cannot change once the channel has been created.
If this property is an empty string, then its value is unspecified.
The size of the file. If this property is set, then the file transfer is guaranteed to be this size. This cannot change once the channel has been created.
If this property is UINT64_MAX, then its value is unspecified.
An estimate of the size of the file. This property should be used when the protocol doesn't allow exact file sizes (For example, accurate to the nearest megabyte). This property should not be set if the Size property can, or has, been set. This cannot change once the channel has been created.
If this property is UINT64_MAX, then its value is unspecified.
MD5 digest of the file as a string of 32 ASCII hex digits, which SHOULD be lower-case if they are letters. This cannot change once the channel has been created.
If this property is an empty string, then its value is unspecified.
Description of the file transfer. This cannot change once the channel has been created.
If this property is an empty string, then its value is unspecified.
A mapping from address types (members of Socket_Address_Type) to arrays of access-control type (members of Socket_Access_Control) that the connection manager supports for sockets with that address type. For simplicity, if a CM supports offering a particular type of file transfer, it is assumed to support accepting it.
A typical value for a host that supports only Unix sockets:
{ Socket_Address_Type_Unix: [Socket_Access_Control_Localhost, Socket_Access_Control_Credentials] Socket_Address_Type_Abstract_Unix: [Socket_Access_Control_Localhost, Socket_Access_Control_Credentials] }
The number of bytes that have been transferred at the time of requesting the property. This will be updated as the file transfer continues.
Path to the UNIX socket in use.
If this is an empty string, its value is undefined.
The connecting process must send a single zero (NUL) byte when it first connects, which is not considered to be part of the data stream. If the operating system uses sendmsg() with SCM_CREDS or SCM_CREDENTIALS to pass credentials over sockets, the connecting process must do so if possible; if not, it must still send the byte.
The listening process will disconnect the connection unless it can determine by OS-specific means that the connecting process has the same user ID as the listening process.
The associated variant must be ignored.