From a611f55d44318359631036212740e8cd515c519a Mon Sep 17 00:00:00 2001 From: DanB Date: Sat, 20 Apr 2019 18:08:16 +0200 Subject: [PATCH] Adding NAPTR processing in integration test --- agents/dnsagent.go | 1 + agents/dnsagent_it_test.go | 34 ++++++++++++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/agents/dnsagent.go b/agents/dnsagent.go index 6bf0e0aa3..f0ae80a04 100644 --- a/agents/dnsagent.go +++ b/agents/dnsagent.go @@ -110,6 +110,7 @@ func (da *DNSAgent) handleMessage(w dns.ResponseWriter, req *dns.Msg) { return } reqVars[E164Address] = e164 + utils.Logger.Info(fmt.Sprintf("reqVars: %+v", reqVars)) } rplyNM := config.NewNavigableMap(nil) // share it among different processors diff --git a/agents/dnsagent_it_test.go b/agents/dnsagent_it_test.go index be39f6959..c0a5bcdf1 100644 --- a/agents/dnsagent_it_test.go +++ b/agents/dnsagent_it_test.go @@ -21,7 +21,7 @@ along with this program. If not, see package agents import ( - "net/http" + "fmt" "net/rpc" "net/rpc/jsonrpc" "path" @@ -31,13 +31,14 @@ import ( "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/utils" + "github.com/miekg/dns" ) var ( dnsCfgPath string dnsCfg *config.CGRConfig dnsRPC *rpc.Client - dnsClnt *http.Client // so we can cache the connection + dnsClnt *dns.Conn // so we can cache the connection ) var sTestsDNS = []func(t *testing.T){ @@ -45,6 +46,8 @@ var sTestsDNS = []func(t *testing.T){ testDNSitStartEngine, testDNSitApierRpcConn, testDNSitTPFromFolder, + testDNSitClntConn, + testDNSitClntNAPTRDryRun, testDNSitStopEngine, } @@ -113,6 +116,33 @@ func testDNSitTPFromFolder(t *testing.T) { } } +// Connect DNS client to server +func testDNSitClntConn(t *testing.T) { + c := new(dns.Client) + var err error + if dnsClnt, err = c.Dial(dnsCfg.DNSAgentCfg().Listen); err != nil { // just testing the connection, not not saving it + t.Fatal(err) + } else if dnsClnt == nil { + t.Fatalf("conn is nil") + } + fmt.Printf("done connecting to %s", dnsCfg.DNSAgentCfg().Listen) +} + +func testDNSitClntNAPTRDryRun(t *testing.T) { + m := new(dns.Msg) + m.SetQuestion("3.6.9.4.7.1.7.1.5.6.8.9.4.e164.arpa.", dns.TypeNAPTR) + if err := dnsClnt.WriteMsg(m); err != nil { + t.Error(err) + } + if rply, err := dnsClnt.ReadMsg(); err != nil { + t.Error(err) + } else { + if rply.Rcode != dns.RcodeSuccess { + t.Errorf("failed to get an valid answer\n%v", rply) + } + } +} + func testDNSitStopEngine(t *testing.T) { if err := engine.KillEngine(*waitRater); err != nil { t.Error(err)