add function sf_set_body_length
parent
e22400fa1c
commit
b3334d2ad5
|
|
@ -439,6 +439,8 @@ static int load_rdma_apis(SFNetworkHandler *handler)
|
||||||
return EFAULT;
|
return EFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LOAD_API(handler, get_connection_size);
|
||||||
|
LOAD_API(handler, init_connection);
|
||||||
LOAD_API(handler, create_server);
|
LOAD_API(handler, create_server);
|
||||||
LOAD_API(handler, close_server);
|
LOAD_API(handler, close_server);
|
||||||
LOAD_API(handler, accept_connection);
|
LOAD_API(handler, accept_connection);
|
||||||
|
|
|
||||||
19
src/sf_nio.c
19
src/sf_nio.c
|
|
@ -654,24 +654,7 @@ ssize_t sf_socket_recv_data(struct fast_task_info *task, SFCommAction *action)
|
||||||
return bytes;
|
return bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SF_CTX->set_body_length(task) != 0) {
|
if (sf_set_body_length(task) != 0) {
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (task->length < 0) {
|
|
||||||
logError("file: "__FILE__", line: %d, "
|
|
||||||
"client ip: %s, pkg length: %d < 0",
|
|
||||||
__LINE__, task->client_ip,
|
|
||||||
task->length);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
task->length += SF_CTX->header_size;
|
|
||||||
if (task->length > g_sf_global_vars.max_pkg_size) {
|
|
||||||
logError("file: "__FILE__", line: %d, "
|
|
||||||
"client ip: %s, pkg length: %d > "
|
|
||||||
"max pkg size: %d", __LINE__,
|
|
||||||
task->client_ip, task->length,
|
|
||||||
g_sf_global_vars.max_pkg_size);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
26
src/sf_nio.h
26
src/sf_nio.h
|
|
@ -92,6 +92,32 @@ void sf_task_switch_thread(struct fast_task_info *task,
|
||||||
|
|
||||||
void sf_task_detach_thread(struct fast_task_info *task);
|
void sf_task_detach_thread(struct fast_task_info *task);
|
||||||
|
|
||||||
|
static inline int sf_set_body_length(struct fast_task_info *task)
|
||||||
|
{
|
||||||
|
if (SF_CTX->set_body_length(task) != 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (task->length < 0) {
|
||||||
|
logError("file: "__FILE__", line: %d, "
|
||||||
|
"client ip: %s, pkg length: %d < 0",
|
||||||
|
__LINE__, task->client_ip,
|
||||||
|
task->length);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
task->length += SF_CTX->header_size;
|
||||||
|
if (task->length > g_sf_global_vars.max_pkg_size) {
|
||||||
|
logError("file: "__FILE__", line: %d, "
|
||||||
|
"client ip: %s, pkg length: %d > "
|
||||||
|
"max pkg size: %d", __LINE__,
|
||||||
|
task->client_ip, task->length,
|
||||||
|
g_sf_global_vars.max_pkg_size);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int sf_socket_async_connect_server(struct fast_task_info *task);
|
int sf_socket_async_connect_server(struct fast_task_info *task);
|
||||||
int sf_socket_connect_server_done(struct fast_task_info *task);
|
int sf_socket_connect_server_done(struct fast_task_info *task);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,9 @@ typedef enum {
|
||||||
} SFCommAction;
|
} SFCommAction;
|
||||||
|
|
||||||
struct sf_listener;
|
struct sf_listener;
|
||||||
|
|
||||||
|
typedef int (*sf_get_connection_size_callback)();
|
||||||
|
typedef int (*sf_init_connection_callback)(struct fast_task_info *task, void *arg);
|
||||||
typedef int (*sf_create_server_callback)(struct sf_listener
|
typedef int (*sf_create_server_callback)(struct sf_listener
|
||||||
*listener, int af, const char *bind_addr);
|
*listener, int af, const char *bind_addr);
|
||||||
typedef void (*sf_close_server_callback)(struct sf_listener *listener);
|
typedef void (*sf_close_server_callback)(struct sf_listener *listener);
|
||||||
|
|
@ -99,6 +102,8 @@ typedef struct sf_network_handler {
|
||||||
SFListener outer;
|
SFListener outer;
|
||||||
|
|
||||||
/* for server side */
|
/* for server side */
|
||||||
|
sf_get_connection_size_callback get_connection_size;
|
||||||
|
sf_init_connection_callback init_connection;
|
||||||
sf_create_server_callback create_server;
|
sf_create_server_callback create_server;
|
||||||
sf_close_server_callback close_server;
|
sf_close_server_callback close_server;
|
||||||
sf_accept_connection_callback accept_connection;
|
sf_accept_connection_callback accept_connection;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue