Tadashi Okoshi
slash****@users*****
2005年 6月 28日 (火) 20:51:35 JST
Index: affelio/lib/Affelio/SNS/Handshaker_c.pm diff -u affelio/lib/Affelio/SNS/Handshaker_c.pm:1.5 affelio/lib/Affelio/SNS/Handshaker_c.pm:1.6 --- affelio/lib/Affelio/SNS/Handshaker_c.pm:1.5 Tue Jun 28 16:44:53 2005 +++ affelio/lib/Affelio/SNS/Handshaker_c.pm Tue Jun 28 20:51:34 2005 @@ -4,7 +4,7 @@ # http://affelio.jp/ (Japan) # http://affelio.jp/ (USA and other area) # -# $Id: Handshaker_c.pm,v 1.5 2005/06/28 07:44:53 slash5234 Exp $ +# $Id: Handshaker_c.pm,v 1.6 2005/06/28 11:51:34 slash5234 Exp $ package Affelio::SNS::Handshaker_c; { @@ -22,6 +22,7 @@ use Affelio::misc::Time; use Affelio::exception::Exception; use Affelio::exception::IOException; + use Affelio::exception::NetworkException; use Exporter; @ISA = "Exporter"; @@ -29,11 +30,12 @@ ################################################################# # post_Message + # proto_ver: 1 ################################################################# sub post_Message{ my %arg = @_; #arg (part 1) - my $proto_ver = $arg{proto_ver}; + my $proto_ver = 1.0; my $dest_uri = $arg{dest_uri}; my $src = $arg{src}; my $password = $arg{password}; @@ -99,27 +101,25 @@ }; debug_print("C::post_Message: RPC returned.\n"); if ($@) { - debug_print("C::post_Message: IOException($@)"); - throw Affelio::exception::IOException($@); + throw Affelio::exception::NetworkException($@); } - - debug_print("post_Message: OK : $result->{message}\n"); - debug_print("post_Message: OK : [$result->{flerror}]\n"); - if($result->{flerror} ne "0"){ - debug_print("C::post_Message: IOException($result->{message})"); - throw Affelio::exception::IOException($result->{message}); + throw Affelio::exception::NetworkException($result->{message}); } + + debug_print("post_Message: OK : $result->{message}\n"); + debug_print("post_Message: OK : [$result->{flerror}]\n"); return $result; } ################################################################# # get_F2List(dest_uri, timestamp) + # proto_ver: 1 ################################################################# sub get_F2List { my %arg = @_; - my $proto_ver = $arg{proto_ver}; + my $proto_ver = 1.0; my $dest_uri = $arg{dest_uri}; my $timestamp = $arg{timestamp}; @@ -139,37 +139,42 @@ ) ->result; }; - debug_print("get_F2List: RPC returned.\n"); + debug_print("C::get_F2List: RPC returned.\n"); if ($@) { - throw Affelio::exception::IOException($@); + throw Affelio::exception::NetworkException($@); } - - debug_print("get_F2List: OK : $result->{message}\n"); - debug_print("get_F2List: OK : $result->{flerror}\n"); - - if($result->{flerror} != 0){ - throw Affelio::exception::IOException($result->{message}); + if($result->{flerror} ne "0"){ + throw Affelio::exception::NetworkException($result->{message}); } - return $result->{message}; + + debug_print("get_F2List: OK : $result->{message}\n"); + debug_print("get_F2List: OK : [$result->{flerror}]\n"); + return $result; } ################################################################# - # send_HandShake(dest_uri, proto_ver, timestamp, - # my_nickname, my_AFID); + # send_HandShake(dest_url => $dest_uri, + # timestamp => $timestamp, + # my_nickname => my_nickname, + # my_AFID => my_AFID, + # DH_pub_key_str => DH_pub_key_str, + # mesg => mesg); + # proto_ver: 1.1 ################################################################# sub send_HandShake { my %arg = @_; my $dest_uri = $arg{dest_uri}; # - my $proto_ver = $arg{proto_ver}; + my $proto_ver = 1.1; my $timestamp = $arg{timestamp}; # my $my_nickname = $arg{my_nickname}; my $my_AFID = $arg{my_AFID}; my $my_DH_pub_key_str = $arg{DH_pub_key_str}; + my $my_mesg = $arg{mesg}; - debug_print("send_HandShake: $dest_uri $proto_ver $timestamp $my_domain $my_nickname $my_AFID $my_DH_pub_key_str\n"); + debug_print("send_HandShake: [$dest_uri $proto_ver $timestamp $my_domain $my_nickname $my_AFID $my_DH_pub_key_str $my_mesg]"); ################################# #Arg check @@ -190,36 +195,45 @@ $timestamp, $my_nickname, $my_AFID, - $my_DH_pub_key_str) + $my_DH_pub_key_str, + $my_mesg) ->result; }; debug_print("send_HandShake: RPC returned.\n"); if ($@) { - throw Affelio::exception::IOException($@); + throw Affelio::exception::NetworkException($@); } - + if($result->{flerror} ne "0"){ + throw Affelio::exception::NetworkException($result->{message}); + } + debug_print("send_HandShake: OK : $result->{message}\n"); debug_print("send_HandShake: OK : $result->{flerror}\n"); return $result; } - ################################################################# - # reply_HandShake(dest_uri, proto_ver, timestamp, - # my_nickname, my_AFID, $pass); + # reply_HandShake(dest_url => $dest_uri, + # timestamp => $timestamp, + # my_nickname => my_nickname, + # my_AFID => my_AFID, + # DH_pub_key_str => DH_pub_key_str, + # my_mesg => mesg); + # proto_ver: 1.1 ################################################################# sub reply_HandShake { my %arg = @_; - my $dest_uri = $arg{dest_uri}; # - my $proto_ver = $arg{proto_ver}; + my $proto_ver = 1.1; + my $dest_uri = $arg{dest_uri}; my $timestamp = $arg{timestamp}; # my $my_nickname = $arg{my_nickname}; my $my_AFID = $arg{my_AFID}; my $my_DH_pub_key_str = $arg{DH_pub_key_str}; - - debug_print("reply_HandShake: $dest_uri $proto_ver $timestamp $my_domain $my_nickname $my_AFID $my_DH_pub_key_str\n"); + my $my_mesg = $arg{mesg}; + + debug_print("reply_HandShake: [$dest_uri $proto_ver $timestamp $my_domain $my_nickname $my_AFID $my_DH_pub_key_str $my_mesg]"); ################################# #Arg check @@ -240,20 +254,22 @@ $timestamp, $my_nickname, $my_AFID, - $my_DH_pub_key_str + $my_DH_pub_key_str, + $my_mesg ) ->result; }; debug_print("reply_HandShake: RPC returned.\n"); if ($@) { - throw Affelio::exception::IOException("XML-RPC error[$@]"); + throw Affelio::exception::NetworkException($@); + } + if($result->{flerror} ne "0"){ + throw Affelio::exception::NetworkException($result->{message}); } debug_print("reply_HandShake: $result->{message}\n"); debug_print("reply_HandShake: $result->{flerror}\n"); return $result; } - - } 1; Index: affelio/lib/Affelio/SNS/Handshaker_s.pm diff -u affelio/lib/Affelio/SNS/Handshaker_s.pm:1.6 affelio/lib/Affelio/SNS/Handshaker_s.pm:1.7 --- affelio/lib/Affelio/SNS/Handshaker_s.pm:1.6 Tue Jun 28 16:44:19 2005 +++ affelio/lib/Affelio/SNS/Handshaker_s.pm Tue Jun 28 20:51:34 2005 @@ -4,7 +4,7 @@ # http://affelio.jp/ (Japan) # http://affelio.jp/ (USA and other area) # -# $Id: Handshaker_s.pm,v 1.6 2005/06/28 07:44:19 slash5234 Exp $ +# $Id: Handshaker_s.pm,v 1.7 2005/06/28 11:51:34 slash5234 Exp $ use strict; use XMLRPC::Transport::HTTP; @@ -49,7 +49,8 @@ use vars qw( $AF_DIR); ################################################################## - #Send F2List to a client + #server.F2List + # proto_ver: 1 ################################################################## sub F2List { my $self = shift; @@ -79,15 +80,14 @@ }; } - ################################################################## - #Receive Message + #server.post_Message + # proto_ver:1 ################################################################## sub post_Message { my $self = shift; my $af = Affelio::SNS::Handshaker_s::Util::af_new(); - #Proto_ver=1: Simple messaging among friends Affelio::misc::Debug::debug_print("server.postMesg: starg."); ################################################## @@ -203,8 +203,11 @@ }; } + ################################################################## - #Accept HandShake from a client + #server.HandShake + # proto_ver:1.1 + # Accept HandShake from a client ################################################################## sub HandShake { my $self = shift; @@ -213,21 +216,29 @@ #Distill args ################################################## my ($proto_ver, $timestamp, $peer_nickname, - $peer_af_id, $peer_DH_pub_key_str) = @_; + $peer_af_id, $peer_DH_pub_key_str, $mesg) = @_; my $peer_domain = Affelio::misc::NetMisc::get_remote_domain(%ENV); my $sessionid = "$$" . "$timestamp"; - Affelio::misc::Debug::debug_print("server.HandShake: $proto_ver, $timestamp, $peer_domain, $peer_nickname, $peer_af_id, $peer_DH_pub_key_str\n"); + Affelio::misc::Debug::debug_print("server.HandShake: $proto_ver, $timestamp, $peer_domain, $peer_nickname, $peer_af_id, $peer_DH_pub_key_str $mesg\n"); + ################################################## + #Version check + ################################################## + if($proto_ver > 1.1){ + return { + flerror => XMLRPC::Data->type('boolean', 1), + message => "ERR: UnsupportedProtoVer 1.1" + }; + } ########################################### # Instantiate Affelio ########################################### my $af = Affelio::SNS::Handshaker_s::Util::af_new(); - #$Affelio::SNS::MailAck::AF_DIR = $AF_DIR; ########################################### # Send a message to MessageManager ########################################### - my $message_body="You got a link request from $peer_af_id ($peer_nickname)</A>. Click following link to approve this request.\n\n$af->{site__web_root}/bin/recv_mail_ack.cgi?id=$sessionid"; + my $message_body="You got a link request from $peer_af_id ($peer_nickname)</A>. Click following link to approve this request.\n\n$af->{site__web_root}/bin/recv_mail_ack.cgi?id=$sessionid\n$mesg"; $af->{mesgm}->post_message("Your Affelio", "Link Request from $peer_nickname", "SystemToUser/LinkRequest", @@ -244,7 +255,7 @@ $peer_DH_pub_key_str); Affelio::misc::Debug::debug_print("server.HandShake: DB(W) $sessionid\n"); - + ########################################### # Reply to client ########################################### @@ -258,7 +269,9 @@ ################################################################## - #Accept HandshakeReply from a client + #server.HandShakeReply + # proto_ver:1.1 + # Accept HandshakeReply from a client ################################################################## sub HandShakeReply { my $self = shift; @@ -267,9 +280,19 @@ #Distill args ########################################### my ($proto_ver, $timestamp, $peer_nickname, - $peer_af_id, $peer_DH_pub_key_str) = @_; - Affelio::misc::Debug::debug_print("server.HandShakeReply: $proto_ver, $timestamp, $peer_nickname, $peer_af_id, $peer_DH_pub_key_str\n"); + $peer_af_id, $peer_DH_pub_key_str, $mesg) = @_; + Affelio::misc::Debug::debug_print("server.HandShakeReply: $proto_ver, $timestamp, $peer_nickname, $peer_af_id, $peer_DH_pub_key_str $mesg\n"); + ################################################## + #Version check + ################################################## + if($proto_ver > 1.1){ + return { + flerror => XMLRPC::Data->type('boolean', 1), + message => "ERR: UnsupportedProtoVer 1.1" + }; + } + ########################################### # Instantiate Affelio ########################################### @@ -336,7 +359,7 @@ ########################################### # "peer's friends" = my F2 friends Affelio::misc::Debug::debug_print("server.HandshakeReply: Let's download peer's flist!"); - my $ret = Affelio::SNS::Handshaker_c::get_F2List(dest_uri => "$peer_af_id/bin/xml-rpc-serv.cgi", proto_ver => 1, timestamp => 0); + my $ret = Affelio::SNS::Handshaker_c::get_F2List(dest_uri => "$peer_af_id/bin/xml-rpc-serv.cgi", timestamp => 0); Affelio::misc::Debug::debug_print("server.HandshakeReply: get_F2List finished."); Affelio::misc::Debug::debug_print("server.HandshakeReply: List I've got is [$ret]");