Mercurial > pidgin
changeset 15712:4530f15fe5af
Patch from Graham Booker which ensures that a process forked by dnsserv cleans up afterwards, calling waitpid() to make sure no zombies are left over.
author | Evan Schoenberg <evan.s@dreskin.net> |
---|---|
date | Sun, 25 Feb 2007 23:50:54 +0000 |
parents | 7ac07c5fb1c2 |
children | 557f37189a96 |
files | libpurple/dnssrv.c |
diffstat | 1 files changed, 5 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/dnssrv.c Sun Feb 25 23:02:25 2007 +0000 +++ b/libpurple/dnssrv.c Sun Feb 25 23:50:54 2007 +0000 @@ -67,6 +67,8 @@ char *query; char *error_message; GSList *results; +#else + pid_t pid; #endif }; @@ -188,6 +190,7 @@ GaimSrvResponse *tmp; int i; GaimSrvCallback cb = query_data->cb; + int status; read(source, &size, sizeof(int)); gaim_debug_info("dnssrv","found %d SRV entries\n", size); @@ -197,6 +200,7 @@ } cb(res, size, query_data->extradata); + waitpid(query_data->pid, &status, 0); gaim_srv_cancel(query_data); } @@ -344,6 +348,7 @@ query_data = g_new0(GaimSrvQueryData, 1); query_data->cb = cb; query_data->extradata = extradata; + query_data->pid = pid; query_data->handle = gaim_input_add(out[0], GAIM_INPUT_READ, resolved, query_data); g_free(query);