35 lines
718 B
C
35 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);
|