Home | History | Annotate | Line # | Download | only in util
      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   */
     21 typedef 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 
     29 extern MKMAP *mkmap_open(const char *, const char *, int, int);
     30 extern void mkmap_close(MKMAP *);
     31 
     32 #define mkmap_append(map, key, val) dict_put((map)->dict, (key), (val))
     33 
     34 typedef 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