comparison lib-src/gnuslib.c @ 412:697ef44129c6 r21-2-14

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