43 lines
970 B
C
43 lines
970 B
C
#ifndef RDBSERVER_REQUEST_H
|
|
#define RDBSERVER_REQUEST_H
|
|
|
|
#include <cmdbuf.h>
|
|
#include <stddef.h>
|
|
|
|
#define INBUF_LEN 256
|
|
|
|
typedef enum rdb_read_result_t {
|
|
read_result_success,
|
|
read_result_error,
|
|
read_result_pending,
|
|
read_result_disconnected
|
|
} rdb_read_result_t;
|
|
|
|
typedef enum rdb_read_state_t {
|
|
read_state_header,
|
|
read_state_body,
|
|
read_state_body_escape,
|
|
read_state_checksum_1,
|
|
read_state_checksum_2
|
|
} rdb_read_state_t;
|
|
|
|
typedef struct RdbRequest {
|
|
int connfd;
|
|
bool blocking;
|
|
struct Buffer {
|
|
char buf[INBUF_LEN];
|
|
size_t len;
|
|
size_t index;
|
|
} inbuf;
|
|
rdb_read_state_t state;
|
|
char *outbuf;
|
|
size_t outbuflen;
|
|
char chk;
|
|
} RdbRequest;
|
|
|
|
void rdbRequestInit(RdbRequest *req, int connfd, char *buf, size_t buflen);
|
|
void rdbRequestReset(RdbRequest *req);
|
|
void rdbRequestSetBlocking(RdbRequest *req, bool blocking);
|
|
rdb_read_result_t rdbRequestRead(RdbRequest *req, CommandBuf *cmd);
|
|
|
|
#endif |