32 #include <sys/types.h> 33 #include <netinet/in.h> 46 int transid,
int invalidate_snapshot,
int db_error);
49 int rc,
int transid,
int invalidate_snapshot,
int db_error);
70 int invalidate_snapshot,
int db_error)
121 for (entry_p = header; entry_p; entry_p = entry_p->
next)
123 if (entry_p->
key == key)
148 int transid,
int invalidate_snapshot,
int db_error)
154 if (new_entry_p ==
NULL)
161 *anchor = new_entry_p;
166 while (enrty_p->
next)
168 enrty_p = enrty_p->
next;
171 enrty_p->
next = new_entry_p;
193 entry_p = (*anchor)->
next;
202 entry_p = entry_p->
next;
234 if (entry_p->
key == request_id)
236 if (*anchor == entry_p)
238 *anchor = entry_p->
next;
250 entry_p = entry_p->
next;
275 if (entry_p == entry)
277 if (*anchor == entry_p)
279 *anchor = entry_p->
next;
281 else if (prev_p !=
nullptr)
295 entry_p = entry_p->
next;
457 buffer = (
char *) malloc (size);
495 memcpy ((
char *) temp, (
char *) header,
sizeof (
NET_HEADER));
553 unsigned short flags = 0;
583 TPRINTF (
"Asked to queue an unknown packet id = %d.\n", type);
static bool css_is_request_aborted(CSS_CONN_ENTRY *conn, unsigned short request_id)
CSS_QUEUE_ENTRY * buffer_queue
static int css_add_entry_to_header(CSS_QUEUE_ENTRY **anchor, unsigned short request_id, char *buffer, int buffer_size, int rc, int transid, int invalidate_snapshot, int db_error)
void css_queue_remove_header_entry_ptr(CSS_QUEUE_ENTRY **anchor, CSS_QUEUE_ENTRY *entry)
void css_queue_remove_header_entry(CSS_QUEUE_ENTRY **anchor, unsigned short request_id)
#define NET_HEADER_FLAG_INVALIDATE_SNAPSHOT
static void css_queue_data_packet(CSS_CONN_ENTRY *conn, unsigned short request_id, NET_HEADER *header)
void css_queue_unexpected_data_packet(CSS_CONN_ENTRY *conn, unsigned short request_id, char *buffer, int size, int rc)
void css_read_remaining_bytes(SOCKET fd, int len)
void css_queue_unexpected_error_packet(CSS_CONN_ENTRY *conn, unsigned short request_id, char *buffer, int size, int rc)
CSS_QUEUE_ENTRY * data_queue
void css_queue_unexpected_packet(int type, CSS_CONN_ENTRY *conn, unsigned short request_id, NET_HEADER *header, int size)
void css_shutdown_socket(SOCKET fd)
void css_queue_remove_header(CSS_QUEUE_ENTRY **anchor)
#define TPRINTF(error_string, arg)
static void css_queue_command_packet(CSS_CONN_ENTRY *conn, unsigned short request_id, NET_HEADER *header, int size)
CSS_QUEUE_ENTRY * abort_queue
static void css_queue_error_packet(CSS_CONN_ENTRY *conn, unsigned short request_id, NET_HEADER *header)
char * css_return_data_buffer(CSS_CONN_ENTRY *conn, unsigned short request_id, int *buffer_size)
static CSS_QUEUE_ENTRY * css_make_queue_entry(unsigned int key, char *buffer, int size, CSS_QUEUE_ENTRY *next, int rc, int transid, int invalidate_snapshot, int db_error)
CSS_QUEUE_ENTRY * css_find_queue_entry(CSS_QUEUE_ENTRY *header, unsigned int key)
static int css_queue_packet(CSS_CONN_ENTRY *conn, CSS_QUEUE_ENTRY **queue_p, unsigned short request_id, char *buffer, int size, int rc)
unsigned short ntohs(unsigned short from)
static void css_free_queue_entry(CSS_QUEUE_ENTRY *entry_p)
#define free_and_init(ptr)
int css_queue_user_data_buffer(CSS_CONN_ENTRY *conn, unsigned short request_id, int size, char *buffer)
CSS_QUEUE_ENTRY * error_queue
int css_net_recv(SOCKET fd, char *buffer, int *maxlen, int timeout)
static void css_process_close_packet(CSS_CONN_ENTRY *conn)
unsigned int ntohl(unsigned int from)
CSS_QUEUE_ENTRY * request_queue
static bool css_recv_and_queue_packet(CSS_CONN_ENTRY *conn, unsigned short request_id, char *buffer, int size, CSS_QUEUE_ENTRY **queue_p)
static void css_process_abort_packet(CSS_CONN_ENTRY *conn, unsigned short request_id)