summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/Makefile2
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/wl_conf.cc81
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/wl_conf.hh12
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/wl_proto.cc5
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/wl_types.hh6
5 files changed, 104 insertions, 2 deletions
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/Makefile b/noncore/net/wellenreiter/libwellenreiter/source/Makefile
index 51b5ff3..6663c8a 100644
--- a/noncore/net/wellenreiter/libwellenreiter/source/Makefile
+++ b/noncore/net/wellenreiter/libwellenreiter/source/Makefile
@@ -2,3 +2,3 @@
2 2
3OBJ = wl_proto.o wl_sock.o wl_log.o cardmode.o sniff.o 3OBJ = wl_proto.o wl_sock.o wl_log.o wl_conf.o cardmode.o sniff.o
4CPP = g++ 4CPP = g++
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/wl_conf.cc b/noncore/net/wellenreiter/libwellenreiter/source/wl_conf.cc
new file mode 100644
index 0000000..ba56754
--- a/dev/null
+++ b/noncore/net/wellenreiter/libwellenreiter/source/wl_conf.cc
@@ -0,0 +1,81 @@
1/*
2 * Configfile operations for wellenreiter
3 *
4 * $Id$
5 */
6
7#include "wl_conf.hh"
8#include "wl_log.hh"
9#include "wl_types.hh"
10
11/* Check whether configfile exists and is readable */
12int wl_checkcfg(void)
13{
14 FILE *wl_config;
15
16 if((wl_config = fopen(WL_CONFFILE, "r")) == NULL)
17 {
18 wl_logerr("Cannot open configfile: %s", strerror(errno));
19 return 0;
20 }
21 else
22 {
23 fclose(wl_config);
24 return 1;
25 }
26
27}
28
29/* Get value for given token from config file */
30int wl_cfgvalue(const char *token, char *out, int maxlen)
31{
32 FILE *wl_config;
33 char *ptr, *ptr2;
34 char confbuf[WL_CONFBUFF];
35
36 if(token == NULL)
37 return -1;
38
39 if((wl_config = fopen(WL_CONFFILE, "r")) == NULL)
40 {
41 wl_logerr("Cannot open configfile: %s", strerror(errno));
42 return -1;
43 }
44
45 /* Clear buffers */
46 memset(out, 0, maxlen);
47 memset(confbuf, 0, sizeof(confbuf));
48
49 while((fgets(confbuf, sizeof(confbuf) - 1, wl_config)) != NULL)
50 {
51
52 /* Ignore comments */
53 if(confbuf[0] == '#') continue;
54
55 /* Search for token, if found check whether next character
56 * is a '=' or a ' '
57 */
58 if(strstr(confbuf, token) != NULL &&
59 (confbuf[strlen(token)] == '=' || confbuf[strlen(token)] == ' '))
60 {
61
62 /* Get value between quotes */
63 if((ptr = strstr(confbuf, "\"")) == NULL)
64 break;
65 ++ptr;
66 if((ptr2 = strstr(ptr, "\"")) == NULL)
67 break;
68 ptr2[0] = '\0';
69
70 memcpy(out, ptr, maxlen - 1);
71 break;
72
73 }
74 memset(confbuf, 0, sizeof(confbuf));
75 }
76
77 fclose(wl_config);
78
79 return (out[0] == '\0' ? 0 : 1);
80}
81
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/wl_conf.hh b/noncore/net/wellenreiter/libwellenreiter/source/wl_conf.hh
new file mode 100644
index 0000000..4061440
--- a/dev/null
+++ b/noncore/net/wellenreiter/libwellenreiter/source/wl_conf.hh
@@ -0,0 +1,12 @@
1/* $Id$ */
2
3#ifndef WLCONF_HH
4#define WLCONF_HH
5
6#include <string.h>
7#include <errno.h>
8
9int wl_checkcfg(void);
10int wl_cfgvalue(const char *, char *, int);
11
12#endif /* WLCONF_HH */
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/wl_proto.cc b/noncore/net/wellenreiter/libwellenreiter/source/wl_proto.cc
index 664ba92..67dfc02 100644
--- a/noncore/net/wellenreiter/libwellenreiter/source/wl_proto.cc
+++ b/noncore/net/wellenreiter/libwellenreiter/source/wl_proto.cc
@@ -17,2 +17,3 @@ int add_field(char *buffer, const char *string, int len)
17 /* 3 Byte = Length */ 17 /* 3 Byte = Length */
18 memset(newlen, 0, sizeof(newlen));
18 snprintf(newlen, sizeof(newlen) - 1, "%.3d", len); 19 snprintf(newlen, sizeof(newlen) - 1, "%.3d", len);
@@ -32,2 +33,3 @@ int get_field(const char *buffer, char *out, int maxlen)
32 /* Get length of value */ 33 /* Get length of value */
34 memset(len, 0, sizeof(len));
33 memcpy(len, buffer, 3); 35 memcpy(len, buffer, 3);
@@ -36,3 +38,2 @@ int get_field(const char *buffer, char *out, int maxlen)
36 memset(out, 0, maxlen); 38 memset(out, 0, maxlen);
37
38 if(atoi(len) > maxlen -1) 39 if(atoi(len) > maxlen -1)
@@ -55,2 +56,4 @@ int send_network_found (const char *guihost, int guiport, void *structure)
55 56
57 memcpy(buffer, 0, sizeof(buffer));
58
56 /* Type = Found new net (without length field) */ 59 /* Type = Found new net (without length field) */
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/wl_types.hh b/noncore/net/wellenreiter/libwellenreiter/source/wl_types.hh
index a5ca281..f12d65e 100644
--- a/noncore/net/wellenreiter/libwellenreiter/source/wl_types.hh
+++ b/noncore/net/wellenreiter/libwellenreiter/source/wl_types.hh
@@ -16,4 +16,6 @@
16 16
17/* Socket specific */
17#define WL_SOCKBUF 512 /* Buffer for wl_send and wl_recv calls */ 18#define WL_SOCKBUF 512 /* Buffer for wl_send and wl_recv calls */
18 19
20/* Protocol specific */
19 21
@@ -29,2 +31,6 @@ typedef struct {
29 31
32/* Config specific */
33#define WL_CONFFILE "sample.conf"
34#define WL_CONFBUFF 128
35
30#endif /* WL_TYPES_HH */ 36#endif /* WL_TYPES_HH */