summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiklas2011-09-01 17:26:32 +0200
committerNiklas2011-09-01 17:26:32 +0200
commitce2dc6982101ffb964feb5f29354d2b061c4b2b6 (patch)
tree8c17a4fbbd7f2e0faeb69c2dbc145a451fb7f5dd
parentbigger changes in the checkConnectivity method. using now route command to de... (diff)
downloadfbgui-ce2dc6982101ffb964feb5f29354d2b061c4b2b6.tar.gz
fbgui-ce2dc6982101ffb964feb5f29354d2b061c4b2b6.tar.xz
fbgui-ce2dc6982101ffb964feb5f29354d2b061c4b2b6.zip
we tried some fixes for the messge loss problem, but we failed. Sebastian will look at the code later. server is now a echo server which sends ack for every received message.
-rwxr-xr-xUnixDomainSocketServer/serverbin7638 -> 7638 bytes
-rw-r--r--UnixDomainSocketServer/server.c8
-rwxr-xr-xcustomdhcpcd/src/customdhcpcdbin175254 -> 175292 bytes
-rw-r--r--customdhcpcd/src/logwriter.c7
4 files changed, 8 insertions, 7 deletions
diff --git a/UnixDomainSocketServer/server b/UnixDomainSocketServer/server
index b90d066..05ff3ec 100755
--- a/UnixDomainSocketServer/server
+++ b/UnixDomainSocketServer/server
Binary files differ
diff --git a/UnixDomainSocketServer/server.c b/UnixDomainSocketServer/server.c
index 7746b49..1faf499 100644
--- a/UnixDomainSocketServer/server.c
+++ b/UnixDomainSocketServer/server.c
@@ -17,7 +17,7 @@ int main(int argc, char *argv[]) {
int sockfd, newsockfd;
socklen_t clilen;
char buffer[1024];
- char ack[4];
+ const char ack[4] = "ACK";
struct sockaddr_un serv_addr, cli_addr;
int n;
@@ -37,7 +37,6 @@ int main(int argc, char *argv[]) {
error("ERROR on listen");
}
- strcpy(ack,"ACK");
for (;;) {
int done;
@@ -52,14 +51,15 @@ int main(int argc, char *argv[]) {
done = 0;
do {
- bzero(buffer, 1024);
- n = read(newsockfd, buffer, 1023);
+ bzero(buffer, 2048);
+ n = read(newsockfd, buffer, 2048);
if (n <= 0) {
if (n<0) error("ERROR reading from socket");
done = 1;
}
printf("Here is the message: \"%s\"\n", buffer);
if(!done) {
+ printf("send ACK");
if (send(newsockfd, ack, sizeof(ack), 0) < 0) {
error("ERROR on send");
done = 1;
diff --git a/customdhcpcd/src/customdhcpcd b/customdhcpcd/src/customdhcpcd
index 1fd0594..65aedd0 100755
--- a/customdhcpcd/src/customdhcpcd
+++ b/customdhcpcd/src/customdhcpcd
Binary files differ
diff --git a/customdhcpcd/src/logwriter.c b/customdhcpcd/src/logwriter.c
index cc7a595..378d805 100644
--- a/customdhcpcd/src/logwriter.c
+++ b/customdhcpcd/src/logwriter.c
@@ -82,7 +82,7 @@ void sendToQt(log_msg * msg) {
int t;
const char *tpl = "%s;%d;%d;%s\n";
char *outbuf;
- char ack[4];
+ char ack[8];
size_t outbuf_size = sizeof(char) * 4 + // ";" *3 + newline
sizeof(int) * 2 + // status, substatus
sizeof(msg->device) + // devicename
@@ -104,9 +104,10 @@ void sendToQt(log_msg * msg) {
msg->status, msg->substatus, msg->msg, msg->device);
// fprintf(stdout, "ERROR writing to socket: %s", msg);
}
- if ((t = recv(sockfd, ack, 4, 0)) > 0) {
- ack[t] = '\0';
+ memset(ack,0,sizeof(ack));
+ if ((t = recv(sockfd, ack, sizeof(ack), 0)) > 0) {
syslog(LOG_ERR, "[fbgui] recv ack echo> %s", ack);
+ printf("received: %s\n", ack);
} else {
if (t < 0)
syslog(LOG_ERR, "[fbgui] ERROR receiving from socket");