mirror of
https://gitlab.com/openconnect/ocserv.git
synced 2026-02-10 00:37:00 +08:00
reduce the number of data exchanged during a resumption.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user