1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/*
* Communication protocol
*
* $Id$
*/
#include "proto.hh"
#include "sock.hh"
/* Send found network to GUI */
int send_network_found (const char *guihost, int guiport, void *structure)
{
wl_network_t *ptr;
char buffer[2048];
char temp[5];
ptr = (wl_network_t *)structure;
memset(buffer, 0, 2048);
/* Type = Found new net */
memcpy(buffer, "01", 2);
/* Set Net-type */
memset(temp, 0, sizeof(temp));
snprintf(temp, 2, "%d", ptr->net_type);
memcpy(buffer + 2, temp, 1);
/* Set channel */
memset(temp, 0, sizeof(temp));
if(ptr->channel < 10)
snprintf(temp, 3, "0%d", ptr->channel);
else
snprintf(temp, 3, "%d", ptr->channel);
memcpy(buffer + 3, temp, 2);
/* Set WEP y/n */
memset(temp, 0, sizeof(temp));
snprintf(temp, 2, "%d", ptr->wep);
memcpy(buffer + 5, temp, 1);
/* Set MAC address */
memcpy(buffer + 6, ptr->mac, 17);
/* Set lenght of ssid */
memset(temp, 0, sizeof(temp));
if(ptr->ssid_len > 99)
snprintf(temp, 4, "%d", ptr->ssid_len);
else if(ptr->ssid_len < 10)
snprintf(temp, 4, "00%d", ptr->ssid_len);
else
snprintf(temp, 4, "0%d", ptr->ssid_len);
memcpy(buffer + 23, temp, 3);
fprintf( stderr, "Temp is %s\n", temp );
fprintf( stderr, "ssid_len is %d\n", ptr->ssid_len );
/* Set ssid */
memcpy(buffer + 26, ptr->bssid, ptr->ssid_len);
fprintf( stderr, "Buffer is %s\n", buffer );
/* Send prepared buffer to GUI */
sendcomm(guihost, guiport, buffer);
return 1;
}
/* Fill buffer into structur */
int get_network_found (void *structure, const char *buffer)
{
wl_network_t *ptr;
char temp[512];
ptr = (wl_network_t *)structure;
/* Get net type */
memset(temp, 0, sizeof(temp));
memcpy(temp, buffer + 2, 1);
ptr->net_type = atoi(temp);
/* Get channel */
memset(temp, 0, sizeof(temp));
memcpy(temp, buffer + 3, 2);
ptr->channel = atoi(temp);
/* Set WEP y/n */
memset(temp, 0, sizeof(temp));
memcpy(temp, buffer + 5, 1);
ptr->wep = atoi(temp);
/* Set MAC address */
memcpy(ptr->mac, buffer + 6, 17);
ptr->mac[17]='\0';
/* Set lenght of ssid */
memset(temp, 0, sizeof(temp));
memcpy(temp, buffer + 23, 3);
ptr->ssid_len = atoi(temp);
/* Set ssid */
memcpy(ptr->bssid, buffer + 26, ptr->ssid_len + 1);
return 1;
}
|