/[meteor]/trunk/meteord
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/meteord

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 47 by knops.gerd, Mon Feb 4 21:06:42 2008 UTC revision 55 by andrew.betts, Thu Feb 28 00:21:39 2008 UTC
# Line 35  Line 35 
35  # meterod version  # meterod version
36  ################################################################################  ################################################################################
37                    
38          $::VERSION='1.05.04';          $::VERSION='1.05.11';
39          $::RELEASE_DATE='not yet released';          $::RELEASE_DATE='not yet released';
40    
41  ###############################################################################  ###############################################################################
# Line 44  Line 44 
44                    
45          use strict;          use strict;
46                    
47            use Socket;
48            
49          use Meteor::Syslog;          use Meteor::Syslog;
50                    
51          use Meteor::Socket;          use Meteor::Socket;
# Line 63  Line 65 
65          our $AGE_CHECK_INTERVALL=60;          our $AGE_CHECK_INTERVALL=60;
66                    
67          our $MAX_EXIT_DELAY=120;          our $MAX_EXIT_DELAY=120;
68            
69            our $UDP_MAX_MESSAGE_SIZE=8192;
70    
71  ###############################################################################  ###############################################################################
72  # Main  # Main
# Line 160  Line 164 
164          );          );
165          my $subscriberServerFN=$subscriberServer->fileno();          my $subscriberServerFN=$subscriberServer->fileno();
166                    
167            my $udpServer=undef;
168            my $udpPort=$::CONF{'UDPPort'};
169            my $udpServerFN=undef;
170            if($udpPort && $udpPort>0)
171            {
172                    $udpServer=Meteor::Socket->newUDPServer(
173                            $udpPort,
174                            $::CONF{'UDPIP'}
175                    );
176                    $udpServerFN=$udpServer->fileno();
177            }
178            
179          my $serverVector='';          my $serverVector='';
180          vec($serverVector,$controlServerFN,1)=1;          vec($serverVector,$controlServerFN,1)=1;
181          vec($serverVector,$subscriberServerFN,1)=1;          vec($serverVector,$subscriberServerFN,1)=1;
182            vec($serverVector,$udpServerFN,1)=1 if(defined($udpServerFN));
183                    
184          my $lastAgeCheck=time;          my $lastAgeCheck=time;
185                    
# Line 210  Line 227 
227                                          {                                          {
228                                                  Meteor::Subscriber->newFromServer($subscriberServer);                                                  Meteor::Subscriber->newFromServer($subscriberServer);
229                                          }                                          }
230                                            if(defined($udpServerFN) && vec($rout,$udpServerFN,1))
231                                            {
232                                                    &handleUPD($udpServer);
233                                            }
234                                                                                    
235                                          Meteor::Connection->checkAllHandleBits($rout,$wout,$eout);                                          Meteor::Connection->checkAllHandleBits($rout,$wout,$eout);
236                                  }                                  }
# Line 330  Line 351 
351                    
352          &::syslog('emerg',"$::PGM loop exited");          &::syslog('emerg',"$::PGM loop exited");
353    
354    ###############################################################################
355    # Subroutines
356    ###############################################################################
357    sub handleUPD {
358            $udpServer=shift;
359            
360            my $line;
361            my $hispaddr=recv($udpServer->{'handle'},$line,$::UDP_MAX_MESSAGE_SIZE,0);
362            
363            &::syslog('debug',"udp message received: %s",$line);
364            
365            return unless($line=~s/^(\S+)\s//);
366            
367            my $cmd=$1;
368            
369            if($cmd eq 'ADDMESSAGE')
370            {
371                    return unless($line=~s/^(\S+)\s//);
372                    
373                    my $channelName=$1;
374                    my $channel=Meteor::Channel->channelWithName($channelName);
375                    my $msg=$channel->addMessage($line);
376                    my $msgID=$msg->id();
377                    &::syslog('debug',"udp: new message added, ID %s",$msgID);
378            }
379    }
380    
381  1;  1;
382  ############################################################################EOF  ############################################################################EOF

Legend:
Removed from v.47  
changed lines
  Added in v.55

  ViewVC Help
Powered by ViewVC 1.1.26