eliminate message length field in EAP-TNC
authorAndreas Steffen <andreas.steffen@strongswan.org>
Mon, 9 Jul 2012 20:08:04 +0000 (22:08 +0200)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Wed, 11 Jul 2012 15:09:05 +0000 (17:09 +0200)
src/libcharon/plugins/tnccs_11/tnccs_11.c
src/libcharon/plugins/tnccs_20/tnccs_20.c
src/libtls/tls_eap.c

index 3673221..111cb5f 100644 (file)
@@ -457,7 +457,7 @@ METHOD(tls_t, build, status_t,
                DBG1(DBG_TNC, "sending TNCCS Batch (%d bytes) for Connection ID %u",
                                           data.len, this->connection_id);
                DBG3(DBG_TNC, "%.*s", data.len, data.ptr);
-               *msglen = data.len;
+               *msglen = 0;
 
                if (data.len > *buflen)
                {
index 606fc52..66f2f66 100644 (file)
@@ -641,7 +641,7 @@ METHOD(tls_t, build, status_t,
                                                   pb_tnc_batch_type_names, batch_type, data.len,
                                                   this->connection_id);
                        DBG3(DBG_TNC, "%B", &data);
-                       *msglen = data.len;
+                       *msglen = 0;
 
                        if (data.len > *buflen)
                        {
index e84da70..59723fd 100644 (file)
@@ -251,11 +251,15 @@ static status_t build_pkt(private_tls_eap_t *this, chunk_t *out)
                                }
                                kind = "packet";
                        }
-                       else
+                       else if (this->type != EAP_TNC)
                        {
                                this->first_fragment = TRUE;
                                kind = "final fragment";
                        }
+                       else
+                       {
+                               kind = "packet";
+                       }
                        break;
                default:
                        return status;
@@ -448,7 +452,7 @@ tls_eap_t *tls_eap_create(eap_type_t type, tls_t *tls, size_t frag_size,
                },
                .type = type,
                .is_server = tls->is_server(tls),
-               .first_fragment = TRUE,
+               .first_fragment = (type != EAP_TNC),
                .frag_size = frag_size,
                .max_msg_count = max_msg_count,
                .include_length = include_length,