36 lines
718 B
C
36 lines
718 B
C
|
#pragma once
|
||
|
|
||
|
#ifdef __x86_64__
|
||
|
#define INT_TYPE uint64_t
|
||
|
#else
|
||
|
#define INT_TYPE uint32_t
|
||
|
#endif
|
||
|
|
||
|
#define MAX_READ (32*1024) // 32k
|
||
|
|
||
|
struct s_list {
|
||
|
int socket;
|
||
|
uint32_t ipv4;
|
||
|
uint16_t port;
|
||
|
int max_conns;
|
||
|
int timeout;
|
||
|
struct s_conns {
|
||
|
int socket;
|
||
|
uint32_t ipv4;
|
||
|
uint16_t port;
|
||
|
pthread_t pthread;
|
||
|
} **conns;
|
||
|
};
|
||
|
|
||
|
#define write_cstr(f,s) write(f,s,sizeof(s)-1)
|
||
|
#define write_str(f,s) write(f,s,strlen(s))
|
||
|
|
||
|
#define cstrstart(a,b) (memcmp(a,b,sizeof(b)-1)==0)
|
||
|
#define strstart(a,b) (memcmp(a,b,strlen(b))==0)
|
||
|
|
||
|
void *api_connection_thread (void *ptr);
|
||
|
void api_connections_cleanup (void);
|
||
|
void *api_listen_thread (void *ptr);
|
||
|
int api_start (uint16_t port, int max_conns, int timeout);
|
||
|
int api_stop (void);
|