diff options
Diffstat (limited to 'UnixDomainSocketServer')
| -rw-r--r-- | UnixDomainSocketServer/Makefile | 5 | ||||
| -rwxr-xr-x | UnixDomainSocketServer/server | bin | 7638 -> 11967 bytes | |||
| -rw-r--r-- | UnixDomainSocketServer/server.c | 18 |
3 files changed, 17 insertions, 6 deletions
diff --git a/UnixDomainSocketServer/Makefile b/UnixDomainSocketServer/Makefile new file mode 100644 index 0000000..373b23f --- /dev/null +++ b/UnixDomainSocketServer/Makefile @@ -0,0 +1,5 @@ +all: + gcc -g -Wall server.c -o server + +clean: + rm -f server diff --git a/UnixDomainSocketServer/server b/UnixDomainSocketServer/server Binary files differindex 05ff3ec..d76bb91 100755 --- a/UnixDomainSocketServer/server +++ b/UnixDomainSocketServer/server diff --git a/UnixDomainSocketServer/server.c b/UnixDomainSocketServer/server.c index 1faf499..28de223 100644 --- a/UnixDomainSocketServer/server.c +++ b/UnixDomainSocketServer/server.c @@ -8,6 +8,8 @@ #include <sys/socket.h> #include <sys/un.h> +#include "../common/fbgui.h" + void error(const char *msg) { perror(msg); exit(1); @@ -16,8 +18,8 @@ void error(const char *msg) { int main(int argc, char *argv[]) { int sockfd, newsockfd; socklen_t clilen; - char buffer[1024]; - const char ack[4] = "ACK"; + char buffer[DHCP_MESSAGE_SIZE]; + const char ack[ACK_SIZE] = "ACK"; struct sockaddr_un serv_addr, cli_addr; int n; @@ -51,16 +53,20 @@ int main(int argc, char *argv[]) { done = 0; do { - bzero(buffer, 2048); - n = read(newsockfd, buffer, 2048); + bzero(buffer, DHCP_MESSAGE_SIZE); + n = read(newsockfd, buffer, DHCP_MESSAGE_SIZE); if (n <= 0) { if (n<0) error("ERROR reading from socket"); done = 1; } + // search for last newline and replace it with a null + char * pch; + pch=strrchr(buffer,'\n'); + buffer[pch-buffer] = '\0'; printf("Here is the message: \"%s\"\n", buffer); if(!done) { - printf("send ACK"); - if (send(newsockfd, ack, sizeof(ack), 0) < 0) { + printf("send ACK\n"); + if (send(newsockfd, ack, ACK_SIZE, 0) < 0) { error("ERROR on send"); done = 1; } |
