From abfbc7eaa2e8c433bae4f80d94aea79fb7ce8398 Mon Sep 17 00:00:00 2001 From: timerix Date: Sun, 30 Oct 2022 19:47:13 +0600 Subject: [PATCH] some small changes --- src/Network/README.md | 1 + src/Network/knAddress.c | 2 +- src/Network/knAddress.h | 1 - src/Network/knChanneledSocket.h | 21 +++++++++++++++++++++ src/Network/knPackage.c | 1 - src/Network/knPackage.h | 1 - src/Network/knSocket.c | 6 +++--- src/Network/knSocket.h | 14 +++++++------- src/Network/network.h | 1 + src/Network/stdSocketHeaders.h | 1 + tests/test_network.c | 2 +- 11 files changed, 36 insertions(+), 15 deletions(-) create mode 100644 src/Network/knChanneledSocket.h diff --git a/src/Network/README.md b/src/Network/README.md index e69de29..845561d 100644 --- a/src/Network/README.md +++ b/src/Network/README.md @@ -0,0 +1 @@ +# kerep network diff --git a/src/Network/knAddress.c b/src/Network/knAddress.c index cd0a8b2..6d4689f 100644 --- a/src/Network/knAddress.c +++ b/src/Network/knAddress.c @@ -11,7 +11,7 @@ Maybe knIPV4Address_fromStr(char* addrStr){ c=*addrStr++; switch (c){ case '\0': - if(i<3) { + if(i<3){ errmsg_extra="end of string"; goto default_case; } diff --git a/src/Network/knAddress.h b/src/Network/knAddress.h index ff42021..f592228 100644 --- a/src/Network/knAddress.h +++ b/src/Network/knAddress.h @@ -26,7 +26,6 @@ typedef struct knIPV4Endpoint { #define knIPV4Endpoint_create(ADDR, PORT) (knIPV4Endpoint){ADDR, PORT} - #if __cplusplus } #endif \ No newline at end of file diff --git a/src/Network/knChanneledSocket.h b/src/Network/knChanneledSocket.h new file mode 100644 index 0000000..3e4d97a --- /dev/null +++ b/src/Network/knChanneledSocket.h @@ -0,0 +1,21 @@ +#pragma once + +#if __cplusplus +extern "C" { +#endif + +#include "knSocket.h" + + +typedef struct knChanneledSocket{ + union { + knSocket; + knSocket base; + }; + uint16 channelsAmount; + knChannel** channels; +} knChanneledSocket; + +#if __cplusplus +} +#endif \ No newline at end of file diff --git a/src/Network/knPackage.c b/src/Network/knPackage.c index 630b426..7308ab0 100644 --- a/src/Network/knPackage.c +++ b/src/Network/knPackage.c @@ -1,3 +1,2 @@ #include "knPackage.h" - diff --git a/src/Network/knPackage.h b/src/Network/knPackage.h index f5396f0..0f881da 100644 --- a/src/Network/knPackage.h +++ b/src/Network/knPackage.h @@ -40,7 +40,6 @@ typedef struct knChannel { knPackageQueueElem* queueStart; } knChannel; - #if __cplusplus } #endif \ No newline at end of file diff --git a/src/Network/knSocket.c b/src/Network/knSocket.c index 68f7f50..814c219 100644 --- a/src/Network/knSocket.c +++ b/src/Network/knSocket.c @@ -2,7 +2,7 @@ #include "stdSocketHeaders.h" -Maybe knSocket_open(knSocketType sockType){ +Maybe knSocket_open(knSocketProtocol sockType){ knSocket* newSocket=malloc(sizeof(knSocket)); newSocket->type=sockType; newSocket->channels=NULL; @@ -13,12 +13,12 @@ Maybe knSocket_open(knSocketType sockType){ default: safethrow("unknown socket type", free(newSocket)); break; - case knSocketType_TCP: + case knSocketProtocol_TCP: newSocket->socketfd=socket(AF_INET, SOCK_STREAM, 0); if(newSocket->socketfd==-1) safethrow("can't create TCP socket", free(newSocket)); break; - case knSocketType_UDP: + case knSocketProtocol_UDP: newSocket->socketfd=socket(AF_INET, SOCK_DGRAM, 0); if(newSocket->socketfd==-1) safethrow("can't create UDP socket", free(newSocket)); diff --git a/src/Network/knSocket.h b/src/Network/knSocket.h index f9559eb..c1f8719 100644 --- a/src/Network/knSocket.h +++ b/src/Network/knSocket.h @@ -9,21 +9,21 @@ extern "C" { #include "knPackage.h" -typedef enum __attribute__((__packed__)) knSocketType { - knSocketType_TCP, knSocketType_UDP -} knSocketType; +typedef enum __attribute__((__packed__)) knSocketProtocol { + knSocketProtocol_TCP, knSocketProtocol_UDP, knSocket_Channeled +} knSocketProtocol; typedef struct knSocket { - knSocketType type; - uint16 channelsAmount; - knChannel** channels; + knSocketProtocol type; int64 socketfd; knIPV4Endpoint localEndpoint; knIPV4Endpoint remoteEndpoint; + // uint16 channelsAmount; + // knChannel** channels; } knSocket; ///@return Maybe new socket -Maybe knSocket_open(knSocketType sockType); +Maybe knSocket_open(knSocketProtocol sockType); ///@return Maybe error or nothing Maybe knSocket_close(knSocket* socket); diff --git a/src/Network/network.h b/src/Network/network.h index 5c1c308..35f0375 100644 --- a/src/Network/network.h +++ b/src/Network/network.h @@ -13,6 +13,7 @@ extern "C" { #include "knAddress.h" #include "knPackage.h" #include "knSocket.h" +#include "knChanneledSocket.h" #if __cplusplus } diff --git a/src/Network/stdSocketHeaders.h b/src/Network/stdSocketHeaders.h index c115e1b..473e419 100644 --- a/src/Network/stdSocketHeaders.h +++ b/src/Network/stdSocketHeaders.h @@ -6,6 +6,7 @@ extern "C" { #include "network.h" + #if KN_USE_WINSOCK #include #else diff --git a/tests/test_network.c b/tests/test_network.c index 8df3f07..12db3f9 100644 --- a/tests/test_network.c +++ b/tests/test_network.c @@ -33,7 +33,7 @@ void test_network(){ test_knIPV4Address_fromStr(3,3,3,128); knSocket* s; - tryLast(knSocket_open(knSocketType_TCP), maybeS) + tryLast(knSocket_open(knSocketProtocol_TCP), maybeS) s=maybeS.value.VoidPtr; printf("\e[92mTCP socket created\n"); tryLast(knSocket_close(s);,_);