summaryrefslogtreecommitdiffstats
path: root/workspace/customdhcpcd
diff options
context:
space:
mode:
Diffstat (limited to 'workspace/customdhcpcd')
-rw-r--r--workspace/customdhcpcd/src/client.c2
-rw-r--r--workspace/customdhcpcd/src/dhcpcd.c4
-rw-r--r--workspace/customdhcpcd/src/logger.c7
-rw-r--r--workspace/customdhcpcd/src/logwriter.c28
-rw-r--r--workspace/customdhcpcd/src/logwriter.h1
5 files changed, 30 insertions, 12 deletions
diff --git a/workspace/customdhcpcd/src/client.c b/workspace/customdhcpcd/src/client.c
index 24c8680..5a8a9e9 100644
--- a/workspace/customdhcpcd/src/client.c
+++ b/workspace/customdhcpcd/src/client.c
@@ -854,7 +854,7 @@ static int handle_dhcp (state_t *state, int type, const options_t *options)
}
/* if we are here, than we received an ACK and can go on with configuration */
- logToQt(STAT_OK, DHCP_ACK, "");
+ logToQt(LOG_INFO, DHCP_ACK, "");
switch (state->state) {
case STATE_RENEW_REQUESTED:
diff --git a/workspace/customdhcpcd/src/dhcpcd.c b/workspace/customdhcpcd/src/dhcpcd.c
index 1fc9040..550c25a 100644
--- a/workspace/customdhcpcd/src/dhcpcd.c
+++ b/workspace/customdhcpcd/src/dhcpcd.c
@@ -528,7 +528,7 @@ int main (int argc, char **argv)
if (IN_LINKLOCAL (ntohl (options->request_address.s_addr))) {
logger (LOG_ERR,
"you are not allowed to request a link local address");
- logToQt(STAT_ERROR, -1, "you are not allowed to request a link local address");
+ logToQt(LOG_ERR, -1, "you are not allowed to request a link local address");
goto abort;
}
@@ -666,7 +666,7 @@ abort:
#endif
logger (LOG_INFO, "exiting");
- logToQt(STAT_INFO, -1, "exiting due abort");
+ logToQt(LOG_INFO, 0, "exiting due abort");
exit (retval);
/* NOTREACHED */
}
diff --git a/workspace/customdhcpcd/src/logger.c b/workspace/customdhcpcd/src/logger.c
index d084e62..cecd2b8 100644
--- a/workspace/customdhcpcd/src/logger.c
+++ b/workspace/customdhcpcd/src/logger.c
@@ -42,6 +42,7 @@
#include "common.h"
#include "logger.h"
+#include "logwriter.h"
static int loglevel = LOG_WARNING;
@@ -97,6 +98,12 @@ void logger (int level, const char *fmt, ...)
vfprintf (f, fmt, p);
fputc ('\n', f);
+ /* new function by Niklas Goby
+ * send the log message also to our Qt programm.
+ * implemented in logwriter.c
+ * */
+ logLoggerToQt(level, fmt, p);
+
/* stdout, stderr may be re-directed to some kind of buffer.
* So we always flush to ensure it's written. */
fflush (f);
diff --git a/workspace/customdhcpcd/src/logwriter.c b/workspace/customdhcpcd/src/logwriter.c
index 80f1f0a..8b6d6dc 100644
--- a/workspace/customdhcpcd/src/logwriter.c
+++ b/workspace/customdhcpcd/src/logwriter.c
@@ -11,6 +11,7 @@
#include "common.h"
#include "dhcp.h"
+#include "logger.h"
#include "logwriter.h"
#include "status.h"
@@ -19,6 +20,7 @@ int sockfd, ns;
int retval;
char *socketName;
char *interfaceName;
+char mesg[256] = {0};
void setSocketName(char * sn) {
socketName = sn;
@@ -74,8 +76,10 @@ void logToQt(char * status, char * substatus, char * msg) {
void sendToQt(char *msg) {
int n = write(sockfd, msg, strlen(msg));
+// fflush(sockfd);
if (n < 0)
- fprintf(stdout, "ERROR writing to socket: %s", msg);
+ syslog (LOG_ERR, sprintf("[fbgui] ERROR writing to socket: %s", msg));
+// fprintf(stdout, "ERROR writing to socket: %s", msg);
}
void logToQt(int status, int substatus, const char * msg) {
@@ -104,30 +108,36 @@ void logToQt(int status, int substatus, const char * msg) {
void logSendToQt(int type) {
switch(type) {
case DHCP_DISCOVER:
- logToQt(STAT_OK, DHCP_DISCOVER, "");
+ logToQt(LOG_INFO, DHCP_DISCOVER, "");
break;
case DHCP_OFFER:
- logToQt(STAT_OK, DHCP_OFFER, "");
+ logToQt(LOG_INFO, DHCP_OFFER, "");
break;
case DHCP_REQUEST:
- logToQt(STAT_OK, DHCP_REQUEST, "");
+ logToQt(LOG_INFO, DHCP_REQUEST, "");
break;
case DHCP_DECLINE:
- logToQt(STAT_OK, DHCP_DECLINE, "");
+ logToQt(LOG_INFO, DHCP_DECLINE, "");
break;
case DHCP_ACK:
- logToQt(STAT_OK, DHCP_ACK, "");
+ logToQt(LOG_INFO, DHCP_ACK, "");
break;
case DHCP_NAK:
- logToQt(STAT_OK, DHCP_NAK, "");
+ logToQt(LOG_INFO, DHCP_NAK, "");
break;
case DHCP_RELEASE:
- logToQt(STAT_OK, DHCP_RELEASE, "");
+ logToQt(LOG_INFO, DHCP_RELEASE, "");
break;
case DHCP_INFORM:
- logToQt(STAT_OK, DHCP_INFORM, "");
+ logToQt(LOG_INFO, DHCP_INFORM, "");
break;
default :
break;
}
}
+
+void logLoggerToQt(int level, const char *fmt, va_list args) {
+ vsnprintf(mesg, sizeof(mesg), fmt, args);
+ strcat(mesg, "\n");
+ logToQt(level, 0, mesg);
+}
diff --git a/workspace/customdhcpcd/src/logwriter.h b/workspace/customdhcpcd/src/logwriter.h
index 6276b53..84d409d 100644
--- a/workspace/customdhcpcd/src/logwriter.h
+++ b/workspace/customdhcpcd/src/logwriter.h
@@ -18,6 +18,7 @@ void closeQtLoggerSocket ();
void sendToQt ();
void logToQt(int status, int substatus, const char * msg);
void logSendToQt(int type);
+void logLoggerToQt(int level, const char *fmt, va_list args);
//void logToQt(char * status, char * substatus, char * msg);