]> 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:19:20 +0000 (22:19 +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>
(cherry picked from commit f95010ad247a8998e0c39e394236251fca316849)

src/openvpn/ssl.c

index daffbf3d08d275854c6dd5ced649ce5da200587b..b62dc128888f37d10313f9fba4a3804447c88963 100644 (file)
@@ -267,16 +267,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 */
 }
 
 /*