comparison lib-src/gnuslib.c @ 440:8de8e3f6228a r21-2-28

Import from CVS: tag r21-2-28
author cvs
date Mon, 13 Aug 2007 11:33:38 +0200
parents 3ecd8885ac67
children abe6d1db359e
comparison
equal deleted inserted replaced
439:357dd071b03c 440:8de8e3f6228a
74 74
75 char *tmpdir = NULL; 75 char *tmpdir = NULL;
76 76
77 char *progname = NULL; 77 char *progname = NULL;
78 78
79 int make_connection(hostarg, portarg, s) 79 int
80 char *hostarg; 80 make_connection (char *hostarg, int portarg, int *s)
81 int portarg;
82 int *s;
83 { 81 {
84 #ifdef INTERNET_DOMAIN_SOCKETS 82 #ifdef INTERNET_DOMAIN_SOCKETS
85 char *ptr; 83 char *ptr;
86 if (hostarg == NULL) 84 if (hostarg == NULL)
87 hostarg = getenv("GNU_HOST"); 85 hostarg = getenv("GNU_HOST");
128 #ifdef SYSV_IPC 126 #ifdef SYSV_IPC
129 /* 127 /*
130 connect_to_ipc_server -- establish connection with server process via SYSV IPC 128 connect_to_ipc_server -- establish connection with server process via SYSV IPC
131 Returns msqid for server if successful. 129 Returns msqid for server if successful.
132 */ 130 */
133 static int connect_to_ipc_server (void) 131 static int
132 connect_to_ipc_server (void)
134 { 133 {
135 int s; /* connected msqid */ 134 int s; /* connected msqid */
136 key_t key; /* message key */ 135 key_t key; /* message key */
137 char buf[GSERV_BUFSZ+1]; /* buffer for filename */ 136 char buf[GSERV_BUFSZ+1]; /* buffer for filename */
138 137
158 157
159 /* 158 /*
160 disconnect_from_ipc_server -- inform the server that sending has finished, 159 disconnect_from_ipc_server -- inform the server that sending has finished,
161 and wait for its reply. 160 and wait for its reply.
162 */ 161 */
163 void disconnect_from_ipc_server(s,msgp,echo) 162 void
164 int s; 163 disconnect_from_ipc_server (int s, struct msgbuf *msgp, int echo)
165 struct msgbuf *msgp;
166 int echo;
167 { 164 {
168 int len; /* length of received message */ 165 int len; /* length of received message */
169 166
170 send_string(s,EOT_STR); /* EOT terminates this message */ 167 send_string(s,EOT_STR); /* EOT terminates this message */
171 msgp->mtype = 1; 168 msgp->mtype = 1;
194 191
195 #if defined(INTERNET_DOMAIN_SOCKETS) || defined(UNIX_DOMAIN_SOCKETS) 192 #if defined(INTERNET_DOMAIN_SOCKETS) || defined(UNIX_DOMAIN_SOCKETS)
196 /* 193 /*
197 send_string -- send string to socket. 194 send_string -- send string to socket.
198 */ 195 */
199 void send_string(s,msg) 196 void
200 int s; 197 send_string (int s, CONST char *msg)
201 CONST char *msg;
202 { 198 {
203 #if 0 199 #if 0
204 if (send(s,msg,strlen(msg),0) < 0) { 200 if (send(s,msg,strlen(msg),0) < 0) {
205 perror(progname); 201 perror(progname);
206 fprintf(stderr,"%s: unable to send\n",progname); 202 fprintf(stderr,"%s: unable to send\n",progname);
225 } /* send_string */ 221 } /* send_string */
226 222
227 /* 223 /*
228 read_line -- read a \n terminated line from a socket 224 read_line -- read a \n terminated line from a socket
229 */ 225 */
230 int read_line(int s, char *dest) 226 int
227 read_line (int s, char *dest)
231 { 228 {
232 int length; 229 int length;
233 int offset=0; 230 int offset=0;
234 char buffer[GSERV_BUFSZ+1]; 231 char buffer[GSERV_BUFSZ+1];
235 232
250 /* 247 /*
251 connect_to_unix_server -- establish connection with server process via a unix- 248 connect_to_unix_server -- establish connection with server process via a unix-
252 domain socket. Returns socket descriptor for server 249 domain socket. Returns socket descriptor for server
253 if successful. 250 if successful.
254 */ 251 */
255 static int connect_to_unix_server (void) 252 static int
253 connect_to_unix_server (void)
256 { 254 {
257 int s; /* connected socket descriptor */ 255 int s; /* connected socket descriptor */
258 struct sockaddr_un server; /* for unix connections */ 256 struct sockaddr_un server; /* for unix connections */
259 257
260 if ((s = socket(AF_UNIX,SOCK_STREAM,0)) < 0) { 258 if ((s = socket(AF_UNIX,SOCK_STREAM,0)) < 0) {
284 #ifdef INTERNET_DOMAIN_SOCKETS 282 #ifdef INTERNET_DOMAIN_SOCKETS
285 /* 283 /*
286 internet_addr -- return the internet addr of the hostname or 284 internet_addr -- return the internet addr of the hostname or
287 internet address passed. Return -1 on error. 285 internet address passed. Return -1 on error.
288 */ 286 */
289 int internet_addr(host) 287 int
290 char *host; 288 internet_addr (char *host)
291 { 289 {
292 struct hostent *hp; /* pointer to host info for remote host */ 290 struct hostent *hp; /* pointer to host info for remote host */
293 IN_ADDR numeric_addr; /* host address */ 291 IN_ADDR numeric_addr; /* host address */
294 292
295 numeric_addr = inet_addr(host); 293 numeric_addr = inet_addr(host);
312 /* 310 /*
313 connect_to_internet_server -- establish connection with server process via 311 connect_to_internet_server -- establish connection with server process via
314 an internet domain socket. Returns socket 312 an internet domain socket. Returns socket
315 descriptor for server if successful. 313 descriptor for server if successful.
316 */ 314 */
317 static int connect_to_internet_server (char *serverhost, u_short port) 315 static int
316 connect_to_internet_server (char *serverhost, u_short port)
318 { 317 {
319 int s; /* connected socket descriptor */ 318 int s; /* connected socket descriptor */
320 struct servent *sp; /* pointer to service information */ 319 struct servent *sp; /* pointer to service information */
321 struct sockaddr_in peeraddr_in; /* for peer socket address */ 320 struct sockaddr_in peeraddr_in; /* for peer socket address */
322 char buf[512]; /* temporary buffer */ 321 char buf[512]; /* temporary buffer */
393 #if defined(INTERNET_DOMAIN_SOCKETS) || defined(UNIX_DOMAIN_SOCKETS) 392 #if defined(INTERNET_DOMAIN_SOCKETS) || defined(UNIX_DOMAIN_SOCKETS)
394 /* 393 /*
395 disconnect_from_server -- inform the server that sending has finished, and wait for 394 disconnect_from_server -- inform the server that sending has finished, and wait for
396 its reply. 395 its reply.
397 */ 396 */
398 void disconnect_from_server(s,echo) 397 void
399 int s; 398 disconnect_from_server (int s, int echo)
400 int echo;
401 { 399 {
402 #if 0 400 #if 0
403 char buffer[REPLYSIZ+1]; 401 char buffer[REPLYSIZ+1];
404 #else 402 #else
405 char buffer[GSERV_BUFSZ+1]; 403 char buffer[GSERV_BUFSZ+1];