sub remove_final_lf_or_die {
my $buf = shift;
- unless ( $buf =~ s/\n$// ) {
- die "A non-binary line MUST be terminated by an LF.\n"
- . "Received: '$buf'";
+ if ( $buf =~ s/\n$// ) {
+ return $buf;
}
- return $buf;
+ die "A non-binary line MUST be terminated by an LF.\n"
+ . "Received: '$buf'";
}
sub packet_txt_read {
my ( $res, $buf ) = packet_bin_read();
- unless ( $res == -1 or $buf eq '' ) {
+ if ( $res != -1 and $buf ne '' ) {
$buf = remove_final_lf_or_die($buf);
}
return ( $res, $buf );
sub packet_key_val_read {
my ( $key ) = @_;
my ( $res, $buf ) = packet_txt_read();
- unless ( $res == -1 or ( $buf =~ s/^$key=// and $buf ne '' ) ) {
- die "bad $key: '$buf'";
+ if ( $res == -1 or ( $buf =~ s/^$key=// and $buf ne '' ) ) {
+ return ( $res, $buf );
}
- return ( $res, $buf );
+ die "bad $key: '$buf'";
}
sub packet_bin_write {