DTNMA Reference Tools v2.1.0 - 7.g389b8d8
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
socket.c File Reference

Provide a POSIX datagram socket (AF_UNIX) adapter for AMP messaging. More...

#include "socket.h"
#include "msg.h"
#include "cace/ari/text.h"
#include "cace/ari/time_util.h"
#include <cace/util/logging.h>
#include <cace/util/defs.h>
#include <m-bstring.h>
#include <sys/poll.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <signal.h>
#include <strings.h>
#include <unistd.h>
#include <errno.h>
+ Include dependency graph for socket.c:

Functions

const char * cace_amp_socket_strip_scheme (const char *uri)
 Detect and strip the scheme prefix from a file URI.
 
void cace_amp_socket_state_init (cace_amp_socket_state_t *state)
 Initialize an empty state.
 
void cace_amp_socket_state_deinit (cace_amp_socket_state_t *state)
 Deinitialize any resources.
 
int cace_amp_socket_state_bind (cace_amp_socket_state_t *state, const char *sock_path)
 Bind a unix domain data gram socket to a specific filesystem path.
 
void cace_amp_socket_state_unbind (cace_amp_socket_state_t *state)
 Unbind any current socket and remove it if necessary.
 
int cace_amp_socket_send (const cace_ari_list_t data, const cace_amm_msg_if_metadata_t *meta, void *ctx)
 Provider of cace_amm_msg_if_send_f interface for POSIX socket transport.
 
int cace_amp_socket_recv (cace_ari_list_t data, cace_amm_msg_if_metadata_t *meta, cace_daemon_run_t *running, void *ctx)
 Provider of cace_amm_msg_if_recv_f interface for POSIX socket transport.
 

Variables

static const char * URI_PREFIX = "file:"
 

Detailed Description

Provide a POSIX datagram socket (AF_UNIX) adapter for AMP messaging.

Function Documentation

◆ cace_amp_socket_recv()

int cace_amp_socket_recv ( cace_ari_list_t  data,
cace_amm_msg_if_metadata_t meta,
cace_daemon_run_t running,
void *  ctx 
)

Provider of cace_amm_msg_if_recv_f interface for POSIX socket transport.

The user data for this function is a cace_amp_socket_state_t instance.

References CACE_LOG_DEBUG, CACE_LOG_WARNING, CHKERR1, cace_amp_socket_state_t::sock_fd, cace_amm_msg_if_metadata_t::src, and cace_amm_msg_if_metadata_t::timestamp.

◆ cace_amp_socket_send()

int cace_amp_socket_send ( const cace_ari_list_t  data,
const cace_amm_msg_if_metadata_t meta,
void *  ctx 
)

Provider of cace_amm_msg_if_send_f interface for POSIX socket transport.

The user data for this function is a cace_amp_socket_state_t instance.

References cace_amp_socket_strip_scheme(), cace_ari_text_encode(), CACE_LOG_DEBUG, CACE_LOG_ERR, CACE_LOG_WARNING, CHKERR1, cace_amm_msg_if_metadata_t::dest, and cace_amp_socket_state_t::sock_fd.

◆ cace_amp_socket_state_bind()

int cace_amp_socket_state_bind ( cace_amp_socket_state_t state,
const char *  sock_path 
)

Bind a unix domain data gram socket to a specific filesystem path.

Parameters
[in,out]stateThe state to bind.
[in]sock_pathThe file path to bind to.

References cace_amp_socket_state_unbind(), CACE_LOG_DEBUG, CACE_LOG_ERR, CHKERR1, and cace_amp_socket_state_t::sock_fd.

◆ cace_amp_socket_state_unbind()

void cace_amp_socket_state_unbind ( cace_amp_socket_state_t state)

Unbind any current socket and remove it if necessary.

Parameters
[in,out]stateThe state to bind.

References CACE_LOG_DEBUG, CACE_LOG_WARNING, and cace_amp_socket_state_t::sock_fd.

Referenced by cace_amp_socket_state_bind(), and cace_amp_socket_state_deinit().

◆ cace_amp_socket_strip_scheme()

const char * cace_amp_socket_strip_scheme ( const char *  uri)

Detect and strip the scheme prefix from a file URI.

Parameters
[in]uriThe full URI text.
Returns
Pointer to the start of scheme-specific part or NULL if not present.

References CACE_LOG_ERR.

Referenced by cace_amp_socket_send().