This namespace is for all the classes belonging to the Network Subsystem. More...
Classes | |
class | Connection |
A base class for the state of a connection made between peers. More... | |
class | DefaultNetworkManagerFactory |
A factory responsible for the creation and destruction of the default networkmanager. More... | |
class | FTPCommand |
A command that can be issued to an FTP server. More... | |
class | FTPMessage |
A base class for text based messages exchanged between FTP clients and servers. More... | |
class | FTPResponse |
A response to a command generated by a FTP server. More... | |
struct | HeaderField |
Convenience class for storing Header fields in internet messaging protocols. More... | |
class | HTTPClient |
More... | |
class | HTTPMessage |
A base class for HTTP text parsing classes. More... | |
class | HTTPRequest |
A simple class to facilitate the creation of HTTP requests. More... | |
class | HTTPResponse |
A response to an HTTPRequest generated by an HTTP server. More... | |
class | IPAddress |
This is a simple class for representing IP addresses used throughout the Network subsystem. More... | |
class | IPv4Socket |
A socket class using the IP version 4 protocol. More... | |
class | IPv6Socket |
A socket class using the IP version 6 protocol. More... | |
class | NetworkManager |
This is the central management class for all network I/O operations. More... | |
class | Packet |
A base class for packing information to be transferred over the network. More... | |
class | PlatformSocket |
This is helper class for managing platform specific data of socket implementations. More... | |
class | Socket |
This is a basic socket interface for the transmission and retrieval of packets. More... | |
struct | SocketDescription |
A convenience class storing socket data that can be returned from utility methods and used to create and init new sockets. More... | |
class | SocketHandle |
Used to allow type inference on PlatformSocket constructors. More... | |
class | SocketResultContainer |
A special container class used to store the results from a call to "ResolveDomainName". More... | |
class | SystemAddress |
A simple class that stores a complete set of information for establishing connections. More... | |
class | TCPSocket |
A socket class using the TCP stream protocol. More... | |
class | TCPv4Socket |
A TCP socket that uses IPv4 internet addresses for connections. More... | |
class | TCPv6Socket |
A TCP socket that uses IPv6 internet addresses for connections. More... | |
class | UDPSocket |
A socket class using the User Datagram Protocol. More... | |
class | UDPv4Socket |
A UDP socket that uses IPv4 internet addresses for transmissions. More... | |
class | UDPv6Socket |
A UDP socket that uses IPv6 internet addresses for transmissions. More... | |
class | URI |
A helper class for the reading and using of Uniform Resource Identifiers. More... | |
Enumerations | |
enum | FTPCommandList { FCL_Invalid = 0, FCL_ACCT = 1, FCL_CDUP, FCL_CWD, FCL_HOST, FCL_PASS, FCL_QUIT, FCL_REIN, FCL_SMNT, FCL_USER, FCL_EPRT, FCL_EPSV, FCL_MODE, FCL_PASV, FCL_PORT, FCL_STRU, FCL_TYPE, FCL_APPE, FCL_DELE, FCL_LIST, FCL_NLST, FCL_RETR, FCL_STOR, FCL_STOU, FCL_ABOR, FCL_ALLO, FCL_FEAT, FCL_HELP, FCL_LANG, FCL_MDTM, FCL_MKD, FCL_MLSD, FCL_MLST, FCL_NOOP, FCL_OPTS, FCL_PWD, FCL_REST, FCL_RMD, FCL_RNFR, FCL_RNTO, FCL_SITE, FCL_SIZE, FCL_STAT, FCL_SYST, FCL_ADAT, FCL_AUTH, FCL_CCC, FCL_CONF, FCL_ENC, FCL_MIC, FCL_PBSZ, FCL_PROT, FCL_LPRT, FCL_LPSV, FCL_XCUP, FCL_XCWD, FCL_XMKD, FCL_XPWD, FCL_XRCP, FCL_XRMD, FCL_XRSQ, FCL_XSEM, FCL_XSEN } |
This enum is a listing of the commands that can be issued to an FTP server. More... | |
enum | FTPDataType { FDT_ASCII = 'A', FDT_EBCDIC = 'E', FDT_Binary = 'I', FDT_Local = 'L' } |
This enum is a listing of the available data types to transfer as with FTP. More... | |
enum | FTPResponseCode { FRC_Invalid = 0, FRC_RestartMarkerReply = 110, FRC_ServiceReadySoon = 120, FRC_DataConnectionAlreadyOpen = 125, FRC_DataConnectionOpening = 150, FRC_Ok = 200, FRC_PointlessCommand = 202, FRC_SystemStatus = 211, FRC_DirectoryStatus = 212, FRC_FileStatus = 213, FRC_Help = 214, FRC_SystemType = 215, FRC_ServiceReady = 220, FRC_ServiceClosing = 221, FRC_DataConnectionOpen = 225, FRC_DataConnectionClosing = 226, FRC_EnteringPassive = 227, FRC_EnteringLongPassive = 228, FRC_EnteringExtendedPassive = 229, FRC_UserLoggedIn = 230, FRC_UserLoggedOut = 231, FRC_LogoutAcknowledged = 232, FRC_AuthenticationSuccess = 234, FRC_FileActionComplete = 250, FRC_PathnameCreated = 257, FRC_NeedPassword = 331, FRC_NeedAccount = 332, FRC_FileActionPending = 350, FRC_ServiceUnavailable = 421, FRC_DataConnectionFailed = 425, FRC_ConnectionClosedUnexpectedly = 426, FRC_BadUserOrPass = 430, FRC_HostUnavailable = 434, FRC_FileActionFailed = 450, FRC_LocalError = 451, FRC_InsufficientStorage = 452, FRC_SyntaxError = 501, FRC_BadCommand = 502, FRC_BadCommandSequence = 503, FRC_BadParameter = 504, FRC_NotLoggedIn = 530, FRC_InsufficientPermissions = 532, FRC_FileUnavailable = 550, FRC_PageTypeUnknown = 551, FRC_ExceededAllocation = 552, FRC_NameNotAllowed = 553, FRC_IntegrityReply = 631, FRC_ConfAndIntegReply = 632, FRC_ConfidentialityReply = 633 } |
This enum is a listing of the response codes that can be used in response to FTP commands. More... | |
enum | FTPSecurityLevel { FSL_Clear = 'C', FSL_Safe = 'S', FSL_Confidential = 'E', FSL_Private = 'P' } |
This enum is a listing of the potential security levels that can be used on an FTPS data channel. More... | |
enum | FTPStructureMount { FSM_File = 'F', FSM_Record = 'R', FSM_Page = 'P' } |
This enum is a listing of the available file system structures to be transferred, as recognized by FTP. More... | |
enum | FTPTransferMode { FTM_Stream = 'S', FTM_Block = 'B', FTM_Compressed = 'C' } |
This enum is a listing of the available ways data can be transferred over FTP. More... | |
enum | HighLevelProtocol { HLP_Invalid = 0, HLP_FTP = 1, HLP_FTPS = 2, HLP_HTTP = 4, HLP_HTTPS = 8, HLP_SMTP = 16 } |
This is an enum listing for protocols used and recognized by software. More... | |
enum | HTTPRequestMethod { HRM_Invalid = 0, HRM_GET = 1, HRM_HEAD = 2, HRM_POST = 3, HRM_OPTIONS = 4, HRM_PUT = 5, HRM_DELETE = 6, HRM_TRACE = 7, HRM_CONNECT = 8, HRM_PATCH = 9, HRM_PROPFIND = 10, HRM_PROPPATCH = 11, HRM_MKCOL = 12, HRM_COPY = 13, HRM_MOVE = 14, HRM_LOCK = 15, HRM_UNLOCK = 16 } |
This enum is a listing of commonly supported HTTP request methods. More... | |
enum | HTTPStatusCode { HSC_Invalid = 0, HSC_Continue = 100, HSC_SwitchingProtocols = 101, HSC_Processing = 102, HSC_Ok = 200, HSC_Created = 201, HSC_Accepted = 202, HSC_NonAuthoritativeInfo = 203, HSC_NoContent = 204, HSC_ResetContent = 205, HSC_PartialContent = 206, HSC_MultiStatus = 207, HSC_AlreadyReported = 208, HSC_IMUsed = 226, HSC_MultipleChoices = 300, HSC_MovedPermanently = 301, HSC_Found = 302, HSC_SeeOther = 303, HSC_NotModified = 304, HSC_UseProxy = 305, HSC_SwitchProxy = 306, HSC_TemporaryRedirect = 307, HSC_PermanentRedirect = 308, HSC_BadRequest = 400, HSC_Unauthorized = 401, HSC_PaymentRequired = 402, HSC_Forbidden = 403, HSC_NotFound = 404, HSC_MethodNotAllowed = 405, HSC_NotAcceptable = 406, HSC_ProxyAuthenticationRequired = 407, HSC_RequestTimeout = 408, HSC_Conflict = 409, HSC_Gone = 410, HSC_LengthRequired = 411, HSC_PreconditionFailed = 412, HSC_PayloadTooLarge = 413, HSC_RequestURITooLong = 414, HSC_UnsupportedMediaType = 415, HSC_RequestRangeNotSatisfiable = 416, HSC_ExpectationFailed = 417, HSC_ImATeapot = 418, HSC_AuthenticationTimeout = 419, HSC_MisdirectedRequest = 421, HSC_UnprocessableEntity = 422, HSC_Locked = 423, HSC_FailedDependency = 424, HSC_UpgradeRequired = 426, HSC_PreconditionRequired = 428, HSC_TooManyRequests = 429, HSC_RequestHeaderFieldsTooLarge = 431, HSC_InternalServerError = 500, HSC_NotImplemented = 501, HSC_BadGateway = 502, HSC_ServiceUnavailable = 503, HSC_GatewayTimeout = 504, HSC_HTTPVersionNotSupported = 505, HSC_VariantAlsoNegotiates = 506, HSC_InsufficientStorage = 507, HSC_LoopDetected = 508, HSC_NotExtended = 510, HSC_NetAuthenticationRequired = 511 } |
This enum is a listing of HTTP status codes that can be returned in response to a request. More... | |
enum | IPv4LevelOptions { IPv4Opts_MulticastLoop = IP_MULTICAST_LOOP, IPv4Opts_MulticastTTL = IP_MULTICAST_TTL, IPv4Opts_OptionsHeader = IP_OPTIONS, IPv4Opts_TimeToLive = IP_TTL } |
An enum for the configurable options that exist on the IPv4 protocol level. | |
enum | IPv6LevelOptions { IPv6Opts_MulticastHops = IPV6_MULTICAST_HOPS, IPv6Opts_MulticastLoop = IPV6_MULTICAST_LOOP, IPv6Opts_UnicastHops = IPV6_UNICAST_HOPS, IPv6Opts_V6Only = IPV6_V6ONLY } |
An enum for the configurable options that exist on the IPv6 protocol level. | |
enum | MsgFragValues |
An enum for the easy mapping of the actual values needed to toggle IPv4 fragmentation. | |
enum | NetworkLayerProtocol { NLP_Invalid = 0, NLP_ICMP = 1, NLP_ICMPv6 = 2, NLP_IGMP = 4, NLP_IPv4 = 8, NLP_IPv6 = 16 } |
This is an enum listing for recognized protocols on Layer 3 of the OSI model. More... | |
enum | SocketLevelOptions { SockOpts_Broadcast = SO_BROADCAST, SockOpts_KeepAlive = SO_KEEPALIVE, SockOpts_DebugInfo = SO_DEBUG, SockOpts_DontRoute = SO_DONTROUTE, SockOpts_ReuseAddress = SO_REUSEADDR, SockOpts_RecieveBufSize = SO_RCVBUF, SockOpts_SendBufSize = SO_SNDBUF } |
An enum for the configurable options that exist on the socket level. | |
enum | SocketOptionLevel { Sol_IPv4 = IPPROTO_IP, Sol_IPv6 = IPPROTO_IPV6, Sol_TCP = IPPROTO_TCP, Sol_UDP = IPPROTO_UDP, Sol_Socket = SOL_SOCKET } |
An enum for the different configurable levels of socket options. | |
enum | SocketShutdown { SS_DontReceive = 0, SS_DontSend = 1, SS_DontSendOrReceive = 2 } |
This is a small enum used for socket shutdown parameters. More... | |
enum | TCPLevelOptions { TCPOpts_NoDelay = TCP_NODELAY } |
An enum for the configurable options that exist on the TCP protocol level. | |
enum | TransportLayerProtocol { TLP_Invalid = 0, TLP_SCTP = 1, TLP_TCP = 2, TLP_UDP = 4 } |
This is an enum listing for recognized protocols on Layer 4 of the OSI model. More... | |
enum | UDPLevelOptions |
An enum for the configurable options that exist on the UDP protocol level. | |
enum | WellKnownPorts { WKP_FTPData = 20, WKP_FTPControl = 21, WKP_SSH = 22, WKP_Telnet = 23, WKP_SMTP = 25, WKP_HTTP = 80, WKP_NNTP = 119, WKP_LDAP = 389, WKP_HTTPS = 443, WKP_RTSP = 554, WKP_FTPSData = 989, WKP_FTPSControl = 990, WKP_SIP = 5060, WKP_SIPS = 5061, WKP_XMPP = 5222 } |
A listing of commonly used ports for various frequently used protocols. | |
Functions | |
void | BuildURIPath (String &ToBuild, const StringVector &Segments) |
UInt16 | ConvertHostToNetworkByteOrder (const UInt16 ToConvert) |
Converts a UInt16 from the host byte order to network byte order. More... | |
UInt32 | ConvertHostToNetworkByteOrder (const UInt32 ToConvert) |
Converts a UInt32 from the host byte order to network byte order. More... | |
short int | ConvertLayer3ProtocolType (const NetworkLayerProtocol Protocol) |
Converts from a Mezzanine address protocol type to it's internal counterpart. More... | |
NetworkLayerProtocol | ConvertLayer3ProtocolType (const short int Protocol) |
NetworkLayerProtocol MEZZ_LIB | ConvertLayer3ProtocolType (const int Protocol) |
Converts from an internal address protocol type to it's Mezzanine counterpart. More... | |
int | ConvertLayer4ProtocolType (const TransportLayerProtocol Protocol) |
Converts from a Mezzanine transport protocol type to it's internal counterpart. More... | |
TransportLayerProtocol | ConvertLayer4ProtocolType (const int Protocol) |
Converts from an internal transport protocol type to it's Mezzanine counterpart. More... | |
UInt16 | ConvertNetworkToHostByteOrder (const UInt16 ToConvert) |
Converts a UInt16 from the network byte order to host byte order. More... | |
UInt32 | ConvertNetworkToHostByteOrder (const UInt32 ToConvert) |
Converts a UInt32 from the network byte order to host byte order. More... | |
SocketDescription | ConvertToSocketDescription (const sockaddr_storage &BerkAddr) |
Converts a Berkeley sockets address to a Mezzanine socket descriptor. More... | |
sockaddr_storage | ConvertToSocketStorage (const SystemAddress &MezzAddr) |
Converts a Mezzanine address to a Berkeley sockets address. More... | |
sockaddr_storage | ConvertToSocketStorage (const SocketDescription &MezzAddr) |
Converts a Mezzanine address to a Berkeley sockets address. More... | |
int | ConvertToSocketType (const TransportLayerProtocol Protocol) |
Converts from a Mezzanine transport protocol type to it's internal counterpart. More... | |
TransportLayerProtocol | ConvertToSocketType (const int SockType) |
Converts from an internal transport protocol type to it's Mezzanine counterpart. More... | |
SystemAddress | ConvertToSystemAddress (const sockaddr_storage &BerkAddr) |
Converts a Berkeley sockets address to a Mezzanine address. More... | |
String | MergeURIPaths (const String &Base, const String &Relative) |
Ret | resize (IPv6BinaryLength, 0) |
SocketResultContainer | ResolveDomainName (const String &DomainName, const UInt16 Port=0, const NetworkLayerProtocol NLP=Network::NLP_Invalid, const TransportLayerProtocol TLP=Network::TLP_Invalid) |
Performs a DNS lookup with the provided domain name and service. More... | |
SocketResultContainer | ResolveNumericHost (const IPAddress &Address, const UInt16 Port=0, const TransportLayerProtocol TLP=Network::TLP_Invalid) |
Performs a DNS lookup with the provided domain name and port. More... | |
memset & | v6Test (in6_addr) |
Variables | |
memcpy &[0][0] | Ret |
const Integer | SE_AccessDenied |
Insufficient access permissions to perform specified socket operation. | |
const Integer | SE_AddrInUse |
The address specified for binding is already in use by another socket. | |
const Integer | SE_AddrNotAvail |
The address specified is not valid in the current context. | |
const Integer | SE_AFNotSupported |
The system does not have the specified address family installed or configured. This is mostly interchangable with SE_PFNotSupported. | |
const Integer | SE_AlreadyConnected |
The socket is already connected. Additional connections are not supported. | |
const Integer | SE_AlreadyInProgress |
The socket is non-blocking and an operation is already in progress. | |
const Integer | SE_ConnectionAborted |
The connection was aborted by software on the local host. | |
const Integer | SE_ConnectionDropped |
The connection was dropped. Usually occurs after keep-alive detected a failure while an operation was in progress. | |
const Integer | SE_ConnectionRefused |
The connection was refused. The remote host doesn't like you. Probably because you smell funny. Or slightly more likely no application was running on the specified port. | |
const Integer | SE_ConnectionReset |
The connection was reset/closed by the remote host. This can also occur if keep-alive detected a failure. | |
const Integer | SE_ConnectionTimeout |
The connection timed out. The connect failed because the remote host didn't respond within the timeout peroid. | |
const Integer | SE_DestAddrReq |
Specifying a destination address is required for the erroring operation. This often applies to a socket that isn't connected or has no peer address set in the socket call. | |
const Integer | SE_HostIsDown |
The operation failed because the remote host is down or doesn't exist. | |
const Integer | SE_HostUnreachable |
No route to the specified host could be found. | |
const Integer | SE_Interrupted |
The thread or process running a socket operation was terminated prematurely. | |
const Integer | SE_InvalidAddr |
The address data provided was faulty or invalid. | |
const Integer | SE_InvalidOperation |
The operation requested is not supported for the socket provided. For example "accept" being called on a datagram socket. | |
const Integer | SE_InvalidParam |
An argument/parameter was provided to a socket operation. | |
const Integer | SE_InvalidProtoOpt |
An invalid option level was specified for a call setting or getting a socket option. | |
const Integer | SE_InvalidProtoType |
The specified protocol is of the wrong type for the socket type specified. This error occurs on socket creation. | |
const Integer | SE_IOLimit |
Too many IO handles (Files and sockets share a pool) are open. This may be a global, process, or thread limit depending on platform. | |
const Integer | SE_MessageSize |
The message to be sent through a socket is too large. The buffer provided to be sent on a datagram socket was larger than the internal buffer or another network limit. | |
const Integer | SE_NetworkDown |
The operation encountered a dead network. This could be because of a failure of the network system, the interface, of the local network itself. | |
const Integer | SE_NetworkNotReady |
The OS modules needed for networking are unavailable. | |
const Integer | SE_NetworkUnreachable |
The operation could not find a valid route to the remote host specified. | |
const Integer | SE_NoBufferSpace |
Either the OS lacked sufficient buffer space or the queue was full. | |
const Integer | SE_NonSocket |
Attempting to perform a socket operation on a handle that does not belong to a valid socket. | |
const Integer | SE_NotConnected |
The socket is not connected. Operations requiring a connection cannot be performed. | |
const Integer | SE_NowInProgress |
The socket is non-blocking and the operation cannot be completed immediately, but is now in progress. | |
const Integer | SE_PFNotSupported |
The system does not have the specified protocol family installed or configured. This is mostly interchangable with SE_AFNotSupported. | |
const Integer | SE_ProtoNotSupported |
The system does not have the specified protocol installed or configured. | |
const Integer | SE_SocketNotSupported |
Either the specified socket type does not exist or support for the specified socket type with the specified address family does not exist on the system. | |
const Integer | SE_SocketShutdown |
The socket has already been shut down and operations cannot be performed on it. | |
const Integer | SE_Uninitialized |
The OS modules for networking haven't been started. | |
const Integer | SE_Unknown = -1 |
An unknown error occured. This is for when our errors error. | |
const Integer | SE_WouldBlock |
A resource is temporarily unavailable. This can be returned from operations on non-blocking sockets that cannot be completed immediately. | |
in6_addr | v6Test |
This namespace is for all the classes belonging to the Network Subsystem.
Our Network subsystem is based a wrapper/extension on top of berkely sockets on Unix systems, and winsock on windows systems.
This enum is a listing of the commands that can be issued to an FTP server.
This is a complete listing of the commands listed for the FTP standard in RFCs 959, 1639, 2228, 2389, 2428, 2640, 7151, and
Enumerator | |
---|---|
FCL_Invalid |
Not an actual command. Used for error conditions. |
FCL_ACCT |
Account. Identifies the users account. While similar sounding to the USER command, some servers differentiate the two when determining access. |
FCL_CDUP |
Change to Parent Directory. Changes the directory for file/folder operations to the parent of the current directory. |
FCL_CWD |
Change Working Directory. Changes the current directory for file/folder operations. |
FCL_HOST |
Host. Similar to HTTP Host header, allows an FTP client to provide an FTP URI Authority to specify a sub-server(virtual machine, for example) to be directed to. |
FCL_PASS |
Password. The users password for authentication. |
FCL_QUIT |
Logout. Logs out of the FTP server and closes all connections. Pending transfers are allowed to finish and be responded to first. |
FCL_REIN |
Reinitialize. Sets the connection back to a starting state. User is logged out but the command connection is preserved. |
FCL_SMNT |
Structure Mount. Allows the user to mount a file system data structure without requiring the connection to be restarted. See FTPStructureMount enum. |
FCL_USER |
User Name. The user name to be used for authentication to the FTP server. In most cases the user name provided can/will be "anonymous". |
FCL_EPRT |
Extended Port. This is similar to LPRT, but with friendlier syntax. Takes a "|" delimited String starting with 1(IPv4) or 2(IPv6), then the printable address, then the printable port number. |
FCL_EPSV |
Extended Passive. This is similar to LPSV, but with friendlier syntax. The format is identical to the EPRT command. |
FCL_MODE |
Transfer Mode. Sets how the data will be transferred from the source to destination. See FTPTransferMode enum. |
FCL_PASV |
Passive. Requests the server go into passive mode for the connection. Going into passive mode tells the server to expect an incoming connection from the client, instead of creating one itself. Format is expressed the same way as the PORT command. |
FCL_PORT |
Data Port. Specifies the IP/Port on which to establish the data connection. Expressed in 6 comma separated sections of values 0-255. First four are IP address, last two are the port bits. |
FCL_STRU |
File Structure. Specifies the structure being transferred. Will almost never need to be used as the default is for files. Can also be set to Record or Page structure. See FTPStructureMount enum. |
FCL_TYPE |
Data Type. Sets the type of data requested the file be in for downloads or the type of data that the file being uploaded is in, depending on the operation. See FTPDataType enum. |
FCL_APPE |
Append. Appends the contents of the transfer to an existing file at the destination. If the file does not exist it will be created. |
FCL_DELE |
Delete. Deletes the file specified in the argument. |
FCL_LIST |
List. Gets information on the current directory. Either files or directories other than the current one may be specified, in which case it will return information on the specified file/directory. Format is undefined. |
FCL_NLST |
Name List. Same as the LIST command, but only specifying names so as to make it easier to parse for machine parsing. |
FCL_RETR |
Retrieve. Downloads a file from the server, expecting a filename at the source as the argument. |
FCL_STOR |
Store. Uploads a file to the server, expecting a filename to be given to the file at the destination as the argument. |
FCL_STOU |
Store Unique. This is the same as STOR (Store), but forces the name of the file at the destination to be unique. |
FCL_ABOR |
Abort. Aborts the currently active file transfer. |
FCL_ALLO |
Allocate. Requests the server allocate space for a file in advance. Many servers don't require this. Expects a decimal number expressing the size to allocate as the argument. |
FCL_FEAT |
Features. Requests a listing of the available features/extensions on the server. No argument needed. Format defined in RFC 2389. |
FCL_HELP |
Help. Another command may be specified as an argument to get details on it's implementation status on the server. If no argument is specified then it should return a listing of supported commands. |
FCL_LANG |
Language. Requests the server change it's response message language to a different language. Use the FEAT command to determine supported languages. |
FCL_MDTM |
Modification Time. Gets the time a file was last modified. Argument should be a file name. The format for the time returned in the response is "YYYYMMDDHHMMSS" with an optional dot separated fraction of a second. |
FCL_MKD |
Make Directory. Creates a new directory on the server with the name provided in the argument. |
FCL_MLSD |
Machine List Directory. Gets a machine friendly listing of all the files in the specified directory. If no directory is specified the current directory is used. The format is defined in RFC 3659, section 7.2. |
FCL_MLST |
Machine List. Gets a machine friendly listing of information on the specified file. The format is defined in RFC 3659, section 7.2. |
FCL_NOOP |
No Operation. This command does nothing and asks the server to do nothing but send a basic response. Used to keep connections alive and not timeout. |
FCL_OPTS |
Options. Enables command specific options for the next command issued. Argument must be the command name followed by the options to be applied, separated by a space. |
FCL_PWD |
Print Working Directory. Requests the pathname of the current directory for FTP operations. |
FCL_REST |
Restart. The point where the file transfer is to begin. For files, the argument should an integer representing the byte position where the transfer should start. |
FCL_RMD |
Remove Directory. Deletes the directory (and all files under it) specified in the argument from the server. |
FCL_RNFR |
Rename From. The pathname of the file to be renamed. This simple selects the file the operation is to be performed on. Must be followed by a RNTO command. |
FCL_RNTO |
Rename To. The new pathname of the file being renamed. This command must be preceded by a RNFR command to select which file should be renamed. |
FCL_SITE |
Site. Executes a command that is not in the standard specific to the connected server. The argument is the command to be executed. |
FCL_SIZE |
File Size. Gets the size of a specified file. Argument is a file and the response will contain the size in bytes it would be if it were transferred. The actual value can change based on the TYPE setting. |
FCL_STAT |
Status. Requests the current status of the FTP server or the current executing FTP operation on the server. If a file is specified as an argument then it can act like LIST. |
FCL_SYST |
System. Requests an identifier for the type of system the server is operating on as well as the default transfer mode used by the server. |
FCL_ADAT |
Authentication/Security Data. A String of Base64 encoded data necessary to complete the authentication/verify the user. |
FCL_AUTH |
Authentication/Security Mechanism. Declares the desired means of protection on the FTP connection(s), such as "TLS" or "SSL". |
FCL_CCC |
Clear Command Channel. Clears the command stream of protected status, reverting to plain-text transmissions. Useful if AUTH is used just to verify identity. |
FCL_CONF |
Confidentiality Protected Command. Generic command for allowing the configuration of confidentiality settings on the specified security mechanism. Not used with SSL/TLS. |
FCL_ENC |
Privacy Protected Command. Generic command for allowing the configuration of privacy settings on the specified security mechanism. Not used with SSL/TLS. |
FCL_MIC |
Integrity Protected Command. Generic command for allowing the configuration of integrity settings on the specified security mechanism. Not used with SSL/TLS. |
FCL_PBSZ |
Protection BufferSize. Sets the maximum size (in bytes, max of 32-bit UInt) of the encoded blocks to be sent over the command channel. Must occur after an AUTH command and before a PROT command. |
FCL_PROT |
Data Channel Protection Level. Sets the security to be used on the data channel. See FTPSecurityLevel enum. |
FCL_LPRT |
Long Port. Obsolete command. Similar to the PORT command, but permits larger addresses. The format is comma separated bytes. Starts with an address family, then address size followed by address bytes, then port size followed by port bytes. |
FCL_LPSV |
Long Passive. Obsolete command. Similar to the PASV command, but permits larger addresses. Format is identical to the LPRT command. |
FCL_XCUP |
Change to Parent Directory. Obsolete command, but can be used an an alias for CDUP to provide backwards compatibility. |
FCL_XCWD |
Change Working Directory. Obsolete command, but can be used an an alias for CWD to provide backwards compatibility. |
FCL_XMKD |
Make Directory. Obsolete command, but can be used an an alias for MKD to provide backwards compatibility. |
FCL_XPWD |
Print Working Directory. Obsolete command, but can be used an an alias for PWD to provide backwards compatibility. |
FCL_XRCP |
Unknown Meaning. Obsolete command, do not use. Listed here for error detection server side. Use of this command is always an error. |
FCL_XRMD |
Remove Directory. Obsolete command, but can be used an an alias for RMD to provide backwards compatibility. |
FCL_XRSQ |
Unknown Meaning. Obsolete command, do not use. Listed here for error detection server side. Use of this command is always an error. |
FCL_XSEM |
Send to Mail. Obsolete command, do not use. Listed here for error detection server side. Use of this command is always an error. |
FCL_XSEN |
Send to Terminal. Obsolete command, do not use. Listed here for error detection server side. Use of this command is always an error. |
Definition at line 68 of file networkenumerations.h.
This enum is a listing of the available data types to transfer as with FTP.
Definition at line 142 of file networkenumerations.h.
This enum is a listing of the response codes that can be used in response to FTP commands.
Enumerator | |
---|---|
FRC_Invalid |
Not an actual return code, used in error conditions. |
FRC_RestartMarkerReply |
Restart marker reply. |
FRC_ServiceReadySoon |
Service ready in nnn minutes. |
FRC_DataConnectionAlreadyOpen |
Data connection already open; transfer starting. |
FRC_DataConnectionOpening |
File status okay; about to open data connection. |
FRC_Ok |
Command acknowledged and completed. |
FRC_PointlessCommand |
Command not implemented, superfluous at this site. |
FRC_SystemStatus |
System status, or system help reply. |
FRC_DirectoryStatus |
Directory status. |
FRC_FileStatus |
File status. |
FRC_Help |
Help message.On how to use the server or the meaning of a particular non-standard command. |
FRC_SystemType |
Name of system type. |
FRC_ServiceReady |
Service ready for new user. |
FRC_ServiceClosing |
Service closing control connection. |
FRC_DataConnectionOpen |
Data connection open; no transfer in progress. |
FRC_DataConnectionClosing |
Closing data connection. Requested file action successful (for example, file transfer or file abort). |
FRC_EnteringPassive |
Entering Passive Mode. |
FRC_EnteringLongPassive |
Entering Long Passive Mode. |
FRC_EnteringExtendedPassive |
Entering Extended Passive Mode. |
FRC_UserLoggedIn |
User logged in, proceed. |
FRC_UserLoggedOut |
User logged out; service terminated. |
FRC_LogoutAcknowledged |
Logout command noted, will complete when transfer done. |
FRC_AuthenticationSuccess |
Specifies that the server accepts the authentication mechanism specified by the client, and the exchange of security data is complete. |
FRC_FileActionComplete |
Requested file action okay, completed. |
FRC_PathnameCreated |
The file or directory was successfully created. |
FRC_NeedPassword |
User name okay, need password. |
FRC_NeedAccount |
Need account for login. |
FRC_FileActionPending |
Requested file action pending further information. |
FRC_ServiceUnavailable |
Service not available, closing control connection. |
FRC_DataConnectionFailed |
Can't open data connection. |
FRC_ConnectionClosedUnexpectedly |
Connection closed; transfer aborted. |
FRC_BadUserOrPass |
Invalid username or password. |
FRC_HostUnavailable |
Requested host unavailable. |
FRC_FileActionFailed |
Requested file action not taken. |
FRC_LocalError |
Requested action aborted. Local error in processing. |
FRC_InsufficientStorage |
Requested action not taken due to lack of storage space. |
FRC_SyntaxError |
Syntax error in parameters or arguments. |
FRC_BadCommand |
Command not implemented. |
FRC_BadCommandSequence |
Bad sequence of commands. A command is issued without a prerequisite command being completed can cause this. |
FRC_BadParameter |
Command not implemented for that parameter. |
FRC_NotLoggedIn |
Not logged in. |
FRC_InsufficientPermissions |
Need account for storing files. |
FRC_FileUnavailable |
Requested action not taken. File unavailable. |
FRC_PageTypeUnknown |
Requested action aborted. Page type unknown. |
FRC_ExceededAllocation |
Requested file action aborted. Exceeded storage allocation (for current directory or dataset). |
FRC_NameNotAllowed |
Requested action not taken. File name not allowed. |
FRC_IntegrityReply |
Integrity protected reply. |
FRC_ConfAndIntegReply |
Confidentiality and integrity protected reply. |
FRC_ConfidentialityReply |
Confidentiality protected reply. |
Definition at line 151 of file networkenumerations.h.
This enum is a listing of the potential security levels that can be used on an FTPS data channel.
Definition at line 211 of file networkenumerations.h.
This enum is a listing of the available file system structures to be transferred, as recognized by FTP.
I'll level with you here...even after some research I'm not sure what exactly the Record and Page values are for. I mean...I could guess, but I'd rather document my ignorance than a guess. In almost all cases (and I say "almost" strictly because once I say 100% that one case will slap me in the face) File is the only setting you'll use. This enum exists for completions sake. I cannot, and will not, be stopped.
Enumerator | |
---|---|
FSM_File |
Configure the FTP server for file transfer. This is the default setting. |
FSM_Record |
See detailed description. |
FSM_Page |
See detailed description. |
Definition at line 224 of file networkenumerations.h.
This enum is a listing of the available ways data can be transferred over FTP.
Enumerator | |
---|---|
FTM_Stream |
Stream the file from the source. This is the default mode. |
FTM_Block |
Send the file over in pre-sized blocks. |
FTM_Compressed |
Compress the file and then stream it from the source. |
Definition at line 232 of file networkenumerations.h.
This is an enum listing for protocols used and recognized by software.
Definition at line 49 of file networkenumerations.h.
This enum is a listing of commonly supported HTTP request methods.
GET and HEAD are expected to be implemented by all HTTP servers, and generally can be used without much issue. OPTIONS is also expected to be available but is a little less often. Other requests may or may not be available. OPTIONS can be used to see what is available on a given server, or you can just make a request and see if it returns "HSC_BadRequest" or "HSC_NotImplemented".
Enumerator | |
---|---|
HRM_Invalid |
Use for error conditions, not an actual request method. |
HRM_GET |
Requests a representation of the specified resource. |
HRM_HEAD |
Similar to GET, but only requests the header without the body. |
HRM_POST |
Requests the server accept enclosed data as a new subordinate of the specified resource/URI. Such as a blog or forum post. |
HRM_OPTIONS |
Retrieves a list of the supported HTTP methods on the server. |
HRM_PUT |
Places or replaces a supplied resource at the specified URI. |
HRM_DELETE |
Deletes the specified resource. |
HRM_TRACE |
Requests a list of changes or additions done by other sessions. |
HRM_CONNECT |
Converts the request connection to a tunnel, useful for sending traffic through a proxy. |
HRM_PATCH |
Applies partial modifications to a resource. |
HRM_PROPFIND |
Retrieves a property, stored as XML, from a resource. Can alternatively be overloaded to retrieve the directory hierarchy of a remote system. |
HRM_PROPPATCH |
Can change and/or delete multiple properties of a resource in a single atomic act. |
HRM_MKCOL |
Can be used to create a new directory. "COL" is short for Collection, which is the term commonly used for directories in this context. |
HRM_COPY |
Copies a resource from one URI to another. |
HRM_MOVE |
Moves a resource from one URI to another. |
HRM_LOCK |
Locks a resource to prevent alterations being made to it by another session. This is similar in function to mutexes. |
HRM_UNLOCK |
Unlocks a resource, freeing it for other purposes. |
Definition at line 243 of file networkenumerations.h.
This enum is a listing of HTTP status codes that can be returned in response to a request.
Enumerator | |
---|---|
HSC_Invalid |
Used for internal error conditions, not an actual status code. |
HSC_Continue |
Available in HTTP 1.1. Server has received the request header and client should sent the request body. |
HSC_SwitchingProtocols |
Available in HTTP 1.1. Server is acknowledging the requesters desire to switch protocols and is doing so. |
HSC_Processing |
Available in WebDAV/RFC 2518. Server acknowledges the request, but it will take some time. |
HSC_Ok |
Available in HTTP 1.0. Standard successful response to a request. |
HSC_Created |
Available in HTTP 1.0. The request to create a resource was successful. |
HSC_Accepted |
Available in HTTP 1.0. The request was successful, but will take time to process. |
HSC_NonAuthoritativeInfo |
Available in HTTP 1.1. The request was successful, but the returned result may be from another source/server. |
HSC_NoContent |
Available in HTTP 1.0. The request was successful, but there is no content to be returned by it. |
HSC_ResetContent |
Available in HTTP 1.0. Similar to MSC_NoContent, but additionally the server is requiring the requester reset the document view. |
HSC_PartialContent |
Available in RFC 7233. The request was successful, but only part of the content is being delivered due to a range header sent by the client. |
HSC_MultiStatus |
Available in WebDAV/RFC 4918. A WebDAV response that means there are multiple statuses to be reported due to multiple sub-requests being sent by the client. |
HSC_AlreadyReported |
Available in WebDAV/RFC 5842. A WebDAV response that means members of a DAV binding have already been reported in a previous reply (to the same request) and won't be reported again. |
HSC_IMUsed |
Available in RFC 3229. The request was successful, and the response is a representation of the result of one or more instance manipulations applied to the current instance. |
HSC_MultipleChoices |
Available in HTTP 1.0. Indicates multiple options for the resource that the client may follow. |
HSC_MovedPermanently |
Available in HTTP 1.0. The resource has been moved and following requests should be directed to following URI. |
HSC_Found |
Available in HTTP 1.0. This code is a mess. Implementations often used it similarly to HSC_SeeOther, despite the standard saying otherwise. The standard meant for this to be a temporary redirect. |
HSC_SeeOther |
Available in HTTP 1.1. The response to the request can be found under another URI using the GET HTTP method. |
HSC_NotModified |
Available in RFC 7232. The requested resource has not been modified since the client last downloaded a copy. |
HSC_UseProxy |
Available in HTTP 1.1. The requested resource is only available through the specified proxy. |
HSC_SwitchProxy |
Available in HTTP 1.0, deprecated. The request should be repeated through the provided proxy. |
HSC_TemporaryRedirect |
Available in HTTP 1.1. The request should be repeated with the provided URI, but future calls may use the original URI. |
HSC_PermanentRedirect |
Available in RFC 7538. The request, and all future requests, should be repeated with the provided URI. |
HSC_BadRequest |
Available in HTTP 1.0. The request couldn't be fulfilled because of an error with the request that is believed to be client-side. |
HSC_Unauthorized |
Available in RFC 7235. Authentication is required to access the resource. Sometimes a challenge (for authentication) will be provided along with this response. |
HSC_PaymentRequired |
Available in HTTP 1.0. Mostly unused, intended to express that a micropayment is necessary to access the requested resource. |
HSC_Forbidden |
Available in HTTP 1.0. The request was received but the server refuses to respond to it. Similar to HSC_Unauthorized, but authenticating will do nothing. |
HSC_NotFound |
Available in HTTP 1.0. The requested resource does not exist, but may be available in the future. |
HSC_MethodNotAllowed |
Available in HTTP 1.0. The request method used was made on a resource that doesn't support that method. |
HSC_NotAcceptable |
Available in HTTP 1.0. The requested resource can only generate content that was specified as not acceptable according to the Accept headers specified in the request. |
HSC_ProxyAuthenticationRequired |
Available in RFC 7235. The requesting client must authenticate itself with a proxy. |
HSC_RequestTimeout |
Available in HTTP 1.0. The server timed out while waiting for the clients request. |
HSC_Conflict |
Available in HTTP 1.0. The server detected a conflict in the clients request. |
HSC_Gone |
Available in HTTP 1.0. The requested resource does not exist, and will not be available in the future. |
HSC_LengthRequired |
Available in HTTP 1.0. The requested resource requires the request specify it's length, which it requires. |
HSC_PreconditionFailed |
Available in RFC 7232. The server does not meet one of the preconditions specified in the request. |
HSC_PayloadTooLarge |
Available in RFC 7231. The request is too large for the server to be able or willing to process. |
HSC_RequestURITooLong |
Available in HTTP 1.0. The URI specified in the request was too long for the server to be able or willing to process. |
HSC_UnsupportedMediaType |
Available in HTTP 1.0. The media type specified in the request is a type that the server does not support. |
HSC_RequestRangeNotSatisfiable |
Available in RFC 7233. The request has asked for a portion of a resource, which the server cannot provide. |
HSC_ExpectationFailed |
Available in HTTP 1.0. The server cannot meet the requirements set by the "Expect" request header. |
HSC_ImATeapot |
Available in RFC 2324. A joke status code, not intended for any real-world use. |
HSC_AuthenticationTimeout |
Source of definition unknown. The authentication that was used for a session has timed out, preventing the request from being processed. |
HSC_MisdirectedRequest |
Available in HTTP 2.0. The request was directed at a server that is not able to produce a response. |
HSC_UnprocessableEntity |
Available in WebDAV/RFC 4918. The request is well formed, but contains semantic errors preventing it from being processed. |
HSC_Locked |
Available in WebDAV/RFC 4918. The requested resource is currently locked. |
HSC_FailedDependency |
Available in WebDAV/RFC 4918. The request failed because of a previous request failure. |
HSC_UpgradeRequired |
Available in HTTP 1.0. The server wants the client to change to the protocol specified in the response. |
HSC_PreconditionRequired |
Available in RFC 6585. The server requires a request to a resource to be conditional, in order to avoid conflicts. |
HSC_TooManyRequests |
Available in RFC 6585. The client has sent too many requests recently to process the current request. |
HSC_RequestHeaderFieldsTooLarge |
Available in RFC 6585. The server will not process the request because one or more of the header fields are too large. |
HSC_InternalServerError |
Available in HTTP 1.0. Generic error message for when something goes wrong but the cause is unknown or no suitable error code for it exists. |
HSC_NotImplemented |
Available in HTTP 1.0. The request method is not supported or the server otherwise lacks the ability to process the request. |
HSC_BadGateway |
Available in HTTP 1.0. The server is currently acting as a proxy or gateway, and received an invalid response from the upstream server. |
HSC_ServiceUnavailable |
Available in HTTP 1.0. The server is temporarily down. |
HSC_GatewayTimeout |
Available in HTTP 1.0. The server is currently acting as a proxy or gateway, and didn't receive a timely response from the upstream server. |
HSC_HTTPVersionNotSupported |
Available in HTTP 1.0. The server does not support the version of HTTP used in the request. |
HSC_VariantAlsoNegotiates |
Available in RFC 2295. A transparent content negotiation for the request would result in a circular reference. |
HSC_InsufficientStorage |
Available in WebDAV/RFC 4918. The server does not have enough space to store the representation for the request from the client. |
HSC_LoopDetected |
Available in WebDAV/RFC 5842. An infinite loop was detected while processing a request. |
HSC_NotExtended |
Available in RFC 2774. Further extensions are required by this server to fulfill the request. |
HSC_NetAuthenticationRequired |
Available in RFC 6585. The client needs to authenticate in order to the connected network. Intended to be used by proxies. |
Definition at line 269 of file networkenumerations.h.
This is an enum listing for recognized protocols on Layer 3 of the OSI model.
Definition at line 341 of file networkenumerations.h.
This is a small enum used for socket shutdown parameters.
Enumerator | |
---|---|
SS_DontReceive |
Socket will discard any data received. |
SS_DontSend |
Socket will not send any data, regardless of calls to send. |
SS_DontSendOrReceive |
Both "SS_DontReceive" and "SS_DontSend". |
Definition at line 352 of file networkenumerations.h.
This is an enum listing for recognized protocols on Layer 4 of the OSI model.
Enumerator | |
---|---|
TLP_Invalid |
Used for error conditions. |
TLP_SCTP |
Stream Control Transmission Protocol. |
TLP_TCP |
Transmission Control Protocol. |
TLP_UDP |
User Datagram Protocol. |
Definition at line 360 of file networkenumerations.h.
Converts a UInt16 from the host byte order to network byte order.
ToConvert | The integer to be converted. |
Definition at line 54 of file networkutilities.cpp.
Converts a UInt32 from the host byte order to network byte order.
ToConvert | The integer to be converted. |
Definition at line 57 of file networkutilities.cpp.
short int MEZZ_LIB Mezzanine::Network::ConvertLayer3ProtocolType | ( | const NetworkLayerProtocol | Protocol | ) |
Converts from a Mezzanine address protocol type to it's internal counterpart.
Protocol | The Mezzanine protocol type to be converted. |
Definition at line 56 of file platformsocket.cpp.
NetworkLayerProtocol MEZZ_LIB Mezzanine::Network::ConvertLayer3ProtocolType | ( | const int | Protocol | ) |
int MEZZ_LIB Mezzanine::Network::ConvertLayer4ProtocolType | ( | const TransportLayerProtocol | Protocol | ) |
Converts from a Mezzanine transport protocol type to it's internal counterpart.
Protocol | The Mezzanine protocol type to be converted. |
Definition at line 76 of file platformsocket.cpp.
TransportLayerProtocol MEZZ_LIB Mezzanine::Network::ConvertLayer4ProtocolType | ( | const int | Protocol | ) |
Converts from an internal transport protocol type to it's Mezzanine counterpart.
Protocol | The internal protocol type to be converted. |
Definition at line 86 of file platformsocket.cpp.
Converts a UInt16 from the network byte order to host byte order.
ToConvert | The integer to be converted. |
Definition at line 60 of file networkutilities.cpp.
Converts a UInt32 from the network byte order to host byte order.
ToConvert | The integer to be converted. |
Definition at line 63 of file networkutilities.cpp.
SocketDescription MEZZ_LIB Mezzanine::Network::ConvertToSocketDescription | ( | const sockaddr_storage & | BerkAddr | ) |
Converts a Berkeley sockets address to a Mezzanine socket descriptor.
BerkAddr | The Berkeley Sockets sockaddr structure to be converted. |
Definition at line 183 of file platformsocket.cpp.
sockaddr_storage MEZZ_LIB Mezzanine::Network::ConvertToSocketStorage | ( | const SystemAddress & | MezzAddr | ) |
Converts a Mezzanine address to a Berkeley sockets address.
MezzAddr | The Mezzanine system address to be converted. |
Definition at line 116 of file platformsocket.cpp.
sockaddr_storage MEZZ_LIB Mezzanine::Network::ConvertToSocketStorage | ( | const SocketDescription & | MezzAddr | ) |
Converts a Mezzanine address to a Berkeley sockets address.
MezzAddr | The Mezzanine socket descriptor to be converted. |
Definition at line 138 of file platformsocket.cpp.
int MEZZ_LIB Mezzanine::Network::ConvertToSocketType | ( | const TransportLayerProtocol | Protocol | ) |
Converts from a Mezzanine transport protocol type to it's internal counterpart.
Protocol | The Mezzanine protocol type to be converted. |
Definition at line 96 of file platformsocket.cpp.
TransportLayerProtocol MEZZ_LIB Mezzanine::Network::ConvertToSocketType | ( | const int | SockType | ) |
Converts from an internal transport protocol type to it's Mezzanine counterpart.
SockType | The internal socket type to be converted. |
Definition at line 106 of file platformsocket.cpp.
SystemAddress MEZZ_LIB Mezzanine::Network::ConvertToSystemAddress | ( | const sockaddr_storage & | BerkAddr | ) |
Converts a Berkeley sockets address to a Mezzanine address.
BerkAddr | The Berkeley Sockets sockaddr structure to be converted. |
Definition at line 160 of file platformsocket.cpp.
SocketResultContainer MEZZ_LIB Mezzanine::Network::ResolveDomainName | ( | const String & | DomainName, |
const UInt16 | Port = 0 , |
||
const NetworkLayerProtocol | NLP = Network::NLP_Invalid , |
||
const TransportLayerProtocol | TLP = Network::TLP_Invalid |
||
) |
Performs a DNS lookup with the provided domain name and service.
DomainName | The domain name to lookup, must not have a trailing slash, whitespace, or service identifier. For example "www.google.com" is valid. |
Port | The port on which the domain name is operating. |
NLP | The IP version to use when connecting to the target system. |
TLP | The transport layer protocol the target system is using to accept connections. |
Definition at line 140 of file networkutilities.cpp.
SocketResultContainer MEZZ_LIB Mezzanine::Network::ResolveNumericHost | ( | const IPAddress & | Address, |
const UInt16 | Port = 0 , |
||
const TransportLayerProtocol | TLP = Network::TLP_Invalid |
||
) |
Performs a DNS lookup with the provided domain name and port.
Address | The numeric address of the target system. |
Port | The port on which the domain name is accepting connections. |
TLP | The transport layer protocol the target system is using to accept connections. |
Definition at line 121 of file networkutilities.cpp.