| 371 |
|
assert(client != NULL); |
| 372 |
|
|
| 373 |
|
auth = make_auth_request(client); |
| 374 |
+ |
dlinkAdd(auth, &auth->node, &auth_doing_list); |
| 375 |
|
|
| 376 |
|
sendheader(client, REPORT_DO_DNS); |
| 377 |
|
|
| 383 |
|
start_auth_query(auth); |
| 384 |
|
} |
| 385 |
|
|
| 385 |
– |
dlinkAdd(auth, &auth->node, &auth_doing_list); |
| 386 |
– |
|
| 386 |
|
gethost_byaddr(auth_dns_callback, auth, &client->localClient->ip); |
| 387 |
|
|
| 388 |
|
return NULL; |
| 404 |
|
if (auth->timeout > CurrentTime) |
| 405 |
|
continue; |
| 406 |
|
|
| 408 |
– |
fd_close(&auth->fd); |
| 409 |
– |
|
| 407 |
|
if (IsDoingAuth(auth)) |
| 408 |
|
{ |
| 409 |
|
++ServerStats.is_abad; |
| 410 |
+ |
fd_close(&auth->fd); |
| 411 |
|
ClearAuth(auth); |
| 412 |
|
sendheader(auth->client, REPORT_FAIL_ID); |
| 413 |
|
} |
| 597 |
|
if (IsDNSPending(auth)) |
| 598 |
|
delete_resolver_queries(auth); |
| 599 |
|
|
| 600 |
< |
fd_close(&auth->fd); |
| 600 |
> |
if (IsDoingAuth(auth)) |
| 601 |
> |
fd_close(&auth->fd); |
| 602 |
> |
|
| 603 |
|
dlinkDelete(&auth->node, &auth_doing_list); |
| 604 |
|
BlockHeapFree(auth_heap, auth); |
| 605 |
|
} |