#!/usr/bin/perl # usage: generate-raddb radius-server/raddb/dictionary* >raddb.pm # i.e.: generate-raddb ~/freeradius/freeradius-1.0.5/share/dictionary* ~/wirelessoceans/dictionary.ip3networks ~/wtxs/dictionary.mot.canopy >raddb.pm.new print <) { next if /^(#|\s*$|\$INCLUDE\s+)/; next if /^(VALUE|VENDOR|BEGIN\-VENDOR|END\-VENDOR)\s+/; /^(ATTRIBUTE|ATTRIB_NMC)\s+([\w\-\/]+)\s+/ or die $_; $attrib = $2; $dbname = lc($2); $dbname =~ s/[\-\/]/_/g; $dbname = substr($dbname,0,24); while ( exists $hash{$dbname} ) { #warn $dbname; $dbname =~ s/(.)$//; my $w = $1; $w =~ tr/_a-z0-9/a-z0-9_/; $dbname = "$dbname$w"; } $hash{$dbname} = $attrib; #print "$2\n"; } foreach ( sort keys %hash ) { # print "$_\n" if length($_)>24; # print substr($_,0,24),"\n" if length($_)>24; # $max = length($_) if length($_)>$max; # have to fudge things since everything >24 is *not* unique #print " '". substr($_,0,24). "' => '$hash{$_}',\n"; print " '$_' ". ( " " x (24-length($_) ) ). "=> '$hash{$_}',\n"; } print < 'Authentication-Type', #wtxs (dunno) #'radius_operator' => 'Radius-Operator', ); 1; END