1/* $NetBSD: mkmap.h,v 1.2 2023/12/23 20:30:46 christos Exp $ */ 2 3#ifndef _MKMAP_H_INCLUDED_ 4#define _MKMAP_H_INCLUDED_ 5 6/*++ 7/* NAME 8/* mkmap 3h 9/* SUMMARY 10/* create or rewrite Postfix database 11/* SYNOPSIS 12/* #include <mkmap.h> 13/* DESCRIPTION 14/* .nf 15 16 /* 17 * We try to open and lock a file before DB/DBM initialization. However, if 18 * the file does not exist then we may have to acquire the lock after the 19 * DB/DBM initialization. 20 */ 21typedef struct MKMAP { 22 struct DICT *(*open) (const char *, int, int); /* dict_xx_open() */ 23 struct DICT *dict; /* dict_xx_open() result */ 24 void (*after_open) (struct MKMAP *); /* may be null */ 25 void (*after_close) (struct MKMAP *); /* may be null */ 26 int multi_writer; /* multi-writer safe */ 27} MKMAP; 28 29extern MKMAP *mkmap_open(const char *, const char *, int, int); 30extern void mkmap_close(MKMAP *); 31 32#define mkmap_append(map, key, val) dict_put((map)->dict, (key), (val)) 33 34typedef MKMAP *(*MKMAP_OPEN_FN) (const char *); 35 36/* LICENSE 37/* .ad 38/* .fi 39/* The Secure Mailer license must be distributed with this software. 40/* AUTHOR(S) 41/* Wietse Venema 42/* IBM T.J. Watson Research 43/* P.O. Box 704 44/* Yorktown Heights, NY 10598, USA 45/* 46/* Wietse Venema 47/* Google, Inc. 48/* 111 8th Avenue 49/* New York, NY 10011, USA 50/*--*/ 51 52#endif 53