Skip to content

SSQ_SERVER

Binary edited this page Dec 1, 2024 · 3 revisions

Synopsis

Source server instance responsible for storing networking and error information.

Example

#include <ssq/server.h>

/* Initialization */

SSQ_SERVER *server = ssq_server_new("127.0.0.1", 27015);


/* Error handling */

if (server == NULL) {
    fprintf(stderr, "ssq_server_new: memory exhausted\n");
    exit(EXIT_FAILURE);
}

if (!ssq_server_eok(server)) {
    fprintf(stderr, "ssq_server_new: %s\n", ssq_server_emsg(server));
    ssq_server_free(server);
    exit(EXIT_FAILURE);
}


/* Configuration */

ssq_server_timeout(&server, SSQ_TIMEOUT_RECV | SSQ_TIMEOUT_SEND, 2500); // ms
// equivalent to
ssq_server_timeout(&server, SSQ_TIMEOUT_RECV, 2500); // ms
ssq_server_timeout(&server, SSQ_TIMEOUT_SEND, 2500); // ms


/* Cleanup */

ssq_server_free(server);

Enums

SSQ_TIMEOUT_SELECTOR

Name Description
SSQ_TIMEOUT_RECV Selects the SO_RCVTIMEO timeout
SSQ_TIMEOUT_SEND Selects the SO_SNDTIMEO timeout

SSQ_ERROR_CODE

Name Description
SSQE_OK Success
SSQE_SYSTEM System error
SSQE_INVALID_RESPONSE Invalid response
SSQE_UNSUPPORTED Unsupported feature
SSQE_GAI getaddrinfo error
SSQE_NO_SOCKET Could not create an endpoint for communication

Functions

ssq_server_new

Allocates a new Source server instance.

Parameters

Name Type Nullable Description
hostname const char * Source server hostname.
port uint16_t Source server port number.

Return value

Returns a new Source server instance which must be freed using ssq_server_free.

⚠️ In case of a memory allocation error, returns NULL.

⚠️ In case of some other kind of error, updates the last error.

ssq_server_free

Frees a Source server instance returned by ssq_server_new.

Parameters

Name Type Nullable Description
server SSQ_SERVER * Source server instance to free.

ssq_server_timeout

Sets the SO_RCVTIMEO and SO_SNDTIMEO timeouts of a Source server instance.

Parameters

Name Type Nullable Description
server SSQ_SERVER * Source server instance to configure.
which SSQ_TIMEOUT_SELECTOR Timeouts to set (bitwise flags).
value_in_ms time_t Timeout value in milliseconds.

ssq_server_eok

Determines if the last error of a Source server instance is set to SSQE_OK.

Parameters

Name Type Nullable Description
server const SSQ_SERVER * Source server instance to diagnose.

Return value

Returns whether the Source server instance has no error currently set.

Notes

💡 This is a shortcut for ssq_server_ecode(...) == SSQE_OK.

ssq_server_ecode

Gets the last error code of a Source server instance.

Parameters

Name Type Nullable Description
server const SSQ_SERVER * Source server instance to diagnose.

Return value

Returns the last error code of the Source server instance.

ssq_server_emsg

Gets the last error message of a Source server.

Parameters

Name Type Nullable Description
server const SSQ_SERVER * Source server instance to diagnose.

Return value

Returns the last error message of the Source server instance.

ssq_server_eclr

Clears the last error of a Source server.

Parameters

Name Type Nullable Description
server const SSQ_SERVER * Source server instance to clear.

Clone this wiki locally