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

Back to archive index

Tadashi Okoshi slash****@users*****
2005年 6月 28日 (火) 16:44:19 JST


Index: affelio/lib/Affelio/SNS/Handshaker_s.pm
diff -u affelio/lib/Affelio/SNS/Handshaker_s.pm:1.5 affelio/lib/Affelio/SNS/Handshaker_s.pm:1.6
--- affelio/lib/Affelio/SNS/Handshaker_s.pm:1.5	Tue Jun 28 01:15:09 2005
+++ affelio/lib/Affelio/SNS/Handshaker_s.pm	Tue Jun 28 16:44:19 2005
@@ -4,7 +4,7 @@
 #    http://affelio.jp/ (Japan)
 #    http://affelio.jp/ (USA and other area)
 #
-# $Id: Handshaker_s.pm,v 1.5 2005/06/27 16:15:09 slash5234 Exp $
+# $Id: Handshaker_s.pm,v 1.6 2005/06/28 07:44:19 slash5234 Exp $
 
 use strict;
 use XMLRPC::Transport::HTTP;
@@ -88,6 +88,7 @@
 	my $af = Affelio::SNS::Handshaker_s::Util::af_new();
 
 	#Proto_ver=1: Simple messaging among friends
+	Affelio::misc::Debug::debug_print("server.postMesg: starg.");
 
         ##################################################
 	#Distill args
@@ -100,28 +101,83 @@
 	my $passAB = $af->{fm}->get_attribute_by_afid($peer_afid, "password");
 	if(!defined($passAB) || $passAB eq ""){
 	    return {
-		flerror => XMLRPC::Data->type('boolean', 0),
-		message => "ERR: Youre not my friend."
+		flerror => XMLRPC::Data->type('boolean', 1),
+		message => "ERR:100 Youre not my friend."
 	    };
 	}
 
+        ##################################################
+	#Decode MIME
+        ##################################################
 	my $encrypted = MIME::Base64::Perl::decode_base64($MIMed_mesg);
 
+        ##################################################
+	#Decrypt
+        ##################################################
 	my $rc5 = Crypt::RC5->new($passAB, 12 );
 	my $plain = $rc5->decrypt($encrypted);
+	Affelio::misc::Debug::debug_print("server.postMesg: ================");
+	Affelio::misc::Debug::debug_print($plain);
+	Affelio::misc::Debug::debug_print("server.postMesg: ================");
+
+        ##################################################
+	#Parse XML
+        ##################################################
+	my $src;
+	if($plain =~ /<src>(.+)<\/src>/){
+	    $src = $1;
+	}
+	Affelio::misc::Debug::debug_print("server.postMesg: src: $src"); 
+
+	my $msg_from;
+	if($plain =~ /<from>(.+)<\/from>/){
+	    $msg_from = $1;
+	}
+	Affelio::misc::Debug::debug_print("server.postMesg: from: $msg_from"); 
 
-	my ($padding, $src,
-	    $msg_from, $msg_from_nickname, $msg_to, 
-	    $msg_timestamp, $msg_MIMed_title, $msg_MIMed_body)
-	    =split('\*', $plain);
+	my $msg_from_nickname;
+	if($plain =~ /<from_nickname>(.+)<\/from_nickname>/){
+	    $msg_from_nickname = $1;
+	}
+	Affelio::misc::Debug::debug_print("server.postMesg: nick: $msg_from_nickname"); 
 
+	my $msg_to;
+	if($plain =~ /<to>(.+)<\/to>/){
+	    $msg_to = $1;
+	}
+	Affelio::misc::Debug::debug_print("server.postMesg: to: $msg_to");
+
+	my $msg_timestamp;
+	if($plain =~ /<timestamp>(.+)<\/timestamp>/){
+	    $msg_timestamp = $1;
+	}
+	Affelio::misc::Debug::debug_print("server.postMesg: TIME: $msg_timestamp");
+
+	my $msg_MIMed_title;
+	if($plain =~ /<title>(.*)<\/title>/ms){
+	    $msg_MIMed_title = $1;
+	}
+	Affelio::misc::Debug::debug_print("server.postMesg: title: $msg_MIMed_title");
+
+	my $msg_MIMed_body;
+	if($plain =~ /<text>(.*)<\/text>/ms){
+	    $msg_MIMed_body = $1;
+	}
+	Affelio::misc::Debug::debug_print("server.postMesg: body: $msg_MIMed_body");
+
+        ##################################################
+	#Encryption integrity check
+        ##################################################
 	if($src ne $peer_afid){
 	    return {
-		flerror => XMLRPC::Data->type('boolean', 0),
+		flerror => XMLRPC::Data->type('boolean', 1),
 		message => "ERR: Invalid Encryption."
 		};
 	}
 
+        ##################################################
+	#MIM decode for title and body
+        ##################################################
 	my $msg_title = MIME::Base64::Perl::decode_base64($msg_MIMed_title);
 	my $msg_body  = MIME::Base64::Perl::decode_base64($msg_MIMed_body);
 


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