Merge branch 'main' into 'network'
This commit is contained in:
@@ -6,11 +6,11 @@ ktid_define(knIPV4Endpoint);
|
||||
Maybe knIPV4Address_fromStr(char* addrStr){
|
||||
char* addrStr_src=addrStr;
|
||||
char* errmsg_extra="wrong char";
|
||||
uint8 c;
|
||||
u8 c;
|
||||
knIPV4Address addr;
|
||||
addr.u32=0;
|
||||
uint16 n=0;
|
||||
for(uint8 i=0; i<4; ){
|
||||
u16 n=0;
|
||||
for(u8 i=0; i<4; ){
|
||||
c=*addrStr++;
|
||||
switch (c){
|
||||
case '\0':
|
||||
@@ -18,6 +18,10 @@ Maybe knIPV4Address_fromStr(char* addrStr){
|
||||
errmsg_extra="end of string";
|
||||
goto default_case;
|
||||
}
|
||||
|
||||
addr.bytes[i++]=n;
|
||||
n=0;
|
||||
break;
|
||||
case '.':
|
||||
addr.bytes[i++]=n;
|
||||
n=0;
|
||||
@@ -32,7 +36,7 @@ Maybe knIPV4Address_fromStr(char* addrStr){
|
||||
break;
|
||||
default_case:
|
||||
default:
|
||||
uint32 errmsgL=cptr_length(addrStr) + 80;
|
||||
u32 errmsgL=cptr_length(addrStr) + 80;
|
||||
char* errmsg=malloc(errmsgL);
|
||||
IFMSC(sprintf_s(errmsg, errmsgL, "wrong ip address string: %s\n %s", addrStr_src, errmsg_extra),
|
||||
sprintf( errmsg, "wrong ip address string: %s\n %s", addrStr_src, errmsg_extra));
|
||||
|
||||
@@ -7,10 +7,10 @@ extern "C" {
|
||||
#include "../base/base.h"
|
||||
|
||||
|
||||
typedef uint16 knPort;
|
||||
typedef u16 knPort;
|
||||
|
||||
typedef union knIPV4Address {
|
||||
uint32 u32;
|
||||
u32 u32;
|
||||
char bytes[4];
|
||||
} knIPV4Address;
|
||||
ktid_declare(knIPV4Address);
|
||||
|
||||
@@ -38,7 +38,7 @@ knChannel* __createChannel(){
|
||||
Maybe knSocketChanneled_createChannel(knSocketChanneled* socket){
|
||||
if(socket->channelsAmount == 65535)
|
||||
safethrow("max amount of channels",;);
|
||||
uint16 channelsAmountPrev=socket->channelsAmount;
|
||||
u16 channelsAmountPrev=socket->channelsAmount;
|
||||
socket->channelsAmount++;
|
||||
if(channelsAmountPrev==0)
|
||||
socket->channels=malloc(sizeof(knChannel*));
|
||||
@@ -54,6 +54,6 @@ Maybe knSocketChanneled_connect(knSocketChanneled* socket, knIPV4Endpoint remote
|
||||
|
||||
Maybe knSocketChanneled_accept(knSocketChanneled* socket);
|
||||
|
||||
Maybe knSocketChanneled_send(knSocketChanneled* socket, uint16 destinationIndex, uint8* data, uint32 dataLength);
|
||||
Maybe knSocketChanneled_send(knSocketChanneled* socket, u16 destinationIndex, u8* data, u32 dataLength);
|
||||
|
||||
Maybe knSocketChanneled_recieve(knSocketChanneled* socket, uint16 destinationIndex, uint8* buffer, uint32 bufferLength);
|
||||
Maybe knSocketChanneled_recieve(knSocketChanneled* socket, u16 destinationIndex, u8* buffer, u32 bufferLength);
|
||||
@@ -7,7 +7,7 @@ extern "C" {
|
||||
#include "../../base/base.h"
|
||||
#include "../knAddress.h"
|
||||
|
||||
#define KNPAC_MAX_DATA_SIZE (65535-sizeof(knPackage)+sizeof(uint8*))
|
||||
#define KNPAC_MAX_DATA_SIZE (65535-sizeof(knPackage)+sizeof(u8*))
|
||||
|
||||
|
||||
typedef enum __attribute__((__packed__)) knPacVersion {
|
||||
@@ -19,11 +19,11 @@ static const char knPacHeader[5]={'k','n','p','a','c'};
|
||||
typedef struct knPackage {
|
||||
char header[5]; // knpac
|
||||
knPacVersion version; // protocol version
|
||||
uint16 data_size; // size of data block in bytes (1-KNPAC_MAX_DATA_SIZE)
|
||||
uint32 channel_id; // id of knChannel in socket
|
||||
uint32 package_num; // number in sequence of sent packages
|
||||
uint64 data_hash; // hash64 of data
|
||||
uint8* data; // ptr to data
|
||||
u16 data_size; // size of data block in bytes (1-KNPAC_MAX_DATA_SIZE)
|
||||
u32 channel_id; // id of knChannel in socket
|
||||
u32 package_num; // number in sequence of sent packages
|
||||
u64 data_hash; // hash64 of data
|
||||
u8* data; // ptr to data
|
||||
} knPackage;
|
||||
ktid_declare(knPackage);
|
||||
|
||||
@@ -41,10 +41,10 @@ typedef struct knChannel {
|
||||
ktid_declare(knChannel);
|
||||
|
||||
typedef struct knSocketChanneled{
|
||||
int64 socketfd;
|
||||
i64 socketfd;
|
||||
knIPV4Endpoint localEndpoint;
|
||||
knIPV4Endpoint remoteEndpoint;
|
||||
uint16 channelsAmount;
|
||||
u16 channelsAmount;
|
||||
knChannel** channels;
|
||||
} knSocketChanneled;
|
||||
ktid_declare(knSocketChanneled);
|
||||
@@ -56,7 +56,7 @@ Maybe knSocketChanneled_open();
|
||||
///@return Maybe<void> error or nothing
|
||||
Maybe knSocketChanneled_close(knSocketChanneled* socket);
|
||||
|
||||
///@return Maybe<uint64> channel index
|
||||
///@return Maybe<u64> channel index
|
||||
Maybe knSocketChanneled_createChannel(knSocketChanneled* socket);
|
||||
|
||||
///start listening at local endpoint
|
||||
@@ -72,12 +72,12 @@ Maybe knSocketChanneled_accept(knSocketChanneled* socket);
|
||||
|
||||
///@param dataLength 0-4294967295
|
||||
///@return Maybe<void>
|
||||
Maybe knSocketChanneled_send(knSocketChanneled* socket, uint16 destinationIndex, uint8* data, uint32 dataLength);
|
||||
Maybe knSocketChanneled_send(knSocketChanneled* socket, u16 destinationIndex, u8* data, u32 dataLength);
|
||||
|
||||
///@param buffer buffer for recieving data
|
||||
///@param bufferLength 0-4294967295
|
||||
///@return Maybe<uint64> recieved bytes amount
|
||||
Maybe knSocketChanneled_recieve(knSocketChanneled* socket, uint16 destinationIndex, uint8* buffer, uint32 bufferLength);
|
||||
///@return Maybe<u64> recieved bytes amount
|
||||
Maybe knSocketChanneled_recieve(knSocketChanneled* socket, u16 destinationIndex, u8* buffer, u32 bufferLength);
|
||||
|
||||
#if __cplusplus
|
||||
}
|
||||
|
||||
@@ -65,9 +65,9 @@ Maybe knSocketTCP_accept(knSocketTCP* socket);
|
||||
|
||||
///@param dataLength 0-4294967295
|
||||
///@return Maybe<void>
|
||||
Maybe knSocketTCP_send(knSocketTCP* socket, char* data, uint32 dataLength);
|
||||
Maybe knSocketTCP_send(knSocketTCP* socket, char* data, u32 dataLength);
|
||||
|
||||
///@param buffer buffer for recieving data
|
||||
///@param bufferLength 0-4294967295
|
||||
///@return Maybe<uint64> recieved bytes amount
|
||||
Maybe knSocketTCP_recieve(knSocketTCP* socket, char* buffer, uint32 bufferLength);
|
||||
///@return Maybe<u64> recieved bytes amount
|
||||
Maybe knSocketTCP_recieve(knSocketTCP* socket, char* buffer, u32 bufferLength);
|
||||
|
||||
@@ -8,7 +8,7 @@ extern "C" {
|
||||
#include "../knAddress.h"
|
||||
|
||||
typedef struct knSocketTCP {
|
||||
int64 socketfd;
|
||||
i64 socketfd;
|
||||
knIPV4Endpoint localEndpoint;
|
||||
knIPV4Endpoint remoteEndpoint;
|
||||
} knSocketTCP;
|
||||
@@ -33,12 +33,12 @@ Maybe knSocketTCP_accept(knSocketTCP* socket);
|
||||
|
||||
///@param dataLength 0-4294967295
|
||||
///@return Maybe<void>
|
||||
Maybe knSocketTCP_send(knSocketTCP* socket, char* data, uint32 dataLength);
|
||||
Maybe knSocketTCP_send(knSocketTCP* socket, char* data, u32 dataLength);
|
||||
|
||||
///@param buffer buffer for recieving data
|
||||
///@param bufferLength 0-4294967295
|
||||
///@return Maybe<uint64> recieved bytes amount
|
||||
Maybe knSocketTCP_recieve(knSocketTCP* socket, char* buffer, uint32 bufferLength);
|
||||
///@return Maybe<u64> recieved bytes amount
|
||||
Maybe knSocketTCP_recieve(knSocketTCP* socket, char* buffer, u32 bufferLength);
|
||||
|
||||
#if __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@ Maybe knSocketUDP_accept(knSocketUDP* socket);
|
||||
|
||||
///@param dataLength 0-4294967295
|
||||
///@return Maybe<void>
|
||||
Maybe knSocketUDP_sendto(knSocketUDP* socket, char* data, uint32 dataLength, knIPV4Endpoint destination);
|
||||
Maybe knSocketUDP_sendto(knSocketUDP* socket, char* data, u32 dataLength, knIPV4Endpoint destination);
|
||||
|
||||
///@param buffer buffer for recieving data
|
||||
///@param bufferLength 0-4294967295
|
||||
///@return Maybe<uint64> recieved bytes amount
|
||||
Maybe knSocketUDP_recieve(knSocketUDP* socket, char* buffer, uint32 bufferLength);
|
||||
///@return Maybe<u64> recieved bytes amount
|
||||
Maybe knSocketUDP_recieve(knSocketUDP* socket, char* buffer, u32 bufferLength);
|
||||
|
||||
@@ -7,7 +7,7 @@ extern "C" {
|
||||
#include "knSocketUDP.h"
|
||||
|
||||
typedef struct knSocketUDP {
|
||||
int64 socketfd;
|
||||
i64 socketfd;
|
||||
knIPV4Endpoint localEndpoint;
|
||||
} knSocketUDP;
|
||||
ktid_declare(knSocketUDP);
|
||||
@@ -27,12 +27,12 @@ Maybe knSocketUDP_accept(knSocketUDP* socket);
|
||||
|
||||
///@param dataLength 0-4294967295
|
||||
///@return Maybe<void>
|
||||
Maybe knSocketUDP_sendto(knSocketUDP* socket, char* data, uint32 dataLength, knIPV4Endpoint destination);
|
||||
Maybe knSocketUDP_sendto(knSocketUDP* socket, char* data, u32 dataLength, knIPV4Endpoint destination);
|
||||
|
||||
///@param buffer buffer for recieving data
|
||||
///@param bufferLength 0-4294967295
|
||||
///@return Maybe<uint64> recieved bytes amount
|
||||
Maybe knSocketUDP_recieve(knSocketUDP* socket, char* buffer, uint32 bufferLength);
|
||||
///@return Maybe<u64> recieved bytes amount
|
||||
Maybe knSocketUDP_recieve(knSocketUDP* socket, char* buffer, u32 bufferLength);
|
||||
|
||||
|
||||
#if __cplusplus
|
||||
|
||||
Reference in New Issue
Block a user