5.8 KiB
ILibAsyncSocket.c
Abstract
ILibAsyncSocket provides the underyling TCP socket implementation for the Mesh Agent.
Functions
ILibCreateAsyncSocketModule()
ILibCreateAsyncSocketModuleWithMemory()
Creates an ILibAsyncSocket object, with an optional memory allocation for use by the user.
ILibAsyncSocket_IsUsingTls(token)
Evaluates to true if the specified connection is a TLS connection
ILibAsyncSocket_SetReAllocateNotificationCallback(AsyncSocketToken, Callback)
Triggers the specified callback when a realloc() results in the data buffer being moved to a different address.
ILibAsyncSocket_GetUser(socketModule)
ILibAsyncSocket_GetUser2(socketModule)
ILibAsyncSocket_GetUser3(socketModule)
Sets a user object to the specified socket object
ILibAsyncSocket_SetUser(socketModule, user)
ILibAsyncSocket_SetUser2(socketModule, user)
ILibAsyncSocket_SetUser3(socketModule, user)
Fetches the user object associated with the specified socket object
ILibAsyncSocket_UpdateOnData(module, OnData)
Replaces the existing data handler with the specified OnData handler for the socket object
ILibAsyncSocket_UpdateCallbacks(module, OnData, OnConnect, OnDisconnect, OnSendOK)
Replaces all the existing handlers with the specified handlers, for the specified socket object
ILibAsyncSocket_GetSocket(module)
Fetches the internal socket descriptor for the specified socket object
ILibAsyncSocket_GetPendingBytesToSend(socketModule)
Fetches the number of bytes pending to be sent by the socket object
ILibAsyncSocket_GetTotalBytesSent(socketModule)
Fetches the total number of bytes that have been sent by the specified socket object
ILibAsyncSocket_ResetTotalBytesSent(socketModule)
Resets the TotalBytesSent counter, for the specified socket object
ILibAsyncSocket_ConnectTo(socketModule, localInterface, remoteAddress, InterruptPtr, user)
Connects the socket object to the specified address using the specified interface
ILibAsyncSocket_SendTo_MultiWrite(socketModule, remoteAddress, count, ...) Sends data to the specified address, specifying the number of triplets passed in the ellipses, where a triplet consists of (buffer, length, userFree)
ILibAsyncSocket_Disconnect(socketModule)
Disconnects the specified socket object
ILibAsyncSocket_GetBuffer(socketModule, buffer, BeginPointer, EndPointer) Returns the buffer associated with an ILibAsyncSocket
ILibAsyncSocket_UseThisSocket(socketModule, UseThisSocket, InterruptPtr, user) Associates an already connected socket with the ILibAsyncSocket object
ILibAsyncSocket_SetSSLContext(socketModule, ssl_ctx, tlsMode)
ILibAsyncSocket_SetSSLContextEx(socketModule, ssl_ctx, tlsMode, hostname)
Associate an OpenSSL Context Object with the specified ILibAsyncSocket object
ILibAsyncSocket_GetSSL(socketModule)
ILibAsyncSocket_GetSSLContext(socketModule)
Fetches the OpenSSL Object and Context associated with the specified ILibAsyncSocket object
ILibAsyncSocket_SetRemoteAddress(socketModule, remoteAddress)
Updates the remote address of the specified ILibAsyncSocket object
ILibAsyncSocket_GetRemoteInterface(socketModule, remoteAddress)
Fetches the associated remote interface of the specified ILibAsyncSocket object, and writes it to remoteAddress, returning the number of bytes written.
ILibAsyncSocket_SetLocalInterface(module, localAddress)
Updates the local interface of the specified ILibAsyncSocket object
ILibAsyncSocket_GetLocalInterface(socketModule, localAddress)
Fetches the associated local interface of the specified ILibAsyncSocketObject, and writes it to localAddress, returning the number of bytes written.
ILibAsyncSocket_IsFree(socketModule)
Returns non-zero if the specified ILibAsyncSocket object is in use
ILibAsyncSocket_IsConnected(socketModule)
Returns non-zero if the specified ILibAsyncSocket object is connected
int ILibAsyncSocket_IsDomainSocket(ILibAsyncSocket_SocketModule socketModule); unsigned short ILibAsyncSocket_GetLocalPort(ILibAsyncSocket_SocketModule socketModule);
ILibAsyncSocket_Resume(socketModule)
Resumes socket I/O of the specified ILibAsyncSocket object
ILibAsyncSocket_Pause(socketModule)
Suspends the socket I/O of the specified ILibAsyncSocket object
ILibAsyncSocket_WasClosedBecauseBufferSizeExceeded(socketModule)
Returns non-zero if the specified ILibAsyncSocket object was disconnected because the underlying buffer size was exceeded
ILibAsyncSocket_SetMaximumBufferSize(module, maxSize, OnBufferSizeExceededCallback, user)
Sets a maximum buffer size for the specified ILibAsyncSocket object, triggering the specified handler if the buffer size is exceeded.
ILibAsyncSocket_SetSendOK(module, OnSendOK)
Updates the OnSendOK handler, which is triggered whenever a pending write operation is completed.
ILibAsyncSocket_IsIPv6LinkLocal(LocalAddress)
Returns non-zero if the specified address is an IPv6 Link Local Address
ILibAsyncSocket_IsModuleIPv6LinkLocal(module)
Returns non-zero if the associated socket with the specified ILibAsyncSocket object is an IPv6 Link Local socket.
ILibAsyncSocket_SetTimeout(module, timeoutSeconds, timeoutHandler)
ILibAsyncSocket_SetTimeoutEx(module, timeoutMilliseconds, timeoutHandler)
Sets an idle timeout handler for the specified ILibAsyncSocket object, which triggers after the specified amount of inactivity
ILibAsyncSocket_SslGetCert(socketModule)
Returns the Peer's TLS Certificate, NULL if none was presented. Must call X509_free() when done with the certificate._
ILibAsyncSocket_SslGetCerts(socketModule)
Returns the Certificate Chain presented by the Peer. NULL if none was presented. NOTE: X509 Cert's Reference Count is not incremented.