From c5e0ccf32bf5bc5689db60b907c24dcdd89c8eb5 Mon Sep 17 00:00:00 2001 From: minima Date: Sat, 22 Feb 2003 22:14:13 +0000 Subject: [PATCH] make it work again --- Changes | 9 +++++++++ perl/DXUser.pm | 11 +++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Changes b/Changes index c60896fd..036c1043 100644 --- a/Changes +++ b/Changes @@ -8,9 +8,18 @@ callsigns to work better. other hand the code may work without, in a compatible way. This bit hasn't been very well tested (the 'no Storable' condition that is). +[*** NOTE ***] make sure that you do an 'export_user' BEFORE restarting +you node. (Yes I know this is like a shrinkwrap licence, but I can't +help it). + It will take several minutes for the node to restart when it does the conversion from .v2 to .v3 user file. Please go and have a good strong cup of tea whilst this is happening. + +If it fails then you will need to edit your latest user_asc file on (or about) +line 25 it says: $ref = decode($f[1]); you will need to change that to +$ref = asc_decode($f[1]); and then do: perl user_asc + 21Feb03======================================================================= 1. moved the export of the users file to Wednesday night (GMT) to avoid possible crashes and/or delays during a contest weekend. diff --git a/perl/DXUser.pm b/perl/DXUser.pm index c1ab95ae..4787ce3c 100644 --- a/perl/DXUser.pm +++ b/perl/DXUser.pm @@ -129,12 +129,13 @@ sub init if ($@) { $ufn = "$fn.v2"; + $v3 = $convert = 0; } else { import Storable qw(nfreeze thaw); $ufn = "$fn.v3"; $v3 = 1; - $convert = ! -e $ufn; + $convert++ unless -e $ufn; } if ($mode) { @@ -142,14 +143,17 @@ sub init } else { $dbm = tie (%u, 'DB_File', $ufn, O_RDONLY, 0666, $DB_BTREE) or confess "can't open user file: $fn ($!) [rebuild it from user_asc?]"; } + + $lru = LRU->newbase("DXUser", $lrusize); # do a conversion if required if ($convert) { my ($key, $val, $action, $count, $err) = ('','',0,0,0); my %oldu; - dbg("Converting the User File to V3 (I suggest you go and have cup of strong tea)"); - my $odbm = tie (%oldu, 'DB_File', "${fn}.v2", O_RDONLY, 0666, $DB_BTREE) or confess "can't open user file: $fn ($!) [rebuild it from user_asc?]"; + dbg("Converting the User File to V3 "); + dbg("This will take a while, I suggest you go and have cup of strong tea"); + my $odbm = tie (%oldu, 'DB_File', "$fn.v2", O_RDONLY, 0666, $DB_BTREE) or confess "can't open user file: $fn.v2 ($!) [rebuild it from user_asc?]"; for ($action = R_FIRST; !$odbm->seq($key, $val, $action); $action = R_NEXT) { my $ref = asc_decode($val); if ($ref) { @@ -164,7 +168,6 @@ sub init dbg("Conversion completed $count records $err errors"); } $filename = $ufn; - $lru = LRU->newbase("DXUser", $lrusize); } sub del_file -- 2.34.1