Date: Wed, 3 May 2006 21:49:21 +0200 From: mark <mark.rowlands@mypost.se> To: freebsd-questions@freebsd.org Subject: "Inappropriate file type or format" error when accessing berkely DB file via perl Message-ID: <200605032149.24248.mark.rowlands@mypost.se>
next in thread | raw e-mail | index | archive | help
I am trying to access my squidguard berkely db files via perl  and DB_File
(as per the SquidGuard docs)
When I run the following perl snippet
#!/usr/bin/perl
    use DB_File;
    my (%url,%domain);
	$DB_BTREE->{compare} = \&domainmatch;
	my $domain_db = 
tie(%domain, "DB_File", "/var/db/squidGuard/warez/domains.db", O_CREAT|
O_RDWR, 0664, $DB_BTREE) || die("domains.db: $!\n");
	
	$domain_db->put(".six.com","") unless(exists($domain{"six.com"}));
	$domain_db->sync; # Seems to only sync the last change.
	
	undef($domain_db); # Destroy the object
	untie(%domain); # Sync and close the file and undef the hash
The following is returned
domains.db: Inappropriate file type or format
When I do a file /var/db/squidGuard/warez/domains.db
the following is displayed
/var/db/squidGuard/warez/domains.db: Berkeley DB 
(Btree, version 8, native byte-order)
When I create a db with perl 
#!/usr/bin/perl -w
use strict;
use DB_File;
my  %database;
tie %database, 'DB_File', "createdb.dat"
    or die "Can't initialize database: $!\n";
untie %database;
exit; 
then
file createdb.dat  
reveals :- 
createdb.dat: Berkeley DB 1.85 (Hash, version 2, native byte-order)
I suspect the version 2 / version 8  is the srouce of my innappropriate file 
type or format error!
So ......  I tried reinstalling DB_file   guessing that it had some kind of 
dependency on DB3.. Thsi had no effect. I tried reinstalling Perl itself.
Also no effect.
So I am a bit stuck, How do I get DB_File to play nice with DB3 or should I be 
trying some other method to access these files.
Relevant Ports installed
db3-3.3.11_2,1
bsdpan-DB_File-1.814
p5-DBD-mysql41-3.0002
squid-2.5.13
squidGuard-1.2.0_1
perl-5.8.8
possible related ports
dbh-1.0.24_1
gdbm-1.8.3_2
p5-DBI-1.50
FreeBSD pcmarpxy.mwrwin2k.se 6.0-STABLE FreeBSD 6.0-STABLE #1: Fri Dec 23 
11:58:53 CET 2005     root@pcmarpxy.mwrwin2k.se:/usr/obj/usr/src/sys/MARK  
i386
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605032149.24248.mark.rowlands>
