sync with OpenBSD -current

This commit is contained in:
purplerain 2024-05-07 21:04:28 +00:00
parent a6677bfd36
commit 223def2739
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
29 changed files with 687 additions and 529 deletions

View file

@ -1,4 +1,4 @@
/* $OpenBSD: table.c,v 1.51 2024/01/04 09:34:03 op Exp $ */
/* $OpenBSD: table.c,v 1.52 2024/05/07 12:10:06 op Exp $ */
/*
* Copyright (c) 2013 Eric Faurot <eric@openbsd.org>
@ -37,7 +37,6 @@ extern struct table_backend table_backend_db;
extern struct table_backend table_backend_getpwnam;
extern struct table_backend table_backend_proc;
static const char * table_service_name(enum table_service);
static int table_parse_lookup(enum table_service, const char *, const char *,
union lookup *);
static int parse_sockaddr(struct sockaddr *, int, const char *);
@ -67,27 +66,59 @@ table_backend_lookup(const char *backend)
return NULL;
}
static const char *
const char *
table_service_name(enum table_service s)
{
switch (s) {
case K_NONE: return "NONE";
case K_ALIAS: return "ALIAS";
case K_DOMAIN: return "DOMAIN";
case K_CREDENTIALS: return "CREDENTIALS";
case K_NETADDR: return "NETADDR";
case K_USERINFO: return "USERINFO";
case K_SOURCE: return "SOURCE";
case K_MAILADDR: return "MAILADDR";
case K_ADDRNAME: return "ADDRNAME";
case K_MAILADDRMAP: return "MAILADDRMAP";
case K_RELAYHOST: return "RELAYHOST";
case K_STRING: return "STRING";
case K_REGEX: return "REGEX";
case K_NONE: return "none";
case K_ALIAS: return "alias";
case K_DOMAIN: return "domain";
case K_CREDENTIALS: return "credentials";
case K_NETADDR: return "netaddr";
case K_USERINFO: return "userinfo";
case K_SOURCE: return "source";
case K_MAILADDR: return "mailaddr";
case K_ADDRNAME: return "addrname";
case K_MAILADDRMAP: return "mailaddrmap";
case K_RELAYHOST: return "relayhost";
case K_STRING: return "string";
case K_REGEX: return "regex";
}
return "???";
}
int
table_service_from_name(const char *service)
{
if (!strcmp(service, "none"))
return K_NONE;
if (!strcmp(service, "alias"))
return K_ALIAS;
if (!strcmp(service, "domain"))
return K_DOMAIN;
if (!strcmp(service, "credentials"))
return K_CREDENTIALS;
if (!strcmp(service, "netaddr"))
return K_NETADDR;
if (!strcmp(service, "userinfo"))
return K_USERINFO;
if (!strcmp(service, "source"))
return K_SOURCE;
if (!strcmp(service, "mailaddr"))
return K_MAILADDR;
if (!strcmp(service, "addrname"))
return K_ADDRNAME;
if (!strcmp(service, "mailaddrmap"))
return K_MAILADDRMAP;
if (!strcmp(service, "relayhost"))
return K_RELAYHOST;
if (!strcmp(service, "string"))
return K_STRING;
if (!strcmp(service, "regex"))
return K_REGEX;
return (-1);
}
struct table *
table_find(struct smtpd *conf, const char *name)
{