summaryrefslogtreecommitdiffstats
path: root/workspace/customdhcpcd/src/logwriter.c
diff options
context:
space:
mode:
Diffstat (limited to 'workspace/customdhcpcd/src/logwriter.c')
-rw-r--r--workspace/customdhcpcd/src/logwriter.c111
1 files changed, 64 insertions, 47 deletions
diff --git a/workspace/customdhcpcd/src/logwriter.c b/workspace/customdhcpcd/src/logwriter.c
index 5f51a7e..80f1f0a 100644
--- a/workspace/customdhcpcd/src/logwriter.c
+++ b/workspace/customdhcpcd/src/logwriter.c
@@ -7,12 +7,16 @@
#include <stdlib.h>
#include <string.h>
#include <syslog.h>
+#include <unistd.h>
#include "common.h"
#include "dhcp.h"
+#include "logwriter.h"
+#include "status.h"
/*sockets for the logger and the qt-reader */
int sockfd, ns;
+int retval;
char *socketName;
char *interfaceName;
@@ -20,29 +24,83 @@ void setSocketName(char * sn) {
socketName = sn;
}
-void setInterfaceName(char * in){
+void setInterfaceName(const char * in){
interfaceName = in;
}
-void initQtLoggerSocket() {
+int initQtLoggerSocket() {
/**
* new code. seems to be right.
*/
+
struct sockaddr_un serv_addr;
+ fprintf(stdout,"start init \n");
sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
- if (sockfd < 0)
- fprintf(stdout,"ERROR opening socket");
+ if (sockfd < 0) {
+ fprintf(stdout,"ERROR opening socket \n");
+ retval = sockfd;
+ return sockfd;
+ }
serv_addr.sun_family = AF_UNIX;
strcpy(serv_addr.sun_path, socketName);
- if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
- fprintf(stdout,"ERROR connecting");
+ retval = connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
+ if ( retval < 0)
+ fprintf(stdout,"ERROR connecting \n");
+ fprintf(stdout,"init Qt Logger Socket done \n");
+ return retval;
}
void closeQtLoggerSocket (){
close(sockfd);
}
+/*
+void logToQt(char * status, char * substatus, char * msg) {
+ char * m = malloc(strlen(interfaceName) + strlen(status) + strlen(substatus) + strlen(msg) +4 );
+ strcpy(m,interfaceName);
+ strcat(m,";");
+ strcat(m,status);
+ strcat(m,";");
+ strcat(m,substatus);
+ strcat(m,";");
+ strcat(m,msg);
+ sendToQt(m);
+
+ free(m);
+}
+*/
+
+
+void sendToQt(char *msg) {
+ int n = write(sockfd, msg, strlen(msg));
+ if (n < 0)
+ fprintf(stdout, "ERROR writing to socket: %s", msg);
+}
+
+void logToQt(int status, int substatus, const char * msg) {
+ if (retval >= 0) {
+ char * st = (char *) malloc(sizeof(int) * 4 + 1);
+ char * sst = (char *) malloc(sizeof(int) * 4 + 1);
+ sprintf(st, "%d", status);
+ sprintf(sst, "%d", substatus);
+ char * m = (char *) malloc(strlen(interfaceName) + strlen(st) + strlen(
+ sst) + strlen(msg) + 4);
+ strcpy(m, interfaceName);
+ strcat(m, ";");
+ strcat(m, st);
+ strcat(m, ";");
+ strcat(m, sst);
+ strcat(m, ";");
+ strcat(m, msg);
+ sendToQt(m);
+
+ free(st);
+ free(sst);
+ free(m);
+ }
+}
+
void logSendToQt(int type) {
switch(type) {
case DHCP_DISCOVER:
@@ -73,44 +131,3 @@ void logSendToQt(int type) {
break;
}
}
-
-/*
-void logToQt(char * status, char * substatus, char * msg) {
- char * m = malloc(strlen(interfaceName) + strlen(status) + strlen(substatus) + strlen(msg) +4 );
- strcpy(m,interfaceName);
- strcat(m,";");
- strcat(m,status);
- strcat(m,";");
- strcat(m,substatus);
- strcat(m,";");
- strcat(m,msg);
- sendToQt(m);
-
- free(m);
-}
-*/
-void logToQt(int status, int substatus, char * msg) {
- char * st = (char *) malloc(sizeof(int)*4+1);
- char * sst = (char *) malloc(sizeof(int)*4+1);
- sprintf(st,"%d",status);
- sprintf(sst,"%d",substatus);
- char * m = malloc(strlen(interfaceName) + strlen(st) + strlen(sst) + strlen(msg) + 4);
- strcpy(m,interfaceName);
- strcat(m,";");
- strcat(m, st);
- strcat(m, ";");
- strcat(m, sst);
- strcat(m, ";");
- strcat(m, msg);
- sendToQt(m);
-
- free(st);
- free(sst);
- free(m);
-}
-
-void sendToQt(char *msg) {
- int n = write(sockfd, msg, strlen(msg));
- if (n < 0)
- fprintf(stdout, "ERROR writing to socket: %s", msg);
-}