comparison lib-src/gnuslib.c @ 70:131b0175ea99 r20-0b30

Import from CVS: tag r20-0b30
author cvs
date Mon, 13 Aug 2007 09:02:59 +0200
parents ec9a17fef872
children 360340f9fd5f
comparison
equal deleted inserted replaced
69:804d1389bcd6 70:131b0175ea99
31 31
32 #if 0 32 #if 0
33 static char rcsid [] = "!Header: gnuslib.c,v 2.4 95/02/16 11:57:37 arup alpha !"; 33 static char rcsid [] = "!Header: gnuslib.c,v 2.4 95/02/16 11:57:37 arup alpha !";
34 #endif 34 #endif
35 35
36 #include <errno.h>
37 #include "gnuserv.h" 36 #include "gnuserv.h"
38 37
39 #ifdef SYSV_IPC 38 #ifdef SYSV_IPC
40 static int connect_to_ipc_server (void); 39 static int connect_to_ipc_server (void);
41 #endif 40 #endif
215 left -= len; 214 left -= len;
216 msg += len; 215 msg += len;
217 }; /* while */ 216 }; /* while */
218 #endif 217 #endif
219 } /* send_string */ 218 } /* send_string */
220
221 /*
222 read_line -- read a \n terminated line from a socket
223 */
224 int read_line(s,dest)
225 int s;
226 char *dest;
227 {
228 char *index = NULL;
229 int length;
230 int offset=0;
231 char buffer[GSERV_BUFSZ+1];
232
233 while ((length=read(s,buffer+offset,1)>0) && buffer[offset]!='\n'
234 && buffer[offset] != EOT_CHR) {
235 offset += length;
236 if (offset >= GSERV_BUFSZ)
237 break;
238 }
239 buffer[offset] = '\0';
240 strcpy(dest,buffer);
241 return 1;
242 } /* read_line */
243 #endif /* INTERNET_DOMAIN_SOCKETS || UNIX_DOMAIN_SOCKETS */ 219 #endif /* INTERNET_DOMAIN_SOCKETS || UNIX_DOMAIN_SOCKETS */
244 220
245 221
246 #ifdef UNIX_DOMAIN_SOCKETS 222 #ifdef UNIX_DOMAIN_SOCKETS
247 /* 223 /*
427 buffer[length] = '\0'; 403 buffer[length] = '\0';
428 if (echo) fputs(buffer,stdout); 404 if (echo) fputs(buffer,stdout);
429 add_newline = (buffer[length-1] != '\n'); 405 add_newline = (buffer[length-1] != '\n');
430 }; /* while */ 406 }; /* while */
431 #else 407 #else
432 while ((length = read(s,buffer,GSERV_BUFSZ)) > 0 || 408 while ((length = read(s,buffer,GSERV_BUFSZ)) > 0) {
433 (length == -1 && errno == EINTR)) { 409 buffer[length] = '\0';
434 if (length) { 410 if (echo) {
435 buffer[length] = '\0'; 411 fputs(buffer,stdout);
436 if (echo) { 412 add_newline = (buffer[length-1] != '\n');
437 fputs(buffer,stdout);
438 add_newline = (buffer[length-1] != '\n');
439 }; /* if */
440 }; /* if */ 413 }; /* if */
441 }; /* while */ 414 }; /* while */
442 #endif 415 #endif
443 416
444 if (echo && add_newline) putchar('\n'); 417 if (echo && add_newline) putchar('\n');