/[meteor]/trunk/Meteor/Config.pm
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/Meteor/Config.pm

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

revision 49 by knops.gerd, Mon Feb 4 22:30:35 2008 UTC revision 50 by andrew.betts, Wed Feb 27 13:55:35 2008 UTC
# Line 42  package Meteor::Config; Line 42  package Meteor::Config;
42          use strict;          use strict;
43                    
44          our @DEFAULTS=(          our @DEFAULTS=(
45    'Template for each line in channelinfo',
46            ChannelInfoTemplate             => '<script>ch("~name~", ~lastMsgID~);</script>\r\n',
47    
48  'Configuration file location on disk (if any)',  'Configuration file location on disk (if any)',
49          ConfigFileLocation              => '/etc/meteord.conf',          ConfigFileLocation              => '/etc/meteord.conf',
50    
# Line 61  package Meteor::Config; Line 64  package Meteor::Config;
64          DirectoryIndex  => 'index.html',          DirectoryIndex  => 'index.html',
65    
66  'Header template, ~server~, ~servertime~ and ~status~ will be replaced by the appropriate values.  **NOTE**: It is possible to define more than one HeaderTemplate by appending a number at the end, for example *HeaderTemplate42*. Clients can request a specific header to be used by adding the parameter template=<number> to their GET request. If *HeaderTemplate<number>* is not found, the system will use the default HeaderTemplate (no number)',  'Header template, ~server~, ~servertime~ and ~status~ will be replaced by the appropriate values.  **NOTE**: It is possible to define more than one HeaderTemplate by appending a number at the end, for example *HeaderTemplate42*. Clients can request a specific header to be used by adding the parameter template=<number> to their GET request. If *HeaderTemplate<number>* is not found, the system will use the default HeaderTemplate (no number)',
67          HeaderTemplate                  => 'HTTP/1.1 ~status~\r\nServer: ~server~\r\nContent-Type: text/html; charset=utf-8\r\nPragma: no-cache\r\nCache-Control: no-cache, no-store, must-revalidate\r\nExpires: Thu, 1 Jan 1970 00:00:00 GMT\r\n\r\n<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r\n<meta http-equiv="Cache-Control" content="no-store">\r\n<meta http-equiv="Cache-Control" content="no-cache">\r\n<meta http-equiv="Pragma" content="no-cache">\r\n<meta http-equiv="Expires" content="Thu, 1 Jan 1970 00:00:00 GMT">\r\n<script type="text/javascript">\r\nwindow.onError = null;\r\nvar domainparts = document.domain.split(".");\r\ndocument.domain = domainparts[domainparts.length-2]+"."+domainparts[domainparts.length-1];\r\nparent.Meteor.register(this);\r\n</script>\r\n</head>\r\n<body onload="try { parent.Meteor.reset(this) } catch (e) {}">\r\n',          HeaderTemplate                  => 'HeaderTemplate HTTP/1.1 ~status~\r\nServer: ~server~\r\nContent-Type: text/html; charset=utf-8\r\nPragma: no-cache\r\nCache-Control: no-cache, no-store, must-revalidate\r\nExpires: Thu, 1 Jan 1970 00:00:00 GMT\r\n\r\n',
   
 'Template for each line in channelinfo',  
   
         ChannelInfoTemplate             => '~name~ ~messageCount~ ~lastMsgID~\r\n',  
68    
69  'Print out this help message',  'Print out this help message',
70          Help                                    => '',          Help                                    => '',
71    
72    'Format to use for timestamps in syslog: unix or human',
73            LogTimeFormat                   => 'human',
74    
75  'Maximum age of a message in seconds',  'Maximum age of a message in seconds',
76          MaxMessageAge                   => 7200,          MaxMessageAge                   => 7200,
77    
# Line 85  package Meteor::Config; Line 87  package Meteor::Config;
87  'Message template, ~text~, ~id~, ~channel~ and ~timestamp~ will be replaced by the appropriate values',  'Message template, ~text~, ~id~, ~channel~ and ~timestamp~ will be replaced by the appropriate values',
88          MessageTemplate                 => '<script>p(~id~,"~channel~","~text~");</script>\r\n',          MessageTemplate                 => '<script>p(~id~,"~channel~","~text~");</script>\r\n',
89    
90  'Interval at which PingMessage is sent to all persistent and identified subscriber connections (ie those including id=someuniqueidentifier in their request, and not specifying persist=0). Must be at least 3 if set higher than zero. Set to zero to disable.',  'Interval at which PingMessage is sent to all persistent subscriber connections. Must be at least 3 if set higher than zero. Set to zero to disable.',
91          PingInterval                    => 5,          PingInterval                    => 5,
92    
93  'Persistence of a connection. Note: some modes have this hardcoded!',  'Persistence of a connection.',
   
94          Persist                                 => 0,          Persist                                 => 0,
95    
96  'Message to be sent to all persistent and identified subscriber connections (see above) every PingInterval seconds',  'Message to be sent to all persistent and identified subscriber connections (see above) every PingInterval seconds',
# Line 107  package Meteor::Config; Line 108  package Meteor::Config;
108  'An absolute filesystem path, to be used as the document root for Meteor\'s static file web server. If left empty, no documents will be served.',  'An absolute filesystem path, to be used as the document root for Meteor\'s static file web server. If left empty, no documents will be served.',
109          SubscriberDocumentRoot  => '/usr/local/meteor/public_html',          SubscriberDocumentRoot  => '/usr/local/meteor/public_html',
110    
111  'Since Meteor is capable of serving static pages from a document root as well as streaming events to subscribers, this paramter is used to specify the URI at which the event server can be reached. If set to the root, Meteor will lose the ability to serve static pages.',  'Since Meteor is capable of serving static pages from a document root as well as streaming events to subscribers, this parameter is used to specify the URI at which the event server can be reached. If set to the root, Meteor will lose the ability to serve static pages.',
112          SubscriberDynamicPageAddress    => '/push',          SubscriberDynamicPageAddress    => '/push',
113    
114  'The syslog facility to use',  'The syslog facility to use',
# Line 141  sub updateConfig { Line 142  sub updateConfig {
142                    
143          my $debug=$class->valueForKey('Debug');          my $debug=$class->valueForKey('Debug');
144                    
145          print STDERR '-'x79 ."\nParamters:\nSource \tName and Value\n".'-'x79 ."\n" if($debug);          print STDERR '-'x79 ."\nMeteor server v$::VERSION (release date: $::RELEASE_DATE)\r\nLicensed under the terms of the GNU General Public Licence (2.0)\n".'-'x79 ."\n" if($debug);
146                    
147          my @keys=();          my @keys=();
148                    
# Line 153  sub updateConfig { Line 154  sub updateConfig {
154                    
155          foreach my $mode ('',keys %Modes)          foreach my $mode ('',keys %Modes)
156          {          {
157                    print STDERR ($mode) ? "\r\n$mode:\r\n" : "\r\nDefaults:\r\n" if($debug);
158                  foreach my $baseKey (@keys)                  foreach my $baseKey (@keys)
159                  {                  {
160                          my $foundValue=0;                          my $foundValue=0;
# Line 179  sub updateConfig { Line 181  sub updateConfig {
181                                                    
182                          next unless($foundValue);                          next unless($foundValue);
183                                                    
184                          print STDERR "\t$key\t$::CONF{$key}\n" if($debug);                          print STDERR "\t$baseKey\t$::CONF{$key}\n" if($debug);
185                                                    
186                          # Take care of escapes                          # Take care of escapes
187                          $::CONF{$key}=~s/\\(.)/                          $::CONF{$key}=~s/\\(.)/
188                                  if($1 eq 'r')                                  if($1 eq 'r') {
                                 {  
189                                          "\r";                                          "\r";
190                                  }                                  } elsif($1 eq 'n') {
                                 elsif($1 eq 'n')  
                                 {  
191                                          "\n";                                          "\n";
192                                  }                                  } elsif($1 eq 's') {
                                 elsif($1 eq 's')  
                                 {  
193                                          ' ';                                          ' ';
194                                  }                                  } elsif($1 eq 't') {
                                 elsif($1 eq 't')  
                                 {  
195                                          "\t";                                          "\t";
196                                  }                                  } elsif($1 eq '0') {
197                                  else                                          "\0";
198                                  {                                  } else {
199                                          $1;                                          $1;
200                                  }                                  }
201                          /gex;                          /gex;
# Line 244  sub setCommandLineParameters { Line 239  sub setCommandLineParameters {
239                                    
240                  my $mode='';                  my $mode='';
241                                    
242                  if($k=~s/(\..+)$//)                  if($k=~s/(\.(.+))$//)
243                  {                  {
244                          $mode=$1;                          $mode=$2;
245                          $Modes{$mode}=1;                          $Modes{$mode}=1;
246                  }                  }
247                                    
# Line 323  sub readConfig { Line 318  sub readConfig {
318                                    
319                  if(/^\s*\[\s*([^\]\s]+)\s*\]\s*$/)                  if(/^\s*\[\s*([^\]\s]+)\s*\]\s*$/)
320                  {                  {
321                          $Modes{".$1"}=1;                          $Modes{$1}=1;
322                            $mode = $1;
323                          next;                          next;
324                  }                  }
325                                    
# Line 359  sub usage { Line 355  sub usage {
355                  print STDERR <<"EOT";                  print STDERR <<"EOT";
356  $msg;  $msg;
357  For further help type $::PGM -help  For further help type $::PGM -help
358  or consult docs at http://www.meteorserver.org/  or consult docs at http://meteorserver.org/
359  EOT  EOT
360    
361          } else {          } else {
# Line 391  configuration file. The default location Line 387  configuration file. The default location
387          $Defaults{'ConfigFileLocation'}          $Defaults{'ConfigFileLocation'}
388    
389  For more information and complete documentation, see the Meteor  For more information and complete documentation, see the Meteor
390  website at http://www.meteorserver.org/  website at http://meteorserver.org/
391  EOT  EOT
392    
393          }          }

Legend:
Removed from v.49  
changed lines
  Added in v.50

  ViewVC Help
Powered by ViewVC 1.1.26