Server Wait On Clients System - Full Internal Documentation v1.7.2
Server Wait On Clients System.
Loading...
Searching...
No Matches
internal.h File Reference

Header file for Server Wait on Clients server-side daemon. More...

#include <limits.h>
#include <libmgec/mge-bstree.h>
#include <libmgec/mge-message.h>
#include <libmgec/mge-portability.h>
#include <swoc/libswoccommon.h>
Include dependency graph for internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  comm_spec
 Map sockets to ports. More...
 

Macros

#define _Bool   signed char
 
#define bool   _Bool
 
#define false   0
 
#define true   1
 
#define __bool_true_false_are_defined   1
 
#define MAX_LISTEN_PORTS   10
 Max number of listening ports.
 
#define MAX_EPOLL_EVENTS   64
 Max num events for EPOLL.
 

Functions

int swsd_validate_config (void)
 Parse and validate the config file.
 
int prepare_sockets (void)
 Prepare all sockets.
 
int process_comms (void)
 Wait and then process communications.
 
int srv_end_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 swocserver requesting the daemon to terminate.
 
int srv_status_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Server status request.
 
int srv_cli_blocklist_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Server client block list request.
 
int srv_cli_block_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Server requests client to be blocked.
 
int srv_cli_unblock_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Server requests client to be unblocked.
 
int srv_block_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Server requests server level blocking.
 
int srv_unblock_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Server requests removal of server level blocking.
 
int srv_block_status_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Server requests status of server level blocking.
 
int cli_block_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Client block further locks request.
 
int cli_unblock_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Client unblock further locks request.
 
int cli_srv_block_status_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Client requests status of server level blocking.
 
int srv_cli_rel_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Server requests client lock release.
 
int cli_lock_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Client lock request.
 
int cli_rel_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Release request from client.
 
int srv_reload_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 swocserver request to reload config file.
 
int swsd_reload_config (void)
 Reload the config file.
 
int cli_status_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Status request from client.
 
int cli_reset_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Reset request from client.
 
void id_req (struct mgemessage *msg, enum msg_arguments *msg_args)
 Server or client submits id.
 
 __attribute__ ((const)) const char *swocserverd_get_pkg_version(void)
 Get the git-describe based package version.
 
void swocserverd_print_pkg_version (void)
 Print the package version string to stdout.
 
void swocserverd_print_src_version (void)
 Print the source version string to stdout.
 

Variables

int swsd_err
 swoc daemon error number.
 
char client [_POSIX_HOST_NAME_MAX]
 Client name.
 
int debug
 Debug - 0 false, 1 true.
 
int end
 End pending.
 
int cursockfd
 Socket file descriptor in use.
 
struct comm_specport_spec
 Port / socket config mappings.
 
bool srv_blocked
 Server is blocked?
 
struct bstree * cli_locks
 Clients and locks.
 
struct bstree * cli_blocked
 
struct bstree * port_sock
 

Detailed Description

Header file for Server Wait on Clients server-side daemon.

Author
Copyright (C) 2016-2023 Mark Grant

Released under the GPLv3 only.
SPDX-License-Identifier: GPL-3.0-only

Version
v1.1.0 ==== 26/11/2023

Macro Definition Documentation

◆ __bool_true_false_are_defined

#define __bool_true_false_are_defined   1

◆ _Bool

#define _Bool   signed char

◆ bool

#define bool   _Bool

◆ false

#define false   0

◆ MAX_EPOLL_EVENTS

#define MAX_EPOLL_EVENTS   64

Max num events for EPOLL.

◆ MAX_LISTEN_PORTS

#define MAX_LISTEN_PORTS   10

Max number of listening ports.

◆ true

#define true   1

Function Documentation

◆ __attribute__()

__attribute__ ( (const)  ) const

Get the git-describe based package version.

Get the source version.

Returns
The package version string.
The source version string.

◆ cli_block_req()

int cli_block_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Client block further locks request.

No parameters allowed. Set a block on this client so that it cannot instantiate any more locks until the client is unblocked. The client can release locks while blocked. If the client is already blocked the function succeeds.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ cli_lock_req()

int cli_lock_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Client lock request.

No parameters allowed, add client lock.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ cli_rel_req()

int cli_rel_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Release request from client.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ cli_reset_req()

int cli_reset_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Reset request from client.

Remove all locks and any block.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ cli_srv_block_status_req()

int cli_srv_block_status_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Client requests status of server level blocking.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ cli_status_req()

int cli_status_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Status request from client.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ cli_unblock_req()

int cli_unblock_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Client unblock further locks request.

No parameters allowed. Remove a block on this client so that it can instantiate locks again. If the client is already unblocked the function succeeds.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ id_req()

void id_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Server or client submits id.

The host name and IP address are submitted for the daemon to know the machine identity even if it is coming over SSH (which always appears as localhost to the daemon). Daemon is unaffected by errors which are relayed back to the sender. Exactly 2 arguments, the host name and IP address.

Parameters
msgThe message being processed.
msg_argsThe message arguments.

◆ prepare_sockets()

int prepare_sockets ( void  )

Prepare all sockets.

On error mge_errno will be set.

Returns
0 on success, < zero on failure.

◆ process_comms()

int process_comms ( void  )

Wait and then process communications.

On error mge_errno will be set.

Returns
0 on success, < zero on failure.

◆ srv_block_req()

int srv_block_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Server requests server level blocking.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ srv_block_status_req()

int srv_block_status_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Server requests status of server level blocking.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ srv_cli_block_req()

int srv_cli_block_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Server requests client to be blocked.

Exactly 1 argument, the client to be blocked.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ srv_cli_blocklist_req()

int srv_cli_blocklist_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Server client block list request.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ srv_cli_rel_req()

int srv_cli_rel_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Server requests client lock release.

Exactly 1 argument, the client lock to be released.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ srv_cli_unblock_req()

int srv_cli_unblock_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Server requests client to be unblocked.

Exactly 1 argument, the client to be unblocked.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ srv_end_req()

int srv_end_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

swocserver requesting the daemon to terminate.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ srv_reload_req()

int srv_reload_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

swocserver request to reload config file.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ srv_status_req()

int srv_status_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Server status request.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, > zero on failure.

◆ srv_unblock_req()

int srv_unblock_req ( struct mgemessage *  msg,
enum msg_arguments msg_args 
)

Server requests removal of server level blocking.

Parameters
msgThe message being processed.
msg_argsThe message arguments.
Returns
0 on success, < zero on failure.

◆ swocserverd_print_pkg_version()

void swocserverd_print_pkg_version ( void  )

Print the package version string to stdout.

◆ swocserverd_print_src_version()

void swocserverd_print_src_version ( void  )

Print the source version string to stdout.

◆ swsd_reload_config()

int swsd_reload_config ( void  )

Reload the config file.

This function should only ever be called by srv_reload_req or the signal handler on receipt of SIGHUP which is a convention for daemons.

Returns
0 on success, < zero on failure.

◆ swsd_validate_config()

int swsd_validate_config ( void  )

Parse and validate the config file.

On error mge_errno is set.

Returns
0 on success, non-zero on failure.

Variable Documentation

◆ cli_blocked

struct bstree * cli_blocked

◆ cli_locks

struct bstree* cli_locks
extern

Clients and locks.

◆ client

char client[_POSIX_HOST_NAME_MAX]
extern

Client name.

◆ cursockfd

int cursockfd
extern

Socket file descriptor in use.

◆ debug

int debug
extern

Debug - 0 false, 1 true.

◆ end

int end
extern

End pending.

◆ port_sock

struct bstree * port_sock

◆ port_spec

struct comm_spec* port_spec
extern

Port / socket config mappings.

◆ srv_blocked

bool srv_blocked
extern

Server is blocked?

◆ swsd_err

int swsd_err
extern

swoc daemon error number.