Browse Source

Use log instead of fmt

closes #5
Ask Bjørn Hansen 13 years ago
parent
commit
a7f2623ae6
4 changed files with 35 additions and 34 deletions
  1. 22 20
      geodns.go
  2. 2 2
      geoip.go
  3. 4 4
      picker.go
  4. 7 8
      serve.go

+ 22 - 20
geodns.go

@@ -3,9 +3,9 @@ package main
 import (
 import (
 	"encoding/json"
 	"encoding/json"
 	"flag"
 	"flag"
-	"fmt"
 	"github.com/miekg/dns"
 	"github.com/miekg/dns"
 	"io/ioutil"
 	"io/ioutil"
+	"log"
 	"net"
 	"net"
 	"path"
 	"path"
 	"sort"
 	"sort"
@@ -83,6 +83,8 @@ func (z *Zone) findLabels(s, cc string, qtype uint16) *Label {
 
 
 func main() {
 func main() {
 
 
+	log.SetPrefix("geodns ")
+
 	flag.Usage = func() {
 	flag.Usage = func() {
 		flag.PrintDefaults()
 		flag.PrintDefaults()
 	}
 	}
@@ -103,12 +105,12 @@ func main() {
 			continue
 			continue
 		}
 		}
 		zoneName := fileName[0:strings.LastIndex(fileName, ".")]
 		zoneName := fileName[0:strings.LastIndex(fileName, ".")]
-		fmt.Println("FILE:", i, file, zoneName)
+		log.Println("FILE:", i, file, zoneName)
 		config := readZoneFile(zoneName, path.Join(dirName, fileName))
 		config := readZoneFile(zoneName, path.Join(dirName, fileName))
 		Zones[zoneName] = config
 		Zones[zoneName] = config
 	}
 	}
 
 
-	fmt.Println("ZONES", Zones)
+	log.Println("ZONES", Zones)
 
 
 	runServe(&Zones)
 	runServe(&Zones)
 }
 }
@@ -131,12 +133,12 @@ func readZoneFile(zoneName, fileName string) *Zone {
 		if err != nil {
 		if err != nil {
 			panic(err)
 			panic(err)
 		}
 		}
-		//fmt.Println(objmap)
+		//log.Println(objmap)
 
 
 		var data map[string]interface{}
 		var data map[string]interface{}
 
 
 		for k, v := range objmap {
 		for k, v := range objmap {
-			fmt.Printf("k: %s v: %#v, T: %T\n", k, v, v)
+			log.Printf("k: %s v: %#v, T: %T\n", k, v, v)
 
 
 			switch k {
 			switch k {
 			case "ttl", "serial":
 			case "ttl", "serial":
@@ -157,9 +159,9 @@ func readZoneFile(zoneName, fileName string) *Zone {
 
 
 	}
 	}
 
 
-	//fmt.Printf("ZO T: %T %s\n", Zones["0.us"], Zones["0.us"])
+	//log.Printf("ZO T: %T %s\n", Zones["0.us"], Zones["0.us"])
 
 
-	//fmt.Println("IP", string(Zone.Regions["0.us"].IPv4[0].ip))
+	//log.Println("IP", string(Zone.Regions["0.us"].IPv4[0].ip))
 
 
 	return Zone
 	return Zone
 }
 }
@@ -174,7 +176,7 @@ func setupZoneData(data map[string]interface{}, Zone *Zone) {
 
 
 	for dk, dv := range data {
 	for dk, dv := range data {
 
 
-		fmt.Printf("K %s V %s TYPE-V %T\n", dk, dv, dv)
+		log.Printf("K %s V %s TYPE-V %T\n", dk, dv, dv)
 
 
 		Zone.Labels[dk] = new(Label)
 		Zone.Labels[dk] = new(Label)
 		label := Zone.Labels[dk]
 		label := Zone.Labels[dk]
@@ -186,11 +188,11 @@ func setupZoneData(data map[string]interface{}, Zone *Zone) {
 			var rdata = dv.(map[string]interface{})[rType]
 			var rdata = dv.(map[string]interface{})[rType]
 
 
 			if rdata == nil {
 			if rdata == nil {
-				//fmt.Printf("No %s records for label %s\n", rType, dk)
+				//log.Printf("No %s records for label %s\n", rType, dk)
 				continue
 				continue
 			}
 			}
 
 
-			fmt.Printf("rdata %s TYPE-R %T\n", rdata, rdata)
+			log.Printf("rdata %s TYPE-R %T\n", rdata, rdata)
 
 
 			records := make(map[string][]interface{})
 			records := make(map[string][]interface{})
 
 
@@ -209,7 +211,7 @@ func setupZoneData(data map[string]interface{}, Zone *Zone) {
 				records[rType] = rdata.([]interface{})
 				records[rType] = rdata.([]interface{})
 			}
 			}
 
 
-			//fmt.Printf("RECORDS %s TYPE-REC %T\n", Records, Records)
+			//log.Printf("RECORDS %s TYPE-REC %T\n", Records, Records)
 
 
 			if label.Records == nil {
 			if label.Records == nil {
 				label.Records = make(map[uint16]Records)
 				label.Records = make(map[uint16]Records)
@@ -220,12 +222,12 @@ func setupZoneData(data map[string]interface{}, Zone *Zone) {
 
 
 			for i := 0; i < len(records[rType]); i++ {
 			for i := 0; i < len(records[rType]); i++ {
 
 
-				fmt.Printf("RT %T %#v\n", records[rType][i], records[rType][i])
+				log.Printf("RT %T %#v\n", records[rType][i], records[rType][i])
 
 
 				record := new(Record)
 				record := new(Record)
 
 
 				var h dns.RR_Header
 				var h dns.RR_Header
-				// fmt.Println("TTL OPTIONS", Zone.Options.Ttl)
+				// log.Println("TTL OPTIONS", Zone.Options.Ttl)
 				h.Ttl = uint32(Zone.Options.Ttl)
 				h.Ttl = uint32(Zone.Options.Ttl)
 				h.Class = dns.ClassINET
 				h.Class = dns.ClassINET
 				h.Rrtype = dnsType
 				h.Rrtype = dnsType
@@ -270,13 +272,13 @@ func setupZoneData(data map[string]interface{}, Zone *Zone) {
 						rr.Ns = rec.(string)
 						rr.Ns = rec.(string)
 					case []string:
 					case []string:
 						recl := rec.([]string)
 						recl := rec.([]string)
-						fmt.Println("RECL:", recl)
+						log.Println("RECL:", recl)
 						rr.Ns = recl[0]
 						rr.Ns = recl[0]
 						if len(recl[1]) > 0 {
 						if len(recl[1]) > 0 {
-							fmt.Println("NS records with names syntax not supported")
+							log.Println("NS records with names syntax not supported")
 						}
 						}
 					default:
 					default:
-						fmt.Printf("Data: %T %#v\n", rec, rec)
+						log.Printf("Data: %T %#v\n", rec, rec)
 						panic("Unrecognized NS format/syntax")
 						panic("Unrecognized NS format/syntax")
 					}
 					}
 
 
@@ -286,7 +288,7 @@ func setupZoneData(data map[string]interface{}, Zone *Zone) {
 					record.RR = rr
 					record.RR = rr
 
 
 				default:
 				default:
-					fmt.Println("type:", rType)
+					log.Println("type:", rType)
 					panic("Don't know how to handle this type")
 					panic("Don't know how to handle this type")
 				}
 				}
 
 
@@ -304,7 +306,7 @@ func setupZoneData(data map[string]interface{}, Zone *Zone) {
 
 
 	setupSOA(Zone)
 	setupSOA(Zone)
 
 
-	//fmt.Println(Zones[k])
+	//log.Println(Zones[k])
 }
 }
 
 
 func setupSOA(Zone *Zone) {
 func setupSOA(Zone *Zone) {
@@ -322,12 +324,12 @@ func setupSOA(Zone *Zone) {
 		" 5400 5400 2419200 " +
 		" 5400 5400 2419200 " +
 		strconv.Itoa(Zone.Options.Ttl)
 		strconv.Itoa(Zone.Options.Ttl)
 
 
-	fmt.Println("SOA: ", s)
+	log.Println("SOA: ", s)
 
 
 	rr, err := dns.NewRR(s)
 	rr, err := dns.NewRR(s)
 
 
 	if err != nil {
 	if err != nil {
-		fmt.Println("SOA Error", err)
+		log.Println("SOA Error", err)
 		panic("Could not setup SOA")
 		panic("Could not setup SOA")
 	}
 	}
 
 

+ 2 - 2
geoip.go

@@ -1,8 +1,8 @@
 package main
 package main
 
 
 import (
 import (
-	"fmt"
 	"github.com/abh/geoip"
 	"github.com/abh/geoip"
+	"log"
 )
 )
 
 
 func setupGeoIP() *geoip.GeoIP {
 func setupGeoIP() *geoip.GeoIP {
@@ -10,7 +10,7 @@ func setupGeoIP() *geoip.GeoIP {
 
 
 	gi := geoip.GeoIP_Open(file)
 	gi := geoip.GeoIP_Open(file)
 	if gi == nil {
 	if gi == nil {
-		fmt.Printf("Could not open GeoIP database\n")
+		log.Printf("Could not open GeoIP database\n")
 		return nil
 		return nil
 	}
 	}
 	return gi
 	return gi

+ 4 - 4
picker.go

@@ -1,7 +1,7 @@
 package main
 package main
 
 
 import (
 import (
-	"fmt"
+	"log"
 	"math/rand"
 	"math/rand"
 )
 )
 
 
@@ -9,7 +9,7 @@ func (label *Label) Picker(dnsType uint16, max int) Records {
 
 
 	if label_rr := label.Records[dnsType]; label_rr != nil {
 	if label_rr := label.Records[dnsType]; label_rr != nil {
 
 
-		//fmt.Printf("REGION_RR %T %v\n", label_rr, label_rr)
+		log.Printf("REGION_RR %i %T %v\n", len(label_rr), label_rr, label_rr)
 
 
 		// not "balanced", just return all
 		// not "balanced", just return all
 		if label.Weight[dnsType] == 0 {
 		if label.Weight[dnsType] == 0 {
@@ -37,7 +37,7 @@ func (label *Label) Picker(dnsType uint16, max int) Records {
 			for i := range servers {
 			for i := range servers {
 				s += int(servers[i].Weight)
 				s += int(servers[i].Weight)
 				if s >= n {
 				if s >= n {
-					fmt.Println("Picked record", i, servers[i])
+					log.Println("Picked record", i, servers[i])
 					sum -= servers[i].Weight
 					sum -= servers[i].Weight
 					result[si] = servers[i]
 					result[si] = servers[i]
 
 
@@ -48,7 +48,7 @@ func (label *Label) Picker(dnsType uint16, max int) Records {
 			}
 			}
 		}
 		}
 
 
-		fmt.Println("SERVERS", result)
+		log.Println("SERVERS", result)
 
 
 		return result
 		return result
 	}
 	}

+ 7 - 8
serve.go

@@ -1,7 +1,6 @@
 package main
 package main
 
 
 import (
 import (
-	"fmt"
 	"github.com/miekg/dns"
 	"github.com/miekg/dns"
 	"log"
 	"log"
 	"os"
 	"os"
@@ -24,16 +23,16 @@ func serve(w dns.ResponseWriter, req *dns.Msg, z *Zone) {
 	logPrintf("[zone %s] incoming %s %s %d from %s\n", z.Origin, req.Question[0].Name,
 	logPrintf("[zone %s] incoming %s %s %d from %s\n", z.Origin, req.Question[0].Name,
 		dns.Rr_str[qtype], req.MsgHdr.Id, w.RemoteAddr())
 		dns.Rr_str[qtype], req.MsgHdr.Id, w.RemoteAddr())
 
 
-	//fmt.Printf("ZONE DATA  %#v\n", z)
+	//log.Printf("ZONE DATA  %#v\n", z)
 
 
-	fmt.Println("Got request", req)
+	log.Println("Got request", req)
 
 
 	label := getQuestionName(z, req)
 	label := getQuestionName(z, req)
 
 
 	var country *string
 	var country *string
 	if geoIP != nil {
 	if geoIP != nil {
 		country = geoIP.GetCountry(w.RemoteAddr().String())
 		country = geoIP.GetCountry(w.RemoteAddr().String())
-		fmt.Println("Country:", country)
+		log.Println("Country:", country)
 	}
 	}
 
 
 	m := new(dns.Msg)
 	m := new(dns.Msg)
@@ -55,15 +54,15 @@ func serve(w dns.ResponseWriter, req *dns.Msg, z *Zone) {
 		return
 		return
 	}
 	}
 
 
-	fmt.Println("Has the label, looking for records")
+	log.Println("Has the label, looking for records")
 
 
 	if servers := labels.Picker(qtype, 4); servers != nil {
 	if servers := labels.Picker(qtype, 4); servers != nil {
 		var rrs []dns.RR
 		var rrs []dns.RR
 		for _, record := range servers {
 		for _, record := range servers {
 			rr := record.RR
 			rr := record.RR
-			fmt.Println("RR", rr)
+			log.Println("RR", rr)
 			rr.Header().Name = req.Question[0].Name
 			rr.Header().Name = req.Question[0].Name
-			fmt.Println(rr)
+			log.Println(rr)
 			rrs = append(rrs, rr)
 			rrs = append(rrs, rr)
 		}
 		}
 		m.Answer = rrs
 		m.Answer = rrs
@@ -73,7 +72,7 @@ func serve(w dns.ResponseWriter, req *dns.Msg, z *Zone) {
 		m.Ns = append(m.Ns, z.Labels[""].Records[dns.TypeSOA][0].RR)
 		m.Ns = append(m.Ns, z.Labels[""].Records[dns.TypeSOA][0].RR)
 	}
 	}
 
 
-	fmt.Println("Writing reply")
+	log.Println("Writing reply")
 
 
 	w.Write(m)
 	w.Write(m)
 	return
 	return