Skip to content

SSQ_SERVER

Binary edited this page Oct 30, 2022 · 3 revisions

Synopsis

Structure representing an instance of a Source game server.

Example

#include <ssq/server.h>

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

const char *hostname = "127.0.0.1";
uint16_t port = 27015;

time_t timeout = 10000; // ms

SSQ_SERVER server;

/* Initialization */
if (!ssq_server_init(&server, hostname, port)) {
    fprintf(stderr, "ssq_server_init: %s: %s\n", hostname, ssq_server_err_msg(&server));
    exit(EXIT_FAILURE);
}

/* Timeout */
ssq_server_timeout(&server, SSQ_TIMEOUT_RECV | SSQ_TIMEOUT_SEND, timeout);
// equivalent to
ssq_server_timeout(&server, SSQ_TIMEOUT_RECV, timeout);
ssq_server_timeout(&server, SSQ_TIMEOUT_SEND, timeout);

// ...

/* Cleanup */
ssq_server_cleanup(&server);

Enums

SSQ_TIMEOUT

  • SSQ_TIMEOUT_RECV: Sets the receive timeout.
  • SSQ_TIMEOUT_SEND: Sets the send timeout.

SSQ_ERROR_CODE

  • 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 socket.

Functions

ssq_server_init

Initialize a Source game server structure.

Arguments

Name Type Nullable Description
server SSQ_SERVER * no Source game server structure to initialize.
hostname const char * yes Game server hostname.
port uint16_t Game server port number.

Return value

Returns true if the Source game server was initialized successfully, otherwise returns false and sets the error code and message accordingly.

Notes

⚠️ The Source game server structure must be freed with ssq_server_cleanup when done using it.

ssq_server_cleanup

Free a Source game server structure.

Arguments

Name Type Nullable Description
server SSQ_SERVER * no Source game server structure to free.

ssq_server_timeout

Set the receive/send timeouts of a Source game server structure.

Arguments

Name Type Nullable Description
server SSQ_SERVER * no Source game server structure to configure.
which SSQ_TIMEOUT Timeouts to set (bitwise).
value_in_ms time_t Timeout value in milliseconds.

ssq_server_ok

Determine if the last error of a Source game server structure is set to SSQE_OK.

Arguments

Name Type Nullable Description
server const SSQ_SERVER * no Source game server structure to diagnose.

Return value

Returns whether the Source game server structure has no error currently set.

Notes

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

ssq_server_err_code

Get the last error's error code of a Source game server structure.

Arguments

Name Type Nullable Description
server const SSQ_SERVER * no Source game server structure to diagnose.

Return value

Returns the last error's error code of the Source game server structure.

ssq_server_err_msg

Get the last error's error message of a Source game server structure.

Arguments

Name Type Nullable Description
server const SSQ_SERVER * no Source game server structure to diagnose.

Return value

Returns a read-only string corresponding to the last error of a Source game server structure.

ssq_server_err_clr

Clear the last error of a Source game server structure.

Arguments

Name Type Nullable Description
server const SSQ_SERVER * no Source game server structure to reset.

Clone this wiki locally