summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings/TODO
Side-by-side diff
Diffstat (limited to 'noncore/settings/networksettings/TODO') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/networksettings/TODO58
1 files changed, 58 insertions, 0 deletions
diff --git a/noncore/settings/networksettings/TODO b/noncore/settings/networksettings/TODO
index 020339f..862d681 100644
--- a/noncore/settings/networksettings/TODO
+++ b/noncore/settings/networksettings/TODO
@@ -1,14 +1,72 @@
test WEP
WEP key in file wireless.conf is not encrypted !, therefore it is very easy to get the key out of the zaurus..
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");
+ }
+
+}
+--
+