summaryrefslogtreecommitdiffstats
path: root/UnixDomainSocketServer/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'UnixDomainSocketServer/server.c')
-rw-r--r--UnixDomainSocketServer/server.c18
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;
}