69 lines
924 B
C
69 lines
924 B
C
|
|
|
|
|
|
|
|
#ifndef __SERVER_H__
|
|
#define __SERVER_H__
|
|
|
|
#include <pthread.h>
|
|
|
|
#define BUFFER_LENGTH 4096
|
|
|
|
#define ENABLE_HTTP 0
|
|
#define ENABLE_WEBSOCKET 0
|
|
#define ENABLE_KVSTORE 1
|
|
|
|
|
|
typedef int (*RCALLBACK)(int fd);
|
|
|
|
|
|
struct conn {
|
|
int fd;
|
|
|
|
char rbuffer[BUFFER_LENGTH];
|
|
int rlength;
|
|
|
|
char wbuffer[BUFFER_LENGTH*2];
|
|
int wlength;
|
|
|
|
RCALLBACK send_callback;
|
|
|
|
union {
|
|
RCALLBACK recv_callback;
|
|
RCALLBACK accept_callback;
|
|
} r_action;
|
|
|
|
int is_from_master;
|
|
|
|
pthread_mutex_t g_sync_lock;
|
|
|
|
int status;
|
|
#if 1 // websocket
|
|
char *payload;
|
|
char mask[4];
|
|
#endif
|
|
};
|
|
|
|
#if ENABLE_HTTP
|
|
int http_request(struct conn *c);
|
|
int http_response(struct conn *c);
|
|
#endif
|
|
|
|
#if ENABLE_WEBSOCKET
|
|
int ws_request(struct conn *c);
|
|
int ws_response(struct conn *c);
|
|
#endif
|
|
|
|
#if ENABLE_KVSTORE
|
|
int kvs_request(struct conn *c);
|
|
int kvs_response(struct conn *c);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|