commit 4890b7f6da11d7c56a327b764c37715904e6a6ca
parent 9f44b70683587fa7c72c04a54f33ac6625324409
Author: Kyle Milz <kyle@0x30.net>
Date: Tue, 26 Jan 2016 22:36:24 -0700
tests: add new test for payloads > 65535 bytes
Diffstat:
3 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/server/sl b/server/sl
@@ -165,6 +165,12 @@ sub send_msg {
my $header_len = 6;
my $payload_len = length($payload);
+ if ($payload_len > 65535) {
+ my $err = make_error("response too large");
+ send_msg($sock, $ver, $msg_type, $err);
+ return 0;
+ }
+
send_all($sock, pack("nnn", $ver, $msg_type, $payload_len), $header_len);
send_all($sock, $payload, $payload_len);
diff --git a/server/tests/response_too_large/Makefile b/server/tests/response_too_large/Makefile
@@ -0,0 +1,3 @@
+DIFF_MOD=none
+
+include ../test.mk
diff --git a/server/tests/response_too_large/test.pl b/server/tests/response_too_large/test.pl
@@ -0,0 +1,15 @@
+#!/usr/bin/perl -I../
+use strict;
+use warnings;
+use client;
+use test;
+
+# Test that a message greater than 65KB doesn't get sent
+
+my $A = client->new();
+for (1..600) {
+ $A->list_add($_);
+}
+
+$A->lists_get('err');
+fail_msg_ne 'response too large', $A->get_error();