X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=SIP2.pm;h=e5ec9bdbb72ac74e7e83ad44f95b93ea3a60ee5d;hb=7108951ead6fcb1d3719c4ea7c79cfffc520ed02;hp=612525af1307cc40211a01d6536cb7f981c766c5;hpb=23e82796230d1fd745f6936f4b877807c51a0d9f;p=Biblio-SIP2.git diff --git a/SIP2.pm b/SIP2.pm index 612525a..e5ec9bd 100644 --- a/SIP2.pm +++ b/SIP2.pm @@ -2,6 +2,13 @@ package SIP2; use Data::Dump qw(); +our $sock; + +sub connect { + $sock = IO::Socket::INET->new( @_ ) || die "can't connect to ", dump(@_), ": $!"; +} + + my $message_codes; foreach ( ) { my ($code,$description) = split(/\t/,$_,2); @@ -15,6 +22,23 @@ sub dump_message { warn $prefix, " ", $message_codes->{$code}, Data::Dump::dump($message), "\n"; } + +sub send { + my ( $send ) = @_; + SIP2::dump_message '>>>>', $send; + print $sock "$send\r\n"; + $sock->flush; + +# local $/ = "\r"; + + my $expect = substr($send,0,2) | 0x01; + + my $in = <$sock>; + SIP2::dump_message '<<<<', $in; + die "expected $expect" unless substr($in,0,2) != $expect; +} + + 1; __DATA__