Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jun 2020 16:01:13 +0200
From:      Milan Obuch <freebsd-python@dino.sk>
To:        freebsd-python@freebsd.org
Subject:   Any way to access db5 data with python?
Message-ID:  <20200619160113.3280a8d1@zeta.dino.sk>

next in thread | raw e-mail | index | archive | help
Hi,

I am trying to upgrade mail/courier-pythonfilter port to new version
using Python 3. While it basically works, I found there is some problem
accessing database from courier mail server. In log file I see

courierfilter[2875]: Error reading /usr/local/etc/courier/smtpaccess.dat

This file exists, it is

-rw-r--r--  1 root  courier  131072 May 26 13:30 smtpaccess.dat

Pythonfilter author wrote me it probably means there is no module for
accessing it and suggested test

$ python3
 >>> import dbm
 >>> dbm.open('/usr/local/etc/courier/smtpaccess.dat', 'r')  

This gives an error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/dbm/__init__.py", line 88, in open
    raise error[0]("db type could not be determined")
dbm.error: db type could not be determined

With some tests I found a way to display file contents:

# dbmmanage /usr/local/etc/courier/smtpaccess.dat view
127.0.0.1:allow,RELAYCLIENT
:0000:0000:0000:0000:0000:0000:0000:0001:allow,RELAYCLIENT
10:allow,RELAYCLIENT
192.168:allow,RELAYCLIENT

or

# db_dump185-5.3 -p /usr/local/etc/courier/smtpaccess.dat
format=print
type=hash
h_ffactor=65536
db_lorder=1234
db_pagesize=32768
HEADER=END
127.0.0.1
allow,RELAYCLIENT
:0000:0000:0000:0000:0000:0000:0000:0001
allow,RELAYCLIENT
10
allow,RELAYCLIENT
192.168
allow,RELAYCLIENT

First one uses binary installed with apache web server, second one uses
binary from db5 package.

One more test:

# file /usr/local/etc/courier/smtpaccess.dat
/usr/local/etc/courier/smtpaccess.dat: Berkeley DB 1.85 (Hash, version 2, native byte-order)

Could anybody offer a hint? I found no Python package for db5, at least
not with name like py-db5 or some such tricial.

Regards,
Milan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200619160113.3280a8d1>