summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/proto.cc104
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/proto.hh28
2 files changed, 132 insertions, 0 deletions
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/proto.cc b/noncore/net/wellenreiter/libwellenreiter/source/proto.cc
new file mode 100644
index 0000000..359bdb5
--- a/dev/null
+++ b/noncore/net/wellenreiter/libwellenreiter/source/proto.cc
@@ -0,0 +1,104 @@
1/*
2 * Communication protocol
3 *
4 * $Id$
5 */
6
7#include "proto.hh"
8#include "sock.hh"
9
10/* Send found network to GUI */
11int send_network_found (const char *guihost, int guiport, void *structure)
12{
13 wl_network_t *ptr;
14 char buffer[2048];
15 char temp[4];
16
17 ptr = (wl_network_t *)structure;
18
19 memset(buffer, 0, 2048);
20
21 /* Type = Found new net */
22 memcpy(buffer, "01", 2);
23
24 /* Set Net-type */
25 memset(temp, 0, sizeof(temp));
26 snprintf(temp, 2, "%d", ptr->net_type);
27 memcpy(buffer + 2, temp, 1);
28
29 /* Set channel */
30 memset(temp, 0, sizeof(temp));
31
32 if(ptr->channel < 10)
33 snprintf(temp, 3, "0%d", ptr->channel);
34 else
35 snprintf(temp, 3, "%d", ptr->channel);
36
37 memcpy(buffer + 3, temp, 2);
38
39 /* Set WEP y/n */
40 memset(temp, 0, sizeof(temp));
41 snprintf(temp, 2, "%d", ptr->wep);
42 memcpy(buffer + 5, temp, 1);
43
44 /* Set MAC address */
45 memcpy(buffer + 6, ptr->mac, 17);
46
47 /* Set lenght of ssid */
48 memset(temp, 0, sizeof(temp));
49
50 if(ptr->ssid_len > 99)
51 snprintf(temp, 4, "%d", ptr->ssid_len);
52 else if(ptr->ssid_len < 10)
53 snprintf(temp, 4, "00%d", ptr->ssid_len);
54 else
55 snprintf(temp, 4, "0%d", ptr->ssid_len);
56
57 memcpy(buffer + 23, temp, 3);
58
59 /* Set ssid */
60 memcpy(buffer + 26, ptr->bssid, ptr->ssid_len);
61
62 /* Send prepared buffer to GUI */
63 sendcomm(guihost, guiport, buffer);
64
65 return 1;
66}
67
68/* Fill buffer into structur */
69int get_network_found (void *structure, const char *buffer)
70{
71 wl_network_t *ptr;
72 char temp[512];
73
74 ptr = (wl_network_t *)structure;
75
76 /* Get net type */
77 memset(temp, 0, sizeof(temp));
78 memcpy(temp, buffer + 2, 1);
79 ptr->net_type = atoi(temp);
80
81 /* Get channel */
82 memset(temp, 0, sizeof(temp));
83 memcpy(temp, buffer + 3, 2);
84 ptr->channel = atoi(temp);
85
86 /* Set WEP y/n */
87 memset(temp, 0, sizeof(temp));
88 memcpy(temp, buffer + 5, 1);
89 ptr->wep = atoi(temp);
90
91 /* Set MAC address */
92 memcpy(ptr->mac, buffer + 6, 17);
93 ptr->mac[17]='\0';
94
95 /* Set lenght of ssid */
96 memset(temp, 0, sizeof(temp));
97 memcpy(temp, buffer + 23, 3);
98 ptr->ssid_len = atoi(temp);
99
100 /* Set ssid */
101 memcpy(ptr->bssid, buffer + 26, ptr->ssid_len + 1);
102
103 return 1;
104}
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/proto.hh b/noncore/net/wellenreiter/libwellenreiter/source/proto.hh
new file mode 100644
index 0000000..e3e9f50
--- a/dev/null
+++ b/noncore/net/wellenreiter/libwellenreiter/source/proto.hh
@@ -0,0 +1,28 @@
1/* $Id$ */
2
3#ifndef PROTO_HH
4#define PROTO_HH
5
6#include <stdio.h>
7#include <string.h>
8#include <stdlib.h>
9
10/* Type definitions, to be continued */
11#define NETFOUND 01
12#define NETLOST 02
13#define STARTSNIFF 98
14#define STOPSNIFF 99
15
16int send_network_found (const char *, int, void *);
17int get_network_found (void *, const char *);
18
19typedef struct {
20 int net_type; /* 1 = Accesspoint ; 2 = Ad-Hoc */
21 int ssid_len; /* Length of SSID */
22 int channel; /* Channel */
23 int wep; /* 1 = WEP enabled ; 0 = disabled */
24 char mac[64]; /* MAC address of Accesspoint */
25 char bssid[128]; /* BSSID of Accesspoint */
26} wl_network_t;
27
28#endif /* PROTO_HH */