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

Back to archive index

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


Index: affelio/lib/Affelio/SNS/Handshaker_c.pm
diff -u affelio/lib/Affelio/SNS/Handshaker_c.pm:1.3 affelio/lib/Affelio/SNS/Handshaker_c.pm:1.4
--- affelio/lib/Affelio/SNS/Handshaker_c.pm:1.3	Sun Jun 26 21:30:26 2005
+++ affelio/lib/Affelio/SNS/Handshaker_c.pm	Tue Jun 28 00:29:19 2005
@@ -4,24 +4,89 @@
 #    http://affelio.jp/ (Japan)
 #    http://affelio.jp/ (USA and other area)
 #
-# $Id: Handshaker_c.pm,v 1.3 2005/06/26 12:30:26 slash5234 Exp $
+# $Id: Handshaker_c.pm,v 1.4 2005/06/27 15:29:19 slash5234 Exp $
 
 package Affelio::SNS::Handshaker_c;
 {
     #use strict;
+    use lib("../../../extlib/");
     use XMLRPC::Lite;
     use Error qw(:try);
     use Crypt::DH;
+    use MIME::Base64::Perl;
 
-    use lib("../../");
+    use lib("../../../lib/");
     use Affelio::misc::CGIError;
     use Affelio::misc::Debug;
+    use Affelio::misc::MyCrypt;
+    use Affelio::misc::Time;
     use Affelio::exception::Exception;
     use Affelio::exception::IOException;
 
     use Exporter;
     @ISA = "Exporter";
-    @EXPORT = qw (send_HandShake reply_HandShake get_F2List);
+    @EXPORT = qw (send_HandShake reply_HandShake get_F2List post_Message);
+
+    #################################################################
+    # post_Message
+    #################################################################
+    sub post_Message{
+	my %arg = @_;
+	#
+	my $proto_ver = $arg{proto_ver};
+	my $dest_uri = $arg{dest_uri};
+	my $src = $arg{src};
+	my $password = $arg{password};
+
+	#
+	my $msg_from = $arg{msg_from};
+	my $msg_from_nickname = $arg{msg_from_nickname};
+	my $msg_to = $arg{msg_to};
+	my $msg_timestamp = $arg{msg_timestamp};
+	my $MIMed_msg_title = encode_base64($arg{msg_title});
+	my $MIMed_msg_body = encode_base64($arg{msg_body});
+
+	debug_print("C::post_Message: $msg_from, $msg_from_nickname, $msg_to, $msg_timestamp, [$msg_MIMed_title], [$msg_MIMed_body]");
+
+	my $encrypted = msg_encrypt("jf99sdhq;" 
+				    . "*" . $src
+				    . "*" . $msg_from
+				    . "*" . $msg_from_nickname
+				    . "*" . $msg_to
+				    . "*" . $msg_timestamp
+				    . "*" . $MIMed_msg_title
+				    . "*" . $MIMed_msg_body, 
+				    $password);
+	my $MIMed = encode_base64($encrypted);
+
+	debug_print("C::post_Message: [$MIMed]");
+
+	my $result = eval {
+	    XMLRPC::Lite
+		->proxy($dest_uri) #XML
+		->call(
+		       'affelio.post_Message', 
+		       $proto_ver,
+		       get_timestamp(),
+		       $src,
+		       $MIMed
+		       )
+		->result;
+	  };
+	debug_print("post_Message: RPC returned.\n");
+	if ($@) {
+	    throw Affelio::exception::IOException($@);
+	}
+	
+	debug_print("post_Message: OK : $result->{message}\n");
+	debug_print("post_Message: OK : [$result->{flerror}]\n");
+	
+	if($result->{flerror} ne "0"){
+	    throw Affelio::exception::IOException($result->{message});
+	}
+	return $result;
+    }
+
 
     #################################################################
     # get_F2List(dest_uri, timestamp)


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