Tadashi Okoshi
slash****@users*****
2006年 1月 19日 (木) 16:18:09 JST
Index: affelio/lib/Affelio/SNS/Handshaker_c.pm
diff -u affelio/lib/Affelio/SNS/Handshaker_c.pm:1.13 affelio/lib/Affelio/SNS/Handshaker_c.pm:1.14
--- affelio/lib/Affelio/SNS/Handshaker_c.pm:1.13 Sat Dec 10 11:12:50 2005
+++ affelio/lib/Affelio/SNS/Handshaker_c.pm Thu Jan 19 16:18:09 2006
@@ -14,15 +14,15 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
-# $Id: Handshaker_c.pm,v 1.13 2005/12/10 02:12:50 slash5234 Exp $
+# $Id: Handshaker_c.pm,v 1.14 2006/01/19 07:18:09 slash5234 Exp $
package Affelio::SNS::Handshaker_c;
{
- #use strict;
+ use strict;
use lib("../../../extlib/");
+ use Crypt::DH;
use XMLRPC::Lite;
use Error qw(:try);
- use Crypt::DH;
use MIME::Base64::Perl;
use lib("../../../lib/");
@@ -36,8 +36,141 @@
use Affelio::exception::NetworkException;
use Exporter;
- @ISA = "Exporter";
- @EXPORT = qw (send_HandShake reply_HandShake get_F2List post_Message get_news);
+ @Affelio::SNS::Handshaker_c::ISA= "Exporter";
+ @Affelio::SNS::Handshaker_c::EXPORT = qw(send_HandShake reply_HandShake get_F2List post_Message get_news);
+
+ #################################################################
+ # send_HandShake(dest_url => $dest_uri,
+ # my_nickname => my_nickname,
+ # my_AFID => my_AFID,
+ # mesg => mesg,
+ # timestamp => timestamp);
+ # proto_ver: 1.1
+ #################################################################
+ sub send_HandShake {
+ my %arg = @_;
+ my $dest_uri = $arg{dest_uri};
+ my $my_nickname = $arg{my_nickname};
+ my $my_AFID = $arg{my_AFID};
+ my $my_mesg = $arg{mesg};
+ my $timestamp = $arg{timestamp};
+
+ my $proto_ver = 1.1;
+ my $MIMed_mesg = encode_base64($my_mesg);
+
+ #################################
+ #Arg check (1): dest_uri
+ #################################
+ if ($dest_uri !~ /^http/) {
+ throw Affelio::exception::InvalidInputException("dest_url");
+ }
+ my $dest_xml_uri = $dest_uri . "/bin/xml-rpc-serv.cgi";
+
+ #################################################
+ #prepare DH pub key
+ #RFC 2412 - The OAKLEY Key Determination Protocol
+ #Group 1: A 768 bit prime
+ #################################################
+ my $mydh = Crypt::DH->new;
+ my $DH_g="2";
+ my $DH_p="1552518092300708935130918131258481755631334049434514313202351194902966239949102107258669453876591642442910007680288864229150803718918046342632727613031282983744380820890196288509170691316593175367469551763119843371637221007210577919";
+ $mydh->g($DH_g);
+ $mydh->p($DH_p);
+ $mydh->generate_keys;
+ my $my_DH_pub_key_str = $mydh->pub_key->bstr;
+ my $my_DH_pri_key_str = $mydh->priv_key->bstr;
+
+ debug_print("send_HandShake: [$dest_xml_uri $proto_ver $timestamp $my_nickname $my_AFID $my_DH_pub_key_str $my_mesg $MIMed_mesg]");
+
+ #################################
+ #Execute XMLRPC
+ #################################
+ my $res = eval {
+ XMLRPC::Lite
+ ->proxy($dest_xml_uri)
+ ->call(
+ 'affelio.HandShake',
+ $proto_ver,
+ $timestamp,
+ $my_nickname,
+ $my_AFID,
+ $my_DH_pub_key_str,
+ $MIMed_mesg)
+ ->res;
+ };
+ debug_print("send_HandShake: RPC returned.\n");
+ if ($@) {
+ throw Affelio::exception::NetworkException($@);
+ }
+ if($res->{flerror} ne "0"){
+ throw Affelio::exception::NetworkException($res->{message});
+ }
+
+ debug_print("send_HandShake: OK:[$res->{flerror}] [$res->{message}]");
+ debug_print("send_HandShake: end.");
+ return $my_DH_pri_key_str;
+ }
+
+
+ #################################################################
+ # 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 $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};
+ my $my_mesg = $arg{mesg};
+
+ debug_print("reply_HandShake: [$dest_uri $proto_ver $timestamp $my_nickname $my_AFID $my_DH_pub_key_str $my_mesg]");
+
+ #################################
+ #Arg check
+ #################################
+ if ($dest_uri !~ /^http/) {
+ throw Affelio::exception::InvalidInputException("dest_url");
+ }
+ my $dest_xml_uri = $dest_uri . "/bin/xml-rpc-serv.cgi";
+
+ #################################
+ #Execute XMLRPC
+ #################################
+ my $res = eval {
+ XMLRPC::Lite
+ ->proxy($dest_xml_uri)
+ ->call(
+ 'affelio.HandShakeReply',
+ $proto_ver,
+ $timestamp,
+ $my_nickname,
+ $my_AFID,
+ $my_DH_pub_key_str,
+ $my_mesg
+ )
+ ->res;
+ };
+ debug_print("reply_HandShake: RPC returned.\n");
+ if ($@) {
+ throw Affelio::exception::NetworkException($@);
+ }
+ if($res->{flerror} ne "0"){
+ throw Affelio::exception::NetworkException($res->{message});
+ }
+
+ debug_print("reply_HandShake: [$res->{flerror}] [$res->{message}]");
+ debug_print("reply_HandShake: end.");
+ return $res;
+ }
##################################################################
#get_news
@@ -53,9 +186,20 @@
debug_print("C::get_news: dest=[$dest_uri]");
debug_print("C::get_news: wsse=[$xwsse_mesg]");
- my $result = eval {
+ #################################
+ #Arg check
+ #################################
+ if ($dest_uri !~ /^http/) {
+ throw Affelio::exception::InvalidInputException("dest_uri");
+ }
+ my $dest_xml_uri = $dest_uri . "/bin/xml-rpc-serv.cgi";
+
+ #################################
+ #Execute XMLRPC
+ #################################
+ my $res = eval {
XMLRPC::Lite
- ->proxy($dest_uri) #XML
+ ->proxy($dest_xml_uri) #XML
->call(
'affelio.get_news',
$proto_ver,
@@ -69,13 +213,13 @@
if ($@) {
throw Affelio::exception::NetworkException($@);
}
- if($result->{flerror} ne "0"){
- throw Affelio::exception::NetworkException("XML-RPC Error: " . $result->{message});
+ if($res->{flerror} ne "0"){
+ throw Affelio::exception::NetworkException("XML-RPC Error: " . $res->{message});
}
- debug_print("C::get_news: OK : msg=[$result->{message}]\n");
- debug_print("C::get_news: OK : err=[$result->{flerror}]\n");
- return $result;
+ debug_print("C::get_news: OK: [$res->{flerror}] [$res->{message}]");
+ debug_print("C::get_news: end.");
+ return $res;
}
#################################################################
@@ -131,11 +275,19 @@
debug_print("C::post_Message: [$MIMed]");
############################
+ #xml uri
+ ############################
+ if ($dest_uri !~ /^http/) {
+ throw Affelio::exception::InvalidInputException("dest_uri");
+ }
+ my $dest_xml_uri = $dest_uri . "/bin/xml-rpc-serv.cgi";
+
+ ############################
#Send to the destination through XMLRPC
############################
- my $result = eval {
+ my $res = eval {
XMLRPC::Lite
- ->proxy($dest_uri) #XML
+ ->proxy($dest_xml_uri) #XML
->call(
'affelio.post_Message',
$proto_ver,
@@ -149,16 +301,15 @@
if ($@) {
throw Affelio::exception::NetworkException($@);
}
- if($result->{flerror} ne "0"){
- throw Affelio::exception::NetworkException("XML-RPC Error: " . $result->{message});
+ if($res->{flerror} ne "0"){
+ throw Affelio::exception::NetworkException("XML-RPC Error: " . $res->{message});
}
- debug_print("post_Message: OK : $result->{message}\n");
- debug_print("post_Message: OK : [$result->{flerror}]\n");
- return $result;
+ debug_print("C::post_mesg: OK: [$res->{flerror}] [$res->{message}]");
+ debug_print("C::post_mesg: end.");
+ return $res;
}
-
#################################################################
# get_F2List(dest_uri, timestamp)
# proto_ver: 1
@@ -171,154 +322,41 @@
debug_print("get_F2List: $dest_uri $proto_ver $timestamp");
- if ($dest_uri !~ /^http/) {
- throw Affelio::exception::InvalidInputException("dest_url");
- }
-
- my $result = eval {
- XMLRPC::Lite
- ->proxy($dest_uri)
- ->call(
- 'affelio.F2List',
- $proto_ver,
- $timestamp,
- )
- ->result;
- };
- debug_print("C::get_F2List: RPC returned.\n");
- if ($@) {
- throw Affelio::exception::NetworkException($@);
- }
- if($result->{flerror} ne "0"){
- throw Affelio::exception::NetworkException($result->{message});
- }
-
- debug_print("get_F2List: OK : $result->{message}\n");
- debug_print("get_F2List: OK : [$result->{flerror}]\n");
- return $result;
- }
-
-
- #################################################################
- # 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 = 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};
- my $MIMed_mesg = encode_base64($my_mesg);
-
- debug_print("send_HandShake: size=[" . length($my_mesg));
- debug_print("send_HandShake: size=[" . length($MIMed_mesg));
- debug_print("send_HandShake: [$dest_uri $proto_ver $timestamp $my_domain $my_nickname $my_AFID $my_DH_pub_key_str $my_mesg]");
-
#################################
#Arg check
#################################
if ($dest_uri !~ /^http/) {
- throw Affelio::exception::InvalidInputException("dest_url");
+ throw Affelio::exception::InvalidInputException("dest_uri");
}
-
+ my $dest_xml_uri = $dest_uri . "/bin/xml-rpc-serv.cgi";
+
#################################
#Execute XMLRPC
#################################
- my $result = eval {
+ my $res = eval {
XMLRPC::Lite
- ->proxy($dest_uri)
+ ->proxy($dest_xml_uri)
->call(
- 'affelio.HandShake',
+ 'affelio.F2List',
$proto_ver,
$timestamp,
- $my_nickname,
- $my_AFID,
- $my_DH_pub_key_str,
- $MIMed_mesg)
+ )
->result;
};
- debug_print("send_HandShake: RPC returned.\n");
+ debug_print("C::get_F2List: RPC returned.\n");
if ($@) {
throw Affelio::exception::NetworkException($@);
}
- if($result->{flerror} ne "0"){
- throw Affelio::exception::NetworkException($result->{message});
+ if($res->{flerror} ne "0"){
+ throw Affelio::exception::NetworkException($res->{message});
}
- debug_print("send_HandShake: OK : $result->{message}\n");
- debug_print("send_HandShake: OK : $result->{flerror}\n");
- return $result;
+ debug_print("C::get_F2list: OK: [$res->{flerror}] [$res->{message}]");
+ debug_print("C::get_F2list: end.");
+ return $res;
}
- #################################################################
- # 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 $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};
- 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
- #################################
- if ($dest_uri !~ /^http/) {
- throw Affelio::exception::InvalidInputException("dest_url");
- }
-
- #################################
- #Execute XMLRPC
- #################################
- my $result = eval {
- XMLRPC::Lite
- ->proxy($dest_uri)
- ->call(
- 'affelio.HandShakeReply',
- $proto_ver,
- $timestamp,
- $my_nickname,
- $my_AFID,
- $my_DH_pub_key_str,
- $my_mesg
- )
- ->result;
- };
- debug_print("reply_HandShake: RPC returned.\n");
- if ($@) {
- 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.36 affelio/lib/Affelio/SNS/Handshaker_s.pm:1.37
--- affelio/lib/Affelio/SNS/Handshaker_s.pm:1.36 Wed Dec 21 19:02:18 2005
+++ affelio/lib/Affelio/SNS/Handshaker_s.pm Thu Jan 19 16:18:09 2006
@@ -14,7 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
-# $Id: Handshaker_s.pm,v 1.36 2005/12/21 10:02:18 slash5234 Exp $
+# $Id: Handshaker_s.pm,v 1.37 2006/01/19 07:18:09 slash5234 Exp $
########################################################################
#package Affelio::SNS::Handshaker_s::Util;
@@ -72,7 +72,80 @@
}
##################################################################
- #server.get_news
+ #affelio.HandShake
+ # proto_ver:1.1
+ # Accept HandShake from a client
+ ##################################################################
+ sub HandShake {
+ my $self = shift;
+
+ ##################################################
+ #Distill args
+ ##################################################
+ my ($proto_ver, $timestamp, $peer_nickname,
+ $peer_af_id, $peer_DH_pub_key_str, $MIMed_mesg) = @_;
+ my $peer_domain = Affelio::misc::NetMisc::get_remote_domain(%ENV);
+ my $sessionid = "$$" . "$timestamp";
+ debug_print("server.HandShake: size=["
+ . length($MIMed_mesg));
+
+ debug_print("server.HandShake: $proto_ver, $timestamp, $peer_domain, $peer_nickname, $peer_af_id, $peer_DH_pub_key_str [$MIMed_mesg]\n");
+ ##################################################
+ #Version check
+ ##################################################
+ if($proto_ver > 1.1){
+ return {
+ flerror => XMLRPC::Data->type('boolean', 102),
+ message => "ERR:102 UnsupportedProtoVer 1.1"
+ };
+ }
+
+ ###########################################
+ # Instantiate Affelio
+ ###########################################
+ my $af = Affelio::SNS::Handshaker_s::Util::af_new();
+
+ ###########################################
+ # Send a message to MessageManager
+ ###########################################
+ my $click_url = "$af->{site__web_root}/bin/recv_mail_ack.cgi?id=$sessionid";
+ my $mesg1 = '<AF_M text="_HANDSHAKE_REQUEST_MAIL_MESG1" param="slash">';
+
+ #. "<AF_M text='_HANDSHAKE_REQUEST_MAIL_MESG2' param='$peer_nickname'>" . "<AF_M text='_HANDSHAKE_REQUEST_MAIL_MESG3' param='$peer_af_id'>" . "<AF_M text='_HANDSHAKE_REQUEST_MAIL_MESG4' param='$click_url'>";
+
+ my $message_body= MIME::Base64::Perl::encode_base64($af->translate_templateL10N($mesg1));
+
+ $af->getMESGM->post_message("Your Affelio",
+ "Link Request from $peer_nickname",
+ "SystemToUser/LinkRequest/Encode-Base64",
+ $message_body);
+
+ ###########################################
+ # Save peer's info into "received_Handshake" DB
+ ###########################################
+ my $tmpdb= new Affelio::SNS::Handshaker_tmpDB($af);
+ $tmpdb->add_received_Handshake($sessionid,
+ $peer_af_id,
+ $peer_nickname,
+ $timestamp,
+ $peer_DH_pub_key_str);
+
+ debug_print("server.HandShake: DB(W) $sessionid\n");
+
+ undef($af);
+ ###########################################
+ # Reply to client
+ ###########################################
+ my $msg = "OK: Thanks for your HandShake.";
+ return {
+ flerror => XMLRPC::Data->type('boolean', 0),
+ message => $msg
+ };
+
+ }#method
+
+ ##################################################################
+ #affelio.get_news
# proto_ver: 1
##################################################################
sub get_news{
@@ -82,7 +155,7 @@
if($proto_ver > 1.0){
return {
- flerror => XMLRPC::Data->type('boolean', 1),
+ flerror => XMLRPC::Data->type('boolean', 102),
message => "ERR:102 UnsupportedProtoVer 1.0"
};
}
@@ -108,8 +181,8 @@
}else{
debug_print("S::get_news WSSE authentication NG.");
return {
- flerror => XMLRPC::Data->type('boolean', 1),
- message => "ERR:201 AuthenticationError"
+ flerror => XMLRPC::Data->type('boolean', 104),
+ message => "ERR:104 AuthenticationError"
};
}
@@ -172,7 +245,7 @@
}
##################################################################
- #server.op_request_AFlink
+ #affelio.op_request_AFlink
# proto_ver: 1
##################################################################
sub op_request_AFlink{
@@ -184,7 +257,7 @@
debug_print("S::op_request_AFlink: start");
if($proto_ver > 1.0){
return {
- flerror => XMLRPC::Data->type('boolean', 1),
+ flerror => XMLRPC::Data->type('boolean', 102),
message => "ERR:102 UnsupportedProtoVer 1.0"
};
}
@@ -217,7 +290,7 @@
##################################################################
- #server.get_services
+ #affelio.get_services
# proto_ver: 1
##################################################################
sub get_services{
@@ -229,7 +302,7 @@
if($proto_ver > 1.0){
return {
- flerror => XMLRPC::Data->type('boolean', 1),
+ flerror => XMLRPC::Data->type('boolean', 102),
message => "ERR:102 UnsupportedProtoVer 1.0"
};
}
@@ -272,7 +345,7 @@
}
##################################################################
- #server.F2List
+ #affelio.F2List
# proto_ver: 1
##################################################################
sub F2List {
@@ -303,7 +376,7 @@
}
##################################################################
- #server.post_Message
+ #affelio.post_Message
# proto_ver:1
##################################################################
sub post_Message {
@@ -323,8 +396,8 @@
my $passAB = $af->getFM->get_attribute_by_afid($peer_afid, "password");
if(!defined($passAB) || $passAB eq ""){
return {
- flerror => XMLRPC::Data->type('boolean', 1),
- message => "ERR:100 Youre not my friend."
+ flerror => XMLRPC::Data->type('boolean', 100),
+ message => "ERR:100 AFLinkNotFound"
};
}
@@ -389,8 +462,8 @@
##################################################
if($src ne $peer_afid){
return {
- flerror => XMLRPC::Data->type('boolean', 1),
- message => "ERR:101 Invalid Encryption."
+ flerror => XMLRPC::Data->type('boolean', 101),
+ message => "ERR:101 InvalidEncryption"
};
}
@@ -425,79 +498,7 @@
##################################################################
- #server.HandShake
- # proto_ver:1.1
- # Accept HandShake from a client
- ##################################################################
- sub HandShake {
- my $self = shift;
-
- ##################################################
- #Distill args
- ##################################################
- my ($proto_ver, $timestamp, $peer_nickname,
- $peer_af_id, $peer_DH_pub_key_str, $MIMed_mesg) = @_;
- my $peer_domain = Affelio::misc::NetMisc::get_remote_domain(%ENV);
- my $sessionid = "$$" . "$timestamp";
- debug_print("server.HandShake: size=["
- . length($MIMed_mesg));
-
- debug_print("server.HandShake: $proto_ver, $timestamp, $peer_domain, $peer_nickname, $peer_af_id, $peer_DH_pub_key_str [$MIMed_mesg]\n");
- ##################################################
- #Version check
- ##################################################
- if($proto_ver > 1.1){
- return {
- flerror => XMLRPC::Data->type('boolean', 1),
- message => "ERR:102 UnsupportedProtoVer 1.1"
- };
- }
-
- ###########################################
- # Instantiate Affelio
- ###########################################
- my $af = Affelio::SNS::Handshaker_s::Util::af_new();
-
- ###########################################
- # Send a message to MessageManager
- ###########################################
- my $message_body=
- MIME::Base64::Perl::encode_base64("You got a link request from $peer_nickname ( $peer_af_id ). \nMessage from the user is...\n\n")
- . "$MIMed_mesg\n"
- . MIME::Base64::Perl::encode_base64("\n\nClick following link to approve this request.\n$af->{site__web_root}/bin/recv_mail_ack.cgi?id=$sessionid");
-
- $af->getMESGM->post_message("Your Affelio",
- "Link Request from $peer_nickname",
- "SystemToUser/LinkRequest/Encode-Base64",
- $message_body);
-
- ###########################################
- # Save peer's info into "received_Handshake" DB
- ###########################################
- my $tmpdb= new Affelio::SNS::Handshaker_tmpDB($af);
- $tmpdb->add_received_Handshake($sessionid,
- $peer_af_id,
- $peer_nickname,
- $timestamp,
- $peer_DH_pub_key_str);
-
- debug_print("server.HandShake: DB(W) $sessionid\n");
-
- undef($af);
- ###########################################
- # Reply to client
- ###########################################
- my $msg = "OK: Thanks for your HandShake.";
- return {
- flerror => XMLRPC::Data->type('boolean', 0),
- message => $msg
- };
-
- }#method
-
-
- ##################################################################
- #server.HandShakeReply
+ #affelio.HandShakeReply
# proto_ver:1.1
# Accept HandshakeReply from a client
##################################################################
@@ -516,7 +517,7 @@
##################################################
if($proto_ver > 1.1){
return {
- flerror => XMLRPC::Data->type('boolean', 1),
+ flerror => XMLRPC::Data->type('boolean', 102),
message => "ERR:102 UnsupportedProtoVer 1.1"
};
}
@@ -544,8 +545,8 @@
#No such session exists!!
debug_print("server.HandShakeReply: sent-Handshake session NOT Found!\n");
return {
- flerror => XMLRPC::Data->type('boolean', 1),
- message => "ERR:103 HandShakeReply denied."
+ flerror => XMLRPC::Data->type('boolean', 103),
+ message => "ERR:103 HandShakeReplyDenied"
};
}else{
($dummy1, $dummy2, $dummy3, $dummy4, $my_DH_pri_key_str) = @ret;
@@ -592,7 +593,7 @@
###########################################
# "peer's friends" = my F2 friends
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", timestamp => 0);
+ my $ret = Affelio::SNS::Handshaker_c::get_F2List(dest_uri => $peer_af_id, timestamp => 0);
debug_print("server.HandshakeReply: get_F2List finished.");
debug_print("server.HandshakeReply: List I've got is [$ret]");