summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2013-12-25 12:11:36 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2013-12-25 12:11:36 +0100
commit4e51389306e27a6f7b470d8835cdcd89d98e96c7 (patch)
tree60ce461d90aee1687e7e51e2708cdf0a71caa26c
parent1e5f48659a86bd2211da1af510681af6176f06bc (diff)
downloadgnutls-4e51389306e27a6f7b470d8835cdcd89d98e96c7.tar.gz
simplified gnutls_handshake_alloc
-rw-r--r--lib/ext/session_ticket.c2
-rw-r--r--lib/ext/status_request.c2
-rw-r--r--lib/gnutls_handshake.c12
-rw-r--r--lib/gnutls_kx.c4
-rw-r--r--lib/gnutls_mbuffers.h19
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;
}