[freenet-cvs] r18730 - trunk/apps/perlFreenet/Freenet

alexlehm at freenetproject.org alexlehm at freenetproject.org
Sun Mar 23 16:20:38 UTC 2008


Author: alexlehm
Date: 2008-03-23 16:20:38 +0000 (Sun, 23 Mar 2008)
New Revision: 18730

Modified:
   trunk/apps/perlFreenet/Freenet/Connection.pm
   trunk/apps/perlFreenet/Freenet/Message.pm
Log:
Connection.pm:
handle connection errors a bit better
Message.pm:
handle header requests with keys containing "."


Modified: trunk/apps/perlFreenet/Freenet/Connection.pm
===================================================================
--- trunk/apps/perlFreenet/Freenet/Connection.pm	2008-03-23 14:23:15 UTC (rev 18729)
+++ trunk/apps/perlFreenet/Freenet/Connection.pm	2008-03-23 16:20:38 UTC (rev 18730)
@@ -69,7 +69,8 @@
 	$socket=IO::Socket::INET->new(PeerAddr => $self->{node});
 
 	if(!$socket) {
-		# failed for some reason TODO: should wrap this is a proper error?
+		# failed for some reason
+		# TODO: should wrap this is a proper error?
 		return undef;
 	}
 
@@ -95,10 +96,17 @@
   return $response;
 }
 
+sub is_connected
+{
+  return defined($_[0]->{socket});
+}
+
 sub getmessage
 {
   my $self=shift;
 
+  return undef if !$self->is_connected();
+
   my $socket=$self->{socket};
 
   my $message;
@@ -166,6 +174,8 @@
   }
   my $sock=$self->{socket};
 
+  return undef if !$self->is_connected();
+
   if(!ref($msg) eq "Freenet::Message") {
     warn "wrong argument type\n";
   }
@@ -222,6 +232,8 @@
   my $self=shift;
   my $ret;
 
+  return undef if !$self->is_connected();
+
   $ret=close($self->{socket});
   $self->{socket}=undef;
 

Modified: trunk/apps/perlFreenet/Freenet/Message.pm
===================================================================
--- trunk/apps/perlFreenet/Freenet/Message.pm	2008-03-23 14:23:15 UTC (rev 18729)
+++ trunk/apps/perlFreenet/Freenet/Message.pm	2008-03-23 16:20:38 UTC (rev 18730)
@@ -14,8 +14,8 @@
 
     $self->{data}=undef;
     $self->{message}=shift;
-    # if we don't have header field, you can just leave them out
-    # e.g. ->new("ShutDown");
+    # if there are no header fields, you can just leave them out
+    # e.g. ->new("Shutdown");
     $self->{header}=shift || {};
 }
 
@@ -44,6 +44,11 @@
 			@keys=@_;
 		} else {
 			my $key=shift;
+			if($key=~/\./) {
+				if(defined($self->{header}->{$key})) {
+					return $self->{header}->{$key}
+				}
+			}
 			@keys=split(/\./,$key);
 		}
 		my $ref=$self->{header};




More information about the cvs mailing list