leeyc0, > > After some struggle and tracing every bit of code (including tracing > > installing cpan packages!), apparently it is a bug in the latest > > Net::DNS::Packet::Resolver::Base send_tcp function call... > > Yes, it is caused by a bug in Net::DNS::Resolver::Base (sorry, there was a > typo before about the package name). > > I have to comment a line Net/DNS/Resolver/Base.pm to fix this problem. > > (below is some lines in Net/DNS/Resolver/Base.pm send_tcp function) > $buf = read_tcp($sock, $len, $self->{'debug'}); > > # comment this line, this should be a class property but used as a function > # apparently mixed up with Net::DNS::Packet > #$self->answerfrom($sock->peerhost); > > print ';; received ', length($buf), " bytes\n" > if $self->{'debug'};
Thanks, good work - except that I can't reproduce the problem, and the fallback to TCP in Net::DNS 0.66 works just fine with your first sample message. Which version of Net::DNS are you using? Does the SpamAssassin dkim test produce any errors? $ prove t/dkim2.t $ export RES_OPTIONS="debug" $ perl -MMail::DKIM::Verifier -ne ' BEGIN{$dkim=Mail::DKIM::Verifier->new_object}; s/\r?\n\z/\015\012/; $dkim->PRINT($_); END{$dkim->CLOSE; printf("%s\n",$_->result_detail) for $dkim->signatures}' dkim-failed.eml ;; query(ns4._domainkey.iwtek.net, TXT) ;; Trying to set up a AF_INET6() family type UDP socket with srcaddr: 0.0.0.0 ... done ;; setting up an AF_INET() family type UDP socket ;; send_udp(::1:53) ;; answer from ::1:53 : 478 bytes ;; HEADER SECTION ;; id = 29254 ;; qr = 1 opcode = QUERY aa = 0 tc = 1 rd = 1 ;; ra = 1 ad = 0 cd = 0 rcode = NOERROR ;; qdcount = 1 ancount = 1 nscount = 0 arcount = 0 ;; QUESTION SECTION (1 record) ;; ns4._domainkey.iwtek.net. IN TXT ;; ANSWER SECTION (1 record) ns4._domainkey.iwtek.net. 2095 IN TXT "v=DKIM1\; k=rsa\; t=y\; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApEnzzPme" "RPW8s51DoJqu4ShXkFxLZVoSwPapc1HUGWCNBFbMvKReIYLxQoCWMC" "h6E1Pv5GITqWC1LrA9dluupPHIuyu7vXMMkecq6o1e4T0J5ZspzNMa" "TtPrvwlZEE5KZ5bWXuDTDjK6e24KfkPgWPg5jjMWs/fkEjPBNsNNmh" "kHkXMulHb4+LkTSgDWxE6WgMc8R7KvUuY6AedeY3CUpzzBqn/UNZgu" "w8Z9y7y2GPJK9lm4ERkbqZuiRB+iCDYmlSgUClWGk4cywkWK3AaAB/" "7w+2xLJ2DgVDGrgxLQCVLlpHnybGrh6FN0R8mlffZy9RJpmq3raO/e" "YkD1t2eeWQIDAQAB" ;; AUTHORITY SECTION (0 records) ;; ADDITIONAL SECTION (0 records) ;; ;; packet truncated: retrying using TCP ;; attempt to send_tcp(::1:53) (src port = 0) ;; sending 42 bytes ;; read_tcp: expecting 2 bytes ;; read_tcp: received 2 bytes ;; read_tcp: expecting 614 bytes ;; read_tcp: received 614 bytes ;; received 614 bytes ;; HEADER SECTION ;; id = 29254 ;; qr = 1 opcode = QUERY aa = 0 tc = 0 rd = 1 ;; ra = 1 ad = 0 cd = 0 rcode = NOERROR ;; qdcount = 1 ancount = 1 nscount = 4 arcount = 4 ;; QUESTION SECTION (1 record) ;; ns4._domainkey.iwtek.net. IN TXT ;; ANSWER SECTION (1 record) ns4._domainkey.iwtek.net. 2095 IN TXT "v=DKIM1\; k=rsa\; t=y\; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApEnzzPme" "RPW8s51DoJqu4ShXkFxLZVoSwPapc1HUGWCNBFbMvKReIYLxQoCWMC" "h6E1Pv5GITqWC1LrA9dluupPHIuyu7vXMMkecq6o1e4T0J5ZspzNMa" "TtPrvwlZEE5KZ5bWXuDTDjK6e24KfkPgWPg5jjMWs/fkEjPBNsNNmh" "kHkXMulHb4+LkTSgDWxE6WgMc8R7KvUuY6AedeY3CUpzzBqn/UNZgu" "w8Z9y7y2GPJK9lm4ERkbqZuiRB+iCDYmlSgUClWGk4cywkWK3AaAB/" "7w+2xLJ2DgVDGrgxLQCVLlpHnybGrh6FN0R8mlffZy9RJpmq3raO/e" "YkD1t2eeWQIDAQAB" ;; AUTHORITY SECTION (4 records) iwtek.net. 2029 IN NS ns6.iwtek.net. iwtek.net. 2029 IN NS ns3.iwtek.net. iwtek.net. 2029 IN NS ns4.iwtek.net. iwtek.net. 2029 IN NS ns5.iwtek.net. ;; ADDITIONAL SECTION (4 records) ns3.iwtek.net. 2095 IN A 116.92.10.96 ns4.iwtek.net. 2095 IN A 116.92.10.97 ns5.iwtek.net. 2095 IN A 116.92.10.98 ns6.iwtek.net. 2095 IN A 218.213.70.126 pass Mark