328 |
$import2cp = Text::Iconv->new($config->{isis_codepage},$codepage); |
$import2cp = Text::Iconv->new($config->{isis_codepage},$codepage); |
329 |
my $db = OpenIsis::open( $isis_db ); |
my $db = OpenIsis::open( $isis_db ); |
330 |
|
|
331 |
|
# check if .txt database for OpenIsis is zero length, |
332 |
|
# if so, erase it and re-open database |
333 |
|
sub check_txt_db { |
334 |
|
my $isis_db = shift || die "need isis database name"; |
335 |
|
if (-e $isis_db.".TXT") { |
336 |
|
print STDERR "WARNING: removing .txt OpenIsis database...\n"; |
337 |
|
unlink $isis_db.".TXT" || warn "unlink error on '$isis_db.TXT': $!"; |
338 |
|
my $db = OpenIsis::open( $isis_db ); |
339 |
|
return $db; |
340 |
|
} |
341 |
|
} |
342 |
|
|
343 |
|
# EOF error |
344 |
|
if ($db == -1) { |
345 |
|
$db = check_txt_db($isis_db); |
346 |
|
if (! $db) { |
347 |
|
print STDERR "FATAL: OpenIsis can't open zero size file $isis_db\n"; |
348 |
|
next; |
349 |
|
} |
350 |
|
} |
351 |
|
|
352 |
# OpenIsis::ERR_BADF |
# OpenIsis::ERR_BADF |
353 |
if ($db == -4) { |
if ($db == -4) { |
354 |
print STDERR "FATAL: OpenIsis can't find file $isis_db\n"; |
print STDERR "FATAL: OpenIsis can't find file $isis_db\n"; |
364 |
|
|
365 |
my $max_rowid = OpenIsis::maxRowid( $db ); |
my $max_rowid = OpenIsis::maxRowid( $db ); |
366 |
|
|
367 |
|
# if 0 records, try to rease isis .txt database |
368 |
|
if ($max_rowid == 0) { |
369 |
|
# force removal of database |
370 |
|
$db = check_txt_db($isis_db); |
371 |
|
$max_rowid = OpenIsis::maxRowid( $db ); |
372 |
|
} |
373 |
|
|
374 |
print STDERR "Reading database: $isis_db [$max_rowid rows]\n"; |
print STDERR "Reading database: $isis_db [$max_rowid rows]\n"; |
375 |
|
|
376 |
my $path = $database; |
my $path = $database; |