sendmail + db4 - problem z lockowaniem baz

Jakub Bogusz qboosh w pld.org.pl
Sob, 26 Paź 2002, 18:46:02 CEST


O ile zmusić sendmaila do kompilowania z db 4.1 jest dosyć łatwo (#if
DB_VERSION... wybierające wersję db->open() w 3 miejscach), to
z działaniem gorzej (wywala się już makemap w %install).

Toto stosuje własne lockowanie baz: tworzy pusty plik, robi flock()
(domyślnie) lub fcntl() (przy kompilacji z HASFLOCK=0 - w RELEASE_NOTES
coś marudzą na flock() w Linuksie 2.4, ale przy db3 nie ma problemów)
i dopiero wtedy wywołuje funkcję tworzącą bazę.
Działało to z db 3.1, ale db 4.1 odmawia współpracy, ponieważ istniejąca
baza jest niepoprawna (pomimo DB_CREATE|DB_TRUNCATE w opcjach
db->open()). unlink() bazy przed db->open pomaga na problem z db->open,
ale później makemap wywala się z "Operation not permitted", bo zmienił
mu się "zalockowany" plik.

I co z tym zrobić?
Wywalenie lockowania baz może powodować jakieś problemy
z bezpieczeństwem (w RELEASE_NOTES trochę o tym jest), chociaż może
aktualne db nie ma już z tym problemów?
Zrobić krzywdę db żeby dopuszczał pusty plik bazy przy DB_TRUNCATE?
Nawet nie bardzo wiem gdzie.
Czekać aż sendmail.org uwzględni db 4.1?


-- 
Jakub Bogusz    http://www.cs.net.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl