reduce the number of data exchanged during a resumption.

This commit is contained in:
Nikos Mavrogiannopoulos
2013-02-04 01:48:09 +01:00
parent 4d344f2017
commit 6572f2a082
3 changed files with 7 additions and 10 deletions

View File

@@ -233,7 +233,7 @@ int handle_commands(main_server_st *s, struct proc_list_st* proc)
switch(cmd) {
case RESUME_STORE_REQ:
if (cmd_data_len != sizeof(cmd_data.sresume)) {
if (cmd_data_len <= sizeof(cmd_data.sresume)-MAX_SESSION_DATA_SIZE) {
syslog(LOG_ERR, "Error in received message length (pid: %d, peer: %s).", proc->pid, peer_ip);
return -2;
}

View File

@@ -56,11 +56,7 @@ int send_resume_fetch_reply(main_server_st* s, struct proc_list_st * proc,
hdr.msg_iovlen++;
iov[1].iov_base = reply;
iov[1].iov_len = sizeof(*reply);
hdr.msg_iovlen++;
iov[2].iov_base = reply;
iov[2].iov_len = sizeof(*reply);
iov[1].iov_len = 3 + reply->session_data_size;
hdr.msg_iovlen++;
hdr.msg_iov = iov;

View File

@@ -38,8 +38,9 @@
#include <tlslib.h>
static int send_resume_fetch_req(worker_st * ws, const struct cmd_resume_fetch_req_st* r,
int delete)
static int send_resume_fetch_req(worker_st * ws,
const struct cmd_resume_fetch_req_st* r,
int delete)
{
struct iovec iov[2];
uint8_t cmd;
@@ -78,7 +79,7 @@ static int send_resume_store_req(worker_st * ws, const struct cmd_resume_store_r
iov[0].iov_len = 1;
iov[1].iov_base = (void*)r;
iov[1].iov_len = sizeof(*r);
iov[1].iov_len = 3+r->session_data_size;
hdr.msg_iov = iov;
hdr.msg_iovlen = 2;
@@ -104,7 +105,7 @@ static int recv_resume_fetch_reply(worker_st *ws, struct cmd_resume_fetch_reply_
hdr.msg_iovlen = 2;
ret = recvmsg( ws->cmd_fd, &hdr, 0);
if (ret < sizeof(*resp)+1) {
if (ret <= sizeof(*resp)-MAX_SESSION_DATA_SIZE) {
oclog(ws, LOG_ERR, "Received incorrect data (%d, expected %d) from main", ret, (int)sizeof(*resp)+1);
return -1;
}