annotate src/conf.c @ 91:3e7136221104

correct masqmail path in rmail script; remove docs on uninstall on install the correct path to the masqmail executable gets inserted into the rmail script now. now documentation, examples, and the templates are removed on uninstall. Empty directories are the only thing that may remain if one installs masqmail into an unusual path.
author meillo@marmaro.de
date Mon, 21 Jun 2010 09:40:16 +0200
parents 71605f542ecc
children a80ebfa16cd5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
1 /* MasqMail
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
2 Copyright (C) 1999-2001 Oliver Kurth
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
3
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
4 This program is free software; you can redistribute it and/or modify
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
5 it under the terms of the GNU General Public License as published by
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
6 the Free Software Foundation; either version 2 of the License, or
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
7 (at your option) any later version.
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
8
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
12 GNU General Public License for more details.
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
13
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
14 You should have received a copy of the GNU General Public License
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
15 along with this program; if not, write to the Free Software
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
17 */
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
18
13
49dab67fe461 code beautifying
meillo@marmaro.de
parents: 10
diff changeset
19 #include <pwd.h>
49dab67fe461 code beautifying
meillo@marmaro.de
parents: 10
diff changeset
20 #include <grp.h>
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
21
13
49dab67fe461 code beautifying
meillo@marmaro.de
parents: 10
diff changeset
22 #include "masqmail.h"
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
23
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
24 masqmail_conf conf;
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
25
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
26 void
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
27 init_conf()
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
28 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
29 struct passwd *passwd;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
30 struct group *group;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
31
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
32 memset(&conf, 0, sizeof(masqmail_conf));
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
33
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
34 conf.orig_uid = getuid();
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
35 conf.orig_gid = getgid();
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
36
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
37 if ((passwd = getpwnam(DEF_MAIL_USER)))
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
38 conf.mail_uid = passwd->pw_uid;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
39 else {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
40 fprintf(stderr, "user %s not found! (terminating)\n", DEF_MAIL_USER);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
41 exit(EXIT_FAILURE);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
42 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
43 if ((group = getgrnam(DEF_MAIL_GROUP)))
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
44 conf.mail_gid = group->gr_gid;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
45 else {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
46 fprintf(stderr, "group %s not found! (terminating)\n", DEF_MAIL_GROUP);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
47 exit(EXIT_FAILURE);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
48 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
49 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
50
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
51 static gchar* true_strings[] = {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
52 "yes", "on", "true", NULL
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
53 };
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
54
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
55 static gchar *false_strings[] = {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
56 "no", "off", "false", NULL
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
57 };
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
58
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
59 static gboolean
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
60 parse_boolean(gchar * rval)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
61 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
62 gchar **str;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
63
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
64 DEBUG(6) fprintf(stderr, "parse_boolean: %s\n", rval);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
65
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
66 str = true_strings;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
67 while (*str) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
68 if (strncasecmp(*str, rval, strlen(*str)) == 0)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
69 return TRUE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
70 str++;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
71 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
72
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
73 str = false_strings;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
74 while (*str) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
75 if (strncasecmp(*str, rval, strlen(*str)) == 0)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
76 return FALSE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
77 str++;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
78 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
79
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
80 fprintf(stderr, "cannot parse value '%s'\n", rval);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
81 exit(EXIT_FAILURE);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
82 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
83
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
84 /* make a list from each line in a file */
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
85 static GList*
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
86 parse_list_file(gchar * fname)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
87 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
88 GList *list = NULL;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
89 FILE *fptr;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
90
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
91 if ((fptr = fopen(fname, "rt")) == NULL) {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
92 logwrite(LOG_ALERT, "could not open %s for reading: %s\n", fname, strerror(errno));
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
93 exit(EXIT_FAILURE);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
94 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
95
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
96 gchar buf[256];
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
97
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
98 while (!feof(fptr)) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
99 fgets(buf, 255, fptr);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
100 if (buf[0] && (buf[0] != '#') && (buf[0] != '\n')) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
101 g_strchomp(buf);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
102 list = g_list_append(list, g_strdup(buf));
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
103 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
104 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
105 fclose(fptr);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
106
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
107 return list;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
108 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
109
13
49dab67fe461 code beautifying
meillo@marmaro.de
parents: 10
diff changeset
110 /* given a semicolon separated string, this function makes a GList out of it. */
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
111 GList*
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
112 parse_list(gchar * line, gboolean read_file)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
113 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
114 GList *list = NULL;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
115 gchar buf[256];
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
116 gchar *p, *q;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
117
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
118 DEBUG(6) fprintf(stderr, "parsing list %s\n", line);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
119
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
120 p = line;
14
a8f3424347dc replaced number 0 with character \0 where appropriate
meillo@marmaro.de
parents: 13
diff changeset
121 while (*p != '\0') {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
122 q = buf;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
123
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
124 while (*p && (*p != ';') && (q < buf + 255))
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
125 *(q++) = *(p++);
14
a8f3424347dc replaced number 0 with character \0 where appropriate
meillo@marmaro.de
parents: 13
diff changeset
126 *q = '\0';
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
127
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
128 if ((buf[0] == '/') && (read_file))
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
129 /* item is a filename, include its contents */
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
130 list = g_list_concat(list, parse_list_file(buf));
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
131 else
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
132 /* just a normal item */
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
133 list = g_list_append(list, g_strdup(buf));
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
134
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
135 DEBUG(6) printf("item = %s\n", buf);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
136
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
137 if (*p)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
138 p++;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
139 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
140 return list;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
141 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
142
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
143 static GList*
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
144 parse_address_list(gchar * line, gboolean read_file)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
145 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
146 GList *plain_list = parse_list(line, read_file);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
147 GList *node;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
148 GList *list = NULL;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
149
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
150 foreach(plain_list, node) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
151 gchar *item = (gchar *) (node->data);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
152 address *addr = create_address(item, TRUE);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
153 if (addr)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
154 list = g_list_append(list, addr);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
155 g_free(item);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
156 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
157 g_list_free(plain_list);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
158
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
159 return list;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
160 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
161
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
162 static GList*
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
163 parse_resolve_list(gchar * line)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
164 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
165 GList *list;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
166 GList *list_node;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
167 GList *res_list = NULL;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
168
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
169 list = parse_list(line, FALSE);
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
170 if (!list) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
171 return NULL;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
172 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
173
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
174 foreach(list, list_node) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
175 gchar *item = (gchar *) (list_node->data);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
176 if (strcmp(item, "byname") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
177 res_list = g_list_append(res_list, resolve_byname);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
178 #ifdef ENABLE_RESOLVER
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
179 } else if (strcmp(item, "dns_a") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
180 res_list = g_list_append(res_list, resolve_dns_a);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
181 } else if (strcmp(item, "dns_mx") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
182 res_list = g_list_append(res_list, resolve_dns_mx);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
183 #endif
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
184 } else {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
185 logwrite(LOG_ALERT, "unknown resolver %s\n", item);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
186 exit(EXIT_FAILURE);
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
187 }
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
188 g_free(item);
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
189 }
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
190 g_list_free(list);
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
191 return res_list;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
192 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
193
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
194 static interface*
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
195 parse_interface(gchar * line, gint def_port)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
196 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
197 gchar buf[256];
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
198 gchar *p, *q;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
199 interface *iface;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
200
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
201 DEBUG(6) fprintf(stderr, "parse_interface: %s\n", line);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
202
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
203 p = line;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
204 q = buf;
14
a8f3424347dc replaced number 0 with character \0 where appropriate
meillo@marmaro.de
parents: 13
diff changeset
205 while ((*p != '\0') && (*p != ':') && (q < buf + 255))
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
206 *(q++) = *(p++);
14
a8f3424347dc replaced number 0 with character \0 where appropriate
meillo@marmaro.de
parents: 13
diff changeset
207 *q = '\0';
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
208
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
209 iface = g_malloc(sizeof(interface));
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
210 iface->address = g_strdup(buf);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
211
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
212 if (*p) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
213 p++;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
214 iface->port = atoi(p);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
215 } else
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
216 iface->port = def_port;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
217
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
218 return iface;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
219 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
220
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
221 #ifdef ENABLE_IDENT /* so far used for that only */
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
222 static struct in_addr*
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
223 parse_network(gchar * line, gint def_port)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
224 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
225 gchar buf[256];
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
226 gchar *p, *q;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
227 struct in_addr addr, mask_addr, net_addr, *p_net_addr;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
228 guint n;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
229
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
230 DEBUG(6) fprintf(stderr, "parse_network: %s\n", line);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
231
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
232 p = line;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
233 q = buf;
14
a8f3424347dc replaced number 0 with character \0 where appropriate
meillo@marmaro.de
parents: 13
diff changeset
234 while ((*p != '\0') && (*p != '/') && (q < buf + 255))
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
235 *(q++) = *(p++);
14
a8f3424347dc replaced number 0 with character \0 where appropriate
meillo@marmaro.de
parents: 13
diff changeset
236 *q = '\0';
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
237
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
238 if ((addr.s_addr = inet_addr(buf)) == INADDR_NONE) {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
239 fprintf(stderr, "'%s' is not a valid address (must be ip)\n", buf);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
240 exit(EXIT_FAILURE);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
241 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
242
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
243 if (*p) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
244 guint i;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
245 p++;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
246 i = atoi(p);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
247 if ((i >= 0) && (i <= 32))
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
248 n = i ? ~((1 << (32 - i)) - 1) : 0;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
249 else {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
250 fprintf(stderr, "'%d' is not a valid net mask (must be >= 0 and <= 32)\n", i);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
251 exit(EXIT_FAILURE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
252 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
253 } else
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
254 n = 0;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
255
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
256 mask_addr.s_addr = htonl(n);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
257 net_addr.s_addr = mask_addr.s_addr & addr.s_addr;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
258
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
259 p_net_addr = g_malloc(sizeof(struct in_addr));
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
260 p_net_addr->s_addr = net_addr.s_addr;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
261 return p_net_addr;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
262 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
263 #endif
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
264
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
265 static gboolean
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
266 eat_comments(FILE * in)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
267 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
268 gint c;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
269
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
270 for (c = fgetc(in); (c == '#' || isspace(c)) && c != EOF;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
271 c = fgetc(in)) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
272 if (c == '#') {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
273 gint c;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
274 for (c = fgetc(in); (c != '\n') && (c != EOF); c = fgetc(in));
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
275 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
276 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
277 if (c == EOF)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
278 return FALSE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
279 ungetc(c, in);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
280 return TRUE;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
281 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
282
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
283 /* after parsing, eat trailing character until LF */
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
284 static gboolean
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
285 eat_line_trailing(FILE * in)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
286 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
287 gint c;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
288
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
289 for (c = fgetc(in); c != EOF && c != '\n'; c = fgetc(in));
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
290 if (c == EOF)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
291 return FALSE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
292 return TRUE;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
293 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
294
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
295 static gboolean
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
296 eat_spaces(FILE * in)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
297 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
298 gint c;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
299
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
300 for (c = fgetc(in); c != EOF && isspace(c); c = fgetc(in)) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
301 /* empty */
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
302 }
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
303 if (c == EOF)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
304 return FALSE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
305 ungetc(c, in);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
306 return TRUE;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
307 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
308
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
309 static gboolean
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
310 read_lval(FILE * in, gchar * buf, gint size)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
311 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
312 gint c;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
313 gchar *ptr = buf;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
314
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
315 DEBUG(6) fprintf(stderr, "read_lval()\n");
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
316
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
317 if (!eat_spaces(in))
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
318 return FALSE;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
319
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
320 c = fgetc(in);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
321 DEBUG(6) fprintf(stderr, "read_lval() 2\n");
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
322 while ((isalnum(c) || c == '_' || c == '-' || c == '.')
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
323 && (ptr < buf + size - 1)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
324 && (c != EOF)) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
325 *ptr = c;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
326 ptr++;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
327 c = fgetc(in);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
328 }
14
a8f3424347dc replaced number 0 with character \0 where appropriate
meillo@marmaro.de
parents: 13
diff changeset
329 *ptr = '\0';
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
330 ungetc(c, in);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
331
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
332 if (c == EOF) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
333 fprintf(stderr, "unexpected EOF after %s\n", buf);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
334 return FALSE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
335 } else if (ptr >= buf + size - 1) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
336 fprintf(stderr, "lval too long\n");
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
337 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
338
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
339 eat_spaces(in);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
340
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
341 DEBUG(6) fprintf(stderr, "lval = %s\n", buf);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
342
14
a8f3424347dc replaced number 0 with character \0 where appropriate
meillo@marmaro.de
parents: 13
diff changeset
343 return buf[0] != '\0';
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
344 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
345
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
346 static gboolean
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
347 read_rval(FILE * in, gchar * buf, gint size)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
348 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
349 gint c;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
350 gchar *ptr = buf;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
351
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
352 DEBUG(6) fprintf(stderr, "read_rval()\n");
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
353
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
354 if (!eat_spaces(in))
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
355 return FALSE;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
356
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
357 c = fgetc(in);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
358 if (c != '\"') {
13
49dab67fe461 code beautifying
meillo@marmaro.de
parents: 10
diff changeset
359 while ((isalnum(c) || c == '_' || c == '-' || c == '.' || c == '/' || c == '@' || c == ';')
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
360 && (ptr < buf + size - 1)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
361 && (c != EOF)) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
362 *ptr = c;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
363 ptr++;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
364 c = fgetc(in);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
365 }
14
a8f3424347dc replaced number 0 with character \0 where appropriate
meillo@marmaro.de
parents: 13
diff changeset
366 *ptr = '\0';
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
367 ungetc(c, in);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
368 } else {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
369 gboolean escape = FALSE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
370 c = fgetc(in);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
371 while (((c != '\"') || escape) && (ptr < buf + size - 1)) {
13
49dab67fe461 code beautifying
meillo@marmaro.de
parents: 10
diff changeset
372 if (c != '\n') { /* ignore line breaks */
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
373 if ((c == '\\') && (!escape)) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
374 escape = TRUE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
375 } else {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
376 *ptr = c;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
377 ptr++;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
378 escape = FALSE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
379 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
380 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
381 c = fgetc(in);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
382 }
14
a8f3424347dc replaced number 0 with character \0 where appropriate
meillo@marmaro.de
parents: 13
diff changeset
383 *ptr = '\0';
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
384 }
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
385
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
386 eat_line_trailing(in);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
387
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
388 DEBUG(6) fprintf(stderr, "rval = %s\n", buf);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
389
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
390 return TRUE;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
391 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
392
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
393 static gboolean
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
394 read_statement(FILE * in, gchar * lval, gint lsize, gchar * rval, gint rsize)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
395 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
396 gint c;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
397
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
398 DEBUG(6) fprintf(stderr, "read_statement()\n");
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
399
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
400 /* eat comments and empty lines: */
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
401 if (!eat_comments(in))
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
402 return FALSE;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
403
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
404 DEBUG(6) fprintf(stderr, "read_statement() 1\n");
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
405
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
406 if (!read_lval(in, lval, lsize)) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
407 return FALSE;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
408 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
409
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
410 DEBUG(6) fprintf(stderr, "lval = %s\n", lval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
411 if ((c = fgetc(in) == '=')) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
412 if (read_rval(in, rval, rsize)) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
413 DEBUG(6) fprintf(stderr, "rval = %s\n", rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
414 return TRUE;
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
415 }
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
416 } else {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
417 fprintf(stderr, "'=' expected after %s, char was '%c'\n", lval, c);
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
418 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
419 return FALSE;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
420 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
421
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
422 gboolean
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
423 read_conf(gchar * filename)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
424 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
425 FILE *in;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
426
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
427 conf.log_max_pri = 7;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
428 conf.remote_port = 25;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
429 conf.do_relay = TRUE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
430 conf.alias_local_cmp = strcmp;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
431 conf.max_defer_time = 86400 * 4; /* 4 days */
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
432
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
433 if ((in = fopen(filename, "r")) == NULL) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
434 fprintf(stderr, "could not open config file %s: %s\n", filename, strerror(errno));
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
435 return FALSE;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
436 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
437
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
438 gchar lval[256], rval[2048];
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
439 while (read_statement(in, lval, 256, rval, 2048)) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
440 if (strcmp(lval, "debug_level") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
441 conf.debug_level = atoi(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
442 else if (strcmp(lval, "run_as_user") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
443 if (!conf.run_as_user) /* you should not be able to reset that flag */
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
444 conf.run_as_user = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
445 } else if (strcmp(lval, "use_syslog") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
446 conf.use_syslog = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
447 else if (strcmp(lval, "mail_dir") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
448 conf.mail_dir = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
449 else if (strcmp(lval, "lock_dir") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
450 conf.lock_dir = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
451 else if (strcmp(lval, "spool_dir") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
452 conf.spool_dir = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
453 else if (strcmp(lval, "log_dir") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
454 conf.log_dir = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
455 else if (strcmp(lval, "host_name") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
456 if (rval[0] != '/')
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
457 conf.host_name = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
458 else {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
459 char buf[256];
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
460 FILE *fptr = fopen(rval, "rt");
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
461 if (fptr) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
462 fprintf(stderr, "could not open %s: %s\n", rval, strerror(errno));
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
463 return FALSE;
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
464 }
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
465 fgets(buf, 255, fptr);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
466 g_strchomp(buf);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
467 conf.host_name = g_strdup(buf);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
468 fclose(fptr);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
469 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
470 } else if (strcmp(lval, "remote_port") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
471 fprintf(stderr, "the remote_port option is now deprecated. Use 'mail_host' in the\n"
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
472 "route configuration instead. See man masqmail.route\n");
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
473 conf.remote_port = atoi(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
474 } else if (strcmp(lval, "local_hosts") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
475 conf.local_hosts = parse_list(rval, FALSE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
476 else if (strcmp(lval, "local_addresses") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
477 conf.local_addresses = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
478 else if (strcmp(lval, "not_local_addresses") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
479 conf.not_local_addresses = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
480 else if (strcmp(lval, "local_nets") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
481 conf.local_nets = parse_list(rval, FALSE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
482 else if (strcmp(lval, "do_save_envelope_to") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
483 conf.do_save_envelope_to = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
484 else if (strcmp(lval, "defer_all") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
485 conf.defer_all = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
486 else if (strcmp(lval, "do_relay") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
487 conf.do_relay = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
488 else if (strcmp(lval, "alias_file") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
489 conf.alias_file = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
490 } else if (strcmp(lval, "alias_local_caseless") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
491 conf.alias_local_cmp = parse_boolean(rval) ? strcasecmp : strcmp;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
492 } else if (strcmp(lval, "mbox_default") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
493 conf.mbox_default = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
494 } else if (strcmp(lval, "mbox_users") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
495 conf.mbox_users = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
496 } else if (strcmp(lval, "mda_users") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
497 conf.mda_users = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
498 } else if (strcmp(lval, "maildir_users") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
499 conf.maildir_users = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
500 } else if (strcmp(lval, "mda") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
501 conf.mda = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
502 } else if (strcmp(lval, "mda_fromline") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
503 conf.mda_fromline = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
504 } else if (strcmp(lval, "mda_fromhack") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
505 conf.mda_fromhack = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
506 } else if (strcmp(lval, "pipe_fromline") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
507 conf.pipe_fromline = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
508 } else if (strcmp(lval, "pipe_fromhack") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
509 conf.pipe_fromhack = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
510 } else if (strcmp(lval, "listen_addresses") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
511 GList *node;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
512 GList *tmp_list = parse_list(rval, FALSE);
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
513
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
514 conf.listen_addresses = NULL;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
515 foreach(tmp_list, node) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
516 conf.listen_addresses = g_list_append(conf.listen_addresses, parse_interface((gchar *) (node-> data), 25));
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
517 g_free(node->data);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
518 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
519 g_list_free(tmp_list);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
520 } else if (strcmp(lval, "ident_trusted_nets") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
521 #ifdef ENABLE_IDENT
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
522 GList *node;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
523 GList *tmp_list = parse_list(rval, FALSE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
524
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
525 conf.ident_trusted_nets = NULL;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
526 foreach(tmp_list, node) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
527 conf.ident_trusted_nets = g_list_append(conf.ident_trusted_nets, parse_network((gchar *) (node->data), 25));
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
528 g_free(node->data);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
529 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
530 g_list_free(tmp_list);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
531 #else
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
532 fprintf(stderr, "%s ignored: not compiled with ident support\n", lval);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
533 #endif
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
534 } else if ((strncmp(lval, "connect_route.", 14) == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
535 || (strncmp(lval, "online_routes.", 14) == 0)) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
536 GList *file_list = parse_list(rval, FALSE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
537 table_pair *pair = create_pair(&(lval[14]), file_list);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
538 conf.connect_routes = g_list_append(conf.connect_routes, pair);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
539 } else if (strcmp(lval, "local_net_route") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
540 conf.local_net_routes = parse_list(rval, FALSE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
541 } else if (strcmp(lval, "online_detect") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
542 conf.online_detect = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
543 else if (strcmp(lval, "online_file") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
544 conf.online_file = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
545 else if (strcmp(lval, "online_pipe") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
546 conf.online_pipe = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
547 else if (strcmp(lval, "mserver_iface") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
548 conf.mserver_iface = parse_interface(rval, 224);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
549 else if (strcmp(lval, "do_queue") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
550 conf.do_queue = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
551 else if (strncmp(lval, "get.", 4) == 0) {
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
552 #ifdef ENABLE_POP3
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
553 table_pair *pair = create_pair_string(&(lval[4]), rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
554 conf.get_names = g_list_append(conf.get_names, pair);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
555 #else
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
556 fprintf(stderr, "get.<name> ignored: not compiled with pop support\n");
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
557 #endif
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
558 } else if (strncmp(lval, "online_gets.", 12) == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
559 #ifdef ENABLE_POP3
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
560 GList *file_list = parse_list(rval, FALSE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
561 table_pair *pair = create_pair(&(lval[12]), file_list);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
562 conf.online_gets = g_list_append(conf.online_gets, pair);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
563 #else
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
564 fprintf(stderr, "online_gets.<name> ignored: not compiled with pop support\n");
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
565 #endif
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
566 } else if (strcmp(lval, "errmsg_file") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
567 conf.errmsg_file = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
568 else if (strcmp(lval, "warnmsg_file") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
569 conf.warnmsg_file = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
570 else if (strcmp(lval, "warn_intervals") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
571 conf.warn_intervals = parse_list(rval, FALSE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
572 else if (strcmp(lval, "max_defer_time") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
573 gint dummy;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
574 gint ival = time_interval(rval, &dummy);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
575 if (ival < 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
576 fprintf(stderr, "invalid time interval for 'max_defer_time': %s\n", rval);
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
577 else
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
578 conf.max_defer_time = ival;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
579 } else if (strcmp(lval, "log_user") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
580 conf.log_user = g_strdup(rval);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
581
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
582 else
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
583 fprintf(stderr, "var '%s' not (yet) known, ignored\n", lval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
584 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
585 fclose(in);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
586
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
587 if (conf.errmsg_file == NULL)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
588 conf.errmsg_file = g_strdup(DATA_DIR "/tpl/failmsg.tpl");
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
589 if (conf.warnmsg_file == NULL)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
590 conf.warnmsg_file = g_strdup(DATA_DIR "/tpl/warnmsg.tpl");
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
591
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
592 if (conf.lock_dir == NULL)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
593 conf.lock_dir = g_strdup_printf("%s/lock/", conf.spool_dir);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
594
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
595 if (conf.mbox_default == NULL)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
596 conf.mbox_default = g_strdup("mbox");
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
597
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
598 if (conf.warn_intervals == NULL)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
599 conf.warn_intervals = parse_list("1h;4h;8h;1d;2d;3d", FALSE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
600
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
601 return TRUE;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
602 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
603
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
604 connect_route*
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
605 read_route(gchar * filename, gboolean is_local_net)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
606 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
607 gboolean ok = FALSE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
608 FILE *in;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
609
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
610 connect_route *route = g_malloc(sizeof(connect_route));
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
611 memset(route, 0, sizeof(connect_route));
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
612
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
613 DEBUG(5) debugf("read_route, filename = %s\n", filename);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
614
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
615 route->filename = g_strdup(filename);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
616 route->name = g_strdup(filename); /* quick hack */
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
617
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
618 route->protocol = g_strdup("smtp");
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
619 route->expand_h_sender_address = TRUE;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
620
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
621 route->is_local_net = is_local_net;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
622
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
623 route->do_pipelining = TRUE;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
624
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
625 if ((in = fopen(route->filename, "r")) == NULL) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
626 logwrite(LOG_ALERT, "could not open route file %s: %s\n", route->filename, strerror(errno));
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
627 g_free(route);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
628 return NULL;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
629 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
630
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
631 gchar lval[256], rval[2048];
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
632 while (read_statement(in, lval, 256, rval, 2048)) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
633 if (strcmp(lval, "protocol") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
634 route->protocol = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
635 else if (strcmp(lval, "mail_host") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
636 route->mail_host = parse_interface(rval, conf.remote_port);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
637 else if (strcmp(lval, "helo_name") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
638 route->helo_name = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
639 else if (strcmp(lval, "wrapper") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
640 route->wrapper = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
641 else if (strcmp(lval, "connect_error_fail") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
642 route->connect_error_fail = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
643 else if (strcmp(lval, "do_correct_helo") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
644 route->do_correct_helo = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
645 else if (strcmp(lval, "do_pipelining") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
646 route->do_pipelining = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
647 else if (strcmp(lval, "allowed_return_paths") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
648 route->allowed_return_paths = parse_address_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
649 else if (strcmp(lval, "allowed_mail_locals") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
650 route->allowed_mail_locals = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
651 else if (strcmp(lval, "not_allowed_return_paths") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
652 route->not_allowed_return_paths = parse_address_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
653 else if (strcmp(lval, "not_allowed_mail_locals") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
654 route->not_allowed_mail_locals = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
655 else if (strcmp(lval, "allowed_rcpt_domains") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
656 route->allowed_rcpt_domains = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
657 else if (strcmp(lval, "not_allowed_rcpt_domains") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
658 route->not_allowed_rcpt_domains = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
659 else if (strcmp(lval, "set_h_from_domain") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
660 route->set_h_from_domain = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
661 else if (strcmp(lval, "set_h_reply_to_domain") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
662 route->set_h_reply_to_domain = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
663 else if (strcmp(lval, "set_return_path_domain") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
664 route->set_return_path_domain = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
665 else if (strcmp(lval, "map_return_path_addresses") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
666 GList *node, *list;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
667
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
668 list = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
669 foreach(list, node) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
670 gchar *item = (gchar *) (node->data);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
671 table_pair *pair = parse_table_pair(item, ':');
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
672 address *addr = create_address((gchar *) (pair->value), TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
673 g_free(pair->value);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
674 pair->value = (gpointer *) addr;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
675 route->map_return_path_addresses = g_list_append(route->map_return_path_addresses, pair);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
676 g_free(item);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
677 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
678 g_list_free(list);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
679 } else if (strcmp(lval, "map_h_from_addresses") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
680 GList *list, *node;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
681
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
682 list = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
683 foreach(list, node) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
684 gchar *item = (gchar *) (node->data);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
685 table_pair *pair = parse_table_pair(item, ':');
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
686 route->map_h_from_addresses = g_list_append(route->map_h_from_addresses, pair);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
687 g_free(item);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
688 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
689 g_list_free(list);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
690 } else if (strcmp(lval, "map_h_reply_to_addresses") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
691 GList *list, *node;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
692
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
693 list = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
694 foreach(list, node) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
695 gchar *item = (gchar *) (node->data);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
696 table_pair *pair = parse_table_pair(item, ':');
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
697 route->map_h_reply_to_addresses = g_list_append(route->map_h_reply_to_addresses, pair);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
698 g_free(item);
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
699 }
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
700 g_list_free(list);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
701 } else if (strcmp(lval, "map_h_mail_followup_to_addresses") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
702 GList *list, *node;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
703
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
704 list = parse_list(rval, TRUE);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
705 foreach(list, node) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
706 gchar *item = (gchar *) (node->data);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
707 table_pair *pair = parse_table_pair(item, ':');
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
708 route->map_h_mail_followup_to_addresses = g_list_append(route->map_h_mail_followup_to_addresses, pair);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
709 g_free(item);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
710 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
711 g_list_free(list);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
712 } else if (strcmp(lval, "expand_h_sender_domain") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
713 route->expand_h_sender_domain = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
714 } else if (strcmp(lval, "expand_h_sender_address") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
715 route->expand_h_sender_address = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
716 } else if (strcmp(lval, "resolve_list") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
717 route->resolve_list = parse_resolve_list(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
718 else if (strcmp(lval, "do_ssl") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
719 /* we ignore this. This option is used by sqilconf */
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
720 ;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
721 }
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
722 #ifdef ENABLE_AUTH
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
723 else if (strcmp(lval, "auth_name") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
724 route->auth_name = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
725 } else if (strcmp(lval, "auth_login") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
726 route->auth_login = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
727 } else if (strcmp(lval, "auth_secret") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
728 route->auth_secret = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
729 }
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
730 #else
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
731 else if ((strcmp(lval, "auth_name") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
732 || (strcmp(lval, "auth_login") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
733 || (strcmp(lval, "auth_secret") == 0)) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
734 logwrite(LOG_WARNING, "%s ignored: not compiled with auth support.\n", lval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
735 }
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
736 #endif
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
737 else if (strcmp(lval, "pop3_login") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
738 #ifdef ENABLE_POP3
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
739 route->pop3_login = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
740 #else
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
741 logwrite(LOG_WARNING, "pop3_login ignored: not compiled with pop support.\n");
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
742 #endif
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
743 } else if (strcmp(lval, "pipe") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
744 route->pipe = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
745 } else if (strcmp(lval, "pipe_fromline") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
746 route->pipe_fromline = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
747 } else if (strcmp(lval, "pipe_fromhack") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
748 route->pipe_fromhack = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
749 } else if (strcmp(lval, "last_route") == 0) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
750 route->last_route = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
751 } else
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
752 logwrite(LOG_WARNING, "var '%s' not (yet) known, ignored\n", lval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
753 }
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
754
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
755 if (route->resolve_list == NULL) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
756 if (is_local_net) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
757 route->resolve_list = g_list_append(NULL, resolve_byname);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
758 } else {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
759 #ifdef ENABLE_RESOLVER
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
760 route->resolve_list = g_list_append(route->resolve_list, resolve_dns_mx);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
761 route->resolve_list = g_list_append(route->resolve_list, resolve_dns_a);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
762 #endif
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
763 route->resolve_list = g_list_append(route->resolve_list, resolve_byname);
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
764 }
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
765 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
766 fclose(in);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
767 ok = TRUE;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
768
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
769 /* warn user about misconfigurations: */
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
770 if ((route->map_h_from_addresses != NULL) && (route->set_h_from_domain != NULL)) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
771 logwrite(LOG_WARNING, "'map_h_from_addresses' overrides 'set_h_from_domain'\n");
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
772 g_free(route->set_h_from_domain);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
773 route->set_h_from_domain = NULL;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
774 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
775 if ((route->map_h_reply_to_addresses != NULL) && (route->set_h_reply_to_domain != NULL)) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
776 logwrite(LOG_WARNING, "'map_h_reply_to_addresses' overrides 'set_h_reply_to_domain'\n");
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
777 g_free(route->set_h_reply_to_domain);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
778 route->set_h_reply_to_domain = NULL;
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
779 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
780
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
781 if (!ok) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
782 g_free(route);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
783 route = NULL;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
784 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
785
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
786 return route;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
787 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
788
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
789 static void
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
790 _g_list_free_all(GList * list)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
791 {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
792 GList *node;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
793 if (list) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
794 foreach(list, node)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
795 g_free(node->data);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
796 g_list_free(list);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
797 }
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
798 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
799
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
800 void
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
801 destroy_route(connect_route * r)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
802 {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
803 if (r->filename)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
804 g_free(r->filename);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
805 if (r->protocol)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
806 g_free(r->protocol);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
807 if (r->mail_host) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
808 g_free(r->mail_host->address);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
809 g_free(r->mail_host);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
810 }
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
811 if (r->wrapper)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
812 g_free(r->wrapper);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
813 if (r->helo_name)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
814 g_free(r->helo_name);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
815 _g_list_free_all(r->allowed_mail_locals);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
816 _g_list_free_all(r->not_allowed_mail_locals);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
817 _g_list_free_all(r->allowed_rcpt_domains);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
818 _g_list_free_all(r->not_allowed_rcpt_domains);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
819 if (r->set_h_from_domain)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
820 g_free(r->set_h_from_domain);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
821 if (r->set_h_reply_to_domain)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
822 g_free(r->set_h_reply_to_domain);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
823 if (r->set_return_path_domain)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
824 g_free(r->set_return_path_domain);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
825 if (r->map_h_reply_to_addresses)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
826 destroy_table(r->map_h_reply_to_addresses);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
827 if (r->resolve_list)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
828 g_list_free(r->resolve_list);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
829 #ifdef ENABLE_AUTH
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
830 if (r->auth_name)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
831 g_free(r->auth_name);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
832 if (r->auth_login)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
833 g_free(r->auth_login);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
834 if (r->auth_secret)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
835 g_free(r->auth_secret);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
836 #endif
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
837 #ifdef ENABLE_POP3
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
838 if (r->pop3_login)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
839 g_free(r->pop3_login);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
840 #endif
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
841 if (r->pipe)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
842 g_free(r->pipe);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
843 g_free(r);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
844 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
845
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
846 GList*
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
847 read_route_list(GList * rf_list, gboolean is_local_net)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
848 {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
849 GList *list = NULL;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
850 GList *node;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
851 uid_t saved_uid, saved_gid;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
852
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
853 if (!conf.run_as_user) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
854 set_euidgid(0, 0, &saved_uid, &saved_gid);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
855 }
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
856
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
857 foreach(rf_list, node) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
858 gchar *fname = (gchar *) (node->data);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
859 connect_route *route = read_route(fname, is_local_net);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
860 if (route)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
861 list = g_list_append(list, route);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
862 else
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
863 logwrite(LOG_ALERT, "could not read route configuration %s\n", fname);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
864 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
865
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
866 /* set uid and gid back */
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
867 if (!conf.run_as_user) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
868 set_euidgid(saved_uid, saved_gid, NULL, NULL);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
869 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
870
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
871 return list;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
872 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
873
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
874 void
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
875 destroy_route_list(GList * list)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
876 {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
877 GList *node;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
878
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
879 foreach(list, node) {
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
880 connect_route *route = (connect_route *) (node->data);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
881 destroy_route(route);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
882 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
883 g_list_free(list);
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
884 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
885
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
886 #ifdef ENABLE_POP3
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
887
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
888 get_conf*
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
889 read_get_conf(gchar * filename)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
890 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
891 FILE *in;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
892
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
893 get_conf *gc = g_malloc(sizeof(get_conf));
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
894 memset(gc, 0, sizeof(get_conf));
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
895
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
896 gc->server_port = 110;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
897
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
898 if ((in = fopen(filename, "r")) == NULL) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
899 logwrite(LOG_ALERT, "could not open get file %s: %s\n", filename, strerror(errno));
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
900 g_free(gc);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
901 return NULL;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
902 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
903
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
904 gchar lval[256], rval[2048];
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
905 while (read_statement(in, lval, 256, rval, 2048)) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
906 if (strcmp(lval, "protocol") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
907 gc->protocol = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
908 else if (strcmp(lval, "server") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
909 gc->server_name = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
910 else if (strcmp(lval, "port") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
911 gc->server_port = atoi(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
912 else if (strcmp(lval, "wrapper") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
913 gc->wrapper = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
914 else if (strcmp(lval, "user") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
915 gc->login_user = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
916 else if (strcmp(lval, "pass") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
917 gc->login_pass = g_strdup(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
918 else if (strcmp(lval, "address") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
919 gc->address = create_address_qualified(rval, TRUE, conf.host_name);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
920 else if (strcmp(lval, "return_path") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
921 gc->return_path = create_address_qualified(rval, TRUE, conf.host_name);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
922 else if (strcmp(lval, "do_ssl") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
923 /* we ignore this. This option is used by sqilconf */
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
924 ;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
925 else if (strcmp(lval, "do_keep") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
926 gc->do_keep = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
927 else if (strcmp(lval, "do_uidl") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
928 gc->do_uidl = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
929 else if (strcmp(lval, "do_uidl_dele") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
930 gc->do_uidl_dele = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
931 else if (strcmp(lval, "max_size") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
932 gc->max_size = atoi(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
933 else if (strcmp(lval, "max_size_delete") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
934 gc->max_size = parse_boolean(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
935 else if (strcmp(lval, "max_count") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
936 gc->max_count = atoi(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
937 else if (strcmp(lval, "resolve_list") == 0)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
938 gc->resolve_list = parse_resolve_list(rval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
939 else
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
940 logwrite(LOG_WARNING, "var '%s' not (yet) known, ignored\n", lval);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
941 }
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
942 fclose(in);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
943
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
944 if (gc->resolve_list == NULL) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
945 #ifdef ENABLE_RESOLVER
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
946 gc->resolve_list = g_list_append(NULL, resolve_dns_a);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
947 #endif
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
948 gc->resolve_list = g_list_append(NULL, resolve_byname);
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
949 }
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
950
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
951 if (gc->protocol == NULL)
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
952 gc->protocol = g_strdup("pop3");
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
953 return gc;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
954 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
955
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
956 void
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
957 destroy_get_conf(get_conf * gc)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
958 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
959 if (gc->protocol)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
960 g_free(gc->protocol);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
961 if (gc->server_name)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
962 g_free(gc->server_name);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
963 if (gc->login_user)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
964 g_free(gc->login_user);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
965 if (gc->login_pass)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
966 g_free(gc->login_pass);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
967 if (gc->wrapper)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
968 g_free(gc->wrapper);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
969 if (gc->address)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
970 destroy_address(gc->address);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
971 if (gc->return_path)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
972 destroy_address(gc->return_path);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
973 if (gc->resolve_list)
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
974 g_list_free(gc->resolve_list);
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
975 g_free(gc);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
976 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
977
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
978 #endif
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
979
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
980 connect_route*
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
981 create_local_route()
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
982 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
983 connect_route *route;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
984
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
985 route = g_malloc(sizeof(connect_route));
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
986 if (!route) {
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
987 return NULL;
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
988 }
28
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
989 memset(route, 0, sizeof(connect_route));
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
990 route->protocol = g_strdup("smtp");
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
991 route->is_local_net = TRUE;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
992 route->name = g_strdup("local_net (default)");
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
993 route->expand_h_sender_address = TRUE;
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
994 route->resolve_list = g_list_append(NULL, resolve_byname);
71605f542ecc flattened conditional nesting
meillo@marmaro.de
parents: 14
diff changeset
995 route->connect_error_fail = TRUE;
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
996 return route;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
997 }