Mercurial > pidgin.yaz
comparison libpurple/dnssrv.c @ 15800:76bdff454d6f
Minor cleanup.
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Sat, 17 Mar 2007 17:47:40 +0000 |
parents | 4530f15fe5af |
children | 2edbd4fede72 |
comparison
equal
deleted
inserted
replaced
15799:fc7e23aea104 | 15800:76bdff454d6f |
---|---|
108 gchar query[256]; | 108 gchar query[256]; |
109 | 109 |
110 #ifdef HAVE_SIGNAL_H | 110 #ifdef HAVE_SIGNAL_H |
111 gaim_restore_default_signal_handlers(); | 111 gaim_restore_default_signal_handlers(); |
112 #endif | 112 #endif |
113 | 113 |
114 if (read(in, query, 256) <= 0) | 114 if (read(in, query, 256) <= 0) |
115 _exit(0); | 115 _exit(0); |
116 | 116 |
117 size = res_query( query, C_IN, T_SRV, (u_char*)&answer, sizeof( answer)); | 117 size = res_query( query, C_IN, T_SRV, (u_char*)&answer, sizeof( answer)); |
118 | 118 |
220 gaim_debug_error("dnssrv", query_data->error_message); | 220 gaim_debug_error("dnssrv", query_data->error_message); |
221 else { | 221 else { |
222 GaimSrvResponse *srvres_tmp = NULL; | 222 GaimSrvResponse *srvres_tmp = NULL; |
223 GSList *lst = query_data->results; | 223 GSList *lst = query_data->results; |
224 | 224 |
225 size = g_slist_length(query_data->results); | 225 size = g_slist_length(lst); |
226 | 226 |
227 if(query_data->cb) | 227 if(query_data->cb && size > 0) |
228 srvres_tmp = srvres = g_new0(GaimSrvResponse, size); | 228 srvres_tmp = srvres = g_new0(GaimSrvResponse, size); |
229 while (lst) { | 229 while (lst) { |
230 if(query_data->cb) | 230 if(query_data->cb) |
231 memcpy(srvres_tmp++, lst->data, sizeof(GaimSrvResponse)); | 231 memcpy(srvres_tmp++, lst->data, sizeof(GaimSrvResponse)); |
232 g_free(lst->data); | 232 g_free(lst->data); |
233 lst = g_slist_remove(lst, lst->data); | 233 lst = g_slist_remove(lst, lst->data); |
234 } | 234 } |
235 | 235 |
236 query_data->results = NULL; | 236 query_data->results = NULL; |
237 } | 237 |
238 | 238 gaim_debug_info("dnssrv", "found %d SRV entries\n", size); |
239 gaim_debug_info("dnssrv", "found %d SRV entries\n", size); | 239 } |
240 | 240 |
241 if(query_data->cb) | 241 if(query_data->cb) |
242 query_data->cb(srvres, size, query_data->extradata); | 242 query_data->cb(srvres, size, query_data->extradata); |
243 | 243 |
244 query_data->resolver = NULL; | 244 query_data->resolver = NULL; |
365 query_data = g_new0(GaimSrvQueryData, 1); | 365 query_data = g_new0(GaimSrvQueryData, 1); |
366 query_data->cb = cb; | 366 query_data->cb = cb; |
367 query_data->query = query; | 367 query_data->query = query; |
368 query_data->extradata = extradata; | 368 query_data->extradata = extradata; |
369 | 369 |
370 if (!MyDnsQuery_UTF8 || !MyDnsRecordListFree) { | 370 if (!MyDnsQuery_UTF8 || !MyDnsRecordListFree) |
371 query_data->error_message = g_strdup_printf("System missing DNS API (Requires W2K+)\n"); | 371 query_data->error_message = g_strdup("System missing DNS API (Requires W2K+)\n"); |
372 | 372 else { |
373 /* Asynchronously call the callback since stuff may not expect | 373 query_data->resolver = g_thread_create(res_thread, query_data, FALSE, &err); |
374 * the callback to be called before this returns */ | 374 if (query_data->resolver == NULL) { |
375 query_data->error_message = g_strdup_printf("SRV thread create failure: %s\n", (err && err->message) ? err->message : ""); | |
376 g_error_free(err); | |
377 } | |
378 } | |
379 | |
380 /* The query isn't going to happen, so finish the SRV lookup now. | |
381 * Asynchronously call the callback since stuff may not expect | |
382 * the callback to be called before this returns */ | |
383 if (query_data->error_message != NULL) | |
375 query_data->handle = g_idle_add(res_main_thread_cb, query_data); | 384 query_data->handle = g_idle_add(res_main_thread_cb, query_data); |
376 | |
377 return query_data; | |
378 } | |
379 | |
380 query_data->resolver = g_thread_create(res_thread, query_data, FALSE, &err); | |
381 if (query_data->resolver == NULL) | |
382 { | |
383 query_data->error_message = g_strdup_printf("SRV thread create failure: %s\n", err ? err->message : ""); | |
384 g_error_free(err); | |
385 | |
386 /* Asynchronously call the callback since stuff may not expect | |
387 * the callback to be called before this returns */ | |
388 query_data->handle = g_idle_add(res_main_thread_cb, query_data); | |
389 | |
390 return query_data; | |
391 } | |
392 | 385 |
393 return query_data; | 386 return query_data; |
394 #endif | 387 #endif |
395 } | 388 } |
396 | 389 |