make it work again
authorminima <minima>
Sat, 22 Feb 2003 22:14:13 +0000 (22:14 +0000)
committerminima <minima>
Sat, 22 Feb 2003 22:14:13 +0000 (22:14 +0000)
Changes
perl/DXUser.pm

diff --git a/Changes b/Changes
index c60896fd3602c3c63144bde43f5a5c224add4fcb..036c1043e264e83f686ec3e76b46e14bbe4075d5 100644 (file)
--- 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.
index c1ab95aeb52b46314a5ca8b274ea15441c65255d..4787ce3cdb3aa64ec89db82d53fd4ccd5f1880e9 100644 (file)
@@ -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