diff options
Diffstat (limited to 'UnixDomainSocketServer/server.c')
-rw-r--r-- | UnixDomainSocketServer/server.c | 18 |
1 files changed, 12 insertions, 6 deletions
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; } |