diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5acb669 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +build +.vscode diff --git a/cnc/include/cnc.h b/cnc/include/cnc.h index 0467f9b..50d643c 100644 --- a/cnc/include/cnc.h +++ b/cnc/include/cnc.h @@ -2,6 +2,7 @@ #define LAIKA_CNC_H #include "laika.h" +#include "lpacket.h" #include "lsocket.h" #include "lpolllist.h" diff --git a/cnc/src/cnc.c b/cnc/src/cnc.c index 1fcc7d3..838b8ee 100644 --- a/cnc/src/cnc.c +++ b/cnc/src/cnc.c @@ -1 +1,2 @@ -#include "cnc.h" \ No newline at end of file +#include "cnc.h" + diff --git a/lib/include/lerror.h b/lib/include/lerror.h index fb554b0..03a8300 100644 --- a/lib/include/lerror.h +++ b/lib/include/lerror.h @@ -15,21 +15,21 @@ /* if eLaika_errIndx is >= 0, we have a safe spot to jump too if an error is thrown */ #define LAIKA_ISPROTECTED (eLaika_errIndx >= 0) -/* CERROR(printf args): +/* LAIKA_ERROR(printf args): if called after a LAIKA_TRY block will jump to the previous LAIKA_CATCH/LAIKA_TRYEND block, otherwise program is exit()'d. if DEBUG is defined printf is called with passed args, else arguments are ignored. */ #ifndef DEBUG -#define CERROR(...) { \ +#define LAIKA_ERROR(...) { \ if (LAIKA_ISPROTECTED) \ longjmp(eLaika_errStack[eLaika_errIndx], 1); \ else \ exit(1); \ } -#define CWARN(...) +#define LAIKA_WARN(...) #else -#define CERROR(...) { \ +#define LAIKA_ERROR(...) { \ printf("[ERROR] : " __VA_ARGS__); \ if (LAIKA_ISPROTECTED) \ longjmp(eLaika_errStack[eLaika_errIndx], 1); \ @@ -37,7 +37,7 @@ exit(1); \ } -#define CWARN(...) \ +#define LAIKA_WARN(...) \ printf("[WARN] : " __VA_ARGS__); #endif diff --git a/lib/src/lmem.c b/lib/src/lmem.c index 3d5c591..2fe3095 100644 --- a/lib/src/lmem.c +++ b/lib/src/lmem.c @@ -12,7 +12,7 @@ void *laikaM_realloc(void *buf, size_t sz) { /* if NULL is passed, realloc() acts like malloc() */ if ((newBuf = realloc(buf, sz)) == NULL) - CERROR("failed to allocate memory!"); + LAIKA_ERROR("failed to allocate memory!"); return newBuf; } \ No newline at end of file diff --git a/lib/src/lpeer.c b/lib/src/lpeer.c index 93ee734..0a58e27 100644 --- a/lib/src/lpeer.c +++ b/lib/src/lpeer.c @@ -35,7 +35,7 @@ bool laikaS_handlePeerIn(struct sLaika_peer *peer) { /* sanity check packet ID */ if (peer->pktID >= LAIKAPKT_MAXNONE) - CERROR("received evil pktID!") + LAIKA_ERROR("received evil pktID!") peer->pktSize = peer->pktSizeTable[peer->pktID]; break; diff --git a/lib/src/lpolllist.c b/lib/src/lpolllist.c index 585871c..da08005 100644 --- a/lib/src/lpolllist.c +++ b/lib/src/lpolllist.c @@ -32,7 +32,7 @@ void laikaP_initPList(struct sLaika_pollList *pList) { /* setup our epoll */ memset(&pList->ev, 0, sizeof(struct epoll_event)); if ((pList->epollfd = epoll_create(POLLSTARTCAP)) == -1) - CERROR("epoll_create() failed!"); + LAIKA_ERROR("epoll_create() failed!"); #else pList->fds = NULL; /* laikaP_addSock will allocate the buffer */ @@ -62,7 +62,7 @@ void laikaP_addSock(struct sLaika_pollList *pList, struct sLaika_socket *sock) { pList->ev.data.ptr = (void*)sock; if (epoll_ctl(pList->epollfd, EPOLL_CTL_ADD, sock->sock, &pList->ev) == -1) - CERROR("epoll_ctl [ADD] failed"); + LAIKA_ERROR("epoll_ctl [ADD] failed"); #else /* allocate space in array & add PollFD */ @@ -79,7 +79,7 @@ void laikaP_rmvSock(struct sLaika_pollList *pList, struct sLaika_socket *sock) { /* epoll_event* isn't needed with EPOLL_CTL_DEL, however we still need to pass a NON-NULL pointer. [see: https://man7.org/linux/man-pages/man2/epoll_ctl.2.html#BUGS] */ if (epoll_ctl(pList->epollfd, EPOLL_CTL_DEL, sock->sock, &pList->ev) == -1) { /* non-fatal error, socket probably just didn't exist, so ignore it. */ - CWARN("epoll_ctl [DEL] failed"); + LAIKA_WARN("epoll_ctl [DEL] failed"); } #else int i; @@ -101,7 +101,7 @@ void laikaP_addPollOut(struct sLaika_pollList *pList, struct sLaika_socket *sock pList->ev.data.ptr = (void*)sock; if (epoll_ctl(pList->epollfd, EPOLL_CTL_MOD, sock->sock, &pList->ev) == -1) { /* non-fatal error, socket probably just didn't exist, so ignore it. */ - CWARN("epoll_ctl [MOD] failed"); + LAIKA_WARN("epoll_ctl [MOD] failed"); } #else int i; @@ -122,7 +122,7 @@ void laikaP_rmvPollOut(struct sLaika_pollList *pList, struct sLaika_socket *sock pList->ev.data.ptr = (void*)sock; if (epoll_ctl(pList->epollfd, EPOLL_CTL_MOD, sock->sock, &pList->ev) == -1) { /* non-fatal error, socket probably just didn't exist, so ignore it. */ - CWARN("epoll_ctl [MOD] failed"); + LAIKA_WARN("epoll_ctl [MOD] failed"); } #else int i; @@ -148,7 +148,7 @@ struct sLaika_pollEvent *laikaP_poll(struct sLaika_pollList *pList, int timeout, nEvents = epoll_wait(pList->epollfd, pList->ep_events, MAX_EPOLL_EVENTS, timeout); if (SOCKETERROR(nEvents)) - CERROR("epoll_wait() failed!"); + LAIKA_ERROR("epoll_wait() failed!"); for (i = 0; i < nEvents; i++) { /* add event to revent array */ @@ -163,7 +163,7 @@ struct sLaika_pollEvent *laikaP_poll(struct sLaika_pollList *pList, int timeout, nEvents = poll(pList->fds, pList->fdCount, timeout); /* poll returns -1 for error, or the number of events */ if (SOCKETERROR(nEvents)) - CERROR("poll() failed!"); + LAIKA_ERROR("poll() failed!"); /* walk through the returned poll fds, if they have an event, add it to our revents array */ for (i = 0; i < pList->fdCount && nEvents > 0; i++) { diff --git a/lib/src/lsocket.c b/lib/src/lsocket.c index 97d0db6..16a33c0 100644 --- a/lib/src/lsocket.c +++ b/lib/src/lsocket.c @@ -13,7 +13,7 @@ void laikaS_init(void) { WSADATA wsaData; if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) - CERROR("WSAStartup failed!") + LAIKA_ERROR("WSAStartup failed!") #endif } @@ -68,7 +68,7 @@ void laikaS_connect(struct sLaika_socket *sock, char *ip, char *port) { struct addrinfo res, *result, *curr; if (!SOCKETINVALID(sock->sock)) - CERROR("socket already setup!"); + LAIKA_ERROR("socket already setup!"); /* zero out our address info and setup the type */ memset(&res, 0, sizeof(struct addrinfo)); @@ -77,7 +77,7 @@ void laikaS_connect(struct sLaika_socket *sock, char *ip, char *port) { /* grab the address info */ if (getaddrinfo(ip, port, &res, &result) != 0) - CERROR("getaddrinfo() failed!"); + LAIKA_ERROR("getaddrinfo() failed!"); /* getaddrinfo returns a list of possible addresses, step through them and try them until we find a valid address */ for (curr = result; curr != NULL; curr = curr->ai_next) { @@ -97,7 +97,7 @@ void laikaS_connect(struct sLaika_socket *sock, char *ip, char *port) { /* if we reached the end of the linked list, we failed looking up the addr */ if (curr == NULL) - CERROR("couldn't connect a valid address handle to socket!"); + LAIKA_ERROR("couldn't connect a valid address handle to socket!"); } void laikaS_bind(struct sLaika_socket *sock, uint16_t port) { @@ -105,12 +105,12 @@ void laikaS_bind(struct sLaika_socket *sock, uint16_t port) { struct sockaddr_in address; if (!SOCKETINVALID(sock)) - CERROR("socket already setup!") + LAIKA_ERROR("socket already setup!") /* open our socket */ sock->sock = socket(AF_INET, SOCK_STREAM, 0); if (SOCKETINVALID(sock)) - CERROR("socket() failed!"); + LAIKA_ERROR("socket() failed!"); /* attach socket to the port */ int opt = 1; @@ -119,7 +119,7 @@ void laikaS_bind(struct sLaika_socket *sock, uint16_t port) { #else if (setsockopt(sock->sock, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int)) != 0) #endif - CERROR("setsockopt() failed!"); + LAIKA_ERROR("setsockopt() failed!"); address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; @@ -129,10 +129,10 @@ void laikaS_bind(struct sLaika_socket *sock, uint16_t port) { /* bind to the port */ if (SOCKETERROR(bind(sock->sock, (struct sockaddr *)&address, addressSize))) - CERROR("bind() failed!"); + LAIKA_ERROR("bind() failed!"); if (SOCKETERROR(listen(sock->sock, SOMAXCONN))) - CERROR("listen() failed!"); + LAIKA_ERROR("listen() failed!"); } void laikaS_acceptFrom(struct sLaika_socket *sock, struct sLaika_socket *from) { @@ -141,7 +141,7 @@ void laikaS_acceptFrom(struct sLaika_socket *sock, struct sLaika_socket *from) { sock = accept(from->sock, &address, &addressSize); if (SOCKETINVALID(sock)) - CERROR("accept() failed!") + LAIKA_ERROR("accept() failed!") } bool laikaS_setNonBlock(struct sLaika_socket *sock) { @@ -151,7 +151,7 @@ bool laikaS_setNonBlock(struct sLaika_socket *sock) { #else if (fcntl(sock->sock, F_SETFL, (fcntl(sock->sock, F_GETFL, 0) | O_NONBLOCK)) != 0) { #endif - CWARN("fcntl failed on new connection"); + LAIKA_WARN("fcntl failed on new connection"); laikaS_kill(sock); return false; }