0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-17 23:40:57 +01:00

wsockd: various fixes

* Use correct sign for comparing data lengths
* Don't return a void statement in a void function
* Remove unused functions and macros
This commit is contained in:
Aaron Jones 2016-06-01 20:23:13 +00:00
parent 759835cf46
commit 1863a0f818
No known key found for this signature in database
GPG key ID: 6E854C0FAAD4CEA4

View file

@ -95,12 +95,7 @@ typedef struct _conn
char client_key[37]; /* maximum 36 bytes + nul */ char client_key[37]; /* maximum 36 bytes + nul */
} conn_t; } conn_t;
#define WEBSOCKET_OPCODE_CONTINUATION_FRAME 0
#define WEBSOCKET_OPCODE_TEXT_FRAME 1 #define WEBSOCKET_OPCODE_TEXT_FRAME 1
#define WEBSOCKET_OPCODE_BINARY_FRAME 2
#define WEBSOCKET_OPCODE_CLOSE_FRAME 8
#define WEBSOCKET_OPCODE_PING_FRAME 9
#define WEBSOCKET_OPCODE_PONG_FRAME 10
#define WEBSOCKET_MASK_LENGTH 4 #define WEBSOCKET_MASK_LENGTH 4
@ -130,12 +125,6 @@ typedef struct {
uint64_t payload_length_extended; uint64_t payload_length_extended;
} ws_frame_ext2_t; } ws_frame_ext2_t;
static inline int
ws_frame_get_opcode(ws_frame_hdr_t *header)
{
return header->opcode_rsv_fin & 0xF;
}
static inline void static inline void
ws_frame_set_opcode(ws_frame_hdr_t *header, int opcode) ws_frame_set_opcode(ws_frame_hdr_t *header, int opcode)
{ {
@ -143,12 +132,6 @@ ws_frame_set_opcode(ws_frame_hdr_t *header, int opcode)
header->opcode_rsv_fin |= opcode & 0xF; header->opcode_rsv_fin |= opcode & 0xF;
} }
static inline int
ws_frame_get_fin(ws_frame_hdr_t *header)
{
return (header->opcode_rsv_fin >> 7) & 0x1;
}
static inline void static inline void
ws_frame_set_fin(ws_frame_hdr_t *header, int fin) ws_frame_set_fin(ws_frame_hdr_t *header, int fin)
{ {
@ -168,7 +151,6 @@ static void conn_plain_process_recvq(conn_t *conn);
#define IsCork(x) ((x)->flags & FLAG_CORK) #define IsCork(x) ((x)->flags & FLAG_CORK)
#define IsDead(x) ((x)->flags & FLAG_DEAD) #define IsDead(x) ((x)->flags & FLAG_DEAD)
#define IsWS(x) ((x)->flags & FLAG_WSOCK)
#define IsKeyed(x) ((x)->flags & FLAG_KEYED) #define IsKeyed(x) ((x)->flags & FLAG_KEYED)
#define SetCork(x) ((x)->flags |= FLAG_CORK) #define SetCork(x) ((x)->flags |= FLAG_CORK)
@ -177,15 +159,10 @@ static void conn_plain_process_recvq(conn_t *conn);
#define SetKeyed(x) ((x)->flags |= FLAG_KEYED) #define SetKeyed(x) ((x)->flags |= FLAG_KEYED)
#define ClearCork(x) ((x)->flags &= ~FLAG_CORK) #define ClearCork(x) ((x)->flags &= ~FLAG_CORK)
#define ClearDead(x) ((x)->flags &= ~FLAG_DEAD)
#define ClearWS(x) ((x)->flags &= ~FLAG_WSOCK)
#define ClearKeyed(x) ((x)->flags &= ~FLAG_KEYED)
#define NO_WAIT 0x0 #define NO_WAIT 0x0
#define WAIT_PLAIN 0x1 #define WAIT_PLAIN 0x1
#define HASH_WALK_SAFE(i, max, ptr, next, table) for(i = 0; i < max; i++) { RB_DLINK_FOREACH_SAFE(ptr, next, table[i].head)
#define HASH_WALK_END }
#define CONN_HASH_SIZE 2000 #define CONN_HASH_SIZE 2000
#define connid_hash(x) (&connid_hash_table[(x % CONN_HASH_SIZE)]) #define connid_hash(x) (&connid_hash_table[(x % CONN_HASH_SIZE)])
@ -247,21 +224,6 @@ maxconn(void)
return MAXCONNECTIONS; return MAXCONNECTIONS;
} }
static conn_t *
conn_find_by_id(uint32_t id)
{
rb_dlink_node *ptr;
conn_t *conn;
RB_DLINK_FOREACH(ptr, (connid_hash(id))->head)
{
conn = ptr->data;
if(conn->id == id && !IsDead(conn))
return conn;
}
return NULL;
}
static void static void
conn_add_id_hash(conn_t * conn, uint32_t id) conn_add_id_hash(conn_t * conn, uint32_t id)
{ {
@ -398,17 +360,12 @@ conn_mod_write_frame(conn_t *conn, void *data, int len)
return; return;
if (len < 123) if (len < 123)
return conn_mod_write_short_frame(conn, data, len); {
conn_mod_write_short_frame(conn, data, len);
return
}
return conn_mod_write_long_frame(conn, data, len); conn_mod_write_long_frame(conn, data, len);
}
static void
conn_plain_write(conn_t * conn, void *data, size_t len)
{
if(IsDead(conn)) /* again no point in queueing to dead men */
return;
rb_linebuf_put(&conn->plainbuf_out, data, len);
} }
static void static void
@ -755,7 +712,7 @@ conn_mod_read_cb(rb_fde_t *fd, void *data)
else else
conn_mod_process(conn); conn_mod_process(conn);
if (length < sizeof(inbuf)) if ((size_t) length < sizeof(inbuf))
{ {
rb_setselect(fd, RB_SELECT_READ, conn_mod_read_cb, conn); rb_setselect(fd, RB_SELECT_READ, conn_mod_read_cb, conn);
return; return;