From 00219ede9d76656b5f9c12ec48c115b24e76c4ad Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 3 May 2006 19:02:33 +0000 Subject: [PATCH] update git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1331 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- libs/libdingaling/src/libdingaling.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/libs/libdingaling/src/libdingaling.c b/libs/libdingaling/src/libdingaling.c index db0cafc53c..e502381005 100644 --- a/libs/libdingaling/src/libdingaling.c +++ b/libs/libdingaling/src/libdingaling.c @@ -964,7 +964,7 @@ unsigned int ldl_session_candidates(ldl_session_t *session, char *ldl_handle_probe(ldl_handle_t *handle, char *id, char *buf, unsigned int len) { - iks *pres, *msg; + iks *pres, *msg, *disco, *q; char *lid = NULL; struct ldl_buffer buffer; apr_time_t started; @@ -978,13 +978,24 @@ char *ldl_handle_probe(ldl_handle_t *handle, char *id, char *buf, unsigned int l pres = iks_new("presence"); iks_insert_attrib(pres, "type", "probe"); + iks_insert_attrib(pres, "xtype", "ping"); iks_insert_attrib(pres, "to", id); - apr_hash_set(handle->probe_hash, id, APR_HASH_KEY_STRING, &buffer); + disco = iks_new("iq"); + iks_insert_attrib(disco, "type", "get"); + iks_insert_attrib(disco, "from", handle->login); + iks_insert_attrib(disco, "to", id); + iks_insert_attrib(disco, "id", "ping"); + q = iks_insert(disco, "query"); + iks_insert_attrib(q, "xmlns", "http://jabber.org/protocol/disco#info"); - msg = iks_make_s10n (IKS_TYPE_SUBSCRIBE, id, notice); - msg = iks_make_s10n (IKS_TYPE_SUBSCRIBED, id, notice); + + + apr_hash_set(handle->probe_hash, id, APR_HASH_KEY_STRING, &buffer); + msg = iks_make_s10n (IKS_TYPE_SUBSCRIBE, id, notice); + apr_queue_push(handle->queue, msg); + msg = iks_make_s10n (IKS_TYPE_SUBSCRIBED, id, notice); apr_queue_push(handle->queue, msg); apr_queue_push(handle->queue, pres);