> On 07 Apr 2016, at 13:13, Michiel van Es <[email protected]> wrote:
>> On 07 Apr 2016, at 12:59, Joerg Jung <[email protected]> wrote:
>>
>> Ok... that makes sense now.
>> -2 seems to be EAI_NONAME which seems to be the error code specific on
>> Ubuntu libc for NXDOMAIN replies, instead of EAI_NODATA.
>>
>> These error codes and related RFCs are subject to a lot of discussions.
>> See here to get an idea:
>> https://sourceware.org/bugzilla/show_bug.cgi?id=15726
>> Especially, note the cross references to Ubuntu bugs ...
>>
>> Instead of trying to fit all distribution specific changes,
>> the easiest might be to change the logic here and check for the returned
>> address not being empty -- instead of errno.
>>
>> I'll try to come up with a proper diff to fix this, but give me some time as
>> I'm very busy currently.
>>
>> As quick fix: you can just change the if statement to:
>> if (ar->ar_gai_errno != EAI_NODATA && ar->ar_gai_errno != EAI_NONAME) {
>
> like this? =>
yes.
> dnsbl_event_dispatch(struct asr_result *ar, void *arg)
> {
> uint64_t *q = arg;
>
> if (ar->ar_addrinfo)
> freeaddrinfo(ar->ar_addrinfo);
> log_warnx("warn: DEBUG: ar_gai_errno=%d, EAI_NODATA=%d",
> ar->ar_gai_errno, EAI_NODATA);
> if (ar->ar_gai_errno != EAI_NODATA && ar->ar_gai_errno != EAI_NONAME) {
> log_warnx("warn: session %016"PRIx64": event_dispatch: REJECT
> address ar_gai_errno=%d", *q, ar->ar_gai_errno);
> filter_api_reject_code(*q, FILTER_CLOSE, 554, "5.7.1 Address
> in DNSBL");
> } else
> filter_api_accept(*q);
> free(q);
> }
>
>> ... and it should start working as expected. Can you confirm that, please?
>
> if above is correct, it did not work:
>
> dnsbl[26098]: warn: DEBUG: ar_gai_errno=-5, EAI_NODATA=-2
> dnsbl[26098]: warn: session de57c06bd67994d3: event_dispatch: REJECT address
> ar_gai_errno=-5
> filter: imsg IMSG_FILTER_RESPONSE from procfilter
> dnsbl[hooks=0xffffffff,flags=0x0000]
> filter: filter_drain_query de57c06c3dc0ecca[QUERY_CONNECT=178.21.114.197 <->
> 185.14.168.222(pro-mail-smtp-001.bol.com),filter_session@0x1588030[datalen=0,eom=(nil),ofile=(nil)]]
> filter: filter_end_query de57c06c3dc0ecca[QUERY_CONNECT=178.21.114.197 <->
> 185.14.168.222(pro-mail-smtp-001.bol.com),filter_session@0x1588030[datalen=0,eom=(nil),ofile=(nil)]]
> filter: query de57c06c3dc0ecca done: status=FILTER_CLOSE code=554
> response="5.7.1 Address in DNSBL"
> smtp-in: Failed command on session de57c06bd67994d3: "" => 554 5.7.1 Address
> in DNSBL
> smtp-in: Closing session de57c06bd67994d3
> debug: smtp: 0x1655cf0: deleting session: done
> filter: post-event event=EVENT_DISCONNECT filter=dnsbl
> ^Cinfo: queue handler exiting
> info: scheduler handler exiting
> info: ca agent exiting
> warn: control -> queue: pipe closed
> warn: lka -> queue: pipe closed
> strace: Process 26091 detached
>
Ok can change the added DEBUG line right before the if statement once again to:
log_warnx("warn: DEBUG: ar_gai_errno=%d, EAI_NODATA=%d, EAI_NONAME=%d,
gai_strerror=‘%s'", ar->ar_gai_errno, EAI_NODATA, EAI_NONAME,
gai_strerror(ar->ar_gai_errno));
… and show me output?
--
You received this mail because you are subscribed to [email protected]
To unsubscribe, send a mail to: [email protected]