annotate src/mservdetect.c @ 187:bd7c52a36b0c

improved mservdetect in various ways errors are handled better (no segfaults anymore) copied the relevant part of interface.c into mservdetect.c described how I think the mserver protocol works
author meillo@marmaro.de
date Thu, 15 Jul 2010 00:14:26 +0200
parents 5b621742b2e7
children bfa7a8b566da
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
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
3 Copyright (C) 2010 markus schnalke <meillo@marmaro.de>
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
4
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
5 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
6 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
7 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
8 (at your option) any later version.
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
9
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
10 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
11 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
12 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
13 GNU General Public License for more details.
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
14
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
15 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
16 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
17 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
18 */
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
19
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
20
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
21 #include "config.h"
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
22 #include "masqmail.h"
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
23 #include "readsock.h"
164
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
24
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
25
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
26
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
27 gboolean
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
28 init_sockaddr(struct sockaddr_in * name, interface * iface)
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
29 {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
30 struct hostent *he;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
31 struct in_addr ia;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
32
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
33 if (inet_aton(iface->address, &ia) != 0) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
34 /* IP address */
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
35 memcpy(&(name->sin_addr), &ia, sizeof(name->sin_addr));
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
36 } else {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
37 if ((he = gethostbyname(iface->address)) == NULL) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
38 logwrite(LOG_ALERT, "local address '%s' unknown. (deleting)\n", iface->address);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
39 return FALSE;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
40 }
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
41 memcpy(&(name->sin_addr), he->h_addr, sizeof(name->sin_addr));
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
42 }
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
43 name->sin_family = AF_INET;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
44 name->sin_port = htons(iface->port);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
45
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
46 return TRUE;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
47 }
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
48
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
49
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
50 int
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
51 make_server_socket(interface * iface)
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
52 {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
53 int sock = -1;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
54 struct sockaddr_in server;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
55
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
56 memset(&server, 0, sizeof(struct sockaddr_in));
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
57
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
58 /* Create the socket. */
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
59 sock = socket(PF_INET, SOCK_STREAM, 0);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
60 if (sock < 0) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
61 logwrite(LOG_ALERT, "socket: %s\n", strerror(errno));
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
62 return -1;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
63 }
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
64
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
65 if (init_sockaddr(&server, iface)) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
66 /* bind the socket */
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
67 if (bind(sock, (struct sockaddr *) &server, sizeof(server)) < 0) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
68 logwrite(LOG_ALERT, "bind: %s\n", strerror(errno));
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
69 return -1;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
70 }
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
71 } else {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
72 close(sock);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
73 return -1;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
74 }
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
75
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
76 return sock;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
77 }
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
78
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
79
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
80
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
81
164
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
82 gchar*
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
83 mserver_detect_online(interface * iface)
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
84 {
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
85 struct sockaddr_in saddr;
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
86 gchar *ret = NULL;
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
87
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
88 if (!init_sockaddr(&saddr, iface)) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
89 return NULL;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
90 }
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
91
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
92 int sock = socket(PF_INET, SOCK_STREAM, 0);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
93 int dup_sock;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
94 if (connect(sock, (struct sockaddr *) (&saddr), sizeof(saddr)) != 0) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
95 return NULL;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
96 }
164
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
97
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
98 FILE *in, *out;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
99 char buf[256];
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
100
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
101 dup_sock = dup(sock);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
102 out = fdopen(sock, "w");
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
103 in = fdopen(dup_sock, "r");
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
104
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
105 if (!read_sockline(in, buf, 256, 15, READSOCKL_CHUG)) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
106 return NULL;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
107 }
164
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
108
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
109 /* this is the protocol (reverse engineered):
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
110 S: READY
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
111 C: STAT
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
112 S: DOWN
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
113 C: QUIT
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
114 -> offline
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
115
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
116 S: READY
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
117 C: STAT
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
118 S: UP foo:-1
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
119 C: QUIT
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
120 -> offline
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
121
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
122 S: READY
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
123 C: STAT
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
124 S: UP foo:1
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
125 C: QUIT
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
126 -> online, `foo' gets printed
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
127 */
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
128
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
129 if (strncmp(buf, "READY", 5) == 0) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
130 fprintf(out, "STAT\n");
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
131 fflush(out);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
132 if (read_sockline(in, buf, 256, 15, READSOCKL_CHUG)) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
133 if (strncmp(buf, "DOWN", 4) == 0) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
134 ret = NULL;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
135 } else if (strncmp(buf, "UP", 2) == 0) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
136 gchar *p = buf + 3;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
137 while ((*p != ':') && *p) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
138 p++;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
139 }
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
140 if (*p) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
141 *p = '\0';
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
142 p++;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
143 if ((atoi(p) >= 0) && *p) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
144 /* `UP foo:N', where `N' is a non-negative number */
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
145 ret = g_strdup(buf + 3);
164
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
146 }
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
147 } else {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
148 fprintf(stderr, "unexpected response from mserver after STAT cmd: %s", buf);
164
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
149 }
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
150 } else {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
151 fprintf(stderr, "unexpected response from mserver after STAT cmd: %s", buf);
164
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
152 }
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
153 }
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
154 }
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
155 fprintf(out, "QUIT");
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
156 fflush(out);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
157
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
158 close(sock);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
159 close(dup_sock);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
160 fclose(in);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
161 fclose(out);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
162
164
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
163 return ret;
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
164 }
5b621742b2e7 removed the mserver feature
meillo@marmaro.de
parents: 10
diff changeset
165
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
166
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
167 void
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
168 logwrite(int pri, const char *fmt, ...)
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
169 {
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
170 va_list args;
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
171 va_start(args, fmt);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
172
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
173 vfprintf(stderr, fmt, args);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
174
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
175 va_end(args);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
176 }
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
177
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
178
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
179 int
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
180 main(int argc, char *argv[])
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
181 {
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
182 interface iface;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
183 gchar *name;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
184
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
185 if (argc != 3) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
186 fprintf(stderr, "usage: %s HOST PORT\n", argv[0]);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
187 return 1;
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
188 }
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
189
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
190 iface.address = g_strdup(argv[1]);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
191 iface.port = atoi(argv[2]);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
192
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
193 name = mserver_detect_online(&iface);
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
194
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
195 if (name) {
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
196 printf("%s\n", name);
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
197 return 0;
10
26e34ae9a3e3 changed indention and line wrapping to a more consistent style
meillo@marmaro.de
parents: 0
diff changeset
198 }
187
bd7c52a36b0c improved mservdetect in various ways
meillo@marmaro.de
parents: 164
diff changeset
199 return 1;
0
08114f7dcc23 this is masqmail-0.2.21 from oliver kurth
meillo@marmaro.de
parents:
diff changeset
200 }