[dhcp-agent-commits] dhcp-agent/src dhcp-net.c,1.3,1.4
Status: Alpha
Brought to you by:
actmodern
From: <act...@us...> - 2003-07-17 13:18:13
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv2683/src Modified Files: dhcp-net.c Log Message: added tcp routines Index: dhcp-net.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-net.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** dhcp-net.c 17 Jul 2003 00:21:38 -0000 1.3 --- dhcp-net.c 17 Jul 2003 13:18:10 -0000 1.4 *************** *** 117,118 **** --- 117,164 ---- return 0; } + + /* read a line in from a tcp socket. */ + char *tcp_sock_read_line(int sock) + { + stringbuffer_t *sb; + char c; + int retval; + char *line; + + sb = stringbuffer_create(); + + while(1) { + + retval = recv(sock, &c, 1 , 0); + if(retval == -1) { + stringbuffer_destroy(sb); + return NULL; + } + + if(c != '\n') { + + stringbuffer_append_c(sb, c); + + } else { + + /* we're done. */ + line = xstrdup(stringbuffer_getstring(sb)); + stringbuffer_destroy(sb); + return line; + } + } + } + + /* write a line to a tcp socket. */ + int tcp_sock_write_line(int sock, const char *line) + { + int len = strlen(line); + + if(send(sock, line, len, 0) != len) + return 1; + + if(send(sock, "\n", 1, 0) != 1) + return 1; + + return 0; + } |