summaryrefslogtreecommitdiff
path: root/usr.sbin/smtpd/map.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/smtpd/map.c')
-rw-r--r--usr.sbin/smtpd/map.c184
1 files changed, 1 insertions, 183 deletions
diff --git a/usr.sbin/smtpd/map.c b/usr.sbin/smtpd/map.c
index 2c1927709e2..63b9c684a4b 100644
--- a/usr.sbin/smtpd/map.c
+++ b/usr.sbin/smtpd/map.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: map.c,v 1.13 2010/04/21 20:10:24 gilles Exp $ */
+/* $OpenBSD: map.c,v 1.14 2010/04/21 21:04:29 gilles Exp $ */
/*
* Copyright (c) 2008 Gilles Chehade <gilles@openbsd.org>
@@ -37,42 +37,6 @@
struct map_backend *map_backend_lookup(enum map_src);
struct map_parser *map_parser_lookup(enum map_kind);
-/* db(3) backend */
-void *map_db_open(char *);
-void map_db_close(void *);
-char *map_db_get(void *, char *, size_t *);
-int map_db_put(void *, char *, char *);
-
-/* stdio(3) backend */
-void *map_stdio_open(char *);
-void map_stdio_close(void *);
-char *map_stdio_get(void *, char *, size_t *);
-int map_stdio_put(void *, char *, char *);
-
-
-struct map_backend {
- enum map_src source;
- void *(*open)(char *);
- void (*close)(void *);
- char *(*get)(void *, char *, size_t *);
- int (*put)(void *, char *, char *);
-} map_backends[] = {
- { S_DB,
- map_db_open, map_db_close, map_db_get, map_db_put },
- { S_FILE,
- map_stdio_open, map_stdio_close, map_stdio_get, map_stdio_put },
-};
-
-struct map_parser {
- enum map_kind kind;
- void *(*extract)(char *, size_t len);
-} map_parsers[] = {
- { K_NONE, NULL },
- { K_ALIASES, NULL },
- { K_VIRTUAL, NULL },
- { K_SECRETS, NULL }
-};
-
struct map *
map_findbyname(struct smtpd *env, const char *name)
{
@@ -134,149 +98,3 @@ end:
backend->close(hdl);
return ret;
}
-
-struct map_backend *
-map_backend_lookup(enum map_src source)
-{
- u_int8_t i;
-
- for (i = 0; i < nitems(map_backends); ++i)
- if (map_backends[i].source == source)
- break;
-
- if (i == nitems(map_backends))
- fatalx("invalid map type");
-
- return &map_backends[i];
-}
-
-struct map_parser *
-map_parser_lookup(enum map_kind kind)
-{
- u_int8_t i;
-
- for (i = 0; i < nitems(map_parsers); ++i)
- if (map_parsers[i].kind == kind)
- break;
-
- if (i == nitems(map_parsers))
- fatalx("invalid map kind");
-
- return &map_parsers[i];
-}
-
-/* db(3) backend */
-void *
-map_db_open(char *src)
-{
- return dbopen(src, O_RDONLY, 0600, DB_HASH, NULL);
-}
-
-void
-map_db_close(void *hdl)
-{
- DB *db = hdl;
-
- db->close(db);
-}
-
-char *
-map_db_get(void *hdl, char *key, size_t *len)
-{
- int ret;
- DBT dbk;
- DBT dbv;
- DB *db = hdl;
- char *result = NULL;
-
- dbk.data = key;
- dbk.size = strlen(dbk.data) + 1;
-
- if ((ret = db->get(db, &dbk, &dbv, 0)) != 0)
- return NULL;
-
- result = calloc(dbv.size, 1);
- if (result == NULL)
- fatal("calloc");
- (void)strlcpy(result, dbv.data, dbv.size);
-
- *len = dbv.size;
-
- return result;
-}
-
-int
-map_db_put(void *hdl, char *key, char *val)
-{
- return 0;
-}
-
-
-/* stdio(3) backend */
-void *
-map_stdio_open(char *src)
-{
- return fopen(src, "r");
-}
-
-void
-map_stdio_close(void *hdl)
-{
- FILE *fp = hdl;
-
- fclose(fp);
-}
-
-char *
-map_stdio_get(void *hdl, char *key, size_t *len)
-{
- char *buf, *lbuf;
- size_t flen;
- char *keyp;
- char *valp;
- FILE *fp = hdl;
- char *result = NULL;
-
- lbuf = NULL;
- while ((buf = fgetln(fp, &flen))) {
- if (buf[flen - 1] == '\n')
- buf[flen - 1] = '\0';
- else {
- if ((lbuf = malloc(flen + 1)) == NULL)
- err(1, NULL);
- memcpy(lbuf, buf, flen);
- lbuf[flen] = '\0';
- buf = lbuf;
- }
-
- keyp = buf;
- while (isspace((int)*keyp))
- ++keyp;
- if (*keyp == '\0' || *keyp == '#')
- continue;
-
- valp = keyp;
- strsep(&valp, " \t:");
- if (valp == NULL || valp == keyp)
- continue;
-
- if (strcmp(keyp, key) != 0)
- continue;
-
- result = strdup(valp);
- if (result == NULL)
- err(1, NULL);
- *len = strlen(result);
-
- break;
- }
- free(lbuf);
-
- return result;
-}
-
-int
-map_stdio_put(void *hdl, char *key, char *val)
-{
- return 0;
-}