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