# HG changeset patch # User Sergey Kandaurov # Date 1450360549 -10800 # Node ID ded6b7648d6e50c422fe15b79677937969aaff2b # Parent f02dac68d58445ab0d741388cf2e3f8d80b97632 Tests: added mail resolver test for CNAME and PTR records combined. diff --git a/mail_resolver.t b/mail_resolver.t --- a/mail_resolver.t +++ b/mail_resolver.t @@ -81,6 +81,13 @@ mail { protocol smtp; resolver 127.0.0.1:8086; } + + server { + listen 127.0.0.1:8032; + protocol smtp; + resolver 127.0.0.1:8087; + } + } http { @@ -107,16 +114,16 @@ http { EOF -for (8081 .. 8086) { +for (8081 .. 8087) { $t->run_daemon(\&dns_daemon, $_, $t); } $t->run(); -for (8081 .. 8086) { +for (8081 .. 8087) { $t->waitforfile($t->testdir . "/$_"); } -$t->plan(7); +$t->plan(8); ############################################################################### @@ -193,7 +200,7 @@ local $TODO = 'support for CNAME RR'; $s->read(); $s->send('RCPT TO:'); -$s->ok('PTR with CNAME'); +$s->ok('CNAME'); $s->send('QUIT'); $s->read(); @@ -238,6 +245,26 @@ local $TODO = 'PTR type checking'; } +# CNAME and PTR in one answer section + +TODO: { +local $TODO = 'not yet'; + +$s = Test::Nginx::SMTP->new(PeerAddr => "127.0.0.1:8032"); +$s->read(); +$s->send('EHLO example.com'); +$s->read(); +$s->send('MAIL FROM: SIZE=100'); +$s->read(); + +$s->send('RCPT TO:'); +$s->ok('CNAME with PTR'); + +$s->send('QUIT'); +$s->read(); + +} + ############################################################################### sub reply_handler { @@ -306,6 +333,13 @@ sub reply_handler { } elsif ($port == 8086) { push @rdata, rd_name(DNAME, $ttl, 'a.example.net'); + } elsif ($port == 8087) { + # PTR answered with CNAME+PTR + + push @rdata, rd_name(CNAME, $ttl, + '1.1.0.0.127.in-addr.arpa'); + push @rdata, pack("n3N n(C/a*)3 x", 0xc034, + PTR, IN, $ttl, 15, ('a', 'example', 'net')); } } elsif ($name eq '1.1.0.0.127.in-addr.arpa' && $type == PTR) {