summaryrefslogtreecommitdiff
path: root/noncore/net/networksetup/TODO
blob: 93cbab7893351aa68a09d94b06ed77ec819a4031 (plain)
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
test WEP
WEP key in file wireless.conf is not encrypted !, therefore it is very easy to get the key out of the zaurus..
WEP transimtion rat
1 or 2
5.5
1
Auto

udchcp needs to output the dhcp information so interfaces can read it

interfacesetupimp really doesn't need a interface* pointer

Possible other modules to write: ppp, ipsec, bluetooth, ipchains

PPP module needs to scan pppd.tdb to see what is currently active

WLAN - add possiblity to input text or hex without knowing "s:"

Interface setupimp needs to use kernel calls.

Automaticly update the main list of interfaces:
> That would be me. :-D  netlink, can you point me in the right
> direction where  I can get more info on it?  (I figured there was some
> kenel call) 

You can look up the meaning of the packets you receive, or you can just go 
poll for changes you might be interested in each time you receive _any_ 
packet. Anything's better than periodic polling.

Note that you can't do this as non-root on some kernels. There's a patch 
which can go into the hh.org kernel if it's not already there. 
cf. http://marc.theaimsgroup.com/?l=linux-kernel&m=103520821605353&w=2


#include <asm/types.h>
#include <sys/socket.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>

int main(int argc, char **argv)
{
        int fd;
        unsigned char buf[4096];
        int ret;
        int i, j;
        struct sockaddr_nl snl;

        fd = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE);
        if (fd < 0) {
                perror("socket");
                exit(1);
        }

        snl.nl_family = AF_NETLINK;
        snl.nl_pad = 0;
        snl.nl_pid = getpid();
        snl.nl_groups = RTM_NEWLINK|RTM_DELLINK;

        if (bind(fd, &snl, sizeof(snl)) < 0) {
                perror("bind");
                exit(1);
        }
        while (1) {
                ret = recv(fd, buf, 4096, 0);
                if (ret < 0) {
                        perror("recv");
                        exit(1);
                }
                for (i=0; i<ret; i++) {
                        printf("%02x ", buf[i]);
                        }
                printf("\n");
        }

}
--