equal
deleted
inserted
replaced
107 } |
107 } |
108 |
108 |
109 priv->resolv_query = NULL; |
109 priv->resolv_query = NULL; |
110 } |
110 } |
111 |
111 |
112 static gboolean |
112 static void |
113 asyncns_resolver_done (LmResolver *resolver) |
113 asyncns_resolver_done (LmResolver *resolver) |
114 { |
114 { |
115 LmAsyncnsResolverPriv *priv = GET_PRIV (resolver); |
115 LmAsyncnsResolverPriv *priv = GET_PRIV (resolver); |
116 struct addrinfo *ans; |
116 struct addrinfo *ans; |
117 int err; |
117 int err; |
118 gboolean result = FALSE; |
|
119 |
118 |
120 err = asyncns_getaddrinfo_done (priv->asyncns_ctx, priv->resolv_query, &ans); |
119 err = asyncns_getaddrinfo_done (priv->asyncns_ctx, priv->resolv_query, &ans); |
121 priv->resolv_query = NULL; |
120 priv->resolv_query = NULL; |
122 /* Signal that we are done */ |
121 /* Signal that we are done */ |
|
122 |
|
123 g_object_ref (resolver); |
123 |
124 |
124 if (err) { |
125 if (err) { |
125 _lm_resolver_set_result (resolver, |
126 _lm_resolver_set_result (resolver, |
126 LM_RESOLVER_RESULT_FAILED, |
127 LM_RESOLVER_RESULT_FAILED, |
127 NULL); |
128 NULL); |
131 ans); |
132 ans); |
132 } |
133 } |
133 |
134 |
134 asyncns_resolver_cleanup (resolver); |
135 asyncns_resolver_cleanup (resolver); |
135 |
136 |
136 return result; |
137 g_object_unref (resolver); |
137 } |
138 } |
138 |
139 |
139 typedef gboolean (* LmAsyncnsResolverCallback) (LmResolver *resolver); |
140 typedef gboolean (* LmAsyncnsResolverCallback) (LmResolver *resolver); |
140 |
141 |
141 static gboolean |
142 static gboolean |
221 asyncns_setuserdata (priv->asyncns_ctx, |
222 asyncns_setuserdata (priv->asyncns_ctx, |
222 priv->resolv_query, |
223 priv->resolv_query, |
223 (gpointer) asyncns_resolver_done); |
224 (gpointer) asyncns_resolver_done); |
224 } |
225 } |
225 |
226 |
226 static gboolean |
227 static void |
227 asyncns_resolver_srv_done (LmResolver *resolver) |
228 asyncns_resolver_srv_done (LmResolver *resolver) |
228 { |
229 { |
229 LmAsyncnsResolverPriv *priv = GET_PRIV (resolver); |
230 LmAsyncnsResolverPriv *priv = GET_PRIV (resolver); |
230 unsigned char *srv_ans; |
231 unsigned char *srv_ans; |
231 int srv_len; |
232 int srv_len; |
267 asyncns_resolver_cleanup (resolver); |
268 asyncns_resolver_cleanup (resolver); |
268 |
269 |
269 if (result == TRUE) { |
270 if (result == TRUE) { |
270 asyncns_resolver_lookup_host (resolver); |
271 asyncns_resolver_lookup_host (resolver); |
271 } |
272 } |
272 |
|
273 return FALSE; |
|
274 } |
273 } |
275 |
274 |
276 static void |
275 static void |
277 asyncns_resolver_lookup_service (LmResolver *resolver) |
276 asyncns_resolver_lookup_service (LmResolver *resolver) |
278 { |
277 { |