Cyber Garage Portable Runtime (CGPR) for C
socket.c File Reference
#include <stdio.h>
#include <string.h>
#include <cgpr/net/interface.h>
#include <cgpr/net/socket.h>
#include <cgpr/util/logs.h>
#include <cgpr/util/time.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <netdb.h>
#include <netinet/in.h>
#include <signal.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>

Macros

#define cg_socket_getrawtype(socket)
 
#define CG_NET_SOCKET_SEND_RETRY_CNT   10
 
#define CG_NET_SOCKET_SEND_RETRY_WAIT_MSEC   20
 

Functions

bool cg_socket_tosockaddrin (const char *addr, int port, struct sockaddr_in *sockaddr, bool isBindAddr)
 
bool cg_socket_tosockaddrinfo (int sockType, const char *addr, int port, struct addrinfo **addrInfo, bool isBindAddr)
 
void cg_socket_startup (void)
 
void cg_socket_cleanup (void)
 
CGSocketcg_socket_new (int type)
 
bool cg_socket_delete (CGSocket *sock)
 
bool cg_socket_isbound (CGSocket *sock)
 
bool cg_socket_isboundaddress (CGSocket *sock, const char *addr)
 
void cg_socket_setid (CGSocket *sock, SOCKET value)
 
bool cg_socket_close (CGSocket *sock)
 
bool cg_socket_listen (CGSocket *sock)
 
bool cg_socket_bind (CGSocket *sock, int bindPort, const char *bindAddr, CGSocketOption *opt)
 
bool cg_socket_accept (CGSocket *serverSock, CGSocket *clientSock)
 
bool cg_socket_connect (CGSocket *sock, const char *addr, int port)
 
ssize_t cg_socket_read (CGSocket *sock, char *buffer, size_t bufferLen)
 
size_t cg_socket_write (CGSocket *sock, const char *cmd, size_t cmdLen)
 
ssize_t cg_socket_readline (CGSocket *sock, char *buffer, size_t bufferLen)
 
size_t cg_socket_skip (CGSocket *sock, size_t skipLen)
 
size_t cg_socket_sendto (CGSocket *sock, const char *addr, int port, const byte *data, size_t dataLen)
 
ssize_t cg_socket_recv (CGSocket *sock, CGDatagramPacket *dgmPkt)
 
bool cg_socket_setreuseaddress (CGSocket *sock, bool flag)
 
bool cg_socket_setmulticastloop (CGSocket *sock, bool flag)
 
bool cg_socket_setmulticastttl (CGSocket *sock, int val)
 
bool cg_socket_settimeout (CGSocket *sock, int sec)
 
bool cg_socket_joingroup (CGSocket *sock, const char *mcastAddr, const char *ifAddr)
 

Variables

static int _gSocketCnt = 0
 

Macro Definition Documentation

◆ CG_NET_SOCKET_SEND_RETRY_CNT

#define CG_NET_SOCKET_SEND_RETRY_CNT   10

◆ CG_NET_SOCKET_SEND_RETRY_WAIT_MSEC

#define CG_NET_SOCKET_SEND_RETRY_WAIT_MSEC   20

◆ cg_socket_getrawtype

#define cg_socket_getrawtype ( socket)
Value:
(((socket->type & CG_NET_SOCKET_STREAM) == CG_NET_SOCKET_STREAM) ? SOCK_STREAM : SOCK_DGRAM)
#define CG_NET_SOCKET_STREAM
Definition socket.h:40

Function Documentation

◆ cg_socket_accept()

bool cg_socket_accept ( CGSocket * serverSock,
CGSocket * clientSock )

◆ cg_socket_bind()

bool cg_socket_bind ( CGSocket * sock,
int bindPort,
const char * bindAddr,
CGSocketOption * opt )

◆ cg_socket_cleanup()

void cg_socket_cleanup ( void )

◆ cg_socket_close()

bool cg_socket_close ( CGSocket * sock)

◆ cg_socket_connect()

bool cg_socket_connect ( CGSocket * sock,
const char * addr,
int port )

◆ cg_socket_delete()

bool cg_socket_delete ( CGSocket * sock)

◆ cg_socket_isbound()

bool cg_socket_isbound ( CGSocket * sock)

◆ cg_socket_isboundaddress()

bool cg_socket_isboundaddress ( CGSocket * sock,
const char * addr )

◆ cg_socket_joingroup()

bool cg_socket_joingroup ( CGSocket * sock,
const char * mcastAddr,
const char * ifAddr )

◆ cg_socket_listen()

bool cg_socket_listen ( CGSocket * sock)

◆ cg_socket_new()

CGSocket * cg_socket_new ( int type)

◆ cg_socket_read()

ssize_t cg_socket_read ( CGSocket * sock,
char * buffer,
size_t bufferLen )

◆ cg_socket_readline()

ssize_t cg_socket_readline ( CGSocket * sock,
char * buffer,
size_t bufferLen )

◆ cg_socket_recv()

ssize_t cg_socket_recv ( CGSocket * sock,
CGDatagramPacket * dgmPkt )

◆ cg_socket_sendto()

size_t cg_socket_sendto ( CGSocket * sock,
const char * addr,
int port,
const byte * data,
size_t dataLen )

◆ cg_socket_setid()

void cg_socket_setid ( CGSocket * sock,
SOCKET value )

◆ cg_socket_setmulticastloop()

bool cg_socket_setmulticastloop ( CGSocket * sock,
bool flag )

◆ cg_socket_setmulticastttl()

bool cg_socket_setmulticastttl ( CGSocket * sock,
int val )

◆ cg_socket_setreuseaddress()

bool cg_socket_setreuseaddress ( CGSocket * sock,
bool flag )

◆ cg_socket_settimeout()

bool cg_socket_settimeout ( CGSocket * sock,
int sec )

◆ cg_socket_skip()

size_t cg_socket_skip ( CGSocket * sock,
size_t skipLen )

◆ cg_socket_startup()

void cg_socket_startup ( void )

◆ cg_socket_tosockaddrin()

bool cg_socket_tosockaddrin ( const char * addr,
int port,
struct sockaddr_in * sockaddr,
bool isBindAddr )

◆ cg_socket_tosockaddrinfo()

bool cg_socket_tosockaddrinfo ( int sockType,
const char * addr,
int port,
struct addrinfo ** addrInfo,
bool isBindAddr )

◆ cg_socket_write()

size_t cg_socket_write ( CGSocket * sock,
const char * cmd,
size_t cmdLen )

Variable Documentation

◆ _gSocketCnt

int _gSocketCnt = 0
static