masqmail
view src/libident/id_query.c @ 203:45acc5727493
removed --with-glib-static configure option
linking glib statically is interesting if no other program uses it
on today's systems glib is widely used
if one cares on linking statically, he can link everything statically
the special case for glib will not get special care anymore
author | meillo@marmaro.de |
---|---|
date | Fri, 16 Jul 2010 14:48:17 +0200 |
parents | 08114f7dcc23 |
children |
line source
1 /*
2 ** id_query.c Transmit a query to an IDENT server
3 **
4 ** Author: Peter Eriksson <pen@lysator.liu.se>
5 */
7 #ifdef NeXT3
8 # include <libc.h>
9 #endif
11 #include <stdio.h>
12 #include <errno.h>
13 #include <signal.h>
15 #ifdef HAVE_ANSIHEADERS
16 # include <stdlib.h>
17 # include <string.h>
18 # include <unistd.h>
19 #endif
21 #include <sys/types.h>
22 #include <sys/wait.h>
23 #include <sys/time.h>
25 #ifdef _AIX
26 # include <sys/select.h>
27 #endif
29 #ifdef _AIX
30 # include <sys/select.h>
31 #endif
32 #ifdef VMS
33 # include <sys/socket.h> /* for fd_set */
34 #endif
35 #define IN_LIBIDENT_SRC
36 #include "ident.h"
39 /*
40 int
41 id_query __P4(ident_t *, id, int, lport, int, fport, struct timeval *, timeout)
42 */
44 int
45 id_query __P((ident_t * id, int lport, int fport, __STRUCT_TIMEVAL_P timeout))
46 {
47 #ifdef SIGRETURNTYPE
48 SIGRETURNTYPE(*old_sig) ();
49 #else
50 void (*old_sig) __P((int));
51 #endif
52 int res;
53 char buf[80];
54 fd_set ws;
56 sprintf(buf, "%d , %d\r\n", lport, fport);
58 if (timeout) {
59 FD_ZERO(&ws);
60 FD_SET(id->fd, &ws);
62 #ifdef __hpux
63 if ((res = select(FD_SETSIZE, (int *) 0, (int *) &ws, (int *) 0, timeout)) < 0)
64 #else
65 if ((res = select(FD_SETSIZE, (fd_set *) 0, &ws, (fd_set *) 0, timeout)) < 0)
66 #endif
67 return -1;
69 if (res == 0) {
70 errno = ETIMEDOUT;
71 return -1;
72 }
73 }
75 old_sig = signal(SIGPIPE, SIG_IGN);
77 res = write(id->fd, buf, strlen(buf));
79 signal(SIGPIPE, old_sig);
81 return res;
82 }