Here is the top of a config file: # # radius.cfg # # these are the variables for the database server names # refer to them like %{GlobalVar:database1} DefineGlobalVar database1 hostname1.mydomain.com DefineGlobalVar database2 hostname2.mydomain.com # Set this to the directory where your logfile and details file are to go LogDir /home/radius/raw LogFile %L/%d-radius.log #<Log SYSLOG> # Facility radius #</Log> Trace 4 <Log SQL> DBSource dbi:mysql:raddb DBUsername mysql DBAuth some_password Trace 3 </Log> ........... more config file snipped Following is the end of my perl debug session on Radiator. What's going on is that it reads DBAuth, Trace 3 and then Radiator decides it has had enough and calls close(CONFIG); but there are several hundred more lines in the config file! What's going on? Chris DB<33> s Radius::Configurable::match_keyword(/usr/lib/perl5/5.6.0/Radius/Configurable .pm: 211): 211: my $type = $ktable{$keyword} || return 0; DB<33> p $keyword DBUsername DB<34> s Radius::ServerConfig::keyword(/usr/lib/perl5/5.6.0/Radius/ServerConfig.pm:18 8): 188: if ($keyword eq 'DefineGlobalVar') 189: { DB<34> n Radius::ServerConfig::keyword(/usr/lib/perl5/5.6.0/Radius/ServerConfig.pm:19 6): 196: return $self->SUPER::keyword($file, $keyword, $value); DB<34> p $file *main::CONFIG DB<35> p $keyword DBUsername DB<36> p $value mysql DB<37> s Radius::Configurable::keyword(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:18 1): 181: my ($self, $file, $keyword, $value) = @_; DB<37> s Radius::Configurable::keyword(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:18 3): 183: if (lc $keyword eq 'include') 184: { DB<37> n Radius::Configurable::keyword(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:19 7): 197: return $self->match_keyword($keyword, $value, 198: 'Identifier' => 'string', 199: 'Description' => 'string'); DB<37> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:150) : 150: &main::log($main::LOG_ERR, "Unknown keyword '$1' in $fil ename line $."); DB<37> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:158) : 158: $line = ''; DB<37> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:78): 78: while (<FILE>) 79: { DB<37> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:81): 81: chomp; DB<37> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:83): 83: s/^\s*//; DB<37> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:84): 84: s/\s*$//; DB<37> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:87): 87: next if $_ eq '' || /^#/; DB<37> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:89): 89: $line .= $_; DB<37> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:90): 90: next if ($line =~ s/\\$//); # Line continuation DB<37> p $line DBAuth some_password DB<38> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:93): 93: last if ($line =~ /^<\/([^>]*)>/); DB<38> Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:95): 95: if ($line =~ /^<\s*(\S*)\s*(.*)>/) 96: { DB<38> Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:122) : 122: my ($keyword, $value) = ($1, $2); DB<38> s Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:128) : 128: if ($value =~ /^file:\"(.*)\"$/) 129: { DB<38> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:148) : 148: if (!$self->keyword(*FILE, $keyword, $value)) 149: { DB<38> p $keyword DBAuth DB<39> p $value some_password DB<40> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:150) : 150: &main::log($main::LOG_ERR, "Unknown keyword '$1' in $fil ename line $."); DB<40> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:158) : 158: $line = ''; DB<40> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:78): 78: while (<FILE>) 79: { DB<40> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:81): 81: chomp; DB<40> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:83): 83: s/^\s*//; DB<40> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:84): 84: s/\s*$//; DB<40> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:87): 87: next if $_ eq '' || /^#/; DB<40> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:81): 81: chomp; DB<40> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:83): 83: s/^\s*//; DB<40> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:84): 84: s/\s*$//; DB<40> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:87): 87: next if $_ eq '' || /^#/; DB<40> p $_ Trace 3 DB<41> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:89): 89: $line .= $_; DB<41> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:90): 90: next if ($line =~ s/\\$//); # Line continuation DB<41> Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:93): 93: last if ($line =~ /^<\/([^>]*)>/); DB<41> Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:95): 95: if ($line =~ /^<\s*(\S*)\s*(.*)>/) 96: { DB<41> p line line DB<42> p $line Trace 3 DB<43> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:122) : 122: my ($keyword, $value) = ($1, $2); DB<43> s Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:128) : 128: if ($value =~ /^file:\"(.*)\"$/) 129: { DB<43> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:148) : 148: if (!$self->keyword(*FILE, $keyword, $value)) 149: { DB<43> s Radius::ServerConfig::keyword(/usr/lib/perl5/5.6.0/Radius/ServerConfig.pm:14 9): 149: my ($self, $file, $keyword, $value) = @_; DB<43> s Radius::ServerConfig::keyword(/usr/lib/perl5/5.6.0/Radius/ServerConfig.pm:15 1): 151: $self->match_keyword 152: ($keyword, $value, 153: 'AuthPort' => 'string', 154: 'AcctPort' => 'string', 155: 'BindAddress' => 'string', 156: 'Foreground' => 'flag', 157: 'DbDir' => 'string', 158: 'LogDir' => 'string', 159: 'DictionaryFile' => 'string', 160: 'PidFile' => 'string', 161: 'LogStdout' => 'flag', 162: 'Trace' => 'integer', 163: 'LogFile' => 'string', 164: 'SnmpgetProg' => 'string', 165: 'SnmpsetProg' => 'string', 166: 'SnmpwalkProg' => 'string', 167: 'FingerProg' => 'string', 168: 'PmwhoProg' => 'string', 169: 'LivingstonMIB' => 'string', 170: 'LivingstonOffs' => 'integer', 171: 'LivingstonHole' => 'integer', 172: 'RewriteUsername' => 'stringarray', 173: 'SocketQueueLength' => 'integer', 174: 'LicenseVersion' => 'string', 175: 'LicenseHostname' => 'string', 176: 'LicenseMaxRequests' => 'integer', 177: 'LicenseExpires' => 'string', 178: 'LicenseOwner' => 'string', 179: 'LicenseVendor' => 'string', 180: 'LicenseKey' => 'string', 181: 'PreClientHook', => 'hook', 182: 'StartupHook', => 'hook', 183: 'USR1Hook', => 'hook', 184: 'USR2Hook', => 'hook', 185: 'WINCHHook', => 'hook', 186: ) && return 1; DB<43> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:158) : 158: $line = ''; DB<43> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:78): 78: while (<FILE>) 79: { DB<43> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:81): 81: chomp; DB<43> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:83): 83: s/^\s*//; DB<43> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:84): 84: s/\s*$//; DB<43> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:87): 87: next if $_ eq '' || /^#/; DB<43> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:89): 89: $line .= $_; DB<43> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:90): 90: next if ($line =~ s/\\$//); # Line continuation DB<43> n Radius::Configurable::parse(/usr/lib/perl5/5.6.0/Radius/Configurable.pm:93): 93: last if ($line =~ /^<\/([^>]*)>/); DB<43> p $line </Log> DB<44> n main::readConfig(/etc/raddb/radiusd:229): 229: close(CONFIG); DB<44> === Archive at http://www.open.com.au/archives/radiator/ Announcements on [EMAIL PROTECTED] To unsubscribe, email '[EMAIL PROTECTED]' with 'unsubscribe radiator' in the body of the message.