From c9433d7303c6cec8031d35a6fbb3ff97dbd22078 Mon Sep 17 00:00:00 2001 From: Niklas Date: Wed, 29 Jun 2011 16:57:27 +0200 Subject: new funtions for the networkDiscovery class. extensions to the logger.c some tryouts with the QLocalSocket also try QSocketNotifyer --- workspace/networkDiscovery/dhcpcd/logger.c | 52 ++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'workspace/networkDiscovery/dhcpcd/logger.c') diff --git a/workspace/networkDiscovery/dhcpcd/logger.c b/workspace/networkDiscovery/dhcpcd/logger.c index 99f845f..a68fe65 100644 --- a/workspace/networkDiscovery/dhcpcd/logger.c +++ b/workspace/networkDiscovery/dhcpcd/logger.c @@ -27,6 +27,11 @@ #define SYSLOG_NAMES +#define COM_CH "./com_ch" + +#include +#include +#include #include #include #include @@ -34,9 +39,13 @@ #include #include + #include "common.h" #include "logger.h" +/*sockets for the logger and the qt-reader */ +int s, ns; + static int loglevel = LOG_WARNING; static char logprefix[12] = {0}; @@ -117,3 +126,46 @@ void logger (int level, const char *fmt, ...) va_end (p); } +void initQtLoggerSocket () +{ + /*variables for the communication over sockets with Qt*/ + int fromlen; + struct sockaddr_un soaddr, faddr; + int slen; + + if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { + perror("server: socket"); + exit(1); + } + + soaddr.sun_family = AF_UNIX; + strcpy(soaddr.sun_path, COM_CH); + unlink(COM_CH); + slen = strlen(soaddr.sun_path) + sizeof(soaddr.sun_family); + if (bind(s, (struct sockaddr *) &soaddr, slen) < 0) { + perror("server: bind"); + exit(1); + } + + if (listen(s, 5) < 0) { + perror("server: listen"); + exit(1); + } + + if ((ns = accept(s, &faddr, &fromlen)) < 0) { + perror("server: accept"); + exit(1); + } +} + +void closeQtLoggerSocket (){ + close(s); +} + +void sendToQt (char *msg) { + if(send(ns,msg, strlen(msg),0) < 0) + { + fprintf(stdout,"logger: failed to send message: %s", msg); + } +} + -- cgit v1.2.3-55-g7522