[Affelio-cvs 1307] CVS update: affelio/lib/Affelio/SNS

Back to archive index

Tadashi Okoshi slash****@users*****
2006年 6月 1日 (木) 15:34:13 JST


Index: affelio/lib/Affelio/SNS/FriendManager.pm
diff -u affelio/lib/Affelio/SNS/FriendManager.pm:1.21 affelio/lib/Affelio/SNS/FriendManager.pm:1.22
--- affelio/lib/Affelio/SNS/FriendManager.pm:1.21	Mon May 29 21:08:49 2006
+++ affelio/lib/Affelio/SNS/FriendManager.pm	Thu Jun  1 15:34:13 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: FriendManager.pm,v 1.21 2006/05/29 12:08:49 slash5234 Exp $
+# $Id: FriendManager.pm,v 1.22 2006/06/01 06:34:13 slash5234 Exp $
 
 package Affelio::SNS::FriendManager;
 {
@@ -104,6 +104,8 @@
 	my $nickname = shift;        #arg(2) nickname  (string)
 	my $timestamp = shift;       #arg(3) timestamp (int)
 	my $password = shift;        #arg(4) password  (string)
+	my $peer_type = shift;       #arg(5) type (string)
+	my $rflag = shift;
 
 	Affelio::misc::Debug::debug_print("FM::add_friend: ($af_id $nickname $timestamp $password)");
 	
@@ -231,7 +233,7 @@
 
 	##############################
 	#Insert a new record into my F1 list.
-	$query = "insert into $af->{site__dbtbl_prefix}_CORE_friends(uid, af_id, nickname, timestamp, password, intro, option_pid,lastupdated,f2list) values ($newid, '$af_id', '$nickname', $timestamp, '$password', ' ', -1, 0, '$old_f1list_in_f2tbl')";
+	$query = "insert into $af->{site__dbtbl_prefix}_CORE_friends(uid, af_id, nickname, timestamp, password, intro, option_pid, lastupdated, f2list, af_type, rflag) values ($newid, '$af_id', '$nickname', $timestamp, '$password', ' ', -1, 0, '$old_f1list_in_f2tbl', '$peer_type', '$rflag')";
 	eval{
 	    $sth = $af->getDB->prepare($query);
 	    $sth->execute();
Index: affelio/lib/Affelio/SNS/Handshaker_c.pm
diff -u affelio/lib/Affelio/SNS/Handshaker_c.pm:1.19 affelio/lib/Affelio/SNS/Handshaker_c.pm:1.20
--- affelio/lib/Affelio/SNS/Handshaker_c.pm:1.19	Tue Mar 28 18:15:23 2006
+++ affelio/lib/Affelio/SNS/Handshaker_c.pm	Thu Jun  1 15:34:13 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_c.pm,v 1.19 2006/03/28 09:15:23 slash5234 Exp $
+# $Id: Handshaker_c.pm,v 1.20 2006/06/01 06:34:13 slash5234 Exp $
 
 package Affelio::SNS::Handshaker_c;
 {
@@ -45,7 +45,8 @@
     #                my_nickname => my_nickname,
     #                my_AFID => my_AFID,
     #                mesg => mesg,
-    #                timestamp => timestamp); 
+    #                timestamp => timestamp,
+    #                my_affelio_type => my_affelio_type);
     # proto_ver: 1.1
     #################################################################
     sub send_HandShake {
@@ -55,6 +56,8 @@
 	my $my_AFID = $arg{my_AFID};
 	my $my_mesg = $arg{mesg};
 	my $timestamp = $arg{timestamp};
+	my $my_affelio_type = $arg{my_affelio_type};
+	my $af = $arg{af};
 
 	my $proto_ver = 1.1;
 	my $MIMed_mesg = encode_base64($my_mesg);
@@ -83,6 +86,14 @@
 
 	debug_print("send_HandShake: [$dest_xml_uri $proto_ver $timestamp $my_nickname $my_AFID $my_DH_pub_key_str $my_mesg $MIMed_mesg]");
  
+	my $tmpdb= new Affelio::SNS::Handshaker_tmpDB($af);
+	$tmpdb->add_sent_Handshake($timestamp,
+				   $dest_uri,
+				   "",
+				   $timestamp,
+				   $my_DH_pri_key_str,
+				   $my_affelio_type);
+
 	#################################
 	#Execute XMLRPC
 	#################################
@@ -96,7 +107,8 @@
 		       $my_nickname,
 		       $my_AFID,
 		       $my_DH_pub_key_str,
-		       $MIMed_mesg)
+		       $MIMed_mesg,
+		       $my_affelio_type)
 		->result;
 	  };
 	debug_print("send_HandShake: RPC returned.\n");
@@ -135,8 +147,9 @@
 	my $my_AFID = $arg{my_AFID};
 	my $my_DH_pub_key_str = $arg{DH_pub_key_str};
 	my $my_mesg = $arg{mesg};
+	my $my_affelio_type = $arg{my_affelio_type};
 
-	debug_print("reply_HandShake: [$dest_uri $proto_ver $timestamp $my_nickname $my_AFID $my_DH_pub_key_str $my_mesg]");
+	debug_print("reply_HandShake: [$dest_uri $proto_ver $timestamp $my_nickname $my_AFID $my_DH_pub_key_str $my_affelio_type $my_mesg]");
 	
 	#################################
 	#Arg check
@@ -159,7 +172,8 @@
 		       $my_nickname,
 		       $my_AFID,
 		       $my_DH_pub_key_str,
-		       $my_mesg
+		       $my_mesg,
+		       $my_affelio_type
 		       )
 		->result;
 	  };
Index: affelio/lib/Affelio/SNS/Handshaker_s.pm
diff -u affelio/lib/Affelio/SNS/Handshaker_s.pm:1.47 affelio/lib/Affelio/SNS/Handshaker_s.pm:1.48
--- affelio/lib/Affelio/SNS/Handshaker_s.pm:1.47	Tue May 30 06:56:18 2006
+++ affelio/lib/Affelio/SNS/Handshaker_s.pm	Thu Jun  1 15:34:13 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.47 2006/05/29 21:56:18 slash5234 Exp $
+# $Id: Handshaker_s.pm,v 1.48 2006/06/01 06:34:13 slash5234 Exp $
 
 ########################################################################
 #package Affelio::SNS::Handshaker_s::Util;
@@ -86,13 +86,13 @@
 	#Distill args
         ##################################################
 	my ($proto_ver, $timestamp, $peer_nickname, 
-	    $peer_af_id, $peer_DH_pub_key_str, $MIMed_mesg) = @_;
+	    $peer_af_id, $peer_DH_pub_key_str, $MIMed_mesg, $peer_type) = @_;
 	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");
+	debug_print("server.HandShake: $proto_ver, $timestamp, $peer_domain, $peer_nickname, $peer_af_id, $peer_DH_pub_key_str $peer_type [$MIMed_mesg]\n");
 	##################################################
 	#Version check
 	##################################################
@@ -129,24 +129,83 @@
 	$translated =~ s|\r|\n|g;
         $translated =~ s|\n|\<BR\>|g;
 
-	my $message_body
-	    = MIME::Base64::encode_base64($translated);
-	$af->getMESGM->post_message(from => "Your Affelio",
-				    title => "Link Request from $peer_nickname",
-				    type =>  "SystemToUser/LinkRequest/Encode-Base64/HTML",
-				    body =>  $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,
+	if($af->{userpref__aflink_user_confirmation} eq "no"){
+	    
+	    ############################################################
+	    #DH key generation
+	    my $mydh = Crypt::DH->new;
+	    #RFC 2412 - The OAKLEY Key Determination Protocol
+	    #Group 1:  A 768 bit prime
+	    my $DH_g="2";
+	    my $DH_p="1552518092300708935130918131258481755631334049434514313202351194902966239949102107258669453876591642442910007680288864229150803718918046342632727613031282983744380820890196288509170691316593175367469551763119843371637221007210577919";
+	    $mydh->g($DH_g);
+	    $mydh->p($DH_p);
+	    #
+	    #Step (1):  create my public_key
+	    $mydh->generate_keys;
+	    my $my_DH_pub_key = $mydh->pub_key;
+	    my $my_DH_pub_key_str = $mydh->pub_key->bstr;
+	
+	    ############################################################
+	    #send reply_HandShake
+	    my $ret="";
+	    debug_print("server.HandShake: sending back reply_Handshake...");
+	    try{
+		use Affelio::SNS::Handshaker_c;
+		$ret = reply_HandShake(dest_uri => $peer_af_id,
+			       timestamp => $timestamp,
+			       my_nickname => $af->{user__nickname},
+			       my_domain => $af->{user__domain},
+			       my_AFID => $af->{site__user_afid},
+			       DH_pub_key_str => $my_DH_pub_key_str,
+			       my_affelio_type => $af->{site__exec_type}
+				       );
+	    }catch Error with {
+		my $E = shift;
+		error($q, "HandShake reply output an error!\n$E");
+	    };
+	    debug_print("server.HandShake: sending back reply_Handshake...DONE");
+	    ############################################################
+	    #generate Password
+	    my $peer_DH_pub_key = Math::BigInt->new($peer_DH_pub_key_str);
+	    my $pass = $mydh->compute_key($peer_DH_pub_key)->bstr;
+	    debug_print("server.HandShake: PASSWORD=[$pass]\n");
+
+	    ############################################################
+	    #Add peer to my friends list.
+	    debug_print("server.HandShake: getFM->add_friend...");
+	    try{
+		$af->getFM->add_friend($peer_af_id, 
 				       $peer_nickname,
 				       $timestamp,
-				       $peer_DH_pub_key_str);
-
-	debug_print("server.HandShake: DB(W) $sessionid\n");
+				       $pass,
+				       $peer_type);
+	    }catch Error with{
+		my $E = shift;
+		error($q, "Error from FriendManager\n$E\n");
+	    };
+	    debug_print("server.HandShake: getFM->add_friend done.");
+	}else{
+	    my $message_body
+		= MIME::Base64::encode_base64($translated);
+	    $af->getMESGM->post_message(from => "Your Affelio",
+					title => "Link Request from $peer_nickname",
+					type =>  "SystemToUser/LinkRequest/Encode-Base64/HTML",
+					body =>  $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,
+					   $peer_type);
+	    
+	    debug_print("server.HandShake: DB(W) $sessionid\n");
+	}
 
 	undef($af);
         ###########################################
@@ -532,8 +591,8 @@
 	#Distill args
         ###########################################
 	my ($proto_ver, $timestamp, $peer_nickname, 
-	    $peer_af_id, $peer_DH_pub_key_str, $mesg) = @_;
-	debug_print("server.HandShakeReply: $proto_ver, $timestamp, $peer_nickname, $peer_af_id, $peer_DH_pub_key_str $mesg\n");
+	    $peer_af_id, $peer_DH_pub_key_str, $mesg, $peer_type) = @_;
+	debug_print("server.HandShakeReply: $proto_ver, $timestamp, $peer_nickname, $peer_af_id, $peer_DH_pub_key_str $mesg $peer_type\n");
 	
 	##################################################
 	#Version check
@@ -597,9 +656,10 @@
         #Add peer to my friends list.
         ###########################################
 	my $uid = $af->getFM->add_friend($peer_af_id, 
-					$peer_nickname,
-					$timestamp,
-					$pass);
+					 $peer_nickname,
+					 $timestamp,
+					 $pass,
+					 $peer_type);
 	debug_print("server.HandShakeReply: add_friend finished.\n");
 
 	eval{
Index: affelio/lib/Affelio/SNS/Handshaker_tmpDB.pm
diff -u affelio/lib/Affelio/SNS/Handshaker_tmpDB.pm:1.6 affelio/lib/Affelio/SNS/Handshaker_tmpDB.pm:1.7
--- affelio/lib/Affelio/SNS/Handshaker_tmpDB.pm:1.6	Tue Mar  7 23:39:11 2006
+++ affelio/lib/Affelio/SNS/Handshaker_tmpDB.pm	Thu Jun  1 15:34:13 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_tmpDB.pm,v 1.6 2006/03/07 14:39:11 slash5234 Exp $
+# $Id: Handshaker_tmpDB.pm,v 1.7 2006/06/01 06:34:13 slash5234 Exp $
 
 use strict;
 use lib("../../../extlib/");
@@ -87,14 +87,15 @@
 	my $nickname = shift;        #arg(3) nickname  (string)
 	my $timestamp = shift;       #arg(4) timestamp (string) 
 	my $DH_key_str = shift;      #arg(5) DH key (string)
-	my $dbname = shift;          #arg(6) DBname (string)
+	my $peer_type = shift;       #arg(6) peer_type (string)
+	my $dbname = shift;          #arg(7) DBname (string)
 
 	my $af = $self->{af};
 	$dbname =~ s/AFuser/$af->{site__dbtbl_prefix}/;
 
-	Affelio::misc::Debug::debug_print("add: $af_id $nickname $timestamp $DH_key_str $dbname");
+	Affelio::misc::Debug::debug_print("add: $af_id $nickname $timestamp $DH_key_str $peer_type $dbname");
 	
-	my $str = "insert into $dbname (sessionid, timestamp, af_id, nickname, DH_key_str) values ('$sessionid', '$timestamp', '$af_id', '$nickname', '$DH_key_str')";
+	my $str = "insert into $dbname (sessionid, timestamp, af_id, nickname, DH_key_str, peer_type) values ('$sessionid', '$timestamp', '$af_id', '$nickname', '$DH_key_str', '$peer_type')";
 	my $sth = $af->getDB->prepare($str);
 	$sth->execute() or die $af->getDB->errstr;
 
@@ -115,7 +116,7 @@
 
 	Affelio::misc::Debug::debug_print("removedb: $sessionid");
 
-	my $str = "SELECT sessionid, timestamp, af_id, nickname, DH_key_str FROM $dbname WHERE sessionid= '$sessionid'";
+	my $str = "SELECT sessionid, timestamp, af_id, nickname, DH_key_str peer_type FROM $dbname WHERE sessionid= '$sessionid'";
 	my $sth = $af->getDB->prepare($str) or die $af->getDB->errstr;
 	$sth->execute() or die $af->getDB->errstr;
         my @row = $sth->fetchrow_array;


Affelio-cvs メーリングリストの案内
Back to archive index