Remove the table_static_parse() indirection for parsing the file content.
The "type" parameter is useless since the "(t->t_type & type)" test is always
true.  I think this is a left-over from the old design when table parsing was
done in context of its intended use in the global config.

Eric.


Index: table_static.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/table_static.c,v
retrieving revision 1.15
diff -u -p -r1.15 table_static.c
--- table_static.c      22 Jan 2016 13:08:44 -0000      1.15
+++ table_static.c      13 Aug 2017 11:28:50 -0000
@@ -47,7 +47,6 @@ static int table_static_lookup(void *, s
 static int table_static_fetch(void *, struct dict *, enum table_service,
     union lookup *);
 static void  table_static_close(void *);
-static int table_static_parse(struct table *, const char *, enum table_type);
 
 struct table_backend table_backend_static = {
        K_ALIAS|K_CREDENTIALS|K_DOMAIN|K_NETADDR|K_USERINFO|
@@ -71,17 +70,7 @@ static struct keycmp {
 
 
 static int
-table_static_config(struct table *table)
-{
-       /* no config ? ok */
-       if (*table->t_config == '\0')
-               return 1;
-
-       return table_static_parse(table, table->t_config, T_LIST|T_HASH);
-}
-
-static int
-table_static_parse(struct table *t, const char *config, enum table_type type)
+table_static_config(struct table *t)
 {
        FILE    *fp;
        char    *buf = NULL;
@@ -91,10 +80,14 @@ table_static_parse(struct table *t, cons
        char    *valp;
        size_t   ret = 0;
 
-        if ((fp = fopen(config, "r")) == NULL) {
-                log_warn("warn: Table \"%s\"", config);
-                return 0;
-        }
+       /* no config ? ok */
+       if (*t->t_config == '\0')
+               return 1;
+
+       if ((fp = fopen(t->t_config, "r")) == NULL) {
+               log_warn("warn: Table \"%s\"", t->t_config);
+               return 0;
+       }
 
        while ((flen = getline(&buf, &sz, fp)) != -1) {
                if (buf[flen - 1] == '\n')
@@ -122,9 +115,6 @@ table_static_parse(struct table *t, cons
                if (t->t_type == 0)
                        t->t_type = (valp == keyp || valp == NULL) ? T_LIST :
                            T_HASH;
-
-               if (!(t->t_type & type))
-                       goto end;
 
                if ((valp == keyp || valp == NULL) && t->t_type == T_LIST)
                        table_add(t, keyp, NULL);

Reply via email to