#!/opt/gnu/bin/perl
# This script is Copyright 1995, Steven Dick <ssd@mae.engr.ucf.edu>
# Copy this freely, use as you like, but please send me e-mail.

$now = time;

# struct counter_stat {
#   long count;                          /* total hits */
#   long weekly;                         /* hits since last reset */
#   long creation, lastaccess,lastreset; /* timestamps */
# };
$DBformat = "lllll";

dbmopen(%oldkeys,"/home/system/www/counters",666);
dbmopen(%newkeys,"/home/system/www/c-counters",666);

while (<>)
{
  chop;
  next if (!defined($oldkeys{$_}));
# comment next line out if you do want to copy new values
  next if (!defined($newkeys{$_}));
# restrictions on which counters are transfered...
  next if ($newkeys{$_}<0 || $oldkeys{$_}<0);
  $val = $oldkeys{$_};
  delete $oldkeys{$_};
  if (defined($newkeys{$_})){
    ($oldval,$weekly,$creation,$lastaccess,$lastreset) = unpack($DBformat,$newkeys{$_});
    $newkeys{$_} = pack($DBformat,$newval=$val+$oldval,$weekly,$creation,$lastaccess,$lastreset);
    print $_, ' = ', $oldval, '+', $val, ' = ', $newval, "\n";
  } else {
    $newkeys{$_} = pack($DBformat,$val,0,$now,0,$now);
    print $_, ' = ', $val, " (was undefined)\n";
  }
}
dbmclose(%newkeys);
