]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Account for peer-id in frame size calculation
authorSteffan Karger <steffan@karger.me>
Fri, 23 Jan 2015 19:52:41 +0000 (20:52 +0100)
committerGert Doering <gert@greenie.muc.de>
Fri, 23 Jan 2015 21:17:51 +0000 (22:17 +0100)
Data channel packet using P_DATA_V2 will use three bytes extra for the
peer-id. This needs to be accounted for, otherwise OpenVPN will throw

  TCP/UDP packet too large on write to [AF_INET]10.1.1.1:1194

warnings.

Signed-off-by: Steffan Karger <steffan@karger.me>
Acked-by: Lev Stipakov <lstipakov@gmail.com>
Message-Id: <1422042761-10014-1-git-send-email-steffan@karger.me>
URL: http://article.gmane.org/gmane.network.openvpn.devel/9418
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/ssl.c

index 0bca28d053053d8ff7cec7adb0220c2d9e7a381f..80293efdeaf1ceaf7974fe2f716f4adbe6620ba0 100644 (file)
@@ -264,16 +264,14 @@ tls_get_cipher_name_pair (const char * cipher_name, size_t len) {
   return NULL;
 }
 
-/*
- * Max number of bytes we will add
- * for data structures common to both
- * data and control channel packets.
- * (opcode only). 
+/**
+ * Max number of bytes we will add for data structures common to both data and
+ * control channel packets (1 byte opcode + 3 bytes peer-id).
  */
 void
 tls_adjust_frame_parameters(struct frame *frame)
 {
-  frame_add_to_extra_frame (frame, 1); /* space for opcode */
+  frame_add_to_extra_frame (frame, 1 + 3); /* space for opcode + peer-id */
 }
 
 /*