Diff for /telnetbbs/telnetbbs.pl between versions 1.4 and 1.5

version 1.4, 2010/12/10 23:28:09 version 1.5, 2010/12/13 05:54:50
Line 39  my $EOL     = "\015\012"; Line 39  my $EOL     = "\015\012";
 ##   ## 
 ## These will be moved in to a config file  ## These will be moved in to a config file
 ##  ##
 my $DISPLAY  = ":0.0";  my $DISPLAY   = ":0.0";
 my $BBS_NAME = "Hell's Dominion BBS";  my $BBS_NAME  = "Hell's Dominion BBS";
 my $BBS_NODE = 0;  my $BBS_NODE  = 0;
 my $DBCONF   = "/tmp/dosbox-__NODE__.conf";  my $DBCONF    = "/tmp/dosbox-__NODE__.conf";
 my $BBS_CMD  = "DISPLAY=$DISPLAY /usr/bin/dosbox -conf ";  my $BBS_CMD   = "DISPLAY=$DISPLAY /usr/bin/dosbox -conf ";
 my $LOG      = "/var/log/bbs.log";  my $LOG       = "/var/log/bbs.log";
 my $MAX_NODE = 1;  my $MAX_NODE  = 1;
 my $DOSBOXT  = "dosbox.conf.template";  my $DOSBOXT   = "dosbox.conf.template";
 my $BASE_PORT = 5000;  my $BASE_PORT = 7000;
   my $LOCK_PATH = "/tmp";
   
 ##  ##
 ## Check that we are 'root'   ## Check that we are 'root' 
Line 98  while( 1 ) { sleep 1; } Line 99  while( 1 ) { sleep 1; }
 ###############################################################################  ###############################################################################
 ###############################################################################  ###############################################################################
   
 sub logmsg { print "$0 $$ ", scalar localtime, ":@_\n" }  sub logmsg { print STDOUT "$0 $$ ", scalar localtime, ":@_\n" }
   
 ###############################################################################  ###############################################################################
 ## startNetServer( );  ## startNetServer( );
Line 134  sub startNetServer Line 135  sub startNetServer
                 ## Find the next available node                  ## Find the next available node
                 ##                  ##
                 my $node = 0;                  my $node = 0;
                   my $lock_file = "";
                 foreach (1 .. $MAX_NODE)                  foreach (1 .. $MAX_NODE)
                 {                  {
                         next if ( $node );  print "Searching for lock: " . $LOCK_PATH."/".$BBS_NAME."_node".$_.".lock\n";
                         if ( ! $nodes[$_] )                           next if ( -f $LOCK_PATH."/".$BBS_NAME."_node".$_.".lock" );
                         {  
                                 $node = $BBS_NODE = $_;  
                                 $nodes[$node]++;  
                         }  
                 }  
   
 print STDOUT "Node Status: \n" . Dumper( @nodes );                          ##
                           ## Create node lock file
                           ##
                           $lock_file = $LOCK_PATH."/".$BBS_NAME."_node".$_.".lock";
                           open LOCK, ">$lock_file";
                           close( LOCK );
                           $node = $BBS_NODE = $_;
                   }
   print "Using lock: " . $LOCK_PATH."/".$BBS_NAME."_node".$node.".lock\n";
   
                 ##                  ##
                 ## Create our dosbox config                  ## Create our dosbox config
Line 175  print STDOUT "Node Status: \n" . Dumper( Line 180  print STDOUT "Node Status: \n" . Dumper(
                 }                  }
                 defined( $childPID ) || die( "Cannot fork: $!\n" );                  defined( $childPID ) || die( "Cannot fork: $!\n" );
   
                   select $hostConnection;
   
                 ##                  ##
                 ## Default file descriptor to the client and turn on autoflush                  ## Default file descriptor to the client and turn on autoflush
                 ##                  ##
                 $hostConnection->autoflush( 1 );                  $hostConnection->autoflush( 1 );
   
                 print $hostConnection "Welcome to $BBS_NAME!" . $EOL;                  print "Welcome to $BBS_NAME!" . $EOL;
   
                 ##                  ##
                 if ( ! $BBS_NODE )                   if ( ! $lock_file ) 
                 {                  {
                         print $hostConnection "No available nodes.  Try again later.".$EOL;                          print "No available nodes.  Try again later.".$EOL;
                         exit;                          exit;
                 }                  }
   
                 print $hostConnection "Starting BBS on node $BBS_NODE...$EOL";                  print "Starting BBS on node $BBS_NODE...$EOL";
   
                 ##                  ##
                 ## Launch BBS via dosbox                  ## Launch BBS via dosbox
Line 197  print STDOUT "Node Status: \n" . Dumper( Line 204  print STDOUT "Node Status: \n" . Dumper(
                 my $bbsPID = fork( );                  my $bbsPID = fork( );
                 if ( $bbsPID )                   if ( $bbsPID ) 
                 {                  {
                           select STDOUT;
                         my $cmd = $BBS_CMD . $DBCONF;                          my $cmd = $BBS_CMD . $DBCONF;
                         exec( $cmd );                          system( $cmd );
                           print "Shutting down node $BBS_NODE\n";
                           ##
                           ## Remove Lock
                           ##      
                           unlink( $lock_file );
                           unlink( $DBCONF );
                         exit;                          exit;
                 }                  }
   
Line 229  print STDOUT "Node Status: \n" . Dumper( Line 243  print STDOUT "Node Status: \n" . Dumper(
                                 print $hostConnection $byte;                                  print $hostConnection $byte;
                         }                          }
                         $nodes[$BBS_NODE] = 0;                          $nodes[$BBS_NODE] = 0;
 print "Post-Disconnect Node Status: \n" . Dumper( @nodes );  
                         kill( "TERM" => $kidpid );                          kill( "TERM" => $kidpid );
                 }                  }
                 else                   else 
Line 262  sub shutdown Line 275  sub shutdown
 {  {
         my $signame = shift || 0;          my $signame = shift || 0;
   
           select STDOUT;
   
         &logmsg( "$0: Shutdown (SIG$signame) received.\n" )          &logmsg( "$0: Shutdown (SIG$signame) received.\n" )
                 if( $signame );                  if( $signame );
                   

Removed from v.1.4  
changed lines
  Added in v.1.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>