Merge branch 'cc/git-packet-pm'
Code clean-up. * cc/git-packet-pm: Git/Packet.pm: use 'if' instead of 'unless' Git/Packet: clarify that packet_required_key_val_read allows EOF
This commit is contained in:
@ -17,7 +17,7 @@ our @EXPORT = qw(
|
|||||||
packet_compare_lists
|
packet_compare_lists
|
||||||
packet_bin_read
|
packet_bin_read
|
||||||
packet_txt_read
|
packet_txt_read
|
||||||
packet_required_key_val_read
|
packet_key_val_read
|
||||||
packet_bin_write
|
packet_bin_write
|
||||||
packet_txt_write
|
packet_txt_write
|
||||||
packet_flush
|
packet_flush
|
||||||
@ -68,28 +68,33 @@ sub packet_bin_read {
|
|||||||
|
|
||||||
sub remove_final_lf_or_die {
|
sub remove_final_lf_or_die {
|
||||||
my $buf = shift;
|
my $buf = shift;
|
||||||
unless ( $buf =~ s/\n$// ) {
|
if ( $buf =~ s/\n$// ) {
|
||||||
die "A non-binary line MUST be terminated by an LF.\n"
|
return $buf;
|
||||||
. "Received: '$buf'";
|
|
||||||
}
|
}
|
||||||
return $buf;
|
die "A non-binary line MUST be terminated by an LF.\n"
|
||||||
|
. "Received: '$buf'";
|
||||||
}
|
}
|
||||||
|
|
||||||
sub packet_txt_read {
|
sub packet_txt_read {
|
||||||
my ( $res, $buf ) = packet_bin_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);
|
$buf = remove_final_lf_or_die($buf);
|
||||||
}
|
}
|
||||||
return ( $res, $buf );
|
return ( $res, $buf );
|
||||||
}
|
}
|
||||||
|
|
||||||
sub packet_required_key_val_read {
|
# Read a text packet, expecting that it is in the form "key=value" for
|
||||||
|
# the given $key. An EOF does not trigger any error and is reported
|
||||||
|
# back to the caller (like packet_txt_read() does). Die if the "key"
|
||||||
|
# part of "key=value" does not match the given $key, or the value part
|
||||||
|
# is empty.
|
||||||
|
sub packet_key_val_read {
|
||||||
my ( $key ) = @_;
|
my ( $key ) = @_;
|
||||||
my ( $res, $buf ) = packet_txt_read();
|
my ( $res, $buf ) = packet_txt_read();
|
||||||
unless ( $res == -1 or ( $buf =~ s/^$key=// and $buf ne '' ) ) {
|
if ( $res == -1 or ( $buf =~ s/^$key=// and $buf ne '' ) ) {
|
||||||
die "bad $key: '$buf'";
|
return ( $res, $buf );
|
||||||
}
|
}
|
||||||
return ( $res, $buf );
|
die "bad $key: '$buf'";
|
||||||
}
|
}
|
||||||
|
|
||||||
sub packet_bin_write {
|
sub packet_bin_write {
|
||||||
|
@ -70,7 +70,7 @@ print $debug "init handshake complete\n";
|
|||||||
$debug->flush();
|
$debug->flush();
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
my ( $res, $command ) = packet_required_key_val_read("command");
|
my ( $res, $command ) = packet_key_val_read("command");
|
||||||
if ( $res == -1 ) {
|
if ( $res == -1 ) {
|
||||||
print $debug "STOP\n";
|
print $debug "STOP\n";
|
||||||
exit();
|
exit();
|
||||||
@ -106,7 +106,7 @@ while (1) {
|
|||||||
packet_txt_write("status=success");
|
packet_txt_write("status=success");
|
||||||
packet_flush();
|
packet_flush();
|
||||||
} else {
|
} else {
|
||||||
my ( $res, $pathname ) = packet_required_key_val_read("pathname");
|
my ( $res, $pathname ) = packet_key_val_read("pathname");
|
||||||
if ( $res == -1 ) {
|
if ( $res == -1 ) {
|
||||||
die "unexpected EOF while expecting pathname";
|
die "unexpected EOF while expecting pathname";
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user