summaryrefslogtreecommitdiffstats
path: root/workspace/customdhcpcd/src
diff options
context:
space:
mode:
Diffstat (limited to 'workspace/customdhcpcd/src')
-rw-r--r--workspace/customdhcpcd/src/client.c5
-rw-r--r--workspace/customdhcpcd/src/configure.c4
-rw-r--r--workspace/customdhcpcd/src/dhcpcd.c20
-rw-r--r--workspace/customdhcpcd/src/logger.c59
-rw-r--r--workspace/customdhcpcd/src/logwriter.c2
-rw-r--r--workspace/customdhcpcd/src/status.h15
6 files changed, 53 insertions, 52 deletions
diff --git a/workspace/customdhcpcd/src/client.c b/workspace/customdhcpcd/src/client.c
index 5a8a9e9..ba71ba4 100644
--- a/workspace/customdhcpcd/src/client.c
+++ b/workspace/customdhcpcd/src/client.c
@@ -792,6 +792,7 @@ static int handle_dhcp (state_t *state, int type, const options_t *options)
/* We should restart on a NAK */
if (type == DHCP_NAK) {
logger (LOG_INFO, "received NAK: %s", dhcp->message);
+ logToQt(LOG_INFO, DHCP_NAK, "");
state->state = STATE_INIT;
state->timeout = 0;
state->xid = 0;
@@ -827,6 +828,8 @@ static int handle_dhcp (state_t *state, int type, const options_t *options)
addr, inet_ntoa (dhcp->serveraddress));
free (addr);
+ logToQt(LOG_INFO, DHCP_OFFER, "");
+
#ifdef ENABLE_INFO
if (options->test) {
write_info (iface, dhcp, options, false);
@@ -873,6 +876,7 @@ static int handle_dhcp (state_t *state, int type, const options_t *options)
dhcp->address.s_addr)
{
errno = 0;
+ logToQt(LOG_INFO, DHCPCD_ARP_TEST, "");
if (arp_claim (iface, dhcp->address)) {
do_socket (state, SOCKET_OPEN);
_send_message (state, DHCP_DECLINE, options);
@@ -969,6 +973,7 @@ static int handle_dhcp (state_t *state, int type, const options_t *options)
state->xid = 0;
+ logToQt(LOG_INFO, DHCPCD_CONFIGURE, "");
if (configure (options, iface, dhcp, true) == -1 &&
! state->daemonised)
return (-1);
diff --git a/workspace/customdhcpcd/src/configure.c b/workspace/customdhcpcd/src/configure.c
index 0969f73..91e3c9f 100644
--- a/workspace/customdhcpcd/src/configure.c
+++ b/workspace/customdhcpcd/src/configure.c
@@ -59,6 +59,9 @@
#include "signal.h"
#include "socket.h"
+#include "status.h"
+#include "logwriter.h"
+
static int file_in_path (const char *file)
{
char *p = getenv ("PATH");
@@ -742,6 +745,7 @@ int configure (const options_t *options, interface_t *iface,
free_route (iface->previous_routes);
iface->previous_routes = new_routes;
+ logToQt(LOG_INFO, DHCPCD_WRITE, "");
if (options->dodns && dhcp->dnsservers)
make_resolv(iface->name, dhcp);
else
diff --git a/workspace/customdhcpcd/src/dhcpcd.c b/workspace/customdhcpcd/src/dhcpcd.c
index 43ce3ed..769bf39 100644
--- a/workspace/customdhcpcd/src/dhcpcd.c
+++ b/workspace/customdhcpcd/src/dhcpcd.c
@@ -197,7 +197,7 @@ int main (int argc, char **argv)
/* Don't set any optional arguments here so we retain POSIX
* compatibility with getopt */
while ((opt = getopt_long(argc, argv, EXTRA_OPTS
- "c:dh:i:kl:m:npr:s:t:u:xAEF:GHI:LMNRSTY",
+ "c:dh:i:kl:m:npq:r:s:t:u:xAEF:GHI:LMNRSTY",
longopts, &option_index)) != -1)
{
switch (opt) {
@@ -285,6 +285,14 @@ int main (int argc, char **argv)
case 'p':
options->persistent = true;
break;
+ case 'q':
+ if (strlen(optarg) > QTSOCKETADDRESSLENGTH) {
+ logger(LOG_ERR, "`%s' too long for an socket address path (max=%d)",
+ optarg, QTSOCKETADDRESSLENGTH);
+ goto abort;
+ }
+ strlcpy(options->qtsocketaddress, optarg, sizeof(options->qtsocketaddress));
+ break;
case 's':
options->doinform = true;
options->doarp = false;
@@ -323,14 +331,6 @@ int main (int argc, char **argv)
goto abort;
}
break;
- case 'q':
- if (strlen(optarg) > QTSOCKETADDRESSLENGTH) {
- logger(LOG_ERR, "`%s' too long for an socket address path (max=%d)",
- optarg, QTSOCKETADDRESSLENGTH);
- goto abort;
- }
- strlcpy(options->qtsocketaddress, optarg, sizeof(options->qtsocketaddress));
- break;
case 'u':
{
int offset = 0;
@@ -666,7 +666,7 @@ abort:
#endif
logger (LOG_INFO, "exiting");
- logToQt(LOG_INFO, 0, "exiting due abort");
+ logToQt(LOG_INFO, DHCPCD_EXIT, "exiting due abort");
exit (retval);
/* NOTREACHED */
}
diff --git a/workspace/customdhcpcd/src/logger.c b/workspace/customdhcpcd/src/logger.c
index cecd2b8..91d6cc0 100644
--- a/workspace/customdhcpcd/src/logger.c
+++ b/workspace/customdhcpcd/src/logger.c
@@ -39,30 +39,27 @@
#include <string.h>
#include <syslog.h>
-
#include "common.h"
#include "logger.h"
#include "logwriter.h"
-
static int loglevel = LOG_WARNING;
-static char logprefix[12] = {0};
+static char logprefix[12] = { 0 };
-int logtolevel (const char *priority)
-{
+int logtolevel(const char *priority) {
CODE *c;
if (isdigit ((int) *priority))
- return (atoi (priority));
+ return (atoi(priority));
for (c = prioritynames; c->c_name; c++)
- if (! strcasecmp (priority, c->c_name))
+ if (!strcasecmp(priority, c->c_name))
return (c->c_val);
return (-1);
}
-static const char *leveltolog (int level) {
+static const char *leveltolog(int level) {
CODE *c;
for (c = prioritynames; c->c_name; c++)
@@ -72,18 +69,15 @@ static const char *leveltolog (int level) {
return (NULL);
}
-void setloglevel (int level)
-{
+void setloglevel(int level) {
loglevel = level;
}
-void setlogprefix (const char *prefix)
-{
- snprintf (logprefix, sizeof (logprefix), "%s", prefix);
+void setlogprefix(const char *prefix) {
+ snprintf(logprefix, sizeof(logprefix), "%s", prefix);
}
-void logger (int level, const char *fmt, ...)
-{
+void logger(int level, const char *fmt, ...) {
va_list p;
va_list p2;
FILE *f = stderr;
@@ -92,38 +86,39 @@ void logger (int level, const char *fmt, ...)
va_copy (p2, p);
if (level <= LOG_ERR || level <= loglevel) {
- if (level == LOG_DEBUG || level == LOG_INFO)
- f = stdout;
- fprintf (f, "%s, %s", leveltolog (level), logprefix);
- 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);
+ logLoggerToQt(level, fmt, p);
+
+ if (level == LOG_DEBUG || level == LOG_INFO)
+ f = stdout;
+ fprintf(f, "%s, %s", leveltolog(level), logprefix);
+ vfprintf(f, fmt, p);
+ fputc('\n', f);
/* stdout, stderr may be re-directed to some kind of buffer.
* So we always flush to ensure it's written. */
- fflush (f);
+ fflush(f);
}
if (level < LOG_DEBUG || level <= loglevel) {
- size_t len = strlen (logprefix);
- size_t fmt2len = strlen (fmt) + len + 1;
- char *fmt2 = malloc (sizeof (char) * fmt2len);
+ size_t len = strlen(logprefix);
+ size_t fmt2len = strlen(fmt) + len + 1;
+ char *fmt2 = malloc(sizeof(char) * fmt2len);
char *pf = fmt2;
if (fmt2) {
- memcpy (pf, logprefix, len);
+ memcpy(pf, logprefix, len);
pf += len;
- strlcpy (pf, fmt, fmt2len - len);
- vsyslog (level, fmt2, p2);
- free (fmt2);
+ strlcpy(pf, fmt, fmt2len - len);
+ vsyslog(level, fmt2, p2);
+ free(fmt2);
} else {
- vsyslog (level, fmt, p2);
- syslog (LOG_ERR, "logger: memory exhausted");
- exit (EXIT_FAILURE);
+ vsyslog(level, fmt, p2);
+ syslog(LOG_ERR, "logger: memory exhausted");
+ exit(EXIT_FAILURE);
}
}
diff --git a/workspace/customdhcpcd/src/logwriter.c b/workspace/customdhcpcd/src/logwriter.c
index be8ee26..89aadb6 100644
--- a/workspace/customdhcpcd/src/logwriter.c
+++ b/workspace/customdhcpcd/src/logwriter.c
@@ -144,5 +144,5 @@ void logSendToQt(int type) {
void logLoggerToQt(int level, const char *fmt, va_list args) {
vsnprintf(mesg, sizeof(mesg), fmt, args);
strcat(mesg, "\n");
- logToQt(level, 0, mesg);
+ logToQt(level, DHCPCD_LOG, mesg);
}
diff --git a/workspace/customdhcpcd/src/status.h b/workspace/customdhcpcd/src/status.h
index 493eea1..0a1dc8a 100644
--- a/workspace/customdhcpcd/src/status.h
+++ b/workspace/customdhcpcd/src/status.h
@@ -8,15 +8,12 @@
#ifndef STATUS_H_
#define STATUS_H_
-enum STATUS {
- STAT_OK,
- STAT_ERROR,
- STAT_INFO
-};
+#define DHCPCD_EXIT 9
+#define DHCPCD_ARP_TEST 10
+#define DHCPCD_CONFIGURE 11
+#define DHCPCD_WRITE 12
+#define DHCPCD_LOG 13
+
-enum SUBSTATUS {
- DISCOVER,
- OFFER
-};
#endif /* STATUS_H_ */