40#ifndef QSC_SOCKETSERVER_H
41#define QSC_SOCKETSERVER_H
46QSC_CPLUSPLUS_ENABLED_START
90#define QSC_SOCKET_SERVER_LISTEN_BACKLOG 128ULL
96#define QSC_SOCKET_SERVER_MAX_THREADS 1024ULL
274QSC_CPLUSPLUS_ENABLED_END
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.
#define QSC_EXPORT_API
API export macro for Microsoft compilers when importing from a DLL.
Definition common.h:520
Socket function definitions.
qsc_socket_exceptions
Socket code enumeration names.
Definition socketbase.h:130
qsc_socket_options
TCP socket options.
Definition socketflags.h:90
qsc_socket_transports
The socket transmission type.
Definition socketflags.h:165
qsc_socket_address_families
The socket address family type.
Definition socketflags.h:68
qsc_socket_protocols
The socket IP protocol type.
Definition socketflags.h:108
QSC_EXPORT_API qsc_socket_exceptions qsc_socket_server_listen_async(qsc_socket_server_async_accept_state *state, const char *address, uint16_t port, qsc_socket_address_families family)
Places the socket in an asynchronous listening state.
Definition socketserver.c:230
QSC_EXPORT_API qsc_socket_protocols qsc_socket_server_socket_protocol(const qsc_socket *sock)
Get the socket protocol type.
Definition socketserver.c:22
QSC_EXPORT_API qsc_socket_exceptions qsc_socket_server_listen_ipv4(qsc_socket *source, qsc_socket *target, const qsc_ipinfo_ipv4_address *address, uint16_t port)
Places the source IPv4 socket in a blocking listening state, and waits for a connection....
Definition socketserver.c:118
QSC_EXPORT_API void qsc_socket_server_set_options(const qsc_socket *sock, qsc_socket_protocols level, qsc_socket_options option, int32_t optval)
Send an option command to the socket. Options that use a boolean are format: 0=false,...
Definition socketserver.c:341
QSC_EXPORT_API qsc_socket_exceptions qsc_socket_server_listen_async_ipv6(qsc_socket_server_async_accept_state *state, const qsc_ipinfo_ipv6_address *address, uint16_t port)
Places the IPv6 socket in an asynchronous listening state.
Definition socketserver.c:299
QSC_EXPORT_API void qsc_socket_server_accept_callback(qsc_socket_server_accept_result *ares)
The socket server accept callback prototype.
QSC_EXPORT_API qsc_socket_exceptions qsc_socket_server_listen_ipv6(qsc_socket *source, qsc_socket *target, const qsc_ipinfo_ipv6_address *address, uint16_t port)
Places the source IPv6 socket in a blocking listening state, and waits for a connection....
Definition socketserver.c:151
QSC_EXPORT_API qsc_socket_exceptions qsc_socket_server_listen(qsc_socket *source, qsc_socket *target, const char *address, uint16_t port, qsc_socket_address_families family)
Places the source socket in a blocking listening state, and waits for a connection....
Definition socketserver.c:81
QSC_EXPORT_API qsc_socket_transports qsc_socket_server_socket_transport(const qsc_socket *sock)
Get the socket transport type.
Definition socketserver.c:38
QSC_EXPORT_API void qsc_socket_server_shut_down(qsc_socket *sock)
Shut down the server.
Definition socketserver.c:351
QSC_EXPORT_API void qsc_socket_server_initialize(qsc_socket *sock)
Initialize the server socket.
Definition socketserver.c:65
QSC_EXPORT_API void qsc_socket_server_close_socket(qsc_socket *sock)
Shut down channels and close the socket.
Definition socketserver.c:54
QSC_EXPORT_API qsc_socket_exceptions qsc_socket_server_listen_async_ipv4(qsc_socket_server_async_accept_state *state, const qsc_ipinfo_ipv4_address *address, uint16_t port)
Places the IPv4 socket in an asynchronous listening state.
Definition socketserver.c:266
QSC_EXPORT_API void qsc_socket_server_error_callback(const qsc_socket *source, qsc_socket_exceptions error)
The socket server error callback prototype.
QSC_EXPORT_API qsc_socket_address_families qsc_socket_server_address_family(const qsc_socket *sock)
Get the sockets address family, IPv4 or IPv6.
Definition socketserver.c:6
The IPv4 address structure.
Definition ipinfo.h:150
The IPv6 address structure.
Definition ipinfo.h:309
The async socket result structure.
Definition socketserver.h:104
qsc_socket target
Definition socketserver.h:105
The async listener-accept state structure. The structure contains a pointer to the listener socket,...
Definition socketserver.h:116
void(* callback)(qsc_socket_server_accept_result *result)
Definition socketserver.h:118
void(* error)(qsc_socket *sock, qsc_socket_exceptions exception)
Definition socketserver.h:119
qsc_socket * source
Definition socketserver.h:117
The socket instance structure.
Definition socket.h:121