| 263 debug_printf("%s\n",message); |
263 debug_printf("%s\n",message); |
| 264 req->callback(NULL, 0, req->data, message); |
264 req->callback(NULL, 0, req->data, message); |
| 265 release_dns_child(req); |
265 release_dns_child(req); |
| 266 return; |
266 return; |
| 267 } |
267 } |
| 268 if(G_LIKELY(rc>0)) { |
268 if(rc>0) { |
| 269 rc=read(req->fd_out, &addrlen, sizeof(addrlen)); |
269 rc=read(req->fd_out, &addrlen, sizeof(addrlen)); |
| 270 if(G_LIKELY(rc>0)) { |
270 if(rc>0) { |
| 271 addr=g_malloc(addrlen); |
271 addr=g_malloc(addrlen); |
| 272 rc=read(req->fd_out, addr, addrlen); |
272 rc=read(req->fd_out, addr, addrlen); |
| 273 } |
273 } |
| 274 } |
274 } |
| 275 if(G_UNLIKELY(rc==-1)) { |
275 if(rc==-1) { |
| 276 char message[1024]; |
276 char message[1024]; |
| 277 g_snprintf(message, sizeof(message), "Error reading from DNS child: %s",strerror(errno)); |
277 g_snprintf(message, sizeof(message), "Error reading from DNS child: %s",strerror(errno)); |
| 278 debug_printf("%s\n",message); |
278 debug_printf("%s\n",message); |
| 279 close(req->fd_out); |
279 close(req->fd_out); |
| 280 req->callback(NULL, 0, req->data, message); |
280 req->callback(NULL, 0, req->data, message); |
| 281 g_free(req->host); |
281 g_free(req->host); |
| 282 g_free(req); |
282 g_free(req); |
| 283 number_of_dns_children--; |
283 number_of_dns_children--; |
| 284 return; |
284 return; |
| 285 } |
285 } |
| 286 if(G_UNLIKELY(rc==0)) { |
286 if(rc==0) { |
| 287 char message[1024]; |
287 char message[1024]; |
| 288 g_snprintf(message, sizeof(message), "EOF reading from DNS child"); |
288 g_snprintf(message, sizeof(message), "EOF reading from DNS child"); |
| 289 close(req->fd_out); |
289 close(req->fd_out); |
| 290 debug_printf("%s\n",message); |
290 debug_printf("%s\n",message); |
| 291 req->callback(NULL, 0, req->data, message); |
291 req->callback(NULL, 0, req->data, message); |