shlist

share and manage lists between multiple people
Log | Files | Refs

commit 6a07e964a64edaa17c3e6456fa5b580bfc75e213
parent e1dbe81e5384e857a787f75b21cf9febac756b5b
Author: kyle <kyle@getaddrinfo.net>
Date:   Thu, 15 Oct 2015 21:50:33 -0600

sl: be less forgiving on basic protocol errors

Diffstat:
Msl | 14+++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/sl b/sl @@ -170,30 +170,30 @@ while (my ($new_sock, $bin_addr) = $sock->accept()) { my $bread = read $new_sock, my $metadata, 4; if ($bread == 0) { $done = 1; - next; + last; } elsif ($bread != 4) { print "warn: $addr: read $bread instead of 4 bytes\n"; - next; + last; } my ($msg_type, $msg_size) = unpack("nn", $metadata); # validate message type if (!defined $msg_type) { print "warn: $addr: error unpacking msg type\n"; - next; + last; } elsif ($msg_type > @msg_handlers) { print "warn: $addr: unknown message type " . sprintf "0x%x\n", $msg_type; - next; + last; } # validate message size if (!defined $msg_size) { print "warn: $addr: error unpacking msg size\n"; - next; + last; } if ($msg_size == 0 || $msg_size > 1024) { print "warn: $addr: message size not 0 < $msg_size <= 1024\n"; - next; + last; } print "info: $addr: received msg type $msg_type, $msg_size bytes\n"; @@ -205,7 +205,7 @@ while (my ($new_sock, $bin_addr) = $sock->accept()) { print "warn: $addr: read $bread instead of msg size\n"; if ($bread < $msg_size) { - next; + last; } # we read more bytes than we were expecting, keep going }