diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-12-25 12:11:36 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-12-25 12:11:36 +0100 |
commit | 4e51389306e27a6f7b470d8835cdcd89d98e96c7 (patch) | |
tree | 60ce461d90aee1687e7e51e2708cdf0a71caa26c | |
parent | 1e5f48659a86bd2211da1af510681af6176f06bc (diff) | |
download | gnutls-4e51389306e27a6f7b470d8835cdcd89d98e96c7.tar.gz |
simplified gnutls_handshake_alloc
-rw-r--r-- | lib/ext/session_ticket.c | 2 | ||||
-rw-r--r-- | lib/ext/status_request.c | 2 | ||||
-rw-r--r-- | lib/gnutls_handshake.c | 12 | ||||
-rw-r--r-- | lib/gnutls_kx.c | 4 | ||||
-rw-r--r-- | lib/gnutls_mbuffers.h | 19 |
5 files changed, 19 insertions, 20 deletions
diff --git a/lib/ext/session_ticket.c b/lib/ext/session_ticket.c index af965ee20d..6ce23efb84 100644 --- a/lib/ext/session_ticket.c +++ b/lib/ext/session_ticket.c @@ -578,7 +578,7 @@ int _gnutls_send_new_session_ticket(gnutls_session_t session, int again) ticket.encrypted_state_len + TAG_SIZE; bufel = - _gnutls_handshake_alloc(session, 4 + 2 + ticket_len, + _gnutls_handshake_alloc(session, 4 + 2 + ticket_len); if (!bufel) { gnutls_assert(); diff --git a/lib/ext/status_request.c b/lib/ext/status_request.c index d7009aab5b..3e831b5bba 100644 --- a/lib/ext/status_request.c +++ b/lib/ext/status_request.c @@ -540,7 +540,7 @@ _gnutls_send_server_certificate_status(gnutls_session_t session, int again) data_size = priv->response.size + 4; bufel = - _gnutls_handshake_alloc(session, data_size, data_size); + _gnutls_handshake_alloc(session, data_size); if (!bufel) return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR); diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c index c5baebf7cf..dc193bcd81 100644 --- a/lib/gnutls_handshake.c +++ b/lib/gnutls_handshake.c @@ -677,7 +677,7 @@ static int _gnutls_send_finished(gnutls_session_t session, int again) if (again == 0) { bufel = - _gnutls_handshake_alloc(session, MAX_VERIFY_DATA_SIZE, + _gnutls_handshake_alloc(session, MAX_VERIFY_DATA_SIZE); if (bufel == NULL) { gnutls_assert(); @@ -1150,7 +1150,7 @@ _gnutls_send_empty_handshake(gnutls_session_t session, mbuffer_st *bufel; if (again == 0) { - bufel = _gnutls_handshake_alloc(session, 0, 0); + bufel = _gnutls_handshake_alloc(session, 0); if (bufel == NULL) { gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; @@ -1942,12 +1942,13 @@ static int _gnutls_send_client_hello(gnutls_session_t session, int again) */ bufel = - _gnutls_handshake_alloc(session, datalen, + _gnutls_handshake_alloc(session, datalen + MAX_EXT_DATA_LENGTH); if (bufel == NULL) { gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; } + _mbuffer_set_udata_size(bufel, datalen); data = _mbuffer_get_udata_ptr(bufel); /* if we are resuming a session then we set the @@ -2153,7 +2154,6 @@ static int _gnutls_send_server_hello(gnutls_session_t session, int again) bufel = _gnutls_handshake_alloc(session, - datalen + extdata.length, datalen + extdata.length); if (bufel == NULL) { gnutls_assert(); @@ -2437,7 +2437,7 @@ static int _gnutls_send_supplemental(gnutls_session_t session, int again) } bufel = - _gnutls_handshake_alloc(session, buf.length, + _gnutls_handshake_alloc(session, buf.length); if (bufel == NULL) { gnutls_assert(); @@ -2843,7 +2843,7 @@ static ssize_t send_change_cipher_spec(gnutls_session_t session, int again) const version_entry_st *vers; if (again == 0) { - bufel = _gnutls_handshake_alloc(session, 1, 1); + bufel = _gnutls_handshake_alloc(session, 1); if (bufel == NULL) return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR); diff --git a/lib/gnutls_kx.c b/lib/gnutls_kx.c index 23542144ef..04e7a69593 100644 --- a/lib/gnutls_kx.c +++ b/lib/gnutls_kx.c @@ -39,7 +39,7 @@ /* This is a temporary function to be used before the generate_* internal API is changed to use mbuffers. For now we don't avoid the extra alloc + memcpy. */ -static inline int +static int send_handshake(gnutls_session_t session, uint8_t * data, size_t size, gnutls_handshake_description_t type) { @@ -53,7 +53,7 @@ send_handshake(gnutls_session_t session, uint8_t * data, size_t size, return GNUTLS_E_INVALID_REQUEST; } - bufel = _gnutls_handshake_alloc(session, size, size); + bufel = _gnutls_handshake_alloc(session, size); if (bufel == NULL) { gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; diff --git a/lib/gnutls_mbuffers.h b/lib/gnutls_mbuffers.h index 353254d3b0..e48353da97 100644 --- a/lib/gnutls_mbuffers.h +++ b/lib/gnutls_mbuffers.h @@ -50,14 +50,6 @@ int _mbuffer_append_data(mbuffer_st * bufel, void *newdata, /* For "user" use. One can have buffer data and header. */ -inline static void -_mbuffer_set_udata(mbuffer_st * bufel, void *data, size_t data_size) -{ - memcpy(bufel->msg.data + bufel->mark + bufel->uhead_mark, data, - data_size); - bufel->msg.size = data_size + bufel->uhead_mark + bufel->mark; -} - inline static void *_mbuffer_get_uhead_ptr(mbuffer_st * bufel) { return bufel->msg.data + bufel->mark; @@ -73,6 +65,14 @@ inline static void _mbuffer_set_udata_size(mbuffer_st * bufel, size_t size) bufel->msg.size = size + bufel->uhead_mark + bufel->mark; } +inline static void +_mbuffer_set_udata(mbuffer_st * bufel, void *data, size_t data_size) +{ + memcpy(_mbuffer_get_udata_ptr(bufel), data, + data_size); + _mbuffer_set_udata_size(bufel, data_size); +} + inline static size_t _mbuffer_get_udata_size(mbuffer_st * bufel) { return bufel->msg.size - bufel->uhead_mark - bufel->mark; @@ -104,7 +104,6 @@ inline static void _mbuffer_set_uhead_size(mbuffer_st * bufel, size_t size) inline static mbuffer_st *_gnutls_handshake_alloc(gnutls_session_t session, - size_t size, size_t maximum) { mbuffer_st *bufel = @@ -113,8 +112,8 @@ inline static mbuffer_st *_gnutls_handshake_alloc(gnutls_session_t session, if (!bufel) return NULL; - _mbuffer_set_udata_size(bufel, HANDSHAKE_HEADER_SIZE(session) + size); _mbuffer_set_uhead_size(bufel, HANDSHAKE_HEADER_SIZE(session)); + _mbuffer_set_udata_size(bufel, maximum); return bufel; } |