aboutsummaryrefslogtreecommitdiff
path: root/j1demo/firmware/dns.fs
diff options
context:
space:
mode:
Diffstat (limited to 'j1demo/firmware/dns.fs')
-rw-r--r--j1demo/firmware/dns.fs81
1 files changed, 0 insertions, 81 deletions
diff --git a/j1demo/firmware/dns.fs b/j1demo/firmware/dns.fs
deleted file mode 100644
index 96ec36c..0000000
--- a/j1demo/firmware/dns.fs
+++ /dev/null
@@ -1,81 +0,0 @@
-( DNS JCB 19:44 11/27/10)
-module[ dns"
-
-: ip-dns@ ip-dns 2@ ;
-
-\ ( offset -- offset' ) advance pointer past DNS label
-\ 0 means end
-\ >h# c0 means ptr to end
-\ N means word of N bytes
-
-: dns-skiplabel
- begin
- dup 1+ swap mac-inoffset macc@ \ offset+1 v
- dup 0= if
- drop exit
- then
- dup h# c0 >= if
- drop 1+ exit
- then
- +
- again
-;
-
-\ Query DNS. xt is a word that appends domainname to packet. id is DNS
-\ id field, used to route responses.
-
-: dns-query ( xt id -- )
- >r
- \ dst-port src-port dst-ip src-ip *ethaddr
- d# 53 d# 31947
- ip-dns@
- net-my-ip
- ip-dns@ arp-lookup
- udp-header
- r> \ IDENTIFICATION
- h# 0100 \ FLAGS
- d# 1 \ NOQ
- mac-pkt-3,
- d# 3 mac-pkt-,0
-
- execute
-
- d# 1 \ query type A
- dup \ query class internet
- mac-pkt-2,
- udp-wrapup
-
- ip-dns@ arp-lookup if
- mac-send
- then
-;
-
-: dns-handler ( srcport dstport -- 0 / ip. id 1 )
- d# 53 d# 31947 d=
- OFFSET_DNS_FLAGS packet@ 0< and
- OFFSET_DNS_NOA packet@ 0<> and
- if
- OFFSET_DNS_QUERY
- dns-skiplabel
- d# 4 +
- dns-skiplabel
- d# 10 +
- mac-inoffset d# 2 swap mac@n
- OFFSET_DNS_IDENTIFICATION packet@
- d# 1
- else
- d# 0
- then
-;
-
-: dns-appendname ( str -- )
- dup mac-pkt-c,
- mac-pkt-s,
-;
-
-: dns-append.com ( str -- )
- dns-appendname
- s" com" dns-appendname
- d# 0 mac-pkt-c,
-;
-]module