Magellan Linux

Diff of /trunk/mkinitrd-magellan/isolinux/checksumiso.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1132 by niro, Sat Sep 1 22:45:15 2007 UTC revision 1133 by niro, Thu Aug 19 09:50:43 2010 UTC
# Line 9  use integer; Line 9  use integer;
9    
10  ($file) = @ARGV;  ($file) = @ARGV;
11    
12  open(FILE, '+<', $file) or die "$0: Cannot open $file: $!\n";  open(FILE, '+<', $file) or die "$0: cannot open $file: $!\n";
13  binmode FILE;  binmode FILE;
14    
15    @fstat = stat(FILE) or die "$0: stat $file: $!\n";
16    if (!$fstat[7]) {
17        die "$0: $file: cannot query length\n";
18    }
19    
20    # Pad file to a multiple of 2048 bytes
21    $frac = $fstat[7] % 2048;
22    if ($frac) {
23        seek(FILE,$fstat[7],0)
24     or die "$0: $file: cannot seek to end\n";
25        print FILE "\0" x (2048-$frac);
26    }
27    
28    # Checksum the file post header
29  if ( !seek(FILE,64,0) ) {  if ( !seek(FILE,64,0) ) {
30      die "$0: Cannot seek past header\n";      die "$0: $file: cannot seek past header\n";
31  }  }
32    
33  $csum  = 0;  $csum  = 0;
# Line 25  while ( ($n = read(FILE, $dw, 4)) > 0 ) Line 39  while ( ($n = read(FILE, $dw, 4)) > 0 )
39      $bytes += $n;      $bytes += $n;
40  }  }
41    
42    # Update header
43  if ( !seek(FILE,16,0) ) {  if ( !seek(FILE,16,0) ) {
44      die "$0: Cannot seek to header\n";      die "$0: $file: cannot seek to header\n";
45  }  }
46    
47  print FILE pack("VV", $bytes, $csum);  print FILE pack("VV", $bytes, $csum);

Legend:
Removed from v.1132  
changed lines
  Added in v.1133