]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
simplified gnutls_handshake_alloc
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Wed, 25 Dec 2013 11:11:36 +0000 (12:11 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Wed, 25 Dec 2013 11:11:36 +0000 (12:11 +0100)
lib/ext/session_ticket.c
lib/ext/status_request.c
lib/gnutls_handshake.c
lib/gnutls_kx.c
lib/gnutls_mbuffers.h

index af965ee20d120a1dc18852b7ccd0d750ad77bc7b..6ce23efb84dcf2a11efbeb912d625e51f709bf77 100644 (file)
@@ -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();
index d7009aab5b677dabf86aca9b90959cfd604ff655..3e831b5bbae5ad11ff406a27e471e79d00016344 100644 (file)
@@ -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);
 
index c5baebf7cfc181ab7dce79fdfd77db569c19d1de..dc193bcd8135a00e559cee40f89263b309f72ab9 100644 (file)
@@ -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);
 
index 23542144ef82d54feed7cb98a5a7d7256728abeb..04e7a69593c8db3a395d4341bbf10fcb0eb0caf4 100644 (file)
@@ -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;
index 353254d3b06f0044b1919ff97a7f3b3996be8dc6..e48353da97905f4e08e05ebc93ec502d521001b5 100644 (file)
@@ -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;
 }