summaryrefslogtreecommitdiff
path: root/dnssecsocket/connection_handler.go
diff options
context:
space:
mode:
Diffstat (limited to 'dnssecsocket/connection_handler.go')
-rw-r--r--dnssecsocket/connection_handler.go131
1 files changed, 0 insertions, 131 deletions
diff --git a/dnssecsocket/connection_handler.go b/dnssecsocket/connection_handler.go
deleted file mode 100644
index 8ccedaa..0000000
--- a/dnssecsocket/connection_handler.go
+++ /dev/null
@@ -1,131 +0,0 @@
-// inspired from:
-// https://github.com/mactsouk/opensource.com.git
-// and
-// https://coderwall.com/p/wohavg/creating-a-simple-tcp-server-in-go
-
-package dnssecsocket
-
-import "os"
-import "bufio"
-import "math/rand"
-import "net"
-import "strconv"
-import "strings"
-// import log "github.com/sirupsen/logrus"
-// import "github.com/wercker/journalhook"
-
-import "go.wit.com/shell"
-
-// will try to get this hosts FQDN
-// import "github.com/Showmax/go-fqdn"
-
-import "github.com/miekg/dns"
-
-// import "github.com/davecgh/go-spew/spew"
-
-const MIN = 1
-const MAX = 100
-
-func random() int {
- return rand.Intn(MAX-MIN) + MIN
-}
-
-func GetRemoteAddr(conn net.TCPConn) string {
- clientAddr := conn.RemoteAddr().String()
- parts := strings.Split(clientAddr, "]")
- ipv6 := parts[0]
- return ipv6[1:]
-}
-
-//
-// Handle each connection
-// Each client must send it's hostname as the first line
-// Then each hostname is verified with DNSSEC
-//
-func HandleConnection(conn *net.TCPConn) {
- // Disable journalhook until it builds on Windows
- // journalhook.Enable()
-
- // spew.Dump(conn)
- // ipv6client := GetRemoteAddr(c)
- ipv6client := conn.RemoteAddr()
- log(args.VerboseDnssec, "Serving to %s as the IPv6 client", ipv6client)
-
- // setup this TCP socket as the "standard input"
- // newStdin, _ := bufio.NewReader(conn.File())
- newStdin, _ := conn.File()
- newreader := bufio.NewReader(newStdin)
-
- log(args.VerboseDnssec, "Waiting for the client to tell me its name")
- netData, err := newreader.ReadString('\n')
- if err != nil {
- log(args.VerboseDnssec, err)
- return
- }
- clientHostname := strings.TrimSpace(netData)
- log(args.VerboseDnssec, "Recieved client hostname as:", clientHostname)
-
- dnsRR := Dnstrace(clientHostname, "AAAA")
- if (dnsRR == nil) {
- log(args.VerboseDnssec, "dnsRR IS NIL")
- log(args.VerboseDnssec, "dnsRR IS NIL")
- log(args.VerboseDnssec, "dnsRR IS NIL")
- conn.Close()
- return
- }
- ipaddr := dns.Field(dnsRR[1], 1)
- log(args.VerboseDnssec, "Client claims to be: ", ipaddr)
- log(args.VerboseDnssec, "Serving to IPv6 client:", ipv6client)
-
-/* TODO: figure out how to fix this check
- if (ipaddr != ipv6client) {
- log(args.VerboseDnssec)
- log(args.VerboseDnssec, "DNSSEC ERROR: client IPv6 does not work")
- log(args.VerboseDnssec, "DNSSEC ERROR: client IPv6 does not work")
- log(args.VerboseDnssec, "DNSSEC ERROR: client IPv6 does not work")
- log(args.VerboseDnssec)
- conn.Close()
- return
- }
-*/
-
- f, _ := conn.File()
-// shell.SetStdout(f)
-// shell.SpewOn() // turn this on if you want to look at the process exit states
-
- // send all log() output to systemd journalctl
-// shell.UseJournalctl()
-
- for {
- defer shell.SetStdout(os.Stdout)
- defer conn.Close()
- netData, err := newreader.ReadString('\n')
- if err != nil {
- log(args.VerboseDnssec, err)
- return
- }
-
- temp := strings.TrimSpace(string(netData))
- if temp == "STOP" {
- break
- }
- log(args.VerboseDnssec, "Recieved: ", temp)
-
- if (temp == "list") {
- log(args.VerboseDnssec, "Should run list here")
- shell.SetStdout(f)
- shell.Run("/root/bin/list.testing.com")
- shell.SetStdout(os.Stdout)
- }
-
- if (temp == "cpuinfo") {
- log(args.VerboseDnssec, "Should cat /proc/cpuinfo")
- shell.SetStdout(f)
- shell.Run("cat /proc/cpuinfo")
- shell.SetStdout(os.Stdout)
- }
-
- result := strconv.Itoa(random()) + "\n"
- conn.Write([]byte(string(result)))
- }
-}