Revision: 201017 RCL_3 PDK_3.0.i
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 17:12:15 +0300
branchRCL_3
changeset 11 3404599e4dda
parent 9 46cc8e302e43
Revision: 201017 Kit: 201017
group/bld.inf
isolationserver/group/bld.inf
isolationserver/install/isolationserver.pkg
isolationserver/isoserver/data/isoServer_reg.rss
isolationserver/isoserver/group/bld.inf
isolationserver/isoserver/group/isoserver.mmp
isolationserver/isoserver/inc/isoavtar.h
isolationserver/isoserver/inc/isoconnectionmanager.h
isolationserver/isoserver/inc/isofetchcontactlist.h
isolationserver/isoserver/inc/isogetsearchkeys.h
isolationserver/isoserver/inc/isoim.h
isolationserver/isoserver/inc/isomodifycontactlist.h
isolationserver/isoserver/inc/isopresence.h
isolationserver/isoserver/inc/isosearch.h
isolationserver/isoserver/inc/isoservermain.h
isolationserver/isoserver/inc/isoutils.h
isolationserver/isoserver/src/isoavtar.c
isolationserver/isoserver/src/isoconnectionmanager.c
isolationserver/isoserver/src/isofetchcontactlist.c
isolationserver/isoserver/src/isogetsearchkeys.c
isolationserver/isoserver/src/isoim.c
isolationserver/isoserver/src/isomodifycontactlist.c
isolationserver/isoserver/src/isopresence.c
isolationserver/isoserver/src/isosearch.c
isolationserver/isoserver/src/isoservermain.c
isolationserver/isoserver/src/isoutils.c
isolationserver/messagequeue/bwins/opencmessagequeuelibraryu.def
isolationserver/messagequeue/eabi/opencmessagequeuelibraryu.def
isolationserver/messagequeue/group/bld.inf
isolationserver/messagequeue/group/messagequeuelibrary.mmp
isolationserver/messagequeue/src/msgqcheck.c
isolationserver/messagequeue/src/msgqclean.c
isolationserver/messagequeue/src/msgqcreate-del.c
isolationserver/messagequeue/src/msgqcreate.c
isolationserver/messagequeue/src/msgqdelete.c
isolationserver/messagequeue/src/msgqinternals.cpp
isolationserver/messagequeue/src/msgqmaxcheck.c
isolationserver/messagequeue/src/msgqrecv.c
isolationserver/messagequeue/src/msgqsend.c
isolationserver/rom/isoserver.iby
isolationserver/tsrc/bwins/isolationserveru.def
isolationserver/tsrc/conf/isolationserver.cfg
isolationserver/tsrc/conf/isolationserver_manual.cfg
isolationserver/tsrc/data/corrupted.jpg
isolationserver/tsrc/data/drmprotected.jpg
isolationserver/tsrc/data/large.gif
isolationserver/tsrc/data/large.jpg
isolationserver/tsrc/data/large.png
isolationserver/tsrc/data/test.gif
isolationserver/tsrc/data/test.jpg
isolationserver/tsrc/data/test.png
isolationserver/tsrc/eabi/isolationserveru.def
isolationserver/tsrc/group/bld.inf
isolationserver/tsrc/inc/isolationserver.h
isolationserver/tsrc/init/TestFramework.ini
isolationserver/tsrc/src/isolationserver.cpp
isolationserver/tsrc/src/isolationserverBlocks.cpp
layers.sysdef.xml
libtelepathy/bwins/libtelepathyu.def
libtelepathy/eabi/libtelepathyu.def
libtelepathy/group/bld.inf
libtelepathy/group/libtelepathy.mmp
libtelepathy/inc/tp-ch-gen.h
libtelepathy/inc/tp-chan-gen.h
libtelepathy/inc/tp-chan-iface-dtmf-gen.h
libtelepathy/inc/tp-chan-iface-group-gen.h
libtelepathy/inc/tp-chan-iface-hold-gen.h
libtelepathy/inc/tp-chan-iface-ice-signalling-gen.h
libtelepathy/inc/tp-chan-iface-password-gen.h
libtelepathy/inc/tp-chan-iface-transfer-gen.h
libtelepathy/inc/tp-chan-ifaces-signal-setters.h
libtelepathy/inc/tp-chan-signals-marshal.h
libtelepathy/inc/tp-chan-type-contact-list-gen.h
libtelepathy/inc/tp-chan-type-room-list-gen.h
libtelepathy/inc/tp-chan-type-search-gen.h
libtelepathy/inc/tp-chan-type-streamed-media-gen.h
libtelepathy/inc/tp-chan-type-text-gen.h
libtelepathy/inc/tp-chan.h
libtelepathy/inc/tp-conn-gen.h
libtelepathy/inc/tp-conn-iface-aliasing-gen.h
libtelepathy/inc/tp-conn-iface-avatars-gen.h
libtelepathy/inc/tp-conn-iface-capabilities-gen.h
libtelepathy/inc/tp-conn-iface-contact-info-gen.h
libtelepathy/inc/tp-conn-iface-forwarding-gen.h
libtelepathy/inc/tp-conn-iface-presence-gen.h
libtelepathy/inc/tp-conn-iface-privacy-gen.h
libtelepathy/inc/tp-conn-iface-renaming-gen.h
libtelepathy/inc/tp-conn-ifaces-signal-setters.h
libtelepathy/inc/tp-conn-signals-marshal.h
libtelepathy/inc/tp-conn.h
libtelepathy/inc/tp-connmgr-gen.h
libtelepathy/inc/tp-connmgr-signals-marshal.h
libtelepathy/inc/tp-connmgr.h
libtelepathy/inc/tp-constants.h
libtelepathy/inc/tp-helpers.h
libtelepathy/inc/tp-ice-session-handler-gen.h
libtelepathy/inc/tp-ice-stream-handler-gen.h
libtelepathy/inc/tp-ifaces-signals-marshal.h
libtelepathy/inc/tp-interfaces.h
libtelepathy/inc/tp-props-iface-gen.h
libtelepathy/inc/tp-props-iface.h
libtelepathy/rom/libtelepathy.iby
libtelepathy/src/Makefile.am
libtelepathy/src/Makefile.in
libtelepathy/src/libtelepathy_wsd.cpp
libtelepathy/src/libtelepathy_wsd_macros.h
libtelepathy/src/libtelepathy_wsd_solution.h
libtelepathy/src/tp-chan-ifaces-signal-setters.c
libtelepathy/src/tp-chan-signals-marshal.c
libtelepathy/src/tp-chan.c
libtelepathy/src/tp-conn-ifaces-signal-setters.c
libtelepathy/src/tp-conn-signals-marshal.c
libtelepathy/src/tp-conn.c
libtelepathy/src/tp-connmgr-signals-marshal.c
libtelepathy/src/tp-connmgr.c
libtelepathy/src/tp-helpers.c
libtelepathy/src/tp-ifaces-signals-marshal.c
libtelepathy/src/tp-props-iface.c
libtelepathy/tsrc/bmarm/telepathygabbletest.def
libtelepathy/tsrc/bmarm/telepathygabbletestu.def
libtelepathy/tsrc/bwins/telepathygabbletest.def
libtelepathy/tsrc/bwins/telepathygabbletestu.def
libtelepathy/tsrc/conf/telepathygabbletest.cfg
libtelepathy/tsrc/conf/telepathygabbletest_mannual.cfg
libtelepathy/tsrc/eabi/telepathygabbletest.def
libtelepathy/tsrc/eabi/telepathygabbletestu.def
libtelepathy/tsrc/group/bld.inf
libtelepathy/tsrc/group/telepathygabbletest.mmp
libtelepathy/tsrc/group/telepathygabbletest.pkg
libtelepathy/tsrc/inc/telepathy-presence.h
libtelepathy/tsrc/inc/telepathygabbleadddeletecontact.h
libtelepathy/tsrc/inc/telepathygabblefetchcontacts.h
libtelepathy/tsrc/inc/telepathygabblelogintest.h
libtelepathy/tsrc/inc/telepathygabblepresencetest.h
libtelepathy/tsrc/inc/telepathygabblesearch.h
libtelepathy/tsrc/inc/telepathygabblesendmessage.h
libtelepathy/tsrc/inc/telepathygabbletest.h
libtelepathy/tsrc/inc/telepathygabbletestdata.h
libtelepathy/tsrc/inc/telepathygabbleutils.h
libtelepathy/tsrc/init/TestFramework.ini
libtelepathy/tsrc/src/telepathy-presence.c
libtelepathy/tsrc/src/telepathygabbleadddeletecontact.cpp
libtelepathy/tsrc/src/telepathygabblefetchcontacts.cpp
libtelepathy/tsrc/src/telepathygabblelogintest.cpp
libtelepathy/tsrc/src/telepathygabblepresencetest.cpp
libtelepathy/tsrc/src/telepathygabblesearch.cpp
libtelepathy/tsrc/src/telepathygabblesendmessage.cpp
libtelepathy/tsrc/src/telepathygabbletest.cpp
libtelepathy/tsrc/src/telepathygabbletestblocks.cpp
libtelepathy/tsrc/src/telepathygabbletestdata.cpp
libtelepathy/tsrc/src/telepathygabbleutils.cpp
loudmouth/bwins/loudmouthu.def
loudmouth/bwinscw/loudmouthu.def
loudmouth/eabi/loudmouthu.def
loudmouth/group/bld.inf
loudmouth/group/loudmouth.mmp
loudmouth/inc/Makefile.in
loudmouth/inc/asyncns.h
loudmouth/inc/base64.h
loudmouth/inc/config.h
loudmouth/inc/gdebug.h
loudmouth/inc/libloudmouth_wsd_macros.h
loudmouth/inc/libloudmouth_wsd_solution.h
loudmouth/inc/lm-debug.h
loudmouth/inc/lm-internals.h
loudmouth/inc/lm-message-queue.h
loudmouth/inc/lm-misc.h
loudmouth/inc/lm-parser.h
loudmouth/inc/lm-sasl.h
loudmouth/inc/lm-sha.h
loudmouth/inc/lm-sock.h
loudmouth/inc/lm-socket.h
loudmouth/inc/lm-ssl-base.h
loudmouth/inc/lm-ssl-internals.h
loudmouth/inc/lm_enums.h
loudmouth/inc/loudmouth/lm-connection.h
loudmouth/inc/loudmouth/lm-error.h
loudmouth/inc/loudmouth/lm-message-handler.h
loudmouth/inc/loudmouth/lm-message-node.h
loudmouth/inc/loudmouth/lm-message.h
loudmouth/inc/loudmouth/lm-proxy.h
loudmouth/inc/loudmouth/lm-ssl.h
loudmouth/inc/loudmouth/lm-utils.h
loudmouth/inc/loudmouth/loudmouth.h
loudmouth/inc/md5.h
loudmouth/install/loudmouth.bat
loudmouth/install/loudmouth.pkg
loudmouth/rom/loudmouth.iby
loudmouth/src/asyncns.c
loudmouth/src/base64.c
loudmouth/src/libloudmouth_wsd.cpp
loudmouth/src/lm-connection.c
loudmouth/src/lm-debug.c
loudmouth/src/lm-error.c
loudmouth/src/lm-message-handler.c
loudmouth/src/lm-message-node.c
loudmouth/src/lm-message-queue.c
loudmouth/src/lm-message.c
loudmouth/src/lm-misc.c
loudmouth/src/lm-parser.c
loudmouth/src/lm-proxy.c
loudmouth/src/lm-sasl.c
loudmouth/src/lm-sha.c
loudmouth/src/lm-sock.c
loudmouth/src/lm-socket.c
loudmouth/src/lm-ssl-base.c
loudmouth/src/lm-ssl-generic.c
loudmouth/src/lm-ssl-gnutls.c
loudmouth/src/lm-ssl-openssl.c
loudmouth/src/lm-utils.c
loudmouth/src/md5.c
loudmouth/tsrc/bmarm/tstlmu.def
loudmouth/tsrc/bwins/tstlmu.def
loudmouth/tsrc/conf/tstlm.cfg
loudmouth/tsrc/conf/tstlm1.cfg
loudmouth/tsrc/conf/tstlm_NFT.cfg
loudmouth/tsrc/conf/tstlm_gizmo.cfg
loudmouth/tsrc/conf/tstlm_gizmo1.cfg
loudmouth/tsrc/conf/tstlm_gtalk.cfg
loudmouth/tsrc/conf/tstlm_gtalk1.cfg
loudmouth/tsrc/eabi/tstlmu.def
loudmouth/tsrc/group/bld.inf
loudmouth/tsrc/group/tstlm.mmp
loudmouth/tsrc/group/tstlm.pkg
loudmouth/tsrc/inc/tstlm.h
loudmouth/tsrc/init/TestFramework.ini
loudmouth/tsrc/src/tstlm.cpp
loudmouth/tsrc/src/tstlmBlocks.cpp
opensrv_plat/group/bld.inf
opensrv_plat/messagequeue_api/group/bld.inf
opensrv_plat/messagequeue_api/inc/msg_enums.h
opensrv_plat/messagequeue_api/inc/msgliterals.h
opensrv_plat/messagequeue_api/inc/msgqinternal.h
opensrv_plat/messagequeue_api/inc/msgqlib.h
opensrv_plat/messagequeue_api/tsrc/bmarm/messagequeue_apiu.def
opensrv_plat/messagequeue_api/tsrc/bwins/messagequeue_apiu.def
opensrv_plat/messagequeue_api/tsrc/conf/messagequeue_api.cfg
opensrv_plat/messagequeue_api/tsrc/eabi/messagequeue_apiu.def
opensrv_plat/messagequeue_api/tsrc/group/bld.inf
opensrv_plat/messagequeue_api/tsrc/group/messagequeue_api.mmp
opensrv_plat/messagequeue_api/tsrc/group/messagequeue_api.pkg
opensrv_plat/messagequeue_api/tsrc/group/messagequeue_api_DoxyFile.txt
opensrv_plat/messagequeue_api/tsrc/group/messagequeue_api_nrm.mmp
opensrv_plat/messagequeue_api/tsrc/inc/messagequeue_api.h
opensrv_plat/messagequeue_api/tsrc/init/TestFramework.ini
opensrv_plat/messagequeue_api/tsrc/src/messagequeue_api.cpp
opensrv_plat/messagequeue_api/tsrc/src/messagequeue_apiBlocks.cpp
sysdef_1_4_0.dtd
telepathygabble/bwins/libgabble-convenienceU.DEF
telepathygabble/data/jabber.service
telepathygabble/data/jabber.service_hw
telepathygabble/data/org.freedesktop.Telepathy.ConnectionManager.gabble.service
telepathygabble/data/org.freedesktop.Telepathy.ConnectionManager.gabble.service.in
telepathygabble/eabi/libgabble-convenienceu.def
telepathygabble/group/bld.inf
telepathygabble/group/libgabble-convenience.mmp
telepathygabble/group/telepathy-gabble.mmp
telepathygabble/inc/ansi.h
telepathygabble/inc/base64.h
telepathygabble/inc/capabilities.h
telepathygabble/inc/config.h
telepathygabble/inc/debug.h
telepathygabble/inc/disco.h
telepathygabble/inc/gabble-connection-glue.h
telepathygabble/inc/gabble-connection-manager-glue.h
telepathygabble/inc/gabble-connection-manager-signals-marshal.h
telepathygabble/inc/gabble-connection-manager.h
telepathygabble/inc/gabble-connection-signals-marshal.h
telepathygabble/inc/gabble-connection.h
telepathygabble/inc/gabble-error.h
telepathygabble/inc/gabble-im-channel-glue.h
telepathygabble/inc/gabble-im-channel-signals-marshal.h
telepathygabble/inc/gabble-im-channel.h
telepathygabble/inc/gabble-media-channel-glue.h
telepathygabble/inc/gabble-media-channel-signals-marshal.h
telepathygabble/inc/gabble-media-channel.h
telepathygabble/inc/gabble-media-session-enumtypes.h
telepathygabble/inc/gabble-media-session-glue.h
telepathygabble/inc/gabble-media-session-signals-marshal.h
telepathygabble/inc/gabble-media-session.h
telepathygabble/inc/gabble-media-stream-glue.h
telepathygabble/inc/gabble-media-stream-signals-marshal.h
telepathygabble/inc/gabble-media-stream.h
telepathygabble/inc/gabble-muc-channel-glue.h
telepathygabble/inc/gabble-muc-channel-signals-marshal.h
telepathygabble/inc/gabble-muc-channel.h
telepathygabble/inc/gabble-presence-cache-signals-marshal.h
telepathygabble/inc/gabble-presence-cache.h
telepathygabble/inc/gabble-presence.h
telepathygabble/inc/gabble-register-signals-marshal.h
telepathygabble/inc/gabble-register.h
telepathygabble/inc/gabble-roomlist-channel-glue.h
telepathygabble/inc/gabble-roomlist-channel-signals-marshal.h
telepathygabble/inc/gabble-roomlist-channel.h
telepathygabble/inc/gabble-roster-channel-glue.h
telepathygabble/inc/gabble-roster-channel-signals-marshal.h
telepathygabble/inc/gabble-roster-channel.h
telepathygabble/inc/gabble-search-channel-glue.h
telepathygabble/inc/gabble-search-channel.h
telepathygabble/inc/gabble-types.h
telepathygabble/inc/gabble.h
telepathygabble/inc/gabble_enums.h
telepathygabble/inc/gheap.h
telepathygabble/inc/gintset.h
telepathygabble/inc/group-mixin-signals-marshal.h
telepathygabble/inc/group-mixin.h
telepathygabble/inc/handle-set.h
telepathygabble/inc/handles.h
telepathygabble/inc/im-factory.h
telepathygabble/inc/jingle-info.h
telepathygabble/inc/libgabble_wsd_macros.h
telepathygabble/inc/libgabble_wsd_solution.h
telepathygabble/inc/media-factory.h
telepathygabble/inc/muc-factory.h
telepathygabble/inc/namespaces.h
telepathygabble/inc/properties-mixin-signals-marshal.h
telepathygabble/inc/properties-mixin.h
telepathygabble/inc/roster.h
telepathygabble/inc/search-factory.h
telepathygabble/inc/search-keys-info.h
telepathygabble/inc/search-mixin-signals-marshal.h
telepathygabble/inc/search-mixin.h
telepathygabble/inc/sha1.h
telepathygabble/inc/telepathy-constants.h
telepathygabble/inc/telepathy-errors-enumtypes.h
telepathygabble/inc/telepathy-errors.h
telepathygabble/inc/telepathy-helpers.h
telepathygabble/inc/telepathy-interfaces.h
telepathygabble/inc/text-mixin-signals-marshal.h
telepathygabble/inc/text-mixin.h
telepathygabble/inc/tp-channel-factory-iface-signals-marshal.h
telepathygabble/inc/tp-channel-factory-iface.h
telepathygabble/inc/tp-channel-iface.h
telepathygabble/inc/util.h
telepathygabble/inc/vcard-manager.h
telepathygabble/rom/telepathygabble.iby
telepathygabble/src/Makefile.am
telepathygabble/src/Makefile.in
telepathygabble/src/base64.c
telepathygabble/src/capabilities.c
telepathygabble/src/debug.c
telepathygabble/src/disco.c
telepathygabble/src/exegabble.c
telepathygabble/src/gabble-connection-manager-signals-marshal.c
telepathygabble/src/gabble-connection-manager.c
telepathygabble/src/gabble-connection-signals-marshal.c
telepathygabble/src/gabble-connection.c
telepathygabble/src/gabble-error.c
telepathygabble/src/gabble-im-channel-signals-marshal.c
telepathygabble/src/gabble-im-channel.c
telepathygabble/src/gabble-media-channel-signals-marshal.c
telepathygabble/src/gabble-media-channel.c
telepathygabble/src/gabble-media-session-enumtypes.c
telepathygabble/src/gabble-media-session-signals-marshal.c
telepathygabble/src/gabble-media-session.c
telepathygabble/src/gabble-media-stream-signals-marshal.c
telepathygabble/src/gabble-media-stream.c
telepathygabble/src/gabble-muc-channel-signals-marshal.c
telepathygabble/src/gabble-muc-channel.c
telepathygabble/src/gabble-presence-cache-signals-marshal.c
telepathygabble/src/gabble-presence-cache.c
telepathygabble/src/gabble-presence.c
telepathygabble/src/gabble-register-signals-marshal.c
telepathygabble/src/gabble-register.c
telepathygabble/src/gabble-roomlist-channel-signals-marshal.c
telepathygabble/src/gabble-roomlist-channel.c
telepathygabble/src/gabble-roster-channel-signals-marshal.c
telepathygabble/src/gabble-roster-channel.c
telepathygabble/src/gabble-search-channel.c
telepathygabble/src/gabble.c
telepathygabble/src/gheap.c
telepathygabble/src/gintset.c
telepathygabble/src/group-mixin-signals-marshal.c
telepathygabble/src/group-mixin.c
telepathygabble/src/handle-set.c
telepathygabble/src/handles.c
telepathygabble/src/im-factory.c
telepathygabble/src/jingle-info.c
telepathygabble/src/libgabble_wsd.cpp
telepathygabble/src/media-factory.c
telepathygabble/src/muc-factory.c
telepathygabble/src/properties-mixin-signals-marshal.c
telepathygabble/src/properties-mixin.c
telepathygabble/src/roster.c
telepathygabble/src/search-factory.c
telepathygabble/src/search-keys-info.c
telepathygabble/src/search-mixin-signals-marshal.c
telepathygabble/src/search-mixin.c
telepathygabble/src/sha1.c
telepathygabble/src/telepathy-errors-enumtypes.c
telepathygabble/src/telepathy-errors.c
telepathygabble/src/telepathy-helpers.c
telepathygabble/src/text-mixin-signals-marshal.c
telepathygabble/src/text-mixin.c
telepathygabble/src/tp-channel-factory-iface-signals-marshal.c
telepathygabble/src/tp-channel-factory-iface.c
telepathygabble/src/tp-channel-iface.c
telepathygabble/src/util.c
telepathygabble/src/vcard-manager.c
telepathygabble/src/write-mgr-file.c
tsrc/group/bld.inf
--- a/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  bld.inf
-*
-*/
-
-// Project configuration file for dbus
-
-// Project platforms
-PRJ_PLATFORMS
-WINSCW ARMV5
-
-
-// Project exports
-PRJ_EXPORTS 
-
-// MMP files for project components
-PRJ_MMPFILES
-#include "../opensrv_plat/group/bld.inf"
-#include "../loudmouth/group/bld.inf"
-#include "../libtelepathy/group/bld.inf"
-#include "../telepathygabble/group/bld.inf"
-#include "../isolationserver/group/bld.inf"
-
-
-PRJ_TESTMMPFILES
-
--- a/isolationserver/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* ============================================================================
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-WINSCW ARMV5
-
-
-PRJ_EXPORTS
-../rom/isoserver.iby						 CORE_MW_LAYER_IBY_EXPORT_PATH(isoserver.iby)
-
-PRJ_MMPFILES
-
-
-#include  "../messagequeue/group/bld.inf"
-#include  "../isoserver/group/bld.inf"
-
-
-//  End of File
--- a/isolationserver/install/isolationserver.pkg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-;
-; ============================================================================
-;  Name        : isoserver.iby
-;  Part of     : isolation server.
-;  Version     : %version: %
-;
-;  Copyright © 2007-2008 Nokia.  All rights reserved.
-;  All rights reserved.
-;  Redistribution and use in source and binary forms, with or without modification, 
-;  are permitted provided that the following conditions are met:
-;  Redistributions of source code must retain the above copyright notice, this list 
-;  of conditions and the following disclaimer.Redistributions in binary form must 
-;  reproduce the above copyright notice, this list of conditions and the following 
-;  disclaimer in the documentation and/or other materials provided with the distribution.
-;  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-;  to endorse or promote products derived from this software without specific prior written 
-;  permission.
-;  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-;  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-;  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-;  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-;  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-;  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-;  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-;  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-;  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-; ============================================================================
-; Template version: 1.0
-;
-
-
-
-;Language - standard language definitions
-&EN
-
-; standard SIS file header
-#{"MessageQueueClient"},(0xA0001320),1,0,0
-
-;Localised Vendor name
-%{"Vendor-EN"}
-
-;Unique Vendor name
-:"Vendor"
-
-;Supports Series 60 v 3.0
-[0x101F7961], 0, 0, 0, {"S60ProductID"}
-
-;Files to install
-"\epoc32\release\armv5\urel\messagequeueclient.exe" -"!:\sys\bin\messagequeueclient.exe"
-"\epoc32\release\armv5\urel\messagequeuelibrary.dll" -"!:\sys\bin\messagequeuelibrary.dll"
-
-"\epoc32\data\z\private\10003a3f\import\apps\opencmessagequeueclient_reg.rsc" -"!:\private\10003a3f\import\apps\opencmessagequeueclient_reg.rsc"
-
-;required for application to be covered by backup/restore facility
-;"backup_registration.xml"			-"c:\private\0xA0001320\backup_registration.xml"
-
-"\epoc32\release\armv5\urel\isoserver.exe" - "!:\sys\bin\isoserver.exe"
-
-"\epoc32\release\armv5\urel\opencstringutilitieslibex.dll"               - "!:\sys\bin\opencstringutilitieslibex.dll"
-
--- a/isolationserver/isoserver/data/isoServer_reg.rss	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoServer_reg.rss
-*  Part of     : isolation server.
-*  Version     : %version: 2 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-#include <appinfo.rh>
-
-UID2 KUidAppRegistrationResourceFile
-UID3  0xA0001320
-
-RESOURCE APP_REGISTRATION_INFO
-  {
-  app_file="OpenCMessageQueueClient";
-
-  embeddability=KAppNotEmbeddable;
-  newfile=KAppDoesNotSupportNewFile;
-  }
-
--- a/isolationserver/isoserver/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* ============================================================================
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-
-PRJ_PLATFORMS
-WINSCW ARMV5
-
-#include <platform_paths.hrh>
-
-PRJ_EXPORTS
-
-PRJ_MMPFILES
-isoserver.mmp
-
-//  End of File
--- a/isolationserver/isoserver/group/isoserver.mmp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* ============================================================================
-*
-*  Copyright © 2007-2008 Nokia and/or its subsidiary/subsidiaries.  All rights reserved.
-* 
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-#include<platform_paths.hrh>
-TARGET          isoserver.exe
-TARGETTYPE      EXE
-UID             0x100039CE 0x2001241A //0x100039CE
-
-CAPABILITY      All -Tcb
-
-VENDORID     	VID_DEFAULT
-EPOCSTACKSIZE 	 0x13880 // 0x11170 0x15F90
-
-VERSION      10.0
-
-SOURCEPATH      ../src
-SOURCE          isoservermain.c
-SOURCE 		    isoconnectionmanager.c
-SOURCE          isofetchcontactlist.c
-SOURCE          isoim.c
-SOURCE          isoutils.c
-SOURCE          isomodifycontactlist.c
-SOURCE          isopresence.c
-SOURCE          isosearch.c
-SOURCE          isogetsearchkeys.c
-SOURCE          isoavtar.c
-MACRO SYMBIAN
-USERINCLUDE     ../inc 
- 
-EPOCALLOWDLLDATA
-
-USERINCLUDE     ../../../libtelepathy/inc
-MW_LAYER_SYSTEMINCLUDE
-OS_LAYER_LIBC_SYSTEMINCLUDE
-OS_LAYER_GLIB_SYSTEMINCLUDE
-OS_LAYER_SSL_SYSTEMINCLUDE
-OS_LAYER_STDCPP_SYSTEMINCLUDE
-OS_LAYER_DBUS_SYSTEMINCLUDE
-
-STATICLIBRARY   	libcrt0.lib
-LIBRARY       euser.lib
-LIBRARY       libc.lib
-LIBRARY       libglib.lib	
-LIBRARY       libgthread.lib
-LIBRARY       libdbus-glib.lib
-LIBRARY		  libtelepathy.lib
-LIBRARY		  libgobject.lib
-LIBRARY       libdbus.lib
-LIBRARY       libpthread.lib
-LIBRARY       opencmessagequeuelibrary.lib
-
-LANG            SC
-
-// End of File
--- a/isolationserver/isoserver/inc/isoavtar.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoconnectionmanager.h
-*  Part of     : isolation server.
-*  Version     : %version: 5 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-
-/*!
-* \def To avoid multiple inclusion of header
-*/
-
-#ifndef __ISOAVTAR_H__
-#define __ISOAVTAR_H__
-
-#include <glib.h>
-#include <gtypes.h>
-
-#include "isoservermain.h"
-#include "msg_enums.h"
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-props-iface.h"
-#include "tp-conn-iface-avatars-gen.h"
-#include "tp-interfaces.h"
-G_BEGIN_DECLS
-
-/*! \file
-*	This file has interfaces for avtar implimentation. 
-*	client anywhere in the documentation refers to anyone
-*	using the isoserver
-*/
-
-
-/*!	\brief callback for updating own avtar. This function 
- *	sends response to client
- *
- * 	\param proxy : unused
- *  \param avatar_sha1: token string 
- * 	\param error : error if any
- * 	\param message : message header  
- * 	\return : void
- */
-void  update_avtar_cb(DBusGProxy *proxy, char* avatar_sha1,
-			GError* error, 
-			gpointer message);
-
-
-/*!	\brief sends avtar of the client to n/w server thru' gabble
- * 	calls tp_conn_iface_avatars_set_avatar_async to set avatar
- *  
- *  \param avtarcontent : avatar image content
- *  \param mimetype : mime type
- * 	\param msghdr request header that will be passed back to client
- *
- * 	\return : error code on failure, 0 on success
- */
-gint send_avtar( GArray* avtarcontent , char * mimetype , message_hdr_req *msg_hdr );
-
-/*!	\brief callback for clearing own avtar. This function 
- *	sends response to client
- *
- * 	\param proxy : unused
- * 	\param error : error if any
- * 	\param userdata : message header  
- * 	\return : void
- */
-void clear_avtar_cb( DBusGProxy *proxy, GError* error, gpointer userdata );
-
-/*! \brief clears the self avtar 
- *
- *  \param msghdr request header that will be passed back to client
- *
- *  \return : error code on failure, 0 on success
- */
-gint clear_avatar( message_hdr_req *msg_hdr );
-
-/*! \brief clears the self avtar 
- *  \param rmsg : message buffer to be parsed
- *  \param msg_struct : request header 
- *  \param result : message buffer length
- *  \param avtarcontent : pointer to the avatar image data
- * 
- *  \return : error code on failure, 0 on success
- */
-gint update_own_avatar(char* rmsg,message_hdr_resp* msg_struct,gint result, GArray** avtarcontent);
-
-G_END_DECLS
-
-
-#endif //__ISOAVTAR_H__
--- a/isolationserver/isoserver/inc/isoconnectionmanager.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoconnectionmanager.h
-*  Part of     : isolation server.
-*  Version     : %version: 9 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-/*!
-* \def To avoid multiple inclusion of header
-*/
-
-#ifndef __ICONNECTIONMANAGER_H__
-#define __ICONNECTIONMANAGER_H__
-
-#include <glib.h>
-#include <gtypes.h>
-#include "isoservermain.h"
-# include "msg_enums.h"
-
-#ifdef __WINSCW__ 
-/*!	\remark	Should LOGIN_ARG_COUNT this be hardcoded ?
-*/
-#define LOGIN_ARG_COUNT 12
-#else
-#define LOGIN_ARG_COUNT 10
-#endif
-
-/*!	\file
-*	Connection related interfaces.
-*	client anywhere in the documentation refers to anyone
-*	using the isoserver
-*/
-
-/*! \typedef struct login_struct typedefed to login_struct 
-*/
-typedef struct login_struct login_struct;
-
-/*!	\struct login_struct isoconnectionmanager.h
- *	\brief Buffer recieved from client for login request is parsed and the
- *	arguments are put into this structure
- *	\param hdr_req header request
- *	\param strs array of strings( which are arguments for login ) 
- */
-struct login_struct
-	{
-	message_hdr_req* hdr_req;
-	char *strs[LOGIN_ARG_COUNT];
-	};
-
-/*!	\brief This does things after login is successful. Now it sets the isConnected
- * 	variable to ETrue
- */
-void action_logedin( ) ;
-
-/*!	\brief This function is registered in action_login for statuschanged signal.
- * 	This function is called by telepathygabble when the status of the user changes
- *	Once user is connected this function registers for NewChannel signal with telepathygabble 
- *	client is also informed of the status change..
- *
- *	\param proxy
- * 	\param status status of the user ( connected/connecting/disconnected )
- * 	\param reason reason for status change(server disconnected/ user requested etc.,)
- * 	\param user_data  message header request
- *
- * 	\return : Boolean True on success, false on failure
- */
-
-static gboolean status_changed_cb(DBusGProxy *proxy,
-				  guint status, guint reason,
-				  gpointer user_data) ;
-				  
-/*!	\brief new_channel_handler is registered as a callback for any new 
- *	channels craetion request, in function status_changed_cb after status is changed 
- *	to log in. new_channel_handler creates channel and also registers for the signals
- *	MembersChanged for contact related channels and Recieved and SendError for IM
- *	related channels.
- *
- * 	\param proxy unused
- * 	\param object_path object path of the channel
- * 	\param channel_type used to get a new channel
- * 	\param handle_type used to get a new channel, channel handle type
- * 	\param handle used to get a new channel, channel handle 
- * 	\param suppress_handler unused
- * 	\param user_data unused
- *
- * 	\return void
- */
-
-static void new_channel_handler( DBusGProxy *proxy, const char *object_path,
-				const char *channel_type, guint handle_type,
-				guint handle, gboolean suppress_handler,
-				gpointer user_data ) ;
-				
-				
-/*!	\brief Is called after logout.. Any cleanup operations to
- *	 be performed here. Setting conn_stat to disconnected, cleaning up 
- *	of resources is done
- */
-void action_logedout() ;
-
-/*! \brief Callback for the logout 
- * 
- * 	\param proxy : unused
- * 	\param error : unused
- * 	\param userdata : unused
- * 	\return : void
- */
-void logout_cb( DBusGProxy *proxy, GError *error, gpointer userdata );
-
-/*!	\brief requests for closing of session. Also closes the search channel.
- *	\remark should not close the search channel
- * 
- * 	Request for log - out
- * 	\param pc - message  which has the request header
- * 	\return : MEM_ALLOCATION_ERROR or 0
- */
-int action_logout( char* pc ) ;
-
-/*!	\brief validates params, gets a dbus, creates a connection manager,
- *	and connection. Registers for the statuschange
- * 
- * 	\param ls_hdr login struct
- * 	\return Errors if invalid param or getting dbus, conn mgr or conn fails else 0
- */
-gint action_login( login_struct* ls_hdr ) ;
-
-/*!	\brief parses the message buffer and validates the parameters. The values are written
- *	to ls_hdr
- *
- *	\param aMsgBuffer - buf to be parsed
- * 	\param ls_hdr - login_struct struct to which values are written 
- * 	\param msg_len - no. of bytes in the message buffer aMsgBuffer
- *
- */
-gint parse_for_login( gchar* aMsgBuffer, login_struct** ls_hdr, int msg_len ) ;
-
-/*!	\brief Calls parse_for_login to parse and validate the arguments
- *	And then calls action_login for to do actual login
- *
- * 	\param aMsgBuf message buffer
- * 	\param msg_len - len of the message
- */
-gint action_parse_login( char* aMsgBuf, int msg_len ) ;
-
-
-
-#endif //__ICONNECTIONMANAGER_H__	
-					    
\ No newline at end of file
--- a/isolationserver/isoserver/inc/isofetchcontactlist.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-
-/* ============================================================================
-*  Name        : isofetchcontactlist.h
-*  Part of     : isolation server.
-*  Version     : %version: 9 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-
-
-/*!
-* \def To avoid multiple inclusion of header
-*/
-#ifndef __IFETCHCONTACTLIST_H__
-#define __IFETCHCONTACTLIST_H__
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-chan.h"
-#include "tp-chan-gen.h"
-#include "tp-ch-gen.h"
-#include "tp-chan-iface-group-gen.h"
-#include "tp-chan-type-text-gen.h"
-#include "tp-chan-type-streamed-media-gen.h"
-#include "tp-props-iface.h"
-#include "tp-constants.h"
-#include "tp-interfaces.h"
-
-#include "isoim.h"
-
-/*!	\file
-*	Interfaces for fetching of contacts.
-*	client anywhere in the documentation refers to anyone
-*	using the isoserver
-*/
-
-/*! \enum channel_type
- *	type of the channel
- */
-enum channel_type
-	{
-	ESubscribe_Channel,
-	EPublish_Channel	
-	};
-
-/*!	\brief This function is called as a callback to get the contact names from 
- * 	contact handles. Contact names are sent to client in multiple packets of
- * 	size MAX_MSG_SIZE
- *
- * 	\param proxy unused
- * 	\param handles_names 2D array of contact names
- * 	\param error error if any 
- * 	\param userdata msg_type
- */
-static void inspect_handles_cb( DBusGProxy *proxy,char **handles_names, 
-			GError *error, gpointer userdata ) ;
-
-
-/*!	\brief This function is called if there are 0 contacts or there was an error
- *
- * 	\param contact_type : Type of the contacts
- * 	\param err : err if any, 0 otherwise
- */
-static gint send_fetch_contacts_error( gint contact_type , gint err );
-
-/*!	\brief This function is a callback for request for the contacts 
- *	in local pending contatct list from server. This is 
- *	only called for publish channel members. fetch_contacts is called 
- *	to get the contact names from the handles. If there are no conatcts in 
- *	the list it calls send_fetch_contacts_error else requests for the contact names
- *	from the contact handles
- *
- * 	\param proxy unused 
- * 	\param current_members array of handles of current contatcs
- * 	\param local_pending_members unused 
- * 	\param remote_pending_members array of handles of remote pending contatcs
- * 	\param error error if any
- * 	\param userdata unused 
- */
-static void get_roster_local_member_cb( DBusGProxy *proxy,GArray* current_members, 
-			GArray* local_pending_members, GArray* remote_pending_members, 
-			GError *error, gpointer userdata );
-			
-/*!	\brief Requests the server to get contact names from the handles
- *	The contact names are returned in inspect_handles_cb. From there
- *	contacts are sent to client
- *
- * 	\param contact_mem : handles to contact members
- * 	\param msg_type : type of the message, which wil be passed to cb
- * 	\return  Errors if any, else 0
- */
-			
-static gint fetch_contacts( GArray* contact_mem, gint* msg_type ) ;			
-
-/*!	\brief This function is a callback for request for the contacts 
- *	in msg_type(subscribe or publish) contatct list from server. This is 
- *	only called for subscribe channel members. fetch_contacts is called 
- *	to get the contact names from the handles. If there are no conatcts in 
- *	the list it calls send_fetch_contacts_error else requests for the contacts 
- *	from the handles
- *
- * 	\param proxy unused 
- * 	\param current_members array of handles of current contatcs
- * 	\param local_pending_members unused 
- * 	\param remote_pending_members array of handles of remote pending contatcs
- * 	\param error error if any
- * 	\param userdata unused 
- */
-static void get_roster_member_cb( DBusGProxy *proxy,GArray* current_members,
-		 GArray* local_pending_members, GArray* remote_pending_members, 
-		 	GError *error, gpointer userdata ) ;
-		 	
-
-/*!	\brief this function requests for the contacts in its contatct list from server
- *	
- *	\param	type of the contacts channel( publish, subscribe )
- */
-void request_roster( enum channel_type type );
-
-/*! \brief Sends contacts to the client. Contact names are sent to client in multiple 
- * 	packets of size less than or equal to MAX_MSG_SIZE. Contact will be sent as a whole. 
- * 	A single contact will not be sent in two consecutive packets
- *
- * 	\param members : Contacts to be sent to client
- * 	\param mem_count : no. of contacts 
- * 	\param contact_type : type of the contact
- * 	\return error code..
- */
-gint send_contacts_to_client( gchar** members, gint mem_count, gint contact_type ) ;
-
-
-/*! \brief Fetches the cached contacts stored in telepathy gabble
- *   This is as good as fetching the contacts
- */ 
-void fetch_cached_contacts();
-
-#endif //__IFETCHCONTACTLIST_H__
\ No newline at end of file
--- a/isolationserver/isoserver/inc/isogetsearchkeys.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isogetsearchkeys.h
-*  Part of     : isolation server.
-*  Version     : %version: 5 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-/*!
-*!
-* /def To avoid multiple inclusion of header
-*/
-#ifndef __ISOGETSEARCHKEYS_H__
-#define __ISOGETSEARCHKEYS_H__
-
-/*
-*!	/def For message_hdr_req
-*/
-#include "msg_enums.h"
-
-/*
-*!	/brief Function to get the search keys(fields on which to
-*	search ) supported by server
-* 	
-*	/param hdr_req message header request
-*	
-*	/return gint MEM_ALLOCATION_ERROR
-*/
-
-gint get_search_keys( message_hdr_resp* hdr_req );
-
-#endif //__ISOGETSEARCHKEYS_H__
--- a/isolationserver/isoserver/inc/isoim.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,264 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoim.h
-*  Part of     : isolation server instant messaing componenet.
-*  Version     : %version: 14 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-/*!
-* /def To avoid multiple inclusion of header
-*/
-
-#ifndef _ISOIM_H_
-#define _ISOIM_H_
-
-#include <glib.h>
-#include <gtypes.h>
-
-#include "isoservermain.h"
-#include "msg_enums.h"
-
-/*! /file 
- *	Interfaces for the send / recieve of messages.
- *	client anywhere in the documentation refers to anyone
- *	using the isoserver
- */
-
-/*!	/typedef struct send_msg_struct typedefed to send_msg_struct. 
- */
-typedef struct send_msg_struct send_msg_struct;
-
-/*! /struct send_msg_struct isoim.h 
- * 	/brief This struct is used to pass multiple pointers as userdata to callbacks
- *
- * 	/var hdr_req header request
- *	/var msg character string(message)	
- */
-struct send_msg_struct
-	{
-	message_hdr_req* hdr_req;
-	char *msg;
-	};
-
-/*!	/typedef struct _Received_UserData typedefed to Received_UserData. 
- */
-typedef struct _Received_UserData Received_UserData;
-
-/*! /struct Received_UserData isoim.h 
- * 	/brief This struct is used to pass multiple pointers as userdata to callbacks
- *
- * 	/var message_body message
- *	/var proxy proxy This is used for acknowledging the recieved message
- *	/var message_id This is used for acknowledging the recieved message
- */
-struct _Received_UserData
-	{
-	gchar  *message_body;
-	DBusGProxy *proxy;
-	guint   message_id;
-	};
-	
-/*!	/typedef struct send_error_struct typedefed to send_error_struct. 
- */
-typedef struct send_error_struct send_error_struct;
-
-/*! /struct send_error_struct isoim.h
- *	/brief This struct is used to pass multiple pointers as userdata to callbacks
- *	
- *	/var hdr_resp response header 
- *	/var msg_type
- *	/var timestamp
- *	/var msg_body
- */
-struct send_error_struct
-	{
-	message_hdr_resp hdr_resp;
-	guint msg_type;
-	guint timestamp;
-	gchar* msg_body;	
-	};
-	
-/*!	/brief requests the handles for the contacts to which message should be sent.
- *	request_handles_cb is registered as a callback. necessary data to be sent is 
- *	passed as userdata 
- *
- * 	/param msghdr request header that will be passed back to client
- * 	/param contact_id all contacts
- * 	/param message
- * 	/param no_cntcts  no. of contacts the msg shld be sent to
- * 	/return : error code on failure, 0 on success
- */
-void send_message( send_msg_struct* msg_hdr, const gchar **contact_id ) ;
-
-/*!	/brief handles for contacts are recieved and text channel created (if already
- *	there same is used) message is sent to those contacts.
- *	
- * 	
- * 	/param proxy unused
- * 	/param handles contact handles
- * 	/param error error if any in getting the handles for contact 
- * 	/param userdata Has request header and message to be sent to reciever
- *	The request header is used for mapping of response to correct request
- *
- */
-void request_handles_cb( DBusGProxy *proxy, GArray *handles, GError* error, 
-			gpointer userdata ) ;
-
-
-/*!	/brief parse the params for send and validates them
- * 
- * 	/param aMsgBuffer message buffer to be parsed
- * 	/param aContactId pointer to an array of strings, After this function this 
- *	arg wil have the contacts to which message should be sent to
- * 	/param aSendMsg message to be sent
- * 	/param len : msg_len no. of bytes in aMsgBuffer
- * 	/param contact_count : no. of contacts
- * 	/return returns error code on failure, or 0
- */
-int parse_for_send( gchar* aMsgBuffer, gchar*** aContactId, 
-	gchar** aSendMsg, gint msg_len, gint* contact_count ) ;
-	
-
-/*!	/brief calls parse_for_send to parse the parameters, and calls 
- *	send_message for sending the message
- * 
- * 	/param buf : message buffer to be parsed
- * 	/param len : msg_len no. of bytes in msg_buf
- *
- * 	/return gint : parse error code if any
- */
-int action_parse_send( gchar* buf, gint msg_len ) ;
-
-/*!	/brief Function to check if the channel is already present in the maintained hash
- * 	text_channels_find_func. 
- *
- * 	/param key unused
- * 	/param text_channel hash table element
- * 	/param contact_handle to be searched item 
- * 	/return boolean 
- */
-gboolean text_channels_find_func(	gchar *key,
-									TpChan *text_channel,
-									guint *contact_handle );
-									
-/*! /brief Once the send request is sent to n/w server this callback is called
- * 
- * 	/param proxy unused
- * 	/param error n/w error if any
- * 	/param userdata message header from which a response is formed
- * 	/return void
- */
-void sendreply_cb( DBusGProxy *proxy, GError *error, gpointer userdata ) ;
-
-/*!	/brief This function is called by tg to as a response to request for the 
- *	handles from the text channel. If there is no error, sent message( 
- *	which has failed ) with its deatils	is then sent to client
- * 
- *	/param proxy unused
- *  /param handles_names contac names (sender name)
- *  /param error error if any
- *  /param userdata send_error_struct
- *  /return void
- */								
-static void inspect_handles_for_error_cb( DBusGProxy *proxy,char **handles_names,
-				 GError *error, gpointer userdata );
-
-/*!	/brief This function on registered for "senderror" signal is called when the message 
- * 	sending is failed. Calls tp_conn_inspect_handles_async to get the contact name 
- *	from text channel
- *
- * 	/param proxy : unused
- * 	/param error : error code
- * 	/param timestamp : sent to inspect_handles_for_error_cb thru' send_error_struct
- * 	/param message_type : sent to inspect_handles_for_error_cb thru' send_error_struct
- * 	/param message_body : sent to inspect_handles_for_error_cb thru' send_error_struct
- * 	/param user_data text_chan from where to get the contatc name of reciepien
- * 	/return void
- */
-static void senderror_cb (  DBusGProxy *proxy,
-								guint            error,
-							   	guint            timestamp,
-							    guint            message_type,
-							    gchar           *message_body,
-							    gpointer		user_data );
-			
-/*!	/brief called as a callback to acknowledge the msg ack. 
- * 
- * 	/param proxy unused 
- * 	/param error error if any
- * 	/param userdata unused
- * 	/return void
- */
-void msg_ack_pending_cb( DBusGProxy *proxy, GError *error, gpointer userdata ) ;
-
-/*!	/brief This function is a callback for to get the contact name from handles.
- *	This function acknowledges the recieved message and send that to client(adap)
- * 	
- * 	/param proxy unused
- * 	/param handles_names 2D array of message sender(one contact ended with a NULL string)
- * 	/param error error if any
- *  /param userdata Received_UserData that has message body, response header etc.,
- *  /return void
- */
-static void getting_sender_cb( DBusGProxy *proxy,char **handles_names, 
-		GError *error, gpointer userdata ) ;
-
-/*!	/brief when a message is recieved this function is called by 
- * 	telepathygabble(by emitting signal). This function then requests tg 
- *	to get the contact names corresponding to handles.
- * 
- * 	/param proxy sent to getting_sender_cb as param in userdata
- * 	/param timestamp unused
- * 	/param handles_names
- * 	/param message_type unused
- * 	/param message_flags unused
- * 	/param message_body recieved message
- * 	/param userdata unused
- */
-void receivedMessage_cb (  DBusGProxy *proxy,
-								guint            message_id,
-							   	guint            timestamp,
-							    guint            from_handle,
-							    guint            message_type,
-							    guint            message_flags,
-							    gchar           *message_body,
-							    gpointer		user_data );
-/*!	/brief whenevr a new channel handler for text is created, this function is called. This 
- *	function also registers that channel for Received and SendError signals. Also the pending
- *	messages are also retrieved in this function
- * 
- * 	/param tp_chan new channel created
- */
-void text_channel_init  ( TpChan   *text_chan  );
-
-/*!	/brief called by getting_sender_cb to send the recieved message to client
- * 
- * 	/param msg message recieved
- * 	/param sender message from whom recieved
- */
-int  send_message_to_client( const gchar *msg , const gchar *sender);	
-							
-#endif
\ No newline at end of file
--- a/isolationserver/isoserver/inc/isomodifycontactlist.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-
-/* ============================================================================
-*  Name        : isomodifycontacts.h
-*  Part of     : isolation server.
-*  Version     : %version: 7 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-/*!
-* /def To avoid multiple inclusion of header
-*/
-#ifndef __ISOADDCONTACTS_H__
-#define __ISOADDCONTACTS_H__
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-chan.h"
-#include "tp-chan-gen.h"
-#include "tp-ch-gen.h"
-#include "tp-chan-iface-group-gen.h"
-#include "tp-chan-type-text-gen.h"
-#include "tp-chan-type-streamed-media-gen.h"
-#include "tp-props-iface.h"
-#include "tp-constants.h"
-#include "tp-interfaces.h"
-
-#include "isoim.h"
-
-/*! /file 
- *	Interfaces for the maintainence of the contact list. 
- *	client anywhere in the documentation refers to anyone
- *	using the isoserver
- */
-
-/*!
- *  /brief This function is called by message_send_recv function in isoservermain.c if message type
- *  is EReject_Contact_Request, EAccept_Contact_Request, EAdd_Contact_Request and EDelete_Contact_Request. 
- *  Contacts added/removed to/from list. This function parses the message buffer, 
- *  validates for the arguments and calls modify_contact_list to add/remove contacts
- * 
- *  /param buf : buffer to be parsed
- *  /param buf_len : buffer length
- *  /return : error code if any, 0 on success 
- */
-gint action_parse_modify_contact_list( gchar* buf, gint buf_len ) ;
-
-/*!
- *  /brief gets the handles for contacts. Handles are returned in request_modify_contact_list_handles_cb 
- *  callback which is an arg for the async request to get handles.
- *  
- *  /param msg_hdr : The header and message passed to callbacks
- *  /param contact_id : contact ids whose handles to be returned
- *  /param no_cntcts : total no. of contacts to be added
- *  /return : error code if any, handle on success 
- */
-guint get_handles_for_contacts ( send_msg_struct* msg_hdr, 
-	const gchar **contact_id, gint no_cntcts );
-	
-/*!
- *  /brief Handles are returned in this callback. Which will then actually do modify 
- *	the contact list based on the request type(add/remove/accept/reject)
- *	modify_contact_list_cb is registered as the callback.
- *
- *  /param proxy : unused
- *  /param handles : handles of the contacts
- *  /param error : error if any
- *  /param message : userdata(send_msg_struct) passed back
- *  /return : error code if any, handle on success 
- */		
-void request_modify_contact_list_handles_cb( DBusGProxy *proxy, GArray *handles, 
-		GError* error, gpointer message );	
-
-/*!
- *  /brief Calls get_handles_for_contacts to get the handles for contact. 
- * 
- *  /param msg_hdr : message request header passed to callbacks
- *  /param contact_id : contact ids to be added
- *  /param message : messgae if any
- *  /param no_cntcts : no of contacts to be added
- *  /return void 
- */
-gint modify_contact_list ( send_msg_struct* msg_hdr, const gchar  **contact_ids, 
-				gint no_cntcts );
-
-/*!
- *  /brief called as callback for request for modify contact list 
- *	This function then sends the result to client
- * 
- *  /param proxy unused 
- *  /param error Error if any
- *  /param userdata request message header
- *  /return void 
- */
-void modify_contact_list_cb( DBusGProxy *proxy, GError *error, gpointer userdata );
-
-/*!
- *  /brief The contact names corresponding to the contact handles that are changed 
- *	are passed to the client
- *  /param proxy 
- * 	/param handles_name
- * 	/param error
- * 	/param userdata
- * 	/return void 
- */
-static void rosters_changed_contacts_cb( DBusGProxy *proxy,
-	gchar **handles_names, GError *error, gpointer userdata );
-				 
-				 
-/*!	/brief Whenever contact list is changed by others( someone trying to add this user
- *	or someone rejecting the add request etc., ) this callback registered as a signal
- *	is called with the handles of the changed contacts. rosters_changed_contacts_cb is
- *	passed as callback to get the contact name of the changed handles
- * 
- * /param group_iface unused 
- * /param message unused
- * /param added List of contacts that are recently added
- * /param removed List of contacts that were recently removed
- * /param local_pending List of contacts that are locally pending for approval
- * /param remote_pending List of contacts that are remotely pending for approval
- * /param actor unused
- * /param reason unused
- * /param userdata unused
- * /return void
- */
-void roster_members_changed_cb ( DBusGProxy           *group_iface,
-									    gchar                *message,
-									    GArray               *added,
-									    GArray               *removed,
-									    GArray               *local_pending,
-									    GArray               *remote_pending,
-									    guint                 actor,
-									    guint                 reason,
-									    gpointer  			  userdata );				
-
-
-		
-#endif //__ISOADDCONTACTS_H__	
\ No newline at end of file
--- a/isolationserver/isoserver/inc/isopresence.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,338 +0,0 @@
-/* ============================================================================
-*  Name        : isopresence.h
-*  Part of     : isolation server.
-*  Version     : %version: 7 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-/*!
-* /def To avoid multiple inclusion of header
-*/
-
-#ifndef __ISOPRESENCE_H__
-#define __ISOPRESENCE_H__
-#include <glib.h>
-#include <gtypes.h>
-
-#include "isoservermain.h"
-#include "msg_enums.h"
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-props-iface.h"
-#include "tp-interfaces.h"
-#include "tp-conn-iface-presence-gen.h"
-
-G_BEGIN_DECLS
-
-/*! /file
-*	This file has interfaces for presence implimentation. 
-*	client anywhere in the documentation refers to anyone
-*	using the isoserver
-*/
-
-/*! /typedef struct presence_msg_struct typedefed to presence_msg_struct 
- */
-typedef struct presence_msg_struct presence_msg_struct;
-
-/*! /struct presence_msg_struct isopresence
- *  /brief 
- *  
- *  /var hdr_req header request
- *  /var useravailability availability, presence 
- *  /var statustext status text 
- */
-struct presence_msg_struct
-	{
-	message_hdr_req* hdr_req;
-	char *useravailability;
-	char *statustext; 
-	};
-
-
-#define TELEPATHY_TYPE_PRESENCE         (telepathy_presence_get_type ())
-#define TELEPATHY_PRESENCE(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), TELEPATHY_TYPE_PRESENCE, TelepathyPresence))
-#define TELEPATHY_PRESENCE_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), TELEPATHY_TYPE_PRESENCE, TelepathyPresenceClass))
-#define TELEPATHY_IS_PRESENCE(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), TELEPATHY_TYPE_PRESENCE))
-#define TELEPATHY_IS_PRESENCE_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), TELEPATHY_TYPE_PRESENCE))
-#define TELEPATHY_PRESENCE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TELEPATHY_TYPE_PRESENCE, TelepathyPresenceClass))
-
-/*! /typedef struct _TelepathyPresence typedefed to TelepathyPresence 
- */
-typedef struct _TelepathyPresence      TelepathyPresence;
-
-/*! /typedef struct _TelepathyPresenceClass typedefed to TelepathyPresenceClass 
- */
-typedef struct _TelepathyPresenceClass TelepathyPresenceClass;
-
-/*! /struct _TelepathyPresence isopresence.h
- *  /var parent 
- */
-struct _TelepathyPresence {
-	GObject parent;
-};
-
-/*! /struct _TelepathyPresenceClass isopresence.h
- *  /var parent_class 
- */
-struct _TelepathyPresenceClass {
-	GObjectClass parent_class;
-};
-
-/*! /typedef struct _TelepathyPresenceClass typedefed to TelepathyPresenceClass 
- */
- 
-/*! /enum presence states of the user
- */
-typedef enum {
-	TELEPATHY_PRESENCE_STATE_AVAILABLE,
-	TELEPATHY_PRESENCE_STATE_BUSY,
-	TELEPATHY_PRESENCE_STATE_AWAY,
-	TELEPATHY_PRESENCE_STATE_EXT_AWAY,
-	TELEPATHY_PRESENCE_STATE_HIDDEN,      /* When you appear offline to others */
-	TELEPATHY_PRESENCE_STATE_UNAVAILABLE,
-} TelepathyPresenceState;
-
-GType               telepathy_presence_get_type                 (void) G_GNUC_CONST;
-
-/*!	/brief create a presence object instance
- * 	/return created presence object instance
- */
-TelepathyPresence *
-telepathy_presence_new (void);
-
-/*!	/brief get the presence state value
- *
- * 	/param presence : presence object
- * 	/return state : state as set in presence object
- */
-TelepathyPresenceState 
-telepathy_presence_get_state (TelepathyPresence      *presence);
-
-
-/*!	/brief get the presence status value
- *
- * 	/param presence : presence object
- * 	/return state : status as set in presence object
- */
-const gchar *
-telepathy_presence_get_status (TelepathyPresence      *presence);
-
-/*!	/brief set the presence state value in presence gobject
- *
- * 	/param presence : presence object
- * 	/param state : state
- * 	/return : void
- */
-void
-telepathy_presence_set_state (TelepathyPresence      *presence,
-				TelepathyPresenceState  state);
-
-/*!	/brief set the presence status text value in presence gobject
- *
- * 	/param presence : presence object
- * 	/param state : status
- * 	/return : void
- */
-void
-telepathy_presence_set_status (TelepathyPresence      *presence,
-				const gchar         *status);
-
-/*!	/brief converts presence state value from enum to string
- *	/param presence_state : presence state enum value
- * 	/return : presence state string value
- */
-const gchar *
-telepathy_presence_state_to_str (TelepathyPresenceState presence_state);
-
-
-/*!	/brief converts presence state value from string to enum
- *
- * 	/param str : presence state string value
- * 	/return : presence state enum value
- */
-TelepathyPresenceState 
-telepathy_telepathy_presence_state_from_str (const gchar *str);
-
-/*!	/brief Registered as a signal for presence updates of 
- *	other users. This function will be called whenevr a contact
- *	to whom this user has subscribed for presence changes his 
- *	presence state or status message.
- * 
- * 	/param proxy : unused
- * 	/param handle_hash : hash table containing presence information
- *	as hash value, contact handle as key
- * 	/return : void
- */
-void
-telepathy_presence_handler(DBusGProxy      *proxy,
-			   GHashTable      *handle_hash);
-
-/*!	/brief updates own presence to the n/w server. update_status_cb 
- * 	is registered for the callback
- *
- * 	/param pres_iface : presence interface
- * 	/param presence : presence object 
- * 	/param msg_hdr : presence info list to send presence_msg_struct
- *	has state, status etc., 
- * 	/return : void
- */
-void 
-telepathy_contacts_send_presence (DBusGProxy *pres_iface, 
-				TelepathyPresence *presence, 
-				presence_msg_struct* msg_hdr );
-					 
-/*!	/brief This function will be called for presence of each contact
- *	key has got the state and value status
- *
- *	/param key : hash table key ie presence state
- * 	/param value : hash table value ie presence information
- * 	/param presence : user data
- *	/remark presence object is logically unused ?
- *
- * 	/return : void
- */
-static void
-telepathy_presences_foreach (gpointer        *key,
-		      gpointer        *value,
-		      TelepathyPresence **presence);
-					 
-
-/*!	/brief This function will be called for each contact. Contact name is 
- *	got from the contcat handle, telepathy_presences_foreach is called 
- *	to get the presence from value of the hash table
- *
- * @param key : hash table key ie contact handle id
- * @param value : hash table value ie presence
- * @return : void
- */
-static void
-telepathy_presence_handle_foreach (gpointer *key,
-		      gpointer *value);
-
-
-/*!	/brief callback for updating own presence. This function 
- *	sends response to client
- *
- * 	/param proxy : unused
- * 	/param error : error if any
- * 	/param message : message header  
- * 	/return : void
- */
-void 
-update_status_cb(DBusGProxy *proxy, 
-			GError* error, 
-			gpointer message);
-
-
-/*!	/brief Sends presence of conatct to the client. Forms 
- *	the proper presence message format and sends that to client
- *
- * 	/param : availability user availability
- * 	/param : text custom status message set by user
- * 	/return : error code on failure, 0 on success
- */
-int 
-send_presence_to_client( const gchar *availability, 
-			const gchar *text );
-
-/*!	/brief sends presence of the client to n/w server thru' gabble
- * 	calls telepathy_contacts_send_presence to send presence
- *
- * 	/param msghdr request header that will be passed back to client
- * 	/param message_type_err unused
- *	/remark please remove this unused variable(why was this added?)
- *
- * 	/return : error code on failure, 0 on success
- */
-void
-send_presence( presence_msg_struct* msg_hdr, 
-			gint message_type_err ) ;
-
-
-/*!	/brief parses the message buffer. aPresenceStatus and aStatustext
- *	pointers updated
- *
- * 	/param aMsgBuffer message buffer
- * 	/param aPresenceStatus after call to this function it will
- *	have the presence status to be updated
- * 	/param aStatustext after call to this function it will
- *	have the status text to be updated
- * 
- * 	/param msg_len : msg_len no. of bytes in msg_buf
- * 	/return returns error code on failure, or 0
- */
-int 
-parse_for_presence( gchar* aMsgBuffer, 
-			gchar** aPresenceStatus, 
-			gchar** aStatustext, 
-			gint msg_len ) ;
-
-/*!	/brief Parses the message from client and sends the presence 
- *	to n/w server. A err is returned if there is any parse error
- *	or out of memory condition
- *
- * 	/param buf : buffer to be parsed
- * 	/param buf_len : buffer length
- * 	/return : error code if any, 0 on success 
- */
-int 
-action_parse_presence( gchar* buf, 
-			gint buf_len ) ;
-
-/*!	/brief GObject finalize funtion
-*
-*	/param object object to be finalized
-*/
-static void         presence_finalize           (GObject             *object);
-
-/*!	/brief GObject get property funtion
-*
-*	/param object Gobject
-*	/param param_id
-*	/param value
-*	/param pspec
-*/
-static void         presence_get_property       (GObject             *object,
-						 guint                param_id,
-						 GValue              *value,
-						 GParamSpec          *pspec);
-
-/*!	/brief GObject set property funtion
-*
-*	/param object Gobject
-*	/param param_id
-*	/param value
-*	/param pspec
-*/						 
-static void         presence_set_property       (GObject             *object,
-						 guint                param_id,
-						 const GValue        *value,
-						 GParamSpec          *pspec);
-
-G_END_DECLS
-
-
-#endif //__ISOPRESENCE_H__
\ No newline at end of file
--- a/isolationserver/isoserver/inc/isosearch.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isosearch.h
-*  Part of     : isolation server.
-*  Version     : %version: 8 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-/*!
-* /def To avoid multiple inclusion of header
-*/
-#ifndef __ISOSEARCH_H__
-#define __ISOSEARCH_H__
-
-/*! /file
-*	Header file for search feature implimentation. The interfaces mentioned are 
-*	the only those which are used(extern) by functions in other files. Functions which 
-*	are locally used in isosearch.c are not added here. And those functions are forward 
-*	declared.
-*	client anywhere in the documentation refers to anyone
-*	using the isoserver
-*/
-
-/*
-! /This header has definitions for glib types
-*/
-#include <gtypes.h>
-
-/*
-! /This header has definitions for DBusGProxy
-*/
-#include <dbus/dbus-glib.h>
-
-
-/*
-! /brief This function is called by message_send_recv function in isoservermain.c if message type
-*	is ESearch. This function parses the rmsg, validates the parameter passed, if parameters are 
-*	correct a search performed for them. else INVALID_PARAMETERES error is returned
-*
-* 	/param rmsg message buffer to be parsed
-*	/param rmsg_len the length of the rmsg
-*	/remark rmsg_len is not strlen(rmsg)
-*	/return returns error code or 0 on success
-*/
-gint action_parse_search( gchar* rmsg, gint rmsg_len );
-
-
-
-/*
-!	/brief This function is called as a callback when a search channel is closed
-*	/remark This function should have been a static function in isosearch.c
-*	A work around has been done to make multiple search requests.
-*
-* 	/param proxy unused variable
-*	/param error Error if any
-*	/param user_data callback data
-*	/return void
-*/
-void search_chan_closed_cb ( DBusGProxy	*proxy,
-									GError *error,
-									gpointer	user_data
-								  );
-
-#endif //__ISOSEARCH_H__
--- a/isolationserver/isoserver/inc/isoservermain.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,195 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoservermain.h
-*  Part of     : isolation server.
-*  Version     : %version: 18 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-/*!
-* /def To avoid multiple inclusion of header
-*/
-#ifndef __ISO_SERVER_H_
-#define __ISO_SERVER_H_
-
-#include <glib.h>
-#include <gtypes.h>
-#include <sys/cdefs.h>
-#include <sys/types.h> 
-
-
-#include "tp-chan-type-text-gen.h"
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-chan.h"
-#include "tp-conn-gen.h"
-#include "tp-props-iface.h"
-#include "tp-interfaces.h"
-#include "tp-conn-iface-presence-gen.h"
-
-#include "msg_enums.h"
-
-/*! /file 
-*	Header file for the isolation server main. This file has implimentations
-*	to recieve messages from client and delegate the requests to other 
-*	funtions based on the message type.
-*	client anywhere in the documentation refers to anyone
-*	using the isoserver
-*/
-
-enum connection_status
-    {
-    connecting = -1,
-    connected,
-    disconnected,
-    disconnecting,
-    not_connected
-    };
-/*! /typedef struct userConnection typedefed to userConnection
-*/
-typedef struct userConnection  userConnection;
-
-/*! /struct userConnection isoservermain.h
-*	/brief There is only one object of this struct. This struct represents
-*	one login session. This strcut has all the necessary data members to
-*	maintain a session.
-*	
-*	/var conn telepathy connection object
-*	/var connmgr telepathy connection manager object
-*	/var dbusCon D-Bus
-*
-*	/var isConnected Boolean : If loged in
-*
-*	/var current_members_names : 2D char array having the current members list
-*	/var local_pending_names : 2D char array having the locally pending members list
-*	/var remote_pending_names : 2D char array having the remotely pending members list
-*
-*	/var group_iface_subscribe : Interface to subscribe list
-*	/var group_iface_publish : Interface to publish list
-*	/var group_iface_known : Interface to known list
-*
-*	/var connmgr_bus : connection manager bus 
-*
-*	/var text_channels : open text(chat) channels
-*
-*	/var pres_iface : Interface for presence
-*
-*	/var search_chan : channel for search
-*	/var search_hdr_req : request header for search
-*
-*/
-struct userConnection 
-	{
-	TpConn* conn;
-	DBusGConnection* dbusConn;
-	TpConnMgr* connmgr;
-	enum connection_status conn_stat;
-	
-	gchar** current_members_names;
-	gchar** local_pending_names;
-	gchar** remote_pending_names;
-	
-	
-	DBusGProxy    *group_iface_subscribe;
-	DBusGProxy    *group_iface_publish;
-	DBusGProxy    *group_iface_known;
-	
-	gchar* connmgr_bus;
-	
-	GHashTable *text_channels;
-	
-	TpPropsIface *pres_iface;
-	
-	TpChan *search_chan;
-	message_hdr_req* search_hdr_req;	
-	
-	gboolean logout_flag;
-	};
-
-/*! /typedef struct globalMainloop to globalMainloop
-*/
-typedef struct globalMainloop globalMainloop;
-
-/*!	/struct globalMainloop isoservermain.h
-*	/brief Has a pointer to the mainloop. This mainloop runs in a 
-*	thread created by the main thread(isoserver.exe). This loop 
-*	listens to the event from telepathygabble
-*
-*	/var mainloop pointer to the mainloop
-*/
-struct globalMainloop 
-	{
-	GMainLoop* mainloop;
-	};
-
-/*! /var mainloop_struct global variable for mainloop
-*	/brief This variable can not be put into userConnection as the life 
-*	time of a mainloop is not related to per login session
-*/
-extern globalMainloop mainloop_struct;
-
-/*!	/var globalCon represents one login session 
-*/
-extern userConnection globalCon;
-
-/*!	/brief This message reads message type from the message buffer
-*	passed as argument
-*
-* 	/var pc message buffer
-*	
-*	/return pointer to message header response which has the message type
-*/
-message_hdr_resp* read_message_type( gchar* pc ) ;
-
-/*! /brief This is an entry point to the thread. isoserver.exe
-*	creates a thread which runs a mainloop. mainloop is passed as 
-*	argument to the thread entry function. This mainloop which is 
-*	run in the thread listens for the events from telepathygabble
-*
-*	/var data unused param
-*/
-gpointer thread_entry( gpointer data ) ;
-
-/*! /brief If there are any parse error, this function is called to
-*	dispatch the error to client.
-*	
-*	/param msg_struct The response header to be sent 
-*	/param err Error
-*/
-gint send_error( message_hdr_resp* msg_struct, gint err );
-
-/*! /brief This function waits for the requests from the client.
-*	Requests are parsed, validated and appropriate actions taken.
-*	A new thread is created when login happens. This function runs 
-*	a while loop which is only quit when a kill request is recieved 
-*	from the client.
-*
-*	/remark should this thread be created before login?
-*	/remark when is the mainloop quit ? (Should that be after logout or 
-*	after getting a kill request from the client)
-*/
-int message_send_recv() ;
-
-#endif //__ISO_SERVER_H_
--- a/isolationserver/isoserver/inc/isoutils.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-
-/* ============================================================================
-*  Name        : isoutils.h
-*  Part of     : isolation server.
-*  Version     : %version: 8 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-/*!
-* /def To avoid multiple inclusion of header
-*/
-#ifndef __ISOUTILS_H__
-#define __ISOUTILS_H__
-
-/*
-*! /file 
-*	Header file for the isolation utilities. 
-*	client anywhere in the documentation refers to anyone
-*	using the isoserver
-*/
-#include "msg_enums.h"
-
-
-/*
- * ! /brief Function for to log the messages. Ultimately uses fprintf and putc to 
- *  write to file. This function takes variable no of arguments.  
- *  
- *  /param fmt format specifier.
- *  /return void  
- */
-void  iso_logger ( gchar* fmt, ... );
-
-/*
-*! /brief parses a buffer into an array of strings. Message buffer  
-*   test.ximp@gmail.com/0ximp.telepathy@gmail.com/0/0
-*                       ^                         ^ 
-*   contact1------------|contact2-----------------|
-*   str will have contact1 for 1st time, contact2 on 2nd call
-* 
-*   /param message buffer : Buffer to be parsed
-*   /param str : str will have pointer to a string
-*   /param len : Len returns the number of bytes read
-*   /param msg_len : no. of bytes in msg_buf
-*   /return gint : error if any on failure, else no. of strings read from buffer
-*/
-gint parse_a_string( gchar* msg_buf, gchar** str, gint* len, gint msg_len );
-
-/*
-*!
-*   /brief parses a buffer into an array of strings
-* 
-*   /param message buffer : Buffer to be parsed
-*   /param arr_str : Parsed strings are returned in this array of strings
-*   /param len : Len returns the number of bytes read
-*   /param len : msg_len no. of bytes in msg_buf
-*   /param cntidscount : no. of contacts
-*   /return gint : error if any on failure, else no. of strings read from buffer
-*   example 
-*	test.ximp@gmail.com/0ximp.telepathy@gmail.com/0/0
-*						  ^ 						^ ^	            ^ 
-*	contact1------------|contact2-----------------|-|
-*	is parsed into
-*	arr_str[0] = test.ximp@gmail.com/0
-*	arr_str[1] = ximp.telepathy@gmail.com/0
-*/
-gint parse_into_array_of_strings( gchar* msg_buf, 
-				gchar*** arr_str, gint* len, gint msg_len,
-				gint* cntidscount ) ;
-
-/*
- *! /brief Frees the memory allocated to the array of string and to the message
- * 
- *  /param contactid : array of string to be freed.
- *  /param contacts_count : no of contacts
- *  /param sendmsg : msg to be freed
- */	
-void free_msg_args( gchar** contactid, gint contacts_count, gchar* sendmsg );
-
-
-/*
- *! /brief Send the response for the porcessing of request to the client
- * 
- *  /param hdr_req : message request header
- *  /param error : error code
- *  /param response : whether the processing of request successful
- *
- */
-gint send_response_to_client( message_hdr_req* hdr_req, gint error, 
-		gboolean response );
- 
-#endif //__ISOUTILS_H__
-
--- a/isolationserver/isoserver/src/isoavtar.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,308 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoconnectionmanager.c
-*  Part of     : isolation server.
-*  Version     : %version: 6 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-
-#include "tp-conn.h"
-#include "isoavtar.h"
-#include "stdio.h"
-#include "isoservermain.h"
-#include "msgliterals.h"
-#include "msgqlib.h"
-#include "msg_enums.h"
-#include "isoutils.h"
-
-
-#include <string.h>
-#include <stdlib.h>
-
-/*
- * !	\file 
- *	Implements the functions in isoavtar.h
- */
-
-
-/*! \brief callback for updating own avtar. This function 
- *  sends response to client
- *
- *  \param proxy : unused
- *  \param avatar_sha1: token string 
- *  \param error : error if any
- *  \param message : message header  
- *  \return : void
- */
-void update_avtar_cb(DBusGProxy *proxy, char* avatar_sha1, GError* error, gpointer userdata)
-    {
-
-    int err = 0;
-    //user data is of type message_hdr_req
-    message_hdr_req* msg_hdr = ( message_hdr_req* ) userdata;
-    // create the msg queue
-
-    iso_logger( "%s", "In - update_avtar_cb\n" );
-    UNUSED_FORMAL_PARAM(proxy);
-
-    //msg_hdr should never be NULL
-
-    if ( NULL != error ) 
-        {
-        //There was some error
-        //send the response for the msg_hdr request to client
-
-        iso_logger( "%s", "error in update_avtar_cb" );
-        err = send_response_to_client( msg_hdr, error->code, 0 );
-        g_error_free(error);
-        }
-    else 
-        {
-        //If the set avatar was successful then send the msg_hdr alongwith the avatar sha1 to client
-        //<todo> : sending the avatar sha1
-
-        iso_logger( "%s %s", "avatar sha1 is : ", avatar_sha1 );
-        err = send_response_to_client( msg_hdr, 0, 1 );
-        free ( avatar_sha1 );
-        }
-
-    if ( err < 0 )
-        {
-        // failed to deliver
-        iso_logger( "%s", "failed to deliver\n" );
-        }
-    free( msg_hdr );
-
-    iso_logger( "%s", "Out - update_avtar_cb\n" );
-
-    }
-
-/*! \brief sends avtar of the client to n/w server thru' gabble
- *  calls tp_conn_iface_avatars_set_avatar_async to set avatar
- *  
- *  \param avtarcontent : avatar image content
- *  \param mimetype : mime type
- *  \param msghdr request header that will be passed back to client
- *
- *  \return : error code on failure, 0 on success
- */
-gint send_avtar( GArray* avtarcontent , char * mimetype , message_hdr_req *msg_hdr ) 
-    {
-
-    gint error = 0;
-    DBusGProxy* avatar_face = NULL;
-    message_hdr_req *hdr_req = NULL;
-    iso_logger( "%s", "In - send_avtar\n" );	
-
-    //Allocate the memory for header req and initialize that to 0 
-    hdr_req = ( message_hdr_req* ) calloc ( sizeof( message_hdr_req ), 1 );
-    if ( NULL == hdr_req )
-        {
-        return MEM_ALLOCATION_ERROR;
-        }
-    //msg_hdr can never be NULL.. handled in the case
-    memcpy( hdr_req, msg_hdr,  sizeof( message_hdr_req ) );
-
-    //Registering for signal to be done at different loation
-    /*dbus_g_proxy_connect_signal (DBUS_G_PROXY(globalCon.conn), "AvatarUpdated",
-                                 G_CALLBACK (avatar_updated_signal),
-                                 NULL, NULL);       */
-    //get the interface
-    avatar_face = tp_conn_get_interface (
-            globalCon.conn, TELEPATHY_CONN_IFACE_AVATAR_QUARK);
-
-    if ( avatar_face )
-        {
-        //make call to the lib telepathy to set the avatar. update_avtar_cb is registered as the callback
-        tp_conn_iface_avatars_set_avatar_async (avatar_face, avtarcontent, mimetype, update_avtar_cb, (gpointer)hdr_req);
-        }
-    else {
-    error = TP_AVATAR_IFACE_ERROR; 
-    }
-
-    iso_logger( "%s", "Out - send_avtar\n" );
-    return error;
-    }
-
-/*! \brief callback for clearing own avtar. This function 
- *  sends response to client
- *
- *  \param proxy : unused
- *  \param error : error if any
- *  \param userdata : message header  
- *  \return : void
- */
-void clear_avtar_cb( DBusGProxy *proxy, GError* error, gpointer userdata )
-    {
-
-    int err = 0;
-    //user data is of type message_hdr_req
-    message_hdr_req* msg_hdr = ( message_hdr_req* ) userdata;
-
-    iso_logger( "%s", "In - clear_avtar_cb\n" );
-    UNUSED_FORMAL_PARAM(proxy);
-
-    //msg_hdr should never be NULL
-
-    if ( NULL != error ) 
-        {
-        //There was some error
-        //send the response for the msg_hdr request to client
-
-        iso_logger( "%s", "error in clear_avtar_cb" );
-        err = send_response_to_client( msg_hdr, error->code, 0 );
-        g_error_free(error);
-        }
-    else 
-        {
-        err = send_response_to_client( msg_hdr, 0, 1 );
-        }
-
-    if ( err < 0 )
-        {
-        // failed to deliver
-        iso_logger( "%s", "failed to deliver\n" );
-        }
-    free( msg_hdr );
-    iso_logger( "%s", "Out - clear_avtar_cb\n" );
-
-    }
-/*! \brief clears the self avtar 
- *
- *  \param msghdr request header that will be passed back to client
- *
- *  \return : error code on failure, 0 on success
- */
-gint clear_avatar( message_hdr_req *msg_hdr )
-    {
-    gint error = 0;
-    DBusGProxy* avatar_face = NULL;
-    message_hdr_req *hdr_req = NULL;
-    iso_logger( "%s", "In - clear_avtar\n" );    
-
-    //Allocate the memory for header req and initialize that to 0 
-    hdr_req = ( message_hdr_req* ) calloc ( sizeof( message_hdr_req ), 1 );
-    if ( NULL == hdr_req ) 
-        {
-        return MEM_ALLOCATION_ERROR;    
-        }
-    //msg_hdr can never be NULL.. handled in the case
-    memcpy( hdr_req, msg_hdr,  sizeof( message_hdr_req ) );
-
-    //get the interface
-    avatar_face = tp_conn_get_interface (
-            globalCon.conn, TELEPATHY_CONN_IFACE_AVATAR_QUARK);
-
-    if ( avatar_face )
-        {
-        tp_conn_iface_avatars_clear_avatar_async(avatar_face, clear_avtar_cb, (gpointer)hdr_req);
-        }
-    else {
-    error = TP_AVATAR_IFACE_ERROR; 
-    }
-
-    iso_logger( "%s", "Out - clear_avtar\n" );
-
-    return error;
-
-    }
-/*! \brief clears the self avtar 
- *  \param rmsg : message buffer to be parsed
- *  \param msg_struct : request header 
- *  \param result : message buffer length
- *  \param avtarcontent : pointer to the avatar image data
- * 
- *  \return : error code on failure, 0 on success
- */
-gint update_own_avatar(char* rmsg,message_hdr_resp* msg_struct,gint result, GArray** avtarcontent)
-    {
-    int len = 0;
-    int err = 0;
-    static gboolean fetch_avatar_data = 0;
-    static gchar *mimetype = NULL;
-
-
-    iso_logger( "%s", "In - EUpdateOwnAvtar\n" );
-
-    if(!fetch_avatar_data)
-        {
-        //parse mime type
-        //calculating len for request header
-        //skip the msg_hdr part
-
-        len += sizeof( message_hdr_req );
-
-        *avtarcontent = g_array_new ( FALSE, FALSE, sizeof ( gchar ) );
-        if ( NULL == *avtarcontent )
-            {
-            return MEM_ALLOCATION_ERROR;
-            }
-
-        // reading a mimetype from buffer
-        err = parse_a_string( rmsg, &mimetype, &len, result );
-
-        if ( err < 0 )
-            {
-            goto oom;
-            }
-
-        fetch_avatar_data = 1;     
-        }
-    else
-        {
-        len = sizeof( message_hdr_req );
-        }
-
-
-    g_array_append_vals( *avtarcontent, rmsg + len, result - len );
-
-
-    if(! msg_struct->hdr_req.continue_flag )
-        {
-        err = send_avtar( *avtarcontent, mimetype, &(msg_struct->hdr_req) );  
-
-        fetch_avatar_data = 0; //reset the value so that if set avatar requested for
-        //falling of to goto oom
-
-        }
-    else {
-    //Continue flag is set and read the data again return 0
-    return 0;
-    }
-
-    oom:
-    //Free the memory if err or operation complete ( sent to libeteleapthy)
-    if ( *avtarcontent )
-        {
-        g_array_free( *avtarcontent, (*avtarcontent)->len );
-        *avtarcontent = NULL;
-        }
-    if( mimetype )
-        {
-        free ( mimetype );
-        }
-    return err;
-    }
--- a/isolationserver/isoserver/src/isoconnectionmanager.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,829 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoconnectionmanager.c
-*  Part of     : isolation server.
-*  Version     : %version: 24 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-
-
-#include <glib.h>
-#include <gtypes.h>
-#include <sys/types.h> 
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h> 
-
-#include "isoconnectionmanager.h"
-#include "isomodifycontactlist.h" //For roster_members_changed_cb
-#include "isoutils.h" //for loger and othr func
-#include "isofetchcontactlist.h" //For request_roster
-
-#include "msgliterals.h"
-#include "isoservermain.h"
-#include "isopresence.h"
-#include "isosearch.h"
-#include "msg_enums.h"
-
-enum disconnect_reason
-    {
-    EConnection_Status_Reason_None_Specified = 0,
-    EConnection_Status_Reason_Requested,
-    EConnection_Status_Reason_Network_Error,
-    EConnection_Status_Reason_Authentication_Failed,
-    };
-//userConnection globalCon;
-
-/*!	\file 
-*	Impliments the functions in isoconnectionmanager.h
-*/
-
-/*!	\brief Documented in the header file
-*/
-static void check_conn_properties(TpConn *conn)
-{
-    TpPropsIface *pres_iface;
-
-  	pres_iface = TELEPATHY_PROPS_IFACE (tp_conn_get_interface (
-        						conn, TELEPATHY_CONN_IFACE_PRESENCE_QUARK));
-  	if (pres_iface != NULL)
-  		{
-  		globalCon.pres_iface = pres_iface;
-	  	dbus_g_proxy_connect_signal(DBUS_G_PROXY(pres_iface),
-					    "PresenceUpdate",
-					    G_CALLBACK(telepathy_presence_handler),
-					    NULL, NULL);
-  		}
-  	else 
-  		{
-    	g_warning ("The connection object does not support " TP_IFACE_PROPERTIES);  
-  		}
-}
-
-/*! \brief This function is registered in action_login for statuschanged signal.
- *  This function is called by telepathygabble when the status of the user changes
- *  Once user is connected this function registers for NewChannel signal with telepathygabble 
- *  client is also informed of the status change..
- *
- *  \param proxy
- *  \param status status of the user ( connected/connecting/disconnected )
- *  \param reason reason for status change(server disconnected/ user requested etc.,)
- *  \param user_data  message header request
- *
- *  \return : Boolean True on success, false on failure
- */
-
-static gboolean status_changed_cb(DBusGProxy *proxy,
-				  guint status, guint reason,
-				  gpointer user_data)
-	{
-
-	
-	int err = 0;
-	
-	message_hdr_req* hdr_req = ( message_hdr_req* )user_data;
-	// create the msg queue
-	iso_logger( "%s", "In - status_changed_cb\n" );
-	
-	//switch to the connection status
-	switch ( status ) 
-		{
-		case EConnected:
-			{
-			//Connected..
-			iso_logger( "%s", "connected\n" );
-			//Get connection interfaces
-			check_conn_properties(TELEPATHY_CONN(proxy));
-			//Connect to the signal for new channels
-			dbus_g_proxy_connect_signal( DBUS_G_PROXY( globalCon.conn ), "NewChannel",
-			      G_CALLBACK( new_channel_handler ),
-			       NULL, NULL );
-		   	//send response to client..
-			err = send_response_to_client( hdr_req, reason, 1 );
-			//hdr_req would be freed here
-			//Disconnect the previous signal for connected
-			//This is to pass the diff msg hdr as cb userdata for disconnect
-			/*dbus_g_proxy_disconnect_signal( DBUS_G_PROXY( globalCon.conn ), StatusChangedStr,
-					G_CALLBACK( status_changed_cb ),
-					hdr_req );*/
-			
-			globalCon.conn_stat = connected;
-			break;
-			}
-		case EConnecting:
-			{//Connecting..
-			iso_logger( "%s", "connecting\n" );
-			//already done after creating the thread
-			//globalCon.conn_stat = connecting;
-			break;
-			}
-		case ENotConnected: 
-			{
-			//DisConnected....
-			//Set the reason for disconnection
-			iso_logger( "%s : %d : %s : %d", "disconnected and reason is", reason, "state is ", globalCon.conn_stat );
-			//reset the flag to not connected
-			
-			//should here be  not_connected != globalCon.conn_stat  &&  disconnected != globalCon.conn_stat 
-			//and all login errors should set the conn_stat to disconnected
-			if ( not_connected != globalCon.conn_stat &&  disconnected != globalCon.conn_stat ) 
-				{
-				int success = 1;
-				int error = 0;
-				
-				action_logedout();
-				
-				//switch for the reason of logout
-				switch ( reason )
-				    {
-				    //set appropriate message types and error if any
-				    case EConnection_Status_Reason_None_Specified:
-				        if ( connecting == globalCon.conn_stat )
-				            {
-				            //not yet connected and user has cancelled the a/p
-				            hdr_req->message_type = ELogin_Request;
-				            error = ELOGIN_NONE_SPECIFIED;
-				            success = 0;
-				            }
-				        else {
-				            //connected and user has cancelled the a/p
-                            //state is going to be not connected as fr these cases ossadaptation is 
-                            //going to send handle request terminated signal 
-				            hdr_req->message_type = EUserEndGprs;
-				            
-				            }
-				        
-				        break;
-				    case EConnection_Status_Reason_Requested:
-				        hdr_req->message_type = ELogout_Request;
-				        
-				        break;
-				    case EConnection_Status_Reason_Network_Error:
-				        if ( connecting == globalCon.conn_stat )
-                            {
-                            //not yet connected and user has cancelled the a/p
-                            hdr_req->message_type = ELogin_Request;
-                            error = ELOGIN_NETWORK_ERROR;
-                            success = 0;
-                            }
-				        else {
-                            //state is going to be not connected as fr these cases ossadaptation is 
-				            //going to send handle request terminated signal
-                            hdr_req->message_type = EServer_DisConnect_Request;   
-                            
-				        }
-				        
-				        break;
-				    case EConnection_Status_Reason_Authentication_Failed:
-				        hdr_req->message_type = ELogin_Request;
-				        error = ELOGIN_AUTHENTICATION;
-				        success = 0;
-				        
-				        break;
-				    default:
-				        hdr_req->message_type = ELogin_Request;
-                        error = ELOGIN_AUTHORIZATION;
-                        success = 0;
-                        
-                        break;
-
-				    }
-				//to set to no more requests allowed
-				globalCon.conn_stat = not_connected;
-				
-				err = send_response_to_client( hdr_req, error, success );
-				
-				}
-						
-			break;
-			}
-		default:
-			{
-			break;	
-			}
-		
-		}
-
-	if ( 0 != err )
-		{
-		//failed
-		return ERROR;	
-		}
-	iso_logger( "%s", "out - status_changed_cb\n" );
-	return TRUE;
-	}
-	
-/*! \brief new_channel_handler is registered as a callback for any new 
- *  channels craetion request, in function status_changed_cb after status is changed 
- *  to log in. new_channel_handler creates channel and also registers for the signals
- *  MembersChanged for contact related channels and Recieved and SendError for IM
- *  related channels.
- *
- *  \param proxy unused
- *  \param object_path object path of the channel
- *  \param channel_type used to get a new channel
- *  \param handle_type used to get a new channel, channel handle type
- *  \param handle used to get a new channel, channel handle 
- *  \param suppress_handler unused
- *  \param user_data unused
- *
- *  \return void
- */
-static void new_channel_handler( DBusGProxy *proxy, const char *object_path,
-				const gchar *g_channel_type, guint handle_type,
-				guint handle, gboolean suppress_handler,
-				gpointer user_data )
-	{
-	
-	TpChan *new_chan = NULL;
-	UNUSED_FORMAL_PARAM(proxy);
-	UNUSED_FORMAL_PARAM(suppress_handler);
-	UNUSED_FORMAL_PARAM(user_data);
-	iso_logger( "%s", "In - new_channel_handler\n" );
-	
-	//create new channel
-	new_chan = tp_chan_new( globalCon.dbusConn,
-	       globalCon.connmgr_bus, object_path,
-		       g_channel_type, handle_type, handle );
-
-	if ( !new_chan ) 
-		{
-		return ;
-		}	
-		
-	
-	if ( strcmp( g_channel_type, TP_IFACE_CHANNEL_TYPE_CONTACT_LIST  ) == 0 
-	 		&& ( g_strrstr(object_path, "RosterChannel/known" )  ) )
-		{
-		//channel type is contact rosters..
-		//request for the roster
-			
-		globalCon.group_iface_known =
-	     	tp_chan_get_interface( new_chan,
-					      TELEPATHY_CHAN_IFACE_GROUP_QUARK);
-		//register for the members changed signal			      			      
-		dbus_g_proxy_connect_signal (globalCon.group_iface_known, "MembersChanged",
-						     G_CALLBACK (roster_members_changed_cb),
-						     NULL, NULL);			      		       
-				       
-		}
-	else if ( strcmp( g_channel_type, TP_IFACE_CHANNEL_TYPE_CONTACT_LIST  ) == 0 
-	 		&& ( g_strrstr(object_path, "RosterChannel/publish" )  ) )
-		{
-		//channel type is contact rosters..
-		//request for the roster
-			
-		globalCon.group_iface_publish =
-	     	tp_chan_get_interface( new_chan,
-					      TELEPATHY_CHAN_IFACE_GROUP_QUARK);
-		//register for the members changed signal			      			      
-		dbus_g_proxy_connect_signal (globalCon.group_iface_publish, "MembersChanged",
-						     G_CALLBACK (roster_members_changed_cb),
-						     NULL, NULL);
-					      		       
-		request_roster( EPublish_Channel );		       
-		} 		
-	else if ( strcmp( g_channel_type, TP_IFACE_CHANNEL_TYPE_CONTACT_LIST  ) == 0 
- 		&& (g_strrstr(object_path, "RosterChannel/subscribe") ) )
- 		  
-		{
-		//roster fetch should be done using subscribe, as it will give 
-		//current and remote pending members in differnet arrays, that can be sued on ui side
-		//local pending members can be fetched only using "RosterChannel/publish",that can be fetched if required
-		
-		globalCon.group_iface_subscribe =
-	     	tp_chan_get_interface( new_chan,
-					      TELEPATHY_CHAN_IFACE_GROUP_QUARK);
-					      
-			
-		//register for the members changed signal			      			      
-		dbus_g_proxy_connect_signal (globalCon.group_iface_subscribe, "MembersChanged",
-						     G_CALLBACK (roster_members_changed_cb),
-						     NULL, NULL);
-		request_roster( ESubscribe_Channel );
-	    				     
-					       
-		}
-				
-	//recieve message channel handlers
-	else if ( ( strcmp( g_channel_type, TP_IFACE_CHANNEL_TYPE_TEXT ) == 0 ) )
-		{
-		//recieve message 
-		if ( globalCon.text_channels == NULL )
-			{
-			globalCon.text_channels = g_hash_table_new_full( g_str_hash,
-				              g_str_equal,
-				             ( GDestroyNotify ) g_free,
-				             ( GDestroyNotify ) g_object_unref );	
-			}
-		if ( globalCon.text_channels ) 
-			{
-			g_hash_table_insert( globalCon.text_channels, 
-					g_strdup( object_path ), new_chan );		
-			}
-		
-		iso_logger( "b4 text_channel_init" );
-		//check for  new_chan objects for text channel should be loaclly stored/freed
-		text_channel_init( new_chan );
-		}
-	iso_logger( "%s", "Out - new_channel_handler\n" );
-	}    
-
-
-/*! \brief Is called after logout.. Any cleanup operations to
- *   be performed here. Setting isConnected to EFalse, cleaning up 
- *  of resources is done
- */
-void action_logedout() 
-	{
-	
-	iso_logger( "%s", "In - action_logedout\n" ); 
-    //not quiting the main loop
-    //release the connection manager
-    if ( globalCon.connmgr ) 
-	    {
-	    g_object_unref ( globalCon.connmgr );
-		globalCon.connmgr = NULL;	
-	    }
-	//release the dbus connection
-	if ( globalCon.dbusConn ) 
-	    {
-	    dbus_g_connection_unref ( globalCon.dbusConn );
-		globalCon.dbusConn = NULL;	
-	    }
-	//release the connection object
-	if ( globalCon.conn ) 
-	    {
-	    g_object_unref ( globalCon.conn );
-		globalCon.conn = NULL;	
-	    }
-	//release the text channels
-	if ( globalCon.text_channels ) 
-	    {
-	    g_hash_table_destroy( globalCon.text_channels ); 
-		globalCon.text_channels = NULL;	
-	    }
-	//release the subscribe interface   
-	if ( globalCon.group_iface_subscribe ) 
-	    {
-	    g_object_unref ( globalCon.group_iface_subscribe );
-		globalCon.group_iface_subscribe = NULL;	
-	    }
-	//release the publish interface       
-	if ( globalCon.group_iface_publish ) 
-	    {
-	    g_object_unref ( globalCon.group_iface_publish );
-		globalCon.group_iface_publish = NULL;	
-	    }
-	//release the known interface       
-	if ( globalCon.group_iface_known ) 
-	    {
-	    g_object_unref ( globalCon.group_iface_known );
-		globalCon.group_iface_known = NULL;	
-	    }
-	
-	iso_logger( "%s", "Out - action_logedout\n" );
-	}
-	
-/*! \brief Callback for the logout 
- * 
- *  \param proxy : unused
- *  \param error : unused
- *  \param userdata : unused
- *  \return : void
- */
-void logout_cb( DBusGProxy *proxy, GError *error, gpointer userdata )
-	{
-
-	iso_logger( "%s", "In - logout_cb\n" );
-        UNUSED_FORMAL_PARAM(proxy);
-        UNUSED_FORMAL_PARAM(error);
-        UNUSED_FORMAL_PARAM(userdata);
-	iso_logger( "%s", "Out - logout_cb\n" );
-	}
-	
-/*! \brief requests for closing of session. Also closes the search channel.
- *  \remark should not close the search channel
- * 
- *  Request for log - out
- *  \param pc - message  which has the request header
- *  \return : MEM_ALLOCATION_ERROR or 0
- */
-int action_logout( char* pc ) 
-	{
-	
-	TpConn* conn = globalCon.conn;
-	message_hdr_req *msg_hdr = NULL;
-
-	iso_logger( "%s", "In - action_logout\n" );
-    
-    if( globalCon.search_chan )
-	    {
-	    tp_chan_close_async( DBUS_G_PROXY( globalCon.search_chan ), search_chan_closed_cb, NULL );	
-	    }
-
-	//allocate memory and check for errors
-	msg_hdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-	if ( NULL == msg_hdr ) 
-		{
-		return MEM_ALLOCATION_ERROR;	
-		}
-	//intialize the memory to 0s
-    memset( msg_hdr, '\0', sizeof( message_hdr_req ) );
-    //read message header from buffer
-    memcpy( msg_hdr, pc, sizeof( message_hdr_req ) );
-	
-	//disconnect in async way as glib signal is not workin
-	tp_conn_disconnect_async( DBUS_G_PROXY( conn ), logout_cb, msg_hdr );
-	iso_logger( "%s", "Out - action_logout\n" );
-	
-	return 0;
-	}
-
-/*! \brief validates params, gets a dbus, creates a connection manager,
- *  and connection. Registers for the statuschange
- * 
- *  \param ls_hdr login struct
- *  \return Errors if invalid param or getting dbus, conn mgr or conn fails else 0
- */
-gint action_login( login_struct* ls_hdr ) 
-	{
-	
-	DBusGConnection *connection = NULL;
-	TpConnMgr *connmgr = NULL;
-	TpConn	*conn = NULL;
-	GError *error = NULL;
-	
-	gchar* def1 = NULL;
-	char* def2 = NULL;
-	char* def3 = NULL; 
-	
-	gchar* def4 = NULL;
-	guint def5 = 0;
-	gboolean def6 = 0;
-		
-	#ifdef __WINSCW__	
-	gchar* def8 = NULL;
-	guint def9 = 0; 
-	#endif
-		
-    //Build hash table
-    GHashTable *connection_parameters = NULL;
-    //initalize the Gvalues
-	GValue *value1 = g_new0(GValue, 1);
-	GValue *value2 = g_new0(GValue, 1);
-	GValue *value3 = g_new0(GValue, 1);
-	GValue *value4 = g_new0(GValue, 1);
-	GValue *value5 = g_new0(GValue, 1);
-	GValue *value6 = g_new0(GValue, 1);
-	
-	#ifdef __WINSCW__	
-	GValue *value9 = g_new0(GValue, 1);
-	GValue *value10 = g_new0(GValue, 1);
-	#endif
-	
-	//log message
-	iso_logger( "%s", "In - action_login\n" );
-	
-	//Check if all the mandatory settings are there
-	if ( NULL == ls_hdr->strs[0] || NULL == ls_hdr->strs[1] || NULL == ls_hdr->strs[2]
-		|| NULL == ls_hdr->strs[4] || NULL == ls_hdr->strs[5] ||
-		NULL == ls_hdr->strs[7] || NULL == ls_hdr->strs[8] || NULL == ls_hdr->strs[9] ) 
-		{
-		return INVALID_PARAMETERES;
-		}
-	//Only for winscw 	
-	#ifdef __WINSCW__
-	if ( NULL == ls_hdr->strs[10] || NULL == ls_hdr->strs[11] ) 
-		{
-		return INVALID_PARAMETERES;
-		}
-	#endif
-	
-	//0 is username
-	def1 = g_strdup( ls_hdr->strs[0] );
-	//1 is passwd
-	def2 = g_strdup( ls_hdr->strs[1] ) ; 
-	//2 is server addr
-	def3 = g_strdup( ls_hdr->strs[2] ) ; 
-	if ( NULL != ls_hdr->strs[3] ) 
-		{
-		//3 is resource	
-		def4 = g_strdup( ls_hdr->strs[3] ) ;
-		} 
-	else 
-		{
-		//Fix required from lalitha
-		//Is this manadatory? or Can this be NULL
-		def4 = g_strdup( TestId );
-		}
-	//4 is ssl
-	def5 = atoi( ls_hdr->strs[4] );
-	//5 is server port
-	def6 = atoi( ls_hdr->strs[5] );
-	//6 is IapId is not used
-	//def7 = g_strdup( ls_hdr->strs[6] ) ;
-	
-	iso_logger( "username is %s", ls_hdr->strs[0] );
-	iso_logger( "server is %s", ls_hdr->strs[2] );
-	iso_logger( "resource is %s", ls_hdr->strs[3] );
-	iso_logger( "ssl is %s", ls_hdr->strs[4] );
-	iso_logger( "server port is %s", ls_hdr->strs[5] );
-	iso_logger( "connmgr bus is %s", ls_hdr->strs[7] );
-	iso_logger( "connmgr path is %s", ls_hdr->strs[8] );
-	iso_logger( "protocol is %s", ls_hdr->strs[9] );
-	
-	
-	globalCon.connmgr_bus = strdup( ls_hdr->strs[7]);
-	
-	if ( NULL == globalCon.connmgr_bus ) 
-		{
-		return MEM_ALLOCATION_ERROR;
-		}
-	
-	#ifdef __WINSCW__
-	//7 is ProxyServer
-	def8 = g_strdup( ls_hdr->strs[10] ) ;
-	//proxy port
-	def9 = atoi( ls_hdr->strs[11] );
-	#endif
-	
-	//Get DBus - do not change the order of following calls to 
-	//dbus, g_hash_table_new
-	
-
-	connection = dbus_g_bus_get( DBUS_BUS_SESSION , &error);
-	
-	//DBus Connection is NULL		
-	//return with error
-	if ( connection == NULL ) 
-		{
-		if ( error ) 
-			{
-			g_error_free(error);
-			}
-		iso_logger( "failed in  connection == NULL " );
-		return DBUS_CONNECTION_ERROR;		
-		}
-	/* printf("connected to DBus with connection %p\n", connection);*/
-    globalCon.dbusConn = connection;
-
-	//Get connection manager
-	connmgr = tp_connmgr_new(connection, ls_hdr->strs[7], ls_hdr->strs[8],TP_IFACE_CONN_MGR_INTERFACE);
-	if ( connmgr == NULL ) 
-		{
-		iso_logger( "failed in tp_connmgr_new" );
-		//Free already allocated resources
-		//return with error
-		dbus_g_connection_unref ( globalCon.dbusConn );
-		globalCon.dbusConn = NULL;	
-		return TP_CONNMGR_ERROR;
-		}
-	
-	//Create values for hash table 
-	connection_parameters = g_hash_table_new( g_str_hash, g_str_equal );
-	if ( NULL == connection_parameters ) 
-		{
-		//Free already allocated resources
-		//return with error
-	    g_object_unref (connmgr);
-		connmgr = NULL;	
-		dbus_g_connection_unref ( globalCon.dbusConn );
-		globalCon.dbusConn = NULL;	
-		iso_logger( "failed in g_hash_table_new" );
-		return TP_HASHTABLE_ERROR;	
-		}
-		
-	//Add AccountStr values to hash table
-	g_value_init( value1, G_TYPE_STRING );
-	g_value_set_string ( value1, def1 );
-	g_hash_table_insert( connection_parameters, ( gpointer ) AccountStr, value1 ); 
-	
-	//Add PasswdStr values to hash table
-	g_value_init( value2, G_TYPE_STRING ); 
-	g_value_set_string ( value2, def2 );
-	g_hash_table_insert( connection_parameters, ( gpointer ) PasswdStr, value2 ); 
-	//Add ServerStr values to hash table
-	g_value_init(value3, G_TYPE_STRING); 
-	g_value_set_string (value3, def3);
-	g_hash_table_insert( connection_parameters, ( gpointer ) ServerStr, value3 ); 
-	//Add ResourceStr values to hash table
-	if ( NULL != def4 ) 
-		{
-		//This is not mandatory settings item
-		//so check for NULL value before useing it..
-		g_value_init( value4, G_TYPE_STRING ); 
-		g_value_set_string ( value4, def4 );
-		g_hash_table_insert( connection_parameters, ( gpointer ) ResourceStr, value4 ); 	
-		}
-	
-	//Add PortStr values to hash table
-	g_value_init(value5, G_TYPE_UINT); 
-	g_value_set_uint (value5, def6);
-    g_hash_table_insert(connection_parameters, ( gpointer ) PortStr, value5); 
-	//Add OldsslStr values to hash table
-    g_value_init(value6, G_TYPE_BOOLEAN);
-	g_value_set_boolean (value6, def5);
-    g_hash_table_insert(connection_parameters, ( gpointer ) OldsslStr, value6 ); 
-    //Settings Only for emulator
-    #ifdef __WINSCW__   
-    //Add proxy server values to hash table 
-    g_value_init(value9, G_TYPE_STRING); 
-	g_value_set_string (value9, def8);
-    g_hash_table_insert(connection_parameters, "https-proxy-server", value9); 
-
-	//Add proxy port values to hash table
-    g_value_init(value10, G_TYPE_UINT); 
-	g_value_set_uint (value10, def9);
-    g_hash_table_insert(connection_parameters, "https-proxy-port", value10); 
-	#endif
-
-    
-	//Get connection from connection manager - i.e., Login
-	conn = tp_connmgr_new_connection( connmgr,connection_parameters, ls_hdr->strs[9] );
-	
-	if ( !conn )
-		{
-		iso_logger( "failed in tp_connmgr_new_connection" );
-		//Free already allocated resources
-		//return with error
-		g_object_unref (connmgr);
-		connmgr = NULL;	
-		dbus_g_connection_unref ( globalCon.dbusConn );
-		globalCon.dbusConn = NULL;
-		
-		g_hash_table_destroy( connection_parameters );
-		return TP_CONNECTION_ERROR;
-		}
-		
-	
-	//register for StatusChanged callback - login / logout			      
-	dbus_g_proxy_connect_signal( DBUS_G_PROXY( conn ), StatusChangedStr,
-					G_CALLBACK( status_changed_cb ),
-					ls_hdr->hdr_req, NULL );
-	//Assign to global variable struct				
-	globalCon.conn = conn;
-	globalCon.connmgr = connmgr;
-	globalCon.dbusConn = connection;
-	//Free 
-	g_hash_table_destroy( connection_parameters );
-	iso_logger( "%s", "Out - action_login\n" );
-	
-	return 0;	
-	}	
-
-/*! \brief parses the message buffer and validates the parameters. The values are written
- *  to ls_hdr
- *
- *  \param aMsgBuffer - buf to be parsed
- *  \param ls_hdr - login_struct struct to which values are written 
- *  \param msg_len - no. of bytes in the message buffer aMsgBuffer
- *
- */
-
-gint parse_for_login( gchar* msg_buffer, login_struct** msg_struct, int msg_len ) 
-	{
-
-	char* bufPtr = NULL;
-	gint index = 0;
-	gint arg_count = 0;
-	gint str_len = 0;
-	char *str1 = NULL;
-	
-	message_hdr_req *msg_hdr = NULL;
-	
-	iso_logger( "%s","In - parse_for_login\n" );
-	//Reading of the message_hdr_req is done twice..
-	//should be changed to read once..
-	//Allocate memory and check for the error
-	msg_hdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-	if ( NULL == msg_hdr ) 
-		{
-		return MEM_ALLOCATION_ERROR;
-		}
-	//initalize memory to zero	
-    memset( msg_hdr, '\0', sizeof( message_hdr_req ) );
-    memcpy( msg_hdr, msg_buffer, sizeof( message_hdr_req ) );
-    //ownership of msg_hdr is transefred to msg_struct
-    ( *msg_struct )->hdr_req = msg_hdr;
-	
-	bufPtr = msg_buffer + sizeof( message_hdr_req );
-	
-	//validating each arg and copying it..
-	
-	while ( arg_count < LOGIN_ARG_COUNT ) 
-		{
-		//Get one string 
-		while(  index + str_len < msg_len  && '\0' != *( bufPtr  + index + str_len ) ) 
-			{
-			str_len++;
-			//Check if max param len no. of chars already read..
-			//if so return with error
-			if ( MAX_PARAM_LEN == index + str_len ) 
-				{
-				return INVALID_PARAMETERES;
-				}
-			}
-		//str_len == 0, means one setting attrib missing..
-		//Assign that to NULL..and continue		
-		if ( 0 == str_len ) 
-			{
-			( *msg_struct )->strs[arg_count] = NULL;
-			//Increment the no of args read by one
-			arg_count++;
-			index++;
-			continue;
-			}
-		//ownership of these strs is transfered to msg_struct
-		//Allocate memory and check for the error	
-		str1 = ( char* ) malloc ( str_len + 1 );
-		if ( NULL == str1 ) 
-			{
-			return MEM_ALLOCATION_ERROR;
-			}
-		//Copy the string from buffer
-		//copy '\0' as well
-		memcpy( str1, bufPtr + index, str_len + 1 ); 
-		//Assign to the array
-		( *msg_struct )->strs[arg_count] = str1;
-		//Skip the '\0' already read..
-		index += str_len + 1;
-		//reset the str_len to read next char
-		str_len = 0;
-		//Increment the no of args read by one
-		arg_count++;
-		
-		}
-	iso_logger( "%s", "Out - parse_for_login\n" );
-	return 0;
-	}
-/*! \brief Calls parse_for_login to parse and validate the arguments
- *  And then calls action_login for to do actual login
- *
- *  \param aMsgBuf message buffer
- *  \param msg_len - len of the message
- */
-gint action_parse_login( char* aMsgBuf, int msg_len ) 
-	{
-
-	gint message_type_err = 0;
-	login_struct* message_struct;
-	gint arg_count = 0;
-	
-	iso_logger( "%s", "In - action_parse_login\n" );
-	//Allocate memory and check for errors
-	message_struct = ( login_struct* ) malloc( sizeof ( login_struct ) );
-	if ( NULL == message_struct ) 
-		{
-		return MEM_ALLOCATION_ERROR;
-		}
-	//intialize memory to 0s
-	memset ( message_struct, '\0', sizeof ( login_struct ) );
-	
-	//Parse the message into login parameters
-	message_type_err = parse_for_login( aMsgBuf, &message_struct, msg_len );
-	//If no error in parsing do a login
-	if ( !message_type_err ) 
-		{
-		//parse passed
-		message_type_err = action_login( message_struct );
-		
-		}
-	//check if the pointer is not pointing to NULL
-	//And free the memory	
-	for( arg_count = 0; arg_count < LOGIN_ARG_COUNT; arg_count++ ) 
-		{
-		if ( NULL != message_struct->strs[arg_count] ) 
-			{
-			free ( message_struct->strs[arg_count] );
-			}
-		}
-	free ( message_struct );
-	iso_logger( "%s", "Out - action_parse_login\n" );
-	return message_type_err;
-	}
-	
-
--- a/isolationserver/isoserver/src/isofetchcontactlist.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,644 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isofetchcontactlist.h
-*  Part of     : isolation server.
-*  Version     : %version: 17 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
-#include <dbus/dbus-glib.h>
-#include <glib.h>
-
-#include "isofetchcontactlist.h"
-#include "isoutils.h"
-#include "msg_enums.h"
-#include "msgliterals.h"
-
-const guint KMaxContactFetchCount = 500;
-
-static guint cur_mem_len;
-static guint local_mem_len;
-static guint remote_mem_len;
-
-static gint cur_last_index = 0;
-static gint local_last_index = 0;
-static gint remote_last_index = 0;
-
-
-/*! \brief This function is called as a callback to get the contact names from 
- *  contact handles. Contact names are sent to client in multiple packets of
- *  size MAX_MSG_SIZE
- *
- *  \param proxy unused
- *  \param handles_names 2D array of contact names
- *  \param error error if any 
- *  \param userdata msg_type
- */
-static void inspect_handles_cb( DBusGProxy *proxy,char **handles_names,
-				 GError *error, gpointer userdata ) 
-	{
-	guint i;
-	gint err = 0;
-	gint* msg_type = ( gint* ) userdata;
-	
-	gchar** members = NULL;
-	guint* mem_count = 0;
-	gint* last_index = NULL;
-	
-	
-	iso_logger( "%s", "in -- inspect_handles_cb" );
-	
-	if ( !handles_names || error )
-		{
-		//Handles error
-		iso_logger( "%s", "handle names error" );
-		free ( msg_type );
-		g_error_free(error);
-		return;
-		}
-	UNUSED_FORMAL_PARAM(proxy);
-	//Switch to the type of the message
-	//and get corresponding pointers to members and pointer to last index
-	switch ( *msg_type ) 
-		{
-		case ECurrent_Member_Contacts:
-			members = globalCon.current_members_names;
-			mem_count = &cur_mem_len;
-			last_index = &cur_last_index;
-			iso_logger( "%s count %d", "current members", mem_count );
-			break;
-		case ELocal_Pending_Contacts:
-			members = globalCon.local_pending_names;
-			mem_count = &local_mem_len;
-			last_index = &local_last_index;
-			iso_logger( "%s count %d", "local members", mem_count );
-			break;
-		case ERemote_Pending_Contacts:
-			members = globalCon.remote_pending_names;
-			mem_count = &remote_mem_len;
-			last_index = &remote_last_index;
-			iso_logger( "%s count %d", "remote members", mem_count );
-			break;
-			
-		default :
-		//Error in msg_type
-		//Wrong message type
-		//quit from here
-			free ( msg_type );
-			return;
-		}
-	
-	
-	//Add the contacts to the global member
-	for( i=0; handles_names[i]; i++ )
-		{
-		iso_logger( "members %s ",handles_names[i] );
-		members[*last_index] = handles_names[i];
-		(*last_index)++;
-		}
-		
-	iso_logger( "last index is %d", *last_index );
-	//If all the contacts are fetched send them to client
-	if ( *mem_count == *last_index )	
-		{
-		//send all contacts to client
-		err = send_contacts_to_client( members, *mem_count, *msg_type );
-		*last_index = 0;
-		if ( err ) 
-			{
-			//How to handle the error?
-			for ( i = 0; i < *mem_count; i++ ) 
-				{
-				free ( members[i] );
-				}
-			iso_logger( "%s", "There was error in send_contacts_to_client" );
-			free ( msg_type );
-			*mem_count = 0;
-			return;
-			}
-		*mem_count = 0;
-		
-		}
-	free ( msg_type );
-	iso_logger( "%s", "out -- inspect_handles_cb" );
-	}
-	
-/*! \brief This function is called if there are 0 contacts or there was an error
- *
- *  \param contact_type : Type of the contacts
- *  \param err : err if any, 0 otherwise
- */
-static gint send_fetch_contacts_error( gint contact_type , gint err ) 
-	{
-	
-	int result = 0;
-	int pri = MSG_PRI_NORMAL;
-	int timeout1 = TIME_OUT;
-	message_hdr_resp* msg_struct = NULL;
-	//control is here coz.. there are no contacts in list
-	
-	msg_struct = ( message_hdr_resp* ) malloc ( sizeof( message_hdr_resp ) );
-	if ( NULL == msg_struct ) 
-		{
-		return 	MEM_ALLOCATION_ERROR;
-		}
-	//initalize memory to zero
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	//create the header response
-	msg_struct->hdr_req.message_type = contact_type;
-	msg_struct->hdr_req.protocol_id = 0;
-	msg_struct->hdr_req.session_id = 0;
-	msg_struct->hdr_req.request_id = 0;
-	//Set error types and continue flag
-	if ( err < 0 ) 
-		{
-		//There was some error, pass on the mapped error
-		//to client
-		msg_struct->error_type = err; 
-		msg_struct->response = 0;	
-		}
-	else 
-		{
-		msg_struct->error_type = 0;
-		msg_struct->response = 1;	
-		}
-	msg_struct->continue_flag = 0;
-	//send the message to client that there are no contacts in the list
-	result = MsgQSend( RESPONSE_QUEUE, ( char* )msg_struct, sizeof( message_hdr_resp ),
-	 					pri, timeout1, &err );	
-	
-	free ( msg_struct );
-	 					
-	if ( result < 0 )
-		{
-		// failed to deliever
-		return MSG_Q_SEND_FAILED;
-		}
-	return 0;
-	}
-
-/*! \brief This function is a callback for request for the contacts 
- *  in local pending contatct list from server. This is 
- *  only called for publish channel members. fetch_contacts is called 
- *  to get the contact names from the handles. If there are no conatcts in 
- *  the list it calls send_fetch_contacts_error else requests for the contact names
- *  from the contact handles
- *
- *  \param proxy unused 
- *  \param current_members array of handles of current contatcs
- *  \param local_pending_members unused 
- *  \param remote_pending_members array of handles of remote pending contatcs
- *  \param error error if any
- *  \param userdata unused 
- */
-static void get_roster_local_member_cb( DBusGProxy *proxy,GArray* current_members, 
-			GArray* local_pending_members, GArray* remote_pending_members, 
-			GError *error, gpointer userdata ) 
-	{
-	
-	gint err = 0;
-	gint* msg_type = ( gint* ) malloc ( sizeof ( gint ) );
-	
-	iso_logger( "%s", "in -- get_roster_member_cb_local" );
-	UNUSED_FORMAL_PARAM(proxy);
-	UNUSED_FORMAL_PARAM(remote_pending_members);
-	UNUSED_FORMAL_PARAM(userdata);
-	UNUSED_FORMAL_PARAM(current_members);
-	if ( NULL != error ) 
-		{
-		//err in fetching contacts, send failed
-		//map the error code to isoserver
-		err =  error->code;
-		//Send that there are no contacts in the local pending
-		send_fetch_contacts_error( EFetch_Contacts_Error, err );
-		return;
-		}
-	//store the no. of lccal pending contacts
-	local_mem_len = local_pending_members->len; 
-	
-	if ( !local_last_index && local_mem_len ) 
-		{
-		//Is this the first time to be here..
-		//allocate memory
-		globalCon.local_pending_names = g_new0 ( char *, local_mem_len + 1);	
-		if ( NULL == globalCon.local_pending_names ) 
-			{
-			return ;
-			//err?
-			}
-		}
-	//ownership of this pointer is trnasfered to fetch_contacts
-	*msg_type = ELocal_Pending_Contacts;
-	//Fetch the contacts given the handles
-	err = fetch_contacts( local_pending_members, msg_type );
-	if ( err < 0 ) 
-		{
-		return;
-		}
-		
-	iso_logger( "%s", "out -- get_roster_member_cb_local" );		
-	}
-
-/*! \brief Requests the server to get contact names from the handles
- *  The contact names are returned in inspect_handles_cb. From there
- *  contacts are sent to client
- *
- *  \param contact_mem : handles to contact members
- *  \param msg_type : type of the message, which wil be passed to cb
- *  \return  Errors if any, else 0
- */
-static gint fetch_contacts( GArray* contact_mem, gint* msg_type ) 
-	{
-	
-	guint fetch_count=0;
-	guint fetch_loop_count=0;	
-	GArray* fetch_members = NULL;
-	
-	DBusGProxyCall* call_id = NULL;
-	TpConn* conn = globalCon.conn;
-	
-	gint i = 0;
-	
-	//allocate memory for the contacts to be fetched	
-	fetch_members = g_array_new (FALSE, FALSE, sizeof (guint32));
-	if ( NULL == fetch_members ) 
-		{
-		free ( msg_type );
-		return MEM_ALLOCATION_ERROR;
-		//err?
-		}
-	
-	//check if there are contacts to be retrived 
-	if ( contact_mem && contact_mem->len > 0 )
-		{
-
-		fetch_count = 0;
-	
-		//Divide contacts into a 'n' no. of groups .. n is calculated as below..
-		fetch_loop_count = ( contact_mem->len ) / KMaxContactFetchCount + ( 
-				( contact_mem->len % KMaxContactFetchCount ) ? 1 : 0 );
-		
-		//Get the contacts in terms of fetch_count
-		for ( i=0; i<fetch_loop_count; i++ )
-			{
-			g_array_remove_range( fetch_members,0,fetch_count);
-			
-			fetch_count = ( contact_mem->len <= KMaxContactFetchCount ) 
-					? contact_mem->len : KMaxContactFetchCount;
-			//Fetch the contacts 
-			g_array_append_vals (fetch_members,contact_mem->data,fetch_count);
-			g_array_remove_range(contact_mem,0,fetch_count);
-			//For the given handles contacts will be fetched in inspect_handles_cb
-			call_id = tp_conn_inspect_handles_async( DBUS_G_PROXY(conn),
-					       TP_CONN_HANDLE_TYPE_CONTACT ,fetch_members,
-					       inspect_handles_cb, msg_type );
-			//If call_id is null return from here..					       
-			if ( NULL == call_id ) 
-				{
-				free ( msg_type );
-				g_array_free( fetch_members, TRUE );
-				return MEM_ALLOCATION_ERROR;	
-				}
-					       	
-			}
-		}
-	else if ( contact_mem && contact_mem->len == 0 ) 
-		{
-		gint err = 0;
-		//There are no contacts for this type(cur or local or remote) of contacts
-		//Send that to client
-		err = send_fetch_contacts_error( *msg_type, 0 );
-		free ( msg_type );
-		if ( err < 0 ) 
-			{
-			//Free the msg_type.. Ownership was transfered to this function
-			
-			g_array_free( fetch_members, TRUE );
-			return err;	
-			}
-		
-		}
-	//msg_type is either freed in else part or is freed in inspect_handles_cb
-	//no need to free here
-	g_array_free( fetch_members, TRUE );
-	//Should the fetch_contacts be deleted?	
-	return 0;	
-	}
-	
-/*! \brief This function is a callback for request for the contacts 
- *  in msg_type(subscribe or publish) contatct list from server. This is 
- *  only called for subscribe channel members. fetch_contacts is called 
- *  to get the contact names from the handles. If there are no conatcts in 
- *  the list it calls send_fetch_contacts_error else requests for the contacts 
- *  from the handles
- *
- *  \param proxy unused 
- *  \param current_members array of handles of current contatcs
- *  \param local_pending_members unused 
- *  \param remote_pending_members array of handles of remote pending contatcs
- *  \param error error if any
- *  \param userdata unused 
- */
-static void get_roster_member_cb( DBusGProxy *proxy,GArray* current_members, 
-			GArray* local_pending_members, GArray* remote_pending_members, 
-			GError *error, gpointer userdata ) 
-	{
-	
-	int err = 0;
-	
-	guint j = 0;
-	
-	iso_logger( "%s", "in -- get_roster_member_cb" );
-	UNUSED_FORMAL_PARAM(proxy);
-	UNUSED_FORMAL_PARAM(userdata);
-	UNUSED_FORMAL_PARAM(local_pending_members);
-	if ( NULL != error ) 
-		{
-		//err in fetching contacts, send failed
-		//map the error code to isoserver
-		err =  error->code;
-		send_fetch_contacts_error( EFetch_Contacts_Error, err );
-		return;
-		}
-	//store the no. of current members
-	cur_mem_len = current_members->len;
-	//store the no. of remote members
-	remote_mem_len = remote_pending_members->len;
-	
-				
-	if ( !cur_last_index && cur_mem_len ) 
-		{
-		//Is this the first time to be here..
-		//allocate memory
-		globalCon.current_members_names = g_new0 ( char *, cur_mem_len + 1);	
-		if ( NULL == globalCon.current_members_names ) 
-			{
-			return ;
-			//err?
-			}
-		}
-		
-	if ( !remote_last_index && remote_mem_len ) 
-		{
-		//Is this the first time to be here..
-		//allocate memory
-		globalCon.remote_pending_names = g_new0 ( char *, remote_mem_len + 1);	
-		if ( NULL == globalCon.remote_pending_names ) 
-			{
-			return ;
-			//err?
-			}
-		}
-		
-	
-	//loop thru : 2 for current and remote
-	for ( j = 0; j < 2; j++ ) 
-		{
-		//This msg_type is sent to inspect_handles_cb
-		//Where it wil be deleeted
-		gint* msg_type = ( gint* ) malloc ( sizeof ( gint ) );
-		GArray* contact_mem = NULL;
-		switch ( j ) 
-			{
-			
-			case 0 : 
-			//ask for the current members first
-				*msg_type = ECurrent_Member_Contacts;
-				contact_mem = current_members;
-				break;
-				
-			case 1 :
-			//ask for remote pending contacts
-				*msg_type = ERemote_Pending_Contacts;
-				contact_mem = remote_pending_members;
-				break;
-				
-			default:
-				break;
-			}
-		//Fetch the contacts given the handles 
-		//ownership of msg_type is transfered to fetch_contacts
-		err = fetch_contacts( contact_mem, msg_type );
-		if ( err < 0 ) 
-			{
-			//There was some error
-			//return from here
-			return;
-			}
-		
-		}
-
-	iso_logger( "%s","out -- get_roster_member_cb" );
-	}
-
-
-/*! \brief this function requests for the contacts in its contatct list from server
- *  
- *  \param  type of the contacts channel( publish, subscribe )
- */
-void request_roster( enum channel_type type )
-	{
-
-   	DBusGProxyCall* call_id = NULL;
-   	
-   
-   	iso_logger( "%s", "in -- request_roster" );
-
-	//With the interface get the contacts 
-	//Request for all of the contacts in subscribe channel( remote and current 
-	//members )
-	if ( ESubscribe_Channel == type ) 
-		{
-		call_id = tp_chan_iface_group_get_all_members_async( globalCon.group_iface_subscribe, 
-				get_roster_member_cb, NULL );
-		//If call_id is NULL return from here..
-		if ( NULL == call_id ) 
-			{
-			return ;
-			}	
-		}
-	else if ( EPublish_Channel == type ) 
-		{
-		//Request for all of the contacts in publish channel
-		call_id = tp_chan_iface_group_get_all_members_async( globalCon.group_iface_publish, 
-				get_roster_local_member_cb, NULL );
-		//If call_id is NULL return from here..
-		if ( NULL == call_id ) 
-			{
-			return ;
-			}
-		}
-	
-	iso_logger( "%s", "out -- request_roster" );	
-	}
-
-/*! \brief Sends contacts to the client. Contact names are sent to client in multiple 
- *  packets of size less than or equal to MAX_MSG_SIZE. Contact will be sent as a whole. 
- *  A single contact will not be sent in two consecutive packets
- *
- *  \param members : Contacts to be sent to client
- *  \param mem_count : no. of contacts 
- *  \param contact_type : type of the contact
- *  \return error code..
- */
-gint send_contacts_to_client( gchar** members, gint mem_count, 
-	gint contact_type ) 
-	{
-	int result = 0;
-	int pri = MSG_PRI_NORMAL;
-	int timeout1 = TIME_OUT;
-	int err = 0;
-	
-	char* memBuf = NULL;
-	int i = 0;
-	int one_msg_size = sizeof ( message_hdr_resp );
-	int mem_len = 0;
-	message_hdr_resp* msg_struct = NULL;
-	
-	iso_logger( "%s", "in -- send_contacts_to_client" );
-	
-	//allocate memory and check for the returned value
-	msg_struct = ( message_hdr_resp* ) malloc ( sizeof( message_hdr_resp ) );
-	if ( NULL == msg_struct ) 
-		{
-		return 	MEM_ALLOCATION_ERROR;
-		}
-		
-	memBuf = ( gchar* ) malloc( MAX_MSG_SIZE );
-	if ( NULL == memBuf ) 
-		{
-		// ? 
-		free ( msg_struct );
-		return MEM_ALLOCATION_ERROR;
-		}
-
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	//create the response header with type contact fetch
-	msg_struct->hdr_req.message_type = contact_type;
-	msg_struct->hdr_req.protocol_id = 0;
-	msg_struct->hdr_req.session_id = 0;
-	msg_struct->hdr_req.request_id = 0;
-	
-	memset( memBuf, '\0', MAX_MSG_SIZE );
-	//sending the req to server
-	
-	//assuming that one contact size will not be 
-	//greater than max_msg_size
-	for ( i = 0; i <= mem_count - 1; i++ ) 
-		{
-		mem_len = strlen ( members[i] ) + 1;
-		//check if this contact fits in the current message 
-		//to be sent to client
-		//one_msg_size is used to navigate thru' the buffer
-		if ( one_msg_size + mem_len < MAX_MSG_SIZE ) 
-			{
-			strcpy( memBuf + one_msg_size, members[i] );
-			one_msg_size += mem_len;
-			//if i == mem_count - 1 no need to continue
-			//Control should fall off(i.e., contacts fit in
-			//this message )
-			if ( i < mem_count - 1 )
-				{
-				continue;	
-				}
-			//If falling off mem_len should be reset because
-			//it has been already added to one_msg_size
-			mem_len = 0;
-			}
-		msg_struct->error_type = 0;
-		msg_struct->response = 1;	
-		//if i == mem_count - 1 and all contacts fits in this message
-		//to be sent to server
-		if ( i == mem_count - 1 && one_msg_size + mem_len < MAX_MSG_SIZE )	
-			{
-			msg_struct->continue_flag = 0;	
-			}
-		else 
-			{
-			msg_struct->continue_flag = 1;	
-			}
-		if ( i == mem_count - 1 && one_msg_size + mem_len > MAX_MSG_SIZE ) 
-			{
-			//One more contact is there (in which case i == mem_count - 1))
-			//And that can't be sent because of limitation of 
-			//message size..
-			//so iterate one more time
-			i--;
-			}
-		//Append '\0' to mark the end..
-		one_msg_size++;
-		*( memBuf + one_msg_size ) = '\0';
-		memcpy( memBuf, msg_struct, sizeof( message_hdr_resp ) );
-		//send to the client
-		result = MsgQSend( RESPONSE_QUEUE, memBuf, one_msg_size, pri,
-				 timeout1, &err );
-				 
-		
-		if ( result < 0 )
-			{
-			free ( memBuf );
-			iso_logger( "%s", "in -- send_contacts_to_client MSG_Q_SEND_FAILED" );
-			// failed to deliever	
-			//free the allocated memory
-			free ( msg_struct );
-			
-			return MSG_Q_SEND_FAILED;
-			}
-		
-		memset( memBuf , '\0', MAX_MSG_SIZE );
-		//reset the one_msg_size for new message to be sent 
-		one_msg_size = sizeof ( message_hdr_resp );	
-
-		}
-	//free the buffer
-	free ( memBuf );
-	
-	free ( msg_struct );
-	//Should the members be freed here?
-	for ( i = 0; i < mem_count; i++ ) 
-		{
-		iso_logger( "freeing contact %s", members[i] );
-		free ( members[i] );
-		}
-	iso_logger( "%s", "out -- send_contacts_to_client" );
-			
-	return 0;
-	}
-
-/*! \brief Documented in the header file
-*/
-void fetch_cached_contacts()
-    {
-    
-    request_roster( EPublish_Channel );
-    request_roster( ESubscribe_Channel );
-    
-    }
--- a/isolationserver/isoserver/src/isogetsearchkeys.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,318 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isogetsearchkeys.c
-*  Part of     : isolation server.
-*  Version     : %version: 7 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-/*!	\file 
-*	Impliments the functions in isosearch.h
-*/
-
-/*! \def For malloc
-*/
-#include <stdlib.h>
-
-/*! \def For string operations
-*/
-#include <string.h>
-
-
-/*! \def For search related declarations
-*/
-#include "isosearch.h"
-
-/*! \def For globalCon
-*/
-#include "isoservermain.h"
-
-/*! \def For tp_chan_type_search_async
-*/
-#include "tp-chan-type-search-gen.h"
-
-/*! \def For MSG_PRI_NORMAL
-*/
-#include "msgqlib.h"
-
-/*! \def For message_hdr_req
-*/
-#include "isoutils.h"
-
-/*! \def For RESPONSE_QUEUE
-*/
-#include "msgliterals.h"
-
-#include "isogetsearchkeys.h"
-
-/*!	\struct key_value_struct isoserach.h
-*	\brief This struct is used for to form the msg buffer that will be sent to client
-*	\var msg As the key/value pairs are read those will be appended to msg
-* 	\var len is the no. of bytes appended to msg
-*/
-struct key_value_struct 
-	{
-	gchar* msg;
-	gint len;		
-	};
-	
-/*! \typedef struct key_value_struct to key_value_struct
-*/	
-typedef struct key_value_struct key_value_struct;
-
-/*! \struct get_search_keys_cb_struct isosearch.h
-*	\brief This struct bundles multiple(two ?) pointers to be passed
-*	to getsearch keys callback
-*	\var search_chan which should be closed when search keys are recieved
-*	\var hdr_req message header request
-*/	
-struct get_search_keys_cb_struct 
-	{
-	TpChan* search_chan;
-	message_hdr_req* hdr_req;	
-	};
-	
-/*! \typedef struct get_search_keys_cb_struct to get_search_keys_cb_struct 
-*/		
-typedef struct get_search_keys_cb_struct get_search_keys_cb_struct;	
-
-
-static void getsearchkeys_cb( DBusGProxy *proxy,  gchar *instr,
-  gchar **keys, GError *error, gpointer userdata );
-  
-/*!	\brief get_search_keys_reply is called as a callback to get_search_keys
-*	This function creates a new channel and requests telepathy for the 	
-*	search keys
-*
-*	\param userdata message header request
-*
-*	\remark calling tp_conn_new_channel results into esock_client 8 panic
-*	Instead of calling function tp_conn_new_channel which makes a 
-*	a call to tp_conn_request_channel, tp_conn_request_channel_async is 
-*	called directly. 
-*/	
-
-static void get_search_keys_reply( DBusGProxy *proxy, char *chan_object_path, 
- 			GError *error, gpointer user_data )
-	{
-		                               
-	
-	TpChan *search_chan = NULL;
-	DBusGProxy *search_iface = NULL;
-	get_search_keys_cb_struct* chan_struct = NULL;
-	message_hdr_resp* hdr_req = ( message_hdr_resp* )user_data;
-	
-	UNUSED_FORMAL_PARAM( proxy );
-	iso_logger( "in get_search_keys" );
-	
-	if ( error )
-		{
-		send_response_to_client( (message_hdr_req*)hdr_req, error->code, 0 );	
-		free ( hdr_req );
-		return;			
-		}
-		
-	//Create new channel for the search
-	search_chan = tp_chan_new( globalCon.dbusConn, globalCon.connmgr_bus, chan_object_path, 
-	TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH, TP_CONN_HANDLE_TYPE_NONE, 0 );
-
-	
-	if ( NULL == search_chan ) 
-		{
-		free ( hdr_req );
-		return ;			
-		}							
-	//Get chan interface					
-	search_iface = tp_chan_get_interface( search_chan, 
-		TELEPATHY_CHAN_IFACE_CONTACTSEARCH_QUARK );	
-					
-	if ( NULL == search_iface ) 
-		{
-		tp_chan_close_async( DBUS_G_PROXY( search_chan ), 
-					search_chan_closed_cb, NULL );
-		free ( hdr_req );			
-		return ;			
-		}
-	
-	chan_struct = ( get_search_keys_cb_struct* ) malloc ( 
-			sizeof ( get_search_keys_cb_struct ) );
-			
-	chan_struct->search_chan = search_chan;
-	chan_struct->hdr_req = ( message_hdr_req* ) malloc ( 
-							sizeof( message_hdr_req ) );
-	if ( NULL == chan_struct->hdr_req ) 
-		{
-		tp_chan_close_async( DBUS_G_PROXY( search_chan ), 
-					search_chan_closed_cb, NULL );
-		free ( hdr_req );			
-		return ;			
-		}							
-	//memset( chan_struct->hdr_req, )
-	memcpy( chan_struct->hdr_req, hdr_req, sizeof( message_hdr_req ) );
-		
-	
-	//Ownership of search_chan and chan_struct->hdr_req, 
-	//chan_struct is passed to getsearchkeys_cb
-	free ( hdr_req );
-	
-	tp_chan_type_search_get_search_keys_async( search_iface, 
-				getsearchkeys_cb, chan_struct );		
-		
-	iso_logger( "out get_search_keys" );
-	
-		
-	}
-
-/*!	\brief Function to get the search keys(fields on which to
-*	search ) supported by server
-* 	
-*	\param hdr_req message header request
-*	
-*	\return gint MEM_ALLOCATION_ERROR
-*/
-gint get_search_keys( message_hdr_resp* hdr_req ) 
-	{
-	
-	message_hdr_resp* hdr_resp = ( message_hdr_resp* ) 
-						malloc ( sizeof ( message_hdr_resp ) );
-						
-	if ( NULL == hdr_resp )
-		{
-		return MEM_ALLOCATION_ERROR;		
-		}
-	
-	memcpy( hdr_resp, hdr_req, sizeof ( message_hdr_resp ) );
-	//ownership hdr_resp transfered
-	tp_conn_request_channel_async( DBUS_G_PROXY( globalCon.conn ),
-	                               TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH, 
-	                               TP_CONN_HANDLE_TYPE_NONE, 0, TRUE,
-	                               get_search_keys_reply, (gpointer)hdr_resp ) ;
-	
-	return 0;			
-	}
-
-
-/*!	\brief This is a callback to get_search_keys. The search keys
-*	are sent to the requested client
-*
-*	\param proxy unused
-*	\param instr instruction on search keys
-*	\param keys 2D string array of search keys supported by server
-*	\param error Error from server, if any
-*	\param userdata get_search_keys_cb_struct 
-*/	
-
-static void getsearchkeys_cb( DBusGProxy *proxy,  gchar *instr,
-  gchar **keys, GError *error, gpointer userdata )
-	{
-	
-	get_search_keys_cb_struct * search_struct = ( 
-				get_search_keys_cb_struct* )userdata;
-				
-	message_hdr_resp hdr_resp;
-	gchar* msg = NULL;
-	gint i = 0;
-	gint len = 0;
-	
-	gint pri = MSG_PRI_NORMAL;
-	gint result = 0;
-	gint timeout = NO_WAIT;
-	gint err = 0;
-	
-	
-	UNUSED_FORMAL_PARAM( proxy );
-	UNUSED_FORMAL_PARAM( instr );
-	iso_logger( "in getsearchkeys_cb" );
-	
-	
-	tp_chan_close_async( DBUS_G_PROXY( search_struct->search_chan ), 
-					search_chan_closed_cb, NULL );
-	
-	if ( error ) 
-		{
-		send_response_to_client( search_struct->hdr_req, error->code, 0 );	
-		
-		free ( search_struct->hdr_req );
-		free ( search_struct );
-		
-		return;
-		}
-		
-	//Create the response header to be sent to client
-	//Copy the message header request
-	hdr_resp.hdr_req.message_type = ESearch_Get_Keys;
-	hdr_resp.hdr_req.protocol_id = search_struct->hdr_req->protocol_id;
-	hdr_resp.hdr_req.request_id = search_struct->hdr_req->request_id;
-	hdr_resp.hdr_req.session_id = search_struct->hdr_req->session_id;
-	//set continue flag
-	hdr_resp.continue_flag = 0;
-	hdr_resp.error_type = 0;
-	hdr_resp.response = 1;	
-	
-	free ( search_struct->hdr_req );
-	free ( search_struct );
-	
-	//Allocate memory for the message and set memory to '\0'	
-	msg = ( gchar* ) malloc ( MAX_PARAM_LEN );
-	if ( NULL == msg ) 
-		{
-		iso_logger( "malloc error @ pairs.msg" );
-		return ;			
-		}
-	memset( msg, '\0', MAX_PARAM_LEN );
-	len = 0;
-	//Copy the response
-	memcpy( msg, &hdr_resp, sizeof ( message_hdr_resp ) );
-	len += sizeof( message_hdr_resp );
-	
-	
-	iso_logger( "Get search keys : Keys are" );
-	
-	while ( keys[i] )
-		{
-		strcpy( msg + len, keys[i] );
-		iso_logger( "Key %d : %s", i, keys[i] );
-		len += 	strlen( keys[i] ) + 1;
-		i++;
-		}
-		
-	iso_logger( "Get search keys : Keys End" );
-	
-	//End the message with a '\0'
-	len++;
-	msg[len] = '\0';
-	//Send the message to client
-	result = MsgQSend( RESPONSE_QUEUE, msg, len, 
-						pri, timeout, &err );
-	
-	
-	
-	if ( result )
-		{
-			
-		}
-	
-	iso_logger( "out getsearchkeys_cb" );	
-	
-	}
--- a/isolationserver/isoserver/src/isoim.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,874 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoim.c
-*  Part of     : isolation server instant messaing componenet.
-*  Version     : %version: bh1cfmsg#28 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-#include "tp-conn-gen.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "isoim.h"
-#include "isoutils.h"
-
-#include "msgliterals.h"
-#include "msg_enums.h"
-
-/*!	\file 
-*	Impliments the functions in isoim.h
-*/
-
-/*! /brief requests the handles for the contacts to which message should be sent.
- *  request_handles_cb is registered as a callback. necessary data to be sent is 
- *  passed as userdata 
- *
- *  /param msghdr request header that will be passed back to client
- *  /param contact_id all contacts
- *  /param message
- *  /param no_cntcts  no. of contacts the msg shld be sent to
- *  /return : error code on failure, 0 on success
- */
-void send_message( send_msg_struct* msg_hdr,
-					const gchar **contact_id ) 
-	{
-	 
-	//request for the handles to contact
-	tp_conn_request_handles_async( DBUS_G_PROXY( globalCon.conn ),
-						TP_CONN_HANDLE_TYPE_CONTACT,
-						contact_id,request_handles_cb, ( gpointer ) msg_hdr );	 							
-	}
-
-
-/*! /brief handles for contacts are recieved and text channel created (if already
- *  there same is used) message is sent to those contacts.
- *  
- *  
- *  /param proxy unused
- *  /param handles contact handles
- *  /param error error if any in getting the handles for contact 
- *  /param userdata Has request header and message to be sent to reciever
- *  The request header is used for mapping of response to correct request
- *
- */
-void request_handles_cb(DBusGProxy *proxy, GArray *handles, GError* error, gpointer message)
-	{
-	TpChan* text_chan = NULL; //for send msg
-	guint contact_handle;
-	DBusGProxy  *text_iface = NULL;
-	send_msg_struct* msg_hdr = ( send_msg_struct* ) message;
-
-	UNUSED_FORMAL_PARAM(proxy);
-	//There was error in requesting handles to the contacts
-	if ( error )
-		{
-		iso_logger( "%s", error->message);
-		 
-		iso_logger( "err code: %d ", error->code );
-		//Send error to client
-		//What happens if 
-		send_response_to_client( msg_hdr->hdr_req,  error->code, 0 );
-		g_error_free(error);
-		return; 	
-		}
-	 
-	contact_handle = g_array_index( handles, guint, 0 );
-	//get the text channel for the contact handle 
-	text_chan = g_hash_table_find( globalCon.text_channels,
-					      (GHRFunc) text_channels_find_func,
-					      &contact_handle);	 
-
-	iso_logger( "text_chan : %d ", text_chan );
-	
-	//create a text channel						      
-	if ( text_chan == NULL )	
-		{
-			 
-		text_chan = tp_conn_new_channel( globalCon.dbusConn,globalCon.conn,globalCon.connmgr_bus,TP_IFACE_CHANNEL_TYPE_TEXT,
-									TP_CONN_HANDLE_TYPE_CONTACT,contact_handle, TRUE );	
-									
-		if(!text_chan)
-			{
-			send_response_to_client( msg_hdr->hdr_req, NOT_CONNECTED , 0 );
-			g_error_free(error);
-			return;	
-			}
-			
-		iso_logger( "%s", dbus_g_proxy_get_path(DBUS_G_PROXY(text_chan)));							
-		g_hash_table_insert( globalCon.text_channels,g_strdup(dbus_g_proxy_get_path(DBUS_G_PROXY(text_chan))),text_chan);							
-		}
-	 	
-	//get interface..	
-	text_iface = tp_chan_get_interface( text_chan,TELEPATHY_CHAN_IFACE_TEXT_QUARK );	
-	
-
-	
-	if ( NULL == text_iface ) 
-		{
-		free( msg_hdr->msg );
-		free( msg_hdr->hdr_req );	
-		free( msg_hdr );
-
-		//Free proxy ?
-		return ;
-		}
-
-	//send async
-	tp_chan_type_text_send_async( text_iface, TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL, 
-		( const char * )msg_hdr->msg,sendreply_cb, msg_hdr->hdr_req ); // see if any user date should be passed
-	
-	
-	iso_logger( "Message being sent is %s", msg_hdr->msg ); 	 
-	
-	free( msg_hdr->msg );
-	free( msg_hdr );
-	 	
-	iso_logger( "%s", "tp_chan_type_text_send_async after\n"); 	
-	}
-
-/*! /brief parse the params for send and validates them
- * 
- *  /param aMsgBuffer message buffer to be parsed
- *  /param aContactId pointer to an array of strings, After this function this 
- *  arg wil have the contacts to which message should be sent to
- *  /param aSendMsg message to be sent
- *  /param len : msg_len no. of bytes in aMsgBuffer
- *  /param contact_count : no. of contacts
- *  /return returns error code on failure, or 0
- */
-gint parse_for_send( gchar* msg_buf, gchar*** contact_ids, 
-			gchar** send_msg, gint msg_len, gint* contact_count ) 
-	{
-	gchar* users = NULL;
-	
-	gint len = 0;
-	gint err = 0;
-	
-	iso_logger( "%s", "In - parse_for_send\n" );
-	//skip the msg_hdr part
-	len += sizeof( message_hdr_req );
-	//example send message - message header omitted..
-	//test.ximp@gmail.com\0ximp.telepathy@gmail.com\0\0hi, how r u?\0
-	//					  ^ 						^ ^	            ^ 
-	//contact1------------|contact2-----------------|-|message------|
-	
-	//gets the contacts, returns no. of contacts on success 
-	//error code on error
-	err = parse_into_array_of_strings( msg_buf, contact_ids, &len, msg_len,
-	 contact_count );
-	if ( err < 0 ) 
-		{
-		//An error has occured, so propagate to next level
-		return err;
-		}
-	
-		
-	/*
-	Will never come here.. coz it has been already handled in 
-	parse_into_array_of_strings
-	if ( *contact_count > MAX_MSG_RECEIPIENTS ) 
-		{
-		return INVALID_PARAMETERES;
-		}*/
-	//reset the userlen	
-	
-	//parse for the message..
-	err = parse_a_string( msg_buf, &users, &len, msg_len );
-	
-	if ( err < 0 ) 
-		{
-		return err; 
-		}
-	//set the pointer to send message
-	*send_msg = users;
-	
-	iso_logger( "%s", "Out - parse_for_send\n" );	
-	//return the no. of contacts to be sent to	
-	return 0;
-	}
-/*! /brief calls parse_for_send to parse the parameters, and calls 
- *  send_message for sending the message
- * 
- *  /param buf : message buffer to be parsed
- *  /param len : msg_len no. of bytes in msg_buf
- *
- *  /return gint : parse error code if any
- */
-int action_parse_send( gchar* buf, gint msg_len ) 
-	{
-	gchar** contactid = NULL;
-	gchar* sendmsg = NULL;
-	message_hdr_req *msg_hdr = NULL;
-	gint meesage_type_err = 0;
-	//It is very imp to initailize the contact_count to 0 here
-	gint contact_count = 0;
-	send_msg_struct* msg_struct = NULL;
-	//parse contacts, message.. 	
-	iso_logger( "%s", "In - action_parse_send\n" );
-	meesage_type_err = parse_for_send( buf, 
-			&contactid,&sendmsg, msg_len, &contact_count );
-	
-	//if <= 0 there is some error in the message formation
-	if ( contact_count > 0  && meesage_type_err == 0 ) 
-		{
-		
-		//send message
-		msg_hdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-		if ( NULL == msg_hdr ) 
-			{
-			//free resources allocated for this operation
-			free_msg_args( contactid, contact_count, sendmsg );
-			return MEM_ALLOCATION_ERROR;
-			}
-	    memset( msg_hdr, '\0', sizeof( message_hdr_req ) );
-	    //read message header from buffer
-	    memcpy( msg_hdr, buf, sizeof( message_hdr_req ) );
-	    
-	    //fill the contacts and message into a struct
-	    msg_struct = ( send_msg_struct* ) malloc ( sizeof ( send_msg_struct ) );
-	    if ( NULL == msg_struct ) 
-			{
-			free ( msg_hdr );
-			free_msg_args( contactid, contact_count, sendmsg );
-			return MEM_ALLOCATION_ERROR;
-			}
-		msg_struct->hdr_req = msg_hdr;
-		msg_struct->msg = sendmsg;
-		//msg_struct is sent callback... which should be feed there..
-		send_message( msg_struct, 
-				( const gchar** ) contactid );
-		}
-	else  
-		{
-		//there was some error, free resources allocated for this operation
-		free_msg_args( contactid, contact_count, sendmsg );
-		}
-	
-	iso_logger( "%s", "Out - action_parse_send\n" );
-	//return error on failure, or no. of contacts message sent to on success
-	return meesage_type_err;
-	
-	}
-
-/*! /brief Function to check if the channel is already present in the maintained hash
- *  text_channels_find_func. 
- *
- *  /param key unused
- *  /param text_channel hash table element
- *  /param contact_handle to be searched item 
- *  /return boolean 
- */
-gboolean text_channels_find_func(	gchar *key,
-									TpChan *text_channel,
-									guint *contact_handle )
-	{
-	iso_logger( "%s", "In - text_channels_find_func\n" );
-	//Check for the handles
-	UNUSED_FORMAL_PARAM(key);
-	if ( ( text_channel->handle == *contact_handle ) )
-		return TRUE;
-
-	return FALSE;
-	} 
-
-/*! /brief Once the send request is sent to n/w server this callback is called
- * 
- *  /param proxy unused
- *  /param error n/w error if any
- *  /param userdata message header from which a response is formed
- *  /return void
- */
-void sendreply_cb( DBusGProxy *proxy, GError *error, gpointer userdata ) 
-	{
-	int err = 0;
-
-	message_hdr_req* msg_hdr = ( message_hdr_req* ) userdata;
-	// create the msg queue
-	//user data is of type message_hdr_req
-	iso_logger( "%s", "In - sendreply_cb\n" );
-    UNUSED_FORMAL_PARAM(proxy);
-	if ( NULL != error ) 
-		{
-		//There was some error
-		//send the response for the msg_hdr request to client
-		err = send_response_to_client( msg_hdr,  error->code, 0 );
-		//free the message
-		g_error_free(error);
-		
-		}
-	else 
-		{
-		//send the response for the msg_hdr request to client
-		err = send_response_to_client( msg_hdr, 0, 1 );
-		}
-	//Free the header recved as callback userdata
-	free( msg_hdr );
-
-	if ( err < 0 )
-		{
-		// failed to delievered	
-		return ;
-		}
-	iso_logger( "%s", "Out - sendreply_cb\n" );
-	}
-	
-/*! /brief This function is called by tg to as a response to request for the 
- *  handles from the text channel. If there is no error, sent message( 
- *  which has failed ) with its deatils is then sent to client
- * 
- *  /param proxy unused
- *  /param handles_names contac names (sender name)
- *  /param error error if any
- *  /param userdata send_error_struct
- *  /return void
- */     
-static void inspect_handles_for_error_cb( DBusGProxy *proxy,char **handles_names,
-				 GError *error, gpointer userdata ) 
-	{
-	
-	gint pri = MSG_PRI_NORMAL;
-	gint result = 0;
-	gint timeout = NO_WAIT;
-	gint err = 0;
-	
-	send_error_struct* msg_struct = ( send_error_struct* ) userdata;
-	gchar* rmsg = NULL;
-	gint index = 0;
-	gint len = 0;
-	UNUSED_FORMAL_PARAM(proxy);
-	iso_logger( "%s", "In - inspect_handles_for_error_cb" );		
-	if ( !handles_names || error || NULL == handles_names[0] ) 
-		{
-		if ( error ) 
-			{
-			g_error_free( error );	
-			}
-		//Free the userdata passed to the callback 
-		if ( NULL != msg_struct ) 
-			{
-			if ( msg_struct->msg_body ) 
-				{
-				g_free( msg_struct->msg_body );		
-				}
-			g_free( msg_struct );			
-			}
-		return;
-		}
-	//Allocate the memory and check for NULL	
-	rmsg = ( gchar* ) malloc ( MAX_MSG_SIZE );
-	if ( NULL == rmsg ) 
-		{
-		goto mem_clean;
-		}
-	//set memory to 0
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-    //copy the header
-    //the response header, message type(from libtp), timestamp
-	memcpy( rmsg + index, msg_struct, sizeof( message_hdr_resp )
-	+ 2 * sizeof( guint )  );
-	
-    index += sizeof( message_hdr_resp ) + 2 * sizeof( guint );
-    
-    //Copy the name to whom message was sent
-    len = strlen( handles_names[0] );
-    strcpy( rmsg + index, handles_names[0] );
-    index += len + 1;
-    
-    //Copy the message body
-    if ( msg_struct->msg_body ) 
-	    {
-	    len = strlen( msg_struct->msg_body );
-	    strcpy( rmsg + index, msg_struct->msg_body );
-	    index += len + 1;	   	
-	    }
-    rmsg[index++] = '\0';
-    //Header format
-    //msgHdr|msg_type|timestamp|reciepient_name\0sent_msg\0
-	// 		^                                   ^         ^
-    //      |			                        |		  |
-    //no dilimeter here                        nul		 nul
-    //send to the client
-    result = MsgQSend( RESPONSE_QUEUE, rmsg, index, 
-						pri, timeout, &err );
-	iso_logger( "%s", "After MsgQSend" );						
-//If memory allocation for rmsg has failed control comes
-//here
-mem_clean:
-
-	for ( len = 0; handles_names[len]; len++ )	
-		{
-		free ( handles_names[len] );
-		}
-		
-	if ( msg_struct->msg_body ) 
-		{
-		g_free( msg_struct->msg_body );		
-		}
-	g_free( msg_struct );
-						
-	if ( result < 0 )
-		{
-		//Failed to deliver the message
-		iso_logger( "%s", "Failed to deliver the message to client" );
-		return;
-		}
-	iso_logger( "%s", "Out - inspect_handles_for_error_cb" );
-	
-	}
-
-/*! /brief This function on registered for "senderror" signal is called when the message 
- *  sending is failed. Calls tp_conn_inspect_handles_async to get the contact name 
- *  from text channel
- *
- *  /param proxy : unused
- *  /param error : error code
- *  /param timestamp : sent to inspect_handles_for_error_cb thru' send_error_struct
- *  /param message_type : sent to inspect_handles_for_error_cb thru' send_error_struct
- *  /param message_body : sent to inspect_handles_for_error_cb thru' send_error_struct
- *  /param user_data text_chan from where to get the contatc name of reciepien
- *  /return void
- */
-static void senderror_cb (  DBusGProxy *proxy,
-								guint            error,
-							   	guint            timestamp,
-							    guint            message_type,
-							    gchar           *message_body,
-							    gpointer		user_data )
-	{
-	
-	TpChan *text_chan = ( TpChan * ) user_data;
-	send_error_struct* msg_struct = NULL;
-	GArray* fetch_members = NULL;
-	DBusGProxyCall* call_id = NULL;
-	
-	//Logs
-	iso_logger( "%s", "In - SendError_cb\n" );
-	iso_logger( "error is %d", error );
-	iso_logger( "error is %d", message_type );
-	iso_logger( "error is %d", timestamp );
-	iso_logger( "error is %s", message_body );
-	UNUSED_FORMAL_PARAM(proxy);
-	//Allocate memory and check for NULL
-	//This msg_struct is passed to callback..
-	//So not deleting here.. ownership is transfered
-	msg_struct = ( send_error_struct* ) malloc ( sizeof( send_error_struct ) );
-
-	if ( NULL == text_chan || NULL == msg_struct ) 
-		{
-		return;
-		}
-	//Set the values to NULL		
-	memset( msg_struct, '\0', sizeof( send_error_struct ) );
-	//Message type is send error
-	msg_struct->hdr_resp.hdr_req.message_type = ESend_Error;
-	//other values are set to 0
-	msg_struct->hdr_resp.hdr_req.protocol_id = 0;
-	msg_struct->hdr_resp.hdr_req.session_id = 0;
-	msg_struct->hdr_resp.hdr_req.request_id = 0;
-	
-	//Message is sent as single entity..
-	//Message is not long enough to be broken into 
-	msg_struct->hdr_resp.continue_flag = 0;
-	msg_struct->hdr_resp.response = 0;
-	
-	//Set the error type
-	msg_struct->hdr_resp.error_type = error;
-	//Set the values from libtelepathy
-	msg_struct->msg_type = message_type;
-	msg_struct->timestamp = timestamp;
-	//Not checking for NULL here.. 
-	//I feel it is ok to send without the message 
-	//Taken care of this in inspect_handles_for_error_cb
-	msg_struct->msg_body = strdup( message_body );
-	
-	//Create an array of handles to get the handle name
-	fetch_members = g_array_new ( FALSE, FALSE, sizeof ( guint32 ) );
-	g_array_append_val( fetch_members, text_chan->handle );
-	//Call libtp function to get the contact name for the handle
-	//msg_struct is passed to inspect handles call back to be passed to 
-	//client as error
-	call_id = tp_conn_inspect_handles_async( DBUS_G_PROXY( globalCon.conn ),
-					       TP_CONN_HANDLE_TYPE_CONTACT ,fetch_members,
-					       inspect_handles_for_error_cb, msg_struct );
-	
-	g_array_free( fetch_members, TRUE );
-	if ( NULL == call_id )
-		{
-		return ;
-		}
-	
-	iso_logger( "%s", "Out - SendError_cb" );
-	
-	}
-
-
-
-
-/*! /brief called as a callback to acknowledge the msg ack. 
- * 
- *  /param proxy unused 
- *  /param error error if any
- *  /param userdata unused
- *  /return void
- */
-static void msg_ack_pending_cb( DBusGProxy *proxy, GError *error, gpointer userdata ) 
-
-	{	
-	gchar *str = "Inside msg_ack_pending_cb";
-	UNUSED_FORMAL_PARAM(proxy);
-	UNUSED_FORMAL_PARAM(userdata);
-	if ( error ) 
-		{
-		//If there was error, ignore it and free the memory
-		g_error_free(error);	
-		}
-	
-	iso_logger(  str );
-	}
-
-
-	
-/*! /brief This function is a callback for to get the contact name from handles.
- *  This function acknowledges the recieved message and send that to client(adap)
- *  
- *  /param proxy unused
- *  /param handles_names 2D array of message sender(one contact ended with a NULL string)
- *  /param error error if any
- *  /param userdata Received_UserData that has message body, response header etc.,
- *  /return void
- */  
-static void getting_sender_cb( DBusGProxy *proxy,char **handles_names, GError *error, gpointer userdata ) 
-	{
-
-	gchar *str = "Inside getting_sender_cb";
-	GArray  *message_ids;
-	gint result = 0;
-	Received_UserData *user_data = ( Received_UserData* )userdata;
-	iso_logger(  "%s", str );
-	UNUSED_FORMAL_PARAM(proxy);
-	if ( !handles_names || error )
-		{
-		if ( error ) 
-			{
-			//If there was error, ignore it and free the memory
-			g_error_free(error);	
-			}
-		//Free the userdata passed to the callback 
-		g_free( user_data->message_body );
-		g_free( user_data );
-		iso_logger( "%s", "handle names error" );
-		return;
-		}
-	
-	message_ids = g_array_new ( FALSE, FALSE, sizeof ( guint ) );
-	if ( NULL == message_ids ) 
-		{
-		//Free the userdata passed to the callback 
-		g_free( user_data->message_body );
-		g_free( user_data );
-		return ;	
-		}
-	g_array_append_val ( message_ids, user_data->message_id );
-	//Acknowledge that message has been recieved
-	tp_chan_type_text_acknowledge_pending_messages_async( user_data->proxy, message_ids, 
-			msg_ack_pending_cb, NULL );
-	//Send to the client the messgae and the sender name			
-	result = send_message_to_client( user_data->message_body , *handles_names );
-	
-	if ( 0 > result ) 
-		{
-		return;
-		}
-		
-	iso_logger(  "%s", "getting_sender_cb" );
-	iso_logger(  "%s", user_data->message_body );
-	
-	//Free the messgae ids array		
-	g_array_free ( message_ids, TRUE );
-	//free the recieved data
-	g_free( user_data->message_body );
-	g_free( user_data );
-	
-	
-	}
-
-    
-    
-
-/*! /brief when a message is recieved this function is called by 
- *  telepathygabble(by emitting signal). This function then requests tg 
- *  to get the contact names corresponding to handles.
- * 
- *  /param proxy sent to getting_sender_cb as param in userdata
- *  /param timestamp unused
- *  /param handles_names
- *  /param message_type unused
- *  /param message_flags unused
- *  /param message_body recieved message
- *  /param userdata unused
- */
-void receivedMessage_cb (  DBusGProxy *proxy,
-								guint            message_id,
-							   	guint            timestamp,
-							    guint            from_handle,
-							    guint            message_type,
-							    guint            message_flags,
-							    gchar           *message_body,
-							    gpointer		user_data )
-    {
-	GArray  *handles = NULL;
-	Received_UserData *recv_userdata = NULL;
-	
-	iso_logger(  "%s", "receivedMessage_cb:" );
-	UNUSED_FORMAL_PARAM(timestamp);
-	UNUSED_FORMAL_PARAM(message_type);
-	UNUSED_FORMAL_PARAM(message_flags);
-	UNUSED_FORMAL_PARAM(user_data);
-	//Allocate memory and initalize the structure
-	recv_userdata =  g_new ( Received_UserData, 1 );
-	if ( NULL == recv_userdata ) 
-		{
-		
-		free ( message_body );
-		return ;
-		}
-	//TBD : Check if this assignment works..
-	//previously it was strdup of message_body 
-	recv_userdata->message_body =  strdup( message_body );
-	recv_userdata->message_id = message_id;
-	recv_userdata->proxy = proxy;
-	
-	//logs
-	iso_logger(  "%s", message_body );
-	//allocate memory for the handles
-	handles = g_array_new ( FALSE, FALSE, sizeof ( guint32 ) );
-	if ( NULL == handles ) 
-		{
-		//free previously allocated struct
-		g_free( recv_userdata->message_body );
-		g_free( recv_userdata );
-		return ;
-		}
-		
-	g_array_append_val ( handles, from_handle );
-	//get the sender name corresponding to the handles
-	tp_conn_inspect_handles_async( DBUS_G_PROXY( globalCon.conn ),
-					       TP_CONN_HANDLE_TYPE_CONTACT ,handles,
-					       getting_sender_cb,recv_userdata );
-	//free handles				       	
-	g_array_free ( handles, TRUE );
-		
-    }
-
-
-/*! /brief whenevr a new channel handler for text is created, this function is called. This 
- *  function also registers that channel for Received and SendError signals. Also the pending
- *  messages are also retrieved in this function
- * 
- *  /param tp_chan new channel created
- */
- void text_channel_init( TpChan *text_chan )
-	{
-	
-	GPtrArray  *messages_list ;
-	guint       i = 0;
-	GArray     *message_ids;
-	DBusGProxy *text_iface;
-	GArray *handles = NULL;
-	Received_UserData *recv_userdata = NULL;
-	
-	
-	iso_logger(  "%s", "inside  text_channel_init" );
-	//text_chan has been checked for NULL in the callee function
-    text_iface = tp_chan_get_interface( text_chan ,
-	   								   TELEPATHY_CHAN_IFACE_TEXT_QUARK );
-	
-	message_ids = g_array_new ( FALSE, TRUE, sizeof ( guint ) );
-	
-	handles = g_array_new ( FALSE, FALSE, sizeof ( guint32 ) );
-	//If memory allocation fialure, return from here
-	if ( !text_iface || !message_ids || !handles ) 
-		{
-		return ;	
-		}
-	
-	tp_chan_type_text_list_pending_messages( text_iface,
-						FALSE,
-						&messages_list,
-						NULL );
-	//For all the pending messages get the sender name
-	//and send to client the sender name and recv msg
-	for ( i = 0; i < messages_list->len ; i++ )
-		{
-		guint          message_id;
-		guint          from_handle;
-		const gchar   *message_body;
-		GValueArray   *message_struct;
-		
-		message_struct = ( GValueArray * ) g_ptr_array_index ( messages_list, i );
-		
-		//Not all the fields used currently
-		//Ignoring the unused fields
-		message_id = g_value_get_uint( g_value_array_get_nth( message_struct, 0 ) );
-		//get the handle to sender
-		from_handle = g_value_get_uint(g_value_array_get_nth( message_struct, 2 ) );
-		//Get the message body
-		message_body = g_value_get_string( g_value_array_get_nth( message_struct, 5 ) );
-		
-		iso_logger ( "%s", message_body );
-			    
-    	g_array_append_val( handles, from_handle );
-    	//Allocate memory for the recv data
-       	recv_userdata =  g_new( Received_UserData, 1 );
-       	if ( !recv_userdata ) 
-	       	{
-	       	break; //Break from the loop
-	       	}
-	    //Set all the necessary fields
-	    recv_userdata->message_body = g_strdup( message_body );
-	    recv_userdata->message_id = message_id;
- 	    recv_userdata->proxy = text_iface;
- 	    //get the name for the sender handle
-	    tp_conn_inspect_handles_async( DBUS_G_PROXY( globalCon.conn ),
-					       TP_CONN_HANDLE_TYPE_CONTACT ,handles,
-					       getting_sender_cb, recv_userdata );	
-					       
-    	g_array_append_val ( message_ids, message_id );
-    	
-    	//To reuse the array, remove the 1 that was inserted
-    	g_array_remove_range( handles, 0, handles->len );
-
-		}
-	iso_logger ( "%s", "before ack pending msg");
-	//acknowledge the recved messages
-	tp_chan_type_text_acknowledge_pending_messages( text_iface, message_ids,
-					       NULL );
-	
-	iso_logger ( "%s", "after ack pending msg" );
-	
-	//Listen to Received signal
-	dbus_g_proxy_connect_signal( text_iface, "Received",
-				G_CALLBACK( receivedMessage_cb ),
-					NULL, NULL );
-					
-	//Register for the senderror signal
-	dbus_g_proxy_connect_signal( text_iface, "SendError",
-				G_CALLBACK( senderror_cb ),
-					text_chan, NULL );					
-					
-	//Should the messages_list be freed?	
-	g_array_free( message_ids, TRUE );
-	g_array_free( handles, TRUE );
-	
-	
-	}
-
-
- 
-
- /*! /brief called by getting_sender_cb to send the recieved message to client
-  * 
-  *  /param msg message recieved
-  *  /param sender message from whom recieved
-  */ 
-gint send_message_to_client( const gchar *msg , const gchar *sender )
-
-    {
-	gint len=0;
-	gint pri = MSG_PRI_NORMAL;
-	gchar *rmsg = NULL;
-	gint index = 0;
-	gint err;
-	message_hdr_resp* msg_resp = NULL;
-	gint result;
-	gint timeout = NO_WAIT;
-	
-	msg_resp = ( message_hdr_resp* ) malloc ( sizeof( message_hdr_resp ) );
-	if ( NULL == msg_resp ) 
-		{
-		return 	MEM_ALLOCATION_ERROR;
-		}
-	//Allocate memory and initialze to 0 
-	rmsg = ( gchar* ) malloc ( MAX_MSG_SIZE );
-	if ( NULL == rmsg ) 
-		{
-		free ( msg_resp );
-		return 	MEM_ALLOCATION_ERROR;
-		}
-	   
-	//Initialze the memory to 0
-	memset( msg_resp, '\0', sizeof( message_hdr_resp ) );
-    //Set the message type to EText_Message_Receive and set other fields
-    //to default values
-	msg_resp->hdr_req.message_type = EText_Message_Receive;
-	msg_resp->hdr_req.protocol_id = 1;
-	msg_resp->hdr_req.session_id = 1;
-	msg_resp->hdr_req.request_id =1;
-	//Set the respone as success and error is 0
-	msg_resp->response = 1;
-	msg_resp->error_type = 0;
-		
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-    //copy the header
-	memcpy( rmsg, msg_resp, sizeof( message_hdr_resp ) );
-    index += sizeof( message_hdr_resp );
-    
-    //copy the sender
-    //putting sender in message queue
-    len = strlen(sender);
-    strcpy( rmsg + index, sender );
-    index += len + 1;
-    
-    //putting message body   
-    len = strlen(msg);
-    strcpy( rmsg + index, msg );
-    index += len + 1;
-    
-    //Header format
-    //msgHdr|sender_name\0recved_msg\0
-	// 		^            ^           ^
-    //      |			 |			 |
-    //no dilimeter here  nul		nul
-    //send to the client
-    result = MsgQSend( RESPONSE_QUEUE, rmsg, index, 
-						pri, timeout, &err );
-	free ( rmsg );
-	
-	free ( msg_resp );
-	
-    if ( result < 0 )
-    	{
-    	return MSG_Q_SEND_FAILED;
-    	}
-    	
-	iso_logger(  "%s", "message is:\n" );
-	return TRUE;
-    }
-
-// end of files
-
-
--- a/isolationserver/isoserver/src/isomodifycontactlist.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,497 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isomodifycontacts.h
-*  Part of     : isolation server.
-*  Version     : %version: 16 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <glib.h>
-#include "msgliterals.h"
-#include "isomodifycontactlist.h"
-#include "isoutils.h"
-#include "isofetchcontactlist.h" //For send_contact_to_client func
-
-/*!	\file 
-*	Impliments the functions in isomodifycontactlist.h
-*/
-
-/*!
- *  /brief This function is called by message_send_recv function in isoservermain.c if message type
- *  is EReject_Contact_Request, EAccept_Contact_Request, EAdd_Contact_Request and EDelete_Contact_Request. 
- *  Contacts added/removed to/from list. This function parses the message buffer, 
- *  validates for the arguments and calls modify_contact_list to add/remove contacts
- * 
- *  /param buf : buffer to be parsed
- *  /param buf_len : buffer length
- *  /return : error code if any, 0 on success 
- */
-gint action_parse_modify_contact_list( gchar* buf, gint buf_len ) 
-	{
-	gchar** contactid = NULL;
-	gchar* msg = NULL;
-	gint meesage_type_err = 0;
-	gint len = 0;
-	gint contact_count = 0;
-	
-	//parse contacts, message.. 	
-	iso_logger( "%s", "In - action_parse_modify_contact_list" );
-	len += sizeof( message_hdr_req );
-	//example send message - message header omitted..
-	//test.ximp@gmail.com\0ximp.telepathy@gmail.com\0\0I would like to add u!\0
-	//					  ^ 						^ ^	                      ^ 
-	//contact1------------|contact2-----------------|-|message----------------|
-	//Till Message part is parsed by the following function
-	meesage_type_err = parse_into_array_of_strings( buf, &contactid, &len, buf_len, &contact_count );
-	if ( meesage_type_err < 0 ) 
-		{
-		gchar* msg = NULL;
-		//An error has occured, so propagate to next level
-		free_msg_args( contactid, contact_count, msg );
-		//got error, print to file
-		return meesage_type_err;
-		}
-	
-	//Parse the message
-	//message is optional.. so check if message has been sent
-	if ( len < buf_len ) 
-		{
-		
-		gint err = 0;
-		
-	//	iso_logger( "%x", len );
-    //		iso_logger( "%f", len );
-		
-		//parse for the message..
-		err = parse_a_string( buf, &msg, &len, buf_len );
-		
-		if ( err < 0 ) 
-			{
-			//return err; 
-			//ignoring the error..
-			//as message is not that important
-			msg = NULL;
-			}
-		}	
-	//If there is atleast one contact to add
-	if ( contact_count > 0 ) 
-		{
-		//Add the header and message to the msg struct
-		//this struct will be used in the callbacks
-		send_msg_struct* msg_struct = NULL;
-		msg_struct = ( send_msg_struct* ) malloc( sizeof( send_msg_struct ) );
-		if ( NULL == msg_struct ) 
-			{
-			//An error has occured, so propagate to next level
-			free_msg_args( contactid, contact_count, msg );
-			return MEM_ALLOCATION_ERROR;
-			}
-		//allocate memory and check for the returned value	
-		msg_struct->hdr_req = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-		if ( NULL == msg_struct->hdr_req ) 
-			{
-			//An error has occured, so propagate to next level
-			free_msg_args( contactid, contact_count, msg );
-			free ( msg_struct );
-			return MEM_ALLOCATION_ERROR;
-			}
-		//initalize to 0...
-	    memset( msg_struct->hdr_req, '\0', sizeof( message_hdr_req ) );
-	    //read message header from buffer
-	    memcpy( msg_struct->hdr_req, buf, sizeof( message_hdr_req ) );
-	    //message, msg can be NULL as well
-	    msg_struct->msg = msg;
-	    
-		meesage_type_err = modify_contact_list( msg_struct, 
-				( const char** )contactid, meesage_type_err );	
-		if ( meesage_type_err < 0 ) 
-			{
-			//Do cleanup here
-			//delete contact_ids and message
-			//An error has occured, so propagate to next level
-			free_msg_args( contactid, contact_count, msg );
-			free ( msg_struct->hdr_req );
-			free ( msg_struct );
-			return meesage_type_err;
-			}
-		}
-	
-	iso_logger( "%s", "In - action_parse_modify_contact_list" );	
-		
-	return meesage_type_err;	
-	}
-
-
-/*!
- *  /brief gets the handles for contacts. Handles are returned in request_modify_contact_list_handles_cb 
- *  callback which is an arg for the async request to get handles.
- *  
- *  /param msg_hdr : The header and message passed to callbacks
- *  /param contact_id : contact ids whose handles to be returned
- *  /param no_cntcts : total no. of contacts to be added
- *  /return : error code if any, handle on success 
- */
-guint get_handles_for_contacts ( send_msg_struct* msg_hdr, const gchar  **contact_id, 
-		gint no_cntcts )
-	{
-	
-	iso_logger( "%s", "in -- get_handles_for_contacts" );
-	
-	//check for the return value if 0 is ok or should some negative value to be passed
-	g_return_val_if_fail (contact_id != NULL, 0); 	
-
-	//Send request to get the handles for the contacts..
-	//handles will be returned in request_addcontacts_handles_cb
-	tp_conn_request_handles_async( DBUS_G_PROXY(globalCon.conn), 
-			TP_CONN_HANDLE_TYPE_CONTACT, contact_id, 
-	 		request_modify_contact_list_handles_cb, ( gpointer )msg_hdr );
-	 		
-	iso_logger( "%s", "in -- get_handles_for_contacts" );
-	//no of contacts is returned on successful completion of getting handles
-	return no_cntcts;
-	}
-
-
-/*!
- *  /brief Handles are returned in this callback. Which will then actually do modify 
- *  the contact list based on the request type(add/remove/accept/reject)
- *  modify_contact_list_cb is registered as the callback.
- *
- *  /param proxy : unused
- *  /param handles : handles of the contacts
- *  /param error : error if any
- *  /param message : userdata(send_msg_struct) passed back
- *  /return : error code if any, handle on success 
- */     
-void request_modify_contact_list_handles_cb( DBusGProxy *proxy, GArray *handles, 
-			GError* error, gpointer message ) 
-	{
-	send_msg_struct* msg_hdr = ( send_msg_struct* ) message;
-    UNUSED_FORMAL_PARAM(proxy);
-	iso_logger( "%s", "in -- request_modify_contact_list_handles_cb" );
-
-	if ( !handles || error ) 
-		{
-		 send_response_to_client( msg_hdr->hdr_req,  error->code, 0 );
-		
-		if ( error ) 
-			{
-			g_error_free(error);
-			}
-		free ( msg_hdr->msg );
-		free ( msg_hdr->hdr_req );
-		free ( msg_hdr );
-		iso_logger( "%s", "handle got is invalid" );
-		return;
-		}
-		
-	//Check if the request is to add contact or delete contact
-	if ( EAdd_Contact_Request == msg_hdr->hdr_req->message_type ) 
-		{
-		//got the handles for contacts now send request to add those contacts
-		tp_chan_iface_group_add_members_async ( globalCon.group_iface_subscribe, handles, 
-			msg_hdr->msg, modify_contact_list_cb, msg_hdr->hdr_req );
-		}
-	else if ( EDelete_Contact_Request == msg_hdr->hdr_req->message_type ) 
-		{
-		//got the handles for contacts now send request to delete those contacts
-		tp_chan_iface_group_remove_members_async ( globalCon.group_iface_known, handles, 
-			msg_hdr->msg, modify_contact_list_cb, msg_hdr->hdr_req );	
-		}
-	else if ( EAccept_Contact_Request == msg_hdr->hdr_req->message_type ) 
-		{
-		//got the handles for contacts now send request to add those contacts
-		tp_chan_iface_group_add_members_async ( globalCon.group_iface_publish, handles, 
-			msg_hdr->msg, modify_contact_list_cb, msg_hdr->hdr_req );
-		}
-	else if ( EReject_Contact_Request == msg_hdr->hdr_req->message_type ) 
-		{
-		//got the handles for contacts now send request to delete those contacts
-		tp_chan_iface_group_remove_members_async ( globalCon.group_iface_publish, handles, 
-			msg_hdr->msg, modify_contact_list_cb, msg_hdr->hdr_req );	
-		}
-			
-	//free handles
-	g_array_free ( handles, TRUE );
-	//free header
-	//hdr_req not to be freed, it is freed by modify_contact_list_cb
-	free ( msg_hdr->msg );
-	free ( msg_hdr );
-	iso_logger( "%s", "out -- request_modify_contact_list_handles_cb" );	
-	}
-	
-/*!
- *  /brief Calls get_handles_for_contacts to get the handles for contact. 
- * 
- *  /param msg_hdr : message request header passed to callbacks
- *  /param contact_id : contact ids to be added
- *  /param message : messgae if any
- *  /param no_cntcts : no of contacts to be added
- *  /return void 
- */
-gint modify_contact_list ( send_msg_struct* msg_hdr, const gchar  **contact_ids, 
-				gint no_cntcts )
-	{
-
-	guint err = 0;
-	
-	iso_logger( "%s", "in -- modify_contact_list" );	
-	
-	//g_array_append_val ( handles, handle );
-	//gets the handles for contacts
-	//Handles are returned in request_addcontacts_handles_cb callback
-	err = get_handles_for_contacts( msg_hdr, contact_ids, no_cntcts );
-	
-	iso_logger( "%s", "Out -- -- modify_contact_list" );
-	
-	return err;
-	
-	 	
-	}
-
-/*!
- *  /brief called as callback for request for modify contact list 
- *  This function then sends the result to client
- * 
- *  /param proxy unused 
- *  /param error Error if any
- *  /param userdata request message header
- *  /return void 
- */
-void modify_contact_list_cb( DBusGProxy *proxy, GError *error, gpointer userdata )
-	{
-	
-	int err = 0;
-	//user data is of type message_hdr_req
-	message_hdr_req *msg_hdr = ( message_hdr_req * )userdata;
-	UNUSED_FORMAL_PARAM(proxy);	
-	iso_logger( "%s", "In - modify_contact_list_cb\n" );
-	//Check if there is any error
-	if ( NULL != error ) 
-		{
-		//Failed to add contact:
-		iso_logger ( "%s", "Failed to modify contact: \n" );	
-			
-		err = send_response_to_client( msg_hdr,  error->code, 0 );
-		g_error_free(error);
-		}
-	else 
-		{
-		//Contact added successfully:
-		iso_logger ( "%s", "Contact modify successfully:" );			
-		err = send_response_to_client( msg_hdr, 0, 1 );
-		}
-	//free the msg hdr
-	free( msg_hdr );
-
-	if ( err < 0 )
-		{
-		// failed to delievered	
-		return ;
-		}
-	iso_logger( "%s", "out -- modify_contact_list_cb" );			     	
-	}
-
-
-/*!
- *  /brief The contact names corresponding to the contact handles that are changed 
- *  are passed to the client
- *  /param proxy 
- *  /param handles_name
- *  /param error
- *  /param userdata
- *  /return void 
- */
-static void rosters_changed_contacts_cb( DBusGProxy *proxy,
-	gchar **handles_names, GError *error, gpointer userdata )
-	{
-	gint i = 0;
-	gchar* member = NULL;
-	gint mem_count = 0;
-	
-	gint* msg_type = ( gint* ) userdata;
-	
-	iso_logger( "%s", "In -- rosters_changed_contacts_cb" );
-	UNUSED_FORMAL_PARAM(proxy);
-	if ( !handles_names || error )
-		{
-		if ( error ) 
-			{
-			g_error_free(error);	
-			}
-		free ( msg_type );
-		iso_logger( "%s", "handle names error" );
-		return;
-		}
-	
-	//read all the contacts
-	//The handles_names will have NULL as it last elemnt in the array
-	for ( i = 0; handles_names[i]; i++ ) 
-		{
-		member = handles_names[i];
-		iso_logger( "This member : %s is trying to add you", 
-			member );
-		mem_count++;
-		}
-	//code to send the added contact to client
-	if ( mem_count ) 
-		{
-		gint err = 0;
-		err = send_contacts_to_client( handles_names, mem_count, *msg_type );	
-		if ( err ) 
-			{
-			//How to handle the error?
-			for ( i = 0; i < mem_count; i++ ) 
-				{
-				free ( handles_names[i] );
-				}
-			iso_logger( "%s", "There was error in send_contacts_to_client" );
-			free ( msg_type );
-			return;
-			}	
-		}
-	
-	free ( msg_type );
-	
-	iso_logger( "%s", "Out -- rosters_changed_contacts_cb" );
-	
-	}
-	
-/*! /brief Whenever contact list is changed by others( someone trying to add this user
- *  or someone rejecting the add request etc., ) this callback registered as a signal
- *  is called with the handles of the changed contacts. rosters_changed_contacts_cb is
- *  passed as callback to get the contact name of the changed handles
- * 
- * /param group_iface unused 
- * /param message unused
- * /param added List of contacts that are recently added
- * /param removed List of contacts that were recently removed
- * /param local_pending List of contacts that are locally pending for approval
- * /param remote_pending List of contacts that are remotely pending for approval
- * /param actor unused
- * /param reason unused
- * /param userdata unused
- * /return void
- */
-void roster_members_changed_cb ( DBusGProxy           *group_iface,
-									    gchar                *message,
-									    GArray               *added,
-									    GArray               *removed,
-									    GArray               *local_pending,
-									    GArray               *remote_pending,
-									    guint                 actor,
-									    guint                 reason,
-									    gpointer  			  userdata )
-	{
-	
-	gint* msg_type = ( gint* ) malloc ( sizeof( gint* ) );
-	
-	iso_logger( "%s", "In - roster_members_changed_cb\n" );
-
-	//members in the contact list have changed 
-	//Get the contact name of the handles thru rosters_changed_contacts_cb
-	UNUSED_FORMAL_PARAM(message);
-	UNUSED_FORMAL_PARAM(actor);
-	UNUSED_FORMAL_PARAM(reason);
-	UNUSED_FORMAL_PARAM(userdata);
-	if ( group_iface == globalCon.group_iface_subscribe  && remote_pending 
-		&& 0 < remote_pending->len ) 
-		{
-		*msg_type = ESubscribe_Remote_Pending;
-		tp_conn_inspect_handles_async( DBUS_G_PROXY( globalCon.conn ),
-						  TP_CONN_HANDLE_TYPE_CONTACT ,remote_pending,
-						  rosters_changed_contacts_cb, msg_type );
-		}
-	if ( group_iface == globalCon.group_iface_subscribe  && removed 
-		&& 0 < removed->len ) 
-		{
-		//User is trying to remove the contact from list
-		//
-		*msg_type = ESubscribe_Removed_Or_Rejected;
-		tp_conn_inspect_handles_async( DBUS_G_PROXY( globalCon.conn ),
-						  TP_CONN_HANDLE_TYPE_CONTACT ,removed,
-						  rosters_changed_contacts_cb, msg_type );
-		}
-	if ( group_iface == globalCon.group_iface_subscribe  && added 
-		&& 0 < added->len ) 
-		{
-		//
-		*msg_type = ESubscribe_RP_Accepted;
-		tp_conn_inspect_handles_async( DBUS_G_PROXY( globalCon.conn ),
-						  TP_CONN_HANDLE_TYPE_CONTACT ,added,
-						  rosters_changed_contacts_cb, msg_type );
-		}
-	if ( group_iface == globalCon.group_iface_publish  && added
-		&& 0 < added->len ) 
-		{
-		*msg_type = EPublish_RP_Accepted;
-		tp_conn_inspect_handles_async( DBUS_G_PROXY( globalCon.conn ),
-						  TP_CONN_HANDLE_TYPE_CONTACT ,added,
-						  rosters_changed_contacts_cb, msg_type );
-		}
-		
-	if ( group_iface == globalCon.group_iface_publish  && local_pending 
-		&& 0 < local_pending->len ) 
-		{
-		*msg_type = ETrying_To_Add_Contact_Publish;
-		tp_conn_inspect_handles_async( DBUS_G_PROXY( globalCon.conn ),
-						  TP_CONN_HANDLE_TYPE_CONTACT ,local_pending,
-						  rosters_changed_contacts_cb, msg_type );
-		}
-	if ( group_iface == globalCon.group_iface_publish  && removed 
-		&& 0 < removed->len ) 
-		{
-		*msg_type = EPublish_Removed_Or_Rejected;
-		tp_conn_inspect_handles_async( DBUS_G_PROXY( globalCon.conn ),
-						  TP_CONN_HANDLE_TYPE_CONTACT ,removed,
-						  rosters_changed_contacts_cb, msg_type );
-		}
-	if ( group_iface == globalCon.group_iface_known && removed 
-		&& 0 < removed->len ) 
-		{
-		//User is trying to remove the contact from list
-		//
-		*msg_type = ESubscribe_Removed_Or_Rejected;
-		tp_conn_inspect_handles_async( DBUS_G_PROXY( globalCon.conn ),
-						  TP_CONN_HANDLE_TYPE_CONTACT ,removed,
-						  rosters_changed_contacts_cb, msg_type );
-		}
-	if ( group_iface == globalCon.group_iface_known && added 
-		&& 0 < added->len ) 
-		{
-		//User is trying to remove the contact from list
-		//
-		*msg_type = ETrying_To_Add_Contact_Known;
-		tp_conn_inspect_handles_async( DBUS_G_PROXY( globalCon.conn ),
-						  TP_CONN_HANDLE_TYPE_CONTACT ,added,
-						  rosters_changed_contacts_cb, msg_type );
-		}
-	       
-	//log message 					       
-	iso_logger( "%s", "out - roster_members_changed_cb\n" );
-	}
-	
--- a/isolationserver/isoserver/src/isopresence.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,830 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isopresence.c
-*  Part of     : isolation server.
-*  Version     : %version: 18 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-#include "isopresence.h"
-#include "stdio.h"
-#include "isoservermain.h"
-#include "msgliterals.h"
-#include "msgqlib.h"
-#include "msg_enums.h"
-#include "isoutils.h"
-
-//#include "config.h"
-
-#include <string.h>
-#include <stdlib.h>
-
-#ifndef SYMBIAN
-#include <glib/gi18n.h>
-#include <libintl.h>
-#define _(x) dgettext (GETTEXT_PACKAGE, x)
-#define N_(x) x
-#else
-#define _(x) x
-#define N_(x) x
-#endif
-
-/*!	\file 
-*	Impliments the functions in isomodifycontactlist.h
-*/
-
-#define GET_PRIV(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TELEPATHY_TYPE_PRESENCE, TelepathyPresencePriv))
-
-/*!	\var glob_handle_name accessed in multiple functions. Stores the 
-*	contact name
-*	\remark This global variable can be avoided
-*/
-gchar *              glob_handle_name;
-
-/*!	\typedef long typedefed to TelepathyTime
-*/
-typedef long TelepathyTime;         /* Note: Always in UTC. */
-
-
-/*!	\typedef long struct _TelepathyPresencePriv to TelepathyPresencePriv 
-*/
-typedef struct _TelepathyPresencePriv TelepathyPresencePriv;
-
-/*!	\struct _TelepathyPresencePriv
-*	\brief telepathy presence object
-*
-*	\var state presence state
-*	\var status status text
-*	\var resource GObject resource
-*	\var priority GObject priority
-*	\var timestamp set with current time
-*/
-struct _TelepathyPresencePriv {
-	TelepathyPresenceState  state;
-
-	gchar               *status;
-	gchar               *resource;
-
-	gint                 priority;
-	TelepathyTime           timestamp;
-};
-
-/*! \enum 
-*	\brief _TelepathyPresencePriv member variables
-*/
-enum {
-	PROP_0,
-	PROP_STATE,
-	PROP_STATUS,
-	PROP_RESOURCE,
-	PROP_PRIORITY
-};
-
-G_DEFINE_TYPE (TelepathyPresence, telepathy_presence, G_TYPE_OBJECT);
-
-/*! \brief Documented in the header file
-*/
-TelepathyTime
-telepathy_time_get_current (void)
-{
-	return time (NULL);
-}
-
-/*! \brief Documented in the header file
-*/
-static void
-telepathy_presence_class_init (TelepathyPresenceClass *presclass)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (presclass);
-
-	object_class->finalize     = presence_finalize;
-	object_class->get_property = presence_get_property;
-	object_class->set_property = presence_set_property;
-
-	g_object_class_install_property (object_class,
-					 PROP_STATE,
-					 g_param_spec_int ("state",
-							   "Presence State",
-							   "The current state of the presence",
-							   TELEPATHY_PRESENCE_STATE_AVAILABLE,
-							   TELEPATHY_PRESENCE_STATE_EXT_AWAY,
-							   TELEPATHY_PRESENCE_STATE_AVAILABLE,
-							   G_PARAM_READWRITE));
-	g_object_class_install_property (object_class,
-					 PROP_STATUS,
-					 g_param_spec_string ("status",
-							      "Presence Status",
-							      "Status string set on presence",
-							      NULL,
-							      G_PARAM_READWRITE));
-	g_object_class_install_property (object_class,
-					 PROP_RESOURCE,
-					 g_param_spec_string ("resource",
-							      "Presence Resource",
-							      "Resource that this presence is for",
-							      NULL,
-							      G_PARAM_READWRITE));
-	g_object_class_install_property (object_class,
-					 PROP_PRIORITY,
-					 g_param_spec_int ("priority",
-							   "Presence Priority",
-							   "Priority value of presence",
-							   G_MININT,
-							   G_MAXINT,
-							   0,
-							   G_PARAM_READWRITE));
-
-	g_type_class_add_private (object_class, sizeof (TelepathyPresencePriv));
-}
-
-/*! \brief Documented in the header file
-*/
-static void
-telepathy_presence_init (TelepathyPresence *presence)
-{
-	TelepathyPresencePriv *priv;
-
-	priv = GET_PRIV (presence);
-
-	priv->state = TELEPATHY_PRESENCE_STATE_AVAILABLE;
-
-	priv->status = NULL;
-	priv->resource = NULL;
-
-	priv->priority = 0;
-
-	priv->timestamp = telepathy_time_get_current ();
-}
-
-/*! /brief GObject finalize funtion
-*
-*   /param object object to be finalized
-*/
-static void
-presence_finalize (GObject *object)
-{
-	TelepathyPresencePriv *priv;
-
-	priv = GET_PRIV (object);
-
-	g_free (priv->status);
-	g_free (priv->resource);
-
-	(G_OBJECT_CLASS (telepathy_presence_parent_class)->finalize) (object);
-}
-
-/*! /brief GObject get property funtion
-*
-*   /param object Gobject
-*   /param param_id
-*   /param value
-*   /param pspec
-*/
-static void
-presence_get_property (GObject    *object,
-		       guint       param_id,
-		       GValue     *value,
-		       GParamSpec *pspec)
-{
-	TelepathyPresencePriv *priv;
-
-	priv = GET_PRIV (object);
-
-	switch (param_id) {
-	case PROP_STATE:
-		g_value_set_int (value, priv->state);
-		break;
-	case PROP_STATUS:
-		g_value_set_string (value,
-				    telepathy_presence_get_status (TELEPATHY_PRESENCE (object)));
-		break;
-	default:
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
-		break;
-	}
-}
-
-/*! /brief GObject set property funtion
-*
-*   /param object Gobject
-*   /param param_id
-*   /param value
-*   /param pspec
-*/  
-static void
-presence_set_property (GObject      *object,
-		       guint         param_id,
-		       const GValue *value,
-		       GParamSpec   *pspec)
-{
-	TelepathyPresencePriv *priv;
-
-	priv = GET_PRIV (object);
-
-	switch (param_id) {
-	case PROP_STATE:
-		priv->state = g_value_get_int (value);
-		break;
-	case PROP_STATUS:
-		telepathy_presence_set_status (TELEPATHY_PRESENCE (object),
-					    g_value_get_string (value));
-		break;
-	default:
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
-		break;
-	}
-}
-
-/*! /brief create a presence object instance
- *  /return created presence object instance
- */
-
-TelepathyPresence *
-telepathy_presence_new (void)
-{
-	return g_object_new (TELEPATHY_TYPE_PRESENCE, NULL);
-}
-
-/*! /brief get the presence status value
- *
- *  /param presence : presence object
- *  /return state : status as set in presence object
- */
-const gchar *
-telepathy_presence_get_status (TelepathyPresence *presence)
-{
-	TelepathyPresencePriv *priv;
-
-	g_return_val_if_fail (TELEPATHY_IS_PRESENCE (presence), NULL);
-	
-	priv = GET_PRIV (presence);
-
-	return priv->status;
-}
-
-/*! /brief get the presence state value
- *
- *  /param presence : presence object
- *  /return state : state as set in presence object
- */
-TelepathyPresenceState
-telepathy_presence_get_state (TelepathyPresence *presence)
-{
-	TelepathyPresencePriv *priv;
-
-	g_return_val_if_fail (TELEPATHY_IS_PRESENCE (presence),
-			      TELEPATHY_PRESENCE_STATE_AVAILABLE);
-
-	priv = GET_PRIV (presence);
-
-	return priv->state;
-}
-
-/*! /brief set the presence state value in presence gobject
- *
- *  /param presence : presence object
- *  /param state : state
- *  /return : void
- */
-void
-telepathy_presence_set_state (TelepathyPresence      *presence,
-			   TelepathyPresenceState  state)
-{
-	TelepathyPresencePriv *priv;
-
-	g_return_if_fail (TELEPATHY_IS_PRESENCE (presence));
-
-	priv = GET_PRIV (presence);
-
-	priv->state = state;
-
-	g_object_notify (G_OBJECT (presence), "state");
-}
-
-/*! /brief set the presence status text value in presence gobject
- *
- *  /param presence : presence object
- *  /param state : status
- *  /return : void
- */
-void
-telepathy_presence_set_status (TelepathyPresence *presence,
-			    const gchar    *status)
-{
-	TelepathyPresencePriv *priv;
-
-	g_return_if_fail (TELEPATHY_IS_PRESENCE (presence));
-
-	priv = GET_PRIV (presence);
-
-	g_free (priv->status);
-
-	if (status) {
-		priv->status = g_strdup (status);
-	} else {
-		priv->status = NULL;
-	}
-
-	g_object_notify (G_OBJECT (presence), "status");
-
-}
-
-/*! /brief converts presence state value from enum to string
- *  /param presence_state : presence state enum value
- *  /return : presence state string value
- */
-const gchar *
-telepathy_presence_state_to_str (TelepathyPresenceState presence_state)
-{
-
-	switch (presence_state) {
-	case TELEPATHY_PRESENCE_STATE_AVAILABLE:
-		return "available";
-	case TELEPATHY_PRESENCE_STATE_BUSY:
-		return "dnd";
-	case TELEPATHY_PRESENCE_STATE_AWAY:
-		return "away";
-	case TELEPATHY_PRESENCE_STATE_EXT_AWAY:
-		return "xa";
-	case TELEPATHY_PRESENCE_STATE_HIDDEN:
-		return "hidden";
-	case TELEPATHY_PRESENCE_STATE_UNAVAILABLE:
-		return "offline";
-	default:
-		return NULL;
-	}
-}
-
-/*! /brief converts presence state value from string to enum
- *
- *  /param str : presence state string value
- *  /return : presence state enum value
- */
-TelepathyPresenceState
-telepathy_telepathy_presence_state_from_str (const gchar *str)
-{
-
-	if (strcmp (str, "available") == 0) {
-		return TELEPATHY_PRESENCE_STATE_AVAILABLE;
-	} else if ((strcmp (str, "dnd") == 0) || (strcmp (str, "busy") == 0)) {
-		return TELEPATHY_PRESENCE_STATE_BUSY;
-	} else if ((strcmp (str, "away") == 0) || (strcmp (str, "brb") == 0)) {
-		return TELEPATHY_PRESENCE_STATE_AWAY;
-	} else if (strcmp (str, "xa") == 0) {
-		return TELEPATHY_PRESENCE_STATE_EXT_AWAY;
-	} else if (strcmp (str, "hidden") == 0) {
-		return TELEPATHY_PRESENCE_STATE_HIDDEN;
-	} else if (strcmp (str, "offline") == 0) {
-		return TELEPATHY_PRESENCE_STATE_UNAVAILABLE;
-	} 
-
-	return TELEPATHY_PRESENCE_STATE_AVAILABLE;
-}
-
-/*! /brief updates own presence to the n/w server. update_status_cb 
- *  is registered for the callback
- *
- *  /param pres_iface : presence interface
- *  /param presence : presence object 
- *  /param msg_hdr : presence info list to send presence_msg_struct
- *  has state, status etc., 
- *  /return : void
- */
-void
-telepathy_contacts_send_presence (DBusGProxy *pres_iface,
-					 TelepathyPresence          *presence,
-					 presence_msg_struct* msg_hdr)
-{
-	GHashTable          *status_ids;
-	GHashTable          *status_options;
-	const gchar         *status_id;
-	const gchar         *message;
-	TelepathyPresenceState  presence_state;
-	GValue               value_message = {0, };
-
-	if (!pres_iface) {
-		return;
-	}
-  	iso_logger( "%s", "In - telepathy_contacts_send_presence\n" );
-
-	status_ids = g_hash_table_new_full (g_str_hash,
-					    g_str_equal,
-					    g_free,
-					    (GDestroyNotify) g_hash_table_destroy);
-	status_options = g_hash_table_new_full (g_str_hash,
-						g_str_equal,
-						NULL,
-						(GDestroyNotify) g_value_unset); //ToDo: get clarity on freeing this resource
-
-	presence_state = telepathy_presence_get_state (presence);
-	status_id = telepathy_presence_state_to_str (presence_state);
-	message = telepathy_presence_get_status (presence);
-
-	if (message) {
-		g_value_init (&value_message, G_TYPE_STRING);
-		g_value_set_string (&value_message, message);
-		g_hash_table_insert (status_options, "message", &value_message);
-	}
-
-	g_hash_table_insert (status_ids,
-			     g_strdup (status_id),
-			     status_options);
-
-	tp_conn_iface_presence_set_status_async(DBUS_G_PROXY(pres_iface),
-						status_ids,
-						update_status_cb,
-						(gpointer)msg_hdr->hdr_req );
-
-	g_hash_table_destroy (status_options); //ToDo: get clarity on freeing this resource
-	g_hash_table_destroy (status_ids);
-  	iso_logger( "%s", "Out - telepathy_contacts_send_presence\n" );
-
-}
-
-/*! /brief This function will be called for presence of each contact
- *  key has got the state and value status
- *
- *  /param key : hash table key ie presence state
- *  /param value : hash table value ie presence information
- *  /param presence : user data
- *  /remark presence object is logically unused ?
- *
- *  /return : void
- */
-static void
-telepathy_presences_foreach (gpointer        *key,
-		      gpointer        *value,
-		      TelepathyPresence **presence)
-{
-
-	TelepathyPresenceState state;
-	const gchar        *message = NULL;
-
-	*presence = telepathy_presence_new();
-  	iso_logger( "%s", "In - telepathy_presences_foreach\n" );
-  	
-  	iso_logger( "%s%s", "state : ", (gchar *)key );
-
-	state = telepathy_telepathy_presence_state_from_str((const gchar *)
-							 key);
-	telepathy_presence_set_state(*presence, state);
-
-	message = g_value_get_string((GValue *)
-				     g_hash_table_lookup((GHashTable *)
-							 value, "message"));
-  	iso_logger( "%s%s", "message : ", (const gchar *)message );
-
-	send_presence_to_client((const gchar *)key, message );
-	
-	if (*presence) {
-		g_object_unref (*presence);
-	}
-	
-  	iso_logger( "%s", "Out - telepathy_presences_foreach\n" );
-		
-}
-
-/*! /brief This function will be called for each contact. Contact name is 
- *  got from the contcat handle, telepathy_presences_foreach is called 
- *  to get the presence from value of the hash table
- *
- * @param key : hash table key ie contact handle id
- * @param value : hash table value ie presence
- * @return : void
- */
-static void
-telepathy_presence_handle_foreach (gpointer        *key,
-		      gpointer        *value)
-{
-	gint                 handle_id;
-	GHashTable          *presences_hash;
-	GValue              *gvalue;
-	GObject      		*presence;
-	gchar              **handle_name = NULL;
-	GArray              *handles;
-	GError         		*error = NULL;
-
-	handle_id = GPOINTER_TO_INT(key);
-
-  	iso_logger( "%s", "In - telepathy_presence_handle_foreach\n" );
-	
-	handles = g_array_new (FALSE, FALSE, sizeof (gint));
-	g_array_append_val (handles, handle_id);
-	if(!tp_conn_inspect_handles(DBUS_G_PROXY(globalCon.conn),
-			       TP_CONN_HANDLE_TYPE_CONTACT, handles,
-			       &handle_name, &error))
-		{
-		iso_logger( "%s%s", "InspectHandle Error: ", error->message );
-		g_clear_error (&error);
-		g_array_free (handles, TRUE);
-		if( handle_name )
-		{
-		g_strfreev (handle_name);
-		}
-		return;
-		}
-
-  	if (handle_name)
-	  	{
-	  	iso_logger( "%s%s", "handle_name : ", *handle_name );
-		glob_handle_name = *handle_name;
-	  	}
-	
-	gvalue = g_value_array_get_nth((GValueArray *) value, 1);
-	
-	presences_hash = (GHashTable *) g_value_get_boxed(gvalue);
-	
-	g_hash_table_foreach(presences_hash,
-			     (GHFunc) telepathy_presences_foreach, &presence );
-			     
-	g_clear_error (&error);
-	g_array_free (handles, TRUE);
-	g_strfreev (handle_name);
-			     
-  	iso_logger( "%s", "Out - telepathy_presence_handle_foreach\n" );
-	
-}
-
-/*! /brief Registered as a signal for presence updates of 
- *  other users. This function will be called whenevr a contact
- *  to whom this user has subscribed for presence changes his 
- *  presence state or status message.
- * 
- *  /param proxy : unused
- *  /param handle_hash : hash table containing presence information
- *  as hash value, contact handle as key
- *  /return : void
- */
-void
-telepathy_presence_handler(DBusGProxy      *proxy,
-			   GHashTable      *handle_hash)
-{
-	GSList *data = NULL;
-    UNUSED_FORMAL_PARAM(proxy);
-  	iso_logger( "%s", "In - telepathy_presence_handler\n" );
-	g_hash_table_foreach(handle_hash, (GHFunc) telepathy_presence_handle_foreach, data);
-  	iso_logger( "%s", "Out - telepathy_presence_handler\n" );
-
-}
-
-
-/*! /brief sends presence of the client to n/w server thru' gabble
- *  calls telepathy_contacts_send_presence to send presence
- *
- *  /param msghdr request header that will be passed back to client
- *  /param message_type_err unused
- *  /remark please remove this unused variable(why was this added?)
- *
- *  /return : error code on failure, 0 on success
- */
-void send_presence( presence_msg_struct* msg_hdr , gint message_type_err ) 
-  {
-  	TelepathyPresence        *presence;
-	TelepathyPresenceState state;
-    UNUSED_FORMAL_PARAM(message_type_err);
-  
-  	iso_logger( "%s", "In - send_presence\n" );
-
-    //changing own presence status
-	presence = telepathy_presence_new();
-	state = telepathy_telepathy_presence_state_from_str(msg_hdr->useravailability);   
-	telepathy_presence_set_state(presence, state);
-
-	//if (msg_hdr->statustext != NULL)
-		telepathy_presence_set_status (presence, msg_hdr->statustext);
-	
-    telepathy_contacts_send_presence(DBUS_G_PROXY(globalCon.pres_iface), presence, msg_hdr);
-   	
-   	g_object_unref (presence);
-  	iso_logger( "%s", "Out - send_presence\n" );
-  }
-
-/*! /brief parses the message buffer. aPresenceStatus and aStatustext
- *  pointers updated
- *
- *  /param aMsgBuffer message buffer
- *  /param aPresenceStatus after call to this function it will
- *  have the presence status to be updated
- *  /param aStatustext after call to this function it will
- *  have the status text to be updated
- * 
- *  /param msg_len : msg_len no. of bytes in msg_buf
- *  /return returns error code on failure, or 0
- */
-int parse_for_presence( gchar* msgbuffer, gchar** presencestatus, 
-	gchar** statustext, gint msg_len ) 
-{
-
-   gint len = 0;
-   gint err=0;
-   gchar *user_availability =NULL;
-   gchar *status_text =NULL;
-   
-   iso_logger( "%s", "In - parse_for_presence\n" );
-   //calculating len for request header
-   //skip the msg_hdr part
-   len += sizeof( message_hdr_req );
-   
-   // reading a availability from buffer
-   err = parse_a_string( msgbuffer, &user_availability, &len, msg_len );
-   *presencestatus=user_availability;
-   if ( err < 0 ) 
-		{
-		return err;
-		}
-   // reading a status text
-   err = parse_a_string( msgbuffer, &status_text, &len, msg_len );
-   *statustext=status_text;
-  
-iso_logger( "%s", "Out - parse_for_presence\n" );
-// need to check.....
-return 1;	
-}
-
-/*! /brief Parses the message from client and sends the presence 
- *  to n/w server. A err is returned if there is any parse error
- *  or out of memory condition
- *
- *  /param buf : buffer to be parsed
- *  /param buf_len : buffer length
- *  /return : error code if any, 0 on success 
- */
-int action_parse_presence( gchar* buf, gint buf_len ) 
-
-{
-	gchar* presencestatus = NULL;
-	gchar* statustext = NULL;
-	message_hdr_req *msg_hdr = NULL;
-	gint message_type_err = 0;
-	presence_msg_struct* msg_struct = NULL;
-	//parse user availability and status text .. 	
-	iso_logger( "%s", "In - action_parse_presence\n" );
-	message_type_err = parse_for_presence( buf, 
-			&presencestatus,&statustext, buf_len );
-		//if <= 0 there is some error in the message formation
-	if ( message_type_err >  0 ) 
-		{
-		
-		//send message
-		msg_hdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-		if ( NULL == msg_hdr ) 
-			{
-			return MEM_ALLOCATION_ERROR;
-			}
-	    memset( msg_hdr, '\0', sizeof( message_hdr_req ) );
-	    //read message header from buffer
-	    memcpy( msg_hdr, buf, sizeof( message_hdr_req ) );
-	    
-	    //fill the contacts and message into a struct
-	    msg_struct = ( presence_msg_struct* ) malloc ( sizeof ( presence_msg_struct ) );
-	    if ( NULL == msg_struct ) 
-			{
-			free ( msg_hdr );
-			return MEM_ALLOCATION_ERROR;
-			}
-		msg_struct->hdr_req = msg_hdr;
-		msg_struct->useravailability = presencestatus;
-		msg_struct->statustext = statustext;
-		//send presence should be called
-		 send_presence( msg_struct, message_type_err );		
-		}
-	
-	//free ( msg_hdr );
-	iso_logger( "%s", "Out - action_parse_send\n" );
-	//return error on failure, or no. of contacts message sent to on success
-	return message_type_err;
-		
-			
-			
-}
-
-
-/*! /brief callback for updating own presence. This function 
- *  sends response to client
- *
- *  /param proxy : unused
- *  /param error : error if any
- *  /param message : message header  
- *  /return : void
- */
-void update_status_cb(DBusGProxy *proxy, GError* error, gpointer userdata)
-{
-
-	int err = 0;
-
-	message_hdr_req* msg_hdr = ( message_hdr_req* ) userdata;
-	// create the msg queue
-	//user data is of type message_hdr_req
-	iso_logger( "%s", "In - update_status_cb\n" );
-    UNUSED_FORMAL_PARAM(proxy);
-	if ( NULL != error ) 
-		{
-		//There was some error
-		//send the response for the msg_hdr request to client
-		err = send_response_to_client( msg_hdr, error->code, 0 );
-		}
-	else 
-		{
-		//send the response for the msg_hdr request to client
-		err = send_response_to_client( msg_hdr, 0, 1 );
-		}
-						
-	//free( msg_hdr );
-
-	if ( err < 0 )
-		{
-		// failed to deliver
-		iso_logger( "%s", "failed to deliver\n" );
-		}
-	iso_logger( "%s", "Out - update_status_cb\n" );
-		
-}
-
-
-/*! /brief Sends presence of conatct to the client. Forms 
- *  the proper presence message format and sends that to client
- *
- *  /param : availability user availability
- *  /param : text custom status message set by user
- *  /return : error code on failure, 0 on success
- */
-int send_presence_to_client( const gchar *availability , const gchar *text )
-	{
-		int len=0;
-		int pri = MSG_PRI_NORMAL;
-		char rmsg[MAX_MSG_SIZE];
-		int index = 0;
-		int err;
-		message_hdr_resp* msg_resp = NULL;
-		int result = 0;
-		int timeout = NO_WAIT;
-	   
-	   	iso_logger( "%s", "In - send_presence_to_client\n" );
-
-	   	msg_resp = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-		if ( NULL == msg_resp ) 
-			{
-			return MEM_ALLOCATION_ERROR;	
-			}
-		memset( msg_resp, '\0', sizeof( message_hdr_resp ) );
-	    memset( msg_resp, '\0', sizeof( message_hdr_resp ) );
-		msg_resp->hdr_req.message_type = EPresenceNotification;
-		msg_resp->hdr_req.protocol_id = 1;
-		msg_resp->hdr_req.session_id = 1;
-		msg_resp->hdr_req.request_id =1;
-		msg_resp->response = 1;
-		msg_resp->error_type = 0;
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		memcpy( rmsg, msg_resp, sizeof( message_hdr_resp ) );
-	    index += sizeof( message_hdr_resp );
-	    //putting sender in message queue
-	    len = strlen(glob_handle_name);
-	    strcpy( rmsg + index, glob_handle_name );
-	    index += len + 1;
-	    //putting user availability   
-	    len = strlen(availability);
-	    strcpy( rmsg + index, availability );
-	    index += len + 1;
-	    // puttin status text
-	    len = strlen(text);
-	    strcpy( rmsg + index, text );
-	    index += len + 1;
-	    result = MsgQSend( RESPONSE_QUEUE, rmsg, index, 
-							pri, timeout, &err);
-							
-		free ( msg_resp );
-	    if(result<0)
-	    {
-	    	return FALSE;
-	    }
-	   
-	    
-		iso_logger( "%s", "message is:\n");
-	   	iso_logger( "%s", "Out - send_presence_to_client\n" );
-
-		return TRUE;
-   }
--- a/isolationserver/isoserver/src/isosearch.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,634 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isosearch.c
-*  Part of     : isolation server.
-*  Version     : %version: 17 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-/*!	\file 
-*	Impliments the functions in isosearch.h
-*/
-
-/*! \def For malloc
-*/
-#include <stdlib.h>
-
-/*! \def For string operations
-*/
-#include <string.h>
-
-/*! \def For GHashTable
-*/
-#include <glib/ghash.h>
-
-/*! \def For search related declarations
-*/
-#include "isosearch.h"
-
-/*! \def For globalCon
-*/
-#include "isoservermain.h"
-
-/*! \def For tp_chan_type_search_async
-*/
-#include "tp-chan-type-search-gen.h"
-
-/*! \def For MSG_PRI_NORMAL
-*/
-#include "msgqlib.h"
-
-/*! \def For message_hdr_req
-*/
-#include "isoutils.h"
-
-/*! \def For RESPONSE_QUEUE
-*/
-#include "msgliterals.h"
-
-/*!	\struct key_value_struct isoserach.h
-*	\brief This struct is used for to form the msg buffer that will be sent to client
-*	\var msg As the key/value pairs are read those will be appended to msg
-* 	\var len is the no. of bytes appended to msg
-*/
-struct key_value_struct 
-	{
-	gchar* msg;
-	gint len;		
-	};
-	
-/*! \typedef struct key_value_struct to key_value_struct
-* 
-*/	
-typedef struct key_value_struct key_value_struct;
-
-
-static void search_result_received_cb ( DBusGProxy	*proxy,
-									guint       contact_handle,
-									GHashTable	*values, 
-									gpointer	user_data
-								   );
-								   
-static void search_state_changed_cb ( DBusGProxy	*proxy,
-										guint       search_state,
-										gpointer	user_data
-									   );
-									   
-static void searchreply_cb( DBusGProxy *proxy, GError *error, gpointer userdata );
-
-
-static void do_search_again( GHashTable* search_hash );
-
-		
-                      
-/*! \brief This function called by action_parse_search parses rmsg and 
-*	validates the arguments(key/value pairs). If value for any key found missing
-*	returns INVALID_PARAMETERES
-*
-*	\param rmsg Message which is parsed
-*	\param rmsg_len message len 
-*	\param search_hash parsed key/value pairs are filled into this hash table
-*
-*	\return error if any else 0
-*/
-gint parse_for_search( gchar* rmsg, gint rmsg_len, GHashTable* search_hash )
-	{
-	gint pointer_nav = 0;
-	gchar* value_str = NULL;
-	gchar* key_str = NULL;
-	gint err = 0;
-	GValue *value = NULL; 
-	
-	iso_logger( "in parse_for_search");
-	//Skip the header field
-	pointer_nav += sizeof( message_hdr_req );
-	
-	while ( '\0' != *( rmsg + pointer_nav ) && pointer_nav < rmsg_len ) 
-		{
-		//Copy the key
-		err = parse_a_string( rmsg, &key_str, &pointer_nav, rmsg_len );
-		if ( err < 0 ) 
-			{
-			//if error, return error
-			return err;
-			}
-		//End of message reached and no value found for
-		//corresponding key
-		if ( '\0' == *( rmsg + pointer_nav ) ) 
-			{
-			return INVALID_PARAMETERES;				
-			}
-		//Copy the value
-		err = parse_a_string( rmsg, &value_str, &pointer_nav, rmsg_len );
-		if ( err < 0 )
-			{
-			//if error, return error
-			return err;				
-			}
-			
-		value = g_new0( GValue, 1 );
-		g_value_init( value, G_TYPE_STRING );
-		g_value_set_string ( value, value_str );
-	
-	
-		//insert the key value pair into the hash table
-		g_hash_table_insert ( search_hash, key_str, value );						
-		}
-	iso_logger( "out parse_for_search");
-	return 0;			
-	}
-	
-/*!	\brief This function is called as a callback to search chan request
-*	This function creates a search channel and interface which are
-*	used for subsequent search requests. Logically this function is called 
-*	only once per login session.
-*	\remark Not creating a search channel each time is a workaround
-*
-*	\param proxy unused
-*	\param chan_object_path channel object path to create a new channel
-*	\param error if any
-*	\param user_data hash table entry(key/value pair)
-*
-*	\return void
-*/
-
- void do_search_reply( DBusGProxy *proxy, char *chan_object_path, 
- 			GError *error, gpointer user_data )
- {
- 	GHashTable *search_hash = ( GHashTable* ) user_data;
- 	TpChan *search_chan = NULL;
-	DBusGProxy *search_iface = NULL;
-	
-	
-	UNUSED_FORMAL_PARAM( proxy );
- 
- 	iso_logger( "in do_search_reply");
- 	/* Create the object to represent the channel */
-	if ( error ) 
-		{
-		iso_logger( "Error in do_search_reply");
-		//There was an error.. send it to client
-		send_response_to_client( globalCon.search_hdr_req, error->code, 0 );
-		//Should error be returned to the client ?
-		return;
-		}
-	search_chan = tp_chan_new( globalCon.dbusConn, globalCon.connmgr_bus, chan_object_path, 
-	TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH, TP_CONN_HANDLE_TYPE_NONE, 0 );
-	                         
-    globalCon.search_chan = search_chan;
-	                    
-	g_free(chan_object_path);
-  
-  
-  	if ( NULL == search_chan ) 
-		{
-		iso_logger( "returning because of search_chan");
-		//search chan not created
-		//sending to client
-		send_response_to_client( globalCon.search_hdr_req, TP_SEARCH_CHAN_ERROR, 0 );
-		return ;	
-		}
-	//Get chan interface					
-	search_iface = tp_chan_get_interface( search_chan, 
-		TELEPATHY_CHAN_IFACE_CONTACTSEARCH_QUARK );	
-	
-	if ( NULL == search_iface ) 
-		{
-		iso_logger( "returning because of search_iface");
-		//interface for search chan not created 
-		//send that to client
-		send_response_to_client( globalCon.search_hdr_req, TP_SEARCH_IFACE_ERROR, 0 );
-		return ;	
-		}					
-	
-	//Register for the SearchResultReceived signal
-	//ownership of the srch_result->user_data is transfered
-	dbus_g_proxy_connect_signal( search_iface, "SearchResultReceived",
-							G_CALLBACK( search_result_received_cb ),
-							NULL, NULL );
-	
-	
-	//Register for the SearchStateChanged signal
-	dbus_g_proxy_connect_signal( search_iface, "SearchStateChanged",
-							G_CALLBACK( search_state_changed_cb ),
-							NULL , NULL );
-	//Call the search on tp		      										      
-	tp_chan_type_search_async( search_iface, search_hash , searchreply_cb, 
-								NULL );
-			
-	iso_logger( "out do_search_reply");			
-	
-  
- }
-
-
-/*! \brief This function is called by action_parse_search to search for fields
-*	\remark This function routes the searches to do_search_again if searched more 
-*	than once. This is a workaround because we are getting the signal callbacks 
-*	'n'ths( where n is nth search ) time if search channel is created each time. 
-*
-*	\param search_hash Hash table having the search key and value pairs to be searched
-*
-*	\return void
-*/
-
-gint do_search( GHashTable* search_hash ) 
-	{
-	
-	iso_logger( "in do_search");
-	
-	if(globalCon.search_chan == NULL)
-		{
-		tp_conn_request_channel_async( DBUS_G_PROXY( globalCon.conn ),
-	                               TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH, 
-	                               TP_CONN_HANDLE_TYPE_NONE, 0, TRUE,
-	                               do_search_reply, (gpointer)search_hash ) ;
-		}
-
-	else
-		{
-		 iso_logger( "calling do_search_again");
-		 do_search_again(search_hash);
-		}
-	iso_logger( "out do_search");
-	
-	return 0;		
-	}
-
-/*! \brief This function is called if search is done more than once in same login session. 
-*	\remark This is a workaround because we are getting the signal callbacks 
-*	'n'ths( where n is nth search ) time. 
-*
-*	\param search_hash Hash table having the search key and value pairs to be searched
-*
-*	\return void
-*/
-void do_search_again( GHashTable* search_hash )
- {
- 
-	DBusGProxy *search_iface = NULL;
-	
-	iso_logger( "in do_search_again");
- 	
-  	if ( NULL == globalCon.search_chan ) 
-		{
-		iso_logger( "returning because of search_chan");
-		//search chan not created
-		//sending to client
-		send_response_to_client( globalCon.search_hdr_req, TP_SEARCH_CHAN_ERROR, 0 );
-		return ;	
-		}
-	//Get chan interface					
-	search_iface = tp_chan_get_interface( globalCon.search_chan, 
-		TELEPATHY_CHAN_IFACE_CONTACTSEARCH_QUARK );	
-	
-	if ( NULL == search_iface ) 
-		{
-		iso_logger( "returning because of search_iface");
-		//interface for search chan not created 
-		//send that to client
-		send_response_to_client( globalCon.search_hdr_req, TP_SEARCH_IFACE_ERROR, 0 );
-		return ;	
-		}					
-	
-
-	//Call the search on tp		      										      
-	tp_chan_type_search_async( search_iface, search_hash, searchreply_cb, 
-			NULL );
-			
-	iso_logger( "out do_search_again");			
-	
-  
- }
-
-
-/*
-! /brief This function is called by message_send_recv function in isoservermain.c if message type
-*   is ESearch. This function parses the rmsg, validates the parameter passed, if parameters are 
-*   correct a search performed for them. else INVALID_PARAMETERES error is returned
-*
-*   /param rmsg message buffer to be parsed
-*   /param rmsg_len the length of the rmsg
-*   /remark rmsg_len is not strlen(rmsg)
-*   /return returns error code or 0 on success
-*/
-gint action_parse_search( gchar* rmsg, gint rmsg_len ) 
-	{
-		
-	gint err = 0;
-	GHashTable* search_hash = NULL;
-	message_hdr_req* hdr_req = NULL;
-	//Allocate memory and set the memory to '\0'
-	iso_logger( "in action_parse_search");	
-	hdr_req = ( message_hdr_req* ) malloc ( sizeof ( message_hdr_req ) );
-	
-	if ( NULL == hdr_req ) 
-		{
-		return MEM_ALLOCATION_ERROR;			
-		}
-	memset( hdr_req, '\0', sizeof( message_hdr_req ) );
-	//Copy the header into message struct
-	memcpy( hdr_req, rmsg, sizeof( message_hdr_req ) );
-	//Create the hash table
-	search_hash = g_hash_table_new( g_str_hash, g_str_equal );
-	if ( NULL == search_hash ) 
-		{
-		return MEM_ALLOCATION_ERROR;			
-		}
-	//Parse the key value pairs to be searched into the hash
-	err = parse_for_search( rmsg, rmsg_len, search_hash );
-	if ( !err ) 
-		{
-		//Do the search on the fields
-		globalCon.search_hdr_req = hdr_req;
-		err = do_search( search_hash );		
-		}
-	iso_logger( "out action_parse_search");	
-	
-	return err;	
-	}
-	
-/*! \brief This function is called by search_results_recieved for each key/value 
-* 	pair of search result(one entry). This function appends the key/value pair 
-* 	to the message buffer in the key_value_struct(.msg) and increments 
-*	the no. of bytes written to(key_value_struct.len)
-*
-*	Format of response header(msg buffer)	
-*	key1\0value1\0key2\0value2\0(key3\0value3\0) (3rd round append)
-*
-*	\param key one field of the search entry
-*	\param value value for the above field
-*	\param user_data unused
-*
-*	\return void
-*/
-
-void key_value_store( gpointer key, gpointer value, gpointer user_data ) 
-	{
-	
-	key_value_struct* pairs = ( key_value_struct * ) user_data;	
-	GValue* value1 = ( GValue* ) value;
-	const gchar *value_str = NULL; 
-	const gchar *key_str = ( gchar* ) key; 
-	
-	iso_logger( "in key_value_store");
-	
-	value_str = g_value_get_string ( value1 );
-	
-	if ( '\0' == *value_str ) 
-		{
-		iso_logger( "No value");
-		return;			
-		}
-	
-	iso_logger( "key is %s", key_str );
-	//copy The results key part 
-	strcpy( pairs->msg + pairs->len, key_str );
-	pairs->len += strlen( key_str ) + 1;
-	
-	iso_logger( "value is %s", value_str );
-	//copy The results value part 
-	strcpy( pairs->msg + pairs->len, value_str );
-	pairs->len += strlen( value_str ) + 1;
-	iso_logger( "out key_value_store");	
-	}
-	
-	
-/*!
-* 	\brief This function is called when the search results are recieved
-* 	This function is called for each contact found matching the 
-* 	search criteria. 
-*
-*	\param proxy unused
-*	\param contact_handle unused
-*	\param results Key value pair of one search result entry
-*	\param user_data unused
-*
-*	\return void
-*/
-static void search_result_received_cb ( DBusGProxy	*proxy,
-										guint       contact_handle,
-										GHashTable	*results, 
-										gpointer	user_data
-									   )
-	{
-	message_hdr_resp hdr_resp;
-	//Get the header request
-
-	message_hdr_req* hdr_request = globalCon.search_hdr_req;
-	key_value_struct pairs;
-	
-	gint pri = MSG_PRI_NORMAL;
-	gint result = 0;
-	gint timeout = NO_WAIT;
-	gint err = 0;
-	
-	//Create the handle 
-	iso_logger( "in search_result_received_cb");
-	
-	UNUSED_FORMAL_PARAM( proxy );
-	UNUSED_FORMAL_PARAM( contact_handle );
-	UNUSED_FORMAL_PARAM( user_data );
-	
-	if ( g_hash_table_size( results ) <= 0 ) 
-		{
-		iso_logger( "No results recieved");
-		return;			
-		}
-	
-	iso_logger("search result count for hash table %d", 
-			g_hash_table_size( results ) );
-	iso_logger("contact handle is %d", 
-			contact_handle );
-	
-	//Create the response header to be sent to client
-	//Copy the message header request
-	//Not copying from hdr req because it could have been modified
-	//in search_state_changed_cb
-	hdr_resp.hdr_req.message_type = ESearch;
-	hdr_resp.hdr_req.protocol_id = hdr_request->protocol_id;
-	hdr_resp.hdr_req.request_id = hdr_request->request_id;
-	hdr_resp.hdr_req.session_id = hdr_request->session_id;
-	//set continue flag
-	hdr_resp.continue_flag = 0;
-	hdr_resp.error_type = 0;
-	hdr_resp.response = 1;
-	//Allocate memory for the message and set memory to '\0'	
-	pairs.msg = ( gchar* ) malloc ( MAX_PARAM_LEN );
-	if ( NULL == pairs.msg ) 
-		{
-		iso_logger( "malloc error @ pairs.msg" );
-		return ;			
-		}
-	memset( pairs.msg, '\0', MAX_PARAM_LEN );
-	pairs.len = 0;
-	//Copy the response
-	memcpy( pairs.msg, &hdr_resp, sizeof ( message_hdr_resp ) );
-	pairs.len += sizeof( message_hdr_resp );
-	//Copy the contact name
-	iso_logger( "%s%d", "message type in search_result_received_cb", hdr_request->message_type );
-
-
-	iso_logger( "%s", "start -------------------------------------------------" );
-
-	iso_logger( "%s", "contacts key value pair start" );
-
-	//Copy all the key/value pairs : 
-	//no need to check for size here as it is already done at top
-	g_hash_table_foreach ( results, key_value_store, &pairs );	
-	
-	iso_logger( "%s", "end -------------------------------------------------" );
-
-	//End the message with a '\0'
-	pairs.len += 1;
-	pairs.msg[pairs.len] = '\0';
-	//Send the message to client
-	result = MsgQSend( RESPONSE_QUEUE, pairs.msg, pairs.len, 
-						pri, timeout, &err );
-						
-	if ( result < 0 )
-		{
-			
-		}
-		
-	//Free the hash table itself
-	g_hash_table_destroy ( results );
-	
-	iso_logger( "in search_result_received_cb");
-	}
-	
-/*! \brief This function is a callback registered to searchstatechanged signal.
-*	This function is called by telepathygabble when status of the search is changed.
-*
-*	\param proxy unused
-*	\param search_state state of the search
-*	\param user_data unused
-*
-*	\return void
-*/
-static void search_state_changed_cb ( DBusGProxy	*proxy,
-										guint       search_state,
-										gpointer	user_data
-									   )
-	{
-
-	gint err = 0;
-	//Get the header request
-	
-	iso_logger( "in search_state_changed_cb");
-	
-	UNUSED_FORMAL_PARAM( proxy );
-	UNUSED_FORMAL_PARAM( user_data );
-	
-
-	if ( 1 == search_state && globalCon.search_hdr_req )
-		{
-		globalCon.search_hdr_req->message_type = ESearch_State_During;
-		err = send_response_to_client( globalCon.search_hdr_req, 0, 1 );
-		if ( err ) 
-			{
-			iso_logger( " 1 == search_state Error sending to client");
-			//?			
-			}
-		}
-	else if ( TP_CHANNEL_CONTACT_SEARCH_STATE_AFTER == search_state 
-					 && globalCon.search_hdr_req )
-		{
-		globalCon.search_hdr_req->message_type = ESearch_State_Finished;
-		err = send_response_to_client( globalCon.search_hdr_req, 0, 1 );
-		if ( err ) 
-			{
-			iso_logger( "Error sending to client");
-			//?			
-			}
-		//Since the search is finished delete the hdr request
-		free ( globalCon.search_hdr_req );
-		globalCon.search_hdr_req  = NULL;
-		}
-	
-	
-	iso_logger( "out search_state_changed_cb");
-	}
-	
-/*!	\brief Function called by telepathygabble when search channel is closed
-*	This function is regisered when calling the async function to close channel
-*
-*	\param	proxy unused
-*	\param	error Error if any
-*	\param	user_data unused
-*
-*	\return void
-*/
-void search_chan_closed_cb ( DBusGProxy	*proxy,
-									GError *error,
-									gpointer	user_data
-								  )
-	{
-	iso_logger( "in search_chan_closed_cb");
-	UNUSED_FORMAL_PARAM( proxy );
-	UNUSED_FORMAL_PARAM( error );
-	UNUSED_FORMAL_PARAM( user_data );
-	g_object_unref(globalCon.search_chan);
-	globalCon.search_chan = NULL;
-	iso_logger( "out search_chan_closed_cb");
-	}
-	
-/*!	\brief Function called by telepathygabble when search request is sent to server.
-*	This function is can be thought of as an ack for search request from server.
-*
-*	\param	proxy unused
-*	\param	error Network error if any
-*	\param	user_data unused
-*
-*	\return void
-*/	
-static void searchreply_cb( DBusGProxy *proxy, GError *error, gpointer userdata ) 
-	{
-	
-	
-	iso_logger( "in searchreply_cb" );
-	UNUSED_FORMAL_PARAM( proxy );
-	UNUSED_FORMAL_PARAM( userdata );
-	
-	if ( error ) 
-		{
-		
-		iso_logger( "Error!!!!!" );
-		//err cant be handled as of now/this is a special case
-		//where mem alloc is not possible when sending to client..
-		send_response_to_client( globalCon.search_hdr_req, error->code, 0 );
-		
-		tp_chan_close_async( DBUS_G_PROXY( globalCon.search_chan ), 
-					search_chan_closed_cb, NULL );
-		//Header request is deleted only in case of error
-		//Because the search_state_finished_cb will not be called
-		//In othr cases ownership of user_data is with search_state_finished_cb
-		
-		free ( globalCon.search_hdr_req );
-		globalCon.search_hdr_req = NULL;
-		}
-	
-	iso_logger( "out searchreply_cb");
-
-	}
--- a/isolationserver/isoserver/src/isoservermain.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,496 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoservermain.c
-*  Part of     : isolation server.
-*  Version     : %version: 33 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-
-#include <glib.h>
-
-#include <gtypes.h>
-#include <sys/types.h>   
-#include <stdlib.h>
-#include <string.h>
-
-#include <netinet/in.h>
-#include <stdio.h>  
-#include <netdb.h>
-#include <unistd.h>
-#include <errno.h>
-#include "msgqlib.h"
-#include "msg_enums.h"
-#include "msgliterals.h"
-#include "isoservermain.h"
-#include "isoim.h"
-#include "isoconnectionmanager.h"
-#include "isomodifycontactlist.h"
-#include "isoutils.h"
-#include "isopresence.h"
-#include "isoutils.h"
-#include "isoavtar.h"
-#include "isosearch.h"
-#include "isogetsearchkeys.h"
-#include "isofetchcontactlist.h"
-
-/*!	\file 
-*	Impliments the functions in isoservermain.h
-*/
-
-/*!	\def Thread stack size
-*/
-#define THREAD_STACK_SIZE	26000
-
-/*! \var mainloop_struct global variable having a pointer to mainloop
-*/
-globalMainloop mainloop_struct;
-
-/*!	\var globalCon one object per login session
-*/
-userConnection globalCon;
-
-
-/*! /brief This message reads message type from the message buffer
-*   passed as argument
-*
-*   /var pc message buffer
-*   
-*   /return pointer to message header response which has the message type
-*/
-message_hdr_resp* read_message_type( gchar* buf ) 
-	{
-	
-	message_hdr_resp *msg_hdr = NULL;
-	iso_logger( "%s", "In - read_message_type\n" );
-	//allocate memory and check for error
-	msg_hdr = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	if ( NULL == msg_hdr ) 
-		{
-		return NULL;	
-		}
-	//initialze memory to 0
-    memset( msg_hdr, '\0', sizeof( message_hdr_resp ) );
-    //read message request header from buffer
-    memcpy( msg_hdr, buf, sizeof( message_hdr_req ) );
-    iso_logger( "%s", "Out - read_message_type\n" );
-    //return message header read from buffer
-	return msg_hdr;
-	}
-
-/*! /brief This is an entry point to the thread. isoserver.exe
-*   creates a thread which runs a mainloop. mainloop is passed as 
-*   argument to the thread entry function. This mainloop which is 
-*   run in the thread listens for the events from telepathygabble
-*
-*   /var data unused param
-*/
-gpointer thread_entry( gpointer data ) 
-	{
-	UNUSED_FORMAL_PARAM(data);
-	//wait till status_changed_cb to happen
-	//The only main loop is run in a thread..
-	iso_logger( "%s", "In - thread_entry\n" );
-	//run the mainloop in thread..
-	g_main_loop_run( mainloop_struct.mainloop ); 
-	iso_logger( "%s", "Out - thread_entry\n" );
-	return NULL;
-	}
-	
-/*! /brief If there are any parse error, this function is called to
-*   dispatch the error to client.
-*   
-*   /param msg_struct The response header to be sent 
-*   /param err Error
-*/
-gint send_error( message_hdr_resp* msg_struct, gint err )	
-	{
-	int result = 0;
-	int pri = MSG_PRI_NORMAL;
-	int timeout = NO_WAIT; 
-	int error = 0;  
-	
-	//set the error and reason
-	msg_struct->error_type = err;
-	//Since this is method to send error
-	//response is always 0
-	msg_struct->response = 0;
-	
-	//request has fialed send appr. response
-	result = MsgQCreate( RESPONSE_QUEUE, MAX_MSG_Q_SIZE, MSG_Q_FIFO, &error );
-	if ( ERROR == result )
-		{
-		//graceful exit?
-		return ERROR;
-		}
-		
-	//send message created to client		
-	result = MsgQSend( RESPONSE_QUEUE, (void*)msg_struct, sizeof( message_hdr_resp ),
-			 pri, timeout, &error );
-			
-	if( result != 0 )
-		{
-		// msg deliver falied 
-		return MSG_Q_SEND_FAILED;
-		}
-	return 0;	
-	}
-	
-/*! /brief This function waits for the requests from the client.
-*   Requests are parsed, validated and appropriate actions taken.
-*   A new thread is created when login happens. This function runs 
-*   a while loop which is only quit when a kill request is recieved 
-*   from the client.
-*
-*   /remark should this thread be created before login?
-*   /remark when is the mainloop quit ? (Should that be after logout or 
-*   after getting a kill request from the client)
-*/
-int message_send_recv() 
-	{
-    
-	int err = 0;
-	int result = 0;
-	int timeout1 = TIME_OUT; // block for 100 ms
-	char rmsg[MAX_MSG_SIZE];  // 1024 bytes
-	GMainLoop* mainloop = NULL;
-	GThread* join1 = NULL;
-	message_hdr_resp* msg_struct = NULL;
-	GArray* avtarcontent = NULL;
-	
-	globalCon.conn_stat = disconnected;
-	globalCon.logout_flag = 0;
-
-	/* Try to Create queueOne again, this will create the queue again,
-	   this will just return as its already created by main thread */
-	iso_logger( "%s", "In - message_send_recv\n" );
-	
-	result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE, MSG_Q_FIFO, &err);
-	
-	//logic here to accept multiple clients
-	mainloop = g_main_loop_new ( NULL, FALSE ); //global mainloop
-	
-	
-	if ( ERROR == result || NULL == mainloop )
-		{
-		return ERROR;
-		}
-	
-	mainloop_struct.mainloop = mainloop;
-
-	while( 1 ) 
-		{
-			
-		//initalize memory to 0
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		// Receive Message from queueTwo 
-		result = MsgQReceive(REQUEST_QUEUE, rmsg, MAX_MSG_SIZE, timeout1, &err); 
-		
-		//MRT bug - 4 more bytes recieved than sent..
-		result -= 4; 
-
-
-		//The message should be atleast of size msg_hdr_req
-		//sizeof should be type casted to gint 
-		//coz when comparing gint and guint(sizeof return value) 
-		//gint is converted to guint
-		if( result >= ( gint )sizeof( message_hdr_req ) )
-			{
-			gboolean stat_err = FALSE;
-			// read message header and get type..
-			msg_struct = read_message_type( rmsg );
-			if ( NULL == msg_struct ) 
-				{
-				//needs to be discussed what can be done..
-				//should exit from here?
-				return MEM_ALLOCATION_ERROR;	
-				}
-			switch( globalCon.conn_stat )
-			    {
-			    case connected:
-			        {
-			            //switch to the message type, where action to be performed
-			            //is decided dpending on the message type
-			            switch ( msg_struct->hdr_req.message_type ) 
-			            {
-                            
-                        case ESend_Request:
-                            {
-                            iso_logger( "%s", "In - ESend_Request\n" );
-                            //parse the request and 
-                            // send the request to telepathy
-                            err = action_parse_send( rmsg, result );
-                            if ( err < 0 ) 
-                                {
-                                //Send request has failed..
-                                //send the error code to the client
-                                send_error( msg_struct, err );
-                                }
-                        
-                            break;
-                            }
-                        case EUpdateOwnPresence:
-                            {
-                            iso_logger( "%s", "In - EUpdateOwnPresence\n" );
-                            //parse the request and 
-                            // send the request to telepathy
-                            err = action_parse_presence( rmsg, result );
-                            if ( err < 0 ) 
-                                {
-                                //Send request has failed..
-                                //send the error code to the client
-                                send_error( msg_struct, err );
-                                }
-                        
-                            break;
-                            } 
-                        //For accept, add and delete same function does the job
-                        //depending on the message type that is passed with rmsg
-                        case EReject_Contact_Request:
-                        
-                        case EAccept_Contact_Request:
-                        
-                        case EAdd_Contact_Request:
-                        
-                        case EDelete_Contact_Request:
-                            {
-                            iso_logger( "%s", "In - modify Contact \n" );
-                            //Parse the request for to add contact and 
-                            //request telepathy to add contact
-                            err = action_parse_modify_contact_list( rmsg, result );
-                            if ( err < 0 ) 
-                                {
-                                //addcontacts has fialed send appr. response
-                                send_error( msg_struct, err );
-                                }
-                        
-                            break;
-                            }
-                        
-                        case ESearch:
-                            {
-                            iso_logger( "%s", "In - ESearch\n" );
-                            //parse the request and 
-                            // send the request to telepathy
-                            err = action_parse_search( rmsg, result );
-                            if ( err < 0 ) 
-                                {
-                                //Send request has failed..
-                                //send the error code to the client
-                                iso_logger( "%s %d", "error in - ESearch error code:", err );
-                                send_error( msg_struct, err );
-                                }
-                            break;                      
-                            }
-                            
-                        case ESearch_Get_Keys:
-                            {
-                            iso_logger( "%s", "In - ESearch_Get_Keys\n" );
-                            err = get_search_keys( msg_struct );
-                            
-                            if ( err < 0 ) 
-                                {
-                                //Send request has failed..
-                                //send the error code to the client
-                                iso_logger( "%s %d", "error in - ESearch_Get_Keys error code:", err );
-                                send_error( msg_struct, err );
-                                }
-                                
-                            break;
-                            }
-                        case ELogout_Request:
-                            {
-                            //Message type is to logout
-                            iso_logger( "%s", "In - logout\n" );
-                            globalCon.conn_stat = disconnecting;
-                            action_logout( rmsg );
-                            //globalCon.logout_flag = 1;
-                            break;  
-                            }
-                        case EUpdateOwnAvtar:
-                           {
-                           err = update_own_avatar( rmsg,msg_struct,result, &avtarcontent);
-                           if ( err < 0 ) 
-                               {
-                               //Send request has failed..
-                               //send the error code to the client
-                               iso_logger( "%s %d", "error in - ESearch_Get_Keys error code:", err );
-                               send_error( msg_struct, err );
-                               }                     
-                           break;
-                           }
-                        case EClearOwnAvatar:
-                            {
-                            err = clear_avatar( &(msg_struct->hdr_req) );
-                            if ( err < 0 ) 
-                               {
-                               //Send request has failed..
-                               //send the error code to the client
-                               send_error( msg_struct, err );
-                               }
-                            break;
-                            }
-                        case EFetchCachedContacts:
-                            fetch_cached_contacts();
-                            break;
-                            
-                        default:
-                            {
-                            iso_logger( "%s", "In - default state is connected\n" );
-                            stat_err = TRUE;
-                            break;  
-                            }
-                        
-                         }
-			        }
-			        break;
-			    case disconnected:
-			        switch( msg_struct->hdr_req.message_type )
-                    {
-                    case ELogin_Request:
-                        {
-                        //parse the message buffer and login
-                        iso_logger( "%s", "In - login\n" );
-                        //parses the request message and does a login 
-                        //if all the parameters are correct
-                        globalCon.conn_stat = connecting;
-                        err = action_parse_login( rmsg, result );
-                        //If there is no error in login create a new thread
-                        //where mainloop will be run..
-                        if ( !err )  
-                            {
-                            //Create a thread for the mainloop to run..
-                            //Thread entry does a run on mainloop
-                            join1 = g_thread_create_full( thread_entry, mainloop, 
-                                    THREAD_STACK_SIZE, TRUE, FALSE,
-                                    G_THREAD_PRIORITY_NORMAL , NULL );  
-                        
-                            
-                            }
-                        else 
-                            {
-                            //There was some error while loging in.. send the error 
-                            //to client
-                            globalCon.conn_stat = disconnected;
-                            send_error( msg_struct, err );
-                            }
-                        break;
-                        }
-                        
-                    default:
-                        {
-                        iso_logger( "%s", "In - default state is disconnected\n" );
-                        stat_err = TRUE;
-                        }
-                    }
-			        break;
-			    case not_connected:
-			        switch( msg_struct->hdr_req.message_type )
-			            {
-			            case  EKill_Process :
-                            {
-                            //no need to change the state as anyways it is going to be killed
-                            //globalCon.conn_stat = not_connected;
-                            globalCon.logout_flag = 1;
-                            break;
-                            }
-			            default:
-                            {
-                            iso_logger( "%s", "In - default state is not_connected\n" );
-                            stat_err = TRUE;
-                            }
-			            }
-			        break;
-			    default:
-			        {
-			        iso_logger( "%s", "In - default state connecting or disconnecting \n" );
-                    stat_err = TRUE;
-                    break;  
-                    }
-			    }
-			if ( stat_err )
-			    {
-			    stat_err = FALSE;
-			    iso_logger( "%s", "In - stat_err true \n" );
-			    send_error( msg_struct, CONNECTION_STATUS_ERROR );
-			    }
-			if ( globalCon.logout_flag ) 
-				{
-				//quit mainloop before exiting the thread and then server
-				//quiting mainloop will inturn make the thread to fall off
-				g_main_loop_quit( mainloop_struct.mainloop );
-				iso_logger( "%s", "logout flag break \n" );
-				break;					
-				}
-			free ( msg_struct );
-
-			}
-		else 
-			{
-			break;			
-			}
-		}
-	iso_logger( "%s", "In - g_thread_join\n" );
-	
-	
-
-	//join the thread created for to run mainloop before exiting
-	g_thread_join( join1 );	
-	iso_logger( "%s", "After this should be after mainloop quit - g_thread_join\n" );
-	
-	/* delete message queueOne */
-	result=MsgQDelete( REQUEST_QUEUE, &err );
-	
-	iso_logger( "%s", "Out - MsgQDelete\n" );
-	return 0;
-	}
-
-/*! \brief server main process which listens to requests from client
-*	and processes those requests. A new thread is created to listen to
-*	the events from the telepathygabble. 
-*/
-int main()
-	{
-	int err = 0;
-	//FILE *fp = NULL;
-	    
-	g_type_init();
-	
-	g_thread_init( NULL );/*
-	_dbus_setenv("DBUS_VERBOSE","1");
-	fp= freopen("c:\\iso-dbus.txt", "a",stderr);*/
-	iso_logger( "%s", "In - main\n" );
-	//wait in a loop to accept requests from the client
-	//Can mainloop be used instead of waiting in a loop?
-	err = message_send_recv();
-	if ( err != 0 ) 
-		{
-		printf("exit err code is %d\n", err );	
-		}
-	iso_logger( "%s", "Out - main\n" );
-	
-	//fclose(fp);
-	return 0;
-	}
--- a/isolationserver/isoserver/src/isoutils.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,305 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoutils.c
-*  Part of     : isolation server.
-*  Version     : %version: 15 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <glib.h>
-
-#include "isoutils.h"
-#include "msgliterals.h"
-#include "isoservermain.h"
-
-/*!	\file 
-*	Impliments the functions in isoutils.h
-*/
-
-/*! \def Thread stack size
-*/
-#define LOG_FILENAME "c:\\isoserver.txt"
-
-/*! \brief Documented in the header file
-*/
-void  iso_logger ( gchar* fmt, ... )
-	{
-	#ifdef _DEBUG
-	
-	FILE* fp;
-	//open file to read..
-	fp = fopen( LOG_FILENAME,"a" ); 
-	if ( fp ) 
-	    {
-	    int ival;
-	    double dval;
-	    char* sval;
-	    char* p;
-	    va_list list;
-	    //initalize the variable arg to fmt..
-		va_start( list, fmt );
-		//Go char by char thru' format string
-		//example format string ("Hi, by %s", str)
-		for ( p = fmt; *p; p++ ) 
-			{
-			if ( *p != '%' )
-				{
-				//Not format specifiers just print them to file
-				//In example above printe "Hi, by " to file
-				putc( *p, fp  );
-				continue;	
-				}
-			switch( *++p ) 
-				{
-				case 'd' : 
-					//Next arg got is int
-					//read integer and print to file
-					ival = va_arg( list, int );
-					fprintf( fp, "%d", ival );
-					break;
-				
-				case 'f' : 
-					//Next arg got is float
-					//read float and print to file
-					dval = va_arg( list, double );
-					fprintf( fp, "%f", dval, fp );
-					break;
-				
-				case 's' :
-					//Next arg got is string
-					//read string and go char by char and print to file
-					for ( sval = va_arg( list, char * ); *sval; sval++ ) 
-			   			{
-			   			putc( *sval, fp );
-			   			}
-			   			break;
-			   	case 'u' : 
-					//Next arg got is int
-					//read integer and print to file
-					ival = va_arg( list, uint );
-					fprintf( fp, "%u", ival );
-					break;
-				default:
-					break;
-				}
-			}
-		//print a new line
-		fprintf(fp,"\n");
-		//close file
-		fclose(fp);
-		//close the variable arg list
-		va_end( list );
-	    }
-	#endif //_DEBUG
-	}
-
-/*! \brief Documented in the header file
-*/
-gint parse_a_string( gchar* msg_buf, gchar** str, gint* len, gint msg_len ) 
-	{
-	//parsing the buffer into an array of strings(contacts)
-	gint userlen = 0;
-	gchar* users = NULL;
-	
-	while( '\0' != *( msg_buf + *len ) && *len < msg_len ) 
-		{
-		//len is different from userlen
-		//len is total no. of characters read in msg
-		//where as userlen is no. of char read for this contact
-		userlen++;
-		(*len)++;
-		}
-		
-	//the string is not present
-	//or,Reached the last byte of parse string and it is not '\0'
-	if ( 0 == userlen || 
-		( '\0' != *( msg_buf + *len ) && *len == msg_len ) )
-		{
-		//Got parse error..
-		//Invalid message format..
-		return INVALID_PARAMETERES;	
-		}
-	//Allocate memory and check for error
-	users = ( gchar* ) malloc ( userlen + 1 ); 
-	if ( NULL == users ) 
-		{
-		return MEM_ALLOCATION_ERROR;
-		}
-	memset( users, '\0', userlen + 1 );
-	//copy one contact...
-	memcpy( users, ( msg_buf + *len - userlen ), userlen + 1 );	
-	*str = users;
-	(*len)++;
-	//On success return 0
-	return 0;
-	}
-
-/*! \brief Documented in the header file
-*/
-gint parse_into_array_of_strings( gchar* msg_buf, gchar*** contact_ids, 
-		gint* len, gint msg_len, gint* cntidscount ) 
-	{
-	gchar** cntids = NULL;
-	gchar* users = NULL;
-	gint err = 0;
-	
-	//to calc MAX_MSG_RECEIPIENTS dynamically one more loop needs to be done 
-	//for this
-	//Allocate memory and check for error returns
-	cntids = ( gchar** ) malloc( MAX_MSG_RECEIPIENTS * sizeof( gchar* ) );
-	if ( NULL == cntids ) 
-		{
-		return MEM_ALLOCATION_ERROR;
-		}
-	do
-		{
-		//get one string at a time..	
-		err = parse_a_string( msg_buf, &users, len, msg_len );
-		
-		if ( err < 0 ) 
-			{
-			return err;
-			}
-		//check if max no of contacts are read..
-		//if not, copy contact into 2D array of strings...
-		//else ignore the extra contacts
-		//do not over run the cntids , incase of 
-		//no. of contacts more than max msg recp. @ line 197
-		//cntids[*cntidscount] = NULL;
-		if ( *cntidscount < MAX_MSG_RECEIPIENTS - 1 ) 
-			{
-			cntids[*cntidscount] = users;	
-			( *cntidscount )++;
-			}
-		else 
-			{
-			//users to be freed..ignoring extra no. of recipients
-			free ( users );
-			}
-		
-		//increment the no. of contacts..
-		
-		//all contacts read break the loop
-		//
-		if ( '\0' == *( msg_buf + *len ) )
-			{
-			break;
-			}
-		//If maximum no. of receipients is reached break 
-		//so here of total no. of contacts, message is only sent to
-		//first MAX_MSG_RECEIPIENTS - 1
-		} while( *len < msg_len );
-	cntids[*cntidscount] = NULL;
-	
-	/*
-	//Did not find any use of this as of now..
-	//But in case of any mem issues can be looked into
-	if ( *cntidscount < MAX_MSG_RECEIPIENTS ) 
-		{
-		//realloc is debatable ...
-		cntids = ( char** ) realloc( cntids, ( *cntidscount + 1 ) * sizeof( char* ) );
-		}*/
-	//Assign to contact ids
-	*contact_ids = cntids;
-	(*len)++; //skip the last '\0' ... 2D arrays end with '\0'
-	return 0;	
-	}
-
-/*! \brief Documented in the header file
-*/
-void free_msg_args( gchar** contactid, gint contacts_count, gchar* sendmsg ) 
-	{
-	gint i = 0;
-	//free all the contacts
-	if ( NULL != contactid ) 
-		{
-		for ( i = 0; i < contacts_count; i++ ) 
-			{
-			if ( NULL != (contactid)[i] )	
-				{
-				free ( (contactid)[i] );
-				}
-			}
-		}
-	//free the message
-	if ( NULL != sendmsg ) 
-		{
-		free ( sendmsg );
-		}
-	}
-
-/*! \brief Documented in the header file
-*/	
-gint send_response_to_client( message_hdr_req* hdr_req, gint error, 
-		gboolean response )
-	{
-	int pri = MSG_PRI_NORMAL;
-	gint result = 0;
-	gint err = 0;
-	int timeout = NO_WAIT; 
-	message_hdr_resp* msg_struct = NULL;
-	
-	result = MsgQCreate( RESPONSE_QUEUE, MAX_MSG_Q_SIZE, MSG_Q_FIFO, &err );
-	if ( ERROR == result )
-		{
-		return ERROR;
-		}
-		
-	msg_struct = ( message_hdr_resp* ) malloc ( sizeof( message_hdr_resp ) );
-	if ( NULL == msg_struct ) 
-		{
-		return 	MEM_ALLOCATION_ERROR;
-		}
-
-	//intialize memory to 0
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	//Copy the header request into response header..
-	//This req header in resp will be used to map the req to resp.
-	msg_struct->hdr_req.message_type = hdr_req->message_type;
-	msg_struct->hdr_req.protocol_id = hdr_req->protocol_id;
-	msg_struct->hdr_req.session_id = hdr_req->session_id;
-	msg_struct->hdr_req.request_id = hdr_req->request_id;
-	
-	//set the error and responses..
-   	msg_struct->error_type = error;
-	msg_struct->response = response;
-	
-	//send the message to the client			
-	result = MsgQSend( RESPONSE_QUEUE, (void*)msg_struct, sizeof( message_hdr_resp ),
-			 pri, timeout, &err );
-			 	
-	free ( msg_struct );
-	
-	if ( 0 > result ) 
-		{
-		return MSG_Q_SEND_FAILED;
-		}
-			
-	return 0;
-	
-	}
--- a/isolationserver/messagequeue/bwins/opencmessagequeuelibraryu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-EXPORTS
-	MsgQCheck @ 1 NONAME
-	MsgQClean @ 2 NONAME
-	MsgQCreate @ 3 NONAME
-	MsgQDelete @ 4 NONAME
-	MsgQMaxCheck @ 5 NONAME
-	MsgQReceive @ 6 NONAME
-	MsgQSend @ 7 NONAME
-
--- a/isolationserver/messagequeue/eabi/opencmessagequeuelibraryu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-EXPORTS
-	MsgQCheck @ 1 NONAME
-	MsgQClean @ 2 NONAME
-	MsgQCreate @ 3 NONAME
-	MsgQDelete @ 4 NONAME
-	MsgQMaxCheck @ 5 NONAME
-	MsgQReceive @ 6 NONAME
-	MsgQSend @ 7 NONAME
-
--- a/isolationserver/messagequeue/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isosearch.c
-*  Part of     : isolation server.
-*  Version     : %version: bh1cfmsg#13 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-
-
-PRJ_PLATFORMS
- WINSCW ARMV5
-
-#include <platform_paths.hrh>
-
-PRJ_EXPORTS
-
-
-PRJ_MMPFILES
-messagequeuelibrary.mmp
-
-//  End of File
--- a/isolationserver/messagequeue/group/messagequeuelibrary.mmp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isosearch.c
-*  Part of     : isolation server.
-*  Version     : %version: bh1cfmsg#13 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-#include<platform_paths.hrh>
-TARGET          opencmessagequeuelibrary.dll
-TARGETTYPE      DLL
-UID             0x1000008d 0x2001241B 
-
-
-CAPABILITY      ALL -TCB
-VENDORID     	VID_DEFAULT
-
-VERSION      10.0
-
-#ifndef WINSCW
-EPOCALLOWDLLDATA
-#endif //WINSCW
-
-#ifdef WINSCW
-MACRO 			EMULATOR
-#endif
-
-SOURCEPATH      ../src
-
-
-/*
-#ifdef WINSCW
-SOURCE		  mesgq_wsd.cpp
-#endif 
-*/
-
-SOURCE          msgqcheck.c
-SOURCE          msgqclean.c
-SOURCE          msgqcreate.c
-SOURCE          msgqdelete.c
-SOURCE          msgqmaxcheck.c
-SOURCE          msgqrecv.c
-SOURCE          msgqsend.c
-SOURCE          msgqinternals.cpp
-
-
-USERINCLUDE     ../inc 
-
-MW_LAYER_SYSTEMINCLUDE
-OS_LAYER_LIBC_SYSTEMINCLUDE
-
-
-LIBRARY         	libc.lib
-
-#ifdef WINSCW
-LIBRARY		euser.lib
-LIBRARY		ewsd.lib
-#endif
-#ifdef GCCE
-STATICLIBRARY  libcrt0_gcce.lib
-#else
-STATICLIBRARY  libcrt0.lib
-#endif
-
-
-LANG            SC
-
-// End of File
--- a/isolationserver/messagequeue/src/msgqcheck.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/** 
- *  @file MsgQCheck.cpp
- *  Description: Source file for MsgQLib's MsgQCheck API
- *  Copyright (c) 2007 Nokia Corporation.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <errno.h>
-#include <sys/msg.h>
-#include <msgqinternal.h>
-#include <msgliterals.h>
-
-
-
-/*****************************************************************************
-*  MsgQCheck
-*  Function: Function for checking how many messages are in a queue
-*******************************************************************************/
-
-EXPORT_C int MsgQCheck(ULONG qName, int* err) {
-	
-	int nMsgs;
-	struct  msqid_ds  qStatus ;
-	int         qId;
-
-	
-	if((qId = msgget((key_t) qName ,IPC_CREAT | 0666 /*| IPC_EXCL */)) >=0 ) {
-		//   get total count of msgs from the msg queue 
-		if ((msgctl(qId,IPC_STAT ,&qStatus)) >= 0 ) {
-			nMsgs=qStatus.msg_qnum ;
-				*err = OK;
-				return(nMsgs);
-		}
-		else
-			*err=errno;
-	}
-	else
-		*err = KMsgQLibQIdErr;
-	return(ERROR);
-}
-
--- a/isolationserver/messagequeue/src/msgqclean.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/** 
- *  @file MsgQClean.cpp
- *  Description: Source file for MsgQLib's MsgQClean API
- *  Copyright (c) 2007 Nokia Corporation.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <errno.h>
-#include <sys/msg.h>
-#include <msgqinternal.h>
-
-
-/****************************************************************************
-* MsgQClean (qName, err)
-* Description: Function that empties the specified queue
-*****************************************************************************/
-
-EXPORT_C int MsgQClean(ULONG qName, int* err) {
-
-	char msg[MAX_MSG_LEN];
-	int rcv_err;
-
-	if(( msgget((key_t) qName ,IPC_CREAT | 0666 /*| IPC_EXCL */ )) >=0 ) {
-		// sending a message is not allowed
-		// empty out the queue 
-		while(MsgQReceive(qName, msg, MAX_MSG_LEN, IPC_NOWAIT, &rcv_err) != ERROR) {};
-		if (rcv_err == ENOMSG) {
-			*err = OK;
-			return (OK);
-		}
-		else
-			*err = rcv_err;
-	}
-	else
-		*err = KMsgQLibQIdErr;
-
-	return(ERROR);
-}
-
-
--- a/isolationserver/messagequeue/src/msgqcreate-del.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/** 
- *  @file MsgQCreate.cpp
- *  Description: Source file for MsgQLib's MsgQCreate API
- *  Copyright (c) 2007 Nokia Corporation.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <errno.h>
-#include <sys/msg.h>
-#include <sys/sem.h>
-#include <MsgQInternal.h>
-
-
-/********************************************************************************
-* MsgQCreate
-* Description: Creates a message queue
-* Inputs:
-*  qName   : ULONG that represents the queue name
-*  maxMsgs : ULONG that represents maximum size of messages 
-*********************************************************************************/
-EXPORT_C int MsgQCreate(ULONG qName, ULONG maxMsgs, ULONG qOptions, int* err) {
-	int         qId;
-	//int         semId;
-	//int         semName ;
-	struct msqid_ds  qStatus ;
-	//struct semid_ds  sStatus ;
-	
-	//union semun {
-	//	int              val;
-	//	struct semid_ds* buf;
-	//	ushort_t*		 array;
-	//} arg ;
-
-	int          hashInstErr;
-
-	//if (MsgQTableLookup(qName) != NULL) {
-	//	*err = OK;
-	//	return (OK);
-	//}
-	//else {
-			if((qOptions == MSG_Q_FIFO) || (qOptions == MSG_Q_PRIORITY)) {
-				// Set msg queue options to  FIFO and create the message queue
-				qOptions= MSG_Q_FIFO ;
-
-			if((qId = msgget((key_t) qName ,IPC_CREAT | 0666 | IPC_EXCL )) >=0 ) {
-				//  set msg queue parameter max # bytes in queue
-				
-				if( msgctl(qId,IPC_STAT,&qStatus) == 0  ) 
-				
-				if( qStatus.msg_qbytes > (maxMsgs * MAX_MSG_LEN) ) {
-					qStatus.msg_qbytes = maxMsgs * MAX_MSG_LEN ;              
-					if( msgctl(qId,IPC_SET,&qStatus) < 0) {
-						// delete message queue on error 
-						msgctl(qId,IPC_RMID,0);
-						*err = errno;
-						return(ERROR);
-					}
-				}
-				*err = OK;                
-				return (OK);
-					
-				// create semaphore
-				//semName= (key_t) qName;
-				//if((semId = semget(semName, 1, IPC_CREAT | 0666 |IPC_EXCL )) >= 0 ) {
-					// set the semaphore value
-				//	arg.buf = &sStatus;              
-				//	arg.val = 1;
-				//	semctl(semId , 0, SETVAL, arg) ;
-					
-					//install queue data in hash table
-				//	if(InstallMsqQTable(qName, qId, semId, &hashInstErr) == OK) {
-				//		AddToMsgQTable(qName);
-				//		*err = OK;                
-				//		return (OK);
-				//	}
-				//	else {
-						//delete semaphore on error
-				//		semctl(semId,0,IPC_RMID,0) ;
-				//		*err = hashInstErr;
-				//	}
-				//}
-				//else {
-					// delete message queue on error
-				//	msgctl(qId,IPC_RMID,0);
-				//	*err = errno;
-				//}
-			}
-			else {
-				*err = errno;
-			}       
-		}
-		else
-			*err = KMsgQLibParamErr;
-
-		return(ERROR);
-	//}
-}
-
--- a/isolationserver/messagequeue/src/msgqcreate.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/** 
- *  @file MsgQCreate.cpp
- *  Description: Source file for MsgQLib's MsgQCreate API
- *  Copyright (c) 2007 Nokia Corporation.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <errno.h>
-#include <sys/msg.h>
-#include <sys/sem.h>
-#include <msgqinternal.h>
-#include <msgliterals.h>
-
-
-/********************************************************************************
-* MsgQCreate
-* Description: Creates a message queue
-* Inputs:
-*  qName   : ULONG that represents the queue name
-*  maxMsgs : ULONG that represents maximum size of messages 
-*********************************************************************************/
-EXPORT_C int MsgQCreate(ULONG qName, ULONG maxMsgs, ULONG qOptions, int* err) {
-	
-
-	    UNUSED_FORMAL_PARAM(qName);
-	    UNUSED_FORMAL_PARAM(maxMsgs);
-	    UNUSED_FORMAL_PARAM(err);
-		if((qOptions == MSG_Q_FIFO) || (qOptions == MSG_Q_PRIORITY)) {
-			// Set msg queue options to  FIFO and create the message queue
-			qOptions= MSG_Q_FIFO ;
-			
-		if((msgget((key_t) qName ,IPC_CREAT | 0666 | IPC_EXCL )) == -1 ) {
-			if ( errno == 17 ){
-			// message queue already exists
-			// now just get the hanlde to it
-			// no need to leave over here;
-			}
-		}
-			
-			if((msgget((key_t) qName ,IPC_CREAT | 0666 )) >=0 ) {
-				
-				    //  set msg queue parameter max # bytes in queue
-				
-					/* if( msgctl(qId,IPC_STAT,&qStatus) == 0  ) 
-					
-					if( qStatus.msg_qbytes > (maxMsgs * MAX_MSG_LEN) ) {
-						qStatus.msg_qbytes = maxMsgs * MAX_MSG_LEN ;              
-						if( msgctl(qId,IPC_SET,&qStatus) < 0) {
-							// delete message queue on error 
-							msgctl(qId,IPC_RMID,0);
-							*err = errno;
-							return(ERROR);
-						}
-					} 
-					
-					*/
-				
-				*err = OK;                
-				return (OK);
-					
-				
-			}
-			else {
-				*err = errno;
-			}       
-		}
-		else {
-			*err = KMsgQLibParamErr;
-		}
-		
-		return(ERROR);
-}
-
--- a/isolationserver/messagequeue/src/msgqdelete.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/** 
- *  @file MsgQDelete.cpp
- *  Description: Source file for MsgQLib's MsgQDelete API
- *  Copyright (c) 2007 Nokia Corporation.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <errno.h>
-#include <sys/msg.h>
-#include <sys/sem.h>
-#include <msgqinternal.h>
-
-
-/*******************************************************************************
-* MsgQDelete (qName, err)
-* Description: Function for deleting a message queue
-********************************************************************************/
-
-EXPORT_C int MsgQDelete(ULONG qName, int* err)
-{
-	int qId;
-
-	if((qId = msgget((key_t) qName ,IPC_CREAT | 0666 /*| IPC_EXCL */ )) >=0 ) {
-			
-			if (msgctl(qId,IPC_RMID,0) == 0) {
-					*err = OK;
-					return (OK);
-			}
-			else {
-				*err = errno;	
-			}
-			
-	}
-	else {
-		*err = KMsgQLibQIdErr;	
-	}
-
-	return(ERROR);
-}
-
--- a/isolationserver/messagequeue/src/msgqinternals.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,236 +0,0 @@
-/** 
- *  @file MsgQInternals.cpp
- *  Description: Source file for MsgQLib
- *  Copyright (c) 2007 Nokia Corporation.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#include <stdlib.h>
-#include <msgqinternal.h>
-#include <e32property.h>
-
-/* Declaration and definition of Internal Functions and data structures */
-#ifdef __WINSCW__
-
-#include <e32std.h>
-typedef void TAny;
-#include <pls.h> // For emulator WSD API
-
-const TUid KMsgQLibUid3 = {0xA0001319};  
-
-
-typedef struct {
-	MSGQ_INFO_PTR        _MsgQInfo[MSGQ_TBL_SZ];
-	MSGQ_INFO_LIST_PTR   _MsgQListHead;
-}MsgQGlobalData;
-
-int InitWSDVar(MsgQGlobalData* p) {
-	p->_MsgQListHead = NULL;
-	return 0;
-}
-MsgQGlobalData* GetGlobal() {
-	 // Access the PLS of this process 
-	MsgQGlobalData* p = Pls<MsgQGlobalData>(KMsgQLibUid3, &InitWSDVar);
-	return p;
-}
-
-
-MSGQ_INFO_PTR* _MsgQInfo() {
-	//return &(GetGlobal()->_MsgQInfo[0]); // orig code	
-	MSGQ_INFO_PTR* p = (GetGlobal()->_MsgQInfo);
-	return p;
-	//return (GetGlobal()->_MsgQInfo);     // modified line
-};
-
-MSGQ_INFO_LIST_PTR* _MsgQListHead() {
-	return &(GetGlobal()->_MsgQListHead);	
-};
-
-#define MsgQInfo (_MsgQInfo())
-#define MsgQListHead (*_MsgQListHead())
-
-#else
-MSGQ_INFO_PTR        MsgQInfo[MSGQ_TBL_SZ];
-MSGQ_INFO_LIST_PTR   MsgQListHead = NULL;
-#endif
-
-inline unsigned int HashIndex(ULONG qName);
-
-/*************** INTERNAL FUNCTIONS ******************************/
-
-/***************************************************************************
-*  InstallMsqQTable (qName, qid, semId, sendState, numMsgs, err)
-*  Function: This function installs a queue into the hash table
-****************************************************************************/
-
-int InstallMsqQTable(ULONG qName, int qId, int semId, int* err) {
-
-	MSGQ_INFO_PTR pMsgQInfo = NULL;
-	unsigned int  index;
-
-	if ((pMsgQInfo = MsgQTableLookup(qName)) == NULL) {
-		pMsgQInfo = (MSGQ_INFO_PTR)malloc(sizeof(*pMsgQInfo));
-
-		if(pMsgQInfo != NULL) {
-			index = HashIndex(qName);
-
-			pMsgQInfo->next  = MsgQInfo[index];
-			MsgQInfo[index]   = pMsgQInfo;
-			pMsgQInfo->qName = qName;
-			pMsgQInfo->qId   = qId;
-			pMsgQInfo->semId = semId;
-			pMsgQInfo->sendState = MSG_Q_READY;
-			pMsgQInfo->numMsgs   = 0;
-
-			*err = OK;
-			return (OK);
-		}
-		else
-			*err = KMsgQLibNoMemoryErr;
-	}
-	else
-		*err = KMsgQLibQIdErr;
-
-	return(ERROR);
-
-}
-
-
-/******************************************************************************
-*  HashIndex
-*  Function: This function returns the hash index
-*******************************************************************************/
-
-inline unsigned int HashIndex(ULONG qName) {
-    unsigned int hash_index = (qName % MSGQ_TBL_SZ);
-	//return(qName % MSGQ_TBL_SZ);
-	return hash_index;
-}
-
-
-/************************************************************************
-*  MsgQTableLookup (qName)
-*  Function: This function finds the block pointer for each queue
-*************************************************************************/
-
-MSGQ_INFO* MsgQTableLookup(ULONG qName) {
-	MSGQ_INFO_PTR pMsgQInfo = NULL;
-
-	for (pMsgQInfo = MsgQInfo[HashIndex(qName)]; pMsgQInfo != NULL; pMsgQInfo = pMsgQInfo->next) {
-		if (qName == pMsgQInfo->qName)
-			return(pMsgQInfo);
-	}
-
-	return(NULL);
-}
-
-
-/*************************************************************************
-*  RemoveFromMsqQTable (qName, err)
-*  Function: This function removes a queue from the hash table
-**************************************************************************/
-
-
-int RemoveFromMsqQTable(ULONG qName, int* err) {
-	unsigned int  index = 0;
-	MSGQ_INFO_PTR prev = NULL;
-	MSGQ_INFO_PTR pMsgQInfo = NULL;
-
-	index = HashIndex(qName);
-	for (pMsgQInfo = MsgQInfo[index]; pMsgQInfo != NULL; pMsgQInfo = pMsgQInfo->next) {
-		if (qName == pMsgQInfo->qName)
-			break;
-		prev = pMsgQInfo;
-	}
-
-	if (pMsgQInfo != NULL) {
-		if (prev == NULL)
-			MsgQInfo[index] = pMsgQInfo->next;
-		else
-			prev->next = pMsgQInfo->next;
-
-		free((void*)pMsgQInfo);
-		*err = OK;
-		return (OK);
-	}
-	else
-		*err = KMsgQLibQIdErr;
-
-	return(ERROR);
-}
-
-
-/************************************************************************
-*  AddToMsgQTable (qName)
-*  Function: Adding a queue to list
-*************************************************************************/
-
-void AddToMsgQTable(ULONG qName) {
-	MSGQ_INFO_LIST_PTR tempNext;
-
-	if (MsgQListHead != NULL) {
-		/* subsequent entries */
-		tempNext = MsgQListHead->next;
-
-		if ((MsgQListHead->next = (MSGQ_INFO_LIST*)malloc(sizeof(MSGQ_INFO_LIST))) != NULL) 		{
-			MsgQListHead->next->next = tempNext;
-			MsgQListHead->next->qName = qName;
-		}
-		else 
-			MsgQListHead->next = tempNext;
-	}
-	else {
-		if ((MsgQListHead = (MSGQ_INFO_LIST*)malloc(sizeof(MSGQ_INFO_LIST))) != NULL) {
-			MsgQListHead->next = NULL;
-			MsgQListHead->qName = qName;
-		}
-	}
-}
-
-/************************************************************************
-*  DeleteFromMsgQTable (qName)
-*  Function:  removing a queu entry from  list
-*************************************************************************/
-
-void DeleteFromMsgQTable(ULONG qName) {
-	MSGQ_INFO_LIST_PTR prev = NULL;
-	MSGQ_INFO_LIST_PTR pMsgQInfo = NULL;
-
-	for (pMsgQInfo = MsgQListHead; pMsgQInfo != NULL; pMsgQInfo = pMsgQInfo->next) {
-		if (qName == pMsgQInfo->qName)
-			break;
-		prev = pMsgQInfo;
-	}
-
-	if (pMsgQInfo != NULL) {
-		/* Check whether prev pointer is null or not. If it is Null, update Head pointer */
-		if( prev == NULL )
-			MsgQListHead = MsgQListHead->next ;
-
-		/* Else update the linked list by removing present node and updating prev next pointer */
-		else
-			prev->next = pMsgQInfo->next;
-
-		/* Now free up the memory used by the present node */
-		free((void*) pMsgQInfo);
-	}
-}
-
-// end of fil
--- a/isolationserver/messagequeue/src/msgqmaxcheck.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/** 
- *  @file MsgQMaxCheck.cpp
- *  Description: Source file for MsgQLib's MsgQMaxCheck API
- *  Copyright (c) 2007 Nokia Corporation.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-********************************************************************************************/
-
-#include <_ansi.h>
-#include <msgqinternal.h>
-#include <msgliterals.h>
-
-
-/**************************************************************************
-*  MsgQMaxCheck
-*  Function: This function checks the maximum number of messages in a
-***************************************************************************/
-
-EXPORT_C int MsgQMaxCheck(ULONG qName, int* err) {
-
-	//if ((pMsgQInfo = MsgQTableLookup(qName)) != NULL) {
-	//	*err = OK;
-	//	return (pMsgQInfo->maxNumMsgs);
-	//}
-	//else
-	//	*err = KMsgQLibQIdErr;
-    UNUSED_FORMAL_PARAM(qName);
-    UNUSED_FORMAL_PARAM(err);
-	return(ERROR);
-}
-
--- a/isolationserver/messagequeue/src/msgqrecv.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/** 
- *  @file MsgQRecv.cpp
- *  Description: Source file for MsgQLib's MsgQReceive API
- *  Copyright (c) 2007 Nokia Corporation.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <errno.h>
-#include <sys/msg.h>
-#include <sys/sem.h>
-#include <unistd.h>
-#include <string.h>
-#include <msgqinternal.h>
-
-
-
-/*******************************************************************************
-* MsgQReceive (qName, msg, maxNBytes, timeout, err)
-* Description: Function for receiving a message with internal copy
-********************************************************************************/
-
-EXPORT_C int MsgQReceive(ULONG qName, char* msg, ULONG maxNBytes, int timeout, int* err) {
-	ssize_t rxBytes;
-	int toTicks;
-
-	int         qId;
-	struct {
-		long  mtype;
-		char mtext[MAX_MSG_LEN];
-	} message;
-
-	/* check parameters */
-
-	if((qId = msgget((key_t) qName ,IPC_CREAT | 0666 /*| IPC_EXCL */ )) >=0 ) {
-		
-	        toTicks = timeout;      
-		message.mtype = 1;
-		/* receive message */
-		if((rxBytes = msgrcv(qId, &message, (size_t)maxNBytes, 1, toTicks)) != -1) {
-			message.mtext[rxBytes-4] = '\0';
-			bcopy(message.mtext, msg, rxBytes);
-	
-			*err = OK;
-			return ((ULONG)rxBytes);
-		}
-		else {
-			*err = errno;
-		}
-			
-	}
-	else {
-		*err = KMsgQLibQIdErr;
-	}
-	
-	return(ERROR);
-}
-
-
--- a/isolationserver/messagequeue/src/msgqsend.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/** 
- *  @file MsgQSend.cpp
- *  Description: Source file for MsgQLib's MsgQSend API
- *  Copyright (c) 2007 Nokia Corporation.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <errno.h>
-#include <sys/msg.h>
-#include <sys/sem.h>
-#include <string.h>
-#include <msgqlib.h>
-
-#include <msgqinternal.h>
-
-/*******************************************************************************
-* MsgQSend (qName, msg, nBytes, priority, timeout, err)
-* Description:  Function for sending a message with internal copy
-*********************************************************************************/
-
-EXPORT_C int MsgQSend(ULONG qName, char* msg, ULONG nBytes, ULONG priority, int timeout, int* err)
-{
-	int         qId;
-	struct {
-		long mtype;
-		char mtext[MAX_MSG_LEN];
-	} message;
-
-	/* check parameters */
-	if ((priority == MSG_PRI_NORMAL) || (priority == MSG_PRI_URGENT)) {
-	
-		if((qId = msgget((key_t) qName ,IPC_CREAT | 0666 /*| IPC_EXCL */ )) >=0 ) {
-			
-				if( 1 ) {
-					message.mtype = 1;
-					bcopy(msg, message.mtext, nBytes);
-					message.mtext[nBytes] = '\0';
-
-					if(msgsnd (qId, &message, (size_t)nBytes+4, timeout) == OK) {
-						*err = OK;
-						/* After successfull send, unlock the message queue by using post operation on semaphore.*/
-						return (OK);
-					}
-					else {
-						*err = errno;
-					}
-				}
-				else
-					*err = errno;
-		}
-		else
-			*err = KMsgQLibQIdErr;
-	}
-	else
-		*err = KMsgQLibParamErr;
-
-	return(ERROR);
-}
-
--- a/isolationserver/rom/isoserver.iby	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoserver.iby
-*  Part of     : isolation server.
-*  Version     : %version: 1.1.1 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-#ifndef __ISOSERVER_IBY__
-#define __ISOSERVER_IBY__
-
-//Isolation server
-
-file=ABI_DIR\BUILD_DIR\OpenCMessageQueueLibrary.dll         SHARED_LIB_DIR\OpenCMessageQueueLibrary.dll
-file=ABI_DIR\BUILD_DIR\IsoServer.exe          				PROGRAMS_DIR\IsoServer.exe
-
-// mecostub SIS, provides support for SIS upgrading
-//data=DATAZ_\system\install\meco_stub.sis     system\install\meco_stub.sis
-
-#endif
-
-
--- a/isolationserver/tsrc/bwins/isolationserveru.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &)
-
--- a/isolationserver/tsrc/conf/isolationserver.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,478 +0,0 @@
-// Definitions
-[Define]
-SERVER       talk.google.com
-USERNAME     meco7777@gmail.com
-PASSWORD     meco7778
-RECIPIENT    nokiatestlm@gmail.com
-MESSAGE      Hello
-SPECIALMESSAGE ***___HELLO++++
-RESOURCE     mytest
-BADSERVER    talk.gaagle.com
-BADPASSWORD  junk123
-BLOCKEDUSER    user.block2008@gmail.com
-UNEXISTUSERID isoserver@gmail.com
-MIXEDLETTERUSERNAME     MEcO7777@gmail.com
-MAXLENGTHUSERID     abcd123456abcd123456abcd123456@gmail.com
-PWD                 nokia123
-MINLENGTHUSERID     ab123d@gmail.com
-NOTADDEDUSER        rakesh.harsha@gmail.com
-PROXY_SERVER 172.16.42.135
-PROXY_PORT   8080
-PORT         443
-CONNMGR_BUS	org.freedesktop.Telepathy.ConnectionManager.gabble
-CONNMGR_PATH /org/freedesktop/Telepathy/ConnectionManager/gabble
-PROTOCOL	jabber
-CONTACT      test_isoserver@gmail.com
-MIXCONTACT   Test_IsoServer@gmail.com
-INVALIDUSERID ISOSERVER_TEST@gmail.com
-LONGMESSAGE  abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
-SERVER_GIZMO       chat.gizmoproject.com
-USERNAME_GIZMO     testlmnokia@chat.gizmoproject.com
-PASSWORD_GIZMO     loudmouth
-
-//dummy string
-DUMMY	dummy
-
-//avatar
-AVATARFILEJPEG  	C:\data\Images\test.jpg
-MIMETYPEJPEG    	image/jpeg
-AVATARFILEPNG 		C:\data\Images\test.png
-MIMETYPEPNG     	image/png
-AVATARFILEGIF 		C:\data\Images\test.gif
-MIMETYPEGIF    		image/gif
-AVATARLARGEJPG  	C:\data\Images\large.jpg
-AVATARLARGEPNG  	C:\data\Images\large.png
-AVATARLARGEGIF  	C:\data\Images\large.gif
-AVATARFILEDRM     C:\data\Images\drmprotected.jpg
-AVATARFILECORRUPT  C:\data\Images\corrupted.jpg
-[Enddefine]
-
-
-[Test]
-title 1.LoginWithCorrectData
-create isolationservertest isolationserverObj
-isolationserverObj LoginWithCorrectData SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-
-[Test]
-title 2.LoginWithWrongPassword
-create isolationservertest isolationserverObj
-isolationserverObj LoginWithWrongPassword SERVER USERNAME BADPASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-
-[Test]
-title 3.LoginWithUnexistUserId
-create isolationservertest isolationserverObj
-isolationserverObj LoginWithUnexistUserId SERVER UNEXISTUSERID BADPASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-
-delete isolationserverObj
-[Endtest] 
-
-/*
-[Test]
-title 4.LoginWithUnexistServer
-create isolationservertest isolationserverObj
-isolationserverObj LoginWithUnexistServer BADSERVER USERNAME BADPASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-*/
-[Test]
-title 5.LoginWithMixedLetterUserId
-create isolationservertest isolationserverObj
-isolationserverObj LoginWithMixedLetterUserId SERVER MIXEDLETTERUSERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 6.LoginWithMaximumLenghtUserId
-create isolationservertest isolationserverObj
-isolationserverObj LoginWithMaximumLenghtUserId SERVER MAXLENGTHUSERID PWD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 7.LoginWithMinimumLenghtUserId
-create isolationservertest isolationserverObj
-isolationserverObj LoginWithMinimumLenghtUserId SERVER MINLENGTHUSERID PWD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 8.LogoutFromServer
-create isolationservertest isolationserverObj
-isolationserverObj LogoutFromServer SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 9.LoginWithBlankUserId
-create isolationservertest isolationserverObj
-isolationserverObj LoginWithBlankUserId SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 10.LoginLogOutWithReapitiveSession
-create isolationservertest isolationserverObj
-isolationserverObj LoginLogOutWithReapitiveSession SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 11.LoginWithCoreectUserIDWithSpace
-create isolationservertest isolationserverObj
-isolationserverObj LoginWithCoreectUserIDWithSpace SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 12.SendMessageToCorrectUserID
-create isolationservertest isolationserverObj
-isolationserverObj SendMessageToCorrectUserID SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 13.SendMaxLenMessageToCorrectUserID
-create isolationservertest isolationserverObj
-isolationserverObj SendMaxLenMessageToCorrectUserID SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 14.SendTextMessageUnExistUserID
-create isolationservertest isolationserverObj
-isolationserverObj SendTextMessageUnExistUserID SERVER USERNAME PASSWORD UNEXISTUSERID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 15.SendTextMessageWithSpecialCharacter
-create isolationservertest isolationserverObj
-isolationserverObj SendTextMessageWithSpecialCharacter SERVER USERNAME PASSWORD RECIPIENT SPECIALMESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 16.SendMessageWithBlankUserID
-create isolationservertest isolationserverObj
-isolationserverObj SendMessageWithBlankUserID SERVER USERNAME PASSWORD RECIPIENT MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 17.SendBlankMessageToUserID
-create isolationservertest isolationserverObj
-isolationserverObj SendBlankMessageToUserID SERVER USERNAME PASSWORD RECIPIENT MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 18.SendSmilyToCorrectUserID
-create isolationservertest isolationserverObj
-isolationserverObj SendSmilyToCorrectUserID SERVER USERNAME PASSWORD RECIPIENT MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 19.SendMessageToOfflineContact
-create isolationservertest isolationserverObj
-isolationserverObj SendMessageToOfflineContact SERVER USERNAME PASSWORD RECIPIENT MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 20.SendContinuousltReapitiveMessage
-create isolationservertest isolationserverObj
-isolationserverObj SendContinuousltReapitiveMessage SERVER USERNAME PASSWORD RECIPIENT MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 21.SendTextMessageToBlockedUser
-create isolationservertest isolationserverObj
-isolationserverObj SendTextMessageToBlockedUser SERVER USERNAME PASSWORD BLOCKEDUSER MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-
-
-[Test]
-title 22.SendTextMessageUserWhoIsNotAddedInContactList
-create isolationservertest isolationserverObj
-isolationserverObj SendTextMessageUserWhoIsNotAddedInContactList  SERVER USERNAME PASSWORD NOTADDEDUSER MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 23.MessageReceiveFromUser
-create isolationservertest isolationserverObj
-isolationserverObj MessageReceiveFromUser SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 24.AddExistingContact
-create isolationservertest isolationserverObj
-isolationserverObj AddExistingContact SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 25.ClientSendBlankUserIdForADD
-create isolationservertest isolationserverObj
-isolationserverObj ClientSendBlankUserIdForADD SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 26.AddUnexistingUserID
-create isolationservertest isolationserverObj
-isolationserverObj AddUnexistingUserID SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT UNEXISTUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 27.AddExistingContactWIthSpace
-create isolationservertest isolationserverObj
-isolationserverObj AddExistingContactWIthSpace SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 28.AddContactWhichIsAlreadyAdded
-create isolationservertest isolationserverObj
-isolationserverObj AddContactWhichIsAlreadyAdded SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 29.AddExistingContactWIthMixedLetter
-create isolationservertest isolationserverObj
-isolationserverObj AddExistingContactWIthMixedLetter SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT MIXCONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 30.AddInvalidContactWIthSpecialLetter
-create isolationservertest isolationserverObj
-isolationserverObj AddInvalidContactWIthSpecialLetter SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-
-[Test]
-title 31.DeleteExistingContact
-create isolationservertest isolationserverObj
-isolationserverObj DeleteExistingContact SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 32.ClientSendBlankUserIdForDELETE
-create isolationservertest isolationserverObj
-isolationserverObj ClientSendBlankUserIdForDELETE SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 33.DeleteUnexistingUserID
-create isolationservertest isolationserverObj
-isolationserverObj DeleteUnexistingUserID SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT UNEXISTUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 34.DeleteExistingContactWIthSpace
-create isolationservertest isolationserverObj
-isolationserverObj DeleteExistingContactWIthSpace SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 35.DeleteContactWhichIsAlreadyDeleted
-create isolationservertest isolationserverObj
-isolationserverObj DeleteContactWhichIsAlreadyDeleted SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 36.DeleteExistingContactWIthMixedLetter
-create isolationservertest isolationserverObj
-isolationserverObj DeleteExistingContactWIthMixedLetter SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT MIXCONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 37.DeleteInvalidContactWIthSpecialLetter
-create isolationservertest isolationserverObj
-isolationserverObj DeleteInvalidContactWIthSpecialLetter SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 38.UpdatePresenceWithAway
-create isolationservertest isolationserverObj
-isolationserverObj UpdatePresenceWithAway SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 39.UpdatePresenceWithDnd
-create isolationservertest isolationserverObj
-isolationserverObj UpdatePresenceWithDnd SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 40.UpdatePresenceWithAvailable
-create isolationservertest isolationserverObj
-isolationserverObj UpdatePresenceWithAvailable SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 41.UpdatePresenceMultipleTimeInSameSession
-create isolationservertest isolationserverObj
-isolationserverObj UpdatePresenceMultipleTimeInSameSession SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 42.UpdateOnlyStatusText
-create isolationservertest isolationserverObj
-isolationserverObj UpdateOnlyStatusText SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 43.UpdateOnlyUserAvailability
-create isolationservertest isolationserverObj
-isolationserverObj UpdateOnlyUserAvailability SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 44.UpdateOwnPresenceWithBlankData
-create isolationservertest isolationserverObj
-isolationserverObj UpdateOwnPresenceWithBlankData SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 45.UpdateStatusTextWithSpecialCharacter
-create isolationservertest isolationserverObj
-isolationserverObj UpdateStatusTextWithSpecialCharacter SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 46.UpdateStatusTextWithMaxLen
-create isolationservertest isolationserverObj
-isolationserverObj UpdateStatusTextWithMaxLen SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-/*
-[Test]
-title 47.LoginWithInvalidPortAddress
-create isolationservertest isolationserverObj
-isolationserverObj LoginWithInvalidPortAddress SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID
-delete isolationserverObj
-[Endtest] 
-*/
-
-[Test]
-title 48.SetOwnAvatarJpeg
-create isolationservertest isolationserverObj
-isolationserverObj SetOwnAvatar SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL DUMMY DUMMY DUMMY DUMMY MIMETYPEJPEG AVATARFILEJPEG 
-delete isolationserverObj
-[Endtest]
-
-[Test]
-title 49.ClearOwnAvatarJpeg
-create isolationservertest isolationserverObj
-isolationserverObj ClearOwnAvatar SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 50.SetOwnAvatarPng
-create isolationservertest isolationserverObj
-isolationserverObj SetOwnAvatar SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL  DUMMY DUMMY DUMMY DUMMY MIMETYPEPNG AVATARFILEPNG 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 51.ClearOwnAvatarPng
-create isolationservertest isolationserverObj
-isolationserverObj ClearOwnAvatar SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 52.SetOwnAvatarGif
-create isolationservertest isolationserverObj
-isolationserverObj SetOwnAvatar SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL DUMMY DUMMY DUMMY DUMMY MIMETYPEGIF AVATARFILEGIF
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 53.ClearOwnAvatarGif
-create isolationservertest isolationserverObj
-isolationserverObj ClearOwnAvatar SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 54.ClearOwnAvatarNull
-create isolationservertest isolationserverObj
-isolationserverObj ClearOwnAvatar SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-
-[Test]
-title 55.SetOwnAvatarDrm
-create isolationservertest isolationserverObj
-isolationserverObj SetOwnAvatar SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL DUMMY DUMMY DUMMY DUMMY MIMETYPEJPEG AVATARFILEDRM 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 56.SetOwnAvatarLargeJpg
-create isolationservertest isolationserverObj
-isolationserverObj SetOwnAvatar SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL DUMMY DUMMY DUMMY DUMMY MIMETYPEJPEG AVATARLARGEJPG 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 57.SetOwnAvatarLargePng
-create isolationservertest isolationserverObj
-isolationserverObj SetOwnAvatar SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL DUMMY DUMMY DUMMY DUMMY MIMETYPEPNG AVATARLARGEPNG 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 58.SetOwnAvatarLargeGif
-create isolationservertest isolationserverObj
-isolationserverObj SetOwnAvatar SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL DUMMY DUMMY DUMMY DUMMY MIMETYPEGIF AVATARLARGEGIF 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 59.FetchCachedContacts
-create isolationservertest isolationserverObj
-isolationserverObj FetchCachedContacts SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-
-
--- a/isolationserver/tsrc/conf/isolationserver_manual.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-// Definitions
-[Define]
-SERVER       talk.google.com
-USERNAME     immeco8@gmail.com
-PASSWORD     loudmouth
-RECIPIENT    nokiatestlm@gmail.com
-MESSAGE      Hello
-SPECIALMESSAGE ***___HELLO++++
-RESOURCE     mytest
-BADSERVER    talk.gaagle.com
-BADPASSWORD  junk123
-BLOCKEDUSER    user.block2008@gmail.com
-UNEXISTUSERID isoserver@gmail.com
-MIXEDLETTERUSERNAME     ImMEco8@gmail.com
-MAXLENGTHUSERID     abcd123456abcd123456abcd123456@gmail.com
-PWD                 nokia123
-MINLENGTHUSERID     ab123d@gmail.com
-NOTADDEDUSER        rakesh.harsha@gmail.com
-PROXY_SERVER 172.16.42.135
-PROXY_PORT   8080
-PORT         443
-CONNMGR_BUS	org.freedesktop.Telepathy.ConnectionManager.gabble
-CONNMGR_PATH /org/freedesktop/Telepathy/ConnectionManager/gabble
-PROTOCOL	jabber
-CONTACT      test_isoserver@gmail.com
-MIXCONTACT   Test_IsoServer@gmail.com
-INVALIDUSERID ISOSERVER_TEST@gmail.com
-LONGMESSAGE  abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
-SERVER_GIZMO       chat.gizmoproject.com
-USERNAME_GIZMO     testlmnokia@chat.gizmoproject.com
-PASSWORD_GIZMO     loudmouth
-
-//Search strings
-GIVEN_NAME	first_name
-FULL_NAME	fn
-MIDDLE_NAME	last_name
-JID					jid
-
-[Enddefine]
-
-
-
-
-[Test]
-title 1..MessageReceiveFromUser
-create isolationservertest isolationserverObj
-isolationserverObj MessageReceiveFromUser SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-
-[Test]
-title 2.HandelingPresenceNotification
-create isolationservertest isolationserverObj
-isolationserverObj HandelingPresenceNotification SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-
-[Test]
-title 3.LoginWhenTGAndDDAreNotRunning
-create isolationservertest isolationserverObj
-isolationserverObj LoginWhenTGAndDDAreNotRunning SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID
-delete isolationserverObj
-[Endtest] 
-
-
-[Test]
-title 4.AcceptAddRequestFromUser
-create isolationservertest isolationserverObj
-isolationserverObj AcceptAddRequestFromUser SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest]
-
-
-[Test]
-title 5.RejectAddRequestFromUser
-create isolationservertest isolationserverObj
-isolationserverObj RejectAddRequestFromUser SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest]
-
-
-[Test]
-title 6.SendAcceptRequestWithoutAnyUserID
-create isolationservertest isolationserverObj
-isolationserverObj SendAcceptRequestWithoutAnyUserID SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest]
-
-
-[Test]
-title 7.SendRejectRequestWithoutAnyUserID
-create isolationservertest isolationserverObj
-isolationserverObj SendRejectRequestWithoutAnyUserID SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest]
-
-//this functionality  is not there
-[Test]
-title 8.SendTextMessageToUserIdWhoIsBlockedSender
-create isolationservertest isolationserverObj
-isolationserverObj SendTextMessageToUserIdWhoIsBlockedSender SERVER USERNAME PASSWORD BLOCKEDUSER MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 9.SendLongTextMessageToUserId
-create isolationservertest isolationserverObj
-isolationserverObj SendLongTextMessageToUserId  SERVER USERNAME PASSWORD RECIPIENT LONGMESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 10.SendAcceptRequestWithoutReceivingAddrequest
-create isolationservertest isolationserverObj
-isolationserverObj SendAcceptRequestWithoutReceivingAddrequest SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest]
-
-[Test]
-title 11.SendRejectRequestWithoutReceivingAddrequest
-create isolationservertest isolationserverObj
-isolationserverObj SendRejectRequestWithoutReceivingAddrequest SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT CONTACT CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest]
-
-
-
-[Test]
-title 12.SearchKeyValueInvalidParam2
-create isolationservertest isolationserverObj
-isolationserverObj SearchKeyValueInvalidParam2 SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 13.SearchKeyValueInvalidHashValues
-create isolationservertest isolationserverObj
-isolationserverObj SearchKeyValueInvalidHashValues SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 14.SearchKeyValueBlank
-create isolationservertest isolationserverObj
-isolationserverObj SearchKeyValueBlank SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 15.SearchKeyValueSpecialChar
-create isolationservertest isolationserverObj
-isolationserverObj SearchKeyValueSpecialChar SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 16.SearchKeyValueLargeString
-create isolationservertest isolationserverObj
-isolationserverObj SearchKeyValueLargeString SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
-
-
-[Test]
-title 17.SearchKeyValue
-create isolationservertest isolationserverObj
-isolationserverObj SearchKeyValue SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 18.SearchKeyValueWithResult
-create isolationservertest isolationserverObj
-isolationserverObj SearchKeyValueWithResult SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 19.SearchKeyValueInvalidParam
-create isolationservertest isolationserverObj
-isolationserverObj SearchKeyValueInvalidParam SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 20.SearchForLargeNoOfResult
-create isolationservertest isolationserverObj
-isolationserverObj SearchForLargeNoOfResult SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
-
-
-[Test]
-title 21.SearchAndAddContact
-create isolationservertest isolationserverObj
-isolationserverObj SearchAndAddContact SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
-
-
-[Test]
-title 22.SecondSearch
-create isolationservertest isolationserverObj
-isolationserverObj SecondSearch SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
-
-
-[Test]
-title 23.AddContatcs
-create isolationservertest isolationserverObj
-isolationserverObj AddContatcs SERVER USERNAME PASSWORD USERNAME MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID CONNMGR_BUS CONNMGR_PATH PROTOCOL
-delete isolationserverObj
-[Endtest] 
-
-[Test]
-title 24.GetKeysAndSearch
-create isolationservertest isolationserverObj
-isolationserverObj GetKeysAndSearch SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO USERNAME_GIZMO MESSAGE  RESOURCE PROXY_SERVER PROXY_PORT PORT INVALIDUSERID  CONNMGR_BUS CONNMGR_PATH PROTOCOL GIVEN_NAME	MIDDLE_NAME JID FULL_NAME 
-delete isolationserverObj
-[Endtest] 
Binary file isolationserver/tsrc/data/corrupted.jpg has changed
Binary file isolationserver/tsrc/data/drmprotected.jpg has changed
Binary file isolationserver/tsrc/data/large.gif has changed
Binary file isolationserver/tsrc/data/large.jpg has changed
Binary file isolationserver/tsrc/data/large.png has changed
Binary file isolationserver/tsrc/data/test.gif has changed
Binary file isolationserver/tsrc/data/test.jpg has changed
Binary file isolationserver/tsrc/data/test.png has changed
--- a/isolationserver/tsrc/eabi/isolationserveru.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
-
--- a/isolationserver/tsrc/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
-* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  bld.inf
-*
-*/
-
-
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// defaults to WINS MARM so you can ignore this if you just build these
-DEFAULT
-
-PRJ_TESTEXPORTS
-// NOTE: If using ARS requirements all export operations should be done under this.
-// 'abld test export'
-
-PRJ_EXPORTS
-../init/TestFramework.ini /epoc32/winscw/c/TestFramework/TestFramework.ini
-../conf/isolationserver.cfg /epoc32/winscw/c/TestFramework/isolationserver.cfg
-//../conf/isolationserver_manual.cfg /epoc32/winscw/c/TestFramework/isolationserver_manual.cfg
-../data/test.jpg /epoc32/winscw/c/data/Images/test.jpg
-../data/test.gif /epoc32/winscw/c/data/Images/test.gif
-../data/test.png /epoc32/winscw/c/data/Images/test.png
-../data/large.jpg /epoc32/winscw/c/data/Images/large.jpg
-../data/large.gif /epoc32/winscw/c/data/Images/large.gif
-../data/large.png /epoc32/winscw/c/data/Images/large.png
-../data/corrupted.jpg /epoc32/winscw/c/data/Images/corrupted.jpg
-../data/drmprotected.jpg /epoc32/winscw/c/data/Images/drmprotected.jpg
-// Specify the source file followed by its destination here
-// copy will be used to copy the source file to its destination
-// If there's no destination then the source file will be copied
-// to the same name in /epoc32/include
-// Example: 
-/*
-/agnmodel/inc/AGMCOMON.H
-*/
-
-PRJ_TESTMMPFILES
-// NOTE: If using ARS requirements .mmp file operation should be done under this.
-// 'abld test build'
-isolationservertest.mmp
-PRJ_MMPFILES
-// Specify the .mmp files required for building the important component
-// releasables.
-//
-// Specify "tidy" if the component you need to build doesn't need to be
-// released. Specify "ignore" if the MMP file exists but should be
-// ignored.
-// Example:
-/*
-/agnmodel/group/agnmodel.mmp
-#if defined(MARM)
-/agnmodel/group/agsvexe.mmp
-#endif
-*/
-//isolationservertest.mmp
-
-//  End of File
\ No newline at end of file
--- a/isolationserver/tsrc/inc/isolationserver.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,262 +0,0 @@
-/*
-* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   isolationserver.h
-*
-*/
-
-
-
-
-#ifndef ISOLATIONSERVER_H
-#define ISOLATIONSERVER_H
-
-//  INCLUDES
-#include <StifLogger.h>
-#include <TestScripterInternal.h>
-#include <StifTestModule.h>
-#include <glib.h>
-
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-
-// MACROS
-//#define ?macro ?macro_def
-// Logging path
-_LIT( KisolationserverLogPath, "\\logs\\testframework\\isolationserver\\" ); 
-// Log file
-_LIT( KisolationserverLogFile, "isolationserver.txt" ); 
-_LIT( KisolationserverLogFileWithTitle, "isolationserver_[%S].txt" );
-
-// FUNCTION PROTOTYPES
-//?type ?function_name(?arg_list);
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-class Cisolationserver;
-
-// DATA TYPES
-//enum ?declaration
-//typedef ?declaration
-//extern ?data_type;
-
-// CLASS DECLARATION
-
-/**
-*  Cisolationserver test class for STIF Test Framework TestScripter.
-*  ?other_description_lines
-*
-*  @lib ?library
-*  @since ?Series60_version
-*/
-NONSHARABLE_CLASS(Cisolationserver) : public CScriptBase
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static Cisolationserver* NewL( CTestModuleIf& aTestModuleIf );
-
-        /**
-        * Destructor.
-        */
-        virtual ~Cisolationserver();
-
-    public: // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-    public: // Functions from base classes
-
-        /**
-        * From CScriptBase Runs a script line.
-        * @since ?Series60_version
-        * @param aItem Script line containing method name and parameters
-        * @return Symbian OS error code
-        */
-        virtual TInt RunMethodL( CStifItemParser& aItem );
-
-    protected:  // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-    protected:  // Functions from base classes
-
-        /**
-        * From ?base_class ?member_description
-        */
-        //?type ?member_function();
-
-    private:
-
-        /**
-        * C++ default constructor.
-        */
-        Cisolationserver( CTestModuleIf& aTestModuleIf );
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-
-        // Prohibit copy constructor if not deriving from CBase.
-        // ?classname( const ?classname& );
-        // Prohibit assigment operator if not deriving from CBase.
-        // ?classname& operator=( const ?classname& );
-
-        /**
-        * Frees all resources allocated from test methods.
-        * @since ?Series60_version
-        */
-        void Delete();
-
-        /**
-        * Test methods are listed below. 
-        */
-
-        /**
-        * Example test method.
-        * @since ?Series60_version
-        * @param aItem Script line containing parameters.
-        * @return Symbian OS error code.
-        */
-        virtual TInt SecondSearch( CStifItemParser& aItem );
-        virtual TInt LoginWithCorrectdata( CStifItemParser& aItem );
-        virtual TInt LoginWithWrongPassword( CStifItemParser& aItem );
-        virtual TInt LoginWithUnexistUserId( CStifItemParser& aItem );
-        virtual TInt LoginWithUnexistServer( CStifItemParser& aItem );
-        virtual TInt LoginWithMixedletterUserId( CStifItemParser& aItem );
-        virtual TInt LoginWithMaximumLengthUserId( CStifItemParser& aItem );
-        virtual TInt LoginWithMinimumLengthUserId( CStifItemParser& aItem );
-        virtual TInt LogoutFromServer( CStifItemParser& aItem );
-        virtual TInt LoginWithBlankUserId(CStifItemParser& aItem);
-        virtual TInt LoginLogOutWithReapitiveSession(CStifItemParser& aItem);
-        virtual TInt LoginWithCoreectUserIDWithSpace(CStifItemParser& aItem);
-        virtual TInt LoginWithInvalidPortAddress(CStifItemParser& aItem);
-        virtual TInt LoginWithMissingSettings(CStifItemParser& aItem);
-        virtual TInt LoginWhenTGAndDDAreNotRunning(CStifItemParser& aItem);
-        virtual TInt SendMessageToCorrectUserID(CStifItemParser& aItem);
-        virtual TInt SendMaxLenMessageToCorrectUserID(CStifItemParser& aItem);
-        virtual TInt SendTextMessageUnExistUserID(CStifItemParser& aItem);
-        virtual TInt SendTextMessageWithSpecialCharacter(CStifItemParser& aItem);
-        virtual TInt SendMessageWithBlankUserID(CStifItemParser& aItem);
-        virtual TInt SendBlankMessageToUserID(CStifItemParser& aItem);
-        virtual TInt SendSmilyToCorrectUserID(CStifItemParser& aItem);
-        virtual TInt SendMessageToOfflineContact(CStifItemParser& aItem);
-        virtual TInt SendTextMessageToBlockedUser(CStifItemParser& aItem);
-        virtual TInt SendContinuousltReapitiveMessage(CStifItemParser& aItem);
-        virtual TInt SendTextMessageToUserIdWhoIsBlockedSender(CStifItemParser& aItem);
-        virtual TInt SendLongTextMessageToUserId(CStifItemParser& aItem);
-        virtual TInt SendTextMessageUserWhoIsNotAddedInContactList(CStifItemParser& aItem);
-        //virtual TInt FetchContactList(CStifItemParser& aItem);
-        virtual TInt MessageReceiveFromUser(CStifItemParser& aItem);
-        virtual TInt AddExistingContact(CStifItemParser& aItem);
-        virtual TInt ClientSendBlankUserIdForADD(CStifItemParser& aItem);
-        virtual TInt AddUnexistingUserID(CStifItemParser& aItem);
-        virtual TInt AddContactWhichIsAlreadyAdded(CStifItemParser& aItem);
-        virtual TInt AddExistingContactWIthSpace(CStifItemParser& aItem);
-        virtual TInt AddExistingContactWIthMixedLetter(CStifItemParser& aItem);
-        virtual TInt AddInvalidContactWIthSpecialLetter(CStifItemParser& aItem);
-        virtual TInt DeleteExistingContact(CStifItemParser& aItem);
-        virtual TInt ClientSendBlankUserIdForDELETE(CStifItemParser& aItem);
-        virtual TInt DeleteUnexistingUserID(CStifItemParser& aItem);
-        virtual TInt DeleteContactWhichIsAlreadyDeleted(CStifItemParser& aItem);
-        virtual TInt DeleteExistingContactWIthSpace(CStifItemParser& aItem);
-        virtual TInt DeleteExistingContactWIthMixedLetter(CStifItemParser& aItem);
-        virtual TInt DeleteInvalidContactWIthSpecialLetter(CStifItemParser& aItem);
-        virtual TInt Cisolationserver::FetchContatcs( CStifItemParser& aItem );
-        virtual TInt Cisolationserver::AddContatcs( CStifItemParser& aItem );
-        virtual TInt UpdatePresenceWithAway(CStifItemParser& aItem);
-        virtual TInt UpdatePresenceWithDnd(CStifItemParser& aItem);
-        virtual TInt UpdatePresenceWithAvailable(CStifItemParser& aItem);
-        virtual TInt UpdatePresenceMultipleTimeInSameSession(CStifItemParser& aItem);
-        virtual TInt UpdateOnlyStatusText(CStifItemParser& aItem);
-        virtual TInt UpdateOnlyUserAvailability(CStifItemParser& aItem);
-        virtual TInt UpdateOwnPresenceWithBlankData(CStifItemParser& aItem);
-        virtual TInt UpdateStatusTextWithMaxLen(CStifItemParser& aItem);
-        virtual TInt UpdateStatusTextWithSpecialCharacter(CStifItemParser& aItem);
-        virtual TInt HandelingPresenceNotification(CStifItemParser& aItem);
-        virtual TInt Cisolationserver::SearchKeyValue( CStifItemParser& aItem );
-        virtual TInt Cisolationserver::SearchKeyValueWithResult( CStifItemParser& aItem );
-        virtual TInt Cisolationserver::SearchKeyValueInvalidParam( CStifItemParser& aItem );
-        virtual TInt Cisolationserver::SearchForLargeNoOfResult( CStifItemParser& aItem );
-        virtual TInt Cisolationserver::SearchKeyValueInvalidParam2( CStifItemParser& aItem );
-        virtual TInt Cisolationserver::SearchKeyValueInvalidHashValues( CStifItemParser& aItem );
-        virtual TInt Cisolationserver::SearchKeyValueBlank( CStifItemParser& aItem );
-        virtual TInt Cisolationserver::SearchKeyValueSpecialChar( CStifItemParser& aItem );
-        virtual TInt Cisolationserver::SearchKeyValueLargeString( CStifItemParser& aItem );
-        virtual TInt Cisolationserver::SearchAndAddContact( CStifItemParser& aItem );
-        virtual TInt AcceptAddRequestFromUser(CStifItemParser& aItem);
-        virtual TInt RejectAddRequestFromUser(CStifItemParser& aItem);
-        virtual TInt SendAcceptRequestWithoutReceivingAddrequest(CStifItemParser& aItem);
-        virtual TInt SendRejectRequestWithoutReceivingAddrequest(CStifItemParser& aItem);
-        virtual TInt SendAcceptRequestWithoutAnyUserID(CStifItemParser& aItem);
-        virtual TInt SendRejectRequestWithoutAnyUserID(CStifItemParser& aItem);
-        virtual TInt LogoutWhileUserIsNotLoggedIn(CStifItemParser& aItem);
-        virtual TInt GetKeysAndSearch( CStifItemParser& aItem );
-        virtual TInt SetOwnAvatar( CStifItemParser& aItem );
-        virtual TInt ClearOwnAvatar( CStifItemParser& aItem );
-        virtual TInt FetchCachedContacts( CStifItemParser& aItem );
-
-//ADD NEW METHOD DEC HERE
-        //[TestMethods] - Do not remove
-
-	public:
-	
-		const gchar* GetSearchLabelForGizmoL(gchar* search_key);
-        const gchar* GetSearchLabelForYukonL(gchar* search_key);
-        const gchar* GetSearchLabelL(gchar* aService,gchar* aSearchKey);        
-
-    public:     // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    protected:  // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    private:    // Data
-        
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-        // Reserved pointer for future extension
-        //TAny* iReserved;
-
-    public:     // Friend classes
-        //?friend_class_declaration;
-    protected:  // Friend classes
-        //?friend_class_declaration;
-    private:    // Friend classes
-        //?friend_class_declaration;
-
-    };
-
-#endif      // ISOLATIONSERVER_H
-
-// End of File
--- a/isolationserver/tsrc/init/TestFramework.ini	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-#
-# This is STIFTestFramework initialization file
-# Comment lines start with '#'-character.
-# See STIF TestFramework users guide.doc for instructions
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-[Engine_Defaults]
-
-TestReportMode= FullReport		# Possible values are: 'Empty', 'Summary', 'Environment',
-                                                               'TestCases' or 'FullReport'
-
-CreateTestReport= YES			# Possible values: YES or NO
-
-TestReportFilePath= C:\LOGS\TestFramework\
-TestReportFileName= TestReport
-
-TestReportFormat= TXT			# Possible values: TXT or HTML
-TestReportOutput= FILE			# Possible values: FILE or RDEBUG
-TestReportFileCreationMode= OVERWRITE	# Possible values: OVERWRITE or APPEND
-
-DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
-
-[End_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Module configurations start
-
-[New_Module]
-ModuleName= testscripter
-TestCaseFile= C:\testframework\isolationserver.cfg
-[End_Module]
-
-[New_Module]
-ModuleName= testscripter
-TestCaseFile= C:\testframework\isolationserver_manual.cfg
-[End_Module]
-
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-[Logger_Defaults]
-
-[End_Logger_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# End of file
--- a/isolationserver/tsrc/src/isolationserver.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-/*
-* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   isolationserver.cpp
-*
-*/
-
-
-
-
-// INCLUDE FILES
-#include <StifTestInterface.h>
-#include "isolationserver.h"
-#include <SettingServerClient.h>
-
-
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// ?function_name ?description.
-// ?description
-// Returns: ?value_1: ?description
-//          ?value_n: ?description_line1
-//                    ?description_line2
-// -----------------------------------------------------------------------------
-//
-/*
-?type ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg)  // ?description
-    {
-
-    ?code  // ?comment
-
-    // ?comment
-    ?code
-    }
-*/
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::Cisolationserver
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-Cisolationserver::Cisolationserver( 
-    CTestModuleIf& aTestModuleIf ):
-        CScriptBase( aTestModuleIf )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void Cisolationserver::ConstructL()
-    {
-    //Read logger settings to check whether test case name is to be
-    //appended to log file name.
-    RSettingServer settingServer;
-    TInt ret = settingServer.Connect();
-    if(ret != KErrNone)
-        {
-        User::Leave(ret);
-        }
-    // Struct to StifLogger settigs.
-    TLoggerSettings loggerSettings; 
-    // Parse StifLogger defaults from STIF initialization file.
-    ret = settingServer.GetLoggerSettings(loggerSettings);
-    if(ret != KErrNone)
-        {
-        User::Leave(ret);
-        } 
-    // Close Setting server session
-    settingServer.Close();
-
-    TFileName logFileName;
-    
-    if(loggerSettings.iAddTestCaseTitle)
-        {
-        TName title;
-        TestModuleIf().GetTestCaseTitleL(title);
-        logFileName.Format(KisolationserverLogFileWithTitle, &title);
-        }
-    else
-        {
-        logFileName.Copy(KisolationserverLogFile);
-        }
-
-    iLog = CStifLogger::NewL( KisolationserverLogPath, 
-                          logFileName,
-                          CStifLogger::ETxt,
-                          CStifLogger::EFile,
-                          EFalse );
-
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-Cisolationserver* Cisolationserver::NewL( 
-    CTestModuleIf& aTestModuleIf )
-    {
-    Cisolationserver* self = new (ELeave) Cisolationserver( aTestModuleIf );
-
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-
-    }
-
-// Destructor
-Cisolationserver::~Cisolationserver()
-    { 
-
-    // Delete resources allocated from test methods
-    Delete();
-
-    // Delete logger
-    delete iLog; 
-
-    }
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// LibEntryL is a polymorphic Dll entry point.
-// Returns: CScriptBase: New CScriptBase derived object
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CScriptBase* LibEntryL( 
-    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
-    {
-
-    return ( CScriptBase* ) Cisolationserver::NewL( aTestModuleIf );
-
-    }
-
-
-//  End of File
--- a/isolationserver/tsrc/src/isolationserverBlocks.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19063 +0,0 @@
-/*
-* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   isolationserverBlocks.cpp
-*
-*/
-
-
-
-
-// [INCLUDE FILES] - do not remove
-#include <e32svr.h>
-#include <StifParser.h>
-#include <StifTestInterface.h>
-#include "isolationserver.h"
-#include  <e32const.h>
-
-#include <glib.h>
-#include <glib/gprintf.h>           // for g_stpcpy
-#include <string.h>
-#include <stdlib.h>
-
-#include <glowmem.h>
-#include "msgliterals.h"
-#include "msg_enums.h"
-#include <math.h>
-#define ONE_K_OPENC_FIX 1020
-
-typedef enum
-{
-	RC_OK,
-	RC_ERROR
-} RC_Code_t;
-
-
-typedef struct
-{
-	gchar *recipient;
-	gchar *message;
-} MessageData;
-
-typedef struct
-{
-	gchar      *proxy_server;
-	gchar      *proxy_port;	
-}ProxyData;
-
-typedef struct
-{
-	gchar       *server;
-	gchar       *username;
-	gchar       *password;		
-	gchar       *resource;
-	MessageData *msg_data;
-	gchar       *port;	
-
-    ProxyData   *proxy_data;
-    gchar       *contact;
-    gchar		*connmgr_bus;
-    gchar		*connmgr_path;
-    gchar		*protocol; 
-    gchar		*key_given_name;
-    gchar		*key_middle_name;
-    gchar		*key_jid;
-    gchar		*key_full_name;
-    gchar       *mimetype;
-    gchar       *image_file_name; 
-
-} ConnectData;
-
-
-// Function to read data from the cfg file
-static RC_Code_t read_data ( ConnectData*& connect_data, 
-                             CStifItemParser& aItem );
-                             
-// Function to free the allocated resources
-static void free_data ( ConnectData*& connect_data );                             
-
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-
-
-//-----------------------------------------------------------------------------
-// function_name	: read_data
-// description     	: Reads data from the CFG file
-// Returns          : None
-//-----------------------------------------------------------------------------
-//
-static RC_Code_t
-read_data ( ConnectData*& connect_data, CStifItemParser& aItem )
-    {
-	TPtrC               string;
-	TBuf8<KMaxFileName> temp;
-	MessageData         *msg_data   = NULL;
-	
-
-	ProxyData           *proxy_data = NULL;
-//	TInt                proxy_port;
-
-
-	
-	connect_data = g_new0 ( ConnectData, 1 );
-	if ( !connect_data )
-	    {
-		return RC_ERROR;
-	    }
-	    
-	msg_data = g_new0 ( MessageData, 1 );
-	if ( !msg_data )
-	    {
-		free_data ( connect_data );
-		return RC_ERROR;
-	    }
-	
-	connect_data->msg_data = msg_data;
-	
-
-    proxy_data = g_new0 ( ProxyData, 1 );
-    if ( !proxy_data ) 
-    	{
-    	free_data ( connect_data );
-    	return RC_ERROR;
-    	}
-	connect_data->proxy_data = proxy_data;
-
-
-	// Read server name
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-		temp.Copy ( string );
-		temp.Append ( '\0' );
-		connect_data->server = g_new0 ( gchar, temp.Length() );
-		if ( !connect_data->server )
-		    {			
-			free_data ( connect_data );
-			return RC_ERROR;
-		    }
-		g_stpcpy ( connect_data->server, ( gchar * ) temp.Ptr() ); 
-	    }
-	    
-	// Read Username
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    connect_data->username = g_new0 ( gchar, temp.Length() );
-	    if ( !connect_data->username )
-	        {	    	
-	    	free_data ( connect_data );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( connect_data->username, ( gchar * ) temp.Ptr() );		    
-	    }
-	
-	// Read Password corresponding to Username
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    connect_data->password = g_new0 ( gchar, temp.Length () );		    
-	    if ( !connect_data->password )
-	        {	    	
-	    	free_data ( connect_data );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( connect_data->password, ( gchar *) temp.Ptr() );
-	    }
-	
-	// Read recipient
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    msg_data->recipient = g_new0 ( gchar, temp.Length() );
-	    if ( !msg_data->recipient )
-	        {
-	    	free_data ( connect_data );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( msg_data->recipient, ( gchar * ) temp.Ptr() );
-	    }
-	
-	// Read Message
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );	    
-	    msg_data->message = g_new0 ( gchar, temp.Length() );
-	    if ( !msg_data->message )
-	        {
-	    	free_data ( connect_data );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( msg_data->message, ( gchar * ) temp.Ptr() );
-	    }
-	
-	// Read resource identifier
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    connect_data->resource = g_new0 ( gchar, temp.Length() );
-	    if ( !connect_data->resource )
-	        {
-	    	free_data ( connect_data );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( connect_data->resource, ( gchar * ) temp.Ptr() );		    
-	    }
-	 
-
-	// Read proxy server and proxy port
-    if ( aItem.GetNextString ( string ) == KErrNone )
-    	{
-    	temp.Copy ( string );
-    	temp.Append ( '\0' );
-    	proxy_data->proxy_server = g_new0 ( gchar, temp.Length() );
-    	if ( !proxy_data->proxy_server )
-    		{
-    		free_data ( connect_data );
-    		return RC_ERROR;
-    		}
-    	g_stpcpy ( proxy_data->proxy_server, ( gchar * ) temp.Ptr() );
-    	}
-    	
-    	if ( aItem.GetNextString ( string ) == KErrNone )
-    	{
-    	temp.Copy ( string );
-    	temp.Append ( '\0' );
-    	proxy_data->proxy_port = g_new0 ( gchar, temp.Length() );
-    	if ( !proxy_data->proxy_port )
-    		{
-    		free_data ( connect_data );
-    		return RC_ERROR;
-    		}
-    	g_stpcpy ( proxy_data->proxy_port, ( gchar * ) temp.Ptr() );
-    	}
-    	
-    	
-    	
-    /*	if ( aItem.GetNextString ( proxy_port ) == KErrNone )
-    		{
-    		proxy_data->proxy_port = proxy_port;
-    		}  */  	
- 
-
-	// Read POrt address
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    connect_data->port = g_new0 ( gchar, temp.Length() );
-	    if ( !connect_data->port )
-	        {
-	    	free_data ( connect_data );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( connect_data->port, ( gchar * ) temp.Ptr() );		    
-	    }
-  
-  // read Add member
-       if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-		temp.Copy ( string );
-		temp.Append ( '\0' );
-		connect_data->contact = g_new0 ( gchar, temp.Length() );
-		if ( !connect_data->contact )
-		    {			
-			free_data ( connect_data );
-			return RC_ERROR;
-		    }
-		g_stpcpy ( connect_data->contact, ( gchar * ) temp.Ptr() ); 
-	    }
-  
-   	// read CONNMGR_BUS
-       if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-		temp.Copy ( string );
-		temp.Append ( '\0' );
-		connect_data->connmgr_bus = g_new0 ( gchar, temp.Length() );
-		if ( !connect_data->connmgr_bus )
-		    {			
-			free_data ( connect_data );
-			return RC_ERROR;
-		    }
-		g_stpcpy ( connect_data->connmgr_bus, ( gchar * ) temp.Ptr() ); 
-	    }
-	
-	// read CONNMGR_PATH
-       if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-		temp.Copy ( string );
-		temp.Append ( '\0' );
-		connect_data->connmgr_path = g_new0 ( gchar, temp.Length() );
-		if ( !connect_data->connmgr_path )
-		    {			
-			free_data ( connect_data );
-			return RC_ERROR;
-		    }
-		g_stpcpy ( connect_data->connmgr_path, ( gchar * ) temp.Ptr() ); 
-	    }
-	    
-	// read PROTOCOL
-       if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-		temp.Copy ( string );
-		temp.Append ( '\0' );
-		connect_data->protocol = g_new0 ( gchar, temp.Length() );
-		if ( !connect_data->protocol )
-		    {			
-			free_data ( connect_data );
-			return RC_ERROR;
-		    }
-		g_stpcpy ( connect_data->protocol, ( gchar * ) temp.Ptr() ); 
-	    }	 
-	        
-    
-	    // read given Name
-       if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-		temp.Copy ( string );
-		temp.Append ( '\0' );
-		connect_data->key_given_name = g_new0 ( gchar, temp.Length() );
-		if ( !connect_data->key_given_name )
-		    {			
-			free_data ( connect_data );
-			return RC_ERROR;
-		    }
-		g_stpcpy ( connect_data->key_given_name, ( gchar * ) temp.Ptr() ); 
-	    }	 
-	    
-	    // read middle Name
-       if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-		temp.Copy ( string );
-		temp.Append ( '\0' );
-		connect_data->key_middle_name = g_new0 ( gchar, temp.Length() );
-		if ( !connect_data->key_middle_name )
-		    {			
-			free_data ( connect_data );
-			return RC_ERROR;
-		    }
-		g_stpcpy ( connect_data->key_middle_name, ( gchar * ) temp.Ptr() ); 
-	    }	 
-	    
-	    // read email Name
-       if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-		temp.Copy ( string );
-		temp.Append ( '\0' );
-		connect_data->key_jid = g_new0 ( gchar, temp.Length() );
-		if ( !connect_data->key_jid )
-		    {			
-			free_data ( connect_data );
-			return RC_ERROR;
-		    }
-		g_stpcpy ( connect_data->key_jid, ( gchar * ) temp.Ptr() ); 
-	    }	 
-	    
-	    // read full Name
-       if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-		temp.Copy ( string );
-		temp.Append ( '\0' );
-		connect_data->key_full_name = g_new0 ( gchar, temp.Length() );
-		if ( !connect_data->key_full_name )
-		    {			
-			free_data ( connect_data );
-			return RC_ERROR;
-		    }
-		g_stpcpy ( connect_data->key_full_name, ( gchar * ) temp.Ptr() ); 
-	    }	 
-       // read mimetype
-       if ( aItem.GetNextString ( string ) == KErrNone )
-           {
-           temp.Copy ( string );
-           temp.Append ( '\0' );
-           connect_data->mimetype = g_new0 ( gchar, temp.Length() );
-           if ( !connect_data->mimetype )
-               {           
-               free_data ( connect_data );
-               return RC_ERROR;
-               }
-           g_stpcpy ( connect_data->mimetype, ( gchar * ) temp.Ptr() ); 
-           }    
-       // read image filename
-       if ( aItem.GetNextString ( string ) == KErrNone )
-           {
-           temp.Copy ( string );
-           temp.Append ( '\0' );
-           connect_data->image_file_name = g_new0 ( gchar, temp.Length() );
-           if ( !connect_data->image_file_name )
-               {           
-               free_data ( connect_data );
-               return RC_ERROR;
-               }
-           g_stpcpy ( connect_data->image_file_name, ( gchar * ) temp.Ptr() ); 
-           }          
-	return RC_OK;
-    }
-
-
-//-----------------------------------------------------------------------------
-// function_name	: free_data
-// description     	: Deallocates all the data
-// Returns          : None
-//-----------------------------------------------------------------------------
-//
-static void
-free_data ( ConnectData*& connect_data )
-    {
-	if ( connect_data )
-	    {
-		if ( connect_data->server )
-		    {
-			g_free ( connect_data->server );
-			connect_data->server = NULL;
-		    }
-		
-		if ( connect_data->username )
-		    {
-			g_free ( connect_data->username );
-			connect_data->username = NULL;
-		    }
-		
-		if ( connect_data->password )
-		    {
-			g_free ( connect_data->password );
-			connect_data->password = NULL;
-		    }
-		
-		if ( connect_data->msg_data )
-		    {
-			if ( connect_data->msg_data->recipient )
-			    {
-				g_free ( connect_data->msg_data->recipient );
-				connect_data->msg_data->recipient = NULL;
-			    }
-			if ( connect_data->msg_data->message )
-			    {
-				g_free ( connect_data->msg_data->message );
-				connect_data->msg_data->message = NULL;
-			    }
-			g_free ( connect_data->msg_data );
-			connect_data->msg_data = NULL;
-		    }		
-		
-		if ( connect_data->resource )
-		    {
-			g_free ( connect_data->resource );
-			connect_data->resource = NULL;
-		    }
-		    
-
-	    if ( connect_data->proxy_data )
-	    	{
-	    	if ( connect_data->proxy_data->proxy_server )
-	    		{
-	    		g_free ( connect_data->proxy_data->proxy_server );
-	    		connect_data->proxy_data->proxy_server = NULL;
-	    		}
-	    	g_free ( connect_data->proxy_data );
-	    	connect_data->proxy_data = NULL;	
-	    	}
-	  
-	    if ( connect_data->port )
-		    {
-			g_free ( connect_data->port );
-			connect_data->port = NULL;
-		    }  
-		    
-		    
-		if ( connect_data->contact )
-		    {
-			g_free ( connect_data->contact );
-			connect_data->contact = NULL;
-		    }
-		    
-		if ( connect_data->key_given_name )
-		    {
-			g_free ( connect_data->key_given_name );
-			connect_data->key_given_name = NULL;
-		    }
-		    
-		if ( connect_data->key_middle_name )
-		    {
-			g_free ( connect_data->key_middle_name );
-			connect_data->key_middle_name = NULL;
-		    }
-		    
-		if ( connect_data->key_jid )
-		    {
-			g_free ( connect_data->key_jid );
-			connect_data->key_jid = NULL;
-		    }
-		    
-		if ( connect_data->key_full_name )
-		    {
-			g_free ( connect_data->key_full_name );
-			connect_data->key_full_name = NULL;
-		    }  
-		          
-		g_free ( connect_data );
-		connect_data = NULL;    
-	    }
-    }
-    
-    //-----------------------------------------------------------------------------
-// function_name	: running isolation server exe
-// description     	: Deallocates all the data
-// Returns          : None
-//-----------------------------------------------------------------------------
-  int  run_isoserver()
-  {
-  	// running isoserver 
-    RProcess isosrv_launcher;
-    TInt lunch_err = 0;
-    _LIT(KProcess, "isoserver.exe");
-    lunch_err = isosrv_launcher.Create( KProcess, KNullDesC );
-     if ( KErrNone != lunch_err ) 
-	    {
-		return KErrGeneral;
-	    	
-	    }
-	isosrv_launcher.Resume();
-	return KErrNone;
-  }
-
-// -----------------------------------------------------------------------------
-// ?function_name ?description.
-// ?description
-// Returns: ?value_1: ?description
-//          ?value_n: ?description_line1
-//                    ?description_line2
-// -----------------------------------------------------------------------------
-//
-/*
-?type ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg)  // ?description
-    {
-
-    ?code  // ?comment
-
-    // ?comment
-    ?code
-    }
-*/
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::Delete
-// Delete here all resources allocated and opened from test methods. 
-// Called from destructor. 
-// -----------------------------------------------------------------------------
-//
-void Cisolationserver::Delete() 
-    {
-
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::RunMethodL
-// Run specified method. Contains also table of test mothods and their names.
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::RunMethodL( 
-    CStifItemParser& aItem ) 
-    {
-
-    static TStifFunctionInfo const KFunctions[] =
-        {  
-        
-        ENTRY( "SecondSearch", Cisolationserver::SecondSearch), 
-        ENTRY( "SearchAndAddContact", Cisolationserver::SearchAndAddContact ),
-        ENTRY( "LoginWithCorrectData", Cisolationserver::LoginWithCorrectdata ),
-        ENTRY( "LoginWithWrongPassword", Cisolationserver::LoginWithWrongPassword ),
-        ENTRY( "LoginWithUnexistUserId", Cisolationserver::LoginWithUnexistUserId),
-        ENTRY( "LoginWithUnexistServer", Cisolationserver::LoginWithUnexistServer),
-        ENTRY( "LoginWithMixedLetterUserId", Cisolationserver::LoginWithMixedletterUserId),
-        ENTRY( "LoginWithMaximumLenghtUserId", Cisolationserver::LoginWithMaximumLengthUserId),
-        ENTRY( "LoginWithMinimumLenghtUserId", Cisolationserver::LoginWithMinimumLengthUserId),
-        ENTRY( "LogoutFromServer", Cisolationserver::LogoutFromServer),
-        ENTRY( "LoginWithBlankUserId", Cisolationserver::LoginWithBlankUserId),
-        ENTRY( "LoginLogOutWithReapitiveSession", Cisolationserver::LoginLogOutWithReapitiveSession),
-        ENTRY( "LoginWithCoreectUserIDWithSpace", Cisolationserver::LoginWithCoreectUserIDWithSpace),
-        ENTRY( "LoginWithInvalidPortAddress", Cisolationserver::LoginWithInvalidPortAddress),
-        ENTRY( "LoginWithMissingSettings", Cisolationserver::LoginWithMissingSettings),
-        ENTRY( "LoginWhenTGAndDDAreNotRunning", Cisolationserver::LoginWhenTGAndDDAreNotRunning),
-        ENTRY( "SendMessageToCorrectUserID", Cisolationserver::SendMessageToCorrectUserID),
-        ENTRY( "SendMaxLenMessageToCorrectUserID", Cisolationserver::SendMaxLenMessageToCorrectUserID),
-        ENTRY( "SendTextMessageUnExistUserID", Cisolationserver::SendTextMessageUnExistUserID),
-        ENTRY( "SendTextMessageWithSpecialCharacter", Cisolationserver::SendTextMessageWithSpecialCharacter),
-        ENTRY( "SendMessageWithBlankUserID", Cisolationserver::SendMessageWithBlankUserID),
-        ENTRY( "SendSmilyToCorrectUserID", Cisolationserver::SendSmilyToCorrectUserID),
-        ENTRY( "SendBlankMessageToUserID", Cisolationserver::SendBlankMessageToUserID),
-        ENTRY( "SendMessageToOfflineContact", Cisolationserver::SendMessageToOfflineContact),
-        ENTRY( "SendContinuousltReapitiveMessage", Cisolationserver::SendContinuousltReapitiveMessage),
-        ENTRY( "SendTextMessageToBlockedUser", Cisolationserver::SendTextMessageToBlockedUser),
-        ENTRY( "SendTextMessageToUserIdWhoIsBlockedSender", Cisolationserver::SendTextMessageToUserIdWhoIsBlockedSender),
-        ENTRY( "SendLongTextMessageToUserId", Cisolationserver::SendLongTextMessageToUserId),
-        ENTRY( "SendTextMessageUserWhoIsNotAddedInContactList", Cisolationserver::SendTextMessageUserWhoIsNotAddedInContactList),
-        ENTRY( "MessageReceiveFromUser", Cisolationserver::MessageReceiveFromUser),
-        ENTRY( "AddExistingContact", Cisolationserver::AddExistingContact),
-        ENTRY( "ClientSendBlankUserIdForADD", Cisolationserver::ClientSendBlankUserIdForADD),
-        ENTRY( "AddContactWhichIsAlreadyAdded", Cisolationserver::AddContactWhichIsAlreadyAdded),
-        ENTRY( "AddExistingContactWIthSpace", Cisolationserver::AddExistingContactWIthSpace),
-        ENTRY( "AddUnexistingUserID", Cisolationserver::AddUnexistingUserID),
-        ENTRY( "AddExistingContactWIthMixedLetter", Cisolationserver::AddExistingContactWIthMixedLetter),
-        ENTRY( "AddInvalidContactWIthSpecialLetter", Cisolationserver::AddInvalidContactWIthSpecialLetter),
-        ENTRY( "DeleteExistingContact", Cisolationserver::DeleteExistingContact),
-        ENTRY( "ClientSendBlankUserIdForDELETE", Cisolationserver::ClientSendBlankUserIdForDELETE),
-        ENTRY( "DeleteContactWhichIsAlreadyDeleted", Cisolationserver::DeleteContactWhichIsAlreadyDeleted),
-        ENTRY( "DeleteExistingContactWIthSpace", Cisolationserver::DeleteExistingContactWIthSpace),
-        ENTRY( "DeleteUnexistingUserID", Cisolationserver::DeleteUnexistingUserID),
-        ENTRY( "DeleteExistingContactWIthMixedLetter", Cisolationserver::DeleteExistingContactWIthMixedLetter),
-        ENTRY( "DeleteInvalidContactWIthSpecialLetter", Cisolationserver::DeleteInvalidContactWIthSpecialLetter),
-        ENTRY( "FetchContatcs", Cisolationserver::FetchContatcs),
-        ENTRY( "AddContatcs", Cisolationserver::AddContatcs),
-        ENTRY( "UpdatePresenceWithAway", Cisolationserver::UpdatePresenceWithAway),
-        ENTRY( "UpdatePresenceWithDnd", Cisolationserver::UpdatePresenceWithDnd),
-        ENTRY( "UpdatePresenceWithAvailable", Cisolationserver::UpdatePresenceWithAvailable),
-        ENTRY( "UpdatePresenceMultipleTimeInSameSession", Cisolationserver::UpdatePresenceMultipleTimeInSameSession),
-        ENTRY( "UpdateOnlyStatusText", Cisolationserver::UpdateOnlyStatusText),
-        ENTRY( "UpdateOnlyUserAvailability", Cisolationserver::UpdateOnlyUserAvailability),
-        ENTRY( "UpdateOwnPresenceWithBlankData", Cisolationserver::UpdateOwnPresenceWithBlankData),
-        ENTRY( "UpdateStatusTextWithMaxLen", Cisolationserver::UpdateStatusTextWithMaxLen),
-        ENTRY( "UpdateStatusTextWithSpecialCharacter", Cisolationserver::UpdateStatusTextWithSpecialCharacter),
-        ENTRY( "HandelingPresenceNotification", Cisolationserver::HandelingPresenceNotification),
-        ENTRY( "SearchKeyValue", Cisolationserver::SearchKeyValue),
-        ENTRY( "SearchKeyValueWithResult", Cisolationserver::SearchKeyValueWithResult ),
-        ENTRY( "SearchKeyValueInvalidParam", Cisolationserver::SearchKeyValueInvalidParam ),
-        ENTRY( "SearchForLargeNoOfResult", Cisolationserver::SearchForLargeNoOfResult ),
-        ENTRY( "SearchKeyValueInvalidParam2", Cisolationserver::SearchKeyValueInvalidParam2 ),
-        ENTRY( "SearchKeyValueInvalidHashValues", Cisolationserver::SearchKeyValueInvalidHashValues ),
-        ENTRY( "SearchKeyValueBlank", Cisolationserver::SearchKeyValueBlank ),
-        ENTRY( "SearchKeyValueSpecialChar", Cisolationserver::SearchKeyValueSpecialChar ),
-        ENTRY( "SearchKeyValueLargeString", Cisolationserver::SearchKeyValueLargeString ),
-        ENTRY( "AcceptAddRequestFromUser", Cisolationserver::AcceptAddRequestFromUser ),
-        ENTRY( "RejectAddRequestFromUser", Cisolationserver::RejectAddRequestFromUser ),
-        ENTRY( "SendAcceptRequestWithoutReceivingAddrequest", Cisolationserver::SendAcceptRequestWithoutReceivingAddrequest ),
-        ENTRY( "SendRejectRequestWithoutReceivingAddrequest", Cisolationserver::SendRejectRequestWithoutReceivingAddrequest ),
-        ENTRY( "SendAcceptRequestWithoutAnyUserID", Cisolationserver::SendAcceptRequestWithoutAnyUserID ),
-        ENTRY( "SendRejectRequestWithoutAnyUserID", Cisolationserver::SendRejectRequestWithoutAnyUserID ),
-        ENTRY( "LogoutWhileUserIsNotLoggedIn", Cisolationserver::LogoutWhileUserIsNotLoggedIn),
-        ENTRY( "GetKeysAndSearch", Cisolationserver::GetKeysAndSearch),
-        ENTRY( "SetOwnAvatar", Cisolationserver::SetOwnAvatar),
-        ENTRY( "ClearOwnAvatar", Cisolationserver::ClearOwnAvatar),
-        ENTRY( "FetchCachedContacts", Cisolationserver::FetchCachedContacts),
-        //ADD NEW ENTRY HERE
-        // [test cases entries] - Do not remove
-
-        };
-
-    const TInt count = sizeof( KFunctions ) / 
-                        sizeof( TStifFunctionInfo );
-
-    return RunInternalL( KFunctions, count, aItem );
-
-    }
-    
-   // -----------------------------------------------------------------------------
-// Cisolationserver::Login with correct data
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWithCorrectdata( CStifItemParser& aItem )
-    {
-  	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-
-	FILE *fp;	
-	int timeout = 100;
-	int nBytes;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ELogin_Request;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    //appending password
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    //appending server name
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    // appending IAP id
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    #endif
-     //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    /* Send Message to queueOne */
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-   	if( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-     // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	 result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    return_value = KErrNone;
-	goto return_code;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-
-    }
-
-
-  // -----------------------------------------------------------------------------
-// Cisolationserver::Logout from server
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LogoutFromServer( CStifItemParser& aItem )
-    {
-  	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-
-	FILE *fp;	
-	int timeout = 100;
-	int nBytes;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ELogin_Request;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    //appending password
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    //appending server name
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    // appending IAP id
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    #endif
-     //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    /* Send Message to queueOne */
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-   	if( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-     // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	 result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    return_value = KErrNone;
-	goto return_code;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-
-    }
-
-  // -----------------------------------------------------------------------------
-// Cisolationserver::Login with mixed letter user
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWithMixedletterUserId( CStifItemParser& aItem )
-    {
-  	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-
-	FILE *fp;	
-	int timeout = 100;
-	int nBytes;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ELogin_Request;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    //appending password
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    //appending server name
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    // appending IAP id
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    #endif
-     //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    /* Send Message to queueOne */
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-   	if( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-     // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	 result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    return_value = KErrNone;
-	goto return_code;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-
-    }
-    
-    // -----------------------------------------------------------------------------
-// Cisolationserver::Login with mixed letter user
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWithMinimumLengthUserId( CStifItemParser& aItem )
-    {
-  	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-
-	FILE *fp;	
-	int timeout = 100;
-	int nBytes;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ELogin_Request;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    //appending password
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    //appending server name
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    // appending IAP id
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    #endif
-     //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    /* Send Message to queueOne */
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-   	if( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-     // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	 result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    return_value = KErrNone;
-	goto return_code;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-
-    }
-    
-     // -----------------------------------------------------------------------------
-// Cisolationserver::Login with mixed letter user
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWithMaximumLengthUserId( CStifItemParser& aItem )
-    {
-  	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-
-	FILE *fp;	
-	int timeout = 100;
-	int nBytes;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ELogin_Request;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    //appending password
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    //appending server name
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    // appending IAP id
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    #endif
-     //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    /* Send Message to queueOne */
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-   	if( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-     // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	 result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    return_value = KErrNone;
-	goto return_code;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-
-    } 
-// -----------------------------------------------------------------------------
-// Cisolationserver::Login with bad password
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWithWrongPassword( CStifItemParser& aItem )
-    {
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    int timeout = 100;
-	int nBytes;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-     //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-	/* Send Message to queueOne */
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	if( msg_struct->response != 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	if( msg_struct->response != 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    goto return_code;
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::Login with unexist user id
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWithUnexistUserId( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	if( msg_struct->response != 0 )
-    {
-      return_value = KErrGeneral;
-	goto return_code;
-    }
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    } 
-    
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-    
-    
-  // -----------------------------------------------------------------------------
-// Cisolationserver::connect with unexist server
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWithUnexistServer( CStifItemParser& aItem )
-    {
-
-    /*	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver();     
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	//Send Message to queueOne 
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    // login end
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    */
-    //LM is not getting call back from server so we are just saying KerrGeneral
-    return KErrGeneral;
-    }
-    
-    
-    
-    // -----------------------------------------------------------------------------
-// Cisolationserver::Login with correct data
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWithBlankUserId( CStifItemParser& aItem )
-    {
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    int timeout = 100;
-	int nBytes;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    // blank user id
-    smsg[index++]='\0';    
-    smsg[index++]='\0';
-    
-    //appending password
-    
-   int len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->error_type > 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    goto return_code;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
- // -----------------------------------------------------------------------------
-// Cisolationserver::Logout from server
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginLogOutWithReapitiveSession( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	 index=0;
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-	msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isolation server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    	//request formation	
-	 index=0;
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-     len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-	msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-    
-    // -----------------------------------------------------------------------------
-// Cisolationserver::connect with invalid port
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWithInvalidPortAddress( CStifItemParser& aItem )
-    {
-
-    /*	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    
-    smsg[index++]='4';
-    smsg[index++]='4';
-    smsg[index++]='2';
-    
-    smsg[index++]='\0';
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	// Send Message to queueOne 
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response == 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    */
-    //LM is not getting call back from server so we are just saying KerrGeneral
-    return KErrGeneral;
-    }
-
-   
-   // -----------------------------------------------------------------------------
-// Cisolationserver::Login with correct data
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWithMissingSettings( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-   
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    // ssl is missing here
-        
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver();    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-	
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-   
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-   // -----------------------------------------------------------------------------
-// Cisolationserver::LoginWhenTGAndDDAreNotRunning
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWhenTGAndDDAreNotRunning( CStifItemParser& aItem )
-    {
-    /*
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-   
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver();     
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-	
-	
-	// Send Message to queueOne 
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-   
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value; */
-    return KErrNone;
-    }
-
-    
-    // -----------------------------------------------------------------------------
-// Cisolationserver::Login with correct data
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LoginWithCoreectUserIDWithSpace( CStifItemParser& aItem )
-    {
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    int timeout = 100;
-	int nBytes;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ELogin_Request;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    smsg[index++]='\0';
-    //appending password
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-     
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
- 
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->error_type >0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    return_value = KErrNone;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
- // -----------------------------------------------------------------------------
-// Cisolationserver::Send message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendMessageToCorrectUserID( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-    
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }    
-    
-    
-    
-    //send message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::Send message with max len
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendMaxLenMessageToCorrectUserID( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    run_isoserver();
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    } 
-    
-    
-    //send message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-   // -----------------------------------------------------------------------------
-// Cisolationserver::Send message to unexist user id
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendTextMessageUnExistUserID( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-    /* if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }*/
-    
-    //send message end---------------------------------------
-    
-    
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-    // -----------------------------------------------------------------------------
-// Cisolationserver::Send message to unexist user id
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendTextMessageWithSpecialCharacter( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-       
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end     
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //send message end---------------------------------------
-    
-    
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-   // -----------------------------------------------------------------------------
-// Cisolationserver::Send message to blank user id
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendMessageWithBlankUserID( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    smsg[index++] = '\0';
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //send message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-  // -----------------------------------------------------------------------------
-// Cisolationserver::Send blank message to user id
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendBlankMessageToUserID( CStifItemParser& aItem )
-    {
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-
-     
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    smsg[index++]=' ';
-    smsg[index++]='\0';
-       
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    //send message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    return_value = KErrNone;
-	goto return_code;
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-    
-     // -----------------------------------------------------------------------------
-// Cisolationserver::Send blank message to user id
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendSmilyToCorrectUserID( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strncpy( smsg + index, connect_data->msg_data->message, strlen( connect_data->msg_data->message ) );
-    index += len;
-    smsg[index++] = ' ';
-    smsg[index++]=':';
-    smsg[index++]='-';
-    smsg[index++]=')';
-    smsg[index++] = '\0';
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    //send message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-    
-    // -----------------------------------------------------------------------------
-// Cisolationserver::Send message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendMessageToOfflineContact( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }   
-    
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    //send messge--------------------------------------------
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }    
-    
-    //send message end---------------------------------------
-    
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::Send message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendContinuousltReapitiveMessage( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //send messge 1 --------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //send message end---------------------------------------
-    
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::Send message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendTextMessageToBlockedUser( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-
-     //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    //send message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::Send message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendTextMessageToUserIdWhoIsBlockedSender( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end 
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    //send message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::Send message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendLongTextMessageToUserId( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    run_isoserver();
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    } 
-    
-    
-    //send message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::Send message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendTextMessageUserWhoIsNotAddedInContactList( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    //send message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
- 
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::Login with correct data
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::MessageReceiveFromUser( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    int i=0;
-	int msglen=0;	
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp ;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    fp = fopen("c:\\receive_message_logs.txt","a");TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    // running isoserver
-    run_isoserver();
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-	
-	//send messge to our self--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	TBool ESend = EFalse , EReceive = EFalse;
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-     // adding recipient
-    /*len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;*/
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-    
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-	    if(msg_struct->hdr_req.message_type==ESend_Request)
-	    ESend=ETrue;
-	    if(msg_struct->hdr_req.message_type==EText_Message_Receive)
-	    ESend=ETrue;
-		} while (ESend/* == ETrue */&& EReceive/* ==ETrue*/) ;//(msg_struct->hdr_req.message_type!=ESend_Request);
-   
- /*    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }    
-            
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-        //wait for message receive 
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    fprintf( fp, "receive message %s\n", rmsg+24 ); 
-    
-    for ( i=24 ; i <rmsg[i]!='\0';i++)
-    msglen++;
-    fprintf( fp, "receive message %s\n", rmsg+24+msglen+1 ); 
-    */
-    
-    // login end
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-     //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    
-    }
-
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::AddExistingContact( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-
-     //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-	
-    //adding contact --------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	// adding add contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-    smsg[index++]='\0';
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end---------------------------------------
-    
-    
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::AddUnexistingUserID( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    //add contact --------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	// adding add contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-    smsg[index++] = '\0';
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::AddContactWhichIsAlreadyAdded( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    //add member  1 st time--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding add contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-    
-     
-    
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end---------------------------------------
-    
-     //add member  2 nd time--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding add contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-    
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end---------------------------------------
-    
-
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-
-  // -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::ClientSendBlankUserIdForADD( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-     TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    //add contact --------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    smsg[index++]='\0';
-    //client is sending blank user id
-    smsg[index++]='\0';
-    
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-     if( msg_struct->error_type >0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end---------------------------------------
-    
-    
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-   if( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::AddExistingContactWIthSpace( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding add contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-    smsg[index++]=' ';
-    
-    smsg[index++]= '\0'; 
-    
-     
-    
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-     if( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //add contact end---------------------------------------
-    
-    
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::AddExistingContactWIthMixedLetter( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding add contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-    smsg[index++]='\0';
-     
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end---------------------------------------
-    
-    
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-  // -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::AddInvalidContactWIthSpecialLetter( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding add contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-     
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::DeleteExistingContact( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //delete contact--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EDelete_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding add contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-    smsg[index++] = '\0';
-     
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EDelete_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end---------------------------------------
-    
-    
-   // logout test code from server
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::DeleteUnexistingUserID( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end     
-    //delete contact--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EDelete_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding add contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-   
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EDelete_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::DeleteContactWhichIsAlreadyDeleted( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-     
-      //add member  1 st time--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-    // addiing in q for deleting contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-        
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end 1---------------------------------------
-    
-    //delete member  1 st time--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EDelete_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // addiing in q for deleting contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-        
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EDelete_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }    
-    //delete contact end 1---------------------------------------
-    
-     //delete contact  2 nd time--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EDelete_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // delete  contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-    
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EDelete_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //delete contact end---------------------------------------
-    
-
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-   //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-
-  // -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::ClientSendBlankUserIdForDELETE( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //delete contact --------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EDelete_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    smsg[index++]='\0';
-    //client is sending blank user id
-    smsg[index++]='\0';
-    
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EDelete_Contact_Request);
-   
-     if( msg_struct->error_type >0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //delete contact end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::DeleteExistingContactWIthSpace( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-
-     //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-    //delete contact--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EDelete_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding delete contact in queue
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-    smsg[index++]='\0';
-        
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EDelete_Contact_Request);
-   
-      if( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //delete contact end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-   //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::DeleteExistingContactWIthMixedLetter( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-    //delete contact--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EDelete_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding delete contact id
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-     
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EDelete_Contact_Request);
-   
-    
-    //delete contact end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-  // -----------------------------------------------------------------------------
-// Cisolationserver::add member message
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::DeleteInvalidContactWIthSpecialLetter( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //delete contact--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EDelete_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding delete contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-     
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EDelete_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //delete contact end---------------------------------------
-    
-    
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::Login with correct data
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::FetchContatcs( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    // logout test code from server
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-
-TInt Cisolationserver::AddContatcs( CStifItemParser& aItem )
-   	{ 	
-   	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    
-    //running isoserver   
-    run_isoserver(); 
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	//send msg copy	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	//------------------------1
-    // adding recipient
-    len = strlen( "santhosh09431243.ic@gmail.com" );
-    strcpy( smsg + index, "santhosh09431243.ic@gmail.com" );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-         
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //send msg copy	end
-    
-    
- 	
-   //EAdd_Contact_Request messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    //len = strlen( "tele1236@gmail.com" );
-    //strcpy( smsg + index, "tele1236@gmail.com" );
-    //index += len + 1;
-    
-    strcpy( smsg + index, "testlm123@gmail.com" );
-    index += strlen( "testlm123@gmail.com" ) + 1;	
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-        
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-   // sleep( 50 );
-    //EAdd_Contact_Request message end---------------------------------------
- 
- /*	sleep( 100 );
- //--------------------------------Trying to add client notification----------------------
- 
- 	status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if ( status < 0 )
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-	msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    */
- //--------------------------------Trying to add client end----------------------
- 
- 
- 
-     
-    //EAdd_Contact_Request messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-    strcpy( smsg + index, "tele1236@gmail.com" );
-    index += strlen( "tele1236@gmail.com" ) + 1;	
-    
-     // adding recipient
-    //len = strlen(connect_data->msg_data->recipient );
-    //strcpy( smsg + index, connect_data->msg_data->recipient );
-    //index += len + 1;
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-        
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //EAdd_Contact_Request message end---------------------------------------
- 
- 
-    
-    //EAdd_Contact_Request -ve messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	//-----------------1
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-    strcpy( smsg + index, "tele1236@gmail.com" );
-    index += strlen( "tele1236@gmail.com" ) + 1;	
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-        
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //-----------------2 -ve
-    index = 0;
-    index += sizeof( message_hdr_req );
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    memcpy( smsg + index, connect_data->msg_data->recipient, len );
-    index += len;
-    
-    // adding message part
-        
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //-----------------
-    
-    
-    //EAdd_Contact_Request -ve message end---------------------------------------
-      
-    //send messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESend_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	//------------------------1
-    // adding recipient
-    len = strlen( "santhosh.ic@gmail.com" );
-    strcpy( smsg + index, "santhosh.ic@gmail.com" );
-    index += len + 1;
-    
-     // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-     
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //-----------------------------------2 -ve
-    index = 0;
-    index += sizeof( message_hdr_req );
-    // adding recipient
-    for ( int i = 0; i <= 11; i++ ) 
-	    {
-	    len = strlen( "santhosh.ic@gmail.com" );
-	    strcpy( smsg + index, "santhosh.ic@gmail.com" );
-	    index += len + 1;
-	    }
-    smsg[index++] = '\0';
-    // adding message part
-        
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-    if ( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    //-----------------------------------3 -ve
-    index = 0;
-    index += sizeof( message_hdr_req );
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    memcpy( smsg + index, connect_data->msg_data->recipient, len );
-    index += len;
-    
-    // adding message part
-        
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ESend_Request);
-   
-    if ( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //send message end---------------------------------------
-    
-   //EDelete_Contact_Request messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EDelete_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-    strcpy( smsg + index, "tele1236@gmail.com" );
-    index += strlen( "tele1236@gmail.com" ) + 1;	
-    
-     // adding recipient
-    //len = strlen(connect_data->msg_data->recipient );
-    //strcpy( smsg + index, connect_data->msg_data->recipient );
-    //index += len + 1;
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-        
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EDelete_Contact_Request);
-   
-    if ( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //--------------------delete----------------------
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EDelete_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding recipient
-    len = strlen(connect_data->msg_data->recipient );
-    strcpy( smsg + index, connect_data->msg_data->recipient );
-    index += len + 1;
-    
-    strcpy( smsg + index, "rakesh.harsh@gmail.com" );
-    index += strlen( "rakesh.harsh@gmail.com" ) + 1;	
-    
-     // adding recipient
-    //len = strlen(connect_data->msg_data->recipient );
-    //strcpy( smsg + index, connect_data->msg_data->recipient );
-    //index += len + 1;
-    
-    smsg[index++] = '\0';
-    
-    // adding message part
-     
-    len = strlen(connect_data->msg_data->message );
-    strcpy( smsg + index, connect_data->msg_data->message );
-    index += len + 1;
-        
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EDelete_Contact_Request);
-   
-    
-
-    //EDelete_Contact_Request message end--------------------------------------- 
-    
-    //--------------Recieve message-----------------------------------
-   /* do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EText_Message_Receive);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EText_Message_Receive);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    } */   //------------------------Recieve message end---------------------
-  
-   //-------------update presence with available---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability = "available";
-    memcpy( smsg + index, availability, strlen( availability ) );
-    index += strlen( availability ); 
-    
-    smsg[index++]='\0';
-    
-    //updating status text
-     char *statustext = "i m busy";
-     memcpy( smsg + index, statustext, strlen( statustext ) );
-     index += strlen( statustext ); 
-    
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-//  ------------------------------------------------------------------
-
-     //-------------update presence with available---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-     char *availability1 = "dnd";
-    memcpy( smsg + index, availability1, strlen( availability1 ) );
-    index += strlen( availability1 ); 
-    
-    smsg[index++]='\0';
-    
-    //updating status text
-      char *statustext1 = "i m busy";
-     memcpy( smsg + index, statustext1, strlen( statustext1 ) );
-     index += strlen( statustext1 ); 
-    
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-//  ------------------------------------------------------------------
-
- //-------------update presence with available---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability2 = "away";
-    memcpy( smsg + index, availability2, strlen( availability2 ) );
-    index += strlen( availability2 ); 
-    
-    smsg[index++]='\0';
-    
-    //updating status text
-     char *statustext2 = "i m busy";
-     memcpy( smsg + index, statustext2, strlen( statustext2 ) );
-     index += strlen( statustext2 ); 
-    
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-//  ------------------------------------------------------------------
-
-   //----------------------------presence negative case------------------
-   
-   memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability with blank 
-    smsg[index++]='\0';
-    smsg[index++]='\0';
-    //smsg[index++]='\0';
-    
-    //updating status text
-    char *statustext4 = "i m not on desk";
-    memcpy( smsg + index, statustext4, strlen( statustext4 ) );
-    index += strlen( statustext4 );  
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->error_type > 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-   
-  //-------------------------1 end 
-  
-  // update 2 negative
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability4 = "available";
-    memcpy( smsg + index, availability, strlen( availability4 ) );
-    index += strlen( availability4 ); 
-      
-       
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //----
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    	}
-
- // -----------------------------------------------------------------------------
-// Cisolationserver::UpdatePresenceWithAway
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::UpdatePresenceWithAway( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	//fetch end
-	
-	 //-------------update presence---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability = "away";
-    memcpy( smsg + index, availability, strlen( availability ) );
-    index += strlen( availability ); 
-    
-    smsg[index++]='\0';
-    
-    //updating status text
-     char *statustext = "i m busy";
-     memcpy( smsg + index, statustext, strlen( statustext ) );
-     index += strlen( statustext ); 
-    
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	 result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-  // -----------------------------------------------------------------------------
-// Cisolationserver::UpdatePresenceWithAway
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::UpdatePresenceWithAvailable( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	//fetch end
-	
-	 //-------------update presence---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability = "available";
-    memcpy( smsg + index, availability, strlen( availability ) );
-    index += strlen( availability ); 
-    smsg[index++]='\0';
-    
-    //updating status text
-    char *statustext = "there is difference between thought and execution";
-    memcpy( smsg + index, statustext, strlen( statustext ) );
-    index += strlen( statustext ); 
-    
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::UpdatePresenceWithDnd
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::UpdatePresenceWithDnd( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-     //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	//fetch end
-	
-	 //-------------update presence---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability = "dnd";
-    memcpy( smsg + index, availability, strlen( availability ) );
-    index += strlen( availability ); 
-    smsg[index++]='\0';
-    
-    //updating status text
-    char *statustext = "i m busy";
-    memcpy( smsg + index, statustext, strlen( statustext ) );
-    index += strlen( statustext ); 
-    
-       
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::UpdatePresenceWithDnd
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::UpdatePresenceMultipleTimeInSameSession( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	//fetch end
-	
-	 //-------------update presence---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability = "dnd";
-    memcpy( smsg + index, availability, strlen( availability ) );
-    index += strlen( availability ); 
-    smsg[index++]='\0';
-    
-   //updating status text
-    char *statustext = "i m busy";
-    memcpy( smsg + index, statustext, strlen( statustext ) );
-    index += strlen( statustext ); 
-    
-       
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    	 //-------------update presence 2nd time---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability1 = "away";
-    memcpy( smsg + index, availability1, strlen( availability1 ) );
-    index += strlen( availability1 ); 
-    smsg[index++]='\0';
-    
-   //updating status text
-    char *statustext1 = "i m not on desk";
-    memcpy( smsg + index, statustext1, strlen( statustext1 ) );
-    index += strlen( statustext1 ); 
-    
-       
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ELogout_Request;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-// -----------------------------------------------------------------------------
-// Cisolationserver::UpdatePresenceWithDnd
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::UpdateOnlyStatusText( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-	 //-------------update presence---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability with blank 
-    smsg[index++]='\0';
-    smsg[index++]='\0';
-    //smsg[index++]='\0';
-    
-    //updating status text
-    char *statustext = "i m not on desk";
-    memcpy( smsg + index, statustext, strlen( statustext ) );
-    index += strlen( statustext );  
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->error_type > 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
- // -----------------------------------------------------------------------------
-// Cisolationserver::UpdatePresenceWithAway
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::UpdateOnlyUserAvailability( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-	 //-------------update presence---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability = "available";
-    memcpy( smsg + index, availability, strlen( availability ) );
-    index += strlen( availability ); 
-      
-       
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::UpdatePresenceWithAway
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::UpdateOwnPresenceWithBlankData( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-	 //-------------update presence---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	   
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->error_type > 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-   // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-// -----------------------------------------------------------------------------
-// Cisolationserver::UpdatePresenceWithDnd
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::UpdateStatusTextWithSpecialCharacter( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-	 //-------------update presence---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability = "dnd";
-    memcpy( smsg + index, availability, strlen( availability ) );
-    index += strlen( availability ); 
-    smsg[index++]='\0';
-    
-    //updating status text
-    char *statustext = "hi i m_ fine here @@@@@ ********* &&&&&&&&&&&&";
-    memcpy( smsg + index, statustext, strlen( statustext ) );
-    index += strlen( statustext ); 
-    
-       
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::UpdatePresenceWithDnd
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::UpdateStatusTextWithMaxLen( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-	 //-------------update presence---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability = "dnd";
-    memcpy( smsg + index, availability, strlen( availability ) );
-    index += strlen( availability ); 
-    smsg[index++]='\0';
-    
-    //updating status text
-    char *statustext = "thesr is difference between thoughts and execution ";
-    memcpy( smsg + index, statustext, strlen( statustext ) );
-    index += strlen( statustext ); 
-    
-       
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::UpdatePresenceWithDnd
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::HandelingPresenceNotification( CStifItemParser& aItem )
-    {
-
-    /*	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver();    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	// Send Message to queueOne 
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	
-	 //-------------update presence---------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnPresence;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // updating availability
-    char *availability = "dnd";
-    memcpy( smsg + index, availability, strlen( availability ) );
-    index += strlen( availability ); 
-    smsg[index++]='\0';
-    
-    //updating status text
-    char *statustext = "i m busy";
-    memcpy( smsg + index, statustext, strlen( statustext ) );
-    index += strlen( statustext ); 
-    
-       
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EUpdateOwnPresence);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-   //  waiting for second change 
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-        //wait for message receive 
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    //  waiting for first change 
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-        //wait for message receive 
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
-     //  waiting for first change 
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-        //wait for message receive 
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
-    
-     //  waiting for first change 
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-        //wait for message receive 
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
-    
-     //  waiting for first change 
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-        //wait for message receive 
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	    goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value; */
-    return KErrNone;
-    }
-    
-    
-Cisolationserver::SearchKeyValue( CStifItemParser& aItem )
-	{
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    TInt return_value = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    goto return_code;
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-	const gchar* search_label = GetSearchLabelL(connect_data->server,connect_data->key_given_name);
-    // adding key
-    len = strlen(search_label);
-    strcpy( smsg + index, search_label );
-    index += len + 1;
-    
-
-    
-    // adding value
-     
-    len = strlen("santhosh" );
-    strcpy( smsg + index, "santhosh" );
-    index += len + 1;
-    
-
-    smsg[index++] = '\0';
-     
-    
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!= ESearch_State_Finished );
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }    
-     ///-------------------------------------------------------------
- 
-    
-    //search message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-
-    
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;	
-	}
-
-Cisolationserver::SearchKeyValueWithResult( CStifItemParser& aItem )
-	{
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-	TInt return_value = 0;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;	
-    	goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-	const gchar* search_label = GetSearchLabelL(connect_data->server,connect_data->key_given_name);
-    // adding key
-    len = strlen(search_label);
-    strcpy( smsg + index, search_label );
-    index += len + 1;	
-    
-    // adding value
-     
-    len = strlen("rakesh" );
-    strcpy( smsg + index, "rakesh" );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-     
-    
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!= ESearch_State_Finished );
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }    
-    
-    
-    
-    //search message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-
-    
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;	
-	}
-
-
-
-Cisolationserver::SearchKeyValueInvalidParam( CStifItemParser& aItem )
-	{
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-	TInt return_value = 0;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;	
-    	goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	const gchar* search_label = GetSearchLabelL(connect_data->server,connect_data->key_given_name);
-    // adding key
-    len = strlen(search_label);
-    strcpy( smsg + index, search_label );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!= ESearch );
-   
-     if ( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }    
-    
-    
-    
-    //search message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-     
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-
-	}
-
-
-Cisolationserver::SearchForLargeNoOfResult( CStifItemParser& aItem )
-	{
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-	TInt return_value = 0;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;	
-    	goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-   	const gchar* search_label = GetSearchLabelL(connect_data->server,connect_data->key_given_name);
-    // adding key
-    len = strlen(search_label);
-    strcpy( smsg + index, search_label );
-    index += len + 1;
-    
-
-    
-    // adding value
-     
-    len = strlen("a*" );
-    strcpy( smsg + index, "a*" );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-     
-    
-    
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!= ESearch_State_Finished );
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }    
-    
-    
-    
-    //search message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-
-    
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;	
-	}
-
-Cisolationserver::SearchKeyValueInvalidParam2( CStifItemParser& aItem )
-	{
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-	TInt return_value = 0;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;	
-    	goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!= ESearch );
-   
-     if ( msg_struct->response != 0 )
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }    
-    
-    
-    
-    //search message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-     
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-
-	}
-Cisolationserver::SearchKeyValueInvalidHashValues( CStifItemParser& aItem )
-	{
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-	TInt return_value = 0;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;	
-    	goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding key
-    len = strlen( "firstGname" );
-    strcpy( smsg + index, "firstGname" );
-    index += len + 1;
-        
-    // adding value
-    len = strlen("I" );
-    strcpy( smsg + index, "I" );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!= ESearch );
-   
-     if ( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }    
-    
-    
-    
-    //search message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-     
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    
-//killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-	}
-
-Cisolationserver::SearchKeyValueBlank( CStifItemParser& aItem )
-	{
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-	TInt return_value = 0;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;	
-    	goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding key
-    len = strlen( connect_data->key_jid );
-    strcpy( smsg + index, connect_data->key_jid );
-    index += len + 1;
-        
-    // adding value
-    len = strlen("" );
-    strcpy( smsg + index, "" );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!= ESearch );
-   
-   
-   if( msg_struct->error_type != INVALID_PARAMETERES )
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-     
-    
-    
-    //search message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-     
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    
-//killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-	}
-
-Cisolationserver::SearchKeyValueLargeString( CStifItemParser& aItem )
-	{
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-	TInt return_value = 0;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;	
-    	goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    const gchar* search_label = GetSearchLabelL(connect_data->server,connect_data->key_given_name);
-    // adding key
-    len = strlen(search_label);
-    strcpy( smsg + index, search_label );
-    index += len + 1;
-        
-    // adding value
-    len = strlen( "Gmail is a new kind of webmail built on \
-    the idea that email can be more intuitive efficient and useful" );
-    
-    strcpy( smsg + index, "Gmail is a new kind of webmail built on \
-    the idea that email can be more intuitive efficient and useful" );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!= ESearch_State_Finished );
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }    
-    
-    
-    
-    //search message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-     
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    
-//killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-	}
-
-Cisolationserver::SearchKeyValueSpecialChar( CStifItemParser& aItem )
-	{
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-	TInt return_value = 0;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;	
-    	goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    const gchar* search_label = GetSearchLabelL(connect_data->server,connect_data->key_given_name);
-    // adding key
-    len = strlen(search_label);
-    strcpy( smsg + index, search_label );
-    index += len + 1;
-        
-    // adding value
-    len = strlen("happy_123@chat.gizmoproject.com" );
-    strcpy( smsg + index, "happy_123@chat.gizmoproject.com" );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!= ESearch_State_Finished );
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }    
-    
-    
-    
-    //search message end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-     
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    
-//killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-	}
-
-    // -----------------------------------------------------------------------------
-// Cisolationserver::RejectAddRequestFromUser
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//RejectAddRequestFromUser
-TInt Cisolationserver::RejectAddRequestFromUser( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	//fetch end
-	// getting add notification from user
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    
-	do  {
-    	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	  //  memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ETrying_To_Add_Contact_Publish);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    char *userid = (char *)malloc(100);
-    len=0;
-    len+=sizeof(message_hdr_resp);
-    strcpy(userid,rmsg+len);
-    
-    
-    
-
-    // rejecting add request from user 
-    
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EReject_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	len=0;
-    len+=strlen(userid);
-	strcpy( smsg + index ,userid   );
-    index += len + 1;
-	
-	
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EReject_Contact_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	 result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-     // -----------------------------------------------------------------------------
-// Cisolationserver::AcceptAddRequestFromUser
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-Cisolationserver::SearchAndAddContact( CStifItemParser& aItem )
-	{
-	
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-	TInt return_value = 0;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;	
-    	goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    const gchar* search_label = GetSearchLabelL(connect_data->server,connect_data->key_given_name);
-    // adding key
-    len = strlen(search_label);
-    strcpy( smsg + index, search_label );
-    index += len + 1;
-        
-    // adding value
-    len = strlen("rakesh" );
-    strcpy( smsg + index, "rakesh" );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-    
-    gint temp = 0;
-    gchar* add_contact = NULL;
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  
-     	{
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    //To add contact only once for the first time
-	    if ( 0 == temp && ESearch == msg_struct->hdr_req.message_type )
-	    	{
-	        // length will point to the start of the contact to be added
-		    int length = 0;
-		    length += sizeof( message_hdr_resp );
-		    
-		    while ( 0 != strcmp( "jid", rmsg + length ) 
-		    	&& '\0' != *( rmsg + length + 1) )
-			    {
-			    length += strlen( rmsg + length ) + 1;
-			    gchar* add_contact = rmsg + length;
-			    }
-		    length += strlen( rmsg + length ) + 1;
-		    
-		    add_contact = strdup( rmsg + length );
-		    //add contact end---------------------------------------   	
-	   		temp++;
-	   	 }
-	    
-	    
-	 	} while (msg_struct->hdr_req.message_type!= ESearch_State_Finished );
-   
-     if ( msg_struct->response != 1 )
-    	{
-    	return_value = KErrGeneral;	
-    	goto return_code;
-   		}    
-   		
-    //search message end---------------------------------------
- 
-  //adding contact --------------------------------------------
-		   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAdd_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	// adding add contact
-    len = strlen( add_contact );
-    strcpy( smsg + index, add_contact );
-    index += len + 1;
-    smsg[index++]='\0';
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    
-		} while (msg_struct->hdr_req.message_type!=EAdd_Contact_Request);
-   
-     if ( msg_struct->response != 1 )
-    {
-    	return_value = KErrGeneral;
-		goto return_code;
-    }
- 
- 
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-     
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    
-//killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;		
-	}
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::AcceptAddRequestFromUser
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-Cisolationserver::SecondSearch( CStifItemParser& aItem )
-	{
-	
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-	TInt return_value = 0;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;	
-    	goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	const gchar* search_label = GetSearchLabelL(connect_data->server,connect_data->key_given_name);
-    // adding key
-    len = strlen(search_label);
-    strcpy( smsg + index, search_label );
-    index += len + 1;
-        
-    // adding value
-    len = strlen("sharath" );
-    strcpy( smsg + index, "sharath" );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-    
-    gint temp = 0;
-    gchar* add_contact = NULL;
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  
-     	{
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );		    
-	    
-	 	} while (msg_struct->hdr_req.message_type!= ESearch_State_Finished );
-   
-     if ( msg_struct->response != 1 )
-    	{
-    	return_value = KErrGeneral;	
-    	goto return_code;
-   		}    
-   		
-    //search message end---------------------------------------
- 
- 
-     //second search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-
-    
-    const gchar* search_label1 = GetSearchLabelL(connect_data->server,connect_data->key_middle_name);
-    // adding key
-    len = strlen(search_label1);
-    strcpy( smsg + index, search_label1 );
-    index += len + 1;
-        
-    // adding value
-    len = strlen("Jeppu" );
-    strcpy( smsg + index, "Jeppu" );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-    
-
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  
-     	{
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );		    
-	 	} while (msg_struct->hdr_req.message_type!= ESearch_State_Finished );
-   
-     if ( msg_struct->response != 1 )
-    	{
-    	return_value = KErrGeneral;	
-    	goto return_code;
-   		}    
-   	
-    //search message end---------------------------------------
- 
- 
- 
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-     
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    
-//killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;		
-	}
-
-
-TInt Cisolationserver::AcceptAddRequestFromUser( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	//fetch end
-	// getting add notification from user
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    
-	do  {
-    	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	  //  memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ETrying_To_Add_Contact_Publish);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    char *userid = (char *)malloc(100);
-    len=0;
-    len+=sizeof(message_hdr_resp);
-    strcpy(userid,rmsg+len);
-     // accepting add request from user 
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EReject_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	len=0;
-    len+=strlen(userid);
-	strcpy( smsg + index ,userid   );
-    index += len + 1;
-	
-	
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAccept_Contact_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	 result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
- 
-	  // -----------------------------------------------------------------------------
-// Cisolationserver::SendAcceptRequestWithoutReceivingAddrequest
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendAcceptRequestWithoutReceivingAddrequest( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    //Accepting Add request from  contact without ne add notification --------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EAccept_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	// adding add contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-    smsg[index++] = '\0';
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAccept_Contact_Request);
-   
-     if ( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-	  // -----------------------------------------------------------------------------
-// Cisolationserver::SendRejectRequestWithoutReceivingAddrequest
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendRejectRequestWithoutReceivingAddrequest( CStifItemParser& aItem )
-    {
-
-    	
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 0)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-   //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-    //Accepting Add request from  contact without ne add notification --------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EReject_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	// adding add contact
-    len = strlen(connect_data->contact );
-    strcpy( smsg + index, connect_data->contact );
-    index += len + 1;
-    smsg[index++] = '\0';
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EReject_Contact_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    //add contact end---------------------------------------
-    
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-
-	  // -----------------------------------------------------------------------------
-// Cisolationserver::SendAcceptRequestWithoutAnyUserID
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SendAcceptRequestWithoutAnyUserID( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	//fetch end
-	// getting add notification from user
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    
-	do  {
-    	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	  //  memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ETrying_To_Add_Contact_Publish);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    char *userid = (char *)malloc(100);
-    len=0;
-    len+=sizeof(message_hdr_resp);
-    strcpy(userid,rmsg+len);
-     // accepting add request from user 
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EReject_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	//no need to send user id with this message
-	//len=0;
-    //len+=strlen(userid);
-	//strcpy( smsg + index ,userid   );
-    //index += len + 1;
-	
-	
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EAccept_Contact_Request);
-   // need to check response
-    if ( msg_struct->response != 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	 result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-    // -----------------------------------------------------------------------------
-// Cisolationserver::SendRejectRequestWithoutAnyUserID
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//RejectAddRequestFromUser
-TInt Cisolationserver::SendRejectRequestWithoutAnyUserID( CStifItemParser& aItem )
-    {
-
-    	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    
-		
-	int timeout = 100;
-	int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;	
-    }
-    
- 
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
-	//fetch end
-	// getting add notification from user
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    
-	do  {
-    	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	  //  memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ETrying_To_Add_Contact_Publish);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    char *userid = (char *)malloc(100);
-    len=0;
-    len+=sizeof(message_hdr_resp);
-    strcpy(userid,rmsg+len);
-    
-    
-    
-
-    // rejecting add request from user 
-    
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EReject_Contact_Request;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	//len=0;
-    //len+=strlen(userid);
-	//strcpy( smsg + index ,userid   );
-    //index += len + 1;
-	
-	
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=EReject_Contact_Request);
-   
-    if ( msg_struct->response != 0)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	 result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;
-	goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-    // -----------------------------------------------------------------------------
-// Cisolationserver::Login with correct data
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::LogoutWhileUserIsNotLoggedIn( CStifItemParser& aItem )
-    {
-  	
-    ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-
-	FILE *fp;	
-	int timeout = 100;
-	int nBytes;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-        	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;
-		goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ELogin_Request;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    //appending password
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    //appending server name
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    // appending IAP id
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    #endif
-     //running isoserver   
-    run_isoserver(); 
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    
-	//fetch end
-    
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	 result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-    if ( msg_struct->response != 1)
-    {
-    return_value = KErrGeneral;
-	goto return_code;
-    }
-    return_value = KErrNone;
-	goto return_code;
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-
-    }
-
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::GetSearchLabelForYukonL
-// -----------------------------------------------------------------------------
-const gchar* Cisolationserver::GetSearchLabelForYukonL(gchar *search_key)
-{
-if(strcmp(search_key,"user") == 0)
-	{
-	gchar* label= "User";
-	return label;	
-	}
-else if(strcmp(search_key,"fn") == 0)
-	{
-	gchar* label= "Full Name";
-	return label;	
-	}	
-else if(strcmp(search_key,"first") == 0)
-	{
-	gchar* label= "Name";
-	return label;	
-	}	
-else if(strcmp(search_key,"middle") == 0)
-	{
-	gchar* label= "Middle Name";
-	return label;	
-	}		
-else if(strcmp(search_key,"last") == 0)
-	{
-	gchar* label= "Family Name";
-	return label;	
-	}
-else if(strcmp(search_key,"nick") == 0)
-	{
-	gchar* label= "Nickname";
-	return label;	
-	}
-else if(strcmp(search_key,"email") == 0)
-	{
-	gchar* label= "Email";
-	return label;	
-	}	
-else if(strcmp(search_key,"bday") == 0)
-	{
-	gchar* label= "Birthday";
-	return label;	
-	}	
-else if(strcmp(search_key,"ctry") == 0)
-	{
-	gchar* label= "Country";
-	return label;	
-	}		
-else if(strcmp(search_key,"orgname") == 0)
-	{
-	gchar* label= "Organization Name";
-	return label;	
-	}
-else if(strcmp(search_key,"locality") == 0)
-	{
-	gchar* label= "City";
-	return label;	
-	}
-else if(strcmp(search_key,"orgunit") == 0)
-	{
-	gchar* label= "Organization Unit";
-	return label;	
-	}			
-}
-
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::GetSearchLabelForGizmoL
-// -----------------------------------------------------------------------------
-const gchar* Cisolationserver::GetSearchLabelForGizmoL(gchar *search_key)
-{
-if(strcmp(search_key,"xmpp_user") == 0)
-	{
-	gchar* label= "Account Name";
-	return label;	
-	}
-else if(strcmp(search_key,"email_address") == 0)
-	{
-	gchar* label= "Email Address";
-	return label;	
-	}	
-else if(strcmp(search_key,"first_name") == 0)
-	{
-	gchar* label= "First Name";
-	return label;	
-	}	
-else if(strcmp(search_key,"last_name") == 0)
-	{
-	gchar* label= "Family Name";
-	return label;	
-	}
-else if(strcmp(search_key,"country") == 0)
-	{
-	gchar* label= "Country";
-	return label;	
-	}		
-else if(strcmp(search_key,"state") == 0)
-	{
-	gchar* label= "State/Province";
-	return label;	
-	}
-else if(strcmp(search_key,"city") == 0)
-	{
-	gchar* label= "City";
-	return label;	
-	}
-else if(strcmp(search_key,"max_results") == 0)
-	{
-	gchar* label= "Maximum # of Results";
-	return label;	
-	}			
-}
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::GetSearchLabelL
-// -----------------------------------------------------------------------------
-const gchar* Cisolationserver::GetSearchLabelL(gchar* aService,gchar* aSearchKey)
-{
-if(strcmp(aService,"chat.gizmoproject.com") == 0)
-	{
-	GetSearchLabelForGizmoL(aSearchKey);	
-	}
-else if(strcmp(aService,"chat.ovi.com") == 0 )
-	{
-	GetSearchLabelForYukonL(aSearchKey);	
-	}
-}
-	
-  
-// -----------------------------------------------------------------------------
-// Cisolationserver::?member_function
-// ?implementation_description
-// (other items were commented in a header).
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::AcceptAddRequestFromUser
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-Cisolationserver::GetKeysAndSearch( CStifItemParser& aItem )
-	{
-	
-	ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-		
-	int timeout = 200;
-	int nBytes;
-	TInt return_value = 0;
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-      
-    	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return_value = KErrGeneral;	
-    	goto return_code;
-		}
-	//request formation	
-	memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	//message header use
-	msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '0';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    run_isoserver();
-    
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-		
-	
-	/* Send Message to queueOne */
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;	
-    	goto return_code;	
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-	memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-	memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-	
-	if( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-    
-    
-    // login end
-    //fetch req..
-    for (int i= 0 ;i<3 ;i++)
-    {
-        
-    fp = fopen("c:\\fetch_contact.txt","a");
-	do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-		fwrite(rmsg,1,status,fp);
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-		          ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-	fclose(fp);	
-	
-    }
-
-	//fetch end
- 
- 
- 
-    // get search keys test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ESearch_Get_Keys;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    
-		} while (msg_struct->hdr_req.message_type!= ESearch_Get_Keys );
-   
-     if ( msg_struct->response != 1)
-    	{
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    	}
-    	
-    int length = sizeof( message_hdr_resp );
-    char* search_value = NULL;
-    do  {
-		search_value = strdup ( rmsg + length );
-	    	
-		if ( !search_value )
-			{
-			return_value = KErrGeneral;	
-	    	goto return_code;
-			}  
-		length += strlen( search_value ) + 1;
-	    } while ( ( 0 != strcmp( "First Name", search_value ) )
-		    && length < status &&( free ( search_value ), search_value = NULL, 1 ) );
-    
- 
- 
-     
-    //search messge--------------------------------------------
-   
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = ESearch;	
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-	index += sizeof( message_hdr_req );
-	
-	
-    // adding key
-    len = strlen( search_value );
-    strcpy( smsg + index, search_value );
-    index += len + 1;
-        
-    // adding value
-    len = strlen( "santhosh" );
-    strcpy( smsg + index, "santhosh" );
-    index += len + 1;
-    
-    smsg[index++] = '\0';
-    
-    gint temp = 0;
-    gchar* add_contact = NULL;
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  
-     	{
-		memset( rmsg, '\0', MAX_MSG_SIZE );
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );		    
-	    
-	 	} while (msg_struct->hdr_req.message_type!= ESearch_State_Finished );
-   
-     if ( msg_struct->response != 1 )
-    	{
-    	return_value = KErrGeneral;	
-    	goto return_code;
-   		}    
-   		
-    //search message end---------------------------------------
- 
- 
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-	
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-		status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-		memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );	
-	    memset( rmsg, '\0', MAX_MSG_SIZE );
-		} while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-    	return_value = KErrGeneral;	
-    	goto return_code;
-    }
-     
-   // result = MsgQDelete(REQUEST_QUEUE, &err);
-   // result = MsgQDelete(RESPONSE_QUEUE, &err);
-    return_value = KErrNone;	
-    goto return_code;
-    
-//killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-	memset( rmsg, '\0', MAX_MSG_SIZE );
-	memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-	result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;		
-	}
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::set avatar
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::SetOwnAvatar( CStifItemParser& aItem )
-    {
-
-        
-   ConnectData  *connect_data = NULL;
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    FILE *fp;
-        
-    int timeout = 200;
-    int nBytes;
-
-    int result = 0;
-    int err = 0;
-    int status = 0;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-            // Read data from the CFG file
-    if ( read_data ( connect_data, aItem ) != RC_OK )
-        {
-        iLog->Log ( _L ( "read_data failed" ) );
-        free_data ( connect_data );
-        return_value = KErrGeneral;
-        goto return_code;
-        }
-    //request formation 
-    memset( smsg, '\0', MAX_MSG_SIZE );
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-    
-    //message header use
-    msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogin_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    
-    int len = strlen(connect_data->username);
-    strcpy( smsg + index, connect_data->username );
-    index += len + 1;
-    
-    //appending password
-    
-    len = strlen(connect_data->password );
-    strcpy( smsg + index, connect_data->password );
-    index += len + 1;
-    
-    //appending server name
-    
-    len = strlen(connect_data->server );
-    strcpy( smsg + index, connect_data->server );
-    index += len + 1;
-    
-    //appending resource
-    len = strlen(connect_data->resource );
-    strcpy( smsg + index, connect_data->resource );
-    index += len + 1;
-    
-    //appending ssl
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending server port
-    len = strlen(connect_data->port );
-    strcpy( smsg + index, connect_data->port );
-    index += len + 1;
-    
-    // appending IAP id
-    
-    smsg[index++]= '1';
-    smsg[index++]= '\0';
-    
-    //appending connmgr_bus
-    len = strlen(connect_data->connmgr_bus );
-    strcpy( smsg + index, connect_data->connmgr_bus );
-    index += len + 1;
-    
-    //appending connmgr_path
-    len = strlen(connect_data->connmgr_path );
-    strcpy( smsg + index, connect_data->connmgr_path );
-    index += len + 1;
-    
-    //appending protocol
-    len = strlen(connect_data->protocol );
-    strcpy( smsg + index, connect_data->protocol );
-    index += len + 1;
-    
-    #ifdef __WINSCW__
-    //proxy server
-    len = strlen(connect_data->proxy_data->proxy_server );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-    index += len + 1;
-    
-    //proxy port
-    len = strlen(connect_data->proxy_data->proxy_port );
-    strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-    index += len + 1;
-    
-    #endif
-    
-    //running isoserver   
-    run_isoserver(); 
-    
-        
-    //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    //create message queue for response request
-    result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-        
-    
-    /* Send Message to queueOne */
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-    
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-    
-    if (status < 0)
-    {
-    return_value = KErrGeneral;
-    goto return_code;   
-    }
-    msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-    memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-    memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-    
-    if( msg_struct->response != 1)
-    {
-        return_value = KErrGeneral;
-    goto return_code;
-    }
-    
-    
-    // login end
-
-    //fetch req..
-       for (int i= 0 ;i<3 ;i++)
-       {
-           
-       fp = fopen("c:\\fetch_contact.txt","a");
-       do  {
-           status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-           memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) ); 
-           fwrite(rmsg,1,status,fp);
-           memset( rmsg, '\0', MAX_MSG_SIZE );
-           } while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-                     ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-                     ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-       fclose(fp); 
-       
-       }
-
-       //fetch end
-    //set avatar
-    TPtrC               filename;
-    TPtrC               mimetype;
-    gchar        *file_name;
-    gchar        *mime_type;
-    gchar        *filecontent; 
-    int n;
-    TBuf8<KMaxFileName> temp;
-   
-   index = 0;
-    index += sizeof( message_hdr_req );
-    // setting avatar
-    FILE *file;
-    char *buffer;
-    unsigned long fileLen;
-
-    //Open file
-    file = fopen(connect_data->image_file_name, "rb");
-    if (!file)
-        {
-        fprintf(stderr, "Unable to open file %s", file_name);
-        return;
-        }
-
-    //Get file length
-    fseek(file, 0, SEEK_END);
-    fileLen=ftell(file);
-    fseek(file, 0, SEEK_SET);
-
-   
-    //strcpy(mime_type,"image\jpeg");
-    len = fileLen + strlen(connect_data->mimetype) + 1;
-    buffer=(char *)malloc(len);
-    if (!buffer)
-        {
-        fprintf(stderr, "Memory error!");
-        fclose(file);
-        return;
-        }
-    memset( buffer, '\0', len );
-	memcpy( buffer, connect_data->mimetype, strlen(connect_data->mimetype) );
-    //Read file contents into buffer
-    
-    fread(buffer + strlen(connect_data->mimetype) + 1, fileLen, 1, file);
-    fclose(file);
-
-    //Do what ever with buffer
-    memset( smsg, '\0', MAX_MSG_SIZE );
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-    index=0;
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EUpdateOwnAvtar;    
-    // memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    /* Send Message to queueOne */
-    TInt header_size = sizeof( message_hdr_req );
-    //crashes for perticuler image.Need to fix
-    char* one_pdu = ( char* ) malloc( ONE_K_OPENC_FIX );
-    //run a loop for rest of the data and keep track of the case of nBytes being 
-    //multiple of 1020 - sizeof(msghdr) and it being not
-    //Amount of payload that can be sent
-    TInt single_read = ONE_K_OPENC_FIX - header_size;
-    //Data recieved from PublishOwnPresenceL has message header at begining
-    TInt actual_data = fileLen;
-    //No of packets needed to send the image data
-    TInt total_packets = (TInt)ceil( ( double ) ( actual_data ) / single_read );
-    //This offset moves thru the msg pointer
-    TInt navigate_offset = 0;
-    for ( TInt i = 0; i < total_packets; i++ )
-        {
-        //till the last packet size_tobe_sent will be ONE_K_OPENC_FIX
-        //last packet data is actual_data % single_read if less than single_read else ONE_K_OPENC_FIX
-        TInt size_tobe_sent = ( i < total_packets - 1 ) ? ONE_K_OPENC_FIX : 
-        ( actual_data % single_read ? 
-            actual_data % single_read  + header_size : ONE_K_OPENC_FIX );
-
-        if ( i < total_packets - 1 )
-            {
-            msgHdr->continue_flag = 1;
-            }
-        else 
-            {
-            msgHdr->continue_flag = 0;
-            }
-
-        //memcpy ( msg + header_size , msg + navigate_offset, size_tobe_sent - header_size );
-        memcpy( one_pdu , msgHdr, header_size );
-        memcpy( one_pdu + header_size, buffer + navigate_offset, size_tobe_sent - header_size );
-        result = MsgQSend ( REQUEST_QUEUE, one_pdu, size_tobe_sent, 
-                MSG_PRI_NORMAL, timeout, &err );
-        User::LeaveIfError ( result );
-        navigate_offset += single_read;
-        }
-    free(one_pdu);
-    free(buffer);
-    do  {
-    status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-    memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) ); 
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-    } while (msg_struct->hdr_req.message_type!=EUpdateOwnAvtar);
-
-    if ( msg_struct->response != 1)
-        {
-        return_value = KErrGeneral;
-        goto return_code;
-        }
-
-    //set avatar end     
-    // logout test code from server
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-    
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    
-    msgHdr->message_type = ELogout_Request;
- 
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-
-    
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     do  {
-        status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-        memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) ); 
-        memset( rmsg, '\0', MAX_MSG_SIZE );
-        } while (msg_struct->hdr_req.message_type!=ELogout_Request);
-   
-     if ( msg_struct->response != 1)
-    {
-        return_value = KErrGeneral;
-    goto return_code;
-    }
-    //killing isoserver
-    return_code:
-    index=0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-    memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-    msgHdr->message_type = EKill_Process;
-    memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-    index += sizeof( message_hdr_req );
-    result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-    free( msg_struct );
-    return return_value;
-    }
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::clear avatar
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::ClearOwnAvatar( CStifItemParser& aItem )
-    {
-
-    
-    ConnectData  *connect_data = NULL;
-     char smsg[MAX_MSG_SIZE];
-     char rmsg[MAX_MSG_SIZE];
-     int index=0;
-     FILE *fp;
-         
-     int timeout = 200;
-     int nBytes;
-
-     int result = 0;
-     int err = 0;
-     int status = 0;
-     message_hdr_req *msgHdr = NULL;  
-     message_hdr_resp* msg_struct = NULL;
-     TInt return_value = 0;
-             // Read data from the CFG file
-     if ( read_data ( connect_data, aItem ) != RC_OK )
-         {
-         iLog->Log ( _L ( "read_data failed" ) );
-         free_data ( connect_data );
-         return_value = KErrGeneral;
-         goto return_code;
-         }
-     //request formation 
-     memset( smsg, '\0', MAX_MSG_SIZE );
-     memset( rmsg, '\0', MAX_MSG_SIZE );
-     
-     //message header use
-     msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-     memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-     
-     msgHdr->message_type = ELogin_Request;
-  
-     memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-     index += sizeof( message_hdr_req );
-     
-     int len = strlen(connect_data->username);
-     strcpy( smsg + index, connect_data->username );
-     index += len + 1;
-     
-     //appending password
-     
-     len = strlen(connect_data->password );
-     strcpy( smsg + index, connect_data->password );
-     index += len + 1;
-     
-     //appending server name
-     
-     len = strlen(connect_data->server );
-     strcpy( smsg + index, connect_data->server );
-     index += len + 1;
-     
-     //appending resource
-     len = strlen(connect_data->resource );
-     strcpy( smsg + index, connect_data->resource );
-     index += len + 1;
-     
-     //appending ssl
-     smsg[index++]= '1';
-     smsg[index++]= '\0';
-     
-     //appending server port
-     len = strlen(connect_data->port );
-     strcpy( smsg + index, connect_data->port );
-     index += len + 1;
-     
-     // appending IAP id
-     
-     smsg[index++]= '1';
-     smsg[index++]= '\0';
-     
-     //appending connmgr_bus
-     len = strlen(connect_data->connmgr_bus );
-     strcpy( smsg + index, connect_data->connmgr_bus );
-     index += len + 1;
-     
-     //appending connmgr_path
-     len = strlen(connect_data->connmgr_path );
-     strcpy( smsg + index, connect_data->connmgr_path );
-     index += len + 1;
-     
-     //appending protocol
-     len = strlen(connect_data->protocol );
-     strcpy( smsg + index, connect_data->protocol );
-     index += len + 1;
-     
-     #ifdef __WINSCW__
-     //proxy server
-     len = strlen(connect_data->proxy_data->proxy_server );
-     strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-     index += len + 1;
-     
-     //proxy port
-     len = strlen(connect_data->proxy_data->proxy_port );
-     strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-     index += len + 1;
-     
-     #endif
-     
-     //running isoserver   
-     run_isoserver(); 
-     
-         
-     //create message queue for send request
-     result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-     //create message queue for response request
-     result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-         
-     
-     /* Send Message to queueOne */
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     
-     status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-     
-     if (status < 0)
-     {
-     return_value = KErrGeneral;
-     goto return_code;   
-     }
-     msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-     memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-     memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-     
-     if( msg_struct->response != 1)
-     {
-         return_value = KErrGeneral;
-     goto return_code;
-     }
-     
-     
-     // login end
-
-     //fetch req..
-        for (int i= 0 ;i<3 ;i++)
-        {
-            
-        fp = fopen("c:\\fetch_contact.txt","a");
-        do  {
-            status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-            memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) ); 
-            fwrite(rmsg,1,status,fp);
-            memset( rmsg, '\0', MAX_MSG_SIZE );
-            } while (!((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-                      ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-                      ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts))&& 0 == msg_struct->continue_flag);
-        fclose(fp); 
-        
-        }
-
-        //fetch end
-        
-        //clear avatar
-        memset( smsg, '\0', MAX_MSG_SIZE );
-        memset( rmsg, '\0', MAX_MSG_SIZE );
-        index=0;
-        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-        msgHdr->message_type = EClearOwnAvatar;    
-        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-        index += sizeof( message_hdr_req );
-        smsg[index++]='\0';
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-         do  {
-            status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-            memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) ); 
-            memset( rmsg, '\0', MAX_MSG_SIZE );
-            } while (msg_struct->hdr_req.message_type!=EClearOwnAvatar);
-       
-         if ( msg_struct->response != 1)
-        {
-            return_value = KErrGeneral;
-        goto return_code;
-        }
-             //clear avatar end     
-     // logout test code from server
-     index=0;
-     memset( smsg, '\0', MAX_MSG_SIZE );
-     memset( rmsg, '\0', MAX_MSG_SIZE );
-     
-     memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-     
-     msgHdr->message_type = ELogout_Request;
-  
-     memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-     index += sizeof( message_hdr_req );
-
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-      do  {
-         status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-         memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) ); 
-         memset( rmsg, '\0', MAX_MSG_SIZE );
-         } while (msg_struct->hdr_req.message_type!=ELogout_Request);
-    
-      if ( msg_struct->response != 1)
-     {
-         return_value = KErrGeneral;
-     goto return_code;
-     }
-     //killing isoserver
-     return_code:
-     index=0;
-     memset( smsg, '\0', MAX_MSG_SIZE );
-     memset( rmsg, '\0', MAX_MSG_SIZE );
-     memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-     msgHdr->message_type = EKill_Process;
-     memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-     index += sizeof( message_hdr_req );
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-     free( msg_struct );
-     return return_value;
-     }  
-
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::clear avatar
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cisolationserver::FetchCachedContacts( CStifItemParser& aItem )
-    {
-
-    
-    ConnectData  *connect_data = NULL;
-     char smsg[MAX_MSG_SIZE];
-     char rmsg[MAX_MSG_SIZE];
-     int index=0;
-     FILE *fp;
-         
-     int timeout = 200;
-     int nBytes;
-
-     int result = 0;
-     int err = 0;
-     int status = 0;
-     message_hdr_req *msgHdr = NULL;  
-     message_hdr_resp* msg_struct = NULL;
-     TInt return_value = 0;
-             // Read data from the CFG file
-     if ( read_data ( connect_data, aItem ) != RC_OK )
-         {
-         iLog->Log ( _L ( "read_data failed" ) );
-         free_data ( connect_data );
-         return_value = KErrGeneral;
-         goto return_code;
-         }
-     //request formation 
-     memset( smsg, '\0', MAX_MSG_SIZE );
-     memset( rmsg, '\0', MAX_MSG_SIZE );
-     
-     //message header use
-     msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-     memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-     
-     msgHdr->message_type = ELogin_Request;
-  
-     memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-     index += sizeof( message_hdr_req );
-     
-     int len = strlen(connect_data->username);
-     strcpy( smsg + index, connect_data->username );
-     index += len + 1;
-     
-     //appending password
-     
-     len = strlen(connect_data->password );
-     strcpy( smsg + index, connect_data->password );
-     index += len + 1;
-     
-     //appending server name
-     
-     len = strlen(connect_data->server );
-     strcpy( smsg + index, connect_data->server );
-     index += len + 1;
-     
-     //appending resource
-     len = strlen(connect_data->resource );
-     strcpy( smsg + index, connect_data->resource );
-     index += len + 1;
-     
-     //appending ssl
-     smsg[index++]= '1';
-     smsg[index++]= '\0';
-     
-     //appending server port
-     len = strlen(connect_data->port );
-     strcpy( smsg + index, connect_data->port );
-     index += len + 1;
-     
-     // appending IAP id
-     
-     smsg[index++]= '1';
-     smsg[index++]= '\0';
-     
-     //appending connmgr_bus
-     len = strlen(connect_data->connmgr_bus );
-     strcpy( smsg + index, connect_data->connmgr_bus );
-     index += len + 1;
-     
-     //appending connmgr_path
-     len = strlen(connect_data->connmgr_path );
-     strcpy( smsg + index, connect_data->connmgr_path );
-     index += len + 1;
-     
-     //appending protocol
-     len = strlen(connect_data->protocol );
-     strcpy( smsg + index, connect_data->protocol );
-     index += len + 1;
-     
-     #ifdef __WINSCW__
-     //proxy server
-     len = strlen(connect_data->proxy_data->proxy_server );
-     strcpy( smsg + index, connect_data->proxy_data->proxy_server );
-     index += len + 1;
-     
-     //proxy port
-     len = strlen(connect_data->proxy_data->proxy_port );
-     strcpy( smsg + index, connect_data->proxy_data->proxy_port );
-     index += len + 1;
-     
-     #endif
-     
-     //running isoserver   
-     run_isoserver(); 
-     
-         
-     //create message queue for send request
-     result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-     //create message queue for response request
-     result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-         
-     
-     /* Send Message to queueOne */
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-     
-     status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-     
-     if (status < 0)
-     {
-     return_value = KErrGeneral;
-     goto return_code;   
-     }
-     msg_struct = ( message_hdr_resp* ) malloc( sizeof( message_hdr_resp ) );
-     memset( msg_struct, '\0', sizeof( message_hdr_resp ) );
-     memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) );
-     
-     if( msg_struct->response != 1)
-     {
-         return_value = KErrGeneral;
-     goto return_code;
-     }
-     
-     
-     // login end
-
-     //fetch req..
-     TInt count = 0;
-            
-        fp = fopen("c:\\fetch_contact.txt","a");
-        do  {
-            status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-            memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) ); 
-            fwrite(rmsg,1,status,fp);
-            memset( rmsg, '\0', MAX_MSG_SIZE );
-            
-            if ( (msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-                                  ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-                                  ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts) && 0 == msg_struct->continue_flag )
-                        {
-                        count++;
-                        }
-            
-            
-            } while (count < 3 );
-        fclose(fp); 
-
-        
-        
-
-        //fetch end
-        FILE* fop = NULL;
-        //clear avatar
-        memset( smsg, '\0', MAX_MSG_SIZE );
-        memset( rmsg, '\0', MAX_MSG_SIZE );
-        index=0;
-        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-        msgHdr->message_type = EFetchCachedContacts;    
-        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-        index += sizeof( message_hdr_req );
-        smsg[index++]='\0';
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-        fop = fopen("c:\\santhosh.txt","a");
-        count = 0;
-        do  {
-            status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err); 
-            memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) ); 
-            fwrite(rmsg,1,status,fop);
-            memset( rmsg, '\0', MAX_MSG_SIZE );
-            
-            if ( ((msg_struct->hdr_req.message_type==ECurrent_Member_Contacts) 
-                                  ||(msg_struct->hdr_req.message_type==ELocal_Pending_Contacts) 
-                                  ||(msg_struct->hdr_req.message_type==ERemote_Pending_Contacts)) && 0 == msg_struct->continue_flag )
-                        {
-                        count++;
-                        }
-            
-            
-            } while (count < 3 );
-        fclose(fop); 
-
-     //clear avatar end     
-     // logout test code from server
-     index=0;
-     memset( smsg, '\0', MAX_MSG_SIZE );
-     memset( rmsg, '\0', MAX_MSG_SIZE );
-     
-     memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-     
-     msgHdr->message_type = ELogout_Request;
-  
-     memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-     index += sizeof( message_hdr_req );
-
-     
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-      do  {
-         status = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, 2000, &err);
-         memcpy( msg_struct, rmsg, sizeof( message_hdr_resp ) ); 
-         memset( rmsg, '\0', MAX_MSG_SIZE );
-         } while (msg_struct->hdr_req.message_type!=ELogout_Request);
-    
-      if ( msg_struct->response != 1)
-     {
-         return_value = KErrGeneral;
-     goto return_code;
-     }
-     //killing isoserver
-     return_code:
-     index=0;
-     memset( smsg, '\0', MAX_MSG_SIZE );
-     memset( rmsg, '\0', MAX_MSG_SIZE );
-     memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-     msgHdr->message_type = EKill_Process;
-     memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-     index += sizeof( message_hdr_req );
-     result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-     free( msg_struct );
-     return return_value;
-     }  
-
-// -----------------------------------------------------------------------------
-// Cisolationserver::?member_function
-// ?implementation_description
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-/*
-TInt Cisolationserver::?member_function(
-   CItemParser& aItem )
-   {
-
-   ?code
-
-   }
-*/
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-// None
-
-//  [End of File] - Do not remove
--- a/layers.sysdef.xml	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
-  <!ENTITY layer_real_source_path "sf/mw/opensrv" >
-]>
-
-<SystemDefinition name="opensrv" schema="1.4.0">
-  <systemModel>
-    <layer name="mw_layer">
-      <module name="opensrv">
-        <unit unitID="MeCoDo.opensrv" mrp="" bldFile="&layer_real_source_path;/group" name="opensrv" />
-      </module>
-    </layer>
-  </systemModel>
-</SystemDefinition>
\ No newline at end of file
--- a/libtelepathy/bwins/libtelepathyu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-EXPORTS
-	tp_chan_get_interface @ 1 NONAME
-	tp_chan_new @ 2 NONAME
-	tp_conn_get_interface @ 3 NONAME
-	tp_conn_get_type @ 4 NONAME
-	tp_conn_new_channel @ 5 NONAME
-	tp_connmgr_get_parameters @ 6 NONAME
-	tp_connmgr_list_protocols @ 7 NONAME
-	tp_connmgr_new @ 8 NONAME
-	tp_connmgr_new_connection @ 9 NONAME
-	tp_get_chan_contactsearch_interface @ 10 NONAME
-	tp_get_chan_group_interface @ 11 NONAME
-	tp_get_chan_text_interface @ 12 NONAME
-	tp_get_conn_avatar_interface @ 13 NONAME
-	tp_get_conn_presence_interface @ 14 NONAME
-	tp_get_props_interface @ 15 NONAME
-	tp_props_iface_get_type @ 16 NONAME
-
--- a/libtelepathy/eabi/libtelepathyu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-EXPORTS
-	tp_chan_get_interface @ 1 NONAME
-	tp_chan_new @ 2 NONAME
-	tp_conn_get_interface @ 3 NONAME
-	tp_conn_get_type @ 4 NONAME
-	tp_conn_new_channel @ 5 NONAME
-	tp_connmgr_get_parameters @ 6 NONAME
-	tp_connmgr_list_protocols @ 7 NONAME
-	tp_connmgr_new @ 8 NONAME
-	tp_connmgr_new_connection @ 9 NONAME
-	tp_get_chan_contactsearch_interface @ 10 NONAME
-	tp_get_chan_group_interface @ 11 NONAME
-	tp_get_chan_text_interface @ 12 NONAME
-	tp_get_conn_avatar_interface @ 13 NONAME
-	tp_get_conn_presence_interface @ 14 NONAME
-	tp_get_props_interface @ 15 NONAME
-	tp_props_iface_get_type @ 16 NONAME
-
--- a/libtelepathy/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/* bld.inf
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-// Project configuration file for dbus
-
-// Project platforms
-PRJ_PLATFORMS
-WINSCW ARMV5
-
-#include <platform_paths.hrh>
-
-// Project exports
-PRJ_EXPORTS
-../rom/libtelepathy.iby													 CORE_MW_LAYER_IBY_EXPORT_PATH(libtelepathy.iby)
-
-
-
-
-// MMP files for project components
-PRJ_MMPFILES
-libtelepathy.mmp
-
-PRJ_TESTMMPFILES
--- a/libtelepathy/group/libtelepathy.mmp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/* libtelepathy.mmp
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-// General properties
-#include<platform_paths.hrh>
-TARGET          libtelepathy.dll
-TARGETTYPE      dll
-CAPABILITY      CAP_GENERAL_DLL
-UID             0x1000008d 0x2000F850
-
-VERSION      10.0
-#ifndef WINSCW
-// Allow global writeable static data
-EPOCALLOWDLLDATA
-#endif
-
-// Macros
-MACRO 			SYMBIAN
-MACRO 			HAVE_CONFIG_H
-MACRO			HAVE_ERRNO_H VERBOSE
-
-#ifdef WINSCW
-MACRO 			EMULATOR
-#endif
-
-
-SOURCEPATH      ../src
-//START RESOURCE  dbus-daemon_reg.rss
-#ifdef WINSCW
-TARGETPATH 	    /private/10003a3f/apps
-#else
-TARGETPATH 	    /private/10003a3f/import/apps
-#endif
-//END //RESOURCE
-
-// Source files
-#ifdef WINSCW
-SOURCE		  libtelepathy_wsd.cpp
-#endif /*WINSCW*/
-
-SOURCE tp-chan.c
-SOURCE tp-chan-ifaces-signal-setters.c
-SOURCE tp-chan-signals-marshal.c
-SOURCE tp-conn.c
-SOURCE tp-conn-ifaces-signal-setters.c
-SOURCE tp-connmgr.c
-SOURCE tp-connmgr-signals-marshal.c
-SOURCE tp-conn-signals-marshal.c
-SOURCE tp-helpers.c
-SOURCE tp-ifaces-signals-marshal.c
-SOURCE tp-props-iface.c
-
-// User include paths
-USERINCLUDE     ../inc
-
-// System include paths
-MW_LAYER_SYSTEMINCLUDE
-OS_LAYER_LIBC_SYSTEMINCLUDE
-OS_LAYER_GLIB_SYSTEMINCLUDE
-OS_LAYER_SSL_SYSTEMINCLUDE
-OS_LAYER_STDCPP_SYSTEMINCLUDE
-OS_LAYER_DBUS_SYSTEMINCLUDE
-
-// Library dependencies
-#ifdef GCCE
-STATICLIBRARY  libcrt0_gcce.lib
-#else
-STATICLIBRARY  libcrt0.lib
-#endif
-LIBRARY         libdbus.lib
-LIBRARY        libc.lib 
-LIBRARY        libglib.lib
-LIBRARY        libgobject.lib
-LIBRARY			libdbus-glib.lib
-
-#ifdef WINSCW
-LIBRARY        euser.lib  // Needed in order to use Symbian services
-//wsd solution
-LIBRARY		ewsd.lib
-#endif
-
--- a/libtelepathy/inc/tp-ch-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/* tp-ch-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_ChannelHandler
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_ChannelHandler
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_ch_handle_channel (DBusGProxy *proxy, const char * IN_bus_name, const char* IN_connection, const char * IN_channel_type, const char* IN_channel, const guint IN_handle_type, const guint IN_handle, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "HandleChannel", error, G_TYPE_STRING, IN_bus_name, DBUS_TYPE_G_OBJECT_PATH, IN_connection, G_TYPE_STRING, IN_channel_type, DBUS_TYPE_G_OBJECT_PATH, IN_channel, G_TYPE_UINT, IN_handle_type, G_TYPE_UINT, IN_handle, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_ch_handle_channel_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_ch_handle_channel_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_ch_handle_channel_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_ch_handle_channel_async (DBusGProxy *proxy, const char * IN_bus_name, const char* IN_connection, const char * IN_channel_type, const char* IN_channel, const guint IN_handle_type, const guint IN_handle, tp_ch_handle_channel_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "HandleChannel", tp_ch_handle_channel_async_callback, stuff, g_free, G_TYPE_STRING, IN_bus_name, DBUS_TYPE_G_OBJECT_PATH, IN_connection, G_TYPE_STRING, IN_channel_type, DBUS_TYPE_G_OBJECT_PATH, IN_channel, G_TYPE_UINT, IN_handle_type, G_TYPE_UINT, IN_handle, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_ChannelHandler */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-/* tp-chan.gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_close (DBusGProxy *proxy, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "Close", error, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_close_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_chan_close_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_chan_close_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_close_async (DBusGProxy *proxy, tp_chan_close_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "Close", tp_chan_close_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_get_channel_type (DBusGProxy *proxy, char ** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetChannelType", error, G_TYPE_INVALID, G_TYPE_STRING, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_get_channel_type_reply) (DBusGProxy *proxy, char * OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_get_channel_type_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char * OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRING, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_get_channel_type_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_get_channel_type_async (DBusGProxy *proxy, tp_chan_get_channel_type_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetChannelType", tp_chan_get_channel_type_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_get_handle (DBusGProxy *proxy, guint* OUT_arg0, guint* OUT_arg1, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetHandle", error, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg0, G_TYPE_UINT, OUT_arg1, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_get_handle_reply) (DBusGProxy *proxy, guint OUT_arg0, guint OUT_arg1, GError *error, gpointer userdata);
-
-static void
-tp_chan_get_handle_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  guint OUT_arg0;
-  guint OUT_arg1;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_arg0, G_TYPE_UINT, &OUT_arg1, G_TYPE_INVALID);
-  (*(tp_chan_get_handle_reply)data->cb) (proxy, OUT_arg0, OUT_arg1, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_get_handle_async (DBusGProxy *proxy, tp_chan_get_handle_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetHandle", tp_chan_get_handle_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_get_interfaces (DBusGProxy *proxy, char *** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetInterfaces", error, G_TYPE_INVALID, G_TYPE_STRV, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_get_interfaces_reply) (DBusGProxy *proxy, char * *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_get_interfaces_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char ** OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRV, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_get_interfaces_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_get_interfaces_async (DBusGProxy *proxy, tp_chan_get_interfaces_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetInterfaces", tp_chan_get_interfaces_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-iface-dtmf-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/* tp-chan-iface-dtmf-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_DTMF
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_DTMF
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_dtmf_send_dt_mf (DBusGProxy *proxy, const guint IN_signal, const guint IN_duration, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "SendDTMF", error, G_TYPE_UINT, IN_signal, G_TYPE_UINT, IN_duration, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_dtmf_send_dt_mf_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_dtmf_send_dt_mf_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_chan_iface_dtmf_send_dt_mf_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_dtmf_send_dt_mf_async (DBusGProxy *proxy, const guint IN_signal, const guint IN_duration, tp_chan_iface_dtmf_send_dt_mf_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "SendDTMF", tp_chan_iface_dtmf_send_dt_mf_async_callback, stuff, g_free, G_TYPE_UINT, IN_signal, G_TYPE_UINT, IN_duration, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_DTMF */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-iface-group-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,376 +0,0 @@
-/* tp-chan-iface-group-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Group
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Group
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_group_add_members (DBusGProxy *proxy, const GArray* IN_contacts, const char * IN_message, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "AddMembers", error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contacts, G_TYPE_STRING, IN_message, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_group_add_members_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_group_add_members_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_chan_iface_group_add_members_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_group_add_members_async (DBusGProxy *proxy, const GArray* IN_contacts, const char * IN_message, tp_chan_iface_group_add_members_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "AddMembers", tp_chan_iface_group_add_members_async_callback, stuff, g_free, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contacts, G_TYPE_STRING, IN_message, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_group_get_all_members (DBusGProxy *proxy, GArray** OUT_arg0, GArray** OUT_arg1, GArray** OUT_arg2, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetAllMembers", error, G_TYPE_INVALID, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), OUT_arg0, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), OUT_arg1, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), OUT_arg2, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_group_get_all_members_reply) (DBusGProxy *proxy, GArray *OUT_arg0, GArray *OUT_arg1, GArray *OUT_arg2, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_group_get_all_members_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GArray* OUT_arg0;
-  GArray* OUT_arg1;
-  GArray* OUT_arg2;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), &OUT_arg0, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), &OUT_arg1, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), &OUT_arg2, G_TYPE_INVALID);
-  (*(tp_chan_iface_group_get_all_members_reply)data->cb) (proxy, OUT_arg0, OUT_arg1, OUT_arg2, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_group_get_all_members_async (DBusGProxy *proxy, tp_chan_iface_group_get_all_members_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetAllMembers", tp_chan_iface_group_get_all_members_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_group_get_group_flags (DBusGProxy *proxy, guint* OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetGroupFlags", error, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_group_get_group_flags_reply) (DBusGProxy *proxy, guint OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_group_get_group_flags_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  guint OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_iface_group_get_group_flags_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_group_get_group_flags_async (DBusGProxy *proxy, tp_chan_iface_group_get_group_flags_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetGroupFlags", tp_chan_iface_group_get_group_flags_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_group_get_handle_owners (DBusGProxy *proxy, const GArray* IN_handles, GArray** OUT_arg1, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetHandleOwners", error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_handles, G_TYPE_INVALID, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), OUT_arg1, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_group_get_handle_owners_reply) (DBusGProxy *proxy, GArray *OUT_arg1, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_group_get_handle_owners_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GArray* OUT_arg1;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), &OUT_arg1, G_TYPE_INVALID);
-  (*(tp_chan_iface_group_get_handle_owners_reply)data->cb) (proxy, OUT_arg1, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_group_get_handle_owners_async (DBusGProxy *proxy, const GArray* IN_handles, tp_chan_iface_group_get_handle_owners_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetHandleOwners", tp_chan_iface_group_get_handle_owners_async_callback, stuff, g_free, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_handles, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_group_get_local_pending_members (DBusGProxy *proxy, GArray** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetLocalPendingMembers", error, G_TYPE_INVALID, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_group_get_local_pending_members_reply) (DBusGProxy *proxy, GArray *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_group_get_local_pending_members_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GArray* OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_iface_group_get_local_pending_members_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_group_get_local_pending_members_async (DBusGProxy *proxy, tp_chan_iface_group_get_local_pending_members_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetLocalPendingMembers", tp_chan_iface_group_get_local_pending_members_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_group_get_members (DBusGProxy *proxy, GArray** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetMembers", error, G_TYPE_INVALID, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_group_get_members_reply) (DBusGProxy *proxy, GArray *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_group_get_members_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GArray* OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_iface_group_get_members_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_group_get_members_async (DBusGProxy *proxy, tp_chan_iface_group_get_members_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetMembers", tp_chan_iface_group_get_members_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_group_get_remote_pending_members (DBusGProxy *proxy, GArray** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetRemotePendingMembers", error, G_TYPE_INVALID, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_group_get_remote_pending_members_reply) (DBusGProxy *proxy, GArray *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_group_get_remote_pending_members_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GArray* OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_iface_group_get_remote_pending_members_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_group_get_remote_pending_members_async (DBusGProxy *proxy, tp_chan_iface_group_get_remote_pending_members_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetRemotePendingMembers", tp_chan_iface_group_get_remote_pending_members_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_group_get_self_handle (DBusGProxy *proxy, guint* OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetSelfHandle", error, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_group_get_self_handle_reply) (DBusGProxy *proxy, guint OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_group_get_self_handle_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  guint OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_iface_group_get_self_handle_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_group_get_self_handle_async (DBusGProxy *proxy, tp_chan_iface_group_get_self_handle_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetSelfHandle", tp_chan_iface_group_get_self_handle_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_group_remove_members (DBusGProxy *proxy, const GArray* IN_contacts, const char * IN_message, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "RemoveMembers", error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contacts, G_TYPE_STRING, IN_message, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_group_remove_members_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_group_remove_members_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_chan_iface_group_remove_members_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_group_remove_members_async (DBusGProxy *proxy, const GArray* IN_contacts, const char * IN_message, tp_chan_iface_group_remove_members_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RemoveMembers", tp_chan_iface_group_remove_members_async_callback, stuff, g_free, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contacts, G_TYPE_STRING, IN_message, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Group */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-iface-hold-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/* tp-chan-iface-hold-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Hold
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Hold
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_hold_get_hold_state (DBusGProxy *proxy, const guint IN_member, guint* OUT_arg1, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetHoldState", error, G_TYPE_UINT, IN_member, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg1, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_hold_get_hold_state_reply) (DBusGProxy *proxy, guint OUT_arg1, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_hold_get_hold_state_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  guint OUT_arg1;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_arg1, G_TYPE_INVALID);
-  (*(tp_chan_iface_hold_get_hold_state_reply)data->cb) (proxy, OUT_arg1, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_hold_get_hold_state_async (DBusGProxy *proxy, const guint IN_member, tp_chan_iface_hold_get_hold_state_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetHoldState", tp_chan_iface_hold_get_hold_state_async_callback, stuff, g_free, G_TYPE_UINT, IN_member, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_hold_request_hold (DBusGProxy *proxy, const guint IN_member, const gboolean IN_hold, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "RequestHold", error, G_TYPE_UINT, IN_member, G_TYPE_BOOLEAN, IN_hold, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_hold_request_hold_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_hold_request_hold_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_chan_iface_hold_request_hold_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_hold_request_hold_async (DBusGProxy *proxy, const guint IN_member, const gboolean IN_hold, tp_chan_iface_hold_request_hold_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RequestHold", tp_chan_iface_hold_request_hold_async_callback, stuff, g_free, G_TYPE_UINT, IN_member, G_TYPE_BOOLEAN, IN_hold, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Hold */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-iface-ice-signalling-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/* tp-chan-iface-ice-signalling-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_IceSignalling
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_IceSignalling
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_ice_signalling_get_session_handlers (DBusGProxy *proxy, GPtrArray** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetSessionHandlers", error, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING, G_TYPE_INVALID)), OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_ice_signalling_get_session_handlers_reply) (DBusGProxy *proxy, GPtrArray *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_ice_signalling_get_session_handlers_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GPtrArray* OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING, G_TYPE_INVALID)), &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_iface_ice_signalling_get_session_handlers_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_ice_signalling_get_session_handlers_async (DBusGProxy *proxy, tp_chan_iface_ice_signalling_get_session_handlers_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetSessionHandlers", tp_chan_iface_ice_signalling_get_session_handlers_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_IceSignalling */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-iface-password-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/* tp-chan-iface-password-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Password
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Password
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_password_get_password_flags (DBusGProxy *proxy, guint* OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetPasswordFlags", error, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_password_get_password_flags_reply) (DBusGProxy *proxy, guint OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_password_get_password_flags_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  guint OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_iface_password_get_password_flags_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_password_get_password_flags_async (DBusGProxy *proxy, tp_chan_iface_password_get_password_flags_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetPasswordFlags", tp_chan_iface_password_get_password_flags_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_password_provide_password (DBusGProxy *proxy, const char * IN_password, gboolean* OUT_arg1, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "ProvidePassword", error, G_TYPE_STRING, IN_password, G_TYPE_INVALID, G_TYPE_BOOLEAN, OUT_arg1, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_password_provide_password_reply) (DBusGProxy *proxy, gboolean OUT_arg1, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_password_provide_password_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  gboolean OUT_arg1;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_BOOLEAN, &OUT_arg1, G_TYPE_INVALID);
-  (*(tp_chan_iface_password_provide_password_reply)data->cb) (proxy, OUT_arg1, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_password_provide_password_async (DBusGProxy *proxy, const char * IN_password, tp_chan_iface_password_provide_password_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "ProvidePassword", tp_chan_iface_password_provide_password_async_callback, stuff, g_free, G_TYPE_STRING, IN_password, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Password */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-iface-transfer-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*tp-chan-iface-transfer-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Transfer
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Transfer
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_iface_transfer_transfer (DBusGProxy *proxy, const guint IN_member, const guint IN_destination, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "Transfer", error, G_TYPE_UINT, IN_member, G_TYPE_UINT, IN_destination, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_iface_transfer_transfer_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_chan_iface_transfer_transfer_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_chan_iface_transfer_transfer_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_iface_transfer_transfer_async (DBusGProxy *proxy, const guint IN_member, const guint IN_destination, tp_chan_iface_transfer_transfer_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "Transfer", tp_chan_iface_transfer_transfer_async_callback, stuff, g_free, G_TYPE_UINT, IN_member, G_TYPE_UINT, IN_destination, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Interface_Transfer */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-ifaces-signal-setters.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/* tp-chan-ifaces-signal-setters.h
- *
- * 
- * Copyright (C) 2005 Collabora Ltd.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#ifndef TP_CHAN_IFACES_SETTERS_H
-#define TP_CHAN_IFACES_SETTERS_H
-
-#include <dbus/dbus-glib.h>
-
-/* This header file contains definitions for the signal signature setters
- * for the various interfaces provided by Channel */
-
-
-void tp_chan_set_contactsearch_signatures(DBusGProxy *proxy);
-
-void tp_chan_set_streamedmedia_signatures(DBusGProxy *proxy);
-
-void tp_chan_set_roomlist_signatures(DBusGProxy *proxy);
-
-void tp_chan_set_text_signatures(DBusGProxy *proxy);
-
-void tp_chan_set_dtmf_signatures(DBusGProxy *proxy);
-
-void tp_chan_set_group_signatures(DBusGProxy *proxy);
-
-void tp_chan_set_hold_signatures(DBusGProxy *proxy);
-
-void tp_chan_set_password_signatures(DBusGProxy *proxy);
-
-void tp_chan_set_icesignalling_signatures(DBusGProxy *proxy);
-
-#endif
--- a/libtelepathy/inc/tp-chan-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/* tp-chan-signals-marshal.h
- *
- * 
- * Copyright (C) 2005 Collabora Ltd.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#ifndef __tp_chan_signals_marshal_MARSHAL_H__
-#define __tp_chan_signals_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:VOID (tp-chan-signals-marshal.list:1) */
-#define tp_chan_signals_marshal_VOID__VOID	g_cclosure_marshal_VOID__VOID
-
-G_END_DECLS
-
-#endif /* __tp_chan_signals_marshal_MARSHAL_H__ */
-
--- a/libtelepathy/inc/tp-chan-type-contact-list-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/* tp-chan-type-contact-list-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-type-room-list-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/* tp-chan-type-room-list-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_RoomList
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_RoomList
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_type_room_list_get_listing_rooms (DBusGProxy *proxy, gboolean* OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetListingRooms", error, G_TYPE_INVALID, G_TYPE_BOOLEAN, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_type_room_list_get_listing_rooms_reply) (DBusGProxy *proxy, gboolean OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_type_room_list_get_listing_rooms_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  gboolean OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_BOOLEAN, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_type_room_list_get_listing_rooms_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_type_room_list_get_listing_rooms_async (DBusGProxy *proxy, tp_chan_type_room_list_get_listing_rooms_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetListingRooms", tp_chan_type_room_list_get_listing_rooms_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_type_room_list_list_rooms (DBusGProxy *proxy, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "ListRooms", error, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_type_room_list_list_rooms_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_chan_type_room_list_list_rooms_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_chan_type_room_list_list_rooms_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_type_room_list_list_rooms_async (DBusGProxy *proxy, tp_chan_type_room_list_list_rooms_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "ListRooms", tp_chan_type_room_list_list_rooms_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_RoomList */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-type-search-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/* tp-chan-type-search-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_Search
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_Search
-
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_type_search (DBusGProxy *proxy, const GHashTable* IN_terms, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "Search", error, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), IN_terms, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_type_search_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_chan_type_search_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error,G_TYPE_INVALID);
-  (*(tp_chan_type_search_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-#ifdef SYMBIAN
-EXPORT_C 
-#endif
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_type_search_async (DBusGProxy *proxy, const GHashTable *IN_params, tp_chan_type_search_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff; 
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "Search", tp_chan_type_search_async_callback, stuff, g_free, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), IN_params, G_TYPE_INVALID);
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_type_search_get_search_state (DBusGProxy *proxy, guint* OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetSearchState", error, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_type_search_get_search_state_reply) (DBusGProxy *proxy, guint OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_type_search_get_search_state_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  guint OUT_arg2;
-  dbus_g_proxy_end_call (proxy, call, &error,G_TYPE_UINT, &OUT_arg2, G_TYPE_INVALID);
-  (*(tp_chan_type_search_get_search_state_reply)data->cb) (proxy, OUT_arg2, error, data->userdata);
-  return;
-}
-
-#ifdef SYMBIAN
-EXPORT_C 
-#endif
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_type_search_get_search_state_async (DBusGProxy *proxy, tp_chan_type_search_get_search_state_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff; 
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetSearchState", tp_chan_type_search_get_search_state_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_type_search_get_search_keys (DBusGProxy *proxy, char ** OUT_arg0, char *** OUT_arg1, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetSearchKeys", error, G_TYPE_INVALID, G_TYPE_STRING, OUT_arg0, G_TYPE_STRV, OUT_arg1, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_type_search_get_search_keys_reply) (DBusGProxy *proxy, char * OUT_arg0, char * *OUT_arg1, GError *error, gpointer userdata);
-
-
-static void
-tp_chan_type_search_get_search_keys_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
-  GError *error = NULL;
-  char * OUT_arg0;
-  char ** OUT_arg1;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRING, &OUT_arg0, G_TYPE_STRV, &OUT_arg1, G_TYPE_INVALID);
-  (*(tp_chan_type_search_get_search_keys_reply)data->cb) (proxy, OUT_arg0, OUT_arg1, error, data->userdata);
-  return;
-}
-
-
-#ifdef SYMBIAN
-EXPORT_C 
-#endif
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_type_search_get_search_keys_async (DBusGProxy *proxy, tp_chan_type_search_get_search_keys_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetSearchKeys", tp_chan_type_search_get_search_keys_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-
-
-
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_Search */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-type-streamed-media-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/* tp-chan-type-streamed-media-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_StreamedMedia
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_StreamedMedia
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_type_streamed_media_list_streams (DBusGProxy *proxy, GPtrArray** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "ListStreams", error, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID)), OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_type_streamed_media_list_streams_reply) (DBusGProxy *proxy, GPtrArray *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_type_streamed_media_list_streams_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GPtrArray* OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID)), &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_type_streamed_media_list_streams_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_type_streamed_media_list_streams_async (DBusGProxy *proxy, tp_chan_type_streamed_media_list_streams_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "ListStreams", tp_chan_type_streamed_media_list_streams_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_type_streamed_media_request_streams (DBusGProxy *proxy, const guint IN_contact_handle, const GArray* IN_types, GArray** OUT_arg2, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "RequestStreams", error, G_TYPE_UINT, IN_contact_handle, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_types, G_TYPE_INVALID, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), OUT_arg2, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_type_streamed_media_request_streams_reply) (DBusGProxy *proxy, GArray *OUT_arg2, GError *error, gpointer userdata);
-
-static void
-tp_chan_type_streamed_media_request_streams_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GArray* OUT_arg2;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), &OUT_arg2, G_TYPE_INVALID);
-  (*(tp_chan_type_streamed_media_request_streams_reply)data->cb) (proxy, OUT_arg2, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_type_streamed_media_request_streams_async (DBusGProxy *proxy, const guint IN_contact_handle, const GArray* IN_types, tp_chan_type_streamed_media_request_streams_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RequestStreams", tp_chan_type_streamed_media_request_streams_async_callback, stuff, g_free, G_TYPE_UINT, IN_contact_handle, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_types, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_StreamedMedia */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan-type-text-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-/* tp-chan-type-text-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_Text
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_Text
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_type_text_acknowledge_pending_messages (DBusGProxy *proxy, const GArray* IN_ids, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "AcknowledgePendingMessages", error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_ids, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_type_text_acknowledge_pending_messages_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_chan_type_text_acknowledge_pending_messages_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_chan_type_text_acknowledge_pending_messages_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_type_text_acknowledge_pending_messages_async (DBusGProxy *proxy, const GArray* IN_ids, tp_chan_type_text_acknowledge_pending_messages_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "AcknowledgePendingMessages", tp_chan_type_text_acknowledge_pending_messages_async_callback, stuff, g_free, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_ids, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_type_text_get_message_types (DBusGProxy *proxy, GArray** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetMessageTypes", error, G_TYPE_INVALID, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_type_text_get_message_types_reply) (DBusGProxy *proxy, GArray *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_chan_type_text_get_message_types_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GArray* OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_chan_type_text_get_message_types_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_type_text_get_message_types_async (DBusGProxy *proxy, tp_chan_type_text_get_message_types_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetMessageTypes", tp_chan_type_text_get_message_types_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_type_text_list_pending_messages (DBusGProxy *proxy, const gboolean IN_clear, GPtrArray** OUT_arg1, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "ListPendingMessages", error, G_TYPE_BOOLEAN, IN_clear, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID)), OUT_arg1, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_type_text_list_pending_messages_reply) (DBusGProxy *proxy, GPtrArray *OUT_arg1, GError *error, gpointer userdata);
-
-static void
-tp_chan_type_text_list_pending_messages_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GPtrArray* OUT_arg1;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID)), &OUT_arg1, G_TYPE_INVALID);
-  (*(tp_chan_type_text_list_pending_messages_reply)data->cb) (proxy, OUT_arg1, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_type_text_list_pending_messages_async (DBusGProxy *proxy, const gboolean IN_clear, tp_chan_type_text_list_pending_messages_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "ListPendingMessages", tp_chan_type_text_list_pending_messages_async_callback, stuff, g_free, G_TYPE_BOOLEAN, IN_clear, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_chan_type_text_send (DBusGProxy *proxy, const guint IN_type, const char * IN_text, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "Send", error, G_TYPE_UINT, IN_type, G_TYPE_STRING, IN_text, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_chan_type_text_send_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_chan_type_text_send_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_chan_type_text_send_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-#ifdef SYMBIAN
-EXPORT_C 
-#endif
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_chan_type_text_send_async (DBusGProxy *proxy, const guint IN_type, const char * IN_text, tp_chan_type_text_send_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  GError *error = NULL;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  //callback(proxy, error, userdata);
-  return dbus_g_proxy_begin_call (proxy, "Send", tp_chan_type_text_send_async_callback, stuff, g_free, G_TYPE_UINT, IN_type, G_TYPE_STRING, IN_text, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Channel_Type_Text */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-chan.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-/* tp-chan.h
- *
- * 
- * Copyright (C) 2005 Collabora Ltd.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#ifndef TP_CHAN_H
-#define TP_CHAN_H
-
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-
-#include "tp-chan-gen.h"
-#include "tp-interfaces.h"
-#include "tp-chan-signals-marshal.h"
-#include "tp-ifaces-signals-marshal.h"
-#include "tp-chan-ifaces-signal-setters.h"
-
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus.h>
-
-
-#define TELEPATHY_CHAN_TYPE       (tp_chan_get_type ())
-
-#define TELEPATHY_CHAN(obj)       (G_TYPE_CHECK_INSTANCE_CAST \
-		                      ((obj), TELEPATHY_CHAN_TYPE, \
-				       TpChan))
-
-#define TELEPATHY_CHAN_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST \
-		                              ((klass), TELEPATHY_CHAN_TYPE, \
-					       TpChanClass))
-
-#define TELEPATHY_IS_CHAN(obj)    (G_TYPE_CHECK_INSTANCE_TYPE \
-		                      ((obj), TELEPATHY_CHAN_TYPE))
-
-#define TELEPATHY_IS_CHAN_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE \
-		                               ((klass), TELEPATHY_CHAN_TYPE))
-
-#define TELEPATHY_CHAN_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS \
-		                              ((obj), TELEPATHY_CHAN_TYPE, \
-						TpChanClass))
-
-#define TELEPATHY_CHAN_IFACE_QUARK (tp_get_chan_interface())
-#define TELEPATHY_CHAN_IFACE_CONTACTLIST_QUARK (tp_get_chan_contactlist_interface())
-#define TELEPATHY_CHAN_IFACE_CONTACTSEARCH_QUARK (tp_get_chan_contactsearch_interface())
-#define TELEPATHY_CHAN_IFACE_STREAMED_QUARK (tp_get_chan_streamed_interface())
-#define TELEPATHY_CHAN_IFACE_ROOMLIST_QUARK (tp_get_chan_roomlist_interface())
-#define TELEPATHY_CHAN_IFACE_TEXT_QUARK (tp_get_chan_text_interface())
-#define TELEPATHY_CHAN_IFACE_DTMF_QUARK (tp_get_chan_dtmf_interface())
-#define TELEPATHY_CHAN_IFACE_GROUP_QUARK (tp_get_chan_group_interface())
-#define TELEPATHY_CHAN_IFACE_HOLD_QUARK (tp_get_chan_hold_interface())
-#define TELEPATHY_CHAN_IFACE_PASSWORD_QUARK (tp_get_chan_password_interface())
-#define TELEPATHY_CHAN_IFACE_TRANSFER_QUARK (tp_get_chan_transfer_interface())
-
-/* The signal name for the synthesized Closed signal */
-#define TP_IFACE_CHAN_SIGNAL_CLOSED_SYNTHESIZED \
-        "received::org-freedesktop-Telepathy-Channel-Closed"
-
-typedef struct _tp_chan TpChan;
-typedef struct _tp_chanclass TpChanClass;
-
-struct _tp_chan
-{
-  DBusGProxy parent;
-  gchar *type;
-  guint handle_type;
-  guint handle;
-  GData *interface_list;
-  gboolean first_run;
-};
-
-struct _tp_chanclass
-{
-  DBusGProxyClass parent_class;
-  GData *iface_signal_sigs;
-};
-
-GType tp_chan_get_type(void);
-
-/* Actual function definitions */
-
-
-/*
- * Creates a new channel object.
- *
- * @param connection: The D-BUS connection for this channel.
- * @param bus_name: The D-BUS bus name for this channel.
- * @param object_name: The name of the D-BUS path for this channel.
- * @param type: The type string for this channel.
- * @param handle_type: The type of this channel.
- * @param handle: The handle of this channel, will be filled by this call.
- * @return A new TpChan (channel) object, or NULL if unsuccesfull
- */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif
-TpChan *tp_chan_new(DBusGConnection *connection, const gchar *bus_name,
-		    const gchar *object_path, const gchar *type,
-                    guint handle_type, guint handle);
-#ifdef __cplusplus
-}
-#endif
-
-
-/* Create and store the D-BUS proxy objects for the interfaces provided
- * by this channel. Expects data provided by the GetInterfaces method.
- * 
- * @param self: The channel object whose interfaces will be stored.
- * @param interfaces: The array of strings containing the interface names
- *
- */
-
-
-void tp_chan_local_set_interfaces(TpChan *self, gchar **interfaces);
-
-
-/*
- * This function checks whether the channel has the specified
- * interface and returns a proxy object that can be used to call
- * its methods, if it exists. The supported interfaces are listed
- * in the beginning of this header as macros.
- *
- * @param self The channel object that is queried for the interface
- *             proxy object
- * @param iface_quark GQuark corresponding to the interface name
- *        string.
- * @return A DBusGProxy object for the interface, or NULL if not found
- */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif 
-DBusGProxy *tp_chan_get_interface(TpChan *self, GQuark iface_quark);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-GQuark tp_get_chan_interface(void);
-GQuark tp_get_chan_contactlist_interface(void);
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif 
-GQuark tp_get_chan_contactsearch_interface(void);
-#ifdef __cplusplus
-}
-#endif
-GQuark tp_get_chan_streamed_interface(void);
-GQuark tp_get_chan_roomlist_interface(void);
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif 
-GQuark tp_get_chan_group_interface(void);
-#ifdef __cplusplus
-}
-#endif
-
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif 
-GQuark tp_get_chan_text_interface(void);
-GQuark tp_get_chan_dtmf_interface(void);
-GQuark tp_get_chan_hold_interface(void);
-GQuark tp_get_chan_password_interface(void);
-GQuark tp_get_chan_transfer_interface(void);
-#ifdef __cplusplus
-}
-#endif
-#endif
-
--- a/libtelepathy/inc/tp-conn-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,486 +0,0 @@
-/* tp-conn-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_connect (DBusGProxy *proxy, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "Connect", error, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_connect_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_connect_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_connect_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_connect_async (DBusGProxy *proxy, tp_conn_connect_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "Connect", tp_conn_connect_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_disconnect (DBusGProxy *proxy, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "Disconnect", error, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_disconnect_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_disconnect_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_disconnect_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_disconnect_async (DBusGProxy *proxy, tp_conn_disconnect_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "Disconnect", tp_conn_disconnect_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_get_interfaces (DBusGProxy *proxy, char *** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetInterfaces", error, G_TYPE_INVALID, G_TYPE_STRV, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_get_interfaces_reply) (DBusGProxy *proxy, char * *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_conn_get_interfaces_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char ** OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRV, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_conn_get_interfaces_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_get_interfaces_async (DBusGProxy *proxy, tp_conn_get_interfaces_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetInterfaces", tp_conn_get_interfaces_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_get_protocol (DBusGProxy *proxy, char ** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetProtocol", error, G_TYPE_INVALID, G_TYPE_STRING, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_get_protocol_reply) (DBusGProxy *proxy, char * OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_conn_get_protocol_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char * OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRING, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_conn_get_protocol_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_get_protocol_async (DBusGProxy *proxy, tp_conn_get_protocol_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetProtocol", tp_conn_get_protocol_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_get_self_handle (DBusGProxy *proxy, guint* OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetSelfHandle", error, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_get_self_handle_reply) (DBusGProxy *proxy, guint OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_conn_get_self_handle_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  guint OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_conn_get_self_handle_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_get_self_handle_async (DBusGProxy *proxy, tp_conn_get_self_handle_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetSelfHandle", tp_conn_get_self_handle_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_get_status (DBusGProxy *proxy, guint* OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetStatus", error, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_get_status_reply) (DBusGProxy *proxy, guint OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_conn_get_status_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  guint OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_conn_get_status_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_get_status_async (DBusGProxy *proxy, tp_conn_get_status_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetStatus", tp_conn_get_status_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_hold_handles (DBusGProxy *proxy, const guint IN_handle_type, const GArray* IN_handles, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "HoldHandles", error, G_TYPE_UINT, IN_handle_type, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_handles, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_hold_handles_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_hold_handles_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_hold_handles_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_hold_handles_async (DBusGProxy *proxy, const guint IN_handle_type, const GArray* IN_handles, tp_conn_hold_handles_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "HoldHandles", tp_conn_hold_handles_async_callback, stuff, g_free, G_TYPE_UINT, IN_handle_type, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_handles, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_inspect_handles (DBusGProxy *proxy, const guint IN_handle_type, const GArray* IN_handles, char *** OUT_arg2, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "InspectHandles", error, G_TYPE_UINT, IN_handle_type, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_handles, G_TYPE_INVALID, G_TYPE_STRV, OUT_arg2, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_inspect_handles_reply) (DBusGProxy *proxy, char * *OUT_arg2, GError *error, gpointer userdata);
-
-static void
-tp_conn_inspect_handles_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char ** OUT_arg2;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRV, &OUT_arg2, G_TYPE_INVALID);
-  (*(tp_conn_inspect_handles_reply)data->cb) (proxy, OUT_arg2, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_inspect_handles_async (DBusGProxy *proxy, const guint IN_handle_type, const GArray* IN_handles, tp_conn_inspect_handles_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "InspectHandles", tp_conn_inspect_handles_async_callback, stuff, g_free, G_TYPE_UINT, IN_handle_type, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_handles, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_list_channels (DBusGProxy *proxy, GPtrArray** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "ListChannels", error, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID)), OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_list_channels_reply) (DBusGProxy *proxy, GPtrArray *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_conn_list_channels_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GPtrArray* OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID)), &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_conn_list_channels_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_list_channels_async (DBusGProxy *proxy, tp_conn_list_channels_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "ListChannels", tp_conn_list_channels_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_release_handles (DBusGProxy *proxy, const guint IN_handle_type, const GArray* IN_handles, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "ReleaseHandles", error, G_TYPE_UINT, IN_handle_type, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_handles, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_release_handles_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_release_handles_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_release_handles_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_release_handles_async (DBusGProxy *proxy, const guint IN_handle_type, const GArray* IN_handles, tp_conn_release_handles_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "ReleaseHandles", tp_conn_release_handles_async_callback, stuff, g_free, G_TYPE_UINT, IN_handle_type, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_handles, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_request_channel (DBusGProxy *proxy, const char * IN_type, const guint IN_handle_type, const guint IN_handle, const gboolean IN_suppress_handler, char** OUT_arg4, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "RequestChannel", error, G_TYPE_STRING, IN_type, G_TYPE_UINT, IN_handle_type, G_TYPE_UINT, IN_handle, G_TYPE_BOOLEAN, IN_suppress_handler, G_TYPE_INVALID, DBUS_TYPE_G_OBJECT_PATH, OUT_arg4, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_request_channel_reply) (DBusGProxy *proxy, char *OUT_arg4, GError *error, gpointer userdata);
-
-static void
-tp_conn_request_channel_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char* OUT_arg4;
-  dbus_g_proxy_end_call (proxy, call, &error, DBUS_TYPE_G_OBJECT_PATH, &OUT_arg4, G_TYPE_INVALID);
-  (*(tp_conn_request_channel_reply)data->cb) (proxy, OUT_arg4, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_request_channel_async (DBusGProxy *proxy, const char * IN_type, const guint IN_handle_type, const guint IN_handle, const gboolean IN_suppress_handler, tp_conn_request_channel_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RequestChannel", tp_conn_request_channel_async_callback, stuff, g_free, G_TYPE_STRING, IN_type, G_TYPE_UINT, IN_handle_type, G_TYPE_UINT, IN_handle, G_TYPE_BOOLEAN, IN_suppress_handler, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_request_handles (DBusGProxy *proxy, const guint IN_handle_type, const char ** IN_names, GArray** OUT_arg2, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "RequestHandles", error, G_TYPE_UINT, IN_handle_type, G_TYPE_STRV, IN_names, G_TYPE_INVALID, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), OUT_arg2, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_request_handles_reply) (DBusGProxy *proxy, GArray *OUT_arg2, GError *error, gpointer userdata);
-
-static void
-tp_conn_request_handles_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GArray* OUT_arg2;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), &OUT_arg2, G_TYPE_INVALID);
-  (*(tp_conn_request_handles_reply)data->cb) (proxy, OUT_arg2, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_request_handles_async (DBusGProxy *proxy, const guint IN_handle_type, const char ** IN_names, tp_conn_request_handles_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RequestHandles", tp_conn_request_handles_async_callback, stuff, g_free, G_TYPE_UINT, IN_handle_type, G_TYPE_STRV, IN_names, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-conn-iface-aliasing-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/* tp-conn-iface-aliasing-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Aliasing
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Aliasing
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_aliasing_get_alias_flags (DBusGProxy *proxy, guint* OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetAliasFlags", error, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_aliasing_get_alias_flags_reply) (DBusGProxy *proxy, guint OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_aliasing_get_alias_flags_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  guint OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_conn_iface_aliasing_get_alias_flags_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_aliasing_get_alias_flags_async (DBusGProxy *proxy, tp_conn_iface_aliasing_get_alias_flags_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetAliasFlags", tp_conn_iface_aliasing_get_alias_flags_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_aliasing_request_aliases (DBusGProxy *proxy, const GArray* IN_contacts, char *** OUT_arg1, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "RequestAliases", error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contacts, G_TYPE_INVALID, G_TYPE_STRV, OUT_arg1, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_aliasing_request_aliases_reply) (DBusGProxy *proxy, char * *OUT_arg1, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_aliasing_request_aliases_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char ** OUT_arg1;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRV, &OUT_arg1, G_TYPE_INVALID);
-  (*(tp_conn_iface_aliasing_request_aliases_reply)data->cb) (proxy, OUT_arg1, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_aliasing_request_aliases_async (DBusGProxy *proxy, const GArray* IN_contacts, tp_conn_iface_aliasing_request_aliases_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RequestAliases", tp_conn_iface_aliasing_request_aliases_async_callback, stuff, g_free, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contacts, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_aliasing_set_aliases (DBusGProxy *proxy, const GHashTable* IN_aliases, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "SetAliases", error, dbus_g_type_get_map ("GHashTable", G_TYPE_UINT, G_TYPE_STRING), IN_aliases, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_aliasing_set_aliases_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_aliasing_set_aliases_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_aliasing_set_aliases_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_aliasing_set_aliases_async (DBusGProxy *proxy, const GHashTable* IN_aliases, tp_conn_iface_aliasing_set_aliases_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "SetAliases", tp_conn_iface_aliasing_set_aliases_async_callback, stuff, g_free, dbus_g_type_get_map ("GHashTable", G_TYPE_UINT, G_TYPE_STRING), IN_aliases, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Aliasing */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-conn-iface-avatars-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/* tp-conn-iface-avatars-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Avatars
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Avatars
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_avatars_get_avatar_requirements (DBusGProxy *proxy, char *** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetAvatarRequirements", error, G_TYPE_INVALID, G_TYPE_STRV, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_avatars_get_avatar_requirements_reply) (DBusGProxy *proxy, char * *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_avatars_get_avatar_requirements_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
-  GError *error = NULL;
-  char ** OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRV, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_conn_iface_avatars_get_avatar_requirements_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_avatars_get_avatar_requirements_async (DBusGProxy *proxy, tp_conn_iface_avatars_get_avatar_requirements_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetAvatarRequirements", tp_conn_iface_avatars_get_avatar_requirements_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_avatars_get_known_avatar_tokens (DBusGProxy *proxy, const GArray* IN_contacts, GHashTable** OUT_arg1, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetKnownAvatarTokens", error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contacts, G_TYPE_INVALID, dbus_g_type_get_map ("GHashTable", G_TYPE_UINT, G_TYPE_STRING), OUT_arg1, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_avatars_get_known_avatar_tokens_reply) (DBusGProxy *proxy, GHashTable *OUT_arg1, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_avatars_get_known_avatar_tokens_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
-  GError *error = NULL;
-  GHashTable* OUT_arg1;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_map ("GHashTable", G_TYPE_UINT, G_TYPE_STRING), &OUT_arg1, G_TYPE_INVALID);
-  (*(tp_conn_iface_avatars_get_known_avatar_tokens_reply)data->cb) (proxy, OUT_arg1, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_avatars_get_known_avatar_tokens_async (DBusGProxy *proxy, const GArray* IN_contacts, tp_conn_iface_avatars_get_known_avatar_tokens_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetKnownAvatarTokens", tp_conn_iface_avatars_get_known_avatar_tokens_async_callback, stuff, g_free, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contacts, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_avatars_request_avatars (DBusGProxy *proxy, const GArray* IN_contact, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "RequestAvatars", error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contact, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_avatars_request_avatars_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_avatars_request_avatars_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_avatars_request_avatars_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_avatars_request_avatars_async (DBusGProxy *proxy, const GArray* IN_contact, tp_conn_iface_avatars_request_avatars_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RequestAvatars", tp_conn_iface_avatars_request_avatars_async_callback, stuff, g_free, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contact, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_avatars_set_avatar (DBusGProxy *proxy, const GArray* IN_avatar, const char * IN_mime_type, char ** OUT_arg2, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "SetAvatar", error, dbus_g_type_get_collection ("GArray", G_TYPE_UCHAR), IN_avatar, G_TYPE_STRING, IN_mime_type, G_TYPE_INVALID, G_TYPE_STRING, OUT_arg2, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_avatars_set_avatar_reply) (DBusGProxy *proxy, char * OUT_arg2, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_avatars_set_avatar_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
-  GError *error = NULL;
-  char * OUT_arg2;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRING, &OUT_arg2, G_TYPE_INVALID);
-  (*(tp_conn_iface_avatars_set_avatar_reply)data->cb) (proxy, OUT_arg2, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_avatars_set_avatar_async (DBusGProxy *proxy, const GArray* IN_avatar, const char * IN_mime_type, tp_conn_iface_avatars_set_avatar_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "SetAvatar", tp_conn_iface_avatars_set_avatar_async_callback, stuff, g_free, dbus_g_type_get_collection ("GArray", G_TYPE_UCHAR), IN_avatar, G_TYPE_STRING, IN_mime_type, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_avatars_clear_avatar (DBusGProxy *proxy, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "ClearAvatar", error, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_avatars_clear_avatar_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_avatars_clear_avatar_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*) user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_avatars_clear_avatar_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_avatars_clear_avatar_async (DBusGProxy *proxy, tp_conn_iface_avatars_clear_avatar_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "ClearAvatar", tp_conn_iface_avatars_clear_avatar_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Avatars */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-conn-iface-capabilities-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/* tp-conn-iface-capabilities-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Capabilities
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Capabilities
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_capabilities_advertise_capabilities (DBusGProxy *proxy, const char ** IN_add, const char ** IN_remove, char *** OUT_arg2, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "AdvertiseCapabilities", error, G_TYPE_STRV, IN_add, G_TYPE_STRV, IN_remove, G_TYPE_INVALID, G_TYPE_STRV, OUT_arg2, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_capabilities_advertise_capabilities_reply) (DBusGProxy *proxy, char * *OUT_arg2, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_capabilities_advertise_capabilities_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char ** OUT_arg2;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRV, &OUT_arg2, G_TYPE_INVALID);
-  (*(tp_conn_iface_capabilities_advertise_capabilities_reply)data->cb) (proxy, OUT_arg2, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_capabilities_advertise_capabilities_async (DBusGProxy *proxy, const char ** IN_add, const char ** IN_remove, tp_conn_iface_capabilities_advertise_capabilities_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "AdvertiseCapabilities", tp_conn_iface_capabilities_advertise_capabilities_async_callback, stuff, g_free, G_TYPE_STRV, IN_add, G_TYPE_STRV, IN_remove, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_capabilities_get_capabilities (DBusGProxy *proxy, const GArray* IN_handles, GPtrArray** OUT_arg1, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetCapabilities", error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_handles, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID)), OUT_arg1, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_capabilities_get_capabilities_reply) (DBusGProxy *proxy, GPtrArray *OUT_arg1, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_capabilities_get_capabilities_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GPtrArray* OUT_arg1;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID)), &OUT_arg1, G_TYPE_INVALID);
-  (*(tp_conn_iface_capabilities_get_capabilities_reply)data->cb) (proxy, OUT_arg1, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_capabilities_get_capabilities_async (DBusGProxy *proxy, const GArray* IN_handles, tp_conn_iface_capabilities_get_capabilities_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetCapabilities", tp_conn_iface_capabilities_get_capabilities_async_callback, stuff, g_free, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_handles, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Capabilities */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-conn-iface-contact-info-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/* tp-conn-iface-contact-info-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_ContactInfo
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_ContactInfo
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_contact_info_request_contact_info (DBusGProxy *proxy, const guint IN_contact, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "RequestContactInfo", error, G_TYPE_UINT, IN_contact, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_contact_info_request_contact_info_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_contact_info_request_contact_info_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_contact_info_request_contact_info_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_contact_info_request_contact_info_async (DBusGProxy *proxy, const guint IN_contact, tp_conn_iface_contact_info_request_contact_info_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RequestContactInfo", tp_conn_iface_contact_info_request_contact_info_async_callback, stuff, g_free, G_TYPE_UINT, IN_contact, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_ContactInfo */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-conn-iface-forwarding-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/* tp-conn-iface-forwarding-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Forwarding
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Forwarding
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_forwarding_get_forwarding_handle (DBusGProxy *proxy, guint* OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetForwardingHandle", error, G_TYPE_INVALID, G_TYPE_UINT, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_forwarding_get_forwarding_handle_reply) (DBusGProxy *proxy, guint OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_forwarding_get_forwarding_handle_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  guint OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_conn_iface_forwarding_get_forwarding_handle_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_forwarding_get_forwarding_handle_async (DBusGProxy *proxy, tp_conn_iface_forwarding_get_forwarding_handle_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetForwardingHandle", tp_conn_iface_forwarding_get_forwarding_handle_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_forwarding_set_forwarding_handle (DBusGProxy *proxy, const guint IN_forward_to, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "SetForwardingHandle", error, G_TYPE_UINT, IN_forward_to, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_forwarding_set_forwarding_handle_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_forwarding_set_forwarding_handle_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_forwarding_set_forwarding_handle_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_forwarding_set_forwarding_handle_async (DBusGProxy *proxy, const guint IN_forward_to, tp_conn_iface_forwarding_set_forwarding_handle_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "SetForwardingHandle", tp_conn_iface_forwarding_set_forwarding_handle_async_callback, stuff, g_free, G_TYPE_UINT, IN_forward_to, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Forwarding */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-conn-iface-presence-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-/* tp-conn-iface-presence-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Presence
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Presence
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_presence_add_status (DBusGProxy *proxy, const char * IN_status, const GHashTable* IN_parms, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "AddStatus", error, G_TYPE_STRING, IN_status, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), IN_parms, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_presence_add_status_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_presence_add_status_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_presence_add_status_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_presence_add_status_async (DBusGProxy *proxy, const char * IN_status, const GHashTable* IN_parms, tp_conn_iface_presence_add_status_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "AddStatus", tp_conn_iface_presence_add_status_async_callback, stuff, g_free, G_TYPE_STRING, IN_status, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), IN_parms, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_presence_clear_status (DBusGProxy *proxy, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "ClearStatus", error, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_presence_clear_status_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_presence_clear_status_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_presence_clear_status_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_presence_clear_status_async (DBusGProxy *proxy, tp_conn_iface_presence_clear_status_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "ClearStatus", tp_conn_iface_presence_clear_status_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_presence_get_statuses (DBusGProxy *proxy, GHashTable** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetStatuses", error, G_TYPE_INVALID, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_STRING), G_TYPE_INVALID)), OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_presence_get_statuses_reply) (DBusGProxy *proxy, GHashTable *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_presence_get_statuses_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GHashTable* OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_STRING), G_TYPE_INVALID)), &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_conn_iface_presence_get_statuses_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_presence_get_statuses_async (DBusGProxy *proxy, tp_conn_iface_presence_get_statuses_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetStatuses", tp_conn_iface_presence_get_statuses_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_presence_remove_status (DBusGProxy *proxy, const char * IN_status, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "RemoveStatus", error, G_TYPE_STRING, IN_status, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_presence_remove_status_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_presence_remove_status_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_presence_remove_status_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_presence_remove_status_async (DBusGProxy *proxy, const char * IN_status, tp_conn_iface_presence_remove_status_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RemoveStatus", tp_conn_iface_presence_remove_status_async_callback, stuff, g_free, G_TYPE_STRING, IN_status, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_presence_request_presence (DBusGProxy *proxy, const GArray* IN_contacts, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "RequestPresence", error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contacts, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_presence_request_presence_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_presence_request_presence_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_presence_request_presence_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_presence_request_presence_async (DBusGProxy *proxy, const GArray* IN_contacts, tp_conn_iface_presence_request_presence_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RequestPresence", tp_conn_iface_presence_request_presence_async_callback, stuff, g_free, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_contacts, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_presence_set_last_activity_time (DBusGProxy *proxy, const guint IN_time, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "SetLastActivityTime", error, G_TYPE_UINT, IN_time, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_presence_set_last_activity_time_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_presence_set_last_activity_time_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_presence_set_last_activity_time_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_presence_set_last_activity_time_async (DBusGProxy *proxy, const guint IN_time, tp_conn_iface_presence_set_last_activity_time_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "SetLastActivityTime", tp_conn_iface_presence_set_last_activity_time_async_callback, stuff, g_free, G_TYPE_UINT, IN_time, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_presence_set_status (DBusGProxy *proxy, const GHashTable* IN_statuses, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "SetStatus", error, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)), IN_statuses, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_presence_set_status_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_presence_set_status_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_presence_set_status_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_presence_set_status_async (DBusGProxy *proxy, const GHashTable* IN_statuses, tp_conn_iface_presence_set_status_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "SetStatus", tp_conn_iface_presence_set_status_async_callback, stuff, g_free, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)), IN_statuses, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Presence */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-conn-iface-privacy-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/* tp-conn-iface-privacy-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Privacy
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Privacy
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_privacy_get_privacy_mode (DBusGProxy *proxy, char ** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetPrivacyMode", error, G_TYPE_INVALID, G_TYPE_STRING, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_privacy_get_privacy_mode_reply) (DBusGProxy *proxy, char * OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_privacy_get_privacy_mode_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char * OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRING, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_conn_iface_privacy_get_privacy_mode_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_privacy_get_privacy_mode_async (DBusGProxy *proxy, tp_conn_iface_privacy_get_privacy_mode_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetPrivacyMode", tp_conn_iface_privacy_get_privacy_mode_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_privacy_get_privacy_modes (DBusGProxy *proxy, char *** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetPrivacyModes", error, G_TYPE_INVALID, G_TYPE_STRV, OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_privacy_get_privacy_modes_reply) (DBusGProxy *proxy, char * *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_privacy_get_privacy_modes_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char ** OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRV, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_conn_iface_privacy_get_privacy_modes_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_privacy_get_privacy_modes_async (DBusGProxy *proxy, tp_conn_iface_privacy_get_privacy_modes_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetPrivacyModes", tp_conn_iface_privacy_get_privacy_modes_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_privacy_set_privacy_mode (DBusGProxy *proxy, const char * IN_mode, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "SetPrivacyMode", error, G_TYPE_STRING, IN_mode, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_privacy_set_privacy_mode_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_privacy_set_privacy_mode_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_privacy_set_privacy_mode_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_privacy_set_privacy_mode_async (DBusGProxy *proxy, const char * IN_mode, tp_conn_iface_privacy_set_privacy_mode_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "SetPrivacyMode", tp_conn_iface_privacy_set_privacy_mode_async_callback, stuff, g_free, G_TYPE_STRING, IN_mode, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Privacy */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-conn-iface-renaming-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/* tp-conn-iface-renaming-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Renaming
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Renaming
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_conn_iface_renaming_request_rename (DBusGProxy *proxy, const char * IN_name, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "RequestRename", error, G_TYPE_STRING, IN_name, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_conn_iface_renaming_request_rename_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_conn_iface_renaming_request_rename_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_conn_iface_renaming_request_rename_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_conn_iface_renaming_request_rename_async (DBusGProxy *proxy, const char * IN_name, tp_conn_iface_renaming_request_rename_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RequestRename", tp_conn_iface_renaming_request_rename_async_callback, stuff, g_free, G_TYPE_STRING, IN_name, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Connection_Interface_Renaming */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-conn-ifaces-signal-setters.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/* tp-conn-ifaces-signal-setters.h
- *
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#ifndef TP_CONN_IFACES_SETTERS_H
-#define TP_CONN_IFACES_SETTERS_H
-
-#include <dbus/dbus-glib.h>
-
-/* This header file contains definitions for the signal signature setters
- * for the various interfaces provided by Connections */
-
-void tp_conn_set_aliasing_signatures(DBusGProxy *proxy);
-
-void tp_conn_set_capabilities_signatures(DBusGProxy *proxy);
-
-void tp_conn_set_contactinfo_signatures(DBusGProxy *proxy);
-
-void tp_conn_set_forwarding_signatures(DBusGProxy *proxy);
-
-void tp_conn_set_presence_signatures(DBusGProxy *proxy);
-
-void tp_conn_set_privacy_signatures(DBusGProxy *proxy);
-
-void tp_conn_set_renaming_signatures(DBusGProxy *proxy);
-
-void tp_conn_set_avatar_signatures(DBusGProxy *proxy);
-#endif
--- a/libtelepathy/inc/tp-conn-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
- * tp-conn-signals-marshal.h - Header for Telepathy interface names
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
- 
-#ifndef __tp_conn_signals_marshal_MARSHAL_H__
-#define __tp_conn_signals_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:OBJECT,STRING,UINT,UINT,BOOLEAN (tp-conn-signals-marshal.list:1) */
-extern void tp_conn_signals_marshal_VOID__OBJECT_STRING_UINT_UINT_BOOLEAN (GClosure     *closure,
-                                                                           GValue       *return_value,
-                                                                           guint         n_param_values,
-                                                                           const GValue *param_values,
-                                                                           gpointer      invocation_hint,
-                                                                           gpointer      marshal_data);
-
-/* VOID:UINT,UINT (tp-conn-signals-marshal.list:2) */
-extern void tp_conn_signals_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                                     GValue       *return_value,
-                                                     guint         n_param_values,
-                                                     const GValue *param_values,
-                                                     gpointer      invocation_hint,
-                                                     gpointer      marshal_data);
-
-/* VOID:BOXED (tp-conn-signals-marshal.list:3) */
-#define tp_conn_signals_marshal_VOID__BOXED	g_cclosure_marshal_VOID__BOXED
-
-G_END_DECLS
-
-#endif /* __tp_conn_signals_marshal_MARSHAL_H__ */
-
--- a/libtelepathy/inc/tp-conn.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-/* tp-conn.h
- *
- * 
- * Copyright (C) 2005 Collabora Ltd.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-
-#ifndef TP_CONN_H
-#define TP_CONN_H
-
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-#include "tp-conn-gen.h"
-#include "tp-conn-iface-forwarding-gen.h"
-#include "tp-chan.h"
-#include "tp-conn-signals-marshal.h"
-#include "tp-ifaces-signals-marshal.h"
-#include "tp-conn-ifaces-signal-setters.h"
-#include "tp-interfaces.h"
-#include "tp-constants.h"
-
-#include <dbus/dbus-glib.h>
-
-#define DBUS_TYPE_G_ARRAY_OF_STRUCTS dbus_g_type_get_collection ("GPtrArray", G_TYPE_VALUE_ARRAY);
-
-#define TELEPATHY_CONN_TYPE  (tp_conn_get_type ())
-
-#define TELEPATHY_CONN(obj)  (G_TYPE_CHECK_INSTANCE_CAST \
-		                    ((obj), TELEPATHY_CONN_TYPE, \
-				     TpConn))
-
-#define TELEPATHY_CONN_CLASS(klass)  (G_TYPE_CHECK_CLASS_CAST \
-		                          ((klass), TELEPATHY_CONN_TYPE, \
-					  TpConnClass))
-
-#define TELEPATHY_IS_CONN(obj)    (G_TYPE_CHECK_INSTANCE_TYPE \
-		                      ((obj), TELEPATHY_CONN_TYPE))
-
-#define TELEPATHY_IS_CONN_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE \
-		                           ((klass), TELEPATHY_CONN_TYPE))
-
-#define TELEPATHY_CONN_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS \
-		                            ((obj), TELEPATHY_CONN_TYPE, \
-					    TpConnClass))
-
-#define TELEPATHY_CONN_IFACE_QUARK (tp_get_conn_interface())
-#define TELEPATHY_CONN_IFACE_ALIASING_QUARK (tp_get_conn_aliasing_interface())
-#define TELEPATHY_CONN_IFACE_CAPABILITIES_QUARK (tp_get_conn_capabilities_interface())
-#define TELEPATHY_CONN_IFACE_CONTACTINFO_QUARK (tp_get_conn_contactinfo_interface())
-#define TELEPATHY_CONN_IFACE_FORWARDING_QUARK (tp_get_conn_forwarding_interface())
-#define TELEPATHY_CONN_IFACE_PRESENCE_QUARK (tp_get_conn_presence_interface())
-#define TELEPATHY_CONN_IFACE_PRIVACY_QUARK (tp_get_conn_privacy_interface())
-#define TELEPATHY_CONN_IFACE_RENAMING_QUARK (tp_get_conn_renaming_interface())
-#define TELEPATHY_CONN_IFACE_AVATAR_QUARK (tp_get_conn_avatar_interface())
-
-
-/* The signal name for the synthesized StatusChanged signal */
-#define TP_IFACE_CONN_SIGNAL_STATUSCHANGED_SYNTHESIZED \
-        "received::org-freedesktop-Telepathy-Connection-StatusChanged"
-
-typedef struct _tp_conn TpConn;
-typedef struct _tp_connclass TpConnClass;
-
-struct _tp_conn
-{
-  DBusGProxy parent;
-  GData *interface_list;
-  gboolean first_run;
-};
-
-
-struct _tp_connclass
-{
-  DBusGProxyClass parent_class;
-  GData *iface_signal_sigs;
-};
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C
-#endif
-GType tp_conn_get_type(void);
-#ifdef __cplusplus
-}
-#endif
-
-/* Actual function definitions */
-
-/*
- * Create a new TpConn (Connection) object.
- *
- * @param connection The D-BUS connection
- * @param name: The D-BUS service name for the connection object
- * @param path_name: The D-BUS path name for the connection object
- * @param interface_name: The D-BUS interface name for the connection object
- * @return A new TpConn connection object, or NULL if unsuccesful.
- */
-
-TpConn *tp_conn_new(DBusGConnection *connection,
-		    const char      *bus_name,
-		    const char      *object_path);
-
-/* Create a TpChan channel object for this connection. Also initialises
- * the proxy object that is used for the actual method calls.
- *
- * @param connection: The DBusGConnection for the channel
- * @param tpconn:  The Connection object for which the channel is done
- * @param bus_name:  The D-Bus interface name for the channel
- * @param type: The channel type string
- * @param handle_type: The type of the channel handle
- * @param handle: The channel handle value is set and stored here after
- * @param         the call returns.
- * @param supress_handler: if TRUE, indicates that no handler needs to be
- *                         launched
- *
- * @return A new TpChan (channel) object
- */ 
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif 
-TpChan *tp_conn_new_channel(DBusGConnection *connection, TpConn *tpconn,
-			    const gchar *bus_name,
-			    gchar *type, guint handle_type,
-			    guint handle, gboolean supress_handler);
-#ifdef __cplusplus
-}
-#endif
-
-/* Creates the proxy objects for the channel interfaces. GetInterfaces
- * method should be called before this to acquire the interface name
- * list.
- * 
- * @param self: The connection object
- * @param interfaces: An array of the interface name strings
- */
-
-void tp_conn_local_set_interfaces(TpConn *self, gchar **interfaces);
-
-
-/*
- * Provides access to the connection proxy object to use for actual
- * method calls
- *
- * @param self: The connection object whose proxy should be retrieved
- * @return The D-BUS proxy object
- */
-
-DBusGProxy *tp_conn_get_proxy(TpConn *self);
-
-/*
- * This function checks whether the Connection has the specified
- * interface and returns a proxy object that can be used to call
- * its methods, if it exists. The supported interfaces are listed
- * in the beginning of this header as macros.
- *
- * @param self The connection object that is queried for the
- *             interface proxy object
- * @param iface_quark GQuark corresponding to the interface name
- *        string.
- * @return A DBusGProxy object for the interface, or NULL if not found
- */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C
-#endif
-DBusGProxy *tp_conn_get_interface(TpConn *self, GQuark iface_quark);
-#ifdef __cplusplus
-}
-#endif
-
-GQuark tp_get_conn_interface(void);
-GQuark tp_get_conn_aliasing_interface(void);
-GQuark tp_get_conn_capabilities_interface(void);
-GQuark tp_get_conn_contactinfo_interface(void);
-GQuark tp_get_conn_forwarding_interface(void);
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C
-#endif
-GQuark tp_get_conn_presence_interface(void);
-GQuark tp_get_conn_avatar_interface(void);
-#ifdef __cplusplus
-}
-#endif
-GQuark tp_get_conn_privacy_interface(void);
-GQuark tp_get_conn_renaming_interface(void);
-
-
-
-#endif
--- a/libtelepathy/inc/tp-connmgr-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-/* tp-connmgr-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_ConnectionManager
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_ConnectionManager
-
-/* Vinod commented out 
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_connmgr_get_parameters (DBusGProxy *proxy, const char * IN_proto, GPtrArray** OUT_arg1, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetParameters", error, G_TYPE_STRING, IN_proto, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID)), OUT_arg1, G_TYPE_INVALID);
-}
-*/
-typedef void (*tp_connmgr_get_parameters_reply) (DBusGProxy *proxy, GPtrArray *OUT_arg1, GError *error, gpointer userdata);
-
-static void
-tp_connmgr_get_parameters_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GPtrArray* OUT_arg1;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID)), &OUT_arg1, G_TYPE_INVALID);
-  (*(tp_connmgr_get_parameters_reply)data->cb) (proxy, OUT_arg1, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_connmgr_get_parameters_async (DBusGProxy *proxy, const char * IN_proto, tp_connmgr_get_parameters_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetParameters", tp_connmgr_get_parameters_async_callback, stuff, g_free, G_TYPE_STRING, IN_proto, G_TYPE_INVALID);
-}
-
-/*MTa - commenting out for now
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_connmgr_list_protocols (DBusGProxy *proxy, char *** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "ListProtocols", error, G_TYPE_INVALID, G_TYPE_STRV, OUT_arg0, G_TYPE_INVALID);
-}
-*/
-
-typedef void (*tp_connmgr_list_protocols_reply) (DBusGProxy *proxy, char * *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_connmgr_list_protocols_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char ** OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRV, &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_connmgr_list_protocols_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_connmgr_list_protocols_async (DBusGProxy *proxy, tp_connmgr_list_protocols_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "ListProtocols", tp_connmgr_list_protocols_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_connmgr_request_connection (DBusGProxy *proxy, const char * IN_proto, const GHashTable* IN_parameters, char ** OUT_arg2, char** OUT_arg3, GError **error)
-
-{ 
-  return dbus_g_proxy_call (proxy, "RequestConnection", error, G_TYPE_STRING, IN_proto, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), IN_parameters, G_TYPE_INVALID, G_TYPE_STRING, OUT_arg2, DBUS_TYPE_G_OBJECT_PATH, OUT_arg3, G_TYPE_INVALID);
-}
-
-typedef void (*tp_connmgr_request_connection_reply) (DBusGProxy *proxy, char * OUT_arg2, char *OUT_arg3, GError *error, gpointer userdata);
-
-static void
-tp_connmgr_request_connection_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  char * OUT_arg2;
-  char* OUT_arg3;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_STRING, &OUT_arg2, DBUS_TYPE_G_OBJECT_PATH, &OUT_arg3, G_TYPE_INVALID);
-  (*(tp_connmgr_request_connection_reply)data->cb) (proxy, OUT_arg2, OUT_arg3, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_connmgr_request_connection_async (DBusGProxy *proxy, const char * IN_proto, const GHashTable* IN_parameters, tp_connmgr_request_connection_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "RequestConnection", tp_connmgr_request_connection_async_callback, stuff, g_free, G_TYPE_STRING, IN_proto, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), IN_parameters, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_ConnectionManager */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-connmgr-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * tp-connmgr-signals-marshal.h - Header for Telepathy interface names
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
- 
-#ifndef __tp_connmgr_signals_marshal_MARSHAL_H__
-#define __tp_connmgr_signals_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:STRING,OBJECT,STRING (tp-connmgr-signals-marshal.list:1) */
-extern void tp_connmgr_signals_marshal_VOID__STRING_OBJECT_STRING (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __tp_connmgr_signals_marshal_MARSHAL_H__ */
-
--- a/libtelepathy/inc/tp-connmgr.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-/* tp-connmgr.h
- *
- * 
- * Copyright (C) 2005 Collabora Ltd.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-
-
-#ifndef TP_CONNMGR_H
-#define TP_CONNMGR_H
-
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-#include "tp-connmgr-gen.h"
-#include "tp-conn.h"
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-#include <dbus/dbus.h>
-#include <glib.h>
-
-
-
-#define TELEPATHY_CONNMGR_TYPE  (tp_connmgr_get_type ())
-
-#define TELEPATHY_CONNMGR(obj)  (G_TYPE_CHECK_INSTANCE_CAST \
-		                    ((obj), TELEPATHY_CONNMGR_TYPE, \
-				     TpConnMgr))
-
-#define TELEPATHY_CONNMGR_CLASS(klass)  (G_TYPE_CHECK_CLASS_CAST \
-		                          ((klass), TELEPATHY_CONNMGR_TYPE, \
-					  TpConnMgrClass))
-
-#define TELEPATHY_IS_CONNMGR(obj)    (G_TYPE_CHECK_INSTANCE_TYPE \
-		                      ((obj), TELEPATHY_CONNMGR_TYPE))
-
-#define TELEPATHY_IS_CONNMGR_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE \
-		                           ((klass), TELEPATHY_CONNMGR_TYPE))
-
-#define TELEPATHY_CONNMGR_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS \
-		                            ((obj), TELEPATHY_CONNMGR_TYPE, \
-					    TpConnMgrClass))
-
-typedef struct _tp_connmgr TpConnMgr;
-typedef struct _tp_connmgrclass TpConnMgrClass;
-
-struct _tp_connmgr
-{
-  DBusGProxy parent;
-
-  gboolean first_run;
-};
-
-struct _tp_connmgrclass
-{
-  DBusGProxyClass parent_class;
-};
-
-GType tp_connmgr_get_type(void);
-
-/* Actual function definitions */
-
-
-/*
-* Creates a new TpConnmgr (Connection Manager) object.
-* @param connection: A connection to the D-BUS.
-* @param name: The service name for the connection manager
-* @param path_name: The path name for the connection manager
-* @param interface_name: The interface name for the connection manager
-* @return A new Connection Manager object, or NULL if failed
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif 
-TpConnMgr *tp_connmgr_new(DBusGConnection *connection,
-			const char *bus_name,
-			const char *object_path,
-			const char *interface_name);	
- #ifdef __cplusplus
-}
-#endif
-
-
-
-/* 
- * Creates a new TpConn object for this connection manager.
- * Also initializes a DBusGProxy object that is used to perform the
- * actual method calls. Thus, the connection should be usable
- * if this succeeds.
- * 
- * @param self: The connection manager object that the new connection
- * object is created for.  
- * @param connection_parameters: The parameters for the connection.
- * @protocol: The protocol for the connection.
- *
- * @return A TpConn object, or NULL if object could not be created.
- */
-
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif 
-TpConn *tp_connmgr_new_connection(TpConnMgr *self,
-				  GHashTable *connection_parameters,
-				  gchar *protocol);
-#ifdef __cplusplus
-}
-#endif
-
-
-
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif 
-gboolean tp_connmgr_list_protocols(TpConnMgr *self, char *** proto);
-#ifdef __cplusplus
-}
-#endif
-
-
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif 
-gboolean tp_connmgr_get_parameters (TpConnMgr *self, const char * IN_proto, GPtrArray** OUT_arg1);
-#ifdef __cplusplus
-}
-#endif
-
-
-
-
-#endif
-
--- a/libtelepathy/inc/tp-constants.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
-/*
- * tp-constants.h - constants used in telepathy 
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __TELEPATHY_CONSTANTS_H__
-#define __TELEPATHY_CONSTANTS_H__ 
-
-#include <glib.h>
-G_BEGIN_DECLS
-
-typedef enum {
-TP_CONN_ALIAS_FLAG_USER_SET = 1,
-LAST_TP_CONN_ALIAS_FLAG
-} ConnectionAliasFlags;
-
-typedef enum {
-TP_CONN_CAPABILITY_TYPE_CREATE = 0,
-TP_CONN_CAPABILITY_TYPE_INVITE = 1,
-LAST_TP_CONN_CAPABILITY_TYPE
-} TelepathyConnectionCapabilityType;
-
-typedef enum {
-TP_CONN_HANDLE_TYPE_NONE = 0,
-TP_CONN_HANDLE_TYPE_CONTACT = 1,
-TP_CONN_HANDLE_TYPE_ROOM = 2,
-TP_CONN_HANDLE_TYPE_LIST = 3,
-LAST_TP_CONN_HANDLE_TYPE
-} TelepathyConnectionHandleType;
-
-typedef enum {
-TP_CONN_PRESENCE_TYPE_UNSET = 0,
-TP_CONN_PRESENCE_TYPE_OFFLINE = 1,
-TP_CONN_PRESENCE_TYPE_AVAILABLE = 2,
-TP_CONN_PRESENCE_TYPE_AWAY = 3,
-TP_CONN_PRESENCE_TYPE_EXTENDED_AWAY = 4,
-TP_CONN_PRESENCE_TYPE_HIDDEN = 5,
-LAST_TP_CONN_PRESENCE_TYPE
-} TelepathyConnectionPresenceType;
-
-typedef enum {
-TP_CONN_STATUS_CONNECTED = 0,
-TP_CONN_STATUS_CONNECTING = 1,
-TP_CONN_STATUS_DISCONNECTED = 2,
-LAST_TP_CONN_STATUS
-} TelepathyConnectionStatus;
-
-typedef enum {
-TP_CONN_STATUS_REASON_NONE_SPECIFIED = 0,
-TP_CONN_STATUS_REASON_REQUESTED = 1,
-TP_CONN_STATUS_REASON_NETWORK_ERROR = 2,
-TP_CONN_STATUS_REASON_AUTHENTICATION_FAILED = 3,
-TP_CONN_STATUS_REASON_ENCRYPTION_ERROR = 4,
-TP_CONN_STATUS_REASON_NAME_IN_USE = 5,
-TP_CONN_STATUS_REASON_CERT_NOT_PROVIDED = 6,
-TP_CONN_STATUS_REASON_CERT_UNTRUSTED = 7,
-TP_CONN_STATUS_REASON_CERT_EXPIRED = 8,
-TP_CONN_STATUS_REASON_CERT_NOT_ACTIVATED = 9,
-TP_CONN_STATUS_REASON_CERT_HOSTNAME_MISMATCH = 10,
-TP_CONN_STATUS_REASON_CERT_FINGERPRINT_MISMATCH = 11,
-TP_CONN_STATUS_REASON_CERT_SELF_SIGNED = 12,
-TP_CONN_STATUS_REASON_CERT_OTHER_ERROR = 13,
-LAST_TP_CONN_STATUS_REASON
-} TelepathyConnectionStatusReason;
-
-typedef enum {
-TP_CHANNEL_CONTACT_SEARCH_STATE_BEFORE = 0,
-TP_CHANNEL_CONTACT_SEARCH_STATE_DURING = 1,
-TP_CHANNEL_CONTACT_SEARCH_STATE_AFTER = 2,
-LAST_TP_CHANNEL_CONTACT_SEARCH_STATE
-} TelepathyChannelContactSearchState;
-
-typedef enum {
-TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL = 0,
-TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION = 1,
-TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE = 2,
-TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY = 3,
-LAST_TP_CHANNEL_TEXT_MESSAGE_TYPE
-} TelepathyChannelTextMessageType;
-
-typedef enum {
-TP_CHANNEL_TEXT_SEND_ERROR_UNKNOWN = 0,
-TP_CHANNEL_TEXT_SEND_ERROR_OFFLINE = 1,
-TP_CHANNEL_TEXT_SEND_ERROR_INVALID_CONTACT = 2,
-TP_CHANNEL_TEXT_SEND_ERROR_PERMISSION_DENIED = 3,
-TP_CHANNEL_TEXT_SEND_ERROR_TOO_LONG = 4,
-LAST_TP_CHANNEL_TEXT_SEND_ERROR
-} TelepathyChannelTextSendError;
-
-typedef enum {
-TP_CHANNEL_GROUP_FLAG_CAN_ADD = 1,
-TP_CHANNEL_GROUP_FLAG_CAN_REMOVE = 2,
-TP_CHANNEL_GROUP_FLAG_CAN_RESCIND = 4,
-TP_CHANNEL_GROUP_FLAG_MESSAGE_ADD = 8,
-TP_CHANNEL_GROUP_FLAG_MESSAGE_REMOVE = 16,
-TP_CHANNEL_GROUP_FLAG_MESSAGE_ACCEPT = 32,
-TP_CHANNEL_GROUP_FLAG_MESSAGE_REJECT = 64,
-TP_CHANNEL_GROUP_FLAG_MESSAGE_RESCIND = 128,
-TP_CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES = 256,
-LAST_TP_CHANNEL_GROUP_FLAG
-} TelepathyChannelGroupFlags;
-
-typedef enum {
-TP_CHANNEL_HOLD_STATE_NONE = 0,
-TP_CHANNEL_HOLD_STATE_SEND_ONLY = 1,
-TP_CHANNEL_HOLD_STATE_RECV_ONLY = 2,
-TP_CHANNEL_HOLD_STATE_BOTH = 3,
-LAST_TP_CHANNEL_HOLD_STATE
-} TelepathyChannelHoldState;
-
-typedef enum {
-TP_CHANNEL_PASSWORD_FLAG_REQUIRED = 1,
-TP_CHANNEL_PASSWORD_FLAG_VISIBLE = 2,
-TP_CHANNEL_PASSWORD_FLAG_MODIFIABLE = 4,
-TP_CHANNEL_PASSWORD_FLAG_PROVIDE = 8,
-LAST_TP_CHANNEL_PASSWORD_FLAG
-} TelepathyChannelPasswordFlags;
-
-typedef enum {
-TP_CHANNEL_SUBJECT_FLAG_PRESENT = 1,
-TP_CHANNEL_SUBJECT_FLAG_MODIFIABLE = 2,
-LAST_TP_CHANNEL_SUBJECT_FLAG
-} TelepathyChannelSubjectFlags;
-
-typedef enum {
-TP_MEDIA_STREAM_TYPE_AUDIO = 0,
-TP_MEDIA_STREAM_TYPE_VIDEO = 1,
-LAST_TP_MEDIA_STREAM_TYPE
-} TelepathyMediaStreamType;
-
-typedef enum {
-TP_MEDIA_STREAM_DIRECTION_NONE = 0,
-TP_MEDIA_STREAM_DIRECTION_SEND = 1,
-TP_MEDIA_STREAM_DIRECTION_RECIEVE = 2,
-TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL = 3,
-LAST_TP_MEDIA_STREAM_DIRECTION
-} TelepathyMediaStreamDirection;
-
-typedef enum {
-TP_MEDIA_STREAM_ERROR_UNKNOWN = 0,
-TP_MEDIA_STREAM_ERROR_EOS = 1,
-LAST_TP_MEDIA_STREAM_ERROR
-} TelepathyMediaStreamError;
-
-typedef enum {
-TP_MEDIA_STREAM_PROTO_UDP = 0,
-TP_MEDIA_STREAM_PROTO_TCP = 1,
-LAST_TP_MEDIA_STREAM_PROTO
-} TelepathyMediaStreamProto;
-
-typedef enum {
-TP_MEDIA_STREAM_TRANSPORT_TYPE_LOCAL = 0,
-TP_MEDIA_STREAM_TRANSPORT_TYPE_DERIVED = 1,
-TP_MEDIA_STREAM_TRANSPORT_TYPE_RELAY = 2,
-LAST_TP_MEDIA_STREAM_TRANSPORT_TYPE
-} TelepathyMediaStreamTransportType;
-
-typedef enum {
-TP_CODEC_MEDIA_TYPE_AUDIO = 0,
-TP_CODEC_MEDIA_TYPE_VIDEO = 1,
-} TelepathyCodecMediaType;
-
-typedef enum {
-TP_MEDIA_STREAM_STATE_STOPPED = 0,
-TP_MEDIA_STREAM_STATE_PLAYING = 1,
-TP_MEDIA_STREAM_STATE_CONNECTING = 2,
-TP_MEDIA_STREAM_STATE_CONNECTED = 3
-} TelepathyMediaStreamState;
-
-typedef enum {
-TP_PROPERTY_FLAG_READ = 1,
-TP_PROPERTY_FLAG_WRITE = 2
-} TelepathyPropertyFlags;
-
-G_END_DECLS
-
-
-#endif
--- a/libtelepathy/inc/tp-helpers.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * tp-helpers.h - Header for various helper functions 
- * for telepathy implementation
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __TELEPATHY_HELPERS_H__
-#define __TELEPATHY_HELPERS_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-typedef struct
-{
-  gpointer key;
-  gpointer value;
-} TpKeyValue;
-
-DBusGConnection * tp_get_bus ();
-DBusGProxy * tp_get_bus_proxy ();
-GSList *tp_hash_to_key_value_list(GHashTable *hashtable);
-void tp_key_value_list_free(GSList *list);
-
-
-typedef struct _tp_connmgr_info TpConnMgrInfo;
-typedef struct _tp_connmgr_protocol_info TpConnMgrProtInfo;
-
-struct _tp_connmgr_protocol_info
-{
-  gchar **mandatory_params;
-  gchar **optional_params;
-
-  /* defaul value hash */
-  GHashTable *default_params;
-};
-
-struct _tp_connmgr_info
-{
-  gchar *name;
-  gchar *bus_name;
-  gchar *object_path;
-  gchar **protocols;
-
-  /* hash of protocol infos */
-  GHashTable *protocol_info;
-};
-
-/*
- * Lists all the connection manager files.
- * @return A list of connection manager names
- */
-GSList *tp_connmgr_list_cms(void);
-
-/*
- * Returns the connection manager information for the given connection manager
- * @param cm: the connection manager name string
- * @return A struct containing all the information read from the connection
- * manager file.
- */
-TpConnMgrInfo *tp_connmgr_get_info(gchar *cm);
-
-
-G_END_DECLS
-
-#endif /* __TELEPATHY_HELPERS_H__ */
-
--- a/libtelepathy/inc/tp-ice-session-handler-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/* tp-ice-session-handler-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Ice_SessionHandler
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Ice_SessionHandler
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_ice_session_handler_error (DBusGProxy *proxy, const guint IN_errno, const char * IN_message, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "Error", error, G_TYPE_UINT, IN_errno, G_TYPE_STRING, IN_message, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_ice_session_handler_error_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_ice_session_handler_error_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_ice_session_handler_error_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_ice_session_handler_error_async (DBusGProxy *proxy, const guint IN_errno, const char * IN_message, tp_ice_session_handler_error_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "Error", tp_ice_session_handler_error_async_callback, stuff, g_free, G_TYPE_UINT, IN_errno, G_TYPE_STRING, IN_message, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_ice_session_handler_ready (DBusGProxy *proxy, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "Ready", error, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_ice_session_handler_ready_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_ice_session_handler_ready_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_ice_session_handler_ready_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_ice_session_handler_ready_async (DBusGProxy *proxy, tp_ice_session_handler_ready_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "Ready", tp_ice_session_handler_ready_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Ice_SessionHandler */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-ice-stream-handler-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,330 +0,0 @@
-/* tp-ice-stream-handler-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Ice_StreamHandler
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Ice_StreamHandler
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_ice_stream_handler_codec_choice (DBusGProxy *proxy, const guint IN_codec_id, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "CodecChoice", error, G_TYPE_UINT, IN_codec_id, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_ice_stream_handler_codec_choice_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_ice_stream_handler_codec_choice_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_ice_stream_handler_codec_choice_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_ice_stream_handler_codec_choice_async (DBusGProxy *proxy, const guint IN_codec_id, tp_ice_stream_handler_codec_choice_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "CodecChoice", tp_ice_stream_handler_codec_choice_async_callback, stuff, g_free, G_TYPE_UINT, IN_codec_id, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_ice_stream_handler_error (DBusGProxy *proxy, const guint IN_errno, const char * IN_message, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "Error", error, G_TYPE_UINT, IN_errno, G_TYPE_STRING, IN_message, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_ice_stream_handler_error_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_ice_stream_handler_error_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_ice_stream_handler_error_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_ice_stream_handler_error_async (DBusGProxy *proxy, const guint IN_errno, const char * IN_message, tp_ice_stream_handler_error_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "Error", tp_ice_stream_handler_error_async_callback, stuff, g_free, G_TYPE_UINT, IN_errno, G_TYPE_STRING, IN_message, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_ice_stream_handler_native_candidates_prepared (DBusGProxy *proxy, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "NativeCandidatesPrepared", error, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_ice_stream_handler_native_candidates_prepared_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_ice_stream_handler_native_candidates_prepared_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_ice_stream_handler_native_candidates_prepared_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_ice_stream_handler_native_candidates_prepared_async (DBusGProxy *proxy, tp_ice_stream_handler_native_candidates_prepared_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "NativeCandidatesPrepared", tp_ice_stream_handler_native_candidates_prepared_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_ice_stream_handler_new_active_candidate_pair (DBusGProxy *proxy, const char * IN_native_candidate_id, const char * IN_remote_candidate_id, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "NewActiveCandidatePair", error, G_TYPE_STRING, IN_native_candidate_id, G_TYPE_STRING, IN_remote_candidate_id, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_ice_stream_handler_new_active_candidate_pair_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_ice_stream_handler_new_active_candidate_pair_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_ice_stream_handler_new_active_candidate_pair_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_ice_stream_handler_new_active_candidate_pair_async (DBusGProxy *proxy, const char * IN_native_candidate_id, const char * IN_remote_candidate_id, tp_ice_stream_handler_new_active_candidate_pair_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "NewActiveCandidatePair", tp_ice_stream_handler_new_active_candidate_pair_async_callback, stuff, g_free, G_TYPE_STRING, IN_native_candidate_id, G_TYPE_STRING, IN_remote_candidate_id, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_ice_stream_handler_new_native_candidate (DBusGProxy *proxy, const char * IN_candidate_id, const GPtrArray* IN_transports, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "NewNativeCandidate", error, G_TYPE_STRING, IN_candidate_id, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_DOUBLE, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID)), IN_transports, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_ice_stream_handler_new_native_candidate_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_ice_stream_handler_new_native_candidate_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_ice_stream_handler_new_native_candidate_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_ice_stream_handler_new_native_candidate_async (DBusGProxy *proxy, const char * IN_candidate_id, const GPtrArray* IN_transports, tp_ice_stream_handler_new_native_candidate_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "NewNativeCandidate", tp_ice_stream_handler_new_native_candidate_async_callback, stuff, g_free, G_TYPE_STRING, IN_candidate_id, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_DOUBLE, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID)), IN_transports, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_ice_stream_handler_ready (DBusGProxy *proxy, const GPtrArray* IN_codecs, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "Ready", error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_STRING), G_TYPE_INVALID)), IN_codecs, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_ice_stream_handler_ready_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_ice_stream_handler_ready_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_ice_stream_handler_ready_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_ice_stream_handler_ready_async (DBusGProxy *proxy, const GPtrArray* IN_codecs, tp_ice_stream_handler_ready_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "Ready", tp_ice_stream_handler_ready_async_callback, stuff, g_free, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_STRING), G_TYPE_INVALID)), IN_codecs, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_ice_stream_handler_stream_state (DBusGProxy *proxy, const guint IN_state, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "StreamState", error, G_TYPE_UINT, IN_state, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_ice_stream_handler_stream_state_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_ice_stream_handler_stream_state_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_ice_stream_handler_stream_state_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_ice_stream_handler_stream_state_async (DBusGProxy *proxy, const guint IN_state, tp_ice_stream_handler_stream_state_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "StreamState", tp_ice_stream_handler_stream_state_async_callback, stuff, g_free, G_TYPE_UINT, IN_state, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_ice_stream_handler_supported_codecs (DBusGProxy *proxy, const GPtrArray* IN_codecs, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "SupportedCodecs", error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_STRING), G_TYPE_INVALID)), IN_codecs, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_ice_stream_handler_supported_codecs_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_ice_stream_handler_supported_codecs_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_ice_stream_handler_supported_codecs_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_ice_stream_handler_supported_codecs_async (DBusGProxy *proxy, const GPtrArray* IN_codecs, tp_ice_stream_handler_supported_codecs_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "SupportedCodecs", tp_ice_stream_handler_supported_codecs_async_callback, stuff, g_free, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_STRING), G_TYPE_INVALID)), IN_codecs, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Ice_StreamHandler */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-ifaces-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*
- * tp-ifaces-signals-marshal.h - Header for Telepathy interface names
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
- 
-#ifndef __tp_ifaces_signals_marshal_MARSHAL_H__
-#define __tp_ifaces_signals_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:UINT,STRING (tp-ifaces-signals-marshal.list:3) */
-extern void tp_ifaces_signals_marshal_VOID__UINT_STRING (GClosure     *closure,
-                                                         GValue       *return_value,
-                                                         guint         n_param_values,
-                                                         const GValue *param_values,
-                                                         gpointer      invocation_hint,
-                                                         gpointer      marshal_data);
-
-/* VOID:UINT,BOXED,BOXED (tp-ifaces-signals-marshal.list:5) */
-extern void tp_ifaces_signals_marshal_VOID__UINT_BOXED_BOXED (GClosure     *closure,
-                                                              GValue       *return_value,
-                                                              guint         n_param_values,
-                                                              const GValue *param_values,
-                                                              gpointer      invocation_hint,
-                                                              gpointer      marshal_data);
-
-/* VOID:STRING (tp-ifaces-signals-marshal.list:7) */
-#define tp_ifaces_signals_marshal_VOID__STRING	g_cclosure_marshal_VOID__STRING
-
-/* VOID:INT,BOXED (tp-ifaces-signals-marshal.list:11) */
-extern void tp_ifaces_signals_marshal_VOID__INT_BOXED (GClosure     *closure,
-                                                       GValue       *return_value,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint,
-                                                       gpointer      marshal_data);
-
-
-/* VOID:STRING,BOXED */
-//Added for search
-extern void
-tp_ifaces_signals_marshal_VOID__UINT_BOXED (GClosure     *closure,
-                                           GValue       *return_value,
-                                           guint         n_param_values,
-                                           const GValue *param_values,
-                                           gpointer      invocation_hint,
-                                           gpointer      marshal_data);
-                                           
-/* VOID:UINT (tp-ifaces-signals-marshal.list:13) */
-#define tp_ifaces_signals_marshal_VOID__UINT	g_cclosure_marshal_VOID__UINT
-
-/* VOID:UINT,STRING,STRING (tp-ifaces-signals-marshal.list:15) */
-extern void tp_ifaces_signals_marshal_VOID__UINT_STRING_STRING (GClosure     *closure,
-                                                                GValue       *return_value,
-                                                                guint         n_param_values,
-                                                                const GValue *param_values,
-                                                                gpointer      invocation_hint,
-                                                                gpointer      marshal_data);
-
-/* VOID:UINT,UINT,UINT (tp-ifaces-signals-marshal.list:17) */
-extern void tp_ifaces_signals_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
-                                                            GValue       *return_value,
-                                                            guint         n_param_values,
-                                                            const GValue *param_values,
-                                                            gpointer      invocation_hint,
-                                                            gpointer      marshal_data);
-
-/* VOID:BOOLEAN (tp-ifaces-signals-marshal.list:19) */
-#define tp_ifaces_signals_marshal_VOID__BOOLEAN	g_cclosure_marshal_VOID__BOOLEAN
-
-/* VOID:UINT,UINT,UINT,UINT,UINT,STRING (tp-ifaces-signals-marshal.list:21) */
-extern void tp_ifaces_signals_marshal_VOID__UINT_UINT_UINT_UINT_UINT_STRING (GClosure     *closure,
-                                                                             GValue       *return_value,
-                                                                             guint         n_param_values,
-                                                                             const GValue *param_values,
-                                                                             gpointer      invocation_hint,
-                                                                             gpointer      marshal_data);
-
-/* VOID:UINT,UINT,STRING (tp-ifaces-signals-marshal.list:23) */
-extern void tp_ifaces_signals_marshal_VOID__UINT_UINT_STRING (GClosure     *closure,
-                                                              GValue       *return_value,
-                                                              guint         n_param_values,
-                                                              const GValue *param_values,
-                                                              gpointer      invocation_hint,
-                                                              gpointer      marshal_data);
-
-/* VOID:UINT,UINT (tp-ifaces-signals-marshal.list:27) */
-extern void tp_ifaces_signals_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                                       GValue       *return_value,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint,
-                                                       gpointer      marshal_data);
-
-/* VOID:STRING,BOXED,BOXED,BOXED,BOXED,UINT,UINT (tp-ifaces-signals-marshal.list:29) */
-extern void tp_ifaces_signals_marshal_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT (GClosure     *closure,
-                                                                                      GValue       *return_value,
-                                                                                      guint         n_param_values,
-                                                                                      const GValue *param_values,
-                                                                                      gpointer      invocation_hint,
-                                                                                      gpointer      marshal_data);
-
-/* VOID:BOXED (tp-ifaces-signals-marshal.list:33) */
-#define tp_ifaces_signals_marshal_VOID__BOXED	g_cclosure_marshal_VOID__BOXED
-
-/* VOID:UINT,UINT,UINT,STRING (tp-ifaces-signals-marshal.list:35) */
-extern void tp_ifaces_signals_marshal_VOID__UINT_UINT_UINT_STRING (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data);
-
-/* VOID:OBJECT,STRING (tp-ifaces-signals-marshal.list:37) */
-extern void tp_ifaces_signals_marshal_VOID__OBJECT_STRING (GClosure     *closure,
-                                                           GValue       *return_value,
-                                                           guint         n_param_values,
-                                                           const GValue *param_values,
-                                                           gpointer      invocation_hint,
-                                                           gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __tp_ifaces_signals_marshal_MARSHAL_H__ */
-
--- a/libtelepathy/inc/tp-interfaces.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
- * tp-interfaces.h - Header for Telepathy interface names
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __TELEPATHY_INTERFACES_H__
-#define __TELEPATHY_INTERFACES_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define TP_IFACE_CHANNEL_INTERFACE \
-        "org.freedesktop.Telepathy.Channel"
-#define TP_IFACE_CHANNEL_INTERFACE_DTMF \
-        "org.freedesktop.Telepathy.Channel.Interface.DTMF"
-#define TP_IFACE_CHANNEL_INTERFACE_GROUP \
-        "org.freedesktop.Telepathy.Channel.Interface.Group"
-#define TP_IFACE_CHANNEL_INTERFACE_HOLD \
-        "org.freedesktop.Telepathy.Channel.Interface.Hold"
-#define TP_IFACE_CHANNEL_INTERFACE_PASSWORD \
-        "org.freedesktop.Telepathy.Channel.Interface.Password"
-#define TP_IFACE_CHANNEL_INTERFACE_SUBJECT \
-        "org.freedesktop.Telepathy.Channel.Interface.Subject"
-#define TP_IFACE_CHANNEL_INTERFACE_TRANSFER \
-        "org.freedesktop.Telepathy.Channel.Interface.Transfer"
-#define TP_IFACE_CHANNEL_TYPE_CONTACT_LIST \
-        "org.freedesktop.Telepathy.Channel.Type.ContactList"
-
-#define TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH \
-        "org.freedesktop.Telepathy.Channel.Type.ContactSearch"
-
-#define TP_IFACE_CHANNEL_TYPE_ROOM_LIST \
-        "org.freedesktop.Telepathy.Channel.Type.RoomList"
-#define TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA \
-        "org.freedesktop.Telepathy.Channel.Type.StreamedMedia"
-#define TP_IFACE_CHANNEL_TYPE_TEXT \
-        "org.freedesktop.Telepathy.Channel.Type.Text"
-#define TP_IFACE_CONN_INTERFACE \
-        "org.freedesktop.Telepathy.Connection"
-#define TP_IFACE_CONN_INTERFACE_ALIASING \
-        "org.freedesktop.Telepathy.Connection.Interface.Aliasing"
-#define TP_IFACE_CONN_INTERFACE_CAPABILITIES \
-        "org.freedesktop.Telepathy.Connection.Interface.Capabilities"
-#define TP_IFACE_CONN_INTERFACE_CONTACT_INFO \
-        "org.freedesktop.Telepathy.Connection.Interface.ContactInfo"
-#define TP_IFACE_CONN_INTERFACE_FORWARDING \
-        "org.freedesktop.Telepathy.Connection.Interface.Forwarding"
-#define TP_IFACE_CONN_INTERFACE_PRESENCE \
-        "org.freedesktop.Telepathy.Connection.Interface.Presence"
-#define TP_IFACE_CONN_INTERFACE_PRIVACY \
-        "org.freedesktop.Telepathy.Connection.Interface.Privacy"
-#define TP_IFACE_CONN_INTERFACE_AVATAR \
-    "org.freedesktop.Telepathy.Connection.Interface.Avatars"
-#define TP_IFACE_CONN_INTERFACE_RENAMING \
-        "org.freedesktop.Telepathy.Connection.Interface.Renaming"
-#define TP_IFACE_CONN_MGR_INTERFACE \
-        "org.freedesktop.Telepathy.ConnectionManager"
-#define TP_IFACE_MEDIA_SESSION_HANDLER \
-        "org.freedesktop.Telepathy.Media.SessionHandler"
-#define TP_IFACE_MEDIA_STREAM_HANDLER \
-        "org.freedesktop.Telepathy.Media.StreamHandler"
-#define TP_IFACE_PROPERTIES \
-        "org.freedesktop.Telepathy.Properties"
-
-G_END_DECLS
-
-#endif /* #ifndef __TELEPATHY_INTERFACES_H__*/
--- a/libtelepathy/inc/tp-props-iface-gen.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/* tp-props-iface-gen.h
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib/gtypes.h>
-#include <glib/gerror.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Properties
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Properties
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_props_iface_get_properties (DBusGProxy *proxy, const GArray* IN_properties, GPtrArray** OUT_arg1, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "GetProperties", error, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_properties, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_VALUE, G_TYPE_INVALID)), OUT_arg1, G_TYPE_INVALID);
-}
-
-typedef void (*tp_props_iface_get_properties_reply) (DBusGProxy *proxy, GPtrArray *OUT_arg1, GError *error, gpointer userdata);
-
-static void
-tp_props_iface_get_properties_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GPtrArray* OUT_arg1;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_VALUE, G_TYPE_INVALID)), &OUT_arg1, G_TYPE_INVALID);
-  (*(tp_props_iface_get_properties_reply)data->cb) (proxy, OUT_arg1, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_props_iface_get_properties_async (DBusGProxy *proxy, const GArray* IN_properties, tp_props_iface_get_properties_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "GetProperties", tp_props_iface_get_properties_async_callback, stuff, g_free, dbus_g_type_get_collection ("GArray", G_TYPE_UINT), IN_properties, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_props_iface_list_properties (DBusGProxy *proxy, GPtrArray** OUT_arg0, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "ListProperties", error, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID)), OUT_arg0, G_TYPE_INVALID);
-}
-
-typedef void (*tp_props_iface_list_properties_reply) (DBusGProxy *proxy, GPtrArray *OUT_arg0, GError *error, gpointer userdata);
-
-static void
-tp_props_iface_list_properties_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  GPtrArray* OUT_arg0;
-  dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID)), &OUT_arg0, G_TYPE_INVALID);
-  (*(tp_props_iface_list_properties_reply)data->cb) (proxy, OUT_arg0, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_props_iface_list_properties_async (DBusGProxy *proxy, tp_props_iface_list_properties_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "ListProperties", tp_props_iface_list_properties_async_callback, stuff, g_free, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-tp_props_iface_set_properties (DBusGProxy *proxy, const GPtrArray* IN_properties, GError **error)
-
-{
-  return dbus_g_proxy_call (proxy, "SetProperties", error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_VALUE, G_TYPE_INVALID)), IN_properties, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*tp_props_iface_set_properties_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-tp_props_iface_set_properties_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
-  DBusGAsyncData *data = (DBusGAsyncData*)user_data;
-  GError *error = NULL;
-  dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
-  (*(tp_props_iface_set_properties_reply)data->cb) (proxy, error, data->userdata);
-  return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-tp_props_iface_set_properties_async (DBusGProxy *proxy, const GPtrArray* IN_properties, tp_props_iface_set_properties_reply callback, gpointer userdata)
-
-{
-  DBusGAsyncData *stuff;
-  stuff = g_new (DBusGAsyncData, 1);
-  stuff->cb = G_CALLBACK (callback);
-  stuff->userdata = userdata;
-  return dbus_g_proxy_begin_call (proxy, "SetProperties", tp_props_iface_set_properties_async_callback, stuff, g_free, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_VALUE, G_TYPE_INVALID)), IN_properties, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_Telepathy_Properties */
-
-G_END_DECLS
--- a/libtelepathy/inc/tp-props-iface.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/* tp-props-iface.h
- *
- * 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#ifndef TP_PROPS_IFACE_H
-#define TP_PROPS_IFACE_H
-
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-#include <dbus/dbus-glib.h>
-
-#include "tp-constants.h"
-#include "tp-props-iface-gen.h"
-
-#define TELEPATHY_PROPS_IFACE_QUARK (tp_get_props_interface())
-
-typedef struct _TpPropsIface TpPropsIface;
-typedef struct _TpPropsIfaceClass TpPropsIfaceClass;
-
-struct _TpPropsIface
-{
-  DBusGProxy parent;
-  gpointer priv;
-};
-
-struct _TpPropsIfaceClass
-{
-  DBusGProxyClass parent_class;
-};
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif
-GType tp_props_iface_get_type (void);
-#ifdef __cplusplus
-}
-#endif
-
-#define TELEPATHY_PROPS_IFACE_TYPE (tp_props_iface_get_type ())
-
-#define TELEPATHY_PROPS_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST \
-                                   ((obj), TELEPATHY_PROPS_IFACE_TYPE, \
-                                    TpPropsIface))
-
-#define TELEPATHY_PROPS_IFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST \
-                                     ((klass), TELEPATHY_PROPS_IFACE_TYPE, \
-                                      TpPropsIfaceClass))
-
-#define TELEPATHY_IS_PROPS_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE \
-                                ((obj), TELEPATHY_PROPS_IFACE_TYPE))
-
-#define TELEPATHY_IS_PROPS_IFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE \
-                                        ((klass), TELEPATHY_PROPS_IFACE_TYPE))
-
-#define TELEPATHY_PROPS_IFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS \
-                                       ((obj), TELEPATHY_PROPS_IFACE_TYPE, \
-                                        TpPropsIfaceClass))
-
-/**
- * TpPropsChangedFlags:
- * @TP_PROPS_CHANGED_VALUE: The value of the property changed.
- * @TP_PROPS_CHANGED_FLAGS: The flags of the property changed.
- */
-typedef enum
-{
-  TP_PROPS_CHANGED_VALUE = 0x01,
-  TP_PROPS_CHANGED_FLAGS = 0x02
-} TpPropsChanged;
-
-TpPropsIface * tp_props_iface_new (DBusGConnection *connection,
-                                 const char      *name,
-                                 const char      *path_name);
-
-void tp_props_iface_set_mapping (TpPropsIface *iface,
-                                const gchar *first_name, ...);
-gboolean tp_props_iface_get_value (TpPropsIface* iface, guint prop_id,
-                                  GValue *return_value);
-
-gboolean tp_props_iface_set_value (TpPropsIface* iface, guint prop_id,
-                                  const GValue *value);
-
-TelepathyPropertyFlags tp_props_iface_property_flags (TpPropsIface* iface, guint prop_id);
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-#ifdef SYMBIAN
-IMPORT_C 
-#endif
-GQuark tp_get_props_interface(void);
-#ifdef __cplusplus
-}
-#endif
-
-void tp_props_interface_set_signatures (DBusGProxy *proxy);
-#endif
--- a/libtelepathy/rom/libtelepathy.iby	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-
-/* libtelepathy.iby
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#ifndef __LIBTELEPATHY_IBY__
-#define __LIBTELEPATHY_IBY__
-
-
-//Telepathy DLLs
-file=ABI_DIR\BUILD_DIR\libtelepathy.dll      			    SHARED_LIB_DIR\libtelepathy.dll
-
-// mecostub SIS, provides support for SIS upgrading
-//data=DATAZ_\system\install\meco_stub.sis     system\install\meco_stub.sis
-
-#endif
-
-
--- a/libtelepathy/src/Makefile.am	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-# Move this back to GENHEADERS once dbus-binding-tool supports 'g' type
-#    tp-chan-type-contact-search-gen.h
-
-GENHEADERS = \
-    tp-connmgr-gen.h \
-    tp-conn-gen.h \
-    tp-chan-gen.h \
-    tp-conn-iface-avatars-gen.h \
-    tp-chan-iface-dtmf-gen.h \
-    tp-chan-iface-group-gen.h \
-    tp-chan-iface-hold-gen.h \
-    tp-chan-iface-password-gen.h \
-    tp-chan-iface-transfer-gen.h \
-    tp-chan-iface-ice-signalling-gen.h \
-    tp-chan-type-contact-list-gen.h \
-    tp-chan-type-room-list-gen.h \
-    tp-chan-type-streamed-media-gen.h \
-    tp-chan-type-text-gen.h \
-    tp-conn-iface-aliasing-gen.h \
-    tp-conn-iface-capabilities-gen.h \
-    tp-conn-iface-contact-info-gen.h \
-    tp-conn-iface-forwarding-gen.h \
-    tp-conn-iface-presence-gen.h \
-    tp-conn-iface-privacy-gen.h \
-    tp-conn-iface-renaming-gen.h \
-    tp-props-iface-gen.h \
-    tp-ch-gen.h \
-    tp-ice-session-handler-gen.h \
-    tp-ice-stream-handler-gen.h \
-    tp-ifaces-signals-marshal.h \
-    tp-chan-signals-marshal.h \
-    tp-conn-signals-marshal.h \
-    tp-connmgr-signals-marshal.h
-
-MARSHALLER_SOURCES = \
-    tp-ifaces-signals-marshal.c \
-    tp-chan-signals-marshal.c \
-    tp-conn-signals-marshal.c \
-    tp-connmgr-signals-marshal.c
-
-
-BUILT_SOURCES = \
-    $(GENHEADERS) \
-    $(MARSHALLER_SOURCES)
-
-
-# Correctly clean the generated headers, but keep the xml description
-CLEANFILES = $(BUILT_SOURCES)
-#Rule to generate the binding headers
-%-gen.h: $(top_builddir)/xml/%.xml Makefile.am
-	dbus-binding-tool --prefix=$* --mode=glib-client $< > $*-gen.h
-
-# Create the necessary marshallers for the signals implemented by the
-# library
-
-%-marshal.h: %-marshal.list Makefile.am
-	glib-genmarshal --header --prefix=$(subst -,_,$*)_marshal $< > $*-marshal.h
-
-%-marshal.c: %-marshal.list Makefile.am
-	glib-genmarshal --body --prefix=$(subst -,_,$*)_marshal $< > $*-marshal.c
-
-lib_LTLIBRARIES = libtelepathy.la
-
-libtelepathy_la_CFLAGS = $(DBUS_CFLAGS) $(ERROR_CFLAGS) $(GLIB_CFLAGS)
-libtelepathy_la_LIBADD = $(DBUS_LIBS) $(GLIB_LIBS)
-libtelepathy_la_LDFLAGS = \
-    -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-    -export-symbols-regex '^tp_' \
-    -export-dynamic
-
-CORESOURCES = \
-	tp-chan.c \
-	tp-conn.c \
-	tp-connmgr.c \
-	tp-helpers.c \
-	tp-props-iface.c
-
-COREHEADERS = \
-	tp-chan-ifaces-signal-setters.h \
-	tp-conn-ifaces-signal-setters.h \
-	tp-chan.h \
-	tp-conn.h \
-	tp-connmgr.h \
-	tp-constants.h \
-	tp-helpers.h \
-	tp-interfaces.h \
-	tp-props-iface.h
-
-libtelepathy_la_SOURCES = \
-	tp-chan-ifaces-signal-setters.c \
-	tp-conn-ifaces-signal-setters.c \
-	$(MARSHALLER_SOURCES) \
-	$(CORESOURCES) \
-	$(COREHEADERS)
-
-telepathyincdir=$(includedir)/telepathy-1.0/libtelepathy
-
-telepathyinc_HEADERS = \
-	$(COREHEADERS) \
-	$(GENHEADERS)
--- a/libtelepathy/src/Makefile.in	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,695 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# Move this back to GENHEADERS once dbus-binding-tool supports 'g' type
-#    tp-chan-type-contact-search-gen.h
-
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(telepathyinc_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(telepathyincdir)"
-libLTLIBRARIES_INSTALL = $(INSTALL)
-LTLIBRARIES = $(lib_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-libtelepathy_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1)
-am__objects_1 = libtelepathy_la-tp-ifaces-signals-marshal.lo \
-	libtelepathy_la-tp-chan-signals-marshal.lo \
-	libtelepathy_la-tp-conn-signals-marshal.lo \
-	libtelepathy_la-tp-connmgr-signals-marshal.lo
-am__objects_2 = libtelepathy_la-tp-chan.lo libtelepathy_la-tp-conn.lo \
-	libtelepathy_la-tp-connmgr.lo libtelepathy_la-tp-helpers.lo \
-	libtelepathy_la-tp-props-iface.lo
-am__objects_3 =
-am_libtelepathy_la_OBJECTS =  \
-	libtelepathy_la-tp-chan-ifaces-signal-setters.lo \
-	libtelepathy_la-tp-conn-ifaces-signal-setters.lo \
-	$(am__objects_1) $(am__objects_2) $(am__objects_3)
-libtelepathy_la_OBJECTS = $(am_libtelepathy_la_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libtelepathy_la_SOURCES)
-DIST_SOURCES = $(libtelepathy_la_SOURCES)
-telepathyincHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(telepathyinc_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_LIBS = @GLIB_LIBS@
-GREP = @GREP@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTELEPATHY_BINARY_AGE = @LIBTELEPATHY_BINARY_AGE@
-LIBTELEPATHY_INTERFACE_AGE = @LIBTELEPATHY_INTERFACE_AGE@
-LIBTELEPATHY_MAJORMINOR = @LIBTELEPATHY_MAJORMINOR@
-LIBTELEPATHY_MAJOR_VERSION = @LIBTELEPATHY_MAJOR_VERSION@
-LIBTELEPATHY_MICRO_VERSION = @LIBTELEPATHY_MICRO_VERSION@
-LIBTELEPATHY_MINOR_VERSION = @LIBTELEPATHY_MINOR_VERSION@
-LIBTELEPATHY_VERSION = @LIBTELEPATHY_VERSION@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_AGE = @LT_AGE@
-LT_CURRENT = @LT_CURRENT@
-LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
-LT_RELEASE = @LT_RELEASE@
-LT_REVISION = @LT_REVISION@
-MAKEINFO = @MAKEINFO@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-GENHEADERS = \
-    tp-connmgr-gen.h \
-    tp-conn-gen.h \
-    tp-chan-gen.h \
-    tp-conn-iface-avatars-gen.h \
-    tp-chan-iface-dtmf-gen.h \
-    tp-chan-iface-group-gen.h \
-    tp-chan-iface-hold-gen.h \
-    tp-chan-iface-password-gen.h \
-    tp-chan-iface-transfer-gen.h \
-    tp-chan-iface-ice-signalling-gen.h \
-    tp-chan-type-contact-list-gen.h \
-    tp-chan-type-room-list-gen.h \
-    tp-chan-type-streamed-media-gen.h \
-    tp-chan-type-text-gen.h \
-    tp-conn-iface-aliasing-gen.h \
-    tp-conn-iface-capabilities-gen.h \
-    tp-conn-iface-contact-info-gen.h \
-    tp-conn-iface-forwarding-gen.h \
-    tp-conn-iface-presence-gen.h \
-    tp-conn-iface-privacy-gen.h \
-    tp-conn-iface-renaming-gen.h \
-    tp-props-iface-gen.h \
-    tp-ch-gen.h \
-    tp-ice-session-handler-gen.h \
-    tp-ice-stream-handler-gen.h \
-    tp-ifaces-signals-marshal.h \
-    tp-chan-signals-marshal.h \
-    tp-conn-signals-marshal.h \
-    tp-connmgr-signals-marshal.h
-
-MARSHALLER_SOURCES = \
-    tp-ifaces-signals-marshal.c \
-    tp-chan-signals-marshal.c \
-    tp-conn-signals-marshal.c \
-    tp-connmgr-signals-marshal.c
-
-BUILT_SOURCES = \
-    $(GENHEADERS) \
-    $(MARSHALLER_SOURCES)
-
-
-# Correctly clean the generated headers, but keep the xml description
-CLEANFILES = $(BUILT_SOURCES)
-lib_LTLIBRARIES = libtelepathy.la
-libtelepathy_la_CFLAGS = $(DBUS_CFLAGS) $(ERROR_CFLAGS) $(GLIB_CFLAGS)
-libtelepathy_la_LIBADD = $(DBUS_LIBS) $(GLIB_LIBS)
-libtelepathy_la_LDFLAGS = \
-    -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-    -export-symbols-regex '^tp_' \
-    -export-dynamic
-
-CORESOURCES = \
-	tp-chan.c \
-	tp-conn.c \
-	tp-connmgr.c \
-	tp-helpers.c \
-	tp-props-iface.c
-
-COREHEADERS = \
-	tp-chan-ifaces-signal-setters.h \
-	tp-conn-ifaces-signal-setters.h \
-	tp-chan.h \
-	tp-conn.h \
-	tp-connmgr.h \
-	tp-constants.h \
-	tp-helpers.h \
-	tp-interfaces.h \
-	tp-props-iface.h
-
-libtelepathy_la_SOURCES = \
-	tp-chan-ifaces-signal-setters.c \
-	tp-conn-ifaces-signal-setters.c \
-	$(MARSHALLER_SOURCES) \
-	$(CORESOURCES) \
-	$(COREHEADERS)
-
-telepathyincdir = $(includedir)/telepathy-1.0/libtelepathy
-telepathyinc_HEADERS = \
-	$(COREHEADERS) \
-	$(GENHEADERS)
-
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    f=$(am__strip_dir) \
-	    echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
-	    $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
-	  else :; fi; \
-	done
-
-uninstall-libLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  p=$(am__strip_dir) \
-	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
-	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
-	done
-
-clean-libLTLIBRARIES:
-	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
-libtelepathy.la: $(libtelepathy_la_OBJECTS) $(libtelepathy_la_DEPENDENCIES) 
-	$(LINK) -rpath $(libdir) $(libtelepathy_la_LDFLAGS) $(libtelepathy_la_OBJECTS) $(libtelepathy_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtelepathy_la-tp-chan-ifaces-signal-setters.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtelepathy_la-tp-chan-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtelepathy_la-tp-chan.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtelepathy_la-tp-conn-ifaces-signal-setters.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtelepathy_la-tp-conn-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtelepathy_la-tp-conn.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtelepathy_la-tp-connmgr-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtelepathy_la-tp-connmgr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtelepathy_la-tp-helpers.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtelepathy_la-tp-ifaces-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtelepathy_la-tp-props-iface.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
-
-libtelepathy_la-tp-chan-ifaces-signal-setters.lo: tp-chan-ifaces-signal-setters.c
-@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -MT libtelepathy_la-tp-chan-ifaces-signal-setters.lo -MD -MP -MF "$(DEPDIR)/libtelepathy_la-tp-chan-ifaces-signal-setters.Tpo" -c -o libtelepathy_la-tp-chan-ifaces-signal-setters.lo `test -f 'tp-chan-ifaces-signal-setters.c' || echo '$(srcdir)/'`tp-chan-ifaces-signal-setters.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libtelepathy_la-tp-chan-ifaces-signal-setters.Tpo" "$(DEPDIR)/libtelepathy_la-tp-chan-ifaces-signal-setters.Plo"; else rm -f "$(DEPDIR)/libtelepathy_la-tp-chan-ifaces-signal-setters.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tp-chan-ifaces-signal-setters.c' object='libtelepathy_la-tp-chan-ifaces-signal-setters.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -c -o libtelepathy_la-tp-chan-ifaces-signal-setters.lo `test -f 'tp-chan-ifaces-signal-setters.c' || echo '$(srcdir)/'`tp-chan-ifaces-signal-setters.c
-
-libtelepathy_la-tp-conn-ifaces-signal-setters.lo: tp-conn-ifaces-signal-setters.c
-@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -MT libtelepathy_la-tp-conn-ifaces-signal-setters.lo -MD -MP -MF "$(DEPDIR)/libtelepathy_la-tp-conn-ifaces-signal-setters.Tpo" -c -o libtelepathy_la-tp-conn-ifaces-signal-setters.lo `test -f 'tp-conn-ifaces-signal-setters.c' || echo '$(srcdir)/'`tp-conn-ifaces-signal-setters.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libtelepathy_la-tp-conn-ifaces-signal-setters.Tpo" "$(DEPDIR)/libtelepathy_la-tp-conn-ifaces-signal-setters.Plo"; else rm -f "$(DEPDIR)/libtelepathy_la-tp-conn-ifaces-signal-setters.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tp-conn-ifaces-signal-setters.c' object='libtelepathy_la-tp-conn-ifaces-signal-setters.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -c -o libtelepathy_la-tp-conn-ifaces-signal-setters.lo `test -f 'tp-conn-ifaces-signal-setters.c' || echo '$(srcdir)/'`tp-conn-ifaces-signal-setters.c
-
-libtelepathy_la-tp-ifaces-signals-marshal.lo: tp-ifaces-signals-marshal.c
-@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -MT libtelepathy_la-tp-ifaces-signals-marshal.lo -MD -MP -MF "$(DEPDIR)/libtelepathy_la-tp-ifaces-signals-marshal.Tpo" -c -o libtelepathy_la-tp-ifaces-signals-marshal.lo `test -f 'tp-ifaces-signals-marshal.c' || echo '$(srcdir)/'`tp-ifaces-signals-marshal.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libtelepathy_la-tp-ifaces-signals-marshal.Tpo" "$(DEPDIR)/libtelepathy_la-tp-ifaces-signals-marshal.Plo"; else rm -f "$(DEPDIR)/libtelepathy_la-tp-ifaces-signals-marshal.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tp-ifaces-signals-marshal.c' object='libtelepathy_la-tp-ifaces-signals-marshal.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -c -o libtelepathy_la-tp-ifaces-signals-marshal.lo `test -f 'tp-ifaces-signals-marshal.c' || echo '$(srcdir)/'`tp-ifaces-signals-marshal.c
-
-libtelepathy_la-tp-chan-signals-marshal.lo: tp-chan-signals-marshal.c
-@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -MT libtelepathy_la-tp-chan-signals-marshal.lo -MD -MP -MF "$(DEPDIR)/libtelepathy_la-tp-chan-signals-marshal.Tpo" -c -o libtelepathy_la-tp-chan-signals-marshal.lo `test -f 'tp-chan-signals-marshal.c' || echo '$(srcdir)/'`tp-chan-signals-marshal.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libtelepathy_la-tp-chan-signals-marshal.Tpo" "$(DEPDIR)/libtelepathy_la-tp-chan-signals-marshal.Plo"; else rm -f "$(DEPDIR)/libtelepathy_la-tp-chan-signals-marshal.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tp-chan-signals-marshal.c' object='libtelepathy_la-tp-chan-signals-marshal.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -c -o libtelepathy_la-tp-chan-signals-marshal.lo `test -f 'tp-chan-signals-marshal.c' || echo '$(srcdir)/'`tp-chan-signals-marshal.c
-
-libtelepathy_la-tp-conn-signals-marshal.lo: tp-conn-signals-marshal.c
-@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -MT libtelepathy_la-tp-conn-signals-marshal.lo -MD -MP -MF "$(DEPDIR)/libtelepathy_la-tp-conn-signals-marshal.Tpo" -c -o libtelepathy_la-tp-conn-signals-marshal.lo `test -f 'tp-conn-signals-marshal.c' || echo '$(srcdir)/'`tp-conn-signals-marshal.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libtelepathy_la-tp-conn-signals-marshal.Tpo" "$(DEPDIR)/libtelepathy_la-tp-conn-signals-marshal.Plo"; else rm -f "$(DEPDIR)/libtelepathy_la-tp-conn-signals-marshal.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tp-conn-signals-marshal.c' object='libtelepathy_la-tp-conn-signals-marshal.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -c -o libtelepathy_la-tp-conn-signals-marshal.lo `test -f 'tp-conn-signals-marshal.c' || echo '$(srcdir)/'`tp-conn-signals-marshal.c
-
-libtelepathy_la-tp-connmgr-signals-marshal.lo: tp-connmgr-signals-marshal.c
-@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -MT libtelepathy_la-tp-connmgr-signals-marshal.lo -MD -MP -MF "$(DEPDIR)/libtelepathy_la-tp-connmgr-signals-marshal.Tpo" -c -o libtelepathy_la-tp-connmgr-signals-marshal.lo `test -f 'tp-connmgr-signals-marshal.c' || echo '$(srcdir)/'`tp-connmgr-signals-marshal.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libtelepathy_la-tp-connmgr-signals-marshal.Tpo" "$(DEPDIR)/libtelepathy_la-tp-connmgr-signals-marshal.Plo"; else rm -f "$(DEPDIR)/libtelepathy_la-tp-connmgr-signals-marshal.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tp-connmgr-signals-marshal.c' object='libtelepathy_la-tp-connmgr-signals-marshal.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -c -o libtelepathy_la-tp-connmgr-signals-marshal.lo `test -f 'tp-connmgr-signals-marshal.c' || echo '$(srcdir)/'`tp-connmgr-signals-marshal.c
-
-libtelepathy_la-tp-chan.lo: tp-chan.c
-@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -MT libtelepathy_la-tp-chan.lo -MD -MP -MF "$(DEPDIR)/libtelepathy_la-tp-chan.Tpo" -c -o libtelepathy_la-tp-chan.lo `test -f 'tp-chan.c' || echo '$(srcdir)/'`tp-chan.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libtelepathy_la-tp-chan.Tpo" "$(DEPDIR)/libtelepathy_la-tp-chan.Plo"; else rm -f "$(DEPDIR)/libtelepathy_la-tp-chan.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tp-chan.c' object='libtelepathy_la-tp-chan.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -c -o libtelepathy_la-tp-chan.lo `test -f 'tp-chan.c' || echo '$(srcdir)/'`tp-chan.c
-
-libtelepathy_la-tp-conn.lo: tp-conn.c
-@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -MT libtelepathy_la-tp-conn.lo -MD -MP -MF "$(DEPDIR)/libtelepathy_la-tp-conn.Tpo" -c -o libtelepathy_la-tp-conn.lo `test -f 'tp-conn.c' || echo '$(srcdir)/'`tp-conn.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libtelepathy_la-tp-conn.Tpo" "$(DEPDIR)/libtelepathy_la-tp-conn.Plo"; else rm -f "$(DEPDIR)/libtelepathy_la-tp-conn.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tp-conn.c' object='libtelepathy_la-tp-conn.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -c -o libtelepathy_la-tp-conn.lo `test -f 'tp-conn.c' || echo '$(srcdir)/'`tp-conn.c
-
-libtelepathy_la-tp-connmgr.lo: tp-connmgr.c
-@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -MT libtelepathy_la-tp-connmgr.lo -MD -MP -MF "$(DEPDIR)/libtelepathy_la-tp-connmgr.Tpo" -c -o libtelepathy_la-tp-connmgr.lo `test -f 'tp-connmgr.c' || echo '$(srcdir)/'`tp-connmgr.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libtelepathy_la-tp-connmgr.Tpo" "$(DEPDIR)/libtelepathy_la-tp-connmgr.Plo"; else rm -f "$(DEPDIR)/libtelepathy_la-tp-connmgr.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tp-connmgr.c' object='libtelepathy_la-tp-connmgr.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -c -o libtelepathy_la-tp-connmgr.lo `test -f 'tp-connmgr.c' || echo '$(srcdir)/'`tp-connmgr.c
-
-libtelepathy_la-tp-helpers.lo: tp-helpers.c
-@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -MT libtelepathy_la-tp-helpers.lo -MD -MP -MF "$(DEPDIR)/libtelepathy_la-tp-helpers.Tpo" -c -o libtelepathy_la-tp-helpers.lo `test -f 'tp-helpers.c' || echo '$(srcdir)/'`tp-helpers.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libtelepathy_la-tp-helpers.Tpo" "$(DEPDIR)/libtelepathy_la-tp-helpers.Plo"; else rm -f "$(DEPDIR)/libtelepathy_la-tp-helpers.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tp-helpers.c' object='libtelepathy_la-tp-helpers.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -c -o libtelepathy_la-tp-helpers.lo `test -f 'tp-helpers.c' || echo '$(srcdir)/'`tp-helpers.c
-
-libtelepathy_la-tp-props-iface.lo: tp-props-iface.c
-@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -MT libtelepathy_la-tp-props-iface.lo -MD -MP -MF "$(DEPDIR)/libtelepathy_la-tp-props-iface.Tpo" -c -o libtelepathy_la-tp-props-iface.lo `test -f 'tp-props-iface.c' || echo '$(srcdir)/'`tp-props-iface.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libtelepathy_la-tp-props-iface.Tpo" "$(DEPDIR)/libtelepathy_la-tp-props-iface.Plo"; else rm -f "$(DEPDIR)/libtelepathy_la-tp-props-iface.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tp-props-iface.c' object='libtelepathy_la-tp-props-iface.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtelepathy_la_CFLAGS) $(CFLAGS) -c -o libtelepathy_la-tp-props-iface.lo `test -f 'tp-props-iface.c' || echo '$(srcdir)/'`tp-props-iface.c
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-distclean-libtool:
-	-rm -f libtool
-uninstall-info-am:
-install-telepathyincHEADERS: $(telepathyinc_HEADERS)
-	@$(NORMAL_INSTALL)
-	test -z "$(telepathyincdir)" || $(mkdir_p) "$(DESTDIR)$(telepathyincdir)"
-	@list='$(telepathyinc_HEADERS)'; for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(telepathyincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(telepathyincdir)/$$f'"; \
-	  $(telepathyincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(telepathyincdir)/$$f"; \
-	done
-
-uninstall-telepathyincHEADERS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(telepathyinc_HEADERS)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(telepathyincdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(telepathyincdir)/$$f"; \
-	done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-	list='$(DISTFILES)'; for file in $$list; do \
-	  case $$file in \
-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-	  esac; \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
-	  else \
-	    dir=''; \
-	  fi; \
-	  if test -d $$d/$$file; then \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
-	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(telepathyincdir)"; do \
-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
-	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-	mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-libtool distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-telepathyincHEADERS
-
-install-exec-am: install-libLTLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \
-	uninstall-telepathyincHEADERS
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-exec \
-	install-exec-am install-info install-info-am \
-	install-libLTLIBRARIES install-man install-strip \
-	install-telepathyincHEADERS installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am uninstall-info-am uninstall-libLTLIBRARIES \
-	uninstall-telepathyincHEADERS
-
-#Rule to generate the binding headers
-%-gen.h: $(top_builddir)/xml/%.xml Makefile.am
-	dbus-binding-tool --prefix=$* --mode=glib-client $< > $*-gen.h
-
-# Create the necessary marshallers for the signals implemented by the
-# library
-
-%-marshal.h: %-marshal.list Makefile.am
-	glib-genmarshal --header --prefix=$(subst -,_,$*)_marshal $< > $*-marshal.h
-
-%-marshal.c: %-marshal.list Makefile.am
-	glib-genmarshal --body --prefix=$(subst -,_,$*)_marshal $< > $*-marshal.c
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
--- a/libtelepathy/src/libtelepathy_wsd.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/* 
- *
- * Copyright (C) 2008 Nokia Corporation.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#include <e32std.h> 
-#include "libtelepathy_wsd_solution.h"
-#include <pls.h> // For emulator WSD API 
-
-const TUid KLibTelUid3 = {0x2000F850};     // This is the UID of the library
-
-struct libtelepathy_global_struct* libtelepathy_ImpurePtr()
-{
-	  #if defined(__WINSCW__) || defined(__WINS__)
-
-	// Access the PLS of this process
-	struct libtelepathy_global_struct *g = Pls<struct libtelepathy_global_struct>(KLibTelUid3, &libtelepathy_Init);	
-    return g;
-
-	#else
-
-	return NULL;	
-
-	#endif
-
-}
-
-int libtelepathy_Init(libtelepathy_global_struct *g)
-{
-	  if(g)
-	  {  	
-	  		
-	  	  g->GET_WSD_VAR_NAME(parent_class,tp_chan,s) = NULL;
-	  	  g->GET_WSD_VAR_NAME(type1,tp_chan,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret1,tp_chan,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret2,tp_chan,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret3,tp_chan,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret4,tp_chan,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret5,tp_chan,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret6,tp_chan,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret7,tp_chan,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret8,tp_chan,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret9,tp_chan,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret10,tp_chan,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret11,tp_chan,s) = 0;
-	  	  
-	  	  g->GET_WSD_VAR_NAME(parent_class,tp_conn,s) = NULL;
-	  	  g->GET_WSD_VAR_NAME(type1,tp_conn,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret1,tp_conn,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret2,tp_conn,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret3,tp_conn,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret4,tp_conn,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret5,tp_conn,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret6,tp_conn,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret7,tp_conn,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret8,tp_conn,s) = 0;	  	  
-	  	  
-	  	  g->GET_WSD_VAR_NAME(parent_class,tp_connmgr,s) = NULL;
-	  	  g->GET_WSD_VAR_NAME(type1,tp_connmgr,s) = 0;
-	  	  
-	  	  g->GET_WSD_VAR_NAME(bus_proxy,tp_helpers,s) = NULL;
-	  	  g->GET_WSD_VAR_NAME(bus1,tp_helpers,s) = NULL;
-	  	  
-	  	  
-	  	  g->GET_WSD_VAR_NAME(parent_class,tp_props_iface,s) = NULL;
-	  	  g->GET_WSD_VAR_NAME(type1,tp_props_iface,s) = 0;
-	  	  g->GET_WSD_VAR_NAME(ret,tp_props_iface,s) = 0;
-	  	  
-	  	  memset(&(g->GET_WSD_VAR_NAME(signals,tp_props_iface,s)),0,LAST_SIGNAL_TP_PROPS_IFACE*sizeof(guint));	  
-	  	  
-			return 0;	
-	  }
-	  return 1;
-}
-
--- a/libtelepathy/src/libtelepathy_wsd_macros.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/* libtelepathy_wsd_macros.h
- *
- * 
- * Copyright (C) 2008 Nokia Corporation.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-
-#ifndef _LIBTELEPATHY_WSD_DEFS_H_
-#define _LIBTELEPATHY_WSD_DEFS_H_
-
-#if (defined(SYMBIAN) && (defined(__WINSCW__) || defined(__WINS__)))
-#if EMULATOR
-#undef EMULATOR
-#endif
-#ifdef GET_WSD_VAR_NAME
-#undef GET_WSD_VAR_NAME
-#endif
-
-#define EMULATOR (defined(SYMBIAN) && (defined(__WINSCW__) || defined(__WINS__)))
-#define GET_WSD_VAR_NAME(var,filename,prefix) 	_##prefix##_##filename##_##var
-
-#define RETURN_WSD_VAR(var,filename,prefix) (libtelepathy_ImpurePtr()->GET_WSD_VAR_NAME(var,filename,prefix))
-
-#define GET_WSD_VAR_FROM_TLS(var,filename,type,prefix)\
-type *_##prefix##_##filename##_##var()\
-{\
-	return (&RETURN_WSD_VAR(var,filename,prefix));\
-}
-
-#define GET_WSD_ARRAY_FROM_TLS(var,filename,type,prefix)\
-type *_##prefix##_##filename##_##var()\
-{\
-	return (RETURN_WSD_VAR(var,filename,prefix));\
-}
-
-#define VARIABLE_DECL(var,varprefix,filename,datatype)\
-datatype GET_WSD_VAR_NAME(var,filename,varprefix);
-
-#define VARIABLE_DECL_ARRAY(var,prefix,filename,datatype,size) \
-datatype GET_WSD_VAR_NAME(var,filename,prefix)[size];
-
-
-#define GET_STATIC_VAR_FROM_TLS(var,filename,type) 		GET_WSD_VAR_FROM_TLS(var,filename,type,s)
-
-#define GET_GLOBAL_VAR_FROM_TLS(var,filename,type) 	GET_WSD_VAR_FROM_TLS(var,filename,type,g)
-
-#define GET_STATIC_ARRAY_FROM_TLS(var,filename,type) 	GET_WSD_ARRAY_FROM_TLS(var,filename,type,s)
-
-#define GET_GLOBAL_ARRAY_FROM_TLS(var,filename,type) 	GET_WSD_ARRAY_FROM_TLS(var,filename,type,g)
-
-#endif
-#endif		//_LIBTELEPATHY_WSD_DEFS_H_
--- a/libtelepathy/src/libtelepathy_wsd_solution.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/* libtelepathy_wsd_solution.h part of libtelepathy
- *
- * 
- * Copyright (C) 2007 Nokia Corporation.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-
-#ifndef _LIBTELEPATHY_WSD_H
-#define _LIBTELEPATHY_WSD_H
-#include "libtelepathy_wsd_macros.h"
-
-#include <glib/ghash.h>
-#include <glib/gquark.h>
-#include <glib-object.h>
-#include "glibconfig.h"
-#include <dbus/dbus.h>
-
-#include <gobject/gvaluecollector.h>
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-
-
-#define LAST_SIGNAL_TP_PROPS_IFACE 2
-
-#if EMULATOR
-#ifdef __cplusplus
-extern "C" 
-{
-#endif
-
-struct libtelepathy_global_struct
-{
-
-	VARIABLE_DECL(parent_class,s,tp_chan,GObjectClass *)
-	VARIABLE_DECL(type1,s,tp_chan,GType)
-	VARIABLE_DECL(ret1,s,tp_chan,GQuark)
-	VARIABLE_DECL(ret2,s,tp_chan,GQuark)
-	VARIABLE_DECL(ret3,s,tp_chan,GQuark)
-	VARIABLE_DECL(ret4,s,tp_chan,GQuark)
-	VARIABLE_DECL(ret5,s,tp_chan,GQuark)
-	VARIABLE_DECL(ret6,s,tp_chan,GQuark)
-	VARIABLE_DECL(ret7,s,tp_chan,GQuark)
-	VARIABLE_DECL(ret8,s,tp_chan,GQuark)
-	VARIABLE_DECL(ret9,s,tp_chan,GQuark)
-	VARIABLE_DECL(ret10,s,tp_chan,GQuark)
-	VARIABLE_DECL(ret11,s,tp_chan,GQuark)
-	
-	VARIABLE_DECL(parent_class,s,tp_conn,GObjectClass *)
-	VARIABLE_DECL(type1,s,tp_conn,GType)
-	VARIABLE_DECL(ret1,s,tp_conn,GQuark)
-	VARIABLE_DECL(ret2,s,tp_conn,GQuark)
-	VARIABLE_DECL(ret3,s,tp_conn,GQuark)
-	VARIABLE_DECL(ret4,s,tp_conn,GQuark)
-	VARIABLE_DECL(ret5,s,tp_conn,GQuark)
-	VARIABLE_DECL(ret6,s,tp_conn,GQuark)
-	VARIABLE_DECL(ret7,s,tp_conn,GQuark)
-	VARIABLE_DECL(ret8,s,tp_conn,GQuark)
-	VARIABLE_DECL(ret9,s,tp_conn,GQuark)
-	
-	VARIABLE_DECL(parent_class,s,tp_connmgr,GObjectClass *)
-	VARIABLE_DECL(type1,s,tp_connmgr,GType)
-	
-	VARIABLE_DECL(bus_proxy,s,tp_helpers,DBusGProxy *)
-	VARIABLE_DECL(bus1,s,tp_helpers,DBusGConnection *)
-	
-	VARIABLE_DECL(parent_class,s,tp_props_iface,GObjectClass *)
-	VARIABLE_DECL(type1,s,tp_props_iface,GType)
-	VARIABLE_DECL(ret,s,tp_props_iface,GQuark)
-	VARIABLE_DECL_ARRAY(signals,s,tp_props_iface,guint,LAST_SIGNAL_TP_PROPS_IFACE)
-
-      /*END-global vars*/
- 
-    };
-
-struct libtelepathy_global_struct * libtelepathy_ImpurePtr();
-int libtelepathy_Init(struct libtelepathy_global_struct *);
-#ifdef __cplusplus
-}
-#endif
-#endif //EMULATOR
-#endif //header guard _LIBTELEPATHY_WSD_H
-
--- a/libtelepathy/src/tp-chan-ifaces-signal-setters.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-/* tp-chan-ifaces-signal-setters.c
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include "tp-chan-ifaces-signal-setters.h"
-
-
-void tp_chan_set_contactsearch_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "SearchResultReceived", G_TYPE_UINT,
-			  (dbus_g_type_get_map ("GHashTable",
-			  G_TYPE_STRING, G_TYPE_VALUE)), G_TYPE_INVALID);
-  dbus_g_proxy_add_signal(proxy, "SearchStateChanged",
-			  G_TYPE_UINT, G_TYPE_INVALID);
-}
-
-
-void tp_chan_set_streamedmedia_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "StreamStateChanged",
-			  G_TYPE_UINT, G_TYPE_UINT,
-			  G_TYPE_UINT, G_TYPE_INVALID);
-  /* FIXME: Outdated
-  dbus_g_proxy_add_signal(proxy, "ReceivedMediaParameters",
-			  G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING,
-			  G_TYPE_INVALID);
-  */
-}
-
-void tp_chan_set_roomlist_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "GotRooms",
-			 (dbus_g_type_get_struct ("GValueArray",
-			 G_TYPE_UINT, G_TYPE_STRING,
-			 (dbus_g_type_get_map ("GHashTable",
-			 G_TYPE_STRING, G_TYPE_VALUE)))), G_TYPE_INVALID);
-  dbus_g_proxy_add_signal(proxy, "ListingRooms",
-			  G_TYPE_BOOLEAN, G_TYPE_INVALID);
-}
-
-void tp_chan_set_text_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "Received", G_TYPE_UINT, G_TYPE_UINT,
-			  G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT,
-                          G_TYPE_STRING, G_TYPE_INVALID);
-  dbus_g_proxy_add_signal(proxy, "Sent", G_TYPE_UINT, G_TYPE_UINT,
-			  G_TYPE_STRING, G_TYPE_INVALID);
-  dbus_g_proxy_add_signal(proxy, "SendError", G_TYPE_UINT, G_TYPE_UINT,
-			  G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID);
-  dbus_g_proxy_add_signal(proxy, "LostMessage", G_TYPE_INVALID);
-}
-
-void tp_chan_set_dtmf_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "ReceivedDTMF", G_TYPE_UINT,
-			  G_TYPE_UINT, G_TYPE_INVALID);
-}
-
-void tp_chan_set_group_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "GroupFlagsChanged", G_TYPE_UINT,
-			  G_TYPE_UINT, G_TYPE_INVALID);
-  dbus_g_proxy_add_signal(proxy, "MembersChanged", G_TYPE_STRING,
-			  DBUS_TYPE_G_UINT_ARRAY, DBUS_TYPE_G_UINT_ARRAY,
-			  DBUS_TYPE_G_UINT_ARRAY, DBUS_TYPE_G_UINT_ARRAY,
-			  G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID);
-}
-
-void tp_chan_set_hold_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "HoldStateChanged", G_TYPE_UINT,
-			  G_TYPE_UINT, G_TYPE_INVALID);
-}
-
-void tp_chan_set_password_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "PasswordFlagsChanged",
-			  G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID);
-}
-
-void tp_chan_set_icesignalling_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "NewIceSessionHandler",
-                          DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING,
-                          G_TYPE_INVALID);
-}
--- a/libtelepathy/src/tp-chan-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/* tp-chan-signals-marshal.c
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:VOID (tp-chan-signals-marshal.list:1) */
-
--- a/libtelepathy/src/tp-chan.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,649 +0,0 @@
-/* tp-chan.c
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include <string.h>
-#include "tp-chan.h"
-#include "tp-chan-signals-marshal.h"
-#include "tp-props-iface.h"
-#include "tp-helpers.h"
-
-#ifdef EMULATOR
-#include "libtelepathy_wsd_solution.h"
-#endif
-
-#ifdef EMULATOR
-	
-	GET_STATIC_VAR_FROM_TLS(parent_class,tp_chan,GObjectClass *)
-	#define parent_class (*GET_WSD_VAR_NAME(parent_class,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(type1,tp_chan,GType)
-	#define type1 (*GET_WSD_VAR_NAME(type1,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret1,tp_chan,GQuark)
-	#define ret1 (*GET_WSD_VAR_NAME(ret1,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret2,tp_chan,GQuark)
-	#define ret2 (*GET_WSD_VAR_NAME(ret2,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret3,tp_chan,GQuark)
-	#define ret3 (*GET_WSD_VAR_NAME(ret3,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret4,tp_chan,GQuark)
-	#define ret4 (*GET_WSD_VAR_NAME(ret4,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret5,tp_chan,GQuark)
-	#define ret5 (*GET_WSD_VAR_NAME(ret5,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret6,tp_chan,GQuark)
-	#define ret6 (*GET_WSD_VAR_NAME(ret6,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret7,tp_chan,GQuark)
-	#define ret7 (*GET_WSD_VAR_NAME(ret7,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret8,tp_chan,GQuark)
-	#define ret8 (*GET_WSD_VAR_NAME(ret8,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret9,tp_chan,GQuark)
-	#define ret9 (*GET_WSD_VAR_NAME(ret9,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret10,tp_chan,GQuark)
-	#define ret10 (*GET_WSD_VAR_NAME(ret10,tp_chan,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret11,tp_chan,GQuark)
-	#define ret11 (*GET_WSD_VAR_NAME(ret11,tp_chan,s)())
-	
-	
-#else
-	static GObjectClass *parent_class = NULL;
-#endif
-
-static void synthesize_closed(TpChan *chan);
-
-static void _tp_chan_register_signal_marshallers()
-{
-  /* Register marshaller for the Close signal */
-  dbus_g_object_register_marshaller(tp_chan_signals_marshal_VOID__VOID,
-				    G_TYPE_NONE, G_TYPE_INVALID);
-}
-
-static void _tp_chan_register_interface_signal_marshallers()
-{
-  
-  /* Register marshaller for ContactSearch interface signal
-     SearchResultReceived*/
- 
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT_BOXED, 
-  					G_TYPE_NONE, G_TYPE_UINT, G_TYPE_BOXED, G_TYPE_INVALID);
-
-  /* Register marshaller for ContactSearch interface signal
-   * SearchStateChanged */
-  
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT,
-				    G_TYPE_NONE, G_TYPE_UINT, G_TYPE_INVALID);
-
-  /* Register marshaller for StreamedMedia interface signal
-     ReceivedMediaParameters */
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT_STRING_STRING, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID);
-  /* Register marshaller for StreamedMedia interface signal
-     StreamStateChanged */
-
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT_UINT_UINT, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID);
-
-  /* Register marshaller for RoomList interface signal GotRooms */
-
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__BOXED,
-				    G_TYPE_NONE, G_TYPE_BOXED, G_TYPE_INVALID);
-
-  /* Register marshaller for RoomList interface signal ListingRooms */
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__BOOLEAN,
-				    G_TYPE_NONE, G_TYPE_BOOLEAN,
-				    G_TYPE_INVALID);
-
-  /* Register marshaller for channel type Text interface signal Received */
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT_UINT_UINT_UINT_UINT_STRING, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT,
-				    G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING,
-				    G_TYPE_INVALID);
-
-  /* Register marshaller for channel type Text interface Sent */
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT_UINT_STRING, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID);
-
-  /* Register marshaller used by the following iface/signal pairs:
-   * DTFM/ReceivedDTMF, Group/GroupFlagsChanged, Hold/HoldStateChanged,
-   * Password/PasswordFlagsChanged, Subject/SubjectFlagsChanged */
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT_UINT,
-				    G_TYPE_NONE, G_TYPE_UINT, G_TYPE_UINT,
-				    G_TYPE_INVALID);
-  /* Register marshaller for Group interface signal MembersChanged */
-  
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_BOXED,
-                                    G_TYPE_BOXED, G_TYPE_BOXED, G_TYPE_BOXED,
-                                    G_TYPE_UINT, G_TYPE_UINT,G_TYPE_INVALID);
-
-  /* Register marshaller for Text Channel interface signal SendError */
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT_UINT_UINT_STRING, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID);
-
-  /* Register marshaller for IceSignalling interface signal
-     NewIceSessionHandler */
-
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__OBJECT_STRING, G_TYPE_NONE, DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING, G_TYPE_INVALID);
-
-}
-
-
-/* We initialize the list of signatures here, so that we can use
- * it to add them for new interface instances later.*/
-
-/* FIXME: This should be replaced by a more automatic way of doing
- * this. The reason for using a set of function pointers is that there is no
- * apparent cleaner way of doing this, unless DBusGProxy gains a non-varargs
- * version of dbus_g_proxy_add_signal...
- */
-
-
-static void _tp_chan_init_interface_signal_signatures(GData **signal_sigs)
-{
-  g_datalist_init(signal_sigs);
-  
-  
-  /* Create and store contact search iface signal signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CHAN_IFACE_CONTACTSEARCH_QUARK,
-			 (gpointer)tp_chan_set_contactsearch_signatures);
-
-  /* Store streamed media iface signal signatures */
-  g_datalist_id_set_data(signal_sigs,
-			 TELEPATHY_CHAN_IFACE_STREAMED_QUARK,
-			 (gpointer)tp_chan_set_streamedmedia_signatures);
-  /* Store roomlist signal iface signal parameters */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CHAN_IFACE_ROOMLIST_QUARK,
-			 (gpointer)tp_chan_set_roomlist_signatures);
-  /* Store text iface signal signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CHAN_IFACE_TEXT_QUARK,
-			 (gpointer)tp_chan_set_text_signatures);
-  /* Store DTMF iface signal signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CHAN_IFACE_DTMF_QUARK,
-			 (gpointer)tp_chan_set_dtmf_signatures);
-  /* Store group iface signal signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CHAN_IFACE_GROUP_QUARK,
-			 (gpointer)tp_chan_set_group_signatures);
-  /* Store hold iface signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CHAN_IFACE_HOLD_QUARK,
-			 (gpointer)tp_chan_set_hold_signatures);
-  /* Store password iface signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CHAN_IFACE_PASSWORD_QUARK,
-			 (gpointer)tp_chan_set_password_signatures);
-}
-
-static void tp_chan_init(GTypeInstance *instance, gpointer g_class)
-{
-  TpChan *self = TELEPATHY_CHAN(instance);
-  self->type = NULL;
-  self->first_run = TRUE;
-}
-
-
-static void tp_chan_dispose(GObject *obj)
-{
-  TpChan *self = TELEPATHY_CHAN(obj);
-
-  if (self->first_run)
-  {
-    self->first_run = FALSE;
-    synthesize_closed(self);
-    g_datalist_clear(&(self->interface_list));
-  }
-  
-  /* Chain up to the parent class dispose */
-  if (G_OBJECT_CLASS(parent_class)->dispose)
-  {
-    G_OBJECT_CLASS(parent_class)->dispose(obj);
-  }
-
-}
-
-
-static void tp_chan_finalize(GObject *obj)
-{
-  TpChan *self = TELEPATHY_CHAN(obj);
-
-  if (self->type)
-  {
-    g_free(self->type);
-  }
-
-  if (G_OBJECT_CLASS(parent_class)->finalize)
-  {
-    G_OBJECT_CLASS(parent_class)->finalize(obj);
-  }
-}
-
-
-static void tp_chan_class_init(TpChanClass *klass)
-{
-  GObjectClass *obj = G_OBJECT_CLASS(klass);
-  parent_class = g_type_class_peek_parent(klass);
-
-  obj->set_property = parent_class->set_property;
-  obj->get_property = parent_class->get_property;
-  obj->dispose = tp_chan_dispose;
-  obj->finalize = tp_chan_finalize;
-  _tp_chan_register_signal_marshallers();
-  _tp_chan_register_interface_signal_marshallers();
-  _tp_chan_init_interface_signal_signatures(&(klass->iface_signal_sigs));
-}
-
-
-GType tp_chan_get_type(void)
-{
-#ifndef EMULATOR
-  static GType type1 = 0;
-#endif
-  
-  if (type1 == 0)
-  {
-    static const GTypeInfo info =
-    {
-      sizeof(TpChanClass),
-      NULL,
-      NULL,
-      (GClassInitFunc)tp_chan_class_init,
-      NULL,
-      NULL,
-      sizeof(TpChan),
-      0,
-      (GInstanceInitFunc)tp_chan_init
-    };
-    type1 = g_type_register_static(DBUS_TYPE_G_PROXY,
-        "TpChan", &info, 0);
-  }
-  return type1;
-}
-
-
-
-/* Public functions begin */
-
-GQuark tp_get_chan_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret1 = 0;
-#endif
-
-  if (ret1 == 0)
-  {
-    ret1 = g_quark_from_static_string(TP_IFACE_CHANNEL_INTERFACE);
-  }
-
-  return ret1;
-}
-
-GQuark tp_get_chan_contactlist_interface()
-{
-#ifndef EMULATOR  
-  static GQuark ret2 = 0;
-#endif
-
-  if (ret2 == 0)
-  {
-    ret2 = g_quark_from_static_string(TP_IFACE_CHANNEL_TYPE_CONTACT_LIST);
-  }
-
-  return ret2;
-}
-
-
-#ifdef SYMBIAN
-EXPORT_C 
-#endif
-GQuark tp_get_chan_contactsearch_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret3 = 0;
-#endif
-
-  if (ret3 == 0)
-  {
-    ret3 = g_quark_from_static_string(TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH);
-  }
-
-  return ret3;
-}
-
-
-GQuark tp_get_chan_streamed_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret4 = 0;
-#endif
-
-  if (ret4 == 0)
-  {
-    ret4 = g_quark_from_static_string(TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA);
-  }
-
-  return ret4;
-}
-
-
-GQuark tp_get_chan_roomlist_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret5 = 0;
-#endif
-
-  if (ret5 == 0)
-  {
-    ret5 = g_quark_from_static_string(TP_IFACE_CHANNEL_TYPE_ROOM_LIST);
-  }
-
-  return ret5;
-}
-
-#ifdef SYMBIAN
-EXPORT_C 
-#endif
-GQuark tp_get_chan_text_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret6 = 0;
-#endif
-
-  if (ret6 == 0)
-  {
-    ret6 = g_quark_from_static_string(TP_IFACE_CHANNEL_TYPE_TEXT);
-  }
-
-  return ret6;
-}
-
-
-GQuark tp_get_chan_dtmf_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret7 = 0;
-#endif
-  
-  if (ret7 == 0)
-  {
-    ret7 = g_quark_from_static_string(TP_IFACE_CHANNEL_INTERFACE_DTMF);
-  }
-
-  return ret7;
-}
-
-
-#ifdef SYMBIAN
-EXPORT_C 
-#endif
-GQuark tp_get_chan_group_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret8 = 0;
-#endif
-
-  if (ret8 == 0)
-  {
-    ret8 = g_quark_from_static_string(TP_IFACE_CHANNEL_INTERFACE_GROUP);
-  }
-
-  return ret8;
-}
-
-
-GQuark tp_get_chan_hold_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret9 = 0;
-#endif
-
-  if (ret9 == 0)
-  {
-    ret9 = g_quark_from_static_string(TP_IFACE_CHANNEL_INTERFACE_HOLD);
-  }
-
-  return ret9;
-}
-
-
-GQuark tp_get_chan_password_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret10 = 0;
-#endif
-
-  if (ret10 == 0)
-  {
-    ret10 = g_quark_from_static_string(TP_IFACE_CHANNEL_INTERFACE_PASSWORD);
-  }
-
-  return ret10;
-}
-
-GQuark tp_get_chan_transfer_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret11 = 0;
-#endif
-
-  if (ret11 == 0)
-  {
-    ret11 = g_quark_from_static_string(TP_IFACE_CHANNEL_INTERFACE_TRANSFER);
-  }
-
-  return ret11;
-}
-
-
-#ifdef SYMBIAN
-EXPORT_C 
-#endif
-TpChan *tp_chan_new(DBusGConnection *connection, const gchar *bus_name,
-                    const gchar *object_path, const gchar *type,
-                    guint handle_type, guint handle)
-{
-  GError *error = NULL;
-  gchar *unique_name;
-  gchar **interfaces;
-  TpChan *chan;
-  g_return_val_if_fail(connection != NULL, NULL);
-  g_return_val_if_fail(bus_name != NULL, NULL);
-  g_return_val_if_fail(object_path != NULL, NULL);
-  g_return_val_if_fail(type != NULL, NULL);
-
-  if (!dbus_g_proxy_call (tp_get_bus_proxy (), 
-                          "GetNameOwner", &error, G_TYPE_STRING, bus_name, 
-                          G_TYPE_INVALID, G_TYPE_STRING, &unique_name, 
-                          G_TYPE_INVALID))
-  {
-    g_warning("tp_chan_new: getting unique name failed: %s", error->message);
-    g_error_free(error);
-    return NULL;
-  }
-
-  /* Create the channel object */
-  chan = g_object_new(TELEPATHY_CHAN_TYPE,
-                      "name", unique_name, "path", object_path,
-                      "interface", TP_IFACE_CHANNEL_INTERFACE,
-                      "connection", connection, NULL);
-
-  g_free(unique_name);
-
-  dbus_g_proxy_add_signal(DBUS_G_PROXY(chan), "Closed", G_TYPE_INVALID);
-
-  g_datalist_init(&(chan->interface_list));
-
-  /* Store interface information for the channel */
-  if (tp_chan_get_interfaces(DBUS_G_PROXY(chan), &interfaces, &error))
-  {
-    tp_chan_local_set_interfaces(chan, interfaces);
-
-    /* Free the strings used for interface object creation */
-    g_strfreev(interfaces);
-  }
-  else
-  {
-    g_warning("GetInterfaces for channel failed: %s\n", error->message);
-    g_error_free(error);
-  }
-
-  /* Store necessary information for this object */
-  chan->type = g_strdup(type);
-  chan->handle_type = handle_type;
-  chan->handle = handle;
-
-  return chan;
-}
-
-
-void tp_chan_local_set_interfaces(TpChan *self, gchar **interfaces)
-{
-  gchar **temp_ifaces;
-  gchar *chan_type = NULL;
-  GError *error = NULL;
-  GData **sig_list = &(TELEPATHY_CHAN_GET_CLASS(self)->iface_signal_sigs);
-  void (*signature_setter_func)(DBusGProxy *proxy);
-  DBusGConnection *connection;
-  /*const*/ gchar *name, *path;
-
-  if (interfaces == NULL)
-  {
-    return;
-  }
-
-  /* Create and store proxy objects corresponding to the
-     interfaces */
-
-  g_object_get (G_OBJECT(self),
-                "connection", &connection,
-                "name", &name,
-                "path", &path,
-                NULL);
-
-  g_debug ("%s: %p, %s, %s", G_STRFUNC, connection, name, path);
-
-  for (temp_ifaces = interfaces; *temp_ifaces; temp_ifaces++)
-    {
-      GQuark key = g_quark_from_string(*temp_ifaces);
-      DBusGProxy *if_proxy;
-
-      if (key == TELEPATHY_PROPS_IFACE_QUARK)
-        {
-          if_proxy = DBUS_G_PROXY (tp_props_iface_new (connection, name, path));
-        }
-      else
-        {
-          if_proxy = dbus_g_proxy_new_for_name (connection, name,
-                                                path, *temp_ifaces);
-
-          if (if_proxy != NULL)
-            {
-              /* Does the interface have signals? If yes, add their signatures
-                 for the interface instance by calling the
-                 corresponding setter function */
-
-              signature_setter_func =
-                g_datalist_id_get_data(sig_list, key);
-
-              if (signature_setter_func != NULL)
-                {
-                  (*signature_setter_func)(if_proxy);
-                }
-            }
-        }
-      if (if_proxy != NULL)
-        {
-          g_datalist_id_set_data_full(&(self->interface_list), key,
-              if_proxy, g_object_unref);
-        }
-    }
-
-  /* Finally, add the channel type interface */
-
-  if (!tp_chan_get_channel_type(DBUS_G_PROXY(self), &chan_type, &error))
-  {
-    g_warning("GetChannelType failed: %s\n", error->message);
-    g_error_free(error);
-  }
-  else
-  {
-    DBusGProxy *chan_proxy =
-      dbus_g_proxy_new_from_proxy(DBUS_G_PROXY(self), chan_type, NULL);
-
-    g_datalist_id_set_data(&(self->interface_list),
-        g_quark_from_string(chan_type), chan_proxy);
-
-    /* If the particular channel type interface has signals defined,
-       call the corresponding setter function */
-
-    signature_setter_func =
-      g_datalist_id_get_data(sig_list, g_quark_from_string(chan_type));
-
-    if (signature_setter_func != NULL)
-    {
-      (*signature_setter_func)(chan_proxy);
-    }
-
-    g_free(chan_type);
-  }
-
-  g_free (name);
-  g_free (path);
-  dbus_g_connection_unref (connection);
-}
-
-#ifdef SYMBIAN
-EXPORT_C 
-#endif
-DBusGProxy *tp_chan_get_interface(TpChan *self, GQuark iface_quark)
-{
-  DBusGProxy *iface_proxy = NULL;
-
-  iface_proxy = (DBusGProxy *)g_datalist_id_get_data(&(self->interface_list),
-						     iface_quark);
-  return iface_proxy;
-}
-
-static void synthesize_closed(TpChan *chan)
-{
-  DBusMessage *msg = NULL;
-  GArray *closed_signal_types = g_array_new(FALSE, FALSE, sizeof(GType));
-
-  if (!closed_signal_types)
-  {
-    g_warning("%s: Could not allocate the type array for Closed signal",
-              G_STRFUNC);
-    return;
-  }
-
-  msg = dbus_message_new_signal(dbus_g_proxy_get_path(DBUS_G_PROXY(chan)),
-                            TP_IFACE_CHANNEL_INTERFACE, "Closed");
-  if (!msg)
-  {
-    g_warning("%s: Could not create the synthetic Closed signal message.",
-              G_STRFUNC);
-    g_array_free(closed_signal_types, FALSE);
-    return;
-  }
-  g_signal_emit_by_name(DBUS_G_PROXY(chan),
-                        TP_IFACE_CHAN_SIGNAL_CLOSED_SYNTHESIZED, msg,
-                        closed_signal_types);
-  g_array_free(closed_signal_types, FALSE);
-  dbus_message_unref(msg);
-}
--- a/libtelepathy/src/tp-conn-ifaces-signal-setters.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/* tp-conn-ifaces-signal-setters.c
- *
- * Copyright (C) 2005 Collabora Ltd. 
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include "tp-conn-ifaces-signal-setters.h"
-
-void tp_conn_set_aliasing_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "AliasesChanged",
-                          dbus_g_type_get_struct ("GValueArray",
-                            G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID),
-			  G_TYPE_INVALID);
-}
-
-void tp_conn_set_capabilities_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "CapabilitiesChanged",
-			  dbus_g_type_get_struct ("GValueArray",
-			    G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT,
-                            G_TYPE_UINT, G_TYPE_INVALID),
-			  G_TYPE_INVALID);
-}
-
-void tp_conn_set_contactinfo_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "GotContactInfo",
-			  G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID);
-}
-void tp_conn_set_forwarding_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "ForwardingChanged",
-			  G_TYPE_UINT, G_TYPE_INVALID);
-}
-void tp_conn_set_presence_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "PresenceUpdate",
-			  dbus_g_type_get_map ("GHashTable", G_TYPE_UINT, 
-			  (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, 
-			  (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, 
-                          (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, 
-			  G_TYPE_VALUE)))), G_TYPE_INVALID))), G_TYPE_INVALID);
-}
-void tp_conn_set_privacy_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "PrivacyModeChanged",
-			  G_TYPE_STRING, G_TYPE_INVALID);
-}
-void tp_conn_set_renaming_signatures(DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "Renamed",
-			  G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID);
-}
-void tp_conn_set_avatar_signatures(DBusGProxy *proxy)
-{
-    //dbus_g_proxy_add_signal( proxy, "AvatarUpdated", )
-    dbus_g_proxy_add_signal(proxy, "AvatarUpdated", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID);
-    dbus_g_proxy_add_signal(proxy, "AvatarRetrieved", G_TYPE_UINT, G_TYPE_STRING, DBUS_TYPE_G_UCHAR_ARRAY, G_TYPE_STRING,G_TYPE_INVALID); 
-}
--- a/libtelepathy/src/tp-conn-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-/* tp-conn-signals-marshal.c
- *
-  * Copyright (C) 2005 Collabora Ltd.
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:OBJECT,STRING,UINT,UINT,BOOLEAN (tp-conn-signals-marshal.list:1) */
-void
-tp_conn_signals_marshal_VOID__OBJECT_STRING_UINT_UINT_BOOLEAN (GClosure     *closure,
-                                                               GValue       *return_value,
-                                                               guint         n_param_values,
-                                                               const GValue *param_values,
-                                                               gpointer      invocation_hint,
-                                                               gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__OBJECT_STRING_UINT_UINT_BOOLEAN) (gpointer     data1,
-                                                                      gpointer     arg_1,
-                                                                      gpointer     arg_2,
-                                                                      guint        arg_3,
-                                                                      guint        arg_4,
-                                                                      gboolean     arg_5,
-                                                                      gpointer     data2);
-  register GMarshalFunc_VOID__OBJECT_STRING_UINT_UINT_BOOLEAN callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 6);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__OBJECT_STRING_UINT_UINT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_object (param_values + 1),
-            g_marshal_value_peek_string (param_values + 2),
-            g_marshal_value_peek_uint (param_values + 3),
-            g_marshal_value_peek_uint (param_values + 4),
-            g_marshal_value_peek_boolean (param_values + 5),
-            data2);
-}
-
-/* VOID:UINT,UINT (tp-conn-signals-marshal.list:2) */
-void
-tp_conn_signals_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                         GValue       *return_value,
-                                         guint         n_param_values,
-                                         const GValue *param_values,
-                                         gpointer      invocation_hint,
-                                         gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer     data1,
-                                                guint        arg_1,
-                                                guint        arg_2,
-                                                gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            data2);
-}
-
-/* VOID:BOXED (tp-conn-signals-marshal.list:3) */
-
--- a/libtelepathy/src/tp-conn.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,734 +0,0 @@
-/* tp-conn.c
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include <string.h>
-#include "tp-conn.h"
-#include "tp-helpers.h"
-#include "tp-connmgr.h"
-#include "tp-props-iface.h"
-
-
-
-#ifdef EMULATOR
-#include "libtelepathy_wsd_solution.h"
-#endif
-
-#ifdef EMULATOR
-	
-	GET_STATIC_VAR_FROM_TLS(parent_class,tp_conn,GObjectClass *)
-	#define parent_class (*GET_WSD_VAR_NAME(parent_class,tp_conn,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(type1,tp_conn,GType)
-	#define type1 (*GET_WSD_VAR_NAME(type1,tp_conn,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret1,tp_conn,GQuark)
-	#define ret1 (*GET_WSD_VAR_NAME(ret1,tp_conn,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret2,tp_conn,GQuark)
-	#define ret2 (*GET_WSD_VAR_NAME(ret2,tp_conn,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret3,tp_conn,GQuark)
-	#define ret3 (*GET_WSD_VAR_NAME(ret3,tp_conn,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret4,tp_conn,GQuark)
-	#define ret4 (*GET_WSD_VAR_NAME(ret4,tp_conn,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret5,tp_conn,GQuark)
-	#define ret5 (*GET_WSD_VAR_NAME(ret5,tp_conn,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret6,tp_conn,GQuark)
-	#define ret6 (*GET_WSD_VAR_NAME(ret6,tp_conn,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret7,tp_conn,GQuark)
-	#define ret7 (*GET_WSD_VAR_NAME(ret7,tp_conn,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret8,tp_conn,GQuark)
-	#define ret8 (*GET_WSD_VAR_NAME(ret8,tp_conn,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret9,tp_conn,GQuark)
-    #define ret9 (*GET_WSD_VAR_NAME(ret9,tp_conn,s)())
-	
-#else
-	static GObjectClass *parent_class = NULL;
-#endif
-
-
-
-static gboolean tp_conn_status_change_handler(DBusGProxy *proxy, 
- 					      guint status, guint reason, 
- 					      gpointer user_data); 
-
-static void _tp_conn_connect_req_handler(DBusGProxy *proxy,
-                                        GError *error, gpointer user_data);
-
-static void _tp_conn_register_signal_marshallers()
-{
-  /* Register marshaller for NewChannel signal */
-  dbus_g_object_register_marshaller(tp_conn_signals_marshal_VOID__OBJECT_STRING_UINT_UINT_BOOLEAN, G_TYPE_NONE, DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_BOOLEAN, G_TYPE_INVALID);
-  /* Register marshaller for StatusChanged signal */
-  dbus_g_object_register_marshaller(tp_conn_signals_marshal_VOID__UINT_UINT, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID);
-}
-
-static void _tp_conn_register_interface_signal_marshallers()
-{
-  /* Register marshaller for Aliasing interface signal AliasUpdate and
-     ContactInfo interface signal GotContactInfo*/
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT_STRING, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID);
-  /* Register marshaller for Forwarding interface signal ForwardingChanged */
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_INVALID);
-  /* Register marshaller for Presence interface signal PresenceUpdate */
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__BOXED, G_TYPE_NONE, G_TYPE_BOXED, G_TYPE_INVALID);
-  /* Register marshaller for Privacy interface signal PrivacyModeChanged */
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__STRING, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_INVALID);
-  /* Register marshaller for Renaming interface signal Renamed */
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT_UINT, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID);
-}
-
-
-/* We initialize the list of signatures here, so that we can use
- * it to add them for new interface instances later.
- */
-
-/* FIXME: This should be replaced by a more automatic way of doing
- * this. The reason for using a set of function pointers is that there is no
- * apparent cleaner way of doing this, unless DBusGProxy gains a non-varargs
- * version of dbus_g_proxy_add_signal...
- */
-
-static void _tp_conn_init_interface_signal_signatures(GData **signal_sigs)
-{
-  g_datalist_init(signal_sigs);
-
-  /* Create and store aliasing iface signal signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CONN_IFACE_ALIASING_QUARK,
-			 (gpointer)&tp_conn_set_aliasing_signatures);
-  /* Create and store capabilities iface signal signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CONN_IFACE_CAPABILITIES_QUARK,
-			 (gpointer)&tp_conn_set_capabilities_signatures);
-  /* Create and store contactinfo iface signal signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CONN_IFACE_CONTACTINFO_QUARK,
-			 (gpointer)&tp_conn_set_contactinfo_signatures);
-  /* Create and store forwarding iface signal signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CONN_IFACE_FORWARDING_QUARK,
-			 (gpointer)&tp_conn_set_forwarding_signatures);
-  /* Create and store presence iface signal signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CONN_IFACE_PRESENCE_QUARK,
-			 (gpointer)&tp_conn_set_presence_signatures);
-  /* Create and store privacy iface signal signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CONN_IFACE_PRIVACY_QUARK,
-			 (gpointer)&tp_conn_set_privacy_signatures);
-  /* Create and store renaming iface signal signatures */
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CONN_IFACE_RENAMING_QUARK,
-			 (gpointer)&tp_conn_set_renaming_signatures);
-  g_datalist_id_set_data(signal_sigs, TELEPATHY_CONN_IFACE_AVATAR_QUARK,
-               (gpointer)&tp_conn_set_avatar_signatures);
-}
-
-static void synthesize_status_changed(TpConn *conn);
-
-static void tp_conn_init(GTypeInstance *instance, gpointer g_class)
-{
-  TpConn *self = TELEPATHY_CONN(instance);
-
-  self->first_run = TRUE;
-}
-
-
-static void tp_conn_dispose(GObject *obj)
-{
-  TpConn *self = TELEPATHY_CONN(obj);
-      
-  if (self->first_run == TRUE)
-  {
-    self->first_run = FALSE;
-    synthesize_status_changed(self);
-    g_datalist_clear(&(self->interface_list));
-  }
-  
-  /* Call parent class dispose method */
-  if (G_OBJECT_CLASS(parent_class)->dispose)
-  {
-    G_OBJECT_CLASS(parent_class)->dispose(obj);
-  }
-
-}
-
-
-static void tp_conn_finalize(GObject *obj)
-{
-  if (G_OBJECT_CLASS(parent_class)->finalize)
-    {
-      G_OBJECT_CLASS(parent_class)->finalize(obj);
-    }
-
-}
-
-
-static void tp_conn_class_init(TpConnClass *klass)
-{
-  GObjectClass *obj = G_OBJECT_CLASS(klass);
-  parent_class = g_type_class_peek_parent(klass);
-
-  obj->set_property = parent_class->set_property;
-  obj->get_property = parent_class->get_property;
-
-  obj->dispose = tp_conn_dispose;
-  obj->finalize = tp_conn_finalize;
-  _tp_conn_register_signal_marshallers();
-  _tp_conn_register_interface_signal_marshallers();
-  _tp_conn_init_interface_signal_signatures(&(klass->iface_signal_sigs));
-}
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-GType tp_conn_get_type(void)
-{
-#ifndef EMULATOR
-  static GType type1 = 0;
-#endif
-  
-  if (type1 == 0)
-    {
-      static const GTypeInfo info = 
-	{
-	  sizeof(TpConnClass),
-	  NULL,
-	  NULL,
-	  (GClassInitFunc)tp_conn_class_init,
-	  NULL,
-	  NULL,
-	  sizeof(TpConn),
-	  0,
-	  (GInstanceInitFunc)tp_conn_init
-	  
-	};
-      type1 = g_type_register_static(DBUS_TYPE_G_PROXY,
-				    "TpConn", &info, 0);
-    }
-  return type1;
-}
-
-/* The interface name getters */
-
-GQuark tp_get_conn_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret1 = 0;
-#endif
-
-  if (ret1 == 0)
-  {
-    /* FIXME: The naming conventions should be unified */
-    ret1 = g_quark_from_static_string(TP_IFACE_CONN_INTERFACE);
-  }
-
-  return ret1;
-}
-
-GQuark tp_get_conn_aliasing_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret2 = 0;
-#endif
-
-  if (ret2 == 0)
-  {
-    ret2 = g_quark_from_static_string(TP_IFACE_CONN_INTERFACE_ALIASING);
-  }
-
-  return ret2;
-}
-
-GQuark tp_get_conn_capabilities_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret3 = 0;
-#endif
-
-  if (ret3 == 0)
-  {
-    ret3 = g_quark_from_static_string(TP_IFACE_CONN_INTERFACE_CAPABILITIES);
-  }
-
-  return ret3;
-}
-
-GQuark tp_get_conn_contactinfo_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret4 = 0;
-#endif
-
-  if (ret4 == 0)
-  {
-    ret4 = g_quark_from_static_string(TP_IFACE_CONN_INTERFACE_CONTACT_INFO);
-  }
-
-  return ret4;
-}
-
-GQuark tp_get_conn_forwarding_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret5 = 0;
-#endif
-
-  if (ret5 == 0)
-  {
-    ret5 = g_quark_from_static_string(TP_IFACE_CONN_INTERFACE_FORWARDING);
-  }
-
-  return ret5;
-}
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-GQuark tp_get_conn_presence_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret6 = 0;
-#endif
-
-  if (ret6 == 0)
-  {
-    ret6 = g_quark_from_static_string(TP_IFACE_CONN_INTERFACE_PRESENCE);
-  }
-
-  return ret6;
-}
-
-
-GQuark tp_get_conn_privacy_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret7 = 0;
-#endif
-
-  if (ret7 == 0)
-  {
-    ret7 = g_quark_from_static_string(TP_IFACE_CONN_INTERFACE_PRIVACY);
-  }
-
-  return ret7;
-}
-
-
-
-GQuark tp_get_conn_renaming_interface()
-{
-#ifndef EMULATOR
-  static GQuark ret8 = 0;
-#endif
-
-  if (ret8 == 0)
-  {
-    ret8 = g_quark_from_static_string(TP_IFACE_CONN_INTERFACE_RENAMING);
-  }
-
-  return ret8;
-}
-
-#ifdef SYMBIAN
-EXPORT_C 
-#endif
-GQuark tp_get_conn_avatar_interface(void)
-    {
-#ifndef EMULATOR
-  static GQuark ret9 = 0;
-#endif
-
-  if (ret9 == 0)
-  {
-    ret9 = g_quark_from_static_string(TP_IFACE_CONN_INTERFACE_AVATAR);
-  }
-
-  return ret9;    
-    }
-
-TpConn *
-tp_conn_new_without_connect (DBusGConnection *connection,
-                             const gchar *bus_name,
-                             const gchar *object_path,
-                             guint *status,
-                             GError **error)
-{
-  gchar *unique_name;
-  gchar **interfaces;
-  guint conn_status = TP_CONN_STATUS_DISCONNECTED;
-  TpConn *obj;
-  GError *err = NULL;
-
-  g_return_val_if_fail (connection != NULL, NULL);
-  g_return_val_if_fail (bus_name != NULL, NULL);
-  g_return_val_if_fail (object_path, NULL);
-
-  /* Create the proxy object for this connection. It will be used to
-     perform the actual method calls over D-BUS. */
-
-  if (!dbus_g_proxy_call (tp_get_bus_proxy (), "GetNameOwner", error,
-        G_TYPE_STRING, bus_name, G_TYPE_INVALID,
-        G_TYPE_STRING, &unique_name, G_TYPE_INVALID))
-    {
-      return NULL;
-    }
-
-  obj = g_object_new (TELEPATHY_CONN_TYPE,
-      "name", unique_name,
-      "path", object_path,
-      "interface", TP_IFACE_CONN_INTERFACE,//TP_IFACE_CONNECTION,
-      "connection", connection,
-      NULL);
-  g_free (unique_name);
-
-  g_datalist_init (&(obj->interface_list));
-
-  //ADD_SIGNALS_FOR_CONNECTION (DBUS_G_PROXY (obj)); //commenting this bcoz header file not found 
-  //equivalent of above stmt
-  dbus_g_proxy_add_signal (DBUS_G_PROXY (obj), "NewChannel",\
-    DBUS_TYPE_G_OBJECT_PATH,\
-    G_TYPE_STRING,\
-    G_TYPE_UINT,\
-    G_TYPE_UINT,\
-    G_TYPE_BOOLEAN,\
-    G_TYPE_INVALID);\
-  dbus_g_proxy_add_signal (DBUS_G_PROXY (obj), "StatusChanged",\
-    G_TYPE_UINT,\
-    G_TYPE_UINT,\
-    G_TYPE_INVALID);
-
-  /* Check if the connection is already connected. If so, we can
-   * already perform GetInterfaces(). */
-
-  if (!tp_conn_get_status (DBUS_G_PROXY (obj), &conn_status, &err))
-    {
-      if (err != NULL)
-        g_propagate_error (error, err);
-
-      g_object_unref (obj);
-      return NULL;
-    }
-
-  if (conn_status == TP_CONN_STATUS_CONNECTED)
-    {
-      if (!tp_conn_get_interfaces (DBUS_G_PROXY (obj), &interfaces, &err))
-        {
-          if (err != NULL)
-            g_propagate_error (error, err);
-
-          g_object_unref (obj);
-          return NULL;
-        }
-
-      /* Initialize the interface objects for this TpConn object */
-      tp_conn_local_set_interfaces (obj, interfaces);
-
-      g_strfreev (interfaces);
-    }
-  else
-    {
-      /* Not connected yet, so this is really a new connection. Thus, we
-         have to hook up to StatusChanged signal to perform the
-         GetInterfaces when it goes Connected */
-
-      dbus_g_proxy_connect_signal (DBUS_G_PROXY (obj), "StatusChanged",
-          G_CALLBACK (tp_conn_status_change_handler), NULL, NULL);
-    }
-
-  if (status != NULL)
-    *status = conn_status;
-  return obj;
-}
-
-
-TpConn *
-tp_conn_new (DBusGConnection *connection,
-             const gchar *bus_name,
-             const gchar *object_path)
-{
-  GError *error = NULL;
-  guint status;
-  TpConn *obj;
-
-  g_return_val_if_fail (connection != NULL, NULL);
-  g_return_val_if_fail (bus_name != NULL, NULL);
-  g_return_val_if_fail (object_path, NULL);
-
-  obj = tp_conn_new_without_connect (connection, bus_name, object_path,
-      &status, &error);
-
-  if (obj == NULL)
-    {
-      /* either GetNameOwner, GetStatus or GetInterfaces failed */
-      if (error != NULL)
-        {
-          g_warning ("Failed to create connection for %s %s: %s", bus_name,
-              object_path, error->message);
-          g_error_free (error);
-        }
-      else
-        {
-          g_warning ("Failed to create connection for %s %s: error is NULL",
-              bus_name, object_path);
-        }
-
-      return NULL;
-    }
-
-  if (status != TP_CONN_STATUS_CONNECTED)
-    {
-      tp_conn_connect_async (DBUS_G_PROXY (obj), _tp_conn_connect_req_handler,
-          NULL);
-    }
-
-  return obj;
-}
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-TpChan *tp_conn_new_channel(DBusGConnection *connection,
-			    TpConn *tp_conn, const gchar *bus_name,
-			    gchar *type, guint handle_type,
-			    guint handle, gboolean supress_handler)
-{
-  GError *error = NULL;
-  gchar *chan_object_path = NULL;
-  TpChan *new_chan = NULL;
-
-  g_return_val_if_fail(connection, NULL);
-  g_return_val_if_fail(TELEPATHY_IS_CONN(tp_conn), NULL);
-  g_return_val_if_fail(bus_name, NULL);
-  g_return_val_if_fail(type, NULL);
-
-  /* Request a new channel to be created by using the proxy object.
-     We also retrieve the object path for it here. */
-
-  if (!tp_conn_request_channel(DBUS_G_PROXY(tp_conn),
-                               type, handle_type, handle, supress_handler,
-                               &chan_object_path, &error))
-  {
-    g_warning("RequestChannel() failed: %s\n", error -> message);
-    
-    g_error_free(error);
-    return NULL;
-  }
-
-
-  /* Create the object to represent the channel */
-
-  new_chan = tp_chan_new(connection, bus_name, chan_object_path, type,
-                         handle_type, handle);
-                         
-                    
-  g_free(chan_object_path);
-
-
-
-  return new_chan;
-}
-
-
-void tp_conn_local_set_interfaces(TpConn *self, gchar **interfaces)
-{
-  gchar **temp_ifaces = NULL;
-  const gchar *bus_name = dbus_g_proxy_get_bus_name(DBUS_G_PROXY(self));
-  const gchar *object_path = dbus_g_proxy_get_path(DBUS_G_PROXY(self));
-
-  DBusGConnection *connection = tp_get_bus ();
-
-  if (interfaces == NULL || connection == NULL)
-  {
-    return;
-  }
-
-  /* Create and store the proxy objects for the connection interfaces. */
-  for (temp_ifaces = interfaces; *temp_ifaces; temp_ifaces++)
-  {
-    DBusGProxy *if_proxy;
-    GQuark key = g_quark_from_string(*temp_ifaces);
-
-    if (key == TELEPATHY_PROPS_IFACE_QUARK)
-      {
-        if_proxy = DBUS_G_PROXY (tp_props_iface_new (connection,
-                                                     bus_name, object_path));
-      }
-    else
-      {
-        if_proxy = dbus_g_proxy_new_for_name(connection, bus_name, object_path,
-                                             *temp_ifaces);
-        if (if_proxy != NULL)
-        {
-          GData *sig_list = TELEPATHY_CONN_GET_CLASS(self)->iface_signal_sigs;
-          void (*signature_setter_func)();
-
-          /* Does the interface have signals? If yes, add their signatures
-             for the interface instance */
-          signature_setter_func =
-            g_datalist_id_get_data(&sig_list, key);
-
-          if (signature_setter_func != NULL)
-          {
-            signature_setter_func(if_proxy);
-          }
-        }
-      }
-
-   if (if_proxy != NULL)
-    {
-      g_datalist_id_set_data_full(&(self->interface_list),
-      key, if_proxy, g_object_unref);
-    }
-
-  }
-}
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-DBusGProxy *
-tp_conn_get_interface (TpConn *self,
-                       GQuark iface_quark)
-{
-  DBusGProxy *iface_proxy = NULL;
-
-  g_return_val_if_fail (self != NULL, NULL);
-  g_return_val_if_fail (iface_quark != 0, NULL);
-
-  iface_proxy = (DBusGProxy *) g_datalist_id_get_data (
-      &(self->interface_list), iface_quark);
-
-  return iface_proxy;
-}
-
-void
-_tp_conn_connect_req_handler (DBusGProxy *proxy,
-                              GError *error,
-                              gpointer user_data)
-{
-  /* The interfaces for the TpConn are set on the StatusChanged
-     handler when we get connected. Just print errors (if any)
-     here. */
-
-  if (error)
-  {
-    g_warning ("Could not perform Connect() for the connection, because: %s",
-               error->message);
-    g_error_free (error);
-    return;
-  }
-
-}
-
-static gboolean
-tp_conn_status_change_handler (DBusGProxy *proxy,
-                               guint status,
-                               guint reason,
-                               gpointer user_data)
-{
-  gchar **interfaces = NULL;
-  GError *error = NULL;
-  TpConn *tp_conn = (TpConn *) proxy;
-
-  /* If the connection is up, we can get the list of interfaces */
-  /* FIXME: At some point, we should switch to doing this asynchronously */
-
-  if (status == TP_CONN_STATUS_CONNECTED)
-    {
-      if (!tp_conn_get_interfaces (DBUS_G_PROXY (proxy), &interfaces, &error))
-        {
-          g_warning ("GetInterfaces failed: %s\n", error->message);
-          g_error_free (error);
-          return TRUE;
-        }
-
-      /* Initialize the interface objects for this TpConn object */
-
-      tp_conn_local_set_interfaces (tp_conn, interfaces);
-
-      g_strfreev (interfaces);
-
-      dbus_g_proxy_disconnect_signal (proxy, "StatusChanged",
-          G_CALLBACK (tp_conn_status_change_handler), NULL);
-    }
-
-  return TRUE;
-}
-
-
-static void synthesize_status_changed(TpConn *conn)
-{
-
-  DBusMessageIter iter;
-  DBusMessage *msg = NULL;
-  guint value;
-  GType uint_type = G_TYPE_UINT;
-  GArray *statuschanged_signal_types = g_array_new(FALSE, FALSE,
-                                                  sizeof(GType));
-                                                  
-  
-  if (!statuschanged_signal_types)
-  {
-    g_warning("%s: Could not allocate type array for StatusChanged",
-              G_STRFUNC);
-    return;
-  }
-
-  msg = dbus_message_new_signal(dbus_g_proxy_get_path(DBUS_G_PROXY(conn)),
-                                TP_IFACE_CONN_INTERFACE, "StatusChanged");
-
-  if (!msg)
-  {
-    g_warning("%s: Could not allocate message for StatusChanged signal",
-              G_STRFUNC);
-    g_array_free(statuschanged_signal_types, FALSE);
-    return;
-  }
-
-  dbus_message_iter_init_append(msg, &iter); 
-  value = TP_CONN_STATUS_DISCONNECTED; 
-  dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &value); 
-  value = TP_CONN_STATUS_REASON_NONE_SPECIFIED; 
-  dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &value);
-
-  /* TODO: It might be worth considering to setup/remove the array in
-     base_init/base_deinit to make it persist for the whole class */
-  
-  if (statuschanged_signal_types)
-  {
-    g_array_insert_val(statuschanged_signal_types, 0, uint_type);
-    g_array_insert_val(statuschanged_signal_types, 1, uint_type);
-  }
-  else
-  {
-    g_warning("%s: Could not allocate array for StatusChanged types",
-              G_STRFUNC);
-    dbus_message_unref(msg);
-    return;
-  }
-
-  g_signal_emit_by_name(DBUS_G_PROXY(conn), 
-                        TP_IFACE_CONN_SIGNAL_STATUSCHANGED_SYNTHESIZED, msg,
-                        statuschanged_signal_types);
-  g_array_free(statuschanged_signal_types, TRUE);
-  dbus_message_unref(msg);
-}
--- a/libtelepathy/src/tp-connmgr-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:STRING,OBJECT,STRING (tp-connmgr-signals-marshal.list:1) */
-void
-tp_connmgr_signals_marshal_VOID__STRING_OBJECT_STRING (GClosure     *closure,
-                                                       GValue       *return_value,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint,
-                                                       gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_OBJECT_STRING) (gpointer     data1,
-                                                           gpointer     arg_1,
-                                                           gpointer     arg_2,
-                                                           gpointer     arg_3,
-                                                           gpointer     data2);
-  register GMarshalFunc_VOID__STRING_OBJECT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_OBJECT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_object (param_values + 2),
-            g_marshal_value_peek_string (param_values + 3),
-            data2);
-}
-
--- a/libtelepathy/src/tp-connmgr.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-/* tp-connmgr.c
- *
-  * Copyright (C) 2005 Collabora Ltd.	
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include "tp-connmgr.h"
-#include "tp-connmgr-signals-marshal.h"
-#include "tp-conn.h"
-#include "tp-helpers.h"
-
-#ifdef EMULATOR
-#include "libtelepathy_wsd_solution.h"
-#endif
-
-#ifdef EMULATOR
-	
-	GET_STATIC_VAR_FROM_TLS(parent_class,tp_connmgr,GObjectClass *)
-	#define parent_class (*GET_WSD_VAR_NAME(parent_class,tp_connmgr,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(type1,tp_connmgr,GType)
-	#define type1 (*GET_WSD_VAR_NAME(type1,tp_connmgr,s)())
-#else	
-	static GObjectClass *parent_class = NULL;
-#endif
-	
-
-static void _tp_connmgr_register_signal_marshallers()
-{
-  /* Register marshaller for the NewConnection signal */
-  dbus_g_object_register_marshaller(tp_connmgr_signals_marshal_VOID__STRING_OBJECT_STRING, G_TYPE_NONE, G_TYPE_STRING, DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING, G_TYPE_INVALID);
-}
-
-static void tp_connmgr_dispose(GObject *obj)
-{
-  TpConnMgr *self = TELEPATHY_CONNMGR(obj);
-
-  if (self->first_run)
-  {
-    self->first_run = FALSE;
-  }
-
-  /* Call the parent dispose method */
-  if (G_OBJECT_CLASS(parent_class)->dispose)
-  {
-    G_OBJECT_CLASS(parent_class)->dispose(obj);
-  }
-
-}
-
-
-static void tp_connmgr_finalize(GObject *obj)
-{
-  if(G_OBJECT_CLASS(parent_class)->finalize)
-  {
-    G_OBJECT_CLASS(parent_class)->finalize(obj);
-  }
-}
-
-
-static void tp_connmgr_init(GTypeInstance *instance, gpointer g_class)
-{
-  TpConnMgr *self = TELEPATHY_CONNMGR(instance);
-
-  self->first_run = TRUE;
-}
-
-
-static void tp_connmgr_class_init(TpConnMgrClass *klass)
-{
-  GObjectClass *obj = G_OBJECT_CLASS(klass);
-  parent_class = g_type_class_peek_parent(klass);
-
-  obj->set_property = parent_class->set_property;
-  obj->get_property = parent_class->get_property;
-
-  obj->dispose = tp_connmgr_dispose;
-  obj->finalize = tp_connmgr_finalize;
-  
-  _tp_connmgr_register_signal_marshallers();
-}
-
-
-GType tp_connmgr_get_type(void)
-{
-#ifndef EMULATOR
-  static GType type1 = 0;
-#endif
-  
-  if (type1 == 0)
-  {
-    static const GTypeInfo info = 
-    {
-      sizeof(TpConnMgrClass),
-      NULL,
-      NULL,
-      (GClassInitFunc)tp_connmgr_class_init,
-      NULL,
-      NULL,
-      sizeof(TpConnMgr),
-      0,
-      (GInstanceInitFunc)tp_connmgr_init
-
-    };
-    type1 = g_type_register_static(DBUS_TYPE_G_PROXY,
-        "TpConnMgr", &info, 0);
-  }
-  return type1;
-}
-
-
-
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-TpConnMgr *tp_connmgr_new(DBusGConnection *connection,
-			  const char *bus_name,
-			  const char *object_path,
-			  const char *interface_name)
-{
-  TpConnMgr *obj;
-  g_return_val_if_fail(connection != NULL, NULL);
-  g_return_val_if_fail(bus_name != NULL, NULL);
-  g_return_val_if_fail(object_path, NULL);
-  g_return_val_if_fail(interface_name, NULL);
-  
-  obj = g_object_new(TELEPATHY_CONNMGR_TYPE,
-		     "name", bus_name,
-		     "path", object_path,
-		     "interface", interface_name,
-		     "connection", connection, NULL);
-
-  dbus_g_proxy_add_signal(DBUS_G_PROXY(obj), 
-			  "NewConnection",
-			  G_TYPE_STRING, DBUS_TYPE_G_OBJECT_PATH,
-			  G_TYPE_STRING, G_TYPE_INVALID);
-
-  return obj;
-}
-
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-TpConn *tp_connmgr_new_connection(TpConnMgr *self, 
-				  GHashTable *connection_parameters,
-				  gchar *protocol)
-{
-  GError *error = NULL;
-  TpConn *tp_conn_obj = NULL;
-  DBusGConnection *connection = tp_get_bus ();
-  gchar *bus_name = NULL, *object_path = NULL;
-  g_return_val_if_fail(TELEPATHY_IS_CONNMGR(self), NULL);
-  g_return_val_if_fail(connection_parameters != NULL, NULL);
-
-  /* Create the actual connection and acquire service and path
-     information that the TpConn object will need */
-
-  if (!tp_connmgr_request_connection(DBUS_G_PROXY(self), protocol,
-                          connection_parameters, &bus_name,
-                          &object_path, &error))
-  {
-    g_warning("Connect() failed: %s\n", error -> message);
-    g_error_free(error);
-    return NULL;
-  }
-
-  if (bus_name == NULL || object_path == NULL)
-  {
-    return NULL;
-  }
-
-  /* Create the TpConn object */
-
-  tp_conn_obj = tp_conn_new(connection, bus_name, object_path);
-
-  return tp_conn_obj;
-}
-
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-gboolean tp_connmgr_list_protocols(TpConnMgr *self, char *** proto)
-{
-  GError *error = NULL;
-
-  return dbus_g_proxy_call (DBUS_G_PROXY(self), "ListProtocols", &error, G_TYPE_INVALID, G_TYPE_STRV, proto, G_TYPE_INVALID);
-}
-
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-gboolean
-tp_connmgr_get_parameters (TpConnMgr *self, const char * IN_proto, GPtrArray** OUT_arg1)
-
-{
-  return dbus_g_proxy_call (DBUS_G_PROXY(self), "GetParameters", NULL, G_TYPE_STRING, IN_proto, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID)), OUT_arg1, G_TYPE_INVALID);
-}
-
--- a/libtelepathy/src/tp-helpers.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,292 +0,0 @@
-/*
- * tp-helpers.c - Source for various helper functions
- * for telepathy implementation
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include <stdlib.h>
-#include "tp-helpers.h"
-
-
-#define CM_CONFS_DIR "/usr/share/telepathy/managers/"
-#define CM_CONF_SUFFIX ".manager"
-#define CM_CONF_GROUP "ConnectionManager"
-#define FILE_SEPARATOR ','
-#define PROTO "Proto "
-
-
-#ifdef EMULATOR
-#include "libtelepathy_wsd_solution.h"
-#endif
-
-#ifdef EMULATOR
-	
-	GET_STATIC_VAR_FROM_TLS(bus_proxy,tp_helpers,DBusGProxy *)
-	#define bus_proxy (*GET_WSD_VAR_NAME(bus_proxy,tp_helpers,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(bus1,tp_helpers,DBusGConnection *)
-	#define bus1 (*GET_WSD_VAR_NAME(bus1,tp_helpers,s)())	
-	
-#endif
-	
-static void _list_builder(gpointer key, gpointer value, gpointer data);
-
-DBusGConnection *
-tp_get_bus ()
-{
-#ifndef EMULATOR
-  static DBusGConnection *bus1 = NULL;
-#endif
-  
-
-  if (bus1 == NULL)
-    {
-      GError *error = NULL;
-
-      bus1 = dbus_g_bus_get (/*DBUS_BUS_STARTER*/DBUS_BUS_SESSION, &error);
-
-      if (bus1 == NULL)
-        g_error ("Failed to connect to starter bus: %s", error->message);
-    }
-
-  return bus1;
-}
-
-DBusGProxy *
-tp_get_bus_proxy ()
-{
-#ifndef EMULATOR
-  static DBusGProxy *bus_proxy = NULL;
-#endif
-
-  if (bus_proxy == NULL)
-    {
-      DBusGConnection *bus = tp_get_bus ();
-
-      bus_proxy = dbus_g_proxy_new_for_name (bus,
-                                            "org.freedesktop.DBus",
-                                            "/org/freedesktop/DBus",
-                                            "org.freedesktop.DBus");
-
-      if (bus_proxy == NULL)
-        g_error ("Failed to get proxy object for bus.");
-    }
-
-  return bus_proxy;
-}
-
-GSList *
-tp_hash_to_key_value_list(GHashTable *hash)
-{
-  GSList *ret = NULL;
-  g_hash_table_foreach(hash, _list_builder, &ret);
-  return ret;
-}
-
-void
-tp_key_value_list_free(GSList *list)
-{
-  GSList *iter;
-
-  for (iter = list; iter; iter = g_slist_next(iter))
-  {
-    g_free(iter->data);
-  }
-  g_slist_free(list);
-}
-
-static void _list_builder(gpointer key, gpointer value, gpointer data)
-{
-  GSList **list = (GSList **)data;
-  TpKeyValue *kv = g_new0(TpKeyValue, 1);
-  kv->key = key;
-  kv->value = value;
-  *list = g_slist_prepend(*list, kv);
-}
-
-GSList *tp_connmgr_list_cms(void)
-{
-  GError *error = NULL;
-  GDir *dir;
-  const gchar *filename;
-  gchar **name;
-  gchar *absolute_filepath;
-  GSList *cms = NULL;
-
-
-  /* Read the configuration file directory */
-  if ((dir = g_dir_open(CM_CONFS_DIR, 0, &error)) == NULL)
-  {
-    g_printerr("Error opening directory %s: %s", CM_CONFS_DIR,
-        error->message);
-    return NULL;
-  }
-
-  while ((filename = g_dir_read_name(dir)) != NULL)
-    /* Skip the file if it doesn't contain the required file suffix */
-    if (g_str_has_suffix(filename, CM_CONF_SUFFIX))
-    {
-      absolute_filepath = g_strconcat(CM_CONFS_DIR, filename, NULL);
-      name = g_strsplit(filename, ".", 0);
-      cms = g_slist_append(cms, *name);
-    }
-
-  return cms;
-}
-
-TpConnMgrInfo *tp_connmgr_get_info(gchar *cm)
-{
-  GError *error = NULL;
-  GKeyFile *file;
-  gsize len;
-  gchar *absolute_filepath;
-  gchar **protocols;
-  TpConnMgrInfo *cm_info = (TpConnMgrInfo *)malloc(sizeof(TpConnMgrInfo));
-  cm_info->protocol_info = g_hash_table_new(g_str_hash, g_str_equal);
-
-  absolute_filepath = g_strconcat(CM_CONFS_DIR, cm, CM_CONF_SUFFIX, NULL);
-
-  file = g_key_file_new();
-  if (!g_key_file_load_from_file
-      (file, absolute_filepath, G_KEY_FILE_NONE, &error))
-  {
-    /* handle error */
-    g_printerr("%s", error->message);
-    g_error_free(error);
-    return NULL;
-  }
-  g_key_file_set_list_separator(file, FILE_SEPARATOR);
-
-  cm_info->name = g_key_file_get_string(file, CM_CONF_GROUP,
-            "Name", &error);
-  if (!(cm_info->name))
-  {
-    /* handle error and free dynamic memory */
-    g_printerr("%s", error->message);
-    g_error_free(error);
-    g_key_file_free(file);
-    g_free(absolute_filepath);
-    free(cm_info);
-    return NULL;
-  }
-  cm_info->bus_name = g_key_file_get_string(file, CM_CONF_GROUP,
-            "BusName", &error);
-  if (!(cm_info->bus_name))
-  {
-    /* handle error and free dynamic memory */
-    g_printerr("%s", error->message);
-    g_error_free(error);
-    g_key_file_free(file);
-    g_free(absolute_filepath);
-    g_free(cm_info->name);
-    free(cm_info);
-    return NULL;
-  }
-  cm_info->object_path = g_key_file_get_string(file,CM_CONF_GROUP,
-            "ObjectPath", &error);
-  if (!(cm_info->object_path))
-  {
-    /* handle error and free dynamic memory */
-    g_printerr("%s", error->message);
-    g_error_free(error);
-    g_key_file_free(file);
-    g_free(absolute_filepath);
-    g_free(cm_info->name);
-    g_free(cm_info->bus_name);
-    free(cm_info);
-    return NULL;
-  }
-  cm_info->protocols = g_key_file_get_string_list(file, CM_CONF_GROUP, 
-                              "Protos", &len, &error);
-  if (!(cm_info->protocols))
-  {
-    /* handle error and free dynamic memory */
-    g_printerr("%s", error->message);
-    g_error_free(error);
-    g_key_file_free(file);
-    g_free(absolute_filepath);
-    g_free(cm_info->name);
-    g_free(cm_info->bus_name);
-    g_free(cm_info->object_path);
-    free(cm_info);
-    return NULL;
-  }
-
-  for(protocols=cm_info->protocols; *protocols; protocols++)
-  {
-    gchar **keys;
-    gchar *key_value;
-    gchar *proto_group =  g_strconcat(PROTO, *protocols, NULL);
-    TpConnMgrProtInfo *cm_prot_info = 
-                       (TpConnMgrProtInfo *)malloc(sizeof(TpConnMgrProtInfo));
-    cm_prot_info->default_params = g_hash_table_new(g_str_hash, g_str_equal);
-    
-    cm_prot_info->mandatory_params = g_key_file_get_string_list(file, 
-                                   proto_group, "MandatoryParams", &len, &error);
-    if (!(cm_prot_info->mandatory_params))
-    {
-      g_printerr("%s", error->message);
-      g_error_free(error);
-    }
-    cm_prot_info->optional_params = g_key_file_get_string_list(file, 
-                                   proto_group, "OptionalParams", &len, &error);
-    if (!(cm_prot_info->optional_params))
-    {
-      g_printerr("%s", error->message);
-      g_error_free(error);
-    }
-
-    keys = g_key_file_get_keys (file, proto_group, &len, &error);
-    if (!(keys))
-    {
-      g_printerr("%s", error->message);
-      g_error_free(error);
-    }
-    else
-    {
-      for(; *keys; keys++)
-      {
-        if(g_str_has_prefix(*keys, "default"))
-        {
-          key_value = g_key_file_get_string(file, proto_group, 
-                                                   *keys, &error);
-          if (!(key_value))
-          {
-            g_printerr("%s", error->message);
-            g_error_free(error);
-          }
-          else
-            g_hash_table_insert(cm_prot_info->default_params, 
-                                g_strdup(*keys), key_value);
-        }
-      }
-   }
-    
-
-   g_hash_table_insert(cm_info->protocol_info, g_strdup(*protocols), 
-                        cm_prot_info);
-         
-  }
-
-  g_key_file_free(file);
-  g_free(absolute_filepath);
-  return cm_info;
-
-}
--- a/libtelepathy/src/tp-ifaces-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,591 +0,0 @@
-/*
- * Copyright (C) 2005 Collabora Ltd.
- * 	
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:UINT,STRING (tp-ifaces-signals-marshal.list:3) */
-void
-tp_ifaces_signals_marshal_VOID__UINT_STRING (GClosure     *closure,
-                                             GValue       *return_value,
-                                             guint         n_param_values,
-                                             const GValue *param_values,
-                                             gpointer      invocation_hint,
-                                             gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_STRING) (gpointer     data1,
-                                                  guint        arg_1,
-                                                  gpointer     arg_2,
-                                                  gpointer     data2);
-  register GMarshalFunc_VOID__UINT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_string (param_values + 2),
-            data2);
-}
-
-/* VOID:UINT,BOXED,BOXED (tp-ifaces-signals-marshal.list:5) */
-void
-tp_ifaces_signals_marshal_VOID__UINT_BOXED_BOXED (GClosure     *closure,
-                                                  GValue       *return_value,
-                                                  guint         n_param_values,
-                                                  const GValue *param_values,
-                                                  gpointer      invocation_hint,
-                                                  gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_BOXED_BOXED) (gpointer     data1,
-                                                       guint        arg_1,
-                                                       gpointer     arg_2,
-                                                       gpointer     arg_3,
-                                                       gpointer     data2);
-  register GMarshalFunc_VOID__UINT_BOXED_BOXED callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_BOXED_BOXED) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_boxed (param_values + 2),
-            g_marshal_value_peek_boxed (param_values + 3),
-            data2);
-}
-
-/* VOID:STRING (tp-ifaces-signals-marshal.list:7) */
-
-/* VOID:INT,BOXED (tp-ifaces-signals-marshal.list:11) */
-void
-tp_ifaces_signals_marshal_VOID__INT_BOXED (GClosure     *closure,
-                                           GValue       *return_value,
-                                           guint         n_param_values,
-                                           const GValue *param_values,
-                                           gpointer      invocation_hint,
-                                           gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__INT_BOXED) (gpointer     data1,
-                                                gint         arg_1,
-                                                gpointer     arg_2,
-                                                gpointer     data2);
-  register GMarshalFunc_VOID__INT_BOXED callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__INT_BOXED) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_int (param_values + 1),
-            g_marshal_value_peek_boxed (param_values + 2),
-            data2);
-}
-
-
-/* VOID:STRING,BOXED (tp-ifaces-signals-marshal.list:11) */
-//Added for search
-void
-tp_ifaces_signals_marshal_VOID__UINT_BOXED (GClosure     *closure,
-                                           GValue       *return_value,
-                                           guint         n_param_values,
-                                           const GValue *param_values,
-                                           gpointer      invocation_hint,
-                                           gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_BOXED) (gpointer     data1,
-                                                guint         arg_1,
-                                                gpointer     arg_2,
-                                                gpointer     data2);
-  register GMarshalFunc_VOID__UINT_BOXED callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_BOXED) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_boxed (param_values + 2),
-            data2);
-}
-
-/* VOID:UINT (tp-ifaces-signals-marshal.list:13) */
-
-/* VOID:UINT,STRING,STRING (tp-ifaces-signals-marshal.list:15) */
-void
-tp_ifaces_signals_marshal_VOID__UINT_STRING_STRING (GClosure     *closure,
-                                                    GValue       *return_value,
-                                                    guint         n_param_values,
-                                                    const GValue *param_values,
-                                                    gpointer      invocation_hint,
-                                                    gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_STRING_STRING) (gpointer     data1,
-                                                         guint        arg_1,
-                                                         gpointer     arg_2,
-                                                         gpointer     arg_3,
-                                                         gpointer     data2);
-  register GMarshalFunc_VOID__UINT_STRING_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_STRING_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_string (param_values + 2),
-            g_marshal_value_peek_string (param_values + 3),
-            data2);
-}
-
-/* VOID:UINT,UINT,UINT (tp-ifaces-signals-marshal.list:17) */
-void
-tp_ifaces_signals_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
-                                                GValue       *return_value,
-                                                guint         n_param_values,
-                                                const GValue *param_values,
-                                                gpointer      invocation_hint,
-                                                gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT) (gpointer     data1,
-                                                     guint        arg_1,
-                                                     guint        arg_2,
-                                                     guint        arg_3,
-                                                     gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_uint (param_values + 3),
-            data2);
-}
-
-/* VOID:BOOLEAN (tp-ifaces-signals-marshal.list:19) */
-
-/* VOID:UINT,UINT,UINT,UINT,UINT,STRING (tp-ifaces-signals-marshal.list:21) */
-void
-tp_ifaces_signals_marshal_VOID__UINT_UINT_UINT_UINT_UINT_STRING (GClosure     *closure,
-                                                                 GValue       *return_value,
-                                                                 guint         n_param_values,
-                                                                 const GValue *param_values,
-                                                                 gpointer      invocation_hint,
-                                                                 gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT_UINT_UINT_STRING) (gpointer     data1,
-                                                                      guint        arg_1,
-                                                                      guint        arg_2,
-                                                                      guint        arg_3,
-                                                                      guint        arg_4,
-                                                                      guint        arg_5,
-                                                                      gpointer     arg_6,
-                                                                      gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT_UINT_UINT_UINT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 7);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT_UINT_UINT_UINT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_uint (param_values + 3),
-            g_marshal_value_peek_uint (param_values + 4),
-            g_marshal_value_peek_uint (param_values + 5),
-            g_marshal_value_peek_string (param_values + 6),
-            data2);
-}
-
-/* VOID:UINT,UINT,STRING (tp-ifaces-signals-marshal.list:23) */
-void
-tp_ifaces_signals_marshal_VOID__UINT_UINT_STRING (GClosure     *closure,
-                                                  GValue       *return_value,
-                                                  guint         n_param_values,
-                                                  const GValue *param_values,
-                                                  gpointer      invocation_hint,
-                                                  gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT_STRING) (gpointer     data1,
-                                                       guint        arg_1,
-                                                       guint        arg_2,
-                                                       gpointer     arg_3,
-                                                       gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_string (param_values + 3),
-            data2);
-}
-
-/* VOID:UINT,UINT (tp-ifaces-signals-marshal.list:27) */
-void
-tp_ifaces_signals_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                           GValue       *return_value,
-                                           guint         n_param_values,
-                                           const GValue *param_values,
-                                           gpointer      invocation_hint,
-                                           gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer     data1,
-                                                guint        arg_1,
-                                                guint        arg_2,
-                                                gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            data2);
-}
-
-/* VOID:STRING,BOXED,BOXED,BOXED,BOXED,UINT,UINT (tp-ifaces-signals-marshal.list:29) */
-void
-tp_ifaces_signals_marshal_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT (GClosure     *closure,
-                                                                          GValue       *return_value,
-                                                                          guint         n_param_values,
-                                                                          const GValue *param_values,
-                                                                          gpointer      invocation_hint,
-                                                                          gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT) (gpointer     data1,
-                                                                               gpointer     arg_1,
-                                                                               gpointer     arg_2,
-                                                                               gpointer     arg_3,
-                                                                               gpointer     arg_4,
-                                                                               gpointer     arg_5,
-                                                                               guint        arg_6,
-                                                                               guint        arg_7,
-                                                                               gpointer     data2);
-  register GMarshalFunc_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 8);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_boxed (param_values + 2),
-            g_marshal_value_peek_boxed (param_values + 3),
-            g_marshal_value_peek_boxed (param_values + 4),
-            g_marshal_value_peek_boxed (param_values + 5),
-            g_marshal_value_peek_uint (param_values + 6),
-            g_marshal_value_peek_uint (param_values + 7),
-            data2);
-}
-
-/* VOID:BOXED (tp-ifaces-signals-marshal.list:33) */
-
-/* VOID:UINT,UINT,UINT,STRING (tp-ifaces-signals-marshal.list:35) */
-void
-tp_ifaces_signals_marshal_VOID__UINT_UINT_UINT_STRING (GClosure     *closure,
-                                                       GValue       *return_value,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint,
-                                                       gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT_STRING) (gpointer     data1,
-                                                            guint        arg_1,
-                                                            guint        arg_2,
-                                                            guint        arg_3,
-                                                            gpointer     arg_4,
-                                                            gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT_UINT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT_UINT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_uint (param_values + 3),
-            g_marshal_value_peek_string (param_values + 4),
-            data2);
-}
-
-/* VOID:OBJECT,STRING (tp-ifaces-signals-marshal.list:37) */
-void
-tp_ifaces_signals_marshal_VOID__OBJECT_STRING (GClosure     *closure,
-                                               GValue       *return_value,
-                                               guint         n_param_values,
-                                               const GValue *param_values,
-                                               gpointer      invocation_hint,
-                                               gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__OBJECT_STRING) (gpointer     data1,
-                                                    gpointer     arg_1,
-                                                    gpointer     arg_2,
-                                                    gpointer     data2);
-  register GMarshalFunc_VOID__OBJECT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__OBJECT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_object (param_values + 1),
-            g_marshal_value_peek_string (param_values + 2),
-            data2);
-}
-
-void
-tp_ifaces_signals_marshal_VOID__UINT_STRING_BOXED_STRING (GClosure     *closure,
-                                                          GValue       *return_value,
-                                                          guint         n_param_values,
-                                                          const GValue *param_values,
-                                                          gpointer      invocation_hint,
-                                                          gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_STRING_BOXED_STRING) (gpointer     data1,
-                                                               guint        arg_1,
-                                                               gpointer     arg_2,
-                                                               gpointer     arg_3,
-                                                               gpointer     arg_4,
-                                                               gpointer     data2);
-  register GMarshalFunc_VOID__UINT_STRING_BOXED_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_STRING_BOXED_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_string (param_values + 2),
-            g_marshal_value_peek_boxed (param_values + 3),
-            g_marshal_value_peek_string (param_values + 4),
-            data2);
-}
-
--- a/libtelepathy/src/tp-props-iface.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,653 +0,0 @@
-/* tp-props-iface.c
- *
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include <dbus/dbus-glib.h>
-#include <string.h>
-#include "tp-interfaces.h"
-#include "tp-ifaces-signals-marshal.h"
-#include "tp-props-iface-gen.h"
-#include "tp-props-iface.h"
-
-#ifdef EMULATOR
-#include "libtelepathy_wsd_solution.h"
-#endif
-
-
-#define TP_TYPE_PROPERTY_DESCRIPTION (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, \
-      G_TYPE_STRING, \
-      G_TYPE_STRING, \
-      G_TYPE_UINT, \
-      G_TYPE_INVALID))
-
-#define TP_TYPE_PROPERTY_CHANGE (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, \
-      G_TYPE_VALUE, \
-      G_TYPE_INVALID))
-
-#define TP_TYPE_PROPERTY_FLAGS_CHANGE (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_INVALID))
-
-
-
-
-/*signal enum*/
-enum
-{
-  PROPERTIES_READY,
-  PROPERTY_CHANGED,
-  LAST_SIGNAL 
-#ifdef EMULATOR  
-  = LAST_SIGNAL_TP_PROPS_IFACE
-#endif
-  
-};
-
-#ifndef EMULATOR
-	static guint signals[LAST_SIGNAL] = {0};
-#endif
-
-/* looking up properties is linear time on the grounds that number of properties
- * will always be small, so this will be more cache-friendly
- */
-typedef struct _PropertyMapping PropertyMapping;
-struct _PropertyMapping
-{
-  guint user_id;
-  guint32 server_id;
-  gchar *name;
-  GValue *value;
-  guint32 flags;
-};
-
-typedef struct _TpPropsPrivate TpPropsPrivate;
-
-struct _TpPropsPrivate
-{
-  gboolean properties_ready;
-
-  int mappings_len;
-  PropertyMapping *mappings;
-};
-
-#ifndef EMULATOR
-	static GObjectClass *parent_class = NULL;
-#endif
-
-
-#ifdef EMULATOR
-	
-	GET_STATIC_ARRAY_FROM_TLS(signals,tp_props_iface,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,tp_props_iface, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(parent_class,tp_props_iface,GObjectClass *)
-	#define parent_class (*GET_WSD_VAR_NAME(parent_class,tp_props_iface,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(type1,tp_props_iface,GType)
-	#define type1 (*GET_WSD_VAR_NAME(type1,tp_props_iface,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ret,tp_props_iface,GQuark)
-	#define ret (*GET_WSD_VAR_NAME(ret,tp_props_iface,s)())
-	
-#endif
-	
-
-#define PRIV(o) ((TpPropsPrivate*)(o->priv))
-
-static void properties_listed_cb (DBusGProxy *proxy, GPtrArray *properties, GError *error, gpointer user_data);
-
-static void tp_props_iface_init(GTypeInstance *instance, gpointer g_class)
-{
-  TpPropsIface *self = TELEPATHY_PROPS_IFACE(instance);
-
-  self->priv = G_TYPE_INSTANCE_GET_PRIVATE ((self),
-                 TELEPATHY_PROPS_IFACE_TYPE, TpPropsPrivate);
-
-}
-
-static GObject *
-tp_props_iface_constructor (GType type, guint n_props,
-                             GObjectConstructParam *props)
-{
-  GObject *obj;
-
-  obj = G_OBJECT_CLASS (parent_class)->
-           constructor (type, n_props, props);
-
-  dbus_g_proxy_add_signal(DBUS_G_PROXY(obj), "PropertiesChanged",
-      dbus_g_type_get_collection ("GPtrArray", TP_TYPE_PROPERTY_CHANGE),
-                                  G_TYPE_INVALID);
-  dbus_g_proxy_add_signal(DBUS_G_PROXY(obj), "PropertyFlagsChanged",
-      dbus_g_type_get_collection ("GPtrArray", TP_TYPE_PROPERTY_FLAGS_CHANGE),
-                                  G_TYPE_INVALID);
-
-  return obj;
-}
-
-static void tp_props_iface_dispose(GObject *obj)
-{
-
-  /* Call parent class dispose method */
-  if (G_OBJECT_CLASS(parent_class)->dispose)
-  {
-    G_OBJECT_CLASS(parent_class)->dispose(obj);
-  }
-
-}
-
-
-static void tp_props_iface_finalize(GObject *obj)
-{
-  TpPropsIface *self = TELEPATHY_PROPS_IFACE(obj);
-  int i;
-  for (i=0; i < PRIV(self)->mappings_len; i++)
-    {
-      if (PRIV(self)->mappings[i].value)
-        {
-          g_value_unset (PRIV(self)->mappings[i].value);
-          g_free (PRIV(self)->mappings[i].value);
-        }
-      if (PRIV(self)->mappings[i].name)
-        g_free (PRIV(self)->mappings[i].name);
-    }
-  
-  g_free (PRIV(self)->mappings);
-
-  if (G_OBJECT_CLASS(parent_class)->finalize)
-    {
-      G_OBJECT_CLASS(parent_class)->finalize(obj);
-    }
-}
-
-
-static void tp_props_iface_class_init(TpPropsIfaceClass *klass)
-{
-  GObjectClass *obj = G_OBJECT_CLASS(klass);
-  parent_class = g_type_class_peek_parent(klass);
-
-  obj->set_property = parent_class->set_property;
-  obj->get_property = parent_class->get_property;
-
-  obj->constructor = tp_props_iface_constructor;
-  obj->dispose = tp_props_iface_dispose;
-  obj->finalize = tp_props_iface_finalize;
-
-  g_type_class_add_private (klass, sizeof (TpPropsPrivate));
-  /**
-   * TpPropsIface::properties-ready:
-   * @self: #TpPropsIface that emmitted the signal
-   * @property_id: property that changed
-   * @change_flags: #TpPropsChanged for what changed on the property
-   *
-   * This signal is emitted when the properties 1st become avaible for
-   * reading or writing.
-   */
-
-  signals[PROPERTIES_READY] =
-  g_signal_new ("properties-ready",
-                G_OBJECT_CLASS_TYPE (klass),
-                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                0,
-                NULL, NULL,
-                g_cclosure_marshal_VOID__VOID,
-                G_TYPE_NONE, 0);
-
-
-
-  /**
-   * TpPropsIface::properties-changed:
-   * @self: #TpPropsIface that emmitted the signal
-   * @property_id: property that changed
-   * @change_flags: #TpPropsChanged for what changed on the property
-   *
-   * This signal is emitted when a property changes.
-   */
-
-  signals[PROPERTY_CHANGED] =
-  g_signal_new ("properties-changed",
-                G_OBJECT_CLASS_TYPE (klass),
-                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                0,
-                NULL, NULL,
-                tp_ifaces_signals_marshal_VOID__UINT_UINT,
-                G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
-
-
-  /* register marshaller for  PropertiesChanged and PropertyFlagsChanged*/
-  dbus_g_object_register_marshaller(tp_ifaces_signals_marshal_VOID__UINT_UINT_UINT, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID);
-
-}
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-GType tp_props_iface_get_type(void)
-{
-#ifndef EMULATOR
-  static GType type1 = 0;
-#endif
-  
-  if (type1 == 0)
-    {
-      static const GTypeInfo info =
-        {
-          sizeof(TpPropsIfaceClass),
-          NULL,
-          NULL,
-          (GClassInitFunc)tp_props_iface_class_init,
-          NULL,
-          NULL,
-          sizeof(TpPropsIface),
-          0,
-          (GInstanceInitFunc)tp_props_iface_init
-        };
-      type1 = g_type_register_static(DBUS_TYPE_G_PROXY,
-                                    "TpPropsIface", &info, 0);
-    }
-  return type1;
-}
-
-/* The interface name getters */
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-GQuark
-tp_get_props_interface (void)
-{
-#ifndef EMULATOR
-  static GQuark ret = 0;
-#endif
-
-  if (ret == 0)
-  {
-    ret = g_quark_from_static_string(TP_IFACE_PROPERTIES);
-  }
-
-  return ret;
-}
-
-TpPropsIface *
-tp_props_iface_new (DBusGConnection *connection,
-                   const char      *name,
-                   const char      *path_name)
-{
-  /* The properties are order dependant in dbus <= 0.61. Thanks dbus*/
-  return g_object_new (TELEPATHY_PROPS_IFACE_TYPE,
-                       "name", name,
-                       "path", path_name,
-                       "interface",TP_IFACE_PROPERTIES,
-                       "connection", connection,
-                       NULL);
-}
-
-static void properties_changed_cb (DBusGProxy *proxy, GPtrArray *properties, gpointer user_data);
-static void property_flags_changed_cb (DBusGProxy *proxy, GPtrArray *properties, gpointer user_data);
-
-/**
- * tp_props_iface_set_mapping:
- * @iface: #TpPropsIface on which to set mapping
- * @first_name: First name in list to set a mapping for
- *
- * Set a mapping between propery names and your chosen ID's for these
- * names. Takes a list of property name, id pairs, terminated by NULL.
- *
- * Typically the user will define an enum of properties that they're
- * interested in, and set a mapping like:
- *   tp_props_iface_set_mapping (props, "foo", FOO,
- *                                     "bar", BAR,
- *                                     "baz", BAZ,
- *                                     NULL);
- * the user should bind to the
- * <link linkend="TpPropsIface-properties-ready">properties-ready signal</link>
- * before calling this. Property queries will only be possible *after* this
- * signal has been emitted.
- */
-void tp_props_iface_set_mapping (TpPropsIface *self,
-                                const gchar *first_property_name,
-                                ...)
-{
-  va_list var_args;
-  const gchar *name = first_property_name;
-  guint id;
-  GArray *array;
-  PropertyMapping map = {0,0,NULL,NULL,0};
-
-  g_return_if_fail (TELEPATHY_IS_PROPS_IFACE (self));
-  g_return_if_fail (PRIV(self)->mappings == NULL);
-
-  va_start (var_args, first_property_name);
-
-  array = g_array_new (FALSE, FALSE, sizeof (PropertyMapping));
-
-  while (name)
-    {
-      id = va_arg (var_args, guint);
-      map.user_id = id;
-      map.name = g_strdup (name);
-      g_array_append_val (array, map);
-      name = va_arg (var_args, gchar *);
-    }
-
-  va_end (var_args);
-
-  PRIV (self)->mappings_len = array->len;
-  PRIV (self)->mappings = (PropertyMapping*) g_array_free (array, FALSE);
-
-  dbus_g_proxy_connect_signal (DBUS_G_PROXY (self), "PropertiesChanged",
-                               G_CALLBACK(properties_changed_cb), self, NULL);
-  dbus_g_proxy_connect_signal (DBUS_G_PROXY (self), "PropertyFlagsChanged",
-                               G_CALLBACK(property_flags_changed_cb),
-                               self, NULL);
-
-  tp_props_iface_list_properties_async (DBUS_G_PROXY (self),
-                                        properties_listed_cb, self);
-}
-
-/**
- * tp_props_iface_get_value:
- * @self: #TpPropsIface on which to get a property value
- * @prop_id: Identifier for property as set in #tp_props_iface_set_mapping
- * @value: GValue to return the property's value in.
- *
- * Get the value of a property on this interface
- */
-gboolean tp_props_iface_get_value (TpPropsIface* self, guint prop_id,
-                                  GValue *return_value)
-{
-  int i;
-
-  if (!PRIV (self)->properties_ready)
-    return FALSE;
-
-  for (i = 0; i < PRIV (self)->mappings_len; i++)
-    {
-      if (PRIV (self)->mappings[i].user_id == prop_id)
-        {
-          if (PRIV (self)->mappings[i].value)
-            {
-              g_value_copy (PRIV (self)->mappings[i].value, return_value);
-              return TRUE;
-            }
-          else
-            {
-              return FALSE;
-            }
-        }
-    }
-
-  return FALSE;
-}
-
-/* dummy callback handler for async calling calls with no return values */
-static void
-dummy_callback (DBusGProxy *proxy, GError *error, gpointer user_data)
-{
-  if (error)
-    {
-      g_warning ("%s calling %s", error->message, (char*)user_data);
-      g_error_free (error);
-    }
-}
-
-/**
- * tp_props_iface_set_value:
- * @self: #TpPropsIface on which to set a property value
- * @prop_id: Identifier for property as set in #tp_props_iface_set_mapping
- * @value: GValue to use to set the property's value
- *
- * Set the value of a property on this interface
- */
-gboolean tp_props_iface_set_value (TpPropsIface* self, guint prop_id,
-                                  const GValue *value)
-{
-  /*TODO add option for an error callback*/
-  int i;
-  GPtrArray *props;
-
-  if (!PRIV(self)->properties_ready)
-    return FALSE;
-
-  for (i=0; i < PRIV(self)->mappings_len; i++)
-    {
-      if (PRIV(self)->mappings[i].user_id == prop_id)
-        {
-          GValue prop = {0,};
-          g_value_init (&prop, TP_TYPE_PROPERTY_CHANGE);
-          g_value_take_boxed (&prop,
-              dbus_g_type_specialized_construct (TP_TYPE_PROPERTY_CHANGE));
-
-          dbus_g_type_struct_set (&prop,
-              0, PRIV(self)->mappings[i].server_id,
-              1, value,
-              G_MAXUINT);
-
-          props = g_ptr_array_sized_new (1);
-          g_ptr_array_add (props, g_value_get_boxed (&prop));
-          tp_props_iface_set_properties_async (DBUS_G_PROXY(self), props,
-                                               dummy_callback, "SetProperties");
-          g_value_unset (&prop);
-          g_ptr_array_free (props, TRUE);
-          return TRUE;
-        }
-    }
-  return FALSE;
-}
-
-
-static void
-set_properties_values (TpPropsIface *self, GPtrArray *properties)
-{
-  int i,j;
-
-  for (i = 0; i < properties->len; i++)
-    {
-      GValue property = {0};
-      guint32 id;
-      GValue *value;
-
-      g_value_init (&property, TP_TYPE_PROPERTY_CHANGE);
-      g_value_set_static_boxed (&property, g_ptr_array_index (properties, i));
-      dbus_g_type_struct_get (&property, 0, &id, G_MAXUINT);
-
-      for (j = 0; j < PRIV(self)->mappings_len; j++)
-        {
-          PropertyMapping *mapping = &(PRIV (self)->mappings[j]);
-
-          if (mapping->server_id == id)
-            {
-              dbus_g_type_struct_get (&property, 1, &value, G_MAXUINT);
-              g_assert (value);
-
-              if (mapping->value)
-                {
-                  g_value_unset (mapping->value);
-                  g_free (mapping->value);
-                }
-
-              mapping->value = value;
-              value = NULL; /* just to be on the safe side... */
-
-              if (PRIV (self)->properties_ready)
-                g_signal_emit (self, signals[PROPERTY_CHANGED], 0,
-                               mapping->user_id, TP_PROPS_CHANGED_VALUE);
-
-              break;
-            }
-        }
-    }
-
-}
-
-static void
-properties_changed_cb (DBusGProxy *proxy, GPtrArray *properties,
-                       gpointer user_data)
-{
-  TpPropsIface *self = TELEPATHY_PROPS_IFACE (user_data);
-  if (!PRIV(self)->properties_ready)
-    return;
-  set_properties_values (self, properties);
-}
-
-static void
-properties_got_cb (DBusGProxy *proxy, GPtrArray *properties, GError *error, gpointer user_data)
-{
-  TpPropsIface *self = TELEPATHY_PROPS_IFACE (user_data);
-
-  if (error)
-    {
-      g_debug ("getting properties failed: %s (%s)", error->message,
-        dbus_g_error_get_name (error));
-      g_error_free (error);
-      return;
-    }
-
-  set_properties_values (self, properties);
-
-  if (!PRIV (self)->properties_ready)
-    {
-      PRIV (self)->properties_ready = TRUE;
-      g_signal_emit (self, signals[PROPERTIES_READY], 0);
-    }
-}
-
-static void
-property_flags_changed_cb (DBusGProxy *proxy, GPtrArray *properties,
-                       gpointer user_data)
-{
-  TpPropsIface *self = TELEPATHY_PROPS_IFACE (user_data);
-  GArray *get_props;
-  int i, j;
-
-  if (!PRIV(self)->properties_ready)
-    return;
-
-  get_props = g_array_sized_new (FALSE, FALSE, sizeof (guint32),
-                                 properties->len);
-
-  for (i = 0; i < properties->len; i++)
-    {
-      GValue property = {0};
-      guint32 id, flags;
-
-      g_value_init (&property, TP_TYPE_PROPERTY_CHANGE);
-      g_value_set_static_boxed (&property, g_ptr_array_index (properties, i));
-      dbus_g_type_struct_get (&property, 0, &id, G_MAXUINT);
-
-      for (j = 0; j < PRIV (self)->mappings_len; j++)
-        {
-          PropertyMapping *mapping = &(PRIV (self)->mappings[j]);
-
-          if (mapping->server_id == id)
-            {
-              dbus_g_type_struct_get (&property, 1, &flags, G_MAXUINT);
-
-              if (!(mapping->flags & TP_PROPERTY_FLAG_READ) &&
-                  flags & TP_PROPERTY_FLAG_READ)
-                /* property has become readable; fetch it */
-                g_array_append_val (get_props, mapping->server_id);
-
-              mapping->flags = flags;
-              g_signal_emit (self, signals[PROPERTY_CHANGED], 0,
-                mapping->user_id, TP_PROPS_CHANGED_FLAGS);
-              break;
-            }
-        }
-    }
-
-  tp_props_iface_get_properties_async (DBUS_G_PROXY (self), get_props,
-                                       properties_got_cb, self);
-  g_array_free (get_props, TRUE);
-}
-
-static void
-properties_listed_cb (DBusGProxy *proxy, GPtrArray *properties, GError *error, gpointer user_data)
-{
-  TpPropsIface *self = TELEPATHY_PROPS_IFACE (user_data);
-  int i,j;
-  guint32 id, flags;
-  gchar *name;
-  GArray *get_props;
-
-  if (error)
-    {
-      g_debug ("listing properties failed: %s (%s)", error->message,
-        dbus_g_error_get_name (error));
-      g_error_free (error);
-      return;
-    }
-
-  for (i = 0; i < properties->len; i++)
-    {
-      GValue property = {0};
-      g_value_init (&property, TP_TYPE_PROPERTY_DESCRIPTION);
-      g_value_set_static_boxed (&property, g_ptr_array_index (properties, i));
-
-      dbus_g_type_struct_get (&property,
-          0, &id,
-          1, &name,
-          3, &flags,
-          G_MAXUINT);
-
-      for (j = 0; j < PRIV (self)->mappings_len; j++)
-        {
-          if (0 == strcmp (PRIV (self)->mappings[j].name, name))
-            {
-              PRIV (self)->mappings[j].server_id = id;
-              PRIV (self)->mappings[j].flags = flags;
-            }
-        }
-
-      g_free (name);
-    }
-
-  get_props = g_array_sized_new (FALSE, FALSE, sizeof (guint32),
-                                 properties->len);
-
-  for (i = 0; i < PRIV(self)->mappings_len; i++)
-    {
-      PropertyMapping *mapping = &(PRIV(self)->mappings[i]);
-
-      if (mapping->flags & TP_PROPERTY_FLAG_READ)
-        g_array_append_val (get_props, mapping->server_id);
-    }
-
-  tp_props_iface_get_properties_async (DBUS_G_PROXY (self), get_props,
-                                       properties_got_cb, self);
-  g_array_free (get_props, TRUE);
-}
-
-void
-tp_props_interface_set_signatures (DBusGProxy *proxy)
-{
-  dbus_g_proxy_add_signal(proxy, "PropertiesChanged",
-      dbus_g_type_get_collection ("GPtrArray",
-          dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT,
-                                   G_TYPE_VALUE, G_TYPE_INVALID)),
-      G_TYPE_INVALID);
-  dbus_g_proxy_add_signal(proxy, "PropertyFlagsChanged",
-      dbus_g_type_get_collection ("GPtrArray",
-          dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT,
-                                   G_TYPE_UINT, G_TYPE_INVALID)),
-      G_TYPE_INVALID);
-}
-
--- a/libtelepathy/tsrc/bmarm/telepathygabbletest.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
- 
\ No newline at end of file
--- a/libtelepathy/tsrc/bmarm/telepathygabbletestu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
- 
\ No newline at end of file
--- a/libtelepathy/tsrc/bwins/telepathygabbletest.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
- 
\ No newline at end of file
--- a/libtelepathy/tsrc/bwins/telepathygabbletestu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-EXPORTS
-	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &)
-	tp_chan_type_text_send_async @ 2 NONAME
-	tp_chan_type_search_async @ 3 NONAME
-	tp_chan_type_search_get_search_keys_async @ 4 NONAME
-	tp_chan_type_search_get_search_state_async @ 5 NONAME
-
--- a/libtelepathy/tsrc/conf/telepathygabbletest.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,409 +0,0 @@
-// Definitions
-[Define]
-SERVER_GIZMO			 chat.gizmoproject.com
-SSL_FLAG_GIZMO 			0
-USERNAME_GIZMO 		 testlmnokia@chat.gizmoproject.com
-PASSWORD_GIZMO		 loudmouth
-RESOURCE		 mytptestresource_another1
-PROXY_SERVER 172.16.42.135
-//PROXY_SERVER 172.16.9.181
-//PROXY_SERVER 172.16.9.103
-PROXY_PORT   8080
-PORT   443
-//PORT_INVALID   4430
-
-//EMPTYCONTACT		Emptycontact@chat.gizmoproject.com
-//EMPTYPASSWORD		test
-
-
-//KEY-VALUES for search with gizmo 
-KEY_FIRST_INVALID xmpp_user_invalid
-VALUE_FIRST_INVALID	rak*
-
-KEY_ANY_INVALID first_name_invalid
-VALUE_ANY rakesh
-KEY_FIRST		first_name 
-VALUE_FIRST	rakesh
-VALUE_FIRST_WILDCHAR_1 r*
-VALUE_FIRST_WILDCHAR_2 *r*
-KEY_LAST		last_name 
-VALUE_LAST	b
-KEY_CITY		city 
-VALUE_CITY	moneteau
-KEY_COUNTRY   country
-VALUE_COUNTRY  india
-KEY_STATE   state
-VALUE_STATE  SP
-KEY_ACCOUNTNAME	xmpp_user
-VALUE_ACCOUNTNAME rakeshongizmo
-KEY_EMAIL email_address
-VALUE_EMAIL r*@chat.gizmoproject.com
-VALUE_ALL_KEYS a
-VALUE_FIRST_NAME_MAX abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx
-VALUE_FIRST_SPECIAL_CHAR a_b&c#2^!abc
-
-//own name as the receipient
-OWN_RECIPIENT_GIZMO		 testlmnokia@chat.gizmoproject.com 
-
-//invalied username
-USERNAME_INVALID_GIZMO     abcd_ad@chat.gizmoproject.com
-USERNAME_SPL_CHRS_GIZMO	   abcd_2@chat.gizmoproject.com
-
-//invalid passwd
-PASSWORD_INVALID		 abcd_gh1_2_pwd
-
-//invalid server
-BADSERVER					talktalk.gooooogle.com
-
-
-//contact not there in the contact list
-RECIPIENT_NOT_CONTACT_GTALK    usernotincontactlist@gmail.com
-RECIPIENT_ALREADYADDED_GTALK testcm6@gmail.com
-
-//RECIPIENT testlmnokia@chat.gizmoproject.com
-RECIPIENT testcm6@gmail.com
-//RECIPIENT voting@chat.gizmoproject.com
-
-//contact in the friend list
-RECIPIENT_FRIEND testgb123@gmail.com   
-RECIPIENT_INVALID  a_b@chat.gizmoproject.com
-RECIPIENT_SPL_CHRS	a$$b@chat.gizmoproject.com
-
-MESSAGE			 Hello
-MESSAGE_SPL_CHARS  ab$$&&()!@#%*~`?<>,./\[]{}1234
-REPEATED_MESSAGE   ThisIsTestForRepeatedMessage
-MESSAGE_EMOTICONS :-)
-
-
-//GTalk Server Settings
-SERVER_GTALK       talk.google.com
-SSL_FLAG_GTALK 		1
-USERNAME_GTALK     testgb123@gmail.com
-PASSWORD_GTALK			testgb1234
-OWN_RECIPIENT_GTALK		 testgb123@gmail.com
-OWN_RECIPIENT_GTALK_WITH_RESOURCE testgb123@gmail.com/mytptestresource_another1
-RECIPIENT_INVALID_GTALK  a_b@gmail.com
-DELETE_INVALID_GTALK usernotincontactlist_123@gmail.com
-RECIPIENT_GTALK	testcm6@gmail.com
-RECIPIENT_GTALK_SEND_MSG	testcm6@gmail.com
-//RECIPIENT_GTALK_SEND_MSG	lalita.kapur@gmail.com
-RECIPIENT_OFFLINE_GTALK userIDWithZeroContact@gmail.com
-
-//TODO: Check the Max/Min length of userid
-//min len - 6 chars in gtalk
-//max len - 30 chars in gtalk
-MAXLENGTH_USERID	abcd123456abcd123456abcd123456@gmail.com 
-MINLENGTH_USERID	ab123d@gmail.com  
-MAXMINLEN_PWD     nokia123
-USERNAMEWITHZEROCONTACT UserWithZeroContact@gmail.com
-USERNAMEWITHZEROCONTACT_PWD	UserWithZeroContact123
-USERNAME_INVALID_GTALK     abcd_ad@gmail.com
-USERNAME_SPL_CHRS_GTALK	   abcd_2@gmail.com
-RECIPIENT_SPL_CHRS_GTALK	a$$b@gmail.com
-
-USERNAMEWITHZEROCONTACT_GTALK userIDWithZeroContact@gmail.com
-PWDWITHZEROCONTACT_GTALK userIDWithZeroContact123
-
-USERALREADYDELETED_GTALK UserAlreadyDeleted@gmail.com
-
-[Enddefine]
-
-// Login related test cases
-[Test]
-title Login Test
-create TelepathyGabbleTest TgObj
-TgObj LoginTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest] 
-
-// Logout related test cases
-[Test]
-title Logout Test
-create TelepathyGabbleTest TgObj
-TgObj LogoutTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//login with invalid userid 
-[Test]
-title LoginInvalidUserid Test
-create TelepathyGabbleTest TgObj
-TgObj LoginInvalidUseridTest SERVER_GTALK USERNAME_INVALID_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//login with invalid passwd 
-[Test]
-title LoginInvalidPasswd Test
-create TelepathyGabbleTest TgObj
-TgObj LoginInvalidPasswdTest SERVER_GTALK USERNAME_GTALK PASSWORD_INVALID RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//login with invalid userid and passwd test
-[Test]
-title LoginInvalidUseridPasswd Test
-create TelepathyGabbleTest TgObj
-TgObj LoginInvalidUseridPasswdTest SERVER_GTALK USERNAME_INVALID_GTALK PASSWORD_INVALID RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//login with blank userid and correct passwd
-[Test]
-title LoginblankUserid Test
-create TelepathyGabbleTest TgObj
-TgObj LoginblankUseridTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//login with correct userid and blank passwd
-[Test]
-title LoginblankPasswd Test
-create TelepathyGabbleTest TgObj
-TgObj LoginblankPasswdTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-
-//login with blank userid and blank passwd
-[Test]
-title LoginblankUseridblankPasswd Test
-create TelepathyGabbleTest TgObj
-TgObj LoginblankUseridblankPasswdTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//login with maxlength userid 
-[Test]
-title LoginWithMaxLengthUserID Test
-create TelepathyGabbleTest TgObj
-TgObj LoginWithMaxLengthUserIDTest SERVER_GTALK MAXLENGTH_USERID MAXMINLEN_PWD RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//login with minlength userid 
-[Test]
-title LoginWithMinLengthUserID Test
-create TelepathyGabbleTest TgObj
-TgObj LoginWithMinLengthUserIDTest SERVER_GTALK MINLENGTH_USERID MAXMINLEN_PWD RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//login with special chars in the user name
-[Test]
-title LoginUseridWithSplChrs Test
-create TelepathyGabbleTest TgObj
-TgObj LoginUseridWithSplChrsTest SERVER_GTALK USERNAME_SPL_CHRS_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Cancel login test
-[Test]
-title LoginCancel Test
-create TelepathyGabbleTest TgObj
-TgObj LoginCancelTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-// Send Message related test case
-[Test]
-title SendMesasge Test
-create TelepathyGabbleTest TgObj
-TgObj SendMessageTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK_SEND_MSG MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-// Send Message to a contact with Max Length UserId
-// Check if this will pass or not
-[Test]
-title SendMesasgeToMaxLengthUserID Test
-create TelepathyGabbleTest TgObj
-TgObj SendMesasgeToMaxLengthUserIDTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK MAXLENGTH_USERID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-
-//Send Message to offline contact
-[Test]
-title SendMesasgetoofflinecontact Test
-create TelepathyGabbleTest TgObj
-TgObj SendMesasgetoofflinecontactTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_OFFLINE_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-// Send Message 400 characters related test case
-[Test]
-title SendMesasgeWith400 Test
-create TelepathyGabbleTest TgObj
-TgObj SendMessageWith400Test SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK_SEND_MSG MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-// Send Message blank characters related test case
-[Test]
-title SendMesasgeBlank Test
-create TelepathyGabbleTest TgObj
-TgObj SendMesasgeBlankTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK_SEND_MSG MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-
-
-// SendMesasgeToBlankUserIdTest
-[Test]
-title SendMesasgeToBlankUserIdTest Test
-create TelepathyGabbleTest TgObj
-TgObj SendMesasgeToBlankUserIdTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK_SEND_MSG MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//SendMessage special
-[Test]
-title SendMesasgeSplChars Test
-create TelepathyGabbleTest TgObj
-TgObj SendMesasgeSplCharsTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK_SEND_MSG MESSAGE_SPL_CHARS RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-
-//SendMessage emoticons
-[Test]
-title SendMesasgeEmoticons Test
-create TelepathyGabbleTest TgObj
-TgObj SendMesasgeEmoticonsTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK_SEND_MSG MESSAGE_EMOTICONS RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Send Repeated Messages
-[Test]
-title SendMessageRepeated Test
-create TelepathyGabbleTest TgObj
-TgObj SendMessageRepeatedTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK_SEND_MSG REPEATED_MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//SendMessage to user who is not a contact
-[Test]
-title SendMessagetoUserNotInContactList Test
-create TelepathyGabbleTest TgObj
-TgObj SendMessagetoUserNotInContactListTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_NOT_CONTACT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-
-//SendMessage to Invalid user_id
-[Test]
-title SendMessagetoinvalidUserid Test
-create TelepathyGabbleTest TgObj
-TgObj SendMessagetoinvalidUseridTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_INVALID_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-
-//Add Contact test
-[Test]
-title AddContact Test
-create TelepathyGabbleTest TgObj
-TgObj AddContactTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Add Contact with Max length UserId test
-[Test]
-title AddContactWithMaxLengthUserId Test
-create TelepathyGabbleTest TgObj
-TgObj AddContactWithMaxLengthUserIdTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK MAXLENGTH_USERID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Add Contact with blank userid 
-[Test]
-title AddContactWithBlankUserId Test
-create TelepathyGabbleTest TgObj
-TgObj AddContactWithBlankUserIdTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-
-//Add Invalid Contact test
-[Test]
-title AddContactinvalid Test
-create TelepathyGabbleTest TgObj
-TgObj AddContactinvalidTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_INVALID_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Add Invalid Contact with special characters test
-[Test]
-title AddContactinvalidWithSplChars Test
-create TelepathyGabbleTest TgObj
-TgObj AddContactinvalidWithSplCharsTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_SPL_CHRS_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Add AlreadyAddedContact test
-[Test]
-title AddContactAlreadyInRoster Test
-create TelepathyGabbleTest TgObj
-TgObj AddContactAlreadyInRosterTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_ALREADYADDED_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Remove Contact test
-[Test]
-title RemoveContact Test
-create TelepathyGabbleTest TgObj
-TgObj RemoveContactTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Remove Contact with Max Length UserID test
-[Test]
-title RemoveContactWithMaxLengthUserID Test
-create TelepathyGabbleTest TgObj
-TgObj RemoveContactWithMaxLengthUserIDTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK MAXLENGTH_USERID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Remove an unexisting contact_id from the contactlist
-[Test]
-title RemoveInvalidContact Test
-create TelepathyGabbleTest TgObj
-TgObj RemoveInvalidContactTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK DELETE_INVALID_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Remove Contact With BlankUserId from the contactlist
-[Test]
-title RemoveContactWithBlankUserId Test 
-create TelepathyGabbleTest TgObj
-TgObj RemoveContactWithBlankUserIdTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Remove a contact_id which is already deleted from the contactlist
-[Test]
-title RemoveContactAlreadyRemoved Test
-create TelepathyGabbleTest TgObj
-TgObj RemoveContactAlreadyRemovedTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK USERALREADYDELETED_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Fetch Contacts test
-[Test]
-title FetchContacts Test
-create TelepathyGabbleTest TgObj
-TgObj FetchContactsTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//FetchEmptyContactList test
-[Test]
-title FetchEmptyContactList Test
-create TelepathyGabbleTest TgObj
-TgObj FetchZeroContactTest SERVER_GTALK USERNAMEWITHZEROCONTACT_GTALK PWDWITHZEROCONTACT_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-
-
--- a/libtelepathy/tsrc/conf/telepathygabbletest_mannual.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,426 +0,0 @@
-// Definitions
-[Define]
-SERVER_GIZMO			 chat.gizmoproject.com
-SSL_FLAG_GIZMO 			0
-USERNAME_GIZMO 		 testlmnokia@chat.gizmoproject.com
-PASSWORD_GIZMO		 loudmouth
-RESOURCE		 mytptestresource_another1
-PROXY_SERVER 172.16.42.135
-//PROXY_SERVER 172.16.9.181
-//PROXY_SERVER 172.16.9.103
-PROXY_PORT   8080
-PORT   443
-//PORT_INVALID   4430
-
-//EMPTYCONTACT		Emptycontact@chat.gizmoproject.com
-//EMPTYPASSWORD		test
-
-
-//KEY-VALUES for search with gizmo 
-KEY_FIRST_INVALID xmpp_user_invalid
-VALUE_FIRST_INVALID	rak*
-
-KEY_ANY_INVALID first_name_invalid
-VALUE_ANY rakesh
-KEY_FIRST		first_name 
-VALUE_FIRST	rakesh
-VALUE_FIRST_WILDCHAR_1 r*
-VALUE_FIRST_WILDCHAR_2 *r*
-KEY_LAST		last_name 
-VALUE_LAST	b
-KEY_CITY		city 
-VALUE_CITY	moneteau
-KEY_COUNTRY   country
-VALUE_COUNTRY  india
-KEY_STATE   state
-VALUE_STATE  SP
-KEY_ACCOUNTNAME	xmpp_user
-VALUE_ACCOUNTNAME rakeshongizmo
-KEY_EMAIL email_address
-VALUE_EMAIL r*@chat.gizmoproject.com
-VALUE_ALL_KEYS a
-VALUE_FIRST_NAME_MAX abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx
-VALUE_FIRST_SPECIAL_CHAR a_b&c#2^!abc
-VALUE_FIRST_MULTIPLE bh
-VALUE_FIRST_STRING lk
-VALUE_SECOND_STRING lkmn
-
-
-
-
-SERVER_YUKON		chat.ovi.com
-SSL_FLAG_YUKON 			1
-USERNAME_YUKON 		 nikumb@ovi.com
-PASSWORD_YUKON		 pinkearth
-RESOURCE_YUKON		 mytptestresource_yukon
-
-PORT_YUKON 			 5222
-
-KEY_FULLNAME_YUKON		fn
-VALUE_FULLNAME_YUKON	shrikumar
-
-KEY_FIRST_YUKON 	first
-VALUE_FIRST_YUKON   a	 
-
-
-
-
-
-//own name as the receipient
-OWN_RECIPIENT_GIZMO		 testlmnokia@chat.gizmoproject.com 
-
-//invalied username
-USERNAME_INVALID_GIZMO     abcd_ad@chat.gizmoproject.com
-USERNAME_SPL_CHRS_GIZMO	   abcd_2@chat.gizmoproject.com
-
-//invalid passwd
-PASSWORD_INVALID		 abcd_gh1_2_pwd
-
-//invalid server
-BADSERVER					talktalk.gooooogle.com
-
-
-//contact not there in the contact list
-RECIPIENT_NOT_CONTACT_GTALK    usernotincontactlist@gmail.com
-RECIPIENT_ALREADYADDED_GTALK testcm6@gmail.com
-
-//RECIPIENT testlmnokia@chat.gizmoproject.com
-RECIPIENT testcm6@gmail.com
-//RECIPIENT voting@chat.gizmoproject.com
-
-//contact in the friend list
-RECIPIENT_FRIEND testgb123@gmail.com   
-RECIPIENT_INVALID  a_b@chat.gizmoproject.com
-RECIPIENT_SPL_CHRS	a$$b@chat.gizmoproject.com
-
-MESSAGE			 Hello
-MESSAGE_SPL_CHARS  ab$$&&()!@#%*~`?<>,./\[]{}1234
-REPEATED_MESSAGE   ThisIsTestForRepeatedMessage
-MESSAGE_EMOTICONS :-)
-
-
-//GTalk Server Settings
-SERVER_GTALK       talk.google.com
-SSL_FLAG_GTALK 		1
-USERNAME_GTALK     testgb123@gmail.com
-PASSWORD_GTALK			testgb1234
-OWN_RECIPIENT_GTALK		 testgb123@gmail.com
-OWN_RECIPIENT_GTALK_WITH_RESOURCE testgb123@gmail.com/mytptestresource_another1
-RECIPIENT_INVALID_GTALK  a_b@gmail.com
-DELETE_INVALID_GTALK usernotincontactlist_123@gmail.com
-RECIPIENT_GTALK	testcm6@gmail.com
-RECIPIENT_GTALK_SEND_MSG	testcm6@gmail.com
-//RECIPIENT_GTALK_SEND_MSG	lalita.kapur@gmail.com
-RECIPIENT_OFFLINE_GTALK userIDWithZeroContact@gmail.com
-
-//TODO: Check the Max/Min length of userid
-//min len - 6 chars in gtalk
-//max len - 30 chars in gtalk
-MAXLENGTH_USERID	abcd123456abcd123456abcd123456@gmail.com 
-MINLENGTH_USERID	ab123d@gmail.com  
-MAXMINLEN_PWD     nokia123
-USERNAMEWITHZEROCONTACT UserWithZeroContact@gmail.com
-USERNAMEWITHZEROCONTACT_PWD	UserWithZeroContact123
-USERNAME_INVALID_GTALK     abcd_ad@gmail.com
-USERNAME_SPL_CHRS_GTALK	   abcd_2@gmail.com
-RECIPIENT_SPL_CHRS_GTALK	a$$b@gmail.com
-
-USERNAMEWITHZEROCONTACT_GTALK userIDWithZeroContact@gmail.com
-PWDWITHZEROCONTACT_GTALK userIDWithZeroContact123
-
-USERALREADYDELETED_GTALK UserAlreadyDeleted@gmail.com
-
-[Enddefine]
-
-
-// Login related test cases
-// test case for bad server - getting hung, no callback comes,don't run
-//[Test]
-//title LoginWithBadServer Test
-//create TelepathyGabbleTest TgObj
-//TgObj LoginBadServerTest BADSERVER USERNAME_GTALK PASSWORD_GTALK RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-//delete TgObj
-//[Endtest]
-
-
-//Recieve Message test
-[Test]
-title ReceiveMesasge Test
-create TelepathyGabbleTest TgObj
-TgObj ReceiveMessageTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO OWN_RECIPIENT_GIZMO MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-//TgObj ReceiveMessageTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK OWN_RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-
-//Recieve MaxLengthMessage test
-[Test]
-title ReceiveMaxLengthMessage Test
-create TelepathyGabbleTest TgObj
-TgObj ReceiveMessageMaxLengthTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO OWN_RECIPIENT_GIZMO MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-//TgObj ReceiveMessageMaxLengthTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK OWN_RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-
-//Recieve Message special characters test
-[Test]
-title ReceiveMessageWithSplChrs Test
-create TelepathyGabbleTest TgObj
-//TgObj ReceiveMessageWithSplChrsTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK OWN_RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-TgObj ReceiveMessageWithSplChrsTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO OWN_RECIPIENT_GIZMO MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Recieve Message emoticons test
-[Test]
-title ReceiveMessageWithEmoticons Test
-create TelepathyGabbleTest TgObj
-//TgObj ReceiveMessageWithEmoticonsTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK OWN_RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-TgObj ReceiveMessageWithEmoticonsTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO OWN_RECIPIENT_GIZMO MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Receive RepeatedMessages test
-[Test]
-title ReceiveRepeatedMessages Test
-create TelepathyGabbleTest TgObj
-//TgObj ReceiveRepeatedMessageTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK OWN_RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-TgObj ReceiveRepeatedMessageTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO OWN_RECIPIENT_GIZMO MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-
-//Recieve BlankMessage test
-[Test]
-title ReceiveBlankMesasge Test
-create TelepathyGabbleTest TgObj
-TgObj ReceiveMessageBlankTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO OWN_RECIPIENT_GIZMO MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-//TgObj ReceiveMessageBlankTest SERVER_GTALK USERNAME_GTALK PASSWORD_GTALK OWN_RECIPIENT_GTALK MESSAGE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GTALK
-delete TgObj
-[Endtest]
-
-//Search FirstName test
-[Test]
-title Search FirstName Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_FIRST RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search LastName test
-[Test]
-title Search LastName Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_LAST VALUE_LAST RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search City test
-[Test]
-title Search City Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_CITY VALUE_CITY RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search Country test
-[Test]
-title Search Country Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_COUNTRY VALUE_COUNTRY RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search State test
-[Test]
-title Search State Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_STATE VALUE_STATE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search AccountName test
-[Test]
-title Search AccountName Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_ACCOUNTNAME VALUE_ACCOUNTNAME RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search Email test
-[Test]
-title Search Email Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_EMAIL VALUE_EMAIL RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search FirstNameWithWildChar* test
-[Test]
-title Search FirstNameWithWildChar* Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_FIRST_WILDCHAR_1 RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search FirstNameWith*string* test
-[Test]
-title Search FirstNameWith*string* Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_FIRST_WILDCHAR_2 RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search GetSearchKeys test
-//KEY_FIRST, VALUE_FIRST params will not be used for GetSearchKeys
-[Test]
-title Search GetSearchKeys Test
-create TelepathyGabbleTest TgObj
-TgObj GetSearchKeysTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_FIRST RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//SearchWithAllKeys test
-//KEY_FIRST will not be used for SearchWithAllKeysTest
-//All the keys will be searched for value VALUE_ALL_KEYS
-[Test]
-title Search WithAllKeys Test
-create TelepathyGabbleTest TgObj
-TgObj SearchWithAllKeysTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_ALL_KEYS RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search SearchAnyKeyInvalid Test 
-[Test]
-title Search AnyKeyInvalid Test 
-create TelepathyGabbleTest TgObj
-TgObj SearchInvalidKeyTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_ANY_INVALID VALUE_ANY RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search SearchFirstKeyInvalid Test 
-[Test]
-title Search FirstKeyInvalid Test
-create TelepathyGabbleTest TgObj
-TgObj SearchInvalidKeyTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST_INVALID VALUE_FIRST_INVALID RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search SearchTwoInvalidKeys Test 
-[Test]
-title Search SearchTwoInvalidKeysTest 
-create TelepathyGabbleTest TgObj
-TgObj SearchTwoInvalidKeysTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST_INVALID VALUE_FIRST RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO KEY_ANY_INVALID VALUE_ANY
-delete TgObj
-[Endtest]
-
-//Search SearchNoKeyValue Test 
-[Test]
-title Search NoKeyValue Test
-create TelepathyGabbleTest TgObj
-TgObj SearchNoKeyValueTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_ANY_INVALID VALUE_ANY RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search SearchMaxLenSearchString Test 
-[Test]
-title  SearchMaxLenSearchString Test
-create TelepathyGabbleTest TgObj
-TgObj  SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_FIRST_NAME_MAX PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search SearchSpecialCharSearchString Test 
-[Test]
-title  SearchSpecialCharSearchString Test
-create TelepathyGabbleTest TgObj
-TgObj  SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_FIRST_SPECIAL_CHAR PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search SearchNoResults Test 
-//Passed strings for key_first and value_first will not be used
-[Test]
-title SearchNoResults Test
-create TelepathyGabbleTest TgObj
-TgObj  SearchTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_FIRST PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search SearchBlankString Test 
-//Passed strings for key_first and value_first will not be used
-[Test]
-title SearchBlankString Test
-create TelepathyGabbleTest TgObj
-TgObj SearchBlankStringTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_FIRST PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-//Search Twice Test
-[Test]
-title SearchTwiceTest 
-create TelepathyGabbleTest TgObj
-TgObj SearchTwiceTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_FIRST_MULTIPLE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-
-//Search SearchTwiceWithDiffStrings Test
-[Test]
-title SearchTwiceWithDiffStrings Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTwiceWithDiffStringsTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_FIRST_STRING RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO KEY_FIRST VALUE_SECOND_STRING
-delete TgObj
-[Endtest]
-
-
-//Search FiveTimes Test
-[Test]
-title SearchFiveTimesTest 
-create TelepathyGabbleTest TgObj
-TgObj SearchFiveTimesTest SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_FIRST_MULTIPLE RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-
-//SearchAfterGetSearchKeys test
-//KEY_FIRST will not be used for SearchAfterGetSearchKeys
-//All the keys will be searched for value VALUE_ALL_KEYS
-[Test]
-title SearchAfterGetSearchKeys Test
-create TelepathyGabbleTest TgObj
-TgObj SearchAfterGetSearchKeys SERVER_GIZMO USERNAME_GIZMO PASSWORD_GIZMO KEY_FIRST VALUE_ALL_KEYS RESOURCE PROXY_SERVER PROXY_PORT PORT SSL_FLAG_GIZMO
-delete TgObj
-[Endtest]
-
-
-//Search related test cases with yukon
-
-
-//Search GetSearchKeys test
-//KEY_FIRST_YUKON, VALUE_FIRST_YUKON params will not be used for GetSearchKeys
-[Test]
-title Search Yukon GetSearchKeys Test
-create TelepathyGabbleTest TgObj
-TgObj GetSearchKeysTest SERVER_YUKON USERNAME_YUKON PASSWORD_YUKON KEY_FIRST_YUKON VALUE_FIRST_YUKON RESOURCE_YUKON PROXY_SERVER PROXY_PORT PORT_YUKON SSL_FLAG_YUKON
-delete TgObj
-[Endtest]
-
-
-//Search FirstName test
-[Test]
-title Search Yukon FirstName Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTest SERVER_YUKON USERNAME_YUKON PASSWORD_YUKON KEY_FIRST_YUKON VALUE_FIRST_YUKON RESOURCE_YUKON PROXY_SERVER PROXY_PORT PORT_YUKON SSL_FLAG_YUKON
-delete TgObj
-[Endtest]
-
-
-//Search FullName test
-[Test]
-title Search Yukon FullName Test
-create TelepathyGabbleTest TgObj
-TgObj SearchTest SERVER_YUKON USERNAME_YUKON PASSWORD_YUKON KEY_FULLNAME_YUKON VALUE_FULLNAME_YUKON RESOURCE_YUKON PROXY_SERVER PROXY_PORT PORT_YUKON SSL_FLAG_YUKON
-delete TgObj
-[Endtest]
\ No newline at end of file
--- a/libtelepathy/tsrc/eabi/telepathygabbletest.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
- 
\ No newline at end of file
--- a/libtelepathy/tsrc/eabi/telepathygabbletestu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EXPORTS
-	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
-	_ZTI9CTestData @ 2 NONAME ; #<TI>#
-	_ZTV9CTestData @ 3 NONAME ; #<VT>#
-
--- a/libtelepathy/tsrc/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Contanis the MMP file name
-*
-*/
-
-
-
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// defaults to WINS MARM so you can ignore this if you just build these
-DEFAULT
-
-PRJ_TESTEXPORTS
-// NOTE: If using ARS requirements all export operations should be done under this.
-// 'abld test export'
-
-
-
-PRJ_EXPORTS
-// Specify the source file followed by its destination here
-// copy will be used to copy the source file to its destination
-// If there's no destination then the source file will be copied
-// to the same name in /epoc32/include
-// Example: 
-/*
-/agnmodel/inc/AGMCOMON.H
-*/
-
-PRJ_TESTMMPFILES
-// NOTE: If using ARS requirements .mmp file operation should be done under this.
-// 'abld test build'
-
-PRJ_MMPFILES
-// Specify the .mmp files required for building the important component
-// releasables.
-//
-// Specify "tidy" if the component you need to build doesn't need to be
-// released. Specify "ignore" if the MMP file exists but should be
-// ignored.
-// Example:
-/*
-/agnmodel/group/agnmodel.mmp
-#if defined(MARM)
-/agnmodel/group/agsvexe.mmp
-#endif
-*/
-telepathygabbletest.mmp
-
-//  End of File
\ No newline at end of file
--- a/libtelepathy/tsrc/group/telepathygabbletest.mmp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/*
-* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    MMP FILE
-*
-*/
-
-
-
-#if defined(__S60_)
-        // To get the OSEXT_LAYER_SYSTEMINCLUDE-definition
-        #include <platform_paths.hrh>
-#endif
-
-TARGET          telepathygabbletest.dll
-TARGETTYPE      dll
-UID             0x1000008D 0x101FB3E3
-
-CAPABILITY      ALL -TCB
-//CAPABILITY		NetworkServices
-
-/* Remove comments and replace 0x00000000 with correct vendor id */
-// VENDORID     0x00000000
-/* Remove comments and replace 0x00000000 with correct secure id */
-// SECUREID     0x00000000
-
-#ifdef WINSCW
-MACRO 			EMULATOR
-#endif
-
-
-EPOCHEAPSIZE 0x6000 0x1A000
-/*#ifndef WINSCW
-// Allow global writeable static data
-EPOCALLOWDLLDATA
-#endif*/
-
-DEFFILE         telepathygabbletest.def
-//VENDORID 		0x101FB657
-//SECUREID        0x102073DB
-
-//User Include Path
-USERINCLUDE     ../inc 
-
-
-
-
-MACRO SYMBIAN
-
-
-MW_LAYER_SYSTEMINCLUDE
-OS_LAYER_LIBC_SYSTEMINCLUDE
-OS_LAYER_GLIB_SYSTEMINCLUDE
-OS_LAYER_SSL_SYSTEMINCLUDE
-OS_LAYER_STDCPP_SYSTEMINCLUDE
-OS_LAYER_BOOST_SYSTEMINCLUDE
-OS_LAYER_DBUS_SYSTEMINCLUDE
-OS_LAYER_LIBUTILITY_SYSTEMINCLUDE
-
-USERINCLUDE  ../../inc
-// 
-
-
-SOURCEPATH      ../src
-//utils file
-SOURCE			telepathygabbleutils.cpp
-//login , logout
-SOURCE			telepathygabblelogintest.cpp
-//send message
-SOURCE			telepathygabblesendmessage.cpp
-
-//Add Delete Contact related
-SOURCE			telepathygabbleadddeletecontact.cpp
-//Fetch contact related
-SOURCE			telepathygabblefetchcontacts.cpp
-
-SOURCE			telepathygabblesearch.cpp
-//Presence Related
-//SOURCE			telepathy-presence.c
-//SOURCE			telepathygabblepresencetest.cpp
-//stif related
-SOURCE          telepathygabbletest.cpp
-SOURCE          telepathygabbletestblocks.cpp
-SOURCE			telepathygabbletestdata.cpp
-
-
-LIBRARY         euser.lib
-LIBRARY         stiftestinterface.lib
-LIBRARY         stiftestengine.lib
-
-// Library dependencies
-#ifdef GCCE
-STATICLIBRARY  libcrt0_gcce.lib
-#else
-STATICLIBRARY  libcrt0.lib
-#endif
-
-LIBRARY         libc.lib 
-LIBRARY			libpthread.lib
-LIBRARY			libm.lib
-LIBRARY			libglib.lib
-LIBRARY			libgobject.lib
-LIBRARY         libssl.lib
-LIBRARY         libcrypto.lib
-LIBRARY         libdbus-glib.lib
-LIBRARY         libdbus.lib
-LIBRARY			libtelepathy.lib
-
-LANG            SC
\ No newline at end of file
--- a/libtelepathy/tsrc/group/telepathygabbletest.pkg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description:  telepathygabbletest.pkg
-;
-&EN
-
-;Header
-#{"telepathygabbletest"}, (0x101FB3E5), 1, 0, 0, TYPE=SA
-
-
-;Localised VendorID
-%{"Nokia"}
-
-;VendorID
-:"Nokia"
-
-(0x101F7961), 0, 0, 0, {"Series60ProductID"}
-
-;CFG File
-"\epoc32\winscw\c\testframework\telepathygabbletest.cfg"    - "c:\testframework\telepathygabbletest.cfg"
-
-;test dll
-"\EPOC32\RELEASE\ARMV5\urel\telepathygabbletest.dll"-"!:\sys\bin\telepathygabbletest.dll"
--- a/libtelepathy/tsrc/inc/telepathy-presence.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Used for Presence related Test Cases.
-*
-*/
-
-
-
-#ifndef __TELEPATHY_PRESENCE_H__
-#define __TELEPATHY_PRESENCE_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define TELEPATHY_TYPE_PRESENCE         (telepathy_presence_get_type ())
-#define TELEPATHY_PRESENCE(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), TELEPATHY_TYPE_PRESENCE, TelepathyPresence))
-#define TELEPATHY_PRESENCE_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), TELEPATHY_TYPE_PRESENCE, TelepathyPresenceClass))
-#define TELEPATHY_IS_PRESENCE(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), TELEPATHY_TYPE_PRESENCE))
-#define TELEPATHY_IS_PRESENCE_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), TELEPATHY_TYPE_PRESENCE))
-#define TELEPATHY_PRESENCE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TELEPATHY_TYPE_PRESENCE, TelepathyPresenceClass))
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-typedef struct _TelepathyPresence      TelepathyPresence;
-typedef struct _TelepathyPresenceClass TelepathyPresenceClass;
-
-#ifdef __cplusplus
-}
-#endif
-
-struct _TelepathyPresence {
-	GObject parent;
-};
-
-struct _TelepathyPresenceClass {
-	GObjectClass parent_class;
-};
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-typedef enum {
-	TELEPATHY_PRESENCE_STATE_AVAILABLE,
-	TELEPATHY_PRESENCE_STATE_BUSY,
-	TELEPATHY_PRESENCE_STATE_AWAY,
-	TELEPATHY_PRESENCE_STATE_EXT_AWAY,
-	TELEPATHY_PRESENCE_STATE_HIDDEN,      /* When you appear offline to others */
-	TELEPATHY_PRESENCE_STATE_UNAVAILABLE,
-} TelepathyPresenceState;
-
-#ifdef __cplusplus
-}
-#endif
-GType               telepathy_presence_get_type                 (void) G_GNUC_CONST;
-
-TelepathyPresence *    telepathy_presence_new                      (void);
-TelepathyPresence *    telepathy_presence_new_full                 (TelepathyPresenceState  state,
-							      const gchar         *status);
-
-const gchar *       telepathy_presence_get_resource             (TelepathyPresence      *presence);
-TelepathyPresenceState telepathy_presence_get_state                (TelepathyPresence      *presence);
-const gchar *       telepathy_presence_get_status               (TelepathyPresence      *presence);
-gint                telepathy_presence_get_priority             (TelepathyPresence      *presence);
-
-void                telepathy_presence_set_resource             (TelepathyPresence      *presence,
-							      const gchar         *resource);
-void                telepathy_presence_set_state                (TelepathyPresence      *presence,
-							      TelepathyPresenceState  state);
-void                telepathy_presence_set_status               (TelepathyPresence      *presence,
-							      const gchar         *status);
-void                telepathy_presence_set_priority             (TelepathyPresence      *presence,
-							      gint                 priority);
-gboolean            telepathy_presence_resource_equal           (gconstpointer        a,
-							      gconstpointer        b);
-gint                telepathy_presence_sort_func                (gconstpointer        a,
-							      gconstpointer        b);
-
-/*static*/ const gchar *telepathy_presence_state_to_str        (TelepathyPresenceState                   presence_state);
-
-
-
-G_END_DECLS
-
-#endif /* __TELEPATHY_PRESENCE_H__ */
-
--- a/libtelepathy/tsrc/inc/telepathygabbleadddeletecontact.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Class declaration for Contact Managemnet Test Cases.
-*
-*/
-
-
- 
- 
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
-#include <dbus/dbus-glib.h>
-#include <glib.h>
-	   
-#include <unistd.h>
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-chan.h"
-#include "tp-chan-gen.h"
-#include "tp-ch-gen.h"
-#include "tp-chan-iface-group-gen.h"
-#include "tp-chan-type-text-gen.h"
-#include "tp-chan-type-streamed-media-gen.h"
-#include "tp-props-iface.h"
-#include "tp-constants.h"
-#include "tp-interfaces.h"
-
-#include <pthread.h>
-//for the global data
-#include "telepathygabbletestdata.h"
-
-#define VERBOSE
-
-
-// FORWARD DECLARATION
-class CTestData;
-
-
-// CLASS DECLARATION
-NONSHARABLE_CLASS(CTelepathyGabbleAddDeleteContact) : public CBase
-    {
-    
-    private:
-		/*
-        * C++ default constructor.
-        */
-       
-        CTelepathyGabbleAddDeleteContact();
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-        
-   public:  // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CTelepathyGabbleAddDeleteContact* NewL();
-
-        /**
-        * Destructor.
-        */
-        ~CTelepathyGabbleAddDeleteContact();
-     
-		
-    public: // Member functions
-
-			TInt add_contact ( const gchar  *contact_id, const gchar *message, 
-								CTestData* aTestData );	
-			TInt remove_contact ( const gchar  *contact_id, const gchar *message,
-									CTestData* aTestData );
-				
-	public : //Callback functions
- 
-			static void add_contact_cb( DBusGProxy *proxy, GError *error, gpointer userdata );	
-			static void remove_contact_cb( DBusGProxy *proxy, GError *error, gpointer userdata );
-			
-			static void roster_members_changed_cb (DBusGProxy           *group_iface,
-									    gchar                *message,
-									    GArray               *added,
-									    GArray               *removed,
-									    GArray               *local_pending,
-									    GArray               *remote_pending,
-									    guint                 actor,
-									    guint                 reason,
-									    gpointer  			  userdata);
- };
-
-
-
-
-
-
-				
--- a/libtelepathy/tsrc/inc/telepathygabblefetchcontacts.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Class declaration for Fetch Test Cases.
-*
-*/
-
-
- 
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-
-#include <glib.h>
-
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
-#include <dbus/dbus-glib.h>
-
-#include <glib.h>
-	   
-#include <unistd.h>
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-chan.h"
-#include "tp-chan-gen.h"
-#include "tp-ch-gen.h"
-#include "tp-chan-iface-group-gen.h"
-#include "tp-chan-type-text-gen.h"
-#include "tp-chan-type-streamed-media-gen.h"
-#include "tp-props-iface.h"
-#include "tp-constants.h"
-#include "tp-interfaces.h"
-
-#include <pthread.h>
-//for the global data
-#include "telepathygabbletestdata.h"
-
-
-const guint KMaxContactFetchCount = 500;
-
-
-// FORWARD DECLARATION
-class CTelepathyGabbleLoginTest;
-
-
-// CLASS DECLARATION
-NONSHARABLE_CLASS(CTelepathyGabbleFetchContacts) : public CBase
-    {
-  
-   private:
-    	/**
-        * C++ default constructor.
-        */
-       
-        CTelepathyGabbleFetchContacts();
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-        
-   public:  // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CTelepathyGabbleFetchContacts* NewL();
-
-        /**
-        * Destructor.
-        */
-        ~CTelepathyGabbleFetchContacts();
-   
-    public: // Member functions
- 		TInt  test_request_roster ( CTestData* aTestData );
-		
-	public : //Callback functions
- 
- 		static void get_roster_member_cb( DBusGProxy *proxy,GArray* current_members, GArray* local_pending_members, GArray* remote_pending_members, GError *error, gpointer userdata );
-		static void inspect_handles_cb( DBusGProxy *proxy,char **handles_names, GError *error, gpointer userdata ) ;
-		
-	
-	
-			
- };
--- a/libtelepathy/tsrc/inc/telepathygabblelogintest.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Class declaration for Login Test Cases.
-*
-*/
-
-
-
-
-
-
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
-#include <dbus/dbus-glib.h>
-#include <glib.h>
-
-#include <unistd.h>
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-chan.h"
-#include "tp-chan-gen.h"
-#include "tp-ch-gen.h"
-#include "tp-chan-iface-group-gen.h"
-#include "tp-chan-type-text-gen.h"
-#include "tp-chan-type-streamed-media-gen.h"
-#include "tp-props-iface.h"
-#include "tp-constants.h"
-#include "tp-interfaces.h"
-
-#include <pthread.h>
-
-#define VERBOSE
-
-#include "telepathygabbletestdata.h"
-
-
-#define CONNMGR_NAME "telepathy-gabble"
-#define CONNMGR_BUS "org.freedesktop.Telepathy.ConnectionManager.gabble"
-#define CONNMGR_PATH "/org/freedesktop/Telepathy/ConnectionManager/gabble"
-#define CHANNEL_BUS "org.freedesktop.Telepathy.Channel.Type.Text"
-#define CHANNEL_PATH "/org/freedesktop/Telepathy/Channel/Type/Text"
-#define PROTOCOL "jabber"
-
-
-
-//forward decalration
-class CTestData;
-
-//class declaration			
-NONSHARABLE_CLASS(CTelepathyGabbleLoginTest) : public CBase
-    {
-   
-    private:
-    	/**
-        * C++ default constructor.
-        */
-       
-        CTelepathyGabbleLoginTest();
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-        
-   public:  // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CTelepathyGabbleLoginTest* NewL();
-
-        /**
-        * Destructor.
-        */
-        ~CTelepathyGabbleLoginTest();
-        
-   
-		
-    public: // Member functions
-
-	   //Login and Logout functions
-       TInt action_login(char* username,char* password,
-       							char* server,char* resource,char* ssl_flag,
-       							char *port,char *proxy_server, char *proxy_port,
-       							CTestData* aTestData);
-
-	   TInt action_logout( CTestData* aTestData );
-	   
-	   TInt action_cancel(char* username,char* password,
-	   							char* server, char* resource,char* ssl_flag,
-	   							char *port,char *proxy_server, char *proxy_port,
-	   							CTestData* aTestData );
-	 
-	   
-	public : //Callback functions
-	   //Callback function for the status change
-
-		static gboolean status_changed_cb(DBusGProxy *proxy,
-		  guint status, guint reason,
-		  gpointer user_data);
-
-		//Callback for the creation of a new channel on succeccful login.				  
-		static void new_channel_handler(DBusGProxy *proxy, const char *object_path,
-			const char *channel_type, guint handle_type,
-			guint channel_handle, gboolean suppress_handler,
-			gpointer user_data);
-		
-	
-		//Init the text_channel	
-		static void text_channel_init  ( TpChan   *text_chan  );
-		
-	
-	 };
- 
--- a/libtelepathy/tsrc/inc/telepathygabblepresencetest.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Class declaration for Presence Test Cases.
-*
-*/
-
-
-
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-
-#include <glib.h>
-
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-#include <dbus/dbus-glib.h>
-	   
-#include <unistd.h>
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-chan.h"
-#include "tp-chan-gen.h"
-#include "tp-ch-gen.h"
-#include "tp-chan-iface-group-gen.h"
-#include "tp-chan-type-text-gen.h"
-#include "tp-chan-type-streamed-media-gen.h"
-#include "tp-props-iface.h"
-#include "tp-constants.h"
-#include "tp-interfaces.h"
-
-#include "tp-conn-iface-presence-gen.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
-#include "telepathy-presence.h"
-
-// FORWARD DECLARATION
-class CTestData;
-
-
-#define VERBOSE
-
-
-// CLASS DECLARATION
-NONSHARABLE_CLASS(CTelepathyGabblePresenceTest) : public CBase
-    {
-    
-    private:
-    	/**
-        * C++ default constructor.
-        */
-       
-        CTelepathyGabblePresenceTest();
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-        
-   public:  // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CTelepathyGabblePresenceTest* NewL();
-
-        /**
-        * Destructor.
-        */
-        ~CTelepathyGabblePresenceTest();
-    public: //members
-    
-    	TpConn *iTpConn;
-			
-	public : 
-	
-		//presence related functions
-
-		 static TelepathyPresenceState telepathy_presence_state_from_str (const gchar *str);
-		 void telepathy_contacts_send_presence (DBusGProxy *pres_iface,
-					 TelepathyPresence *presence/*, CTestData *aTestData*/);
-				
-		 	 
-		 static void telepathy_presences_foreach (gpointer *key,gpointer *value,
-		      									TelepathyPresence **presence);
-		      
-		      
-		 //Callback functions
-		 static void telepathy_presence_handle_foreach (gpointer  *key,gpointer *value);
-		      
-		 void telepathy_presence_handler(DBusGProxy *proxy,GHashTable *handle_hash);
-		 
-
- };
-
-
-
-
-
-
-				
--- a/libtelepathy/tsrc/inc/telepathygabblesearch.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Class declaration for Search
-*
-*/
-
-
-
-
- 
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
-#include <dbus/dbus-glib.h>
-#include <glib.h>
-	   
-#include <unistd.h>
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-chan.h"
-#include "tp-chan-gen.h"
-#include "tp-ch-gen.h"
-#include "tp-chan-iface-group-gen.h"
-#include "tp-chan-type-text-gen.h"
-#include "tp-chan-type-search-gen.h"
-#include "tp-chan-type-streamed-media-gen.h"
-#include "tp-props-iface.h"
-#include "tp-constants.h"
-#include "tp-interfaces.h"
-#include <pthread.h>
-
-
-// FORWARD DECLARATION
-class CTestData;
-
-
-#define VERBOSE
-
-
-// CLASS DECLARATION
-NONSHARABLE_CLASS(CTelepathyGabbleSearch) : public CBase
-    {
-    public:
-    
-   struct Search_UserData
-    {
-    GHashTable* data_to_search;
-    CTestData* testData;
-    };
-    
-    private:
-    	/**
-        * C++ default constructor.
-        */
-       
-        CTelepathyGabbleSearch();
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-        
-   public:  // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CTelepathyGabbleSearch* NewL();
-
-        /**
-        * Destructor.
-        */
-        ~CTelepathyGabbleSearch();
-        
-   
-		
-    public: // Member functions
-    
-		  	
-	     TInt SearchL( GHashTable *aDataToSearch, CTestData* aTestData );
-			
-		 TInt GetSearchKeysL( CTestData* aTestData );
-		 
-		 void SearchAgainL( GHashTable *aDataToSearch, CTestData* aTestData );
-		 
-		 CTestData* GetTestData();
-		 
-		 void DoSearchL(GHashTable *aDataToSearch,CTestData *testData);
-		 
-		 void CloseChannel( CTestData* aTestdata );
-			
-	public : //Callback functions
-
-	 	static void search_chan_closed_cb ( DBusGProxy	*proxy,
-										  GError *error,
-										gpointer	user_data
-									   );
- 		static void search_result_received_cb ( DBusGProxy	*proxy,
-										guint       contact_handle,
-										GHashTable	*values,
-										gpointer	user_data
-									   );
- 		static void search_state_changed_cb ( DBusGProxy	*proxy,
-										guint       search_state,
-										gpointer	user_data
-									   );						    
-								    
-								    
-	    static void searchreply_cb( DBusGProxy *proxy, GError *error, gpointer user_data );
-	    
-	    //static void  setfield_foreach (gpointer key, gpointer value, gpointer user_data);
-
-		static void do_search_reply( DBusGProxy *proxy, char *chan_object_path, 
- 			GError *error, gpointer user_data );
-		static void getsearchkeys_cb( DBusGProxy *proxy,  gchar * instr,
-  							gchar ** keys, GError *error, gpointer user_data );
-	private:
-	
-		CTestData *iTestData;  							
- };
-
-
-
-
-
-				
--- a/libtelepathy/tsrc/inc/telepathygabblesendmessage.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Class declaration for SendMessage.
-*
-*/
-
-
-
-
- 
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
-#include <dbus/dbus-glib.h>
-#include <glib.h>
-	   
-#include <unistd.h>
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-chan.h"
-#include "tp-chan-gen.h"
-#include "tp-ch-gen.h"
-#include "tp-chan-iface-group-gen.h"
-#include "tp-chan-type-text-gen.h"
-#include "tp-chan-type-streamed-media-gen.h"
-#include "tp-props-iface.h"
-#include "tp-constants.h"
-#include "tp-interfaces.h"
-#include <pthread.h>
-
-
-// FORWARD DECLARATION
-class CTestData;
-
-
-#define VERBOSE
-
-
-// CLASS DECLARATION
-NONSHARABLE_CLASS(CTelepathyGabbleSendRecvMessage) : public CBase
-    {
-    
-    private:
-    	/**
-        * C++ default constructor.
-        */
-       
-        CTelepathyGabbleSendRecvMessage();
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-        
-   public:  // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CTelepathyGabbleSendRecvMessage* NewL();
-
-        /**
-        * Destructor.
-        */
-        ~CTelepathyGabbleSendRecvMessage();
-        
-   
-		
-    public: // Member functions
-    
-		  	// Member function to send the message.
-	     TInt SendMessage( const char *contact_id, const char *message,
-	     					CTestData* aTestData  );
-			
-		 TInt ReceiveMessage(const char *contact_id, const char *message,
-		 						CTestData* aTestData );
-		
-			
-	public : //Callback functions
-
-		 //Callback function for sendmessage
-		 static void sendmessage_cb( DBusGProxy *proxy, GError *error, gpointer userdata );
-	
-	
-		//Callback for receive message
-		static void receivedMessage_cb (  DBusGProxy *proxy,guint            message_id,
-								   	guint            timestamp,guint            from_handle,
-								   	guint            message_type,guint            message_flags,
-								    gchar           *message_body,gpointer		user_data );
-								    
-								    
-		static void SendError_cb (  DBusGProxy *proxy,
-								guint            error,
-							   	guint            timestamp,
-							    guint            message_type,
-							    gchar           *message_body,
-							    gpointer		user_data )	;							    
-								    
-								    
-		//Callback for the text_channel_find for a particular contact_id.			  
-		static gboolean text_channels_find_func(gchar *key,TpChan *text_channel, guint *contact_handle);
-	
-
- };
-
-
-
-
-
-				
--- a/libtelepathy/tsrc/inc/telepathygabbletest.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    For Stif fw related functions.
-*
-*/
-
-
-
-
-
-#ifndef TELEPATHYGABBLETEST_H
-#define TELEPATHYGABBLETEST_H
-
-//  INCLUDES
-#include <StifLogger.h>
-#include <TestScripterInternal.h>
-#include <StifTestModule.h>
-#include <glib.h>
-
-
-
-// Logging path
-_LIT( KTelepathyGabbleTestLogPath, "\\logs\\testframework\\TelepathyGabbleTest\\" ); 
-// Log file
-_LIT( KTelepathyGabbleTestLogFile, "TelepathyGabbleTest.txt" ); 
-_LIT( KTelepathyGabbleTestLogFileWithTitle, "TelepathyGabbleTest_[%S].txt" );
-
-// FUNCTION PROTOTYPES
-//?type ?function_name(?arg_list);
-
-// FORWARD DECLARATIONS
-class CTelepathyGabbleTest;
-
-class CTelepathyGabbleLoginTest;
-class CTelepathyGabbleSendRecvMessage;
-class CTelepathyGabbleAddDeleteContact;
-class CTelepathyGabbleFetchContacts;
-class CTelepathyGabbleSearch;
-class CTestData;
-
-
-// CLASS DECLARATION
-
-/**
-*  CTelepathyGabbleTest test class for STIF Test Framework TestScripter.
-*  ?other_description_lines
-*
-*  @lib ?library
-*  @since ?Series60_version
-*/
-NONSHARABLE_CLASS(CTelepathyGabbleTest) : public CScriptBase
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static CTelepathyGabbleTest* NewL( CTestModuleIf& aTestModuleIf );
-
-        /**
-        * Destructor.
-        */
-        virtual ~CTelepathyGabbleTest();
-
-    public: // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-
-    public: // Functions from base classes
-
-        /**
-        * From CScriptBase Runs a script line.
-        * @since ?Series60_version
-        * @param aItem Script line containing method name and parameters
-        * @return Symbian OS error code
-        */
-        virtual TInt RunMethodL( CStifItemParser& aItem );
-
-    protected:  // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-    protected:  // Functions from base classes
-
-
-    private:
-
-        /**
-        * C++ default constructor.
-        */
-        CTelepathyGabbleTest( CTestModuleIf& aTestModuleIf );
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-
-        // Prohibit copy constructor if not deriving from CBase.
-        // ?classname( const ?classname& );
-        // Prohibit assigment operator if not deriving from CBase.
-        // ?classname& operator=( const ?classname& );
-
-        /**
-        * Frees all resources allocated from test methods.
-        * @since ?Series60_version
-        */
-        void Delete();
-
-        /**
-        * Test methods are listed below. 
-        */
-
-        /**
-        * Example test method.
-        * @since ?Series60_version
-        * @param aItem Script line containing parameters.
-        * @return Symbian OS error code.
-        */
-        //virtual TInt ExampleL( CStifItemParser& aItem );
-        //ADD NEW METHOD DEC HERE
-        //[TestMethods] - Do not remove
-        
-        
-        //Login
-        virtual TInt LoginTestL( CStifItemParser& aItem );
-        
-        //Logout
-        virtual TInt LogoutTestL(CStifItemParser& aItem );   
-        
-        //Login related other test cases     
-        
-        virtual TInt LoginInvalidUseridTestL( CStifItemParser& aItem  );
-		virtual TInt LoginInvalidPasswdTestL( CStifItemParser& aItem  );
-		virtual TInt LoginInvalidUseridPasswdTestL( CStifItemParser& aItem  );
-		virtual TInt LoginblankUseridTestL(	CStifItemParser& aItem  ) ;    											
-		virtual TInt LoginblankPasswdTestL( CStifItemParser& aItem  );
-		virtual TInt LoginblankUseridblankPasswdTestL( CStifItemParser& aItem  );
-		virtual TInt LoginCancelTestL( CStifItemParser& aItem  );
-
-   
-        
-        //Send Message
-        virtual TInt SendMessageTestL(CStifItemParser& aItem );
-        virtual TInt SendMessageWith400TestL(CStifItemParser& aItem  );
-        virtual TInt SendMesasgeBlankTestL( CStifItemParser& aItem  );
-        virtual TInt SendMesasgeToBlankUserIdTestL( CStifItemParser& aItem  );        
-        virtual TInt SendMessageRepeatedTestL( CStifItemParser& aItem  );
-        virtual TInt SendMessagetoinvalidUseridTestL( CStifItemParser& aItem  );
-        
-        
-        //Receive Message
-        virtual TInt ReceiveMessageTestL(CStifItemParser& aItem);
-        virtual TInt ReceiveMessageMaxLengthTestL(CStifItemParser& aItem);
-        virtual TInt ReceiveMessageBlankTestL(CStifItemParser& aItem);
-        virtual TInt ReceiveRepeatedMessageTestL(CStifItemParser& aItem);
-        
-        
-        //Add Contact related test cases
-        virtual TInt AddContactTestL(CStifItemParser& aItem);
-        virtual TInt AddContactWithBlankUserIdTestL(CStifItemParser& aItem);
-        virtual TInt AddContactAlreadyInRosterTestL(CStifItemParser& aItem);
-        
-        //Remove Contact related test cases
-        virtual TInt RemoveContactTestL(CStifItemParser& aItem  );
-        virtual TInt RemoveInvalidContactTestL( CStifItemParser& aItem  );
-        virtual TInt RemoveContactAlreadyRemovedTestL( CStifItemParser& aItem  );
-        virtual TInt RemoveContactWithBlankUserIdTestL( CStifItemParser& aItem  );     
-    
-        //Fetch Contact related test cases
-        virtual TInt FetchContactsTestL(CStifItemParser& aItem );
-        
-        //Search related test cases
-        virtual TInt SearchTestL(CStifItemParser& aItem );        
-        virtual TInt GetSearchKeysTestL(CStifItemParser& aItem );
-        virtual TInt SearchWithAllKeysTestL( CStifItemParser& aItem  );
-        
-        virtual TInt SearchTwoInvalidKeysTestL( CStifItemParser& aItem  );
-        virtual TInt SearchInvalidKeyTestL(CStifItemParser& aItem );
-        virtual TInt SearchNoKeyValueTestL(CStifItemParser& aItem );
-        virtual TInt SearchBlankStringTestL(CStifItemParser& aItem );
-        virtual TInt SearchAfterGetSearchKeysL( CStifItemParser& aItem  );
-        virtual TInt SearchTwiceTestL( CStifItemParser& aItem  );
-        virtual TInt SearchFiveTimesTestL( CStifItemParser& aItem  );
-        virtual TInt SearchTwiceWithDiffStringsTestL( CStifItemParser& aItem  );
-        
-        
-        gchar* GetSearchLabelForGizmoL(gchar* search_key);
-        gchar* GetSearchLabelForYukonL(gchar* search_key);
-        gchar* GetSearchLabelL(gchar* aService,gchar* aSearchKey);        
-        /*static gboolean search_hash_remove( gpointer key, gpointer value,
-                      				 gpointer user_data );*/ 
-        
-        
-     private: //Some data members
-     
-	 	//Login class object
-	 	CTelepathyGabbleLoginTest	*iLoginObj;
-	 	//Send Message class object
-	 	CTelepathyGabbleSendRecvMessage *iSendMsgObj;
-	 	
-	 	//used for adding/deleting contact
-	 	CTelepathyGabbleAddDeleteContact *iAddDelContactObj;
-	 	
-	 	//used for fetching contacts
-	 	CTelepathyGabbleFetchContacts *iFetchContactObj;
-	 	
-	 	//used for searching contacts
-	 	CTelepathyGabbleSearch *iSearchObj;
-	 	CTestData* iTestData;
-
- };
-
-#endif      // TELEPATHYGABBLETEST_H
-
-// End of File
-
--- a/libtelepathy/tsrc/inc/telepathygabbletestdata.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    test utility for having the global data 
-*
-*/
-
-
-
-#ifndef __TELEPATHYGABBLETESTDATA_H__
-#define __TELEPATHYGABBLETESTDATA_H__
-
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
-#include <dbus/dbus-glib.h>
-#include <glib.h>
-
-#include <unistd.h>
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-chan.h"
-#include "tp-chan-gen.h"
-#include "tp-ch-gen.h"
-#include "tp-chan-iface-group-gen.h"
-#include "tp-chan-type-text-gen.h"
-#include "tp-chan-type-streamed-media-gen.h"
-#include "tp-props-iface.h"
-#include "tp-constants.h"
-#include "tp-interfaces.h"
-
-
-
-
-#include <pthread.h>
-
-#define VERBOSE
-
-
-#define CONNMGR_NAME "telepathy-gabble"
-#define CONNMGR_BUS "org.freedesktop.Telepathy.ConnectionManager.gabble"
-#define CONNMGR_PATH "/org/freedesktop/Telepathy/ConnectionManager/gabble"
-#define CHANNEL_BUS "org.freedesktop.Telepathy.Channel.Type.Text"
-#define CHANNEL_PATH "/org/freedesktop/Telepathy/Channel/Type/Text"
-#define PROTOCOL "jabber"
-
-class CStifLogger;
-
-class CTestData : public CBase
-{
-    public:
-    enum TConnectionState	
-		{
-			ECONNECTED =0,
-			EDISCONNECTED,
-			ECONNECTING,
-		};
-	 enum TTestType	
-		{
-			ELogin = 0,
-			ECancel,
-			ESend,
-			ESendErr,
-			EReceive,
-			ERecvBlank,
-			EGetSearchKeys,
-			ESearch,
-			EOther
-		};
-	enum TSendRecvState
-	   {
-	   	 EMessageNotSent =0,
-	   	 EMessageSent,
-	   	 EMessageRecvd,
-	   	 EMessageRecvErr,
-	   	 EMessageSendErr
-	   };
-
-	enum TAddDeleteContactStatus
-		{
-			EADD_SUCCESS =0,
-			EADD_FAIL ,
-			EDELETE_SUCCESS,
-			EDELETE_FAIL
-		};
-		
-		
-	enum TSearchState
-		{
-			ESearchStarted =0,
-			ESearchError ,
-			ESearchCompleted,
-			ESearchKeysFound			
-		};		
-		
-    private:
-    	/**
-        * C++ default constructor.
-        */
-       
-        CTestData( CStifLogger* aLogger );
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-        
-   public:  // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CTestData* NewL( CStifLogger* aLogger );
-
-        /**
-        * Destructor.
-        */
-        ~CTestData();
-	
-
-
-public://Set funtions
-
-	   DBusGProxy* GetGroupSubscribeInterface();
-	   DBusGProxy* GetGroupPublishInterface();
-	   DBusGProxy* GetGroupKnownInterface();
-	   DBusGProxy* GetGroupDenyInterface();
-	   GMainLoop*  GetMainLoop();
-	   GHashTable* GetTextChannelsHT();
-	   DBusGConnection* GetDBusConnection();
-	   TpConn* GetTpConn();
-	   TTestType GetTestType();	   
-	   TInt GetLoginCompleteFlag();
-	   TInt GetTotalFetchCount();
-	   TInt GetLastIndexInFetch();
-	   TConnectionState GetConnectionState();
-	   TSendRecvState GetSendRecvMsgState();
-	   TAddDeleteContactStatus GetAddDeleteContactStatus();
-	   CStifLogger* GetStifLogger();
-	   TSearchState GetSearchState();
-	   
-	   void SetGroupSubscribeInterface( DBusGProxy* aGroupSubscribeInterface );
-	   void SetGroupPublishInterface( DBusGProxy* aGroupPublishInterface );
-	   void SetGroupKnownInterface( DBusGProxy* aGroupKnownInterface );
-	   void SetGroupDenyInterface( DBusGProxy* aGroupDenyInterface );
-	   void SetTextChannelsHT( GHashTable* aTextChannelHashTable );
-	   void IncLoginCompleteFlag();
-	   void ResetLoginCompleteFlag();
-	   void SetTotalFetchCount( TInt aValue );
-	   void SetLastIndexInFetch( TInt aLastIndex );
-	   void SetConnectionState( TConnectionState aloginState );
-	   void SetTestType( TTestType aTestType );	   
-	   void SetSendRecvMsgState( TSendRecvState aSendRecvState );
-	   void SetAddDeleteContactStatus(TAddDeleteContactStatus aAddDeleteContactStatus);
-	   void SetTpConn(TpConn* aTpConn);
-	   void SetTpConnMgr(TpConnMgr* aTpConnMgr);
- 	   void SetDBusConnection( DBusGConnection* aDBusConnection );  
- 	   void SetSearchState(TSearchState aSearchState);
- 	   void SetSearchKeys( gchar **aKeys );
- 	   gchar** GetSearchKeys( );
- 	   void SetSearchChan(TpChan* aSearchChan );
- 	   TpChan* GetSearchChan( );
- 	    
-private://Data members
-     
-		GMainLoop *iMainLoop;
-
-		//Hash Table for the text channels.
-		GHashTable 	*iTextChannelHashTable;	
-
-		TpConn 		*iTpConn;
-		
-		TpConnMgr *iTpConnMgr;
-
-		//Global dbus-connection object
-		DBusGConnection *iDBusConnection;
-
-
-		DBusGProxy    *iGroupSubscribeInterface; //used for adding a contact
-		DBusGProxy    *iGroupKnownInterface; //used for removing a contact
-		DBusGProxy    *iGroupPublishInterface; //gives local pending members 
-		DBusGProxy    *iGroupDenyInterface;    //used to deny the contacts.	
-
-		TInt 		  iLoginComplete;
-		TInt		  iTotalFetchCount;		
-		TConnectionState   iConnectionState;
-		TSendRecvState  iSendRecvState;
-		TAddDeleteContactStatus iAddDeleteContactStatus;
-		TSearchState	iSearchState;
-		TTestType  iTestType;
-		
-		CStifLogger *iLogger;
-		
-		//Used in Fetch Contacts Test Case
-		TInt iLastIndex; 
-		gchar** iSearchKeys;
-		
-		TpChan* iSearchChan;
-};//End of class
-
-#endif //__TELEPATHYGABBLETESTDATA_H__
-
--- a/libtelepathy/tsrc/inc/telepathygabbleutils.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Utility class for telepathy Test Cases.
-*
-*/
-
-
-
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-
-#include <glib.h>
-
-#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#define DBUS_API_SUBJECT_TO_CHANGE
-#endif
-
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
-#include <dbus/dbus-glib.h>
-#include <glib.h>
-	   
-#include <unistd.h>
-
-#include "tp-conn.h"
-#include "tp-connmgr.h"
-#include "tp-chan.h"
-#include "tp-chan-gen.h"
-#include "tp-ch-gen.h"
-#include "tp-chan-iface-group-gen.h"
-#include "tp-chan-type-text-gen.h"
-#include "tp-chan-type-streamed-media-gen.h"
-#include "tp-props-iface.h"
-#include "tp-constants.h"
-#include "tp-interfaces.h"
-
-#include <pthread.h>
-
-// FORWARD DECLARATION
-class CTestData;
-
-
-// CLASS DECLARATION
-NONSHARABLE_CLASS(CTelepathyGabbleUtils) 
-    {
-    
-   
-    public: // static Member functions
- 	    static guint get_handle_from_contact ( const gchar  *contact_id,
- 	    										CTestData* aTestData);
-	
- };
--- a/libtelepathy/tsrc/init/TestFramework.ini	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-#
-# This is STIFTestFramework initialization file
-# Comment lines start with '#'-character.
-# See STIF TestFramework users guide.doc for instructions
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-[Engine_Defaults]
-
-TestReportMode= FullReport		# Possible values are: 'Empty', 'Summary', 'Environment',
-                                                               'TestCases' or 'FullReport'
-
-CreateTestReport= YES			# Possible values: YES or NO
-
-TestReportFilePath= C:\LOGS\TestFramework\
-TestReportFileName= TestReport
-
-TestReportFormat= TXT			# Possible values: TXT or HTML
-TestReportOutput= FILE			# Possible values: FILE or RDEBUG
-TestReportFileCreationMode= OVERWRITE	# Possible values: OVERWRITE or APPEND
-
-DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
-
-[End_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Module configurations start
-
-[New_Module]
-ModuleName= testscripter
-TestCaseFile= C:\testframework\telepathygabbletest.cfg
-[End_Module]
-
-
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-[Logger_Defaults]
-
-[End_Logger_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# End of file
--- a/libtelepathy/tsrc/src/telepathy-presence.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,459 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Used for Presence related Test Cases
-*
-*/
-
-
-
-
-//#include "config.h"
-
-#include <string.h>
-#include "telepathy-presence.h"
-//#include "telepathy-time.h"
-
-//#include <glib/gi18n.h> //below code is replacement of this header
-//+++++++++++++++++++++++++++++++++++++++++++++++++
-#include <glib/gstrfuncs.h>
-
-#define _(String) gettext (String)
-#define Q_(String) g_strip_context ((String), gettext (String))
-#ifdef gettext_noop
-#define N_(String) gettext_noop (String)
-#else
-#define N_(String) (String)
-#endif
-//++++++++++++++++++++++++++++++++++++++++++++++++++
-
-
-
-
-#define GET_PRIV(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TELEPATHY_TYPE_PRESENCE, TelepathyPresencePriv))
-
-
-typedef long TelepathyTime;         /* Note: Always in UTC. */
-typedef struct _TelepathyPresencePriv TelepathyPresencePriv;
-
-struct _TelepathyPresencePriv {
-	TelepathyPresenceState  state;
-
-	gchar               *status;
-	gchar               *resource;
-
-	gint                 priority;
-	TelepathyTime           timestamp;
-};
-
-static void         presence_finalize           (GObject             *object);
-static void         presence_get_property       (GObject             *object,
-						 guint                param_id,
-						 GValue              *value,
-						 GParamSpec          *pspec);
-static void         presence_set_property       (GObject             *object,
-						 guint                param_id,
-						 const GValue        *value,
-						 GParamSpec          *pspec);
-
-enum {
-	PROP_0,
-	PROP_STATE,
-	PROP_STATUS,
-	PROP_RESOURCE,
-	PROP_PRIORITY
-};
-
-G_DEFINE_TYPE (TelepathyPresence, telepathy_presence, G_TYPE_OBJECT);
-
-TelepathyTime
-telepathy_time_get_current (void)
-{
-	return time (NULL);
-}
-
-static void
-telepathy_presence_class_init (TelepathyPresenceClass *class)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (class);
-
-	object_class->finalize     = presence_finalize;
-	object_class->get_property = presence_get_property;
-	object_class->set_property = presence_set_property;
-
-	g_object_class_install_property (object_class,
-					 PROP_STATE,
-					 g_param_spec_int ("state",
-							   "Presence State",
-							   "The current state of the presence",
-							   TELEPATHY_PRESENCE_STATE_AVAILABLE,
-							   TELEPATHY_PRESENCE_STATE_EXT_AWAY,
-							   TELEPATHY_PRESENCE_STATE_AVAILABLE,
-							   G_PARAM_READWRITE));
-	g_object_class_install_property (object_class,
-					 PROP_STATUS,
-					 g_param_spec_string ("status",
-							      "Presence Status",
-							      "Status string set on presence",
-							      NULL,
-							      G_PARAM_READWRITE));
-	g_object_class_install_property (object_class,
-					 PROP_RESOURCE,
-					 g_param_spec_string ("resource",
-							      "Presence Resource",
-							      "Resource that this presence is for",
-							      NULL,
-							      G_PARAM_READWRITE));
-	g_object_class_install_property (object_class,
-					 PROP_PRIORITY,
-					 g_param_spec_int ("priority",
-							   "Presence Priority",
-							   "Priority value of presence",
-							   G_MININT,
-							   G_MAXINT,
-							   0,
-							   G_PARAM_READWRITE));
-
-	g_type_class_add_private (object_class, sizeof (TelepathyPresencePriv));
-}
-
-static void
-telepathy_presence_init (TelepathyPresence *presence)
-{
-	TelepathyPresencePriv *priv;
-
-	priv = GET_PRIV (presence);
-
-	priv->state = TELEPATHY_PRESENCE_STATE_AVAILABLE;
-
-	priv->status = NULL;
-	priv->resource = NULL;
-
-	priv->priority = 0;
-
-	priv->timestamp = telepathy_time_get_current ();
-}
-
-static void
-presence_finalize (GObject *object)
-{
-	TelepathyPresencePriv *priv;
-
-	priv = GET_PRIV (object);
-
-	g_free (priv->status);
-	g_free (priv->resource);
-
-	(G_OBJECT_CLASS (telepathy_presence_parent_class)->finalize) (object);
-}
-
-static void
-presence_get_property (GObject    *object,
-		       guint       param_id,
-		       GValue     *value,
-		       GParamSpec *pspec)
-{
-	TelepathyPresencePriv *priv;
-
-	priv = GET_PRIV (object);
-
-	switch (param_id) {
-	case PROP_STATE:
-		g_value_set_int (value, priv->state);
-		break;
-	case PROP_STATUS:
-		g_value_set_string (value,
-				    telepathy_presence_get_status (TELEPATHY_PRESENCE (object)));
-		break;
-	case PROP_RESOURCE:
-		g_value_set_string (value,
-				    telepathy_presence_get_resource (TELEPATHY_PRESENCE (object)));
-		break;
-	case PROP_PRIORITY:
-		g_value_set_int (value, priv->priority);
-		break;
-	default:
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
-		break;
-	}
-}
-static void
-presence_set_property (GObject      *object,
-		       guint         param_id,
-		       const GValue *value,
-		       GParamSpec   *pspec)
-{
-	TelepathyPresencePriv *priv;
-
-	priv = GET_PRIV (object);
-
-	switch (param_id) {
-	case PROP_STATE:
-		priv->state = g_value_get_int (value);
-		break;
-	case PROP_STATUS:
-		telepathy_presence_set_status (TELEPATHY_PRESENCE (object),
-					    g_value_get_string (value));
-		break;
-	case PROP_RESOURCE:
-		telepathy_presence_set_resource (TELEPATHY_PRESENCE (object),
-					      g_value_get_string (value));
-		break;
-	case PROP_PRIORITY:
-		priv->priority = g_value_get_int (value);
-		break;
-	default:
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
-		break;
-	}
-}
-
-TelepathyPresence *
-telepathy_presence_new (void)
-{
-	return g_object_new (TELEPATHY_TYPE_PRESENCE, NULL);
-}
-
-TelepathyPresence *
-telepathy_presence_new_full (TelepathyPresenceState  state,
-			  const gchar         *status)
-{
-	return g_object_new (TELEPATHY_TYPE_PRESENCE,
-			     "state", state,
-			     "status", status,
-			     NULL);
-}
-
-const gchar *
-telepathy_presence_get_resource (TelepathyPresence *presence)
-{
-	TelepathyPresencePriv *priv;
-
-	g_return_val_if_fail (TELEPATHY_IS_PRESENCE (presence), NULL);
-
-	priv = GET_PRIV (presence);
-
-	if (priv->resource) {
-		return priv->resource;
-	}
-
-	return NULL;
-}
-
-const gchar *
-telepathy_presence_get_status (TelepathyPresence *presence)
-{
-	TelepathyPresencePriv *priv;
-
-	/*g_return_val_if_fail (TELEPATHY_IS_PRESENCE (presence),
-			      _("Offline"));*/
-
-	priv = GET_PRIV (presence);
-
-	return priv->status;
-}
-
-gint
-telepathy_presence_get_priority (TelepathyPresence *presence)
-{
-	TelepathyPresencePriv *priv;
-
-	priv = GET_PRIV (presence);
-	g_return_val_if_fail (TELEPATHY_IS_PRESENCE (presence), 0);
-
-	return priv->priority;
-}
-
-void
-telepathy_presence_set_resource (TelepathyPresence *presence,
-			      const gchar    *resource)
-{
-	TelepathyPresencePriv *priv;
-
-	g_return_if_fail (TELEPATHY_IS_PRESENCE (presence));
-	g_return_if_fail (resource != NULL);
-
-	priv = GET_PRIV (presence);
-
-	g_free (priv->resource);
-	priv->resource = g_strdup (resource);
-
-	g_object_notify (G_OBJECT (presence), "resource");
-}
-
-TelepathyPresenceState
-telepathy_presence_get_state (TelepathyPresence *presence)
-{
-	TelepathyPresencePriv *priv;
-
-	g_return_val_if_fail (TELEPATHY_IS_PRESENCE (presence),
-			      TELEPATHY_PRESENCE_STATE_AVAILABLE);
-
-	priv = GET_PRIV (presence);
-
-	return priv->state;
-}
-
-void
-telepathy_presence_set_state (TelepathyPresence      *presence,
-			   TelepathyPresenceState  state)
-{
-	TelepathyPresencePriv *priv;
-
-	g_return_if_fail (TELEPATHY_IS_PRESENCE (presence));
-
-	priv = GET_PRIV (presence);
-
-	priv->state = state;
-
-	g_object_notify (G_OBJECT (presence), "state");
-}
-
-void
-telepathy_presence_set_status (TelepathyPresence *presence,
-			    const gchar    *status)
-{
-	TelepathyPresencePriv *priv;
-
-	priv = GET_PRIV (presence);
-	g_return_if_fail (TELEPATHY_IS_PRESENCE (presence));
-
-	g_free (priv->status);
-
-	if (status) {
-		priv->status = g_strdup (status);
-	} else {
-		priv->status = NULL;
-	}
-
-	g_object_notify (G_OBJECT (presence), "status");
-}
-
-void
-telepathy_presence_set_priority (TelepathyPresence *presence,
-			      gint            priority)
-{
-	TelepathyPresencePriv *priv;
-
-	g_return_if_fail (TELEPATHY_IS_PRESENCE (presence));
-
-	priv = GET_PRIV (presence);
-
-	priv->priority = priority;
-
-	g_object_notify (G_OBJECT (presence), "priority");
-}
-
-gboolean
-telepathy_presence_resource_equal (gconstpointer a,
-				gconstpointer b)
-{
-	TelepathyPresencePriv *priv1;
-	TelepathyPresencePriv *priv2;
-
-	g_return_val_if_fail (TELEPATHY_IS_PRESENCE (a), FALSE);
-	g_return_val_if_fail (TELEPATHY_IS_PRESENCE (b), FALSE);
-
-	priv1 = GET_PRIV (a);
-	priv2 = GET_PRIV (b);
-
-	if (!priv1->resource) {
-		if (!priv2->resource) {
-			return TRUE;
-		}
-
-		return FALSE;
-	}
-
-	if (!priv2->resource) {
-		return FALSE;
-	}
-
-	if (strcmp (priv1->resource, priv2->resource) == 0) {
-		return TRUE;
-	}
-
-	return FALSE;
-}
-
-gint
-telepathy_presence_sort_func (gconstpointer a,
-			   gconstpointer b)
-{
-	TelepathyPresencePriv *priv_a;
-	TelepathyPresencePriv *priv_b;
-	gint                diff;
-
-	g_return_val_if_fail (TELEPATHY_IS_PRESENCE (a), 0);
-	g_return_val_if_fail (TELEPATHY_IS_PRESENCE (b), 0);
-
-	/* We sort here by priority AND status, in theory, the
-	 * priority would be enough for JUST Jabber contacts which
-	 * actually abide to the protocol, but for other protocols and
-	 * dodgy clients, we will sort by:
-	 *   
-	 *    1. State
-	 *    2. Priority
-	 *    3. Time it was set (most recent first).
-	 */
-	 
-	priv_a = GET_PRIV (a);
-	priv_b = GET_PRIV (b);
-
-	/* 1. State */
-	diff = priv_a->state - priv_b->state;
-	if (diff != 0) {
-		return diff < 1 ? -1 : +1;
-	}
-
-	/* 2. Priority */
-	diff = priv_a->priority - priv_b->priority;
-	if (diff != 0) {
-		return diff < 1 ? -1 : +1;
-	}
-
-	/* 3. Time (newest first) */
-	diff = priv_b->timestamp - priv_a->timestamp;
-	if (diff != 0) {
-		return diff < 1 ? -1 : +1;
-	}
-		
-	/* No real difference, except maybe resource */
-	return 0;
-}
-
-
-/*static*/ const gchar *
-telepathy_presence_state_to_str (TelepathyPresenceState presence_state)
-{
-	switch (presence_state) {
-	case TELEPATHY_PRESENCE_STATE_AVAILABLE:
-		return "available";
-	case TELEPATHY_PRESENCE_STATE_BUSY:
-		return "dnd";
-	case TELEPATHY_PRESENCE_STATE_AWAY:
-		return "away";
-	case TELEPATHY_PRESENCE_STATE_EXT_AWAY:
-		return "xa";
-	case TELEPATHY_PRESENCE_STATE_HIDDEN:
-		return "hidden";
-	case TELEPATHY_PRESENCE_STATE_UNAVAILABLE:
-		return "offline";
-	default:
-		return NULL;
-	}
-
-	return NULL;
-}
--- a/libtelepathy/tsrc/src/telepathygabbleadddeletecontact.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,316 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Used for Contact management(add/delete etc) related Test Cases
-*
-*/
-
-
-
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-#include <glib.h>
-#include <StifLogger.h>
-
-#include "telepathygabbleutils.h"
-#include "telepathygabbleadddeletecontact.h"
-#include "telepathygabblelogintest.h"
-
-
-
-//-----------------------------------------------------------------------------
-// function_name	: CTelepathyGabbleAddDeleteContact
-// description     	: constructor
-//----------------------------------------------------------------------------- 
-CTelepathyGabbleAddDeleteContact::CTelepathyGabbleAddDeleteContact()
-{
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: ConstructL
-// description     	: constructor
-//----------------------------------------------------------------------------- 
-void CTelepathyGabbleAddDeleteContact::ConstructL()
-{
-	//do nothing
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: NewL
-// description     	: constructor
-//----------------------------------------------------------------------------- 
-CTelepathyGabbleAddDeleteContact* CTelepathyGabbleAddDeleteContact::NewL()
-{
-	CTelepathyGabbleAddDeleteContact* self = new(ELeave) CTelepathyGabbleAddDeleteContact;
-    CleanupStack::PushL( self );
-    self->ConstructL();    
-    CleanupStack::Pop();
-    return self;
-}
-
-// Destructor
-//-----------------------------------------------------------------------------
-// function_name	: ~CTelepathyGabbleAddDeleteContact
-// description     	: Destructor
-//----------------------------------------------------------------------------- 
-CTelepathyGabbleAddDeleteContact::~CTelepathyGabbleAddDeleteContact()
-{
-    	
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: add_contact
-// description     	: adding a contact
-//----------------------------------------------------------------------------- 
-TInt CTelepathyGabbleAddDeleteContact::add_contact ( const gchar  *contact_id, 
-													 const gchar *message,
-													 CTestData* aTestData )
-{
-  	guint     handle;
-	GArray    *handles = NULL;
-	//gpointer userdata = (gpointer)contact_id;
-	
-	//first check the contact_id.
-	if( contact_id == NULL )
-	{
-		return CTestData::EADD_FAIL;
-	}
-	
-	aTestData->SetAddDeleteContactStatus(CTestData::EADD_FAIL);
-	
-	//acess the utils class function to get the contact handle.	
-	handle = CTelepathyGabbleUtils::get_handle_from_contact ( contact_id, aTestData );
-
-	if ( handle == KErrNotFound )
-		{
-		return CTestData::EADD_FAIL;	
-		}
-
-	handles = g_array_new (FALSE, FALSE, sizeof (guint));
-	
-	g_array_append_val (handles, handle);
-	
-	DBusGProxy *group_iface_subscribe = aTestData->GetGroupSubscribeInterface();
-	DBusGProxy *group_iface_publish = aTestData->GetGroupPublishInterface();
-	DBusGProxy *group_iface_known = aTestData->GetGroupKnownInterface();
-	
-	
-	//register the callback, commented for now.
-	dbus_g_proxy_connect_signal (group_iface_subscribe, "MembersChanged",
-					     G_CALLBACK (roster_members_changed_cb ),
-					     aTestData, NULL); 
-	
-	dbus_g_proxy_connect_signal (group_iface_publish, "MembersChanged",
-					     G_CALLBACK (roster_members_changed_cb ),
-					     aTestData, NULL); 
-					     
-
-	dbus_g_proxy_connect_signal (group_iface_known, "MembersChanged",
-					     G_CALLBACK (roster_members_changed_cb ),
-					     aTestData, NULL); 					     
-	
-	
-	tp_chan_iface_group_add_members_async ( group_iface_subscribe, handles, message, add_contact_cb, aTestData );
-	
-	//Start the main loop
-	g_main_loop_run (aTestData->GetMainLoop());
-
-	g_array_free (handles, TRUE);
-	
-	//return the status was updated in the callback.
-	return aTestData->GetAddDeleteContactStatus(); 
-}
-
-
-//-----------------------------------------------------------------------------
-// function_name	: remove_contact
-// description     	: remove the contact.
-//----------------------------------------------------------------------------- 
-TInt CTelepathyGabbleAddDeleteContact::remove_contact ( const gchar  *contact_id, 
-														const gchar *message,
-													    CTestData* aTestData
-													  )
-{
-
-	guint     handle;
-	GArray    *handles = NULL;
-
-	//first check the contact_id.
-	if( contact_id == NULL )
-	{
-		return CTestData::EDELETE_FAIL;
-	}
-	
-	aTestData->SetAddDeleteContactStatus( CTestData::EDELETE_FAIL );
-	
-	handle = CTelepathyGabbleUtils::get_handle_from_contact ( contact_id, aTestData);
-	
-	if ( handle == KErrNotFound )
-		{
-		return CTestData::EDELETE_FAIL;	
-		}
-
-
-	DBusGProxy *group_iface_known = aTestData->GetGroupKnownInterface();
-	
-	handles = g_array_new (FALSE, FALSE, sizeof (guint));
-	
-	g_array_append_val (handles, handle);
-	
-	tp_chan_iface_group_remove_members_async ( group_iface_known, handles, message, remove_contact_cb, aTestData );
-
-	//Start the main loop
-	g_main_loop_run (aTestData->GetMainLoop());
-	
-	g_array_free (handles, TRUE);
-	
-	return (aTestData->GetAddDeleteContactStatus());
-}
-
-
-//-----------------------------------------------------------------------------
-// function_name	: add_contact_cb
-// description     	:Callback for add contact
-//----------------------------------------------------------------------------- 
-void CTelepathyGabbleAddDeleteContact::add_contact_cb( DBusGProxy* /*proxy*/, GError* error, gpointer userdata )
-{
-		CTestData* testdata = static_cast<CTestData*> (userdata);
-		if ( !error )
-		{
-			testdata->SetAddDeleteContactStatus(CTestData::EADD_SUCCESS);
-		}
-		else
-		{
-			testdata->SetAddDeleteContactStatus(CTestData::EADD_FAIL);
-				
-		}
-		
-		//Quit the main loop
-		g_main_loop_quit(testdata->GetMainLoop());
-			     	
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: remove_contact_cb
-// description     	: Callback for remove contact.
-//----------------------------------------------------------------------------- 
-	
-void CTelepathyGabbleAddDeleteContact::remove_contact_cb( DBusGProxy* proxy, GError *error, gpointer userdata )
-{
-		
-		CTestData* testdata = static_cast<CTestData*> (userdata);
-		if ( error )
-		{
-		testdata->GetStifLogger()->Log( _L("CTelepathyGabbleTest::deleting already removed contact,it should give some error \n") );
-		testdata->SetAddDeleteContactStatus( CTestData::EDELETE_FAIL );
-		}
-		else
-		{
-		testdata->GetStifLogger()->Log( _L("CTelepathyGabbleTest::deleted successfully \n") );
-		testdata->SetAddDeleteContactStatus( CTestData::EDELETE_SUCCESS );
-		}
-	  //Quit the main loop started in Delete contact.
-	  g_main_loop_quit(testdata->GetMainLoop());
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: roster_members_changed_cb
-// description     	: Callback for change in the contacts.
-//----------------------------------------------------------------------------- 
-
-void CTelepathyGabbleAddDeleteContact::roster_members_changed_cb (DBusGProxy*   /*group_iface*/,
-									    gchar*                /*message */,
-									    GArray               *added,
-									    GArray               *removed,
-									    GArray               *local_pending,
-									    GArray               *remote_pending,
-									    guint                 /*actor*/,
-									    guint                 /*reason*/,
-									    gpointer  			  userdata)
-{
-
-	gchar **contact_name = NULL;
-
-
-
-	CTestData* atestData = static_cast<CTestData*> (userdata);
-	
-	//TInt return_value = KErrNone;
-	
-
-	
-	if (added->len > 0)
-	{
-		
-		//this is not working, use async api later
-	    /*tp_conn_inspect_handles( DBUS_G_PROXY(atestData->GetTpConn()),
-						       TP_CONN_HANDLE_TYPE_CONTACT ,added,
-						       &contact_name,NULL);*/
-		if(contact_name)				       
-		{
-			//The contact has been added.
-			// Must verify this against the contact_name for which the request was sent?
-			// This will depend on whether we will hit callback for one contact at a time
-			// or multiple callbacks for all contacts at a single time. ?
-			//return_value = KErrNone;
-			//atestData->SetAddDeleteContactStatus(CTestData::EADD_SUCCESS);
-			
-		}
-	}
-	if (removed->len > 0)
-	{
-		/*tp_conn_inspect_handles( DBUS_G_PROXY(atestData->GetTpConn()),
-						       TP_CONN_HANDLE_TYPE_CONTACT ,removed,
-						       &contact_name,NULL);*/
-		if(contact_name)					       
-		{
-			//The contact_name was deleted
-			//Must verify this against the contact_name for which the request was sent?
-			//return_value == KErrNone;
-		}
-	}
-	if (local_pending->len > 0) 
-	{
-		/*tp_conn_inspect_handles( DBUS_G_PROXY(atestData->GetTpConn()),
-						       TP_CONN_HANDLE_TYPE_CONTACT ,local_pending,
-						       &contact_name,NULL);*/
-		if(contact_name)				       
-		{
-			//what should be tested here ? 
-			//like what is next action expected ?
-			//since the contact is still local_pending, is the test case failed ?
-			//return_value = KErrNone;	
-			//atestData->GetAddDeleteContactStatus();
-		}
-		
-	}
-	if (remote_pending->len > 0) 
-	{
-		/*tp_conn_inspect_handles( DBUS_G_PROXY(atestData->GetTpConn()),
-						       TP_CONN_HANDLE_TYPE_CONTACT ,remote_pending,
-						       &contact_name,NULL);*/
-		if(contact_name)					       
-		{
-			//return_value = KErrNone;		
-			//atestData->GetAddDeleteContactStatus();
-		}
-		
-	}
-	
-	//dont quit from here right now.
-}
-
-//  End of File
--- a/libtelepathy/tsrc/src/telepathygabblefetchcontacts.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Used for Fetch contacts related Test Cases
-*
-*/
-
-
-
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-#include <glib.h>
-
-#include "telepathygabblefetchcontacts.h"
-#include "telepathygabbletestdata.h"
-
-
-
-
-
-//-----------------------------------------------------------------------------
-// function_name	: CTelepathyGabbleFetchContacts
-// description     	: constructor
-//----------------------------------------------------------------------------- 
-CTelepathyGabbleFetchContacts::CTelepathyGabbleFetchContacts()
-{
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: ConstructL
-// description     	: constructor
-//----------------------------------------------------------------------------- 
-void CTelepathyGabbleFetchContacts::ConstructL()
-{
-	//do nothing
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: NewL
-// description     	: constructor
-//----------------------------------------------------------------------------- 
-CTelepathyGabbleFetchContacts* CTelepathyGabbleFetchContacts::NewL()
-    {
-    
-	CTelepathyGabbleFetchContacts* self = new(ELeave) CTelepathyGabbleFetchContacts;
-    CleanupStack::PushL( self );
-    self->ConstructL();    
-    CleanupStack::Pop();
-    return self;
-    }
-
-//-----------------------------------------------------------------------------
-// function_name	: ~CTelepathyGabbleFetchContacts
-// description     	: Destructor
-//----------------------------------------------------------------------------- 
-CTelepathyGabbleFetchContacts::~CTelepathyGabbleFetchContacts()
-    {
-	
-    }
-    
-//-----------------------------------------------------------------------------
-// function_name	: test_request_roster
-// description     	: Function for fetching the contacts.
-//----------------------------------------------------------------------------- 
-TInt CTelepathyGabbleFetchContacts::test_request_roster( CTestData* aTestData )
-{
-	
-	DBusGProxy * group_iface_subscribe = aTestData->GetGroupSubscribeInterface();
-	
-	tp_chan_iface_group_get_all_members_async(group_iface_subscribe, get_roster_member_cb, aTestData);
-
-  	//Run the mainloop
-	g_main_loop_run (aTestData->GetMainLoop());
-
-	//retrun some error code here	
-	if ( aTestData->GetTotalFetchCount() != KErrGeneral )
-	{
-		return KErrNone;
-	}
-	else
-	{
-		return KErrGeneral;
-	}
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: get_roster_member_cb
-// description     	: callback for getting the roster member.
-//----------------------------------------------------------------------------- 
-void  CTelepathyGabbleFetchContacts::get_roster_member_cb( DBusGProxy* /*proxy*/,GArray* current_members, GArray* local_pending_members, GArray* remote_pending_members, GError* /*error*/, gpointer userdata ) 
-{
-	guint fetch_count=0;
-	guint fetch_loop_count=0;	
-	GArray* fetch_members = NULL;
-	guint i;
-	guint total_len =0;
-	CTestData* testData = static_cast<CTestData*> (userdata);
-
-	
-	total_len = current_members->len + local_pending_members->len + remote_pending_members->len;
-
-	testData->SetTotalFetchCount(total_len);
-	
-	if( !total_len )
-		{
-			g_main_loop_quit(testData->GetMainLoop());
-			return;		
-			
-		}
-	
-	fetch_members = g_array_new (FALSE, FALSE, sizeof (guint32));
-
-	
-	if( current_members->len > 0)
-	{
-		fetch_count = 0;
-		fetch_loop_count = (current_members->len) / KMaxContactFetchCount + ( (current_members->len % KMaxContactFetchCount)? 1 : 0);
-		
-		for( i=0; i<fetch_loop_count; i++ )
-		{
-				
-			g_array_remove_range(fetch_members,0,fetch_count);
-			
-			fetch_count = (current_members->len <= KMaxContactFetchCount)? current_members->len : KMaxContactFetchCount;
-			
-			g_array_append_vals (fetch_members,current_members->data,fetch_count);
-			
-			g_array_remove_range(current_members,0,fetch_count);
-			
-			//we will quit the main loop in inspect_handles_cb
-			tp_conn_inspect_handles_async( DBUS_G_PROXY(testData->GetTpConn()),
-					       TP_CONN_HANDLE_TYPE_CONTACT ,fetch_members,
-					       inspect_handles_cb,userdata);
-		}
-	}
-	
-	if( local_pending_members->len > 0)
-	{
-		fetch_count = 0;
-		
-		g_array_remove_range(fetch_members,0,fetch_members->len);
-		
-		fetch_loop_count = (local_pending_members->len) / KMaxContactFetchCount + ( (local_pending_members->len % KMaxContactFetchCount)? 1 : 0);
-		
-		for( i=0; i<fetch_loop_count; i++ )
-		{
-				
-			g_array_remove_range(fetch_members,0,fetch_count);
-			
-			fetch_count = (local_pending_members->len <= KMaxContactFetchCount)? local_pending_members->len : KMaxContactFetchCount;
-			
-			
-			g_array_append_vals (fetch_members,local_pending_members->data,fetch_count);
-			
-			g_array_remove_range(local_pending_members,0,fetch_count);
-			
-			tp_conn_inspect_handles_async( DBUS_G_PROXY(testData->GetTpConn()),
-					       TP_CONN_HANDLE_TYPE_CONTACT ,fetch_members,
-					       inspect_handles_cb,userdata);
-		}
-
-	}
-
-	if( remote_pending_members->len > 0)
-	{
-		fetch_count = 0;
-		g_array_remove_range(fetch_members,0,fetch_members->len);
-		fetch_loop_count = (remote_pending_members->len) / KMaxContactFetchCount + ( (remote_pending_members->len % KMaxContactFetchCount)? 1 : 0);
-		
-		for( i=0; i<fetch_loop_count; i++ )
-		{
-				
-			g_array_remove_range(fetch_members,0,fetch_count);
-			
-			fetch_count = (remote_pending_members->len <= KMaxContactFetchCount)? remote_pending_members->len : KMaxContactFetchCount;
-			
-			g_array_append_vals (fetch_members,remote_pending_members->data,fetch_count);
-			g_array_remove_range(remote_pending_members,0,fetch_count);
-			tp_conn_inspect_handles_async( DBUS_G_PROXY(testData->GetTpConn()),
-					       TP_CONN_HANDLE_TYPE_CONTACT ,fetch_members,
-			  	       inspect_handles_cb,userdata);	
-		}	
-	
-	}
-	return;
-	
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: inspect_handles_cb
-// description     	: inspect the handle for the contact, return the contact handle 
-//----------------------------------------------------------------------------- 
-void CTelepathyGabbleFetchContacts::inspect_handles_cb( DBusGProxy* /*proxy*/,char **handles_names,
-														GError *error, gpointer userdata ) 
-{
-    CTestData* testData = static_cast<CTestData*> (userdata);
-    TInt last_index = testData->GetLastIndexInFetch(); 
-    guint total_len = testData->GetTotalFetchCount();
-    
-	if(!last_index)
-	{
-		//allmembers_names = g_new0 ( char *, total_len + 1);		
-	}
-	
-	if(!handles_names || error )
-		{
-		//error condition in inspect_handles_cb
-		testData->SetTotalFetchCount(KErrGeneral);
-		g_main_loop_quit(testData->GetMainLoop());
-		return;
-		}
-		
-	for( TInt i=0; handles_names[i]; i++ )
-		{
-		
-		//handle_names can be logged to the log file
-		last_index++;
-		}
-		
-	testData->SetLastIndexInFetch(last_index);
-	
-	if (last_index == total_len )
-		{
-			//inspect_handle_cb for all the contacts has been receieved.
-			//Quit the main loop.
-			
-			//Set the flag that inspect_handles_cb has been completed successfully.
-			g_main_loop_quit(testData->GetMainLoop());	
-		}
-	
-	return ;
-}
-//  End of File
--- a/libtelepathy/tsrc/src/telepathygabblelogintest.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,680 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Used for Login-Logout related Test Cases
-*
-*/
-
-
-
- 
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-
-#include <glib.h>
-#include <StifLogger.h>
-
-#include "telepathygabbleutils.h"
-#include "telepathygabblelogintest.h"
-#include "telepathygabbletestdata.h"
-#include "telepathygabbleadddeletecontact.h"
-
-static void  test_log_handler1 (
-		    const gchar    *message
-		   )
-{
-   FILE* fp;
-		
-	fp = fopen("c:\\tplogs.txt","a");
-	if(fp)
-	{
-		fprintf(fp,message);
-		fprintf(fp,"\n");
-		fclose(fp);
-	}
-
-	
-}
-
-
-//-----------------------------------------------------------------------------
-// function_name	: CTelepathyGabbleLoginTest
-// description     	: Constructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-
-CTelepathyGabbleLoginTest::CTelepathyGabbleLoginTest()
-    {
-    }
-    
-//-----------------------------------------------------------------------------
-// function_name	: ConstructL
-// description     	: Constructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-
-void CTelepathyGabbleLoginTest::ConstructL()
-	{
-
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: NewL
-// description     	: Constructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-CTelepathyGabbleLoginTest* CTelepathyGabbleLoginTest::NewL()
-    {
-    
-	CTelepathyGabbleLoginTest* self = new(ELeave) CTelepathyGabbleLoginTest;
-    CleanupStack::PushL( self );
-    self->ConstructL();    
-    CleanupStack::Pop();
-    return self;
-    }
-
-//-----------------------------------------------------------------------------
-// function_name	: ~CTelepathyGabbleLoginTest
-// description     	: destructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-CTelepathyGabbleLoginTest::~CTelepathyGabbleLoginTest()
-    {
-    
-    //class variables
-    //delete conn;
-    //conn = NULL;
-
-    }
-
-//-----------------------------------------------------------------------------
-// function_name	: action_login
-// description     	: login
-// Returns          : gboolean
-//----------------------------------------------------------------------------- 
-TInt CTelepathyGabbleLoginTest::action_login(char* username,char* password,
-												char* server, char* resource, char* ssl_flag,
-												char *port, char *proxy_server, char *proxy_port,
-												CTestData* aTestData)
-{
-   
-   
-    TpConnMgr *connmgr = NULL;
-    GError *error = NULL;
-    
-    test_log_handler1(username);
-    test_log_handler1(password);
-    test_log_handler1(server);
-    test_log_handler1(resource);
-    test_log_handler1(ssl_flag);
-    test_log_handler1(port);
-    
-   	
-	GHashTable *connection_parameters = g_hash_table_new(g_str_hash, g_str_equal);
-
-	DBusGConnection *dbus_connection;
-	TpConn *tp_conn;
-	
-	//Use the values passed from the cfg file.
-	gchar* def1 = g_strdup(username);
-	gchar* def2 = g_strdup(password);
-	
-	gchar* def3 = g_strdup(server);	
-	gchar* def4 = g_strdup(resource);
-	
-	guint def5 = atoi(port);				//443;
-
-	#ifdef __WINSCW__	
-	gchar* def6 = g_strdup(proxy_server); 		//g_strdup("172.16.42.135"); //for emulater
-	guint def7 = atoi(proxy_port);												//8080; //for emulater
-	#endif
-
-	GValue *value1 = g_new0(GValue, 1);
-	GValue *value2 = g_new0(GValue, 1);
-	GValue *value3 = g_new0(GValue, 1);
-	GValue *value4 = g_new0(GValue, 1);
-	GValue *value5 = g_new0(GValue, 1);
-		
-	#ifdef __WINSCW__	
-	GValue *value6 = g_new0(GValue, 1);
-	GValue *value7 = g_new0(GValue, 1);
-	#endif
-
-  GValue *value8 = g_new0(GValue, 1);	
-	g_type_init();
-
-
-  	// just use system bus and do not bother about others
-  	 dbus_connection = dbus_g_bus_get( DBUS_BUS_SESSION , &error); 
-  
-  	aTestData->GetStifLogger()->Log( _L("after dbus_g_bus_get") );
-    /* bsr 4 sep: this was null as host parsing failed -> transport was zero -> connectionw as 0 */
-  	if (dbus_connection == NULL)
-   	{
-	    // if we get error as part of above step, connection variable is NULL, so we are here
-	    //_dbus_verboseerr("Failed to open connection to bus: %s\n", error->message);
-	    //test_log_handler("Found Error in dbus_g_bus_get exiting.\n");
-	    aTestData->GetStifLogger()->Log( _L("dbus_connection == NULL") );
-	    g_error_free(error);
-	 	return (aTestData->GetConnectionState());	
-   	}
-   	else
-   	{
-   	aTestData->SetDBusConnection(dbus_connection);
-   	}
-   
-  	aTestData->GetStifLogger()->Log( _L("b4 tp_connmgr_new") );
-  	/* Create a connection manager object */
-  	connmgr = tp_connmgr_new(dbus_connection, CONNMGR_BUS, CONNMGR_PATH,
-			   /*CONNMGR_BUS*/ TP_IFACE_CONN_MGR_INTERFACE);
-  	aTestData->GetStifLogger()->Log( _L("after tp_connmgr_new") );
-	if (connmgr == NULL)
-	{
-	 aTestData->GetStifLogger()->Log( _L("connmgr == NULL") );
-	 g_error("Failed to create a connection manager, skipping manager startup.");
-	 return (aTestData->GetConnectionState());	
-	}
-	else
-	{
-		aTestData->SetTpConnMgr(connmgr);	
-	}
-		
-	g_value_init(value1, G_TYPE_STRING);
-	g_value_set_string (value1, def1);
-	g_hash_table_insert(connection_parameters, (gpointer)"account", (gpointer)value1); 
-
-	g_value_init(value2, G_TYPE_STRING); 
-	g_value_set_string (value2, def2);
-	g_hash_table_insert(connection_parameters,(gpointer) "password",(gpointer) value2); 
-
-	g_value_init(value3, G_TYPE_STRING); 
-	g_value_set_string (value3, def3);
-	g_hash_table_insert(connection_parameters,(gpointer) "server",(gpointer)value3 ); 
-
-	g_value_init(value4, G_TYPE_STRING); 
-	g_value_set_string (value4, def4);
-	g_hash_table_insert(connection_parameters, (gpointer)"resource", (gpointer)value4); 
-
-
-	g_value_init(value5, G_TYPE_UINT); 
-	g_value_set_uint (value5, def5);
-	g_hash_table_insert(connection_parameters, (gpointer)"port", (gpointer)value5); 
-
-	//convert the ssl_flag to ascii
-	TInt ssl_bool = atoi(ssl_flag);
-	
-	//if (ssl_flag == "1") //def8 ==1 
-	if (ssl_bool == 1) //i.e. only for gtalk, not for gizmo
-	{
-		gboolean def8 = TRUE; //for gtalk
-		g_value_init(value8, G_TYPE_BOOLEAN);
-		g_value_set_boolean (value8, def8);
-  	g_hash_table_insert(connection_parameters, (gpointer)"old-ssl", (gpointer)value8); 
-	}  
-	
-#ifdef __WINSCW__    
-	g_value_init(value6, G_TYPE_STRING); 
-	g_value_set_string (value6, def6);
-	g_hash_table_insert(connection_parameters, (gpointer)"https-proxy-server", (gpointer)value6);
-
-
-	g_value_init(value7, G_TYPE_UINT); 
-	g_value_set_uint (value7, def7);
-	g_hash_table_insert(connection_parameters, (gpointer)"https-proxy-port",(gpointer) value7); 
-#endif
-	
-		
-	// Create a new actual connection with the connection manager 
-	//Ensure that conn is global. 
-	// The same conn object is used for logout.
-	aTestData->GetStifLogger()->Log( _L("b4 tp_connmgr_new_connection") );
-	tp_conn = tp_connmgr_new_connection(connmgr,connection_parameters, PROTOCOL);
-	aTestData->GetStifLogger()->Log( _L("after tp_connmgr_new_connection") );
-	if( tp_conn == NULL )
-  	{
-  		aTestData->GetStifLogger()->Log( _L("tp_conn is null") );
-  		return (aTestData->GetConnectionState());	
-  	}
-  	else
-  	{
-  	aTestData->SetTpConn(tp_conn);	
-  	}
-  
-		
-   	
-	// add a callback for StatusChange signal 
-	dbus_g_proxy_connect_signal(DBUS_G_PROXY(tp_conn), "StatusChanged",
-	(G_CALLBACK(status_changed_cb)),
-	aTestData,NULL );
-
-	g_hash_table_destroy(connection_parameters);
-
-	//Run the mainloop
-	g_main_loop_run (aTestData->GetMainLoop());
-
-	//Quit of main loop happened in thecallback.
-	//unref this mainloop
-	// same main loop can be used for all classes,
-	// unref after logout in each test case when logintest object gets destroyed
-	//g_main_loop_unref ( mainloop ); 
-	
-	//After the status_changed_cb , the control back here
-	//Check the value of global variable that was updated
-	//in the callback and return the same.
-
-	
-	//Get the connected state for login and return the same.
-	return (aTestData->GetConnectionState());
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: action_logout
-// description     	: Does logout
-// Returns          : None
-//-----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleLoginTest::action_logout(CTestData* aTestData)
-{
-	GError *error = NULL;
-	
-	//Do the disconnect
-	tp_conn_disconnect (DBUS_G_PROXY( aTestData->GetTpConn()), &error);
-	
-	//g_hash_table_destroy(global_data_ptr->Getptrhashtable_textchan());
-	
-	//Start the main loop
-	g_main_loop_run (aTestData->GetMainLoop());
-	
-
-	//After this see that the callback status_changed_cb
-	//is hit with TP_CONN_STATUS_DISCONNECTED as the status.
-	
-	//After the status_changed_cb , the control back here
-	//Check the value of global variable that was updated in the 
-	//callback and return the same.
-	
-	if (error)
-	{
-		// There is some error
-		g_error_free (error);	
-		// Update the global to connected 
-		//global_connected = TRUE;
-	}
-	//else global_connected is made FALSE in the status_changed_cb
-      
-	
-	//return global_connected; 
-	//Get the connected state for login and return the same.
-	return (aTestData->GetConnectionState());
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: action_cancel
-// description     	: cancel login
-// Returns          : None
-//-----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleLoginTest::action_cancel(char* username,
-													char* password, char* server,char* resource, char* ssl_flag,
-													char *port,char *proxy_server, char *proxy_port,
-												    CTestData* aTestData)
-{
-	aTestData->SetTestType(CTestData::ECancel) ;
-	aTestData->GetStifLogger()->Log( _L("inside action_cancel\n") );
-	action_login(username,password,server,resource,ssl_flag,
-								port, proxy_server, proxy_port, aTestData);
-	
-	action_logout(aTestData);//Do tp_disconnected.
-	
-	return (aTestData->GetConnectionState());
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: status_changed_cb
-//-----------------------------------------------------------------------------
-gboolean CTelepathyGabbleLoginTest::status_changed_cb(DBusGProxy* /*proxy*/,
-				  guint status, guint reason,
-				  gpointer user_data)
-{
-  GHashTable*  textChannelsHT = NULL;
-  CTestData* testData = static_cast<CTestData*> (user_data);
-  CStifLogger* logger = testData->GetStifLogger();
-  logger->Log( _L("status_changed_cb\n") );
-
-  if (status == TP_CONN_STATUS_CONNECTED ) 
-  {
-  	
- 
-    logger->Log( _L("status_changed_cb::connected\n") );
-    
-    
-    if( testData->GetTestType() != CTestData::ELogin )
-    {
-    
-    
- 	textChannelsHT =
-		g_hash_table_new_full(g_str_hash,
-				      g_str_equal,
-				      (GDestroyNotify) g_free,
-				      (GDestroyNotify) g_object_unref);
-	
-	testData->SetTextChannelsHT(textChannelsHT);
-	//Register the callback for new channel
-	//Commented for now has been put in the SendMessage function,
-	dbus_g_proxy_connect_signal(DBUS_G_PROXY(testData->GetTpConn()), "NewChannel",
-			      (G_CALLBACK(new_channel_handler)),			      
-			      user_data,NULL);
-	}
-	else
-	{
-		// if the test case is login related test case, new channel callback not required
-		//so dont register for NewChannel
-	g_main_loop_quit(testData->GetMainLoop());
-	testData->ResetLoginCompleteFlag();		      
-	}
-    //update the state_of_conenction enum
-  testData->SetConnectionState(CTestData::ECONNECTED );
-   
-  }
-  else if (status == TP_CONN_STATUS_CONNECTING)
-  {
-    //if the test case is for cancel disconnect here, meaning cancel the login here.
-  	//if cancel test case, do disconnect in connecting state
-  	testData->SetConnectionState(CTestData::ECONNECTING);
-  	if ( testData->GetTestType() == CTestData::ECancel)
-  	{
-  		//quit from this callback so that we return to point from where
-  		//action_login was called.
-  		g_main_loop_quit(testData->GetMainLoop());	
-  	}
-  	
-  }
-  else if ( status == TP_CONN_STATUS_DISCONNECTED )
-  {
-  	
-  	
-  	if ( testData->GetTestType() == CTestData::ECancel) 
-  	{
-  		//this disconnect was initiated from the cancel test case
-  		logger->Log( _L("status_changed_cb :cancelled \n") );
-  		testData->SetConnectionState(CTestData::EDISCONNECTED);
-  		//quit the main loop.
-  		g_main_loop_quit(testData->GetMainLoop());
-  	}
-  	else
-  	{
-  	
-  		if(reason == TP_CONN_STATUS_REASON_AUTHENTICATION_FAILED)
-  		{
-  			// Here disconnect is received as the authentication has failed.
-	  		//it could be because of invalid user_id or invalid passwd issued 
-	  		//while passing the login parameters.
-	  		//Here we are checking for TP_CONN_STATUS_REASON_AUTHENTICATION_FAILED since
-	  		// the gabblelogs show the reason value as 3 if invalid user_id and passwd are given.
-	  	
-	  		testData->SetConnectionState(CTestData::EDISCONNECTED);
-	  		
-	  		//Quit the main loop started in action_login.
-			g_main_loop_quit(testData->GetMainLoop());
-			
-  		}
-  		else
-  		{
-  			//this was initiated in the logout testcase,
-	  		//update the state_of_connection
-	  		//LOGOUT AFTER SUCCESSFUL LOGIN
-  			
-  			if( testData->GetConnectionState() != CTestData::EDISCONNECTED )
-  			{
-  		
-  			logger->Log( _L("status_changed_cb::not disconnected\n") );
-  			
-  			testData->IncLoginCompleteFlag();
-  		
-			//currently for all the reasons except TP_CONN_STATUS_REASON_AUTHENTICATION_FAILED
-			//disconencted will come here.
-			//This code can be updated for variuos "reason" values
-			//based on the scenarios and the need for the test cases for those scenarios. 	
-  			}
-  			
-  			if( testData->GetLoginCompleteFlag() && testData->GetConnectionState() == CTestData::EDISCONNECTED  )
-  			{
-  			logger->Log( _L("status_changed_cb::disconnected\n") );
-  			testData->ResetLoginCompleteFlag();
-  			//Quit the main loop started in action_login.
-			g_main_loop_quit(testData->GetMainLoop());	
-				
-  			}
-  			logger->Log( _L("status_changed_cb::before SetConnectionState\n") );
-  			testData->SetConnectionState(CTestData::EDISCONNECTED);
-	 	
-  		}
-  	}
-  	
-  }
-  logger->Log( _L("status_changed_cb out\n") ); 
-  return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: new_channel_handler
-// description     	: callback function for NewChannel signal
-//-----------------------------------------------------------------------------
-void CTelepathyGabbleLoginTest::new_channel_handler(DBusGProxy* /*proxy*/, const char *object_path,
-				const char *channel_type, guint handle_type,
-				guint channel_handle, gboolean /*suppress_handler*/,
-				gpointer user_data)
-{
-CTestData* testData = static_cast<CTestData*> (user_data);
-CStifLogger* logger = testData->GetStifLogger();
-logger->Log( _L("new_channel_handler\n") );
-
-//Use the class data member new_text_channel.
-TpChan *new_chan;
-
-//Get the new_chan 
-new_chan = tp_chan_new(testData->GetDBusConnection(),
-	       CONNMGR_BUS, object_path,
-		       channel_type, handle_type, channel_handle);
-
-
-//channel_type == TP_IFACE_CHANNEL_TYPE_TEXT
-if ((strcmp(channel_type, TP_IFACE_CHANNEL_TYPE_TEXT) == 0)  )
-	{
-	g_hash_table_insert(testData->GetTextChannelsHT(), g_strdup(object_path), new_chan);		       
-	//test_log_handler( "b4 text_channel_init" );
-	//check for  new_chan objects for text channel should be loaclly stored/freed
-	text_channel_init( new_chan );
-	}
-	
-	
-//channel_type == TP_IFACE_CHANNEL_TYPE_CONTACT_LIST
-if( strcmp( channel_type, TP_IFACE_CHANNEL_TYPE_CONTACT_LIST  ) == 0 
- 		&& (g_strrstr(object_path, "RosterChannel/subscribe") ) )
- 		  
-	{
-	DBusGProxy* groupInterface = NULL;
-	//Get the group_iface
-	groupInterface =
-     	tp_chan_get_interface(new_chan,
-				      TELEPATHY_CHAN_IFACE_GROUP_QUARK);
-
-	
-	testData->SetGroupSubscribeInterface(groupInterface);
-	
-	//register the callback, commented for now.
-	dbus_g_proxy_connect_signal (groupInterface, "MembersChanged",
-					     G_CALLBACK (CTelepathyGabbleAddDeleteContact::roster_members_changed_cb ),
-					     NULL, NULL); 
-					     
-	//add_contact("testcm6666@gmail.com",NULL);		
-    
-    testData->IncLoginCompleteFlag();
-				       
-	}
-
-if( strcmp( channel_type, TP_IFACE_CHANNEL_TYPE_CONTACT_LIST  ) == 0 
- 		&& (g_strrstr(object_path, "RosterChannel/publish") ) )
- 		  
-	{
-	
-	DBusGProxy* groupInterface = NULL;
-	//Get the group_iface
-	groupInterface ==
-     	tp_chan_get_interface(new_chan,
-				      TELEPATHY_CHAN_IFACE_GROUP_QUARK);
-				      
-	testData->SetGroupPublishInterface(groupInterface);
-		
-	dbus_g_proxy_connect_signal (groupInterface, "MembersChanged",
-					     G_CALLBACK (CTelepathyGabbleAddDeleteContact::roster_members_changed_cb ),
-					     NULL, NULL); 
-					     
-					     
-				     
-	//Increment the flag.
-	testData->IncLoginCompleteFlag();
-					     
- 	}      
-	
-if( strcmp( channel_type, TP_IFACE_CHANNEL_TYPE_CONTACT_LIST  ) == 0 
- 		&& (g_strrstr(object_path, "RosterChannel/known") ) )
- 		  
-	{
- 	DBusGProxy* groupInterface = NULL;
-	//Get the group_iface
-	groupInterface = 	tp_chan_get_interface(new_chan,
-				      TELEPATHY_CHAN_IFACE_GROUP_QUARK);				      
-
-	
-	//remove_contact( "testcm6666@gmail.com", NULL  );	
-	testData->SetGroupKnownInterface(groupInterface);
-				      
-	dbus_g_proxy_connect_signal (groupInterface, "MembersChanged",
-					     G_CALLBACK (CTelepathyGabbleAddDeleteContact::roster_members_changed_cb ),
-					     NULL, NULL);
-
-	
-	//increment the flag
-	testData->IncLoginCompleteFlag();
-	
-	}
-	
-if( strcmp( channel_type, TP_IFACE_CHANNEL_TYPE_CONTACT_LIST  ) == 0 
- 		&& (g_strrstr(object_path, "RosterChannel/deny") ) )
- 		  
-	{
- 	DBusGProxy* groupInterface = NULL;
-	//Get the group_iface
-	groupInterface =   	tp_chan_get_interface(new_chan,
-				      TELEPATHY_CHAN_IFACE_GROUP_QUARK);				      
-				      
-	testData->SetGroupDenyInterface(groupInterface);
-				      
-	dbus_g_proxy_connect_signal (groupInterface, "MembersChanged",
-					     G_CALLBACK (CTelepathyGabbleAddDeleteContact::roster_members_changed_cb ),
-					     NULL, NULL);
-
-	//remove_contact( "testcm6666@gmail.com", NULL  );	
-
-	//increment the flag
-	testData->IncLoginCompleteFlag();
-	
-	}
-	//Quit the mainloop started once all the channel-types are recieved.
-	//check the flag.
-	
-	if (testData->GetLoginCompleteFlag() == 3) 
-	//In case of gizmo, the number of channels is 3.gtalk for deny also we get the callback
-	//we must also store the server name in the login class and check  the server name here
-	{
-		//Quit the main loop.
-		testData->ResetLoginCompleteFlag();
-		testData->GetStifLogger()->Log( _L("new_channel_handler::after ResetLoginCompleteFlag\n") );
-		g_main_loop_quit(testData->GetMainLoop());
-	
-	}
-		
-
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: text_channel_init
-// description     	: To get pending messages after login
-//-----------------------------------------------------------------------------
-
-void CTelepathyGabbleLoginTest::text_channel_init  ( TpChan *text_chan )
-	{
-	GPtrArray  *messages_list ;
-	guint       i;
-	GArray     *message_ids;
-	DBusGProxy *text_iface;
-
-		
-    text_iface = tp_chan_get_interface(text_chan ,
-					   TELEPATHY_CHAN_IFACE_TEXT_QUARK);
-
-		
-	//check if need to fetch the pending message or simply register for receive only
-	tp_chan_type_text_list_pending_messages(text_iface,
-						FALSE,
-						&messages_list,
-						NULL);
-
-
-	message_ids = g_array_new (FALSE, TRUE, sizeof (guint));
-
-		
-	for (i = 0; i < messages_list->len ; i++)
-	 {
-		guint          message_id;
-		guint          timestamp;
-		guint          from_handle;
-		guint          message_type;
-		guint          message_flags;
-		const gchar   *message_body;
-		GValueArray   *message_struct;
-	
-		
-		
-		message_struct = (GValueArray *) g_ptr_array_index (messages_list, i);
-		
-		message_id = g_value_get_uint(g_value_array_get_nth(message_struct, 0));
-
-		timestamp = g_value_get_uint(g_value_array_get_nth(message_struct, 1));
-
-		from_handle = g_value_get_uint(g_value_array_get_nth(message_struct, 2));
-
-		message_type = g_value_get_uint(g_value_array_get_nth(message_struct, 3));
-
-		message_flags = g_value_get_uint(g_value_array_get_nth(message_struct, 4));
-
-		message_body = g_value_get_string(g_value_array_get_nth(message_struct, 5));
-
-		g_array_append_val (message_ids, message_id);
-
-	}
-
-
-	tp_chan_type_text_acknowledge_pending_messages(text_iface, message_ids,
-						       NULL);
-
-					
-
-}
-
-				
-						
-//End of file
\ No newline at end of file
--- a/libtelepathy/tsrc/src/telepathygabblepresencetest.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,262 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Used for Presence Test Cases
-*
-*/
-
-
-
- 
-// INCLUDE FILES
-#include "telepathygabblepresencetest.h"
-#include "telepathygabbletestdata.h"
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: Constructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-
-CTelepathyGabblePresenceTest::CTelepathyGabblePresenceTest()
-    {
-    }
-    
-//-----------------------------------------------------------------------------
-// function_name	: ConstructL
-// description     	: Constructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-
-void CTelepathyGabblePresenceTest::ConstructL()
-	{
- 	
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: NewL
-// description     	: Constructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-CTelepathyGabblePresenceTest* CTelepathyGabblePresenceTest::NewL()
-    {
-    
-	CTelepathyGabblePresenceTest* self = new(ELeave) CTelepathyGabblePresenceTest;
-    CleanupStack::PushL( self );
-    self->ConstructL();    
-    CleanupStack::Pop();
-    return self;
-    }
-
-//-----------------------------------------------------------------------------
-// function_name	: ~CTelepathyGabblePresenceTest
-// description     	: destructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-CTelepathyGabblePresenceTest::~CTelepathyGabblePresenceTest()
-{
-	
-}
-
-
-//-----------------------------------------------------------------------------
-// function_name	: ~CTestData
-// description     	: destructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-TelepathyPresenceState CTelepathyGabblePresenceTest::telepathy_presence_state_from_str (const gchar *str)
-{
-	char temp[25];
-	strcpy(temp,str);
-	//roster_log_handler("telepathy_telepathy_presence_state_from_str");
-	//roster_log_handler(temp);
-
-	if (strcmp (str, "available") == 0) {
-		return TELEPATHY_PRESENCE_STATE_AVAILABLE;
-	} else if ((strcmp (str, "dnd") == 0) || (strcmp (str, "busy") == 0)) {
-		return TELEPATHY_PRESENCE_STATE_BUSY;
-	} else if ((strcmp (str, "away") == 0) || (strcmp (str, "brb") == 0)) {
-		return TELEPATHY_PRESENCE_STATE_AWAY;
-	} else if (strcmp (str, "xa") == 0) {
-		return TELEPATHY_PRESENCE_STATE_EXT_AWAY;
-	} else if (strcmp (str, "hidden") == 0) {
-		return TELEPATHY_PRESENCE_STATE_HIDDEN;
-	} else if (strcmp (str, "offline") == 0) {
-		return TELEPATHY_PRESENCE_STATE_UNAVAILABLE;
-	} 
-
-	return TELEPATHY_PRESENCE_STATE_AVAILABLE;
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: ~CTestData
-// description     	: destructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-//vinod: gossip_telepathy_contacts_send_presence
-void
-CTelepathyGabblePresenceTest::telepathy_contacts_send_presence (DBusGProxy *pres_iface,
-					 TelepathyPresence *presence/*CTestData *aTestData*/)
-{
-	GHashTable          *status_ids;
-	GHashTable          *status_options;
-	const gchar         *status_id;
-	const gchar         *message;
-	TelepathyPresenceState  presence_state;
-	GError              *error = NULL;
-	GValue               value_message = {0, };
-	
-	//iTpConn = aTestData->GetTpConn();
-
-	//g_return_if_fail (contacts != NULL);
-	//g_return_if_fail (GOSSIP_IS_PRESENCE (presence));
-
-	if (!pres_iface) {
-		return;
-	}
-
-	status_ids = g_hash_table_new_full (g_str_hash,
-					    g_str_equal,
-					    g_free,
-					    (GDestroyNotify) g_hash_table_destroy);
-	status_options = g_hash_table_new_full (g_str_hash,
-						g_str_equal,
-						NULL,
-						(GDestroyNotify) g_value_unset);
-
-	presence_state = telepathy_presence_get_state (presence);
-	status_id = telepathy_presence_state_to_str (presence_state);
-	message = telepathy_presence_get_status (presence);
-
-	if (message) {
-		g_value_init (&value_message, G_TYPE_STRING);
-		g_value_set_string (&value_message, message);
-		g_hash_table_insert (status_options, (gpointer)"message", &value_message);
-	}
-
-	g_hash_table_insert (status_ids,
-			     g_strdup (status_id),
-			     status_options);
-
-	//Sync way: gossip_debug (DEBUG_DOMAIN, "sending presence...");
-	if (! (DBUS_G_PROXY(pres_iface),
-						status_ids,
-						&error)) {
-		//gossip_debug ("Could not set presence: %s", error->message);
-		//roster_log_handler("Could not set presence\n");
-		g_clear_error (&error);
-	}
-	//Async way
-/*tp_conn_iface_presence_set_status_async(DBUS_G_PROXY(pres_iface),
-						status_ids,
-						,
-						NULL );
-*/
-	g_hash_table_destroy (status_ids);
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: telepathy_presences_foreach
-// description     	: destructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-void
-CTelepathyGabblePresenceTest::telepathy_presences_foreach (gpointer *key,
-		      gpointer        *value,
-		      TelepathyPresence **presence)
-{
-	TelepathyPresenceState state;
-	const gchar        *message;
-	char temp[100];
-
-	*presence = telepathy_presence_new();
-
-	//roster_log_handler("telepathy_presences_foreach");
-//	roster_log_handler(key);
-
-	state = telepathy_presence_state_from_str((const gchar *)key);
-
-	telepathy_presence_set_state(*presence, state);
-
-	message = g_value_get_string((GValue *)
-				     g_hash_table_lookup((GHashTable *)
-							 value, "message"));
-	strcpy(temp,message);
-	//roster_log_handler(temp);
-		
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: telepathy_presence_handle_foreach
-// description     	: destructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-void
-CTelepathyGabblePresenceTest::telepathy_presence_handle_foreach (gpointer *key,
-		      gpointer        *value)
-{
-	gint                 handle_id;
-	GHashTable          *presences_hash;
-	GValue              *gvalue;
-	gboolean             new_item;
-	GObject		       *contact;
-	GObject      *presence;
-	gchar              **handle_name;
-	GArray              *handles;
-
-	CTestData* atestData;
-
-	handle_id = GPOINTER_TO_INT(key);
-	
-	handles = g_array_new (FALSE, FALSE, sizeof (gint));
-	g_array_append_val (handles, handle_id);
-	tp_conn_inspect_handles(DBUS_G_PROXY(atestData->GetTpConn()),
-			       TP_CONN_HANDLE_TYPE_CONTACT, handles,
-			       &handle_name, NULL);
-	
-	gvalue = g_value_array_get_nth((GValueArray *) value, 1);
-	
-	presences_hash = (GHashTable *) g_value_get_boxed(gvalue);
-	
-	g_hash_table_foreach(presences_hash,
-			     (GHFunc) telepathy_presences_foreach, &presence);
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: ~CTestData
-// description     	: destructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-void CTelepathyGabblePresenceTest::telepathy_presence_handler(DBusGProxy      *proxy,
-			   GHashTable      *handle_hash)
-{
-	//GObject      *presence;
-	TelepathyPresence        *presence;
-	TelepathyPresenceState state;
-	GSList *data = NULL;
-	//vinod: setting the new presence status
-	presence = telepathy_presence_new();
-	//here am hard coding the value, this can be taken from ximpfw
-	state = telepathy_presence_state_from_str("dnd");   
-	telepathy_presence_set_state(presence, state);
-	//vinod
-	//roster_log_handler("telepathy_presence_handler callback\n");
-	g_hash_table_foreach(handle_hash, (GHFunc) telepathy_presence_handle_foreach, data);
-
-
- //vinod: call telepathy_set_presence method here 
- telepathy_contacts_send_presence(proxy, presence);
-
-}
-
-//  End of File
--- a/libtelepathy/tsrc/src/telepathygabblesearch.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,430 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Used for Search Related Test Cases
-*
-*/
-
-
-
- 
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-#include <glib.h>
-#include <TestScripterInternal.h>
-#include "telepathygabbleutils.h"
-#include "telepathygabblesearch.h"
-#include "telepathygabbletestdata.h"
-#include "tp-chan.h"
-#include "tp-conn-gen.h"
-
-
-
-
-//-----------------------------------------------------------------------------
-// function_name	: CTelepathyGabbleSearch
-// description     	: constructor
-//----------------------------------------------------------------------------- 
-
-CTelepathyGabbleSearch::CTelepathyGabbleSearch()
-{
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: ConstructL
-// description     	: constructor
-//----------------------------------------------------------------------------- 
-void CTelepathyGabbleSearch::ConstructL()
-{
-	
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: NewL
-// description     	: NewL
-//----------------------------------------------------------------------------- 
-CTelepathyGabbleSearch* CTelepathyGabbleSearch::NewL()
-    {
-	CTelepathyGabbleSearch* self = new(ELeave) CTelepathyGabbleSearch;
-    CleanupStack::PushL( self );
-    self->ConstructL();    
-    CleanupStack::Pop();
-    return self;
-    }
-
-//-----------------------------------------------------------------------------
-// function_name	:  ~CTelepathyGabbleSearch
-// description     	: Destructor
-//----------------------------------------------------------------------------- 
-CTelepathyGabbleSearch::~CTelepathyGabbleSearch()
-    {
-    }
-    	
-
-//-----------------------------------------------------------------------------
-// function_name	: SearchL
-// description     	: Used for searching contacts 
-//----------------------------------------------------------------------------- 
-TInt CTelepathyGabbleSearch::SearchL( GHashTable *aDataToSearch, CTestData* aTestData )
-{
-	Search_UserData	*userData = new(ELeave) Search_UserData;
-	
-	userData->data_to_search = aDataToSearch;
-	userData->testData = aTestData;
-
-	iTestData = aTestData;
-
-	if( iTestData->GetSearchChan() )
-		{
-		SearchAgainL( aDataToSearch, iTestData );
-		//Run the mainloop
-		g_main_loop_run (iTestData->GetMainLoop());	
-		}
-	else
-	{
-		if (!tp_conn_request_channel_async( DBUS_G_PROXY( aTestData->GetTpConn() ),
-                               TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH, 
-                               TP_CONN_HANDLE_TYPE_NONE, 0, TRUE,
-                               do_search_reply,(gpointer) userData ) )
-                               
-			{
-			return KErrGeneral;	
-			}	
-		//Run the mainloop
-		g_main_loop_run (iTestData->GetMainLoop());	
-		DoSearchL( aDataToSearch, aTestData);
-	}
-	
-
-
-	
-	if(userData)
-		{
-			delete userData;
-			userData = NULL;
-		}
-
-	//return the Message_sent that was updated in the callback sendmessage_cb	
-	return iTestData->GetSearchState();
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: SearchAgainL
-// description     	: Used for searching contacts second or more number of times
-//----------------------------------------------------------------------------- 
-
- void CTelepathyGabbleSearch::SearchAgainL( GHashTable *aDataToSearch, CTestData* aTestData )
- {
- 
-	DBusGProxy *search_iface = NULL;
-	TpChan *search_chan = NULL;
-	
- 	if(aTestData)
-	 	{
-	 	search_chan = aTestData->GetSearchChan();	
-	 	}
-  	if ( NULL == search_chan ) 
-		{
-		return ;	
-		}
-	//Get chan interface					
-	search_iface = tp_chan_get_interface( search_chan	, 
-		TELEPATHY_CHAN_IFACE_CONTACTSEARCH_QUARK );	
-	
-	if ( NULL == search_iface ) 
-		{
-		return ;	
-		}					
-
-	//Call the search on tp		      										      
-	tp_chan_type_search_async( search_iface, aDataToSearch, searchreply_cb, 
-			aTestData );
-			
-
- }
-
-
-//-----------------------------------------------------------------------------
-// function_name	: GetSearchKeysL
-// description     	: Used for getting search keys 
-//----------------------------------------------------------------------------- 
-TInt CTelepathyGabbleSearch::GetSearchKeysL( CTestData* aTestData )
-{
-	Search_UserData	*userData = new(ELeave) Search_UserData;
-	
-	userData->data_to_search = NULL;
-	userData->testData = aTestData;
-
-	iTestData = aTestData;
-	
-	if (!tp_conn_request_channel_async( DBUS_G_PROXY( aTestData->GetTpConn() ),
-                               TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH, 
-                               TP_CONN_HANDLE_TYPE_NONE, 0, TRUE,
-                               do_search_reply,(gpointer) userData ) )
-                               
-		{
-		return KErrGeneral;	
-		}
-
-	//Run the mainloop
-	g_main_loop_run (aTestData->GetMainLoop());
-	
-	DoSearchL(NULL,aTestData);
-		
-	if(userData)
-		{
-			delete userData;
-			userData = NULL;
-		}
-
-	//return the Message_sent that was updated in the callback sendmessage_cb	
-	return iTestData->GetSearchState();
-}
-
-
-void CTelepathyGabbleSearch::do_search_reply( DBusGProxy* /*proxy*/, char *chan_object_path, 
- 			GError *error, gpointer user_data )
- {
- 	Search_UserData* userData = static_cast<Search_UserData*> (user_data);
- 	TpChan *search_chan = NULL;
- 	
- 	TInt search_state = userData->testData->GetSearchState();
- 	
-	
-	/* Create the object to represent the channel */
-	if ( error ) 
-		{
-		userData->testData->SetSearchState(CTestData::ESearchError);
-		return;
-		}
-	search_chan = tp_chan_new( userData->testData->GetDBusConnection(), CONNMGR_BUS, chan_object_path, 
-					TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH, TP_CONN_HANDLE_TYPE_NONE, 0 );
-	                         
-	                    
-	g_free(chan_object_path);
-  
-  	
-  	if ( NULL == search_chan ) 
-		{
-		userData->testData->SetSearchState(CTestData::ESearchError);
-		return ;	
-		}
-	
-	userData->testData->SetSearchChan( search_chan );	
-	
-	g_main_loop_quit(userData->testData->GetMainLoop());
-
-  
- }
-
-
-void CTelepathyGabbleSearch::DoSearchL(GHashTable *aDataToSearch,CTestData *testData)
-{
-	DBusGProxy *search_iface = NULL;
-	TInt testType = testData->GetTestType();
-	
-	//Get chan interface					
-	search_iface = tp_chan_get_interface( testData->GetSearchChan(), 
-		TELEPATHY_CHAN_IFACE_CONTACTSEARCH_QUARK );	
-	
-	if ( NULL == search_iface ) 
-		{
-		testData->SetSearchState(CTestData::ESearchError);
-		return ;	
-		}					
-   	//Register for the SearchResultReceived signal
-	//ownership of the srch_result->user_data is transfered
-	dbus_g_proxy_connect_signal( search_iface, "SearchResultReceived",
-							G_CALLBACK( search_result_received_cb ),
-							(gpointer)this, NULL );
-	
-
-	//Register for the SearchStateChanged signal
-	dbus_g_proxy_connect_signal( search_iface, "SearchStateChanged",
-							G_CALLBACK( search_state_changed_cb ),
-							(gpointer)this, NULL );
-   	      
-    if( testType == CTestData::EGetSearchKeys )
-	   {
-	   	//Call the getsearchkeys on tp		      										      
-		tp_chan_type_search_get_search_keys_async(search_iface,getsearchkeys_cb, testData );
-
-	   }
-    else if( testType == CTestData::ESearch )
-	   {
-	    //Call the search on tp		      										      
-		tp_chan_type_search_async( search_iface, aDataToSearch, 
-								searchreply_cb, testData);
-	   }
-	   
-	g_main_loop_run(testData->GetMainLoop());   
-	   	
-}
-void CTelepathyGabbleSearch::getsearchkeys_cb( DBusGProxy* /*proxy*/,  gchar* /*instr*/,
-  							gchar** keys, GError *error, gpointer user_data )
-{
-CTestData* testData = static_cast<CTestData*> (user_data);
-
-if(!keys || error )
-	{
-    testData->SetSearchState( CTestData::ESearchError );
-	}
-
-if(keys)
-	{
-	testData->GetStifLogger()->Log( _L("getsearchkeys_cb:SearchKeysFound") );
-	testData->SetSearchState( CTestData::ESearchKeysFound );
-	testData->SetSearchKeys(keys);
-	}
-g_main_loop_quit(testData->GetMainLoop());	
-	
-}
-
-
-
-void CTelepathyGabbleSearch::searchreply_cb( DBusGProxy* /*proxy*/, GError *error, gpointer user_data ) 
-{
- CTestData* testData = static_cast<CTestData*> (user_data);
- TInt testType = testData->GetTestType();
- 
- testData->GetStifLogger()->Log( _L("searchreply_cb") );
- 
- if ( testType == CTestData::ESearch )
- 	{
-		if(error)
-			 {
-			 	testData->GetStifLogger()->Log( _L("Error in search") );
-			 	testData->SetSearchState(CTestData::ESearchError);
-			 	tp_chan_close_async( DBUS_G_PROXY( testData->GetSearchChan() ), search_chan_closed_cb, testData );
-			 }
-	}
- 
-}
-
-
-	
-
-void CTelepathyGabbleSearch::search_result_received_cb ( DBusGProxy* /*proxy*/,
-										guint       /*contact_handle*/,
-										GHashTable	*values, 
-										gpointer	user_data
-									   )
-{
-CTelepathyGabbleSearch* search_userData = static_cast<CTelepathyGabbleSearch*> (user_data);
-guint result_count = 0;
- 
-//iTestData->GetStifLogger()->Log( _L("search_result_received_cb") );
-search_userData->GetTestData()->GetStifLogger()->Log( _L("search_result_received_cb") );
-
-if(values )	
-	result_count = g_hash_table_size(values);
-
-
-//do this later
-/*if(result_count)
-	{
-	g_hash_table_foreach(values,setfield_foreach,NULL);	
-	}*/
-
-	
-}
-
-void CTelepathyGabbleSearch::search_state_changed_cb ( DBusGProxy* /*proxy*/,
-										guint       search_state,
-										gpointer	user_data
-									   )
-{
-CTelepathyGabbleSearch* search_userData = static_cast<CTelepathyGabbleSearch*> (user_data);
-DBusGProxy *search_iface = NULL;
-GError **err = NULL;
-guint *state = NULL;
-TpChan *search_chan = NULL;
-CTestData* testData = search_userData->GetTestData();
-
-if(search_userData && testData )
-	{
-	testData->GetStifLogger()->Log( _L("search_state_changed_cb") );	
-	search_chan = testData->GetSearchChan();
-	}
-
-
-if( search_state == TP_CHANNEL_CONTACT_SEARCH_STATE_AFTER && search_userData  && search_chan )
-	{
-	testData->SetSearchState(CTestData::ESearchCompleted);	
-	search_iface = tp_chan_get_interface( search_chan, 
-		TELEPATHY_CHAN_IFACE_CONTACTSEARCH_QUARK );	
-	tp_chan_type_search_get_search_state( search_iface,state,err);
-	g_main_loop_quit(testData->GetMainLoop());	
-	}
-	
-}
-
-void CTelepathyGabbleSearch::search_chan_closed_cb ( DBusGProxy* /*proxy*/,
-										  GError *error,
-										gpointer	user_data
-									   )
-{
-CTestData* testData = static_cast<CTestData*> (user_data);
-
-testData->GetStifLogger()->Log( _L("search_chan_closed_cb") );
-if(error)
-	{
-	testData->GetStifLogger()->Log( _L("search_chan_closed_cb : Error ") );
-	testData->SetSearchState(CTestData::ESearchError);
-	}
-else
-	{
-	
-	TInt testType = testData->GetTestType();
-	if( testType == CTestData::EGetSearchKeys )
-		{
-		testData->SetSearchState(CTestData::ESearchKeysFound);
-		testData->GetStifLogger()->Log( _L("search_chan_closed_cb : SearchKeysFound ") );
-		}
-	else if( testType == CTestData::ESearch )
-		{
-		testData->SetSearchState(CTestData::ESearchCompleted);
-		testData->GetStifLogger()->Log( _L("search_chan_closed_cb : SearchCompleted ") );
-		}
-	}
-g_main_loop_quit(testData->GetMainLoop());	
-}
-
-CTestData* CTelepathyGabbleSearch::GetTestData()
-	 {
-	 return iTestData;	
-	 }
-
-/*void  CTelepathyGabbleSearch::setfield_foreach (gpointer key, gpointer value, gpointer user_data)
-{
-  gchar *k = (gchar *) key;
-  const char *v = g_value_get_string ( (const GValue*)value);
-  CTestData* testdata = static_cast<CTestData*> (user_data);
-
-  //testdata->GetStifLogger()->Log( _L("setfield_foreach") );
-
-}*/
-
-void CTelepathyGabbleSearch::CloseChannel( CTestData* aTestdata )
-	{
-		if( aTestdata->GetSearchChan() )
-			{
-			tp_chan_close_async( DBUS_G_PROXY( aTestdata->GetSearchChan() ), search_chan_closed_cb, aTestdata );	
-			}
-		//Run the mainloop
-		g_main_loop_run (aTestdata->GetMainLoop());				
-	}
-
-//  End of File
--- a/libtelepathy/tsrc/src/telepathygabblesendmessage.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,350 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Used for Send/Receive Test Cases
-*
-*/
-
-
-
- 
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-#include <glib.h>
-#include <StifLogger.h>
-#include "telepathygabbleutils.h"
-#include "telepathygabblesendmessage.h"
-#include "telepathygabbletestdata.h"
-
-
-
-
-//-----------------------------------------------------------------------------
-// function_name	: CTelepathyGabbleSendRecvMessage
-// description     	: constructor
-//----------------------------------------------------------------------------- 
-
-CTelepathyGabbleSendRecvMessage::CTelepathyGabbleSendRecvMessage()
-{
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: ConstructL
-// description     	: constructor
-//----------------------------------------------------------------------------- 
-void CTelepathyGabbleSendRecvMessage::ConstructL()
-{
-	
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: NewL
-// description     	: NewL
-//----------------------------------------------------------------------------- 
-CTelepathyGabbleSendRecvMessage* CTelepathyGabbleSendRecvMessage::NewL()
-    {
-	CTelepathyGabbleSendRecvMessage* self = new(ELeave) CTelepathyGabbleSendRecvMessage;
-    CleanupStack::PushL( self );
-    self->ConstructL();    
-    CleanupStack::Pop();
-    return self;
-    }
-
-//-----------------------------------------------------------------------------
-// function_name	:  ~CTelepathyGabbleSendRecvMessage
-// description     	: Destructor
-//----------------------------------------------------------------------------- 
-CTelepathyGabbleSendRecvMessage::~CTelepathyGabbleSendRecvMessage()
-    {
-    }
-    	
-
-//-----------------------------------------------------------------------------
-// function_name	: SendMessage
-// description     	: To send a message
-//----------------------------------------------------------------------------- 
-TInt CTelepathyGabbleSendRecvMessage::SendMessage( const char *contact_id, 
-													const char *message,
-													CTestData* aTestData )
-{
-	TpChan* text_chan = NULL; //for send msg
-
-	TInt contact_handle;
-	GArray *handles = NULL;
-	GError* error = NULL;
-	DBusGProxy  *text_iface = NULL;
-
-	gpointer userdata = NULL; 
-	
-	
-	//get the contact handle.
-	contact_handle =  CTelepathyGabbleUtils::get_handle_from_contact(contact_id,aTestData);
-	
-	if ( contact_handle == KErrNotFound )
-		{
-		return CTestData::EMessageSendErr;	
-		}
-
-	text_chan = (TpChan*)g_hash_table_find(
-								   aTestData->GetTextChannelsHT(),
-							      (GHRFunc) text_channels_find_func,
-							      &contact_handle );	 
-	      
-	//text_chan for the particular contact does not exist.
-	//New text_chan must be created.						      
-	if (text_chan == NULL)	
-		{ 
-		text_chan = tp_conn_new_channel(
-							(aTestData->GetDBusConnection()),
-							(aTestData->GetTpConn()),CONNMGR_BUS,TP_IFACE_CHANNEL_TYPE_TEXT,
-							TP_CONN_HANDLE_TYPE_CONTACT,contact_handle, TRUE );	
-
-		//Insert the new text_chan to the hash table.							
-
-		g_hash_table_insert(
-				(aTestData->GetTextChannelsHT()),
-				g_strdup(dbus_g_proxy_get_path(DBUS_G_PROXY(text_chan))),text_chan);
-					
-		}
-
-	text_iface = tp_chan_get_interface(text_chan,TELEPATHY_CHAN_IFACE_TEXT_QUARK);	
-	
-	
-	if( aTestData->GetTestType() == CTestData::ESendErr ||
-		aTestData->GetTestType() == CTestData::EReceive )
-		{
-		//Register the callback to get the error
-		//when the recipeint_id is invalid.
-		dbus_g_proxy_connect_signal(text_iface, "SendError",
-					G_CALLBACK(SendError_cb),
-						aTestData, NULL);	
-		}
-
-	if( aTestData->GetTestType() == CTestData::EReceive )
-		{
-		//Register for the receive message callback here.
-	 	dbus_g_proxy_connect_signal(text_iface, "Received",
-					(G_CALLBACK(receivedMessage_cb)),
-					aTestData, NULL);	
-		}
-
- 	
-	
-	//This callback tells whether the message is sent to the server or not.
-	
-	tp_chan_type_text_send_async( text_iface, TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL, 
-	message,sendmessage_cb, aTestData); 
-	
-	
-	// user_data = this i.e. the class pointer  
-
-	//Run the mainloop
-	g_main_loop_run (aTestData->GetMainLoop());
-
-
-	//return the Message_sent that was updated in the callback sendmessage_cb	
-	return aTestData->GetSendRecvMsgState();
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: ReceiveMessage
-// description     	: receive message
-//----------------------------------------------------------------------------- 
-TInt CTelepathyGabbleSendRecvMessage::ReceiveMessage(   const char *contact_id,
-														const char *message,
-														CTestData* aTestData )
-{
-	TpChan* text_chan = NULL; //for send msg
-	DBusGProxy *text_iface;
-
-	guint contact_handle;
-	
-	
-	 
-	//send msg 1
-	//For Automation, Do the send message to yourself
-	//own contact_id received from the cfg file.
-	TInt msg_status = SendMessage(contact_id,message,aTestData);
-	if( msg_status == CTestData::EMessageNotSent )
-		{
-			aTestData->GetStifLogger()->Log( _L("ReceiveMessage: Msg is not sent successfully \n") );
-			
-		    if( aTestData->GetTestType() == CTestData::ERecvBlank )
-		    	g_main_loop_quit(aTestData->GetMainLoop()); 
-		    
-			return CTestData::EMessageNotSent;
-		}
-	 
-
- 	/*contact_handle =  CTelepathyGabbleUtils::get_handle_from_contact(contact_id,aTestData);
- 	
- 	text_chan = (TpChan*)g_hash_table_find(
- 					(aTestData->GetTextChannelsHT()),
-				      (GHRFunc) text_channels_find_func,
-				      &contact_handle );	
-    text_iface = tp_chan_get_interface(text_chan ,
-					   TELEPATHY_CHAN_IFACE_TEXT_QUARK);
-					   
- 	//Register for the receive message callback here.
- 	dbus_g_proxy_connect_signal(text_iface, "Received",
-				(G_CALLBACK(receivedMessage_cb)),
-				aTestData, NULL);
- 	
- 	//send msg 2
- 	//Do the send message to yourself
- 	
-	msg_status == CTestData::EMessageNotSent )
-		{
-			return CTestData::EMessageNotSent;
-		}*/
-	aTestData->GetStifLogger()->Log( _L("after : register receivedMessage_cb \n") );
-	if (aTestData->GetTestType() == CTestData::EReceive && 
-			aTestData->GetSendRecvMsgState() != CTestData::EMessageSendErr )
-	{
-		//there are two callbacks now.
-		//receivedMessage_cb and sendmessage_cb.
-		
-		//Run the mainloop again as it was quit in the callback sendmessage_cb.
-		//the message_state is not yet MESSAGE_RECEIVED.
-		//we need to start the main loop again to get the receivedmessage_cb.
-		aTestData->GetStifLogger()->Log( _L("start mainloop if state not as EMESSAGE_RCVD \n") );
- 		g_main_loop_run (aTestData->GetMainLoop());
- 		
- 	}
-  return aTestData->GetSendRecvMsgState();
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: sendmessage_cb
-// description     	: Callback for Send Message
-//----------------------------------------------------------------------------- 
-void CTelepathyGabbleSendRecvMessage::sendmessage_cb( DBusGProxy* /*proxy*/, GError* /*error*/, gpointer userdata ) 
-{
-	CTestData* testdata = static_cast<CTestData*> (userdata);
-	
-	testdata->GetStifLogger()->Log( _L("inside sendmessage_cb \n") );
-		
- 	//This is the test case for sending message to invalid userid.
- 	if ( testdata->GetTestType() != CTestData::ESendErr )
- 		
- 	{
- 	    	    
-		testdata->SetSendRecvMsgState(CTestData::EMessageSent);
-		testdata->GetStifLogger()->Log( _L("sendmessage_cb::msg sent successfully \n") );
- 
- 		//Quit the main loop , just for now
- 		g_main_loop_quit(testdata->GetMainLoop()); 
- 	}
- 	else if( testdata->GetTestType() == CTestData::ERecvBlank )
- 	{
- 	  	
- 		//Quit the main loop , just for now
- 		testdata->GetStifLogger()->Log( _L("sendmessage_cb::test case is for blank msg sending \n") );
- 		g_main_loop_quit(testdata->GetMainLoop()); 	
- 	}
- 	
- 
- 	//otherwise send message error test case, dont quit.
-
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: receivedMessage_cb
-// description     	: Callback for receive message
-//----------------------------------------------------------------------------- 
-void CTelepathyGabbleSendRecvMessage::receivedMessage_cb (  DBusGProxy* /*proxy*/,
-								guint            /* message_id */,
-							   	guint            /* timestamp */,
-							    guint           /* from_handle */,
-							    guint           /* message_type */,
-							    guint           /* message_flags */,
-							    gchar           * /*message_body */,
-							    gpointer		user_data )
-{
-	//GArray  *message_ids;
-	//GArray  *handles = NULL;
-	CTestData* testdata = static_cast<CTestData*> (user_data);
-	
-	
-	/*message_ids = g_array_new (FALSE, FALSE, sizeof (guint));
-
-	g_array_append_val (message_ids, message_id);
-
-	g_array_free (message_ids, TRUE);
-	
-	handles = g_array_new (FALSE, FALSE, sizeof (guint32));
-	
-	g_array_append_val (handles, from_handle);	
-	
-	g_array_free (handles, TRUE);*/
-	testdata->GetStifLogger()->Log( _L("receivedMessage_cb::test case is for receive msg \n") );
-	
-	if( testdata->GetTestType() == CTestData::EReceive )
-		{
-		testdata->SetSendRecvMsgState(CTestData::EMessageRecvd);
-		
-		//Quit the main loop once the receive message callback is received. 	
-	 	g_main_loop_quit(testdata->GetMainLoop());
-			
-		}
-	
-
-	
-}
-
-//-----------------------------------------------------------------------------
-// function_name	: text_channels_find_func
-// description     	: find whether the text channel 
-//										is existing given the hash table pointer
-//----------------------------------------------------------------------------- 
-gboolean CTelepathyGabbleSendRecvMessage::text_channels_find_func(	gchar* /*key*/,
-									TpChan *text_channel_ht_ptr,
-									guint *contact_handle)
-{
-	if ((text_channel_ht_ptr->handle == *contact_handle))
-	{
-		return TRUE;
-	}//else
-	return FALSE;
-} 
-
-void CTelepathyGabbleSendRecvMessage::SendError_cb (  DBusGProxy* /*proxy*/,
-								guint            error,
-							   	guint            /*timestamp*/,
-							    guint            /*message_type*/,
-							    gchar*           /*message_body*/,
-							    gpointer		user_data )
-{
-	
-	//Get the testdata
-	CTestData* testdata = static_cast<CTestData*> (user_data);
-	
-	FILE* fp;
-		
-	fp = fopen("c:\\testlogs.txt","a");
-	if(fp)
-	{
-		fprintf(fp,"error  code is %u", error);
-		fprintf(fp,"\n");
-		fclose(fp);
-	}
-
-	testdata->GetStifLogger()->Log( _L("inside SendError_cb \n") );
-	
-
-	testdata->SetSendRecvMsgState(CTestData::EMessageSendErr);		
-  	//quit the main loop
-  	g_main_loop_quit(testdata->GetMainLoop());	
-}
\ No newline at end of file
--- a/libtelepathy/tsrc/src/telepathygabbletest.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    For Stiff framework related functions
-*
-*/
-
-
-
-
-
-// INCLUDE FILES
-#include <StifTestInterface.h>
-#include "telepathygabbletest.h"
-#include <SettingServerClient.h>
-
-
-
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::CTelepathyGabbleTest
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CTelepathyGabbleTest::CTelepathyGabbleTest( 
-    CTestModuleIf& aTestModuleIf ):
-        CScriptBase( aTestModuleIf )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CTelepathyGabbleTest::ConstructL()
-    {
-    //Read logger settings to check whether test case name is to be
-    //appended to log file name.
-    RSettingServer settingServer;
-    TInt ret = settingServer.Connect();
-    if(ret != KErrNone)
-        {
-        User::Leave(ret);
-        }
-    // Struct to StifLogger settigs.
-    TLoggerSettings loggerSettings; 
-    // Parse StifLogger defaults from STIF initialization file.
-    ret = settingServer.GetLoggerSettings(loggerSettings);
-    if(ret != KErrNone)
-        {
-        User::Leave(ret);
-        } 
-    // Close Setting server session
-    settingServer.Close();
-    TFileName logFileName;
-        
-    if(loggerSettings.iAddTestCaseTitle)
-        {
-        TName title;
-        TestModuleIf().GetTestCaseTitleL(title);
-        logFileName.Format(KTelepathyGabbleTestLogFileWithTitle, &title);
-        }
-    else
-        {
-        logFileName.Copy(KTelepathyGabbleTestLogFile);
-        }
-    iLog = CStifLogger::NewL( KTelepathyGabbleTestLogPath, 
-                          logFileName,
-                          CStifLogger::ETxt,
-                          CStifLogger::EFile,
-                          EFalse );  
-	iLog->Log( _L("CTelepathyGabbleTest::Constructl after CStifLogger::NewL") );   
-	TestModuleIf().SetBehavior( CTestModuleIf::ETestLeaksMem );    
-    
-    TestModuleIf().SetBehavior( CTestModuleIf::ETestLeaksHandles ); 
-    TestModuleIf().SetBehavior( CTestModuleIf::ETestLeaksRequests  );
-	iLog->Log( _L("CTelepathyGabbleTest::Constructl out") );   
-	                               
-
-    }
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CTelepathyGabbleTest* CTelepathyGabbleTest::NewL( 
-    CTestModuleIf& aTestModuleIf )
-    {
-    CTelepathyGabbleTest* self = new (ELeave) CTelepathyGabbleTest( aTestModuleIf );
-
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-
-    }
-
-// Destructor
-CTelepathyGabbleTest::~CTelepathyGabbleTest()
-    { 
-     iLog->Log( _L("CTelepathyGabbleTest::~CTelepathyGabbleTest in") ); 
-    // Delete resources allocated from test methods
-    Delete();
-
-    iLog->Log( _L("CTelepathyGabbleTest::~CTelepathyGabbleTest out") ); 
-    // Delete logger
-    delete iLog; 
-
-    }
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// LibEntryL is a polymorphic Dll entry point.
-// Returns: CScriptBase: New CScriptBase derived object
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CScriptBase* LibEntryL( 
-    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
-    {
-
-    return ( CScriptBase* ) CTelepathyGabbleTest::NewL( aTestModuleIf );
-
-    }
-
-// -----------------------------------------------------------------------------
-// E32Dll is a DLL entry point function.
-// Returns: KErrNone
-// -----------------------------------------------------------------------------
-//
-#ifndef EKA2 // Hide Dll entry point to EKA2
-GLDEF_C TInt E32Dll(
-    TDllReason /*aReason*/) // Reason code
-    {
-    return(KErrNone);
-
-    }
-#endif // EKA2
-//  End of File
--- a/libtelepathy/tsrc/src/telepathygabbletestblocks.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4599 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Stif Test Cases Test blocks file.
-*		 RunMethodL mentions all the test cases that will be run.
-*
-*/
-
-
-
-
-
-// [INCLUDE FILES] - do not remove
-#include <e32svr.h>
-#include <StifParser.h>
-#include <StifTestInterface.h>
-#include "telepathygabbletest.h"
-#include "telepathygabbletestdata.h"
-//glib related include files
-#include <glib.h>
-#include <glib/gprintf.h>           // for g_stpcpy
-#include <string.h>
-#include <stdlib.h>
-
-#include <glowmem.h>
-
-//Login related file
-#include "telepathygabblelogintest.h"
-//Send Message related file
-#include "telepathygabblesendmessage.h"
-//AddDeleteContact related file
-#include "telepathygabbleadddeletecontact.h"
-//FetchContacts related files
-#include "telepathygabblefetchcontacts.h"
-//Search related files
-#include "telepathygabblesearch.h"
-
-
-const TInt KRepeatedMessageCount=4;
-
-
-
-typedef enum
-{
-	RC_OK,
-	RC_ERROR
-} RC_Code_t;
-
-typedef struct
-{
-	gchar *recipient;
-	gchar *message;
-} MessageData;
-
-typedef struct
-{
-	gchar      *proxy_server;
-	gchar      *proxy_port;	
-}ProxyData;
-
-typedef struct
-{
-	gchar      *key;
-	gchar      *value;	
-}SearchData;
-typedef struct
-{
-	gchar       *server;
-	gchar       *username;
-	gchar       *password;		
-	gchar       *resource;
-	MessageData *msg_data;	
-#ifdef __WINSCW__
-    ProxyData   *proxy_data;
-#endif
-    gchar       *port;
-    gchar       *ssl_flag; //needed for gizmo and gtalk.
-    SearchData  *search_data;
-
-} ConnectData;
-
-typedef struct
-{
-	ConnectData *connect_data;
-	GMainLoop   *main_loop;
-	RC_Code_t   rCode;	
-} AuthData;
-
-typedef struct
-{
-    GMainLoop *main_loop;
-    RC_Code_t Test_Success;	
-} HandleData;
-
-// Function to read data from the cfg file
-static RC_Code_t read_data ( ConnectData*& connect_data, 
-                             CStifItemParser& aItem, CStifLogger* aLog );
-                             
-// Function to free the allocated resources
-static void free_data ( ConnectData*& connect_data, CStifLogger* aLog);
-                             
-
-                             
-// ============================= LOCAL FUNCTIONS ===============================
-
-//-----------------------------------------------------------------------------
-// function_name	: read_data
-// description     	: Reads data from the CFG file
-// Returns          : None
-//-----------------------------------------------------------------------------
-//
-static RC_Code_t
-read_data ( ConnectData*& connect_data, CStifItemParser& aItem, CStifLogger* aLog )
-    {
-	TPtrC               string;
-	TBuf8<KMaxFileName> temp;
-	
-	//TBuf8<KMaxChar>		temp;
-	MessageData         *msg_data   = NULL;
-	
-	SearchData         *search_data   = NULL;
-#ifdef __WINSCW__
-	ProxyData           *proxy_data = NULL;
-#endif
-	
-	connect_data = g_new0 ( ConnectData, 1 );
-	if ( !connect_data )
-	    {
-		return RC_ERROR;
-	    }
-	    
-	msg_data = g_new0 ( MessageData, 1 );
-	if ( !msg_data )
-	    {
-		free_data (connect_data, aLog );
-		return RC_ERROR;
-	    }
-	
-	connect_data->msg_data = msg_data;
-	
-	search_data = g_new0 ( SearchData, 1 );
-	if ( !search_data )
-	    {
-		free_data (connect_data, aLog );
-		return RC_ERROR;
-	    }
-	connect_data->search_data = search_data;	    
-	
-#ifdef __WINSCW__
-    proxy_data = g_new0 ( ProxyData, 1 );
-    if ( !proxy_data ) 
-    	{
-    	free_data (connect_data, aLog );
-    	return RC_ERROR;
-    	}
-	connect_data->proxy_data = proxy_data;
-#endif
-
-	// Read server name
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-		temp.Copy ( string );
-		temp.Append ( '\0' );
-		connect_data->server = g_new0 ( gchar, temp.Length() );
-		if ( !connect_data->server )
-		    {			
-			free_data (connect_data, aLog );
-			return RC_ERROR;
-		    }
-		g_stpcpy ( connect_data->server, ( gchar * ) temp.Ptr() ); 
-	    }
-	    
-	// Read Username
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    connect_data->username = g_new0 ( gchar, temp.Length() );
-	    if ( !connect_data->username )
-	        {	    	
-	    	free_data (connect_data, aLog );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( connect_data->username, ( gchar * ) temp.Ptr() );		    
-	    }
-	
-	// Read Password corresponding to Username
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    connect_data->password = g_new0 ( gchar, temp.Length () );		    
-	    if ( !connect_data->password )
-	        {	    	
-	    	free_data (connect_data, aLog );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( connect_data->password, ( gchar *) temp.Ptr() );
-	    }
-	
-	// Read recipient
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    msg_data->recipient = g_new0 ( gchar, temp.Length() );
-	    if ( !msg_data->recipient )
-	        {
-	    	free_data (connect_data, aLog );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( msg_data->recipient, ( gchar * ) temp.Ptr() );
-	    }
-	
-	// Read Message
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );	    
-	    msg_data->message = g_new0 ( gchar, temp.Length() );
-	    if ( !msg_data->message )
-	        {
-	    	free_data (connect_data, aLog );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( msg_data->message, ( gchar * ) temp.Ptr() );
-	    }
-	
-	// Read resource identifier
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    connect_data->resource = g_new0 ( gchar, temp.Length() );
-	    if ( !connect_data->resource )
-	        {
-	    	free_data (connect_data, aLog );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( connect_data->resource, ( gchar * ) temp.Ptr() );		    
-	    }
-	 
-
-	// Read proxy server and proxy port
-    if ( aItem.GetNextString ( string ) == KErrNone )
-    	{
-    	temp.Copy ( string );
-    	temp.Append ( '\0' );
-    	#ifdef __WINSCW__
-    	proxy_data->proxy_server = g_new0 ( gchar, temp.Length() );
-    	if ( !proxy_data->proxy_server )
-    		{
-    		free_data (connect_data, aLog );
-    		return RC_ERROR;
-    		}
-    	g_stpcpy ( proxy_data->proxy_server, ( gchar * ) temp.Ptr() );
-    	#endif 
-    	}
-    	
-    if ( aItem.GetNextString ( string ) == KErrNone )
-    	{
-    	temp.Copy ( string );
-    	temp.Append ( '\0' );
-    	#ifdef __WINSCW__
-    	proxy_data->proxy_port = g_new0 ( gchar, temp.Length() );
-    	if ( !proxy_data->proxy_port )
-    		{
-    		free_data (connect_data, aLog );
-    		return RC_ERROR;
-    		}
-    	g_stpcpy ( proxy_data->proxy_port, ( gchar * ) temp.Ptr() );
-    	#endif
-    	}	
-    	
-    	/* if ( aItem.GetNextInt ( proxy_port ) == KErrNone )
-    		{
-    		proxy_data->proxy_port = proxy_port;
-    		}    	 */
-    		
-    		
-
-	//Read the port
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	{
-	temp.Copy ( string );
-	temp.Append ( '\0' );
-	connect_data->port = g_new0 ( gchar, temp.Length() );
-	if ( !connect_data->port )
-		{
-		free_data (connect_data, aLog );
-		return RC_ERROR;
-		}
-	g_stpcpy ( connect_data->port, ( gchar * ) temp.Ptr() ); 
-	}
-
-	//Read the ssl_flag value
-  	if ( aItem.GetNextString ( string ) == KErrNone )
-    {
-	temp.Copy ( string );
-	temp.Append ( '\0' );
-	connect_data->ssl_flag = g_new0 ( gchar, temp.Length() );
-	if ( !connect_data->ssl_flag )
-	    {			
-		free_data (connect_data, aLog );
-		return RC_ERROR;
-	    }
-	g_stpcpy ( connect_data->ssl_flag, ( gchar * ) temp.Ptr() ); 
-    }
-    
-    // Read key
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    search_data->key = g_new0 ( gchar, temp.Length() );
-	    if ( !search_data->key )
-	        {
-	    	free_data (connect_data, aLog );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( search_data->key, ( gchar * ) temp.Ptr() );
-	    }
-	
-	// Read value
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );	    
-	    search_data->value = g_new0 ( gchar, temp.Length() );
-	    if ( !search_data->value )
-	        {
-	    	free_data (connect_data, aLog );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( search_data->value, ( gchar * ) temp.Ptr() );
-	    }
-	
-	return RC_OK;
-    }
-    
-
-
-//-----------------------------------------------------------------------------
-// function_name	: free_data
-// description     	: Deallocates all the data
-// Returns          : None
-//-----------------------------------------------------------------------------
-//
-static void
-free_data ( ConnectData*& connect_data, CStifLogger* aLog )
-    {
-    //iLog->Log( _L("free_data\n") );
-	if ( connect_data )
-	    {
-		if ( connect_data->server )
-		    {
-		    //iLog->Log( _L("free server\n") );
-			g_free ( connect_data->server );
-			connect_data->server = NULL;
-		    }
-		
-		if ( connect_data->username )
-		    {
-		    aLog->Log( _L(" free username\n") );
-			g_free ( connect_data->username );
-			connect_data->username = NULL;
-		    }
-		
-		if ( connect_data->password )
-		    {
-		    aLog->Log( _L(" free password\n") );
-			g_free ( connect_data->password );
-			connect_data->password = NULL;
-		    }
-		
-		if ( connect_data->msg_data )
-		    {
-			if ( connect_data->msg_data->recipient )
-			    {
-			    aLog->Log( _L(" free recipient\n") );
-				g_free ( connect_data->msg_data->recipient );
-				connect_data->msg_data->recipient = NULL;
-			    }
-			if ( connect_data->msg_data->message )
-			    {
-			    aLog->Log( _L(" free message\n") );
-				g_free ( connect_data->msg_data->message );
-				connect_data->msg_data->message = NULL;
-			    }
-			g_free ( connect_data->msg_data );
-			connect_data->msg_data = NULL;
-		    }		
-		
-		if ( connect_data->resource )
-		    {
-		    aLog->Log( _L(" free resource\n") );
-			g_free ( connect_data->resource );
-			connect_data->resource = NULL;
-		    }
-		    
-	#ifdef __WINSCW__
-	    if ( connect_data->proxy_data )
-	    	{
-	    	if ( connect_data->proxy_data->proxy_server )
-	    		{
-	    		aLog->Log( _L(" free proxy_server\n") );
-	    		g_free ( connect_data->proxy_data->proxy_server );
-	    		connect_data->proxy_data->proxy_server = NULL;
-	    		}
-    		if ( connect_data->proxy_data->proxy_port )
-	    		{
-	    		aLog->Log( _L(" free proxy_port\n") );
-	    		g_free ( connect_data->proxy_data->proxy_port );
-	    		connect_data->proxy_data->proxy_port = NULL;
-	    		}
-	    	g_free ( connect_data->proxy_data );
-	    	connect_data->proxy_data = NULL;	
-	    	}
-	#endif	 
-	
-	    //port free
-	    if ( connect_data->port )
-		    {
-		    aLog->Log( _L(" free port\n") );
-			g_free ( connect_data->port );
-			connect_data->port = NULL;
-		    }
-		    
-		//ssl_flag free
-		if ( connect_data->ssl_flag )
-		    {
-		        aLog->Log( _L(" free ssl_flag\n") );
-				g_free ( connect_data->ssl_flag );
-				connect_data->ssl_flag = NULL;
-		    }
-		    
-		if ( connect_data->search_data )
-		    {
-			if ( connect_data->search_data->key )
-			    {
-			    aLog->Log( _L(" free key\n") );
-				g_free ( connect_data->search_data->key );
-				connect_data->search_data->key = NULL;
-			    }
-			if ( connect_data->search_data->value )
-			    {
-			    aLog->Log( _L(" free value\n") );
-				g_free ( connect_data->search_data->value );
-				connect_data->search_data->value = NULL;
-			    }
-			g_free ( connect_data->search_data );
-			connect_data->search_data = NULL;
-		    }
-		aLog->Log( _L(" free connect_data\n") );		    		    
-		g_free ( connect_data );
-		connect_data = NULL;    
-	    }
-	    aLog->Log( _L(" free connect_data out\n") );
-    }
-    
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::Delete
-// Delete here all resources allocated and opened from test methods. 
-// Called from destructor. 
-// -----------------------------------------------------------------------------
-//
-void CTelepathyGabbleTest::Delete() 
-    {
-    	 iLog->Log( _L("CTelepathyGabbleTest::Delete in\n") );
-	     if (iLoginObj)
-	     {
-	       	iLog->Log( _L("In Delete iLoginObj \n") );
-	     	delete iLoginObj;
-	     	iLoginObj = NULL;
-	     }
-
-		 if (iSendMsgObj)
-		 {
-		 	delete iSendMsgObj;
-		 	iSendMsgObj = NULL;
-		 }
-		 
-		 if (iAddDelContactObj)
-		 {
-		 	delete iAddDelContactObj;
-		 	iAddDelContactObj = NULL;
-		 }
-		 
-		 if (iFetchContactObj)
-		 {
-		 	delete iFetchContactObj;
-		 	iFetchContactObj = NULL;
-		 }
-		 
-		 if (iSearchObj)
-		 {
-		 	delete iSearchObj;
-		 	iSearchObj = NULL;
-		 }
-		 
-		 if (iTestData)
-		 {
-		    iLog->Log( _L("In Delete iTestData \n") );
-		 	delete iTestData;
-		 	iTestData = NULL;
-		 	
-		 }
-		 iLog->Log( _L("CTelepathyGabbleTest::Delete out\n") );
-    }
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::RunMethodL
-// Run specified method. Contains also table of test mothods and their names.
-// -----------------------------------------------------------------------------
-//
-TInt CTelepathyGabbleTest::RunMethodL( 
-    CStifItemParser& aItem ) 
-    {
-    
-    iLog->Log( _L("CTelepathyGabbleTest::RunMethodL in") );
-   
- 
-    static TStifFunctionInfo const KFunctions[] =
-        {  
-        // Copy this line for every implemented function.
-        // First string is the function name used in TestScripter script file.
-        // Second is the actual implementation member function. 
-        //ENTRY( "Example", CTelepathyGabbleTest::ExampleL ),
-        //ADD NEW ENTRY HERE
-        // [test cases entries] - Do not remove
-        
-        //Login - Logout related test cases
-        ENTRY("LoginTest", CTelepathyGabbleTest::LoginTestL ),
-        ENTRY("LogoutTest", CTelepathyGabbleTest::LogoutTestL ),
-        ENTRY("LoginInvalidUseridTest", CTelepathyGabbleTest::LoginInvalidUseridTestL ),
-        ENTRY("LoginInvalidPasswdTest", CTelepathyGabbleTest::LoginInvalidPasswdTestL ),
-        ENTRY("LoginInvalidUseridPasswdTest", CTelepathyGabbleTest::LoginInvalidUseridPasswdTestL ),
-        ENTRY("LoginblankUseridTest", CTelepathyGabbleTest::LoginblankUseridTestL ),
-        ENTRY("LoginblankPasswdTest", CTelepathyGabbleTest::LoginblankPasswdTestL ),
-        ENTRY("LoginblankUseridblankPasswdTest", CTelepathyGabbleTest::LoginblankUseridblankPasswdTestL ),
-        ENTRY("LoginWithMaxLengthUserIDTest", CTelepathyGabbleTest::LoginTestL ),
-        ENTRY("LoginWithMinLengthUserIDTest", CTelepathyGabbleTest::LoginTestL ),
-        ENTRY("LoginUseridWithSplChrsTest", CTelepathyGabbleTest::LoginInvalidUseridTestL ),
-        ENTRY("LoginCancelTest", CTelepathyGabbleTest::LoginCancelTestL ),
-        
-        
-        //Send Message related Test Cases
-        ENTRY("SendMessageTest", CTelepathyGabbleTest::SendMessageTestL ),
-        ENTRY("SendMesasgeToMaxLengthUserIDTest", CTelepathyGabbleTest::SendMessageTestL ),        
-		ENTRY("SendMesasgetoofflinecontactTest", CTelepathyGabbleTest::SendMessagetoinvalidUseridTestL ),
-        ENTRY("SendMessageWith400Test", CTelepathyGabbleTest::SendMessageWith400TestL ),
-        ENTRY("SendMesasgeBlankTest", CTelepathyGabbleTest::SendMesasgeBlankTestL ),
-        ENTRY("SendMesasgeToBlankUserIdTest", CTelepathyGabbleTest::SendMesasgeToBlankUserIdTestL ),
-        ENTRY("SendMesasgeSplCharsTest", CTelepathyGabbleTest::SendMessageTestL ),
-        ENTRY("SendMesasgeEmoticonsTest", CTelepathyGabbleTest::SendMessageTestL ),        
-        ENTRY("SendMessageRepeatedTest",CTelepathyGabbleTest:: SendMessageRepeatedTestL),        
-        ENTRY("SendMessagetoUserNotInContactListTest",CTelepathyGabbleTest:: SendMessageTestL),
-        ENTRY("SendMessagetoinvalidUseridTest",CTelepathyGabbleTest:: SendMessagetoinvalidUseridTestL),
-        
-        //Receive Message related Test Cases
-        ENTRY("ReceiveMessageTest", CTelepathyGabbleTest::ReceiveMessageTestL ),
-        ENTRY("ReceiveMessageMaxLengthTest", CTelepathyGabbleTest::ReceiveMessageMaxLengthTestL ),
-        ENTRY("ReceiveMessageWithSplChrsTest", CTelepathyGabbleTest::ReceiveMessageTestL ),  
-        ENTRY("ReceiveMessageWithEmoticonsTest", CTelepathyGabbleTest::ReceiveMessageTestL ),                
-        ENTRY("ReceiveMessageBlankTest", CTelepathyGabbleTest::ReceiveMessageBlankTestL ),
-        ENTRY("ReceiveRepeatedMessageTest", CTelepathyGabbleTest::ReceiveRepeatedMessageTestL ),
-        
-        //Add Contact related test cases
-        ENTRY("AddContactTest", CTelepathyGabbleTest::AddContactTestL ),
-        ENTRY("AddContactWithMaxLengthUserIdTest", CTelepathyGabbleTest::AddContactTestL ),
-        ENTRY("AddContactWithBlankUserIdTest", CTelepathyGabbleTest::AddContactWithBlankUserIdTestL ),       
-        ENTRY("AddContactinvalidTest", CTelepathyGabbleTest::AddContactTestL ),
-        ENTRY("AddContactinvalidWithSplCharsTest", CTelepathyGabbleTest::AddContactTestL ),
-        ENTRY("AddContactAlreadyInRosterTest", CTelepathyGabbleTest::AddContactAlreadyInRosterTestL ),
-        
-        
-        //Remove Contact related test cases
-        ENTRY("RemoveContactTest", CTelepathyGabbleTest::RemoveContactTestL ),
-        ENTRY("RemoveInvalidContactTest", CTelepathyGabbleTest::RemoveInvalidContactTestL),
-        ENTRY("RemoveContactAlreadyRemovedTest", CTelepathyGabbleTest::RemoveInvalidContactTestL ),
-        ENTRY("RemoveContactWithMaxLengthUserIDTest", CTelepathyGabbleTest::RemoveContactTestL ),
-        ENTRY("RemoveContactWithBlankUserIdTest", CTelepathyGabbleTest::RemoveContactWithBlankUserIdTestL ),       
-        
-        //Fetch Contact related test cases
-        ENTRY("FetchContactsTest", CTelepathyGabbleTest::FetchContactsTestL ),
-        ENTRY("FetchZeroContactTest", CTelepathyGabbleTest::FetchContactsTestL ),
-       
-        //Search related test cases
-        ENTRY("SearchTest", CTelepathyGabbleTest::SearchTestL ),
-        ENTRY("GetSearchKeysTest", CTelepathyGabbleTest::GetSearchKeysTestL ),
-        ENTRY("SearchInvalidKeyTest", CTelepathyGabbleTest::SearchInvalidKeyTestL ),
-        ENTRY("SearchNoKeyValueTest", CTelepathyGabbleTest::SearchNoKeyValueTestL ),
-        ENTRY("SearchTwoInvalidKeysTest", CTelepathyGabbleTest::SearchTwoInvalidKeysTestL ),        
-        ENTRY("SearchWithAllKeysTest", CTelepathyGabbleTest::SearchWithAllKeysTestL ),
-        ENTRY("SearchBlankStringTest", CTelepathyGabbleTest::SearchBlankStringTestL ),
-        ENTRY("SearchTwiceTest", CTelepathyGabbleTest::SearchTwiceTestL ),
-        ENTRY("SearchTwiceWithDiffStringsTest", CTelepathyGabbleTest::SearchTwiceWithDiffStringsTestL ),
-        ENTRY("SearchFiveTimesTest", CTelepathyGabbleTest::SearchFiveTimesTestL ),        
-        ENTRY("SearchAfterGetSearchKeys", CTelepathyGabbleTest::SearchAfterGetSearchKeysL ),
-        };
-
-    const TInt count = sizeof( KFunctions ) / 
-                        sizeof( TStifFunctionInfo );
-
-    return RunInternalL( KFunctions, count, aItem );
-
-    }
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::LoginTestL
-// Test for login.
-// -----------------------------------------------------------------------------
-//
-
-TInt CTelepathyGabbleTest::LoginTestL( 
-    CStifItemParser& aItem  )
-	{
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		iLog->Log( _L("LoginTestL starting") );
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog) != RC_OK )
-		{
-			//iLog->Log( _L("read_data failed") );
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  	proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		iTestData = CTestData::NewL(iLog);
-		
-		iLog->Log( _L("iTestData created") );
-	
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		iLog->Log( _L("iLoginObj created") );
-			
-		iTestData->SetTestType(CTestData::ELogin) ;
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, resource_login,ssl_flag,
-																port,proxy_server, proxy_port, iTestData);
-			
-		
-		iLog->Log( _L("after action_login") );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//Do the logout so that all the resources are deallocated properly
-			login_status = iLoginObj->action_logout(iTestData);
-			
-			iLog->Log( _L("after action_logout") );
-			
-			free_data (connect_data, iLog);
-			
-			iLog->Log( _L("after free_data") );
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-			iLog->Log( _L("logout failed") );
-			return KErrGeneral; 	//logout didnot happen successfully.
-			}
-			
-			//we completed login and logout successfully.
-			iLog->Log( _L("login-logout test case passed\n") );
-			
-			if (iTestData)
-			 { 	iLog->Log( _L("delete iTestData \n") );
-			 	delete iTestData;
-			 	iTestData = NULL;
-			 	
-			 }
-			 if (iLoginObj)
-		     {
-		       	iLog->Log( _L("delete iLoginObj \n") );
-		     	delete iLoginObj;
-		     	iLoginObj = NULL;
-		     }
-			return KErrNone;
-		}
-		else
-		{
-			//Login didnot happen successfully.
-			//return from here itself, no need for a logout
-			free_data (connect_data, iLog );
-			iLog->Log( _L("login test case failed") );
-			return KErrGeneral;
-		
-		}
-	
-	}
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::LoginblankUseridblankPasswdTestL
-// -----------------------------------------------------------------------------		
-TInt CTelepathyGabbleTest::LoginblankUseridblankPasswdTestL( 
-    CStifItemParser& aItem  )
-	{
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data,iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	""; //make the username as blank
-		passwd   =  ""; //make the username as blank
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  	proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-	
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		iTestData->SetTestType(CTestData::ELogin) ;
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, resource_login, ssl_flag,
-															port,proxy_server, proxy_port,iTestData);
-		
-		free_data (connect_data, iLog );
-		
-		if (login_status == CTestData::EDISCONNECTED)
-		{
-			//login_status is disconnected(default state) 
-			//which is correct since the username was blank.
-			
-			return KErrNone;
-		}
-		else
-		{
-			//There was some error
-			return KErrGeneral;
-		}
-			
-	}
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::LoginblankUseridTestL
-// -----------------------------------------------------------------------------		
-TInt CTelepathyGabbleTest::LoginblankUseridTestL( 
-    CStifItemParser& aItem  )
-	{
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data,iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	""; //make the username as blank
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  	proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-	
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		iTestData->SetTestType(CTestData::ELogin) ;
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, resource_login, ssl_flag,
-															port,proxy_server, proxy_port,iTestData);
-		
-		free_data (connect_data, iLog );
-		
-		if (login_status == CTestData::EDISCONNECTED)
-		{
-			//login_status is disconnected(default state) 
-			//which is correct since the username was blank.
-			
-			return KErrNone;
-		}
-		else
-		{
-			//There was some error
-			return KErrGeneral;
-		}
-			
-	}
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::LoginblankPasswdTestL
-// -----------------------------------------------------------------------------	
-TInt CTelepathyGabbleTest::LoginblankPasswdTestL( 
-CStifItemParser& aItem  )
-{
-	//Pass the parameters to action_login() from the 
-	//data mentioned in the cfg file.
-	
-	ConnectData  *connect_data = NULL;
-	
-	if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-	{
-		free_data ( connect_data, iLog );
-		return KErrGeneral;
-	}
-
-	char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
-	char *proxy_server = NULL;
-	char *proxy_port = NULL;
-		
-	
-	username = 	connect_data->username;
-	passwd   =  ""; //make the passwd as blank.
-	servername = 	connect_data->server;
-	resource_login = connect_data->resource;
-	ssl_flag = connect_data->ssl_flag;
-	port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-	
-	iTestData = CTestData::NewL(iLog);
-
-	iLoginObj = CTelepathyGabbleLoginTest::NewL();
-	
-	iTestData->SetTestType(CTestData::ELogin) ;
-		
-	//action_login will have parameters 
-	//passed from cfg file
-	TInt login_status = 
-		iLoginObj->action_login(username,passwd,servername, resource_login,ssl_flag,
-														port,proxy_server, proxy_port,iTestData);
-	
-	free_data (connect_data, iLog );
-	
-	if (login_status == CTestData::EDISCONNECTED)
-	{
-		//the status is disconnected which is correct since the 
-		//login didnot happen with blank passwd.
-		return KErrNone;
-	}
-	else
-	{
-		return KErrGeneral;
-	
-	}			
-}
-
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::LogoutTestL
-// Test for logout
-// -----------------------------------------------------------------------------
-TInt CTelepathyGabbleTest::LogoutTestL( 
-CStifItemParser& aItem  )
-{
-	//Pass the parameters to action_login() from the 
-	//data mentioned in the cfg file.
-	
-	ConnectData  *connect_data = NULL;
-	
-	if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-	{
-		free_data ( connect_data, iLog );
-		return KErrGeneral;
-	}
-	
-
-	char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-	char *proxy_server = NULL;
-	char *proxy_port = NULL;
-		
-	
-	username = 	connect_data->username;
-	passwd   =  connect_data->password;
-	servername = 	connect_data->server;
-	resource_login = connect_data->resource;
-	ssl_flag = connect_data->ssl_flag;
-	port = connect_data->port;
-	#ifdef __WINSCW__
-  		proxy_server = connect_data->proxy_data->proxy_server;
-		proxy_port = connect_data->proxy_data->proxy_port;
-	#endif
-		
-	
-	iTestData = CTestData::NewL(iLog);
-	
-	iLoginObj = CTelepathyGabbleLoginTest::NewL();
-	
-	iTestData->SetTestType(CTestData::ELogin);
-	
-	//action_login will have parameters 
-	//passed from cfg file
-	
-	TInt login_status = iLoginObj->action_login(username,passwd,servername, resource_login,ssl_flag,
-																							port,proxy_server, proxy_port,iTestData);
-	
-	
-	if (login_status == CTestData::ECONNECTED)
-	{
-		//If the login variable is ECONNECTED
-		//Do the Logout
-		login_status = iLoginObj->action_logout(iTestData);
-		
-	
-		if (login_status == CTestData::EDISCONNECTED)
-		{
-	
-			//the logout happened succesfully
-			free_data ( connect_data, iLog );
-			return KErrNone;
-		}
-		else 
-		{
-			//login_status is still connected, there was a problem 
-			//in logging out.
-			free_data ( connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-	}
-	else
-	{
-		//Login itself didnot happen.
-		free_data ( connect_data, iLog );
-		return KErrGeneral;
-	}
-		
-}
-
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SearchAfterGetSearchKeysL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SearchAfterGetSearchKeysL( CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *value, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		value = connect_data->msg_data->message;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		
-		iTestData->SetTestType(CTestData::EGetSearchKeys);
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			//Create the Object of Send Message class
-			iSearchObj = CTelepathyGabbleSearch::NewL();
-				
-			TInt search_state = iSearchObj->GetSearchKeysL( iTestData);
-			
-			if( search_state == CTestData::ESearchError )
-				{
-					return_value = KErrGeneral; //Error in finding search keys
-				}
-			else if( search_state == CTestData::ESearchKeysFound) 
-				{
-					return_value = KErrNone; 
-					
-					GHashTable *data_to_search = NULL;				
-					data_to_search = g_hash_table_new(g_str_hash,g_str_equal);
-					gchar **keys = iTestData->GetSearchKeys();
-				
-					iTestData->SetTestType(CTestData::ESearch);
-					for(TInt i=0; i<8 ; i++ )
-						{
-							GValue *gvalue = NULL;
-							gvalue = g_new0(GValue, 1);	
-						
-							g_value_init(gvalue, G_TYPE_STRING);
-							g_value_set_string (gvalue, g_strdup(value) );
-							g_hash_table_insert( data_to_search,keys[i], gvalue);	
-							
-						}
-					
-					search_state = iSearchObj->SearchL(data_to_search, iTestData);
-			
-					if( search_state == CTestData::ESearchError )
-						{
-							return_value = KErrGeneral; //Error in Searching
-						}
-					else if( search_state == CTestData::ESearchCompleted) 
-						{
-							return_value = KErrNone; 
-						}
-					//Free the hash table itself
-					g_hash_table_destroy ( data_to_search );
-					
-
-				}
-			iSearchObj->CloseChannel(iTestData);
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-			
-			//do this later	
-		   	/*g_hash_table_foreach_remove ( data_to_search, 
-					search_hash_remove, NULL );*/
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data ( connect_data, iLog );	
-		return return_value;
-	}
-	
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SearchWithAllKeysTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SearchWithAllKeysTestL( CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *value, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		value = connect_data->msg_data->message;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		iTestData->SetTestType(CTestData::EGetSearchKeys);
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			//Create the Object of Send Message class
-			iSearchObj = CTelepathyGabbleSearch::NewL();
-				
-			TInt search_state = iSearchObj->GetSearchKeysL( iTestData);
-			
-			if( search_state == CTestData::ESearchError )
-				{
-					return_value = KErrGeneral; //Error in finding search keys
-				}
-			else if( search_state == CTestData::ESearchKeysFound) 
-				{
-					return_value = KErrNone; 
-					
-					iTestData->SetTestType(CTestData::ESearch);
-					GHashTable *data_to_search = NULL;				
-					TInt i = 0;			
-					data_to_search = g_hash_table_new(g_str_hash,g_str_equal);
-					gchar **keys = iTestData->GetSearchKeys();
-					
-					for( i=0; i<7 ; i++ )
-						{
-							GValue *gvalue = NULL;
-							gvalue = g_new0(GValue, 1);	
-						
-							g_value_init(gvalue, G_TYPE_STRING);
-							g_value_set_string (gvalue, g_strdup(value) );
-							g_hash_table_insert( data_to_search, keys[i], gvalue);	
-							
-						}
-						
-					GValue *gvalue1 = NULL;
-					gvalue1 = g_new0(GValue, 1);	
-				
-					g_value_init(gvalue1, G_TYPE_STRING);
-					g_value_set_string (gvalue1, g_strdup("5") );
-					g_hash_table_insert( data_to_search,keys[i], gvalue1);						
-					
-					search_state = iSearchObj->SearchL(data_to_search, iTestData);
-			
-					if( search_state == CTestData::ESearchError )
-						{
-							return_value = KErrGeneral; //Error in Searching
-						}
-					else if( search_state == CTestData::ESearchCompleted) 
-						{
-							return_value = KErrNone; 
-						}
-					//Free the hash table itself
-					g_hash_table_destroy ( data_to_search );
-					g_free(keys);
-
-				}
-			iSearchObj->CloseChannel(iTestData);
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-			
-			//do this later	
-		   	/*g_hash_table_foreach_remove ( data_to_search, 
-					search_hash_remove, NULL );*/
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data ( connect_data, iLog );	
-		return return_value;
-	}
-	
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SearchBlankStringTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SearchBlankStringTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		iTestData->SetTestType(CTestData::ESearch);
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			
-			GHashTable *data_to_search = NULL;
-			
-			GValue *gvalue = NULL;
-		
-			char *key, *value;
-			
-			key = connect_data->msg_data->recipient;
-			//value = connect_data->msg_data->message;
-			//search for blank string
-			value = "";
-			
-			data_to_search = g_hash_table_new(g_str_hash,g_str_equal);	
-			
-			gvalue = g_new0(GValue, 1);	
-		
-					 
-			g_value_init(gvalue, G_TYPE_STRING);
-			g_value_set_string (gvalue, value );
-			g_hash_table_insert( data_to_search, key, gvalue);			      
-			
-		
-
-			//Create the Object of Send Message class
-			iSearchObj = CTelepathyGabbleSearch::NewL();	
-			
-			//call the SendMessage test case	
-			TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
-			
-			if( search_state == CTestData::ESearchError )
-				{
-					return_value = KErrGeneral; //Error in Searching
-				}
-			else if( search_state == CTestData::ESearchCompleted) 
-				{
-					return_value = KErrNone; 
-				}
-			iSearchObj->CloseChannel(iTestData);
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-			
-			//do this later	
-		   	/*g_hash_table_foreach_remove ( data_to_search, 
-					search_hash_remove, NULL );*/
-		
-			//Free the hash table itself
-			g_hash_table_destroy ( data_to_search );
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data ( connect_data, iLog );	
-		return return_value;
-	}
-	
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SearchTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SearchTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		iTestData->SetTestType(CTestData::ESearch);
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			
-			GHashTable *data_to_search = NULL;
-			
-			GValue *gvalue = NULL;
-		
-			char *key, *value;
-			
-			key = connect_data->msg_data->recipient;
-			value = connect_data->msg_data->message;
-			
-			data_to_search = g_hash_table_new(g_str_hash,g_str_equal);	
-			
-			gvalue = g_new0(GValue, 1);	
-		
-					 
-			g_value_init(gvalue, G_TYPE_STRING);
-			g_value_set_string (gvalue, value );
-			g_hash_table_insert( data_to_search, GetSearchLabelL(servername,key), gvalue);			      
-			
-		
-
-			//Create the Object of Send Message class
-			iSearchObj = CTelepathyGabbleSearch::NewL();	
-			
-			//call the SendMessage test case	
-			TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
-			
-			if( search_state == CTestData::ESearchError )
-				{
-					return_value = KErrGeneral; //Error in Searching
-				}
-			else if( search_state == CTestData::ESearchCompleted) 
-				{
-					return_value = KErrNone; 
-				}
-			
-			iSearchObj->CloseChannel(iTestData);
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-			
-			//do this later	
-		   	/*g_hash_table_foreach_remove ( data_to_search, 
-					search_hash_remove, NULL );*/
-		
-			//Free the hash table itself
-			g_hash_table_destroy ( data_to_search );
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data ( connect_data, iLog );	
-		return return_value;
-	}
-	
-
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SearchTwoInvalidKeysTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SearchTwoInvalidKeysTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		iTestData->SetTestType(CTestData::ESearch);
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			
-			GHashTable *data_to_search = NULL;
-			
-			GValue *gvalue1, *gvalue2 ;
-		
-			char *key1,*key2, *value1, *value2;
-			
-			key1 = connect_data->msg_data->recipient;
-			value1 = connect_data->msg_data->message;
-			
-			key2 = connect_data->search_data->key;
-			value2 = connect_data->search_data->value;
-			
-			data_to_search = g_hash_table_new(g_str_hash,g_str_equal);	
-			
-			gvalue1 = g_new0(GValue, 1);	
-			
-					 
-			g_value_init(gvalue1, G_TYPE_STRING);
-			g_value_set_string (gvalue1, value1 );
-			g_hash_table_insert( data_to_search, GetSearchLabelL(servername,key1), gvalue1);
-			
-			gvalue2 = g_new0(GValue, 1);	
-			
-					 
-			g_value_init(gvalue2, G_TYPE_STRING);
-			g_value_set_string (gvalue2, value2 );
-			g_hash_table_insert( data_to_search, GetSearchLabelL(servername,key2), gvalue2);		
-			
-			
-		
-
-			//Create the Object of Send Message class
-			iSearchObj = CTelepathyGabbleSearch::NewL();	
-			
-			//call the SendMessage test case	
-			TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
-			
-			if( search_state == CTestData::ESearchError )
-				{
-				    //Error in Searching,
-				    //as one of the search key passed is wrong
-					return_value = KErrNone; 
-				}
-			else
-				{
-					return_value = KErrGeneral; 	
-				}
-			
-			iSearchObj->CloseChannel(iTestData);		
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-			
-			//do this later	
-		   	/*g_hash_table_foreach_remove ( data_to_search, 
-					search_hash_remove, NULL );*/
-		
-			//Free the hash table itself
-			g_hash_table_destroy ( data_to_search );
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data ( connect_data, iLog );	
-		return return_value;
-	}
-	
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SearchTwiceWithDiffStringsTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SearchTwiceWithDiffStringsTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		iTestData->SetTestType(CTestData::ESearch);
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			
-			GHashTable *data_to_search_first = NULL;
-			GHashTable *data_to_search_second = NULL;	
-			
-			GValue *gvalue1, *gvalue2 ;
-		
-			char *key1,*value1, *key2, *value2;
-		
-			key1 = connect_data->msg_data->recipient;
-			value1 = connect_data->msg_data->message;
-			
-			key2 = connect_data->search_data->key;
-			value2 = connect_data->search_data->value;
-			
-			data_to_search_first = g_hash_table_new(g_str_hash,g_str_equal);	
-			
-			data_to_search_second = g_hash_table_new(g_str_hash,g_str_equal);
-			
-			gvalue1 = g_new0(GValue, 1);	
-			g_value_init(gvalue1, G_TYPE_STRING);
-			g_value_set_string (gvalue1, value1 );
-			g_hash_table_insert( data_to_search_first, GetSearchLabelL(servername,key1), gvalue1);
-			
-			gvalue2 = g_new0(GValue, 1);
-			g_value_init(gvalue2, G_TYPE_STRING);
-			g_value_set_string (gvalue2, value2 );
-			g_hash_table_insert( data_to_search_second, GetSearchLabelL(servername,key2), gvalue2);		
-			
-			
-		
-
-			//Create the Object of Send Message class
-			iSearchObj = CTelepathyGabbleSearch::NewL();	
-			
-			//call the SendMessage test case	
-			TInt search_state = iSearchObj->SearchL(data_to_search_first, iTestData);
-			
-			if( search_state == CTestData::ESearchError)
-				{
-				   return_value = KErrGeneral; 
-				}
-			else
-				{
-					search_state = iSearchObj->SearchL(data_to_search_second, iTestData);
-					if( search_state == CTestData::ESearchError )
-						{
-						return_value = KErrGeneral; //Error in Searching	
-						}
-					
-				}
-			
-			iSearchObj->CloseChannel(iTestData);		
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-			
-			//do this later	
-		   	/*g_hash_table_foreach_remove ( data_to_search, 
-					search_hash_remove, NULL );*/
-		
-			//Free the hash table itself
-			g_hash_table_destroy ( data_to_search_first );
-			g_hash_table_destroy ( data_to_search_second );	
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data ( connect_data, iLog );	
-		return return_value;
-	}
-	
-
-
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SearchNoKeyValueTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SearchNoKeyValueTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		iTestData->SetTestType(CTestData::ESearch);
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			
-			GHashTable *data_to_search = NULL;
-			
-			data_to_search = g_hash_table_new(g_str_hash,g_str_equal);	
-		
-			//Create the Object of Send Message class
-			iSearchObj = CTelepathyGabbleSearch::NewL();	
-			
-			//call the SendMessage test case	
-			TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
-			
-			if( search_state == CTestData::ESearchError )
-				{
-				    //Error in Searching,
-				    //as one of the search key passed is wrong
-					return_value = KErrNone; 
-				}
-			else
-				{
-					return_value = KErrGeneral; 	
-				}
-			iSearchObj->CloseChannel(iTestData);		
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-			
-			//do this later	
-		   	/*g_hash_table_foreach_remove ( data_to_search, 
-					search_hash_remove, NULL );*/
-		
-			//Free the hash table itself
-			g_hash_table_destroy ( data_to_search );
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data ( connect_data, iLog );	
-		return return_value;
-	}
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SearchInvalidKeyTest
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SearchInvalidKeyTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		iTestData->SetTestType(CTestData::ESearch);
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			
-			GHashTable *data_to_search = NULL;
-			
-			GValue *gvalue = NULL;
-		
-			char *key, *value;
-			
-			key = connect_data->msg_data->recipient;
-			value = connect_data->msg_data->message;
-			
-			data_to_search = g_hash_table_new(g_str_hash,g_str_equal);	
-			
-			gvalue = g_new0(GValue, 1);	
-		
-					 
-			g_value_init(gvalue, G_TYPE_STRING);
-			g_value_set_string (gvalue, value );
-			//ivalid search key..label has to be passed so no need to pass label 
-			g_hash_table_insert( data_to_search, key, gvalue);	
-		
-
-			//Create the Object of Send Message class
-			iSearchObj = CTelepathyGabbleSearch::NewL();	
-			
-			//call the SendMessage test case	
-			TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
-			
-			if( search_state == CTestData::ESearchError )
-				{
-				    //Error in Searching,
-				    //as one of the search key passed is wrong
-					return_value = KErrNone; 
-				}
-			else
-				{
-					return_value = KErrGeneral; 	
-				}
-			iSearchObj->CloseChannel(iTestData);		
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-			
-			//do this later	
-		   	/*g_hash_table_foreach_remove ( data_to_search, 
-					search_hash_remove, NULL );*/
-		
-			//Free the hash table itself
-			g_hash_table_destroy ( data_to_search );
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data (connect_data, iLog );	
-		return return_value;
-	}
-	
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::GetSearchKeysTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::GetSearchKeysTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-			{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-			}
-		iTestData->SetTestType(CTestData::EGetSearchKeys);
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			
-			//Create the Object of Send Message class
-			iSearchObj = CTelepathyGabbleSearch::NewL();	
-			
-			TInt search_state = iSearchObj->GetSearchKeysL( iTestData);
-			
-			if( search_state == CTestData::ESearchError )
-				{
-					return_value = KErrGeneral; //Error in Searching
-				}
-			else if( search_state == CTestData::ESearchKeysFound) 
-				{
-					return_value = KErrNone; 
-				}
-			iSearchObj->CloseChannel(iTestData);	
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-		
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data (connect_data, iLog );	
-		return return_value;
-	}
-	
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SendMessageTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SendMessageTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		
-		iTestData->SetTestType(CTestData::ESend);
-		
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			//Send a message
-			
-			//for sending a message
-			char *recipient_id, *msg;
-			
-			
-			
-			recipient_id = connect_data->msg_data->recipient;
-			msg = connect_data->msg_data->message;
-
-			//Create the Object of Send Message class
-			iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
-			
-		
-			
-			//call the SendMessage test case	
-			TInt sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData);
-			
-			if( sendmsg_state == CTestData::EMessageNotSent )
-				{
-				return_value = KErrGeneral; //Error in Sending message
-				}
-			else if( sendmsg_state == CTestData::EMessageSendErr ) 
-				{
-				    // error was not expected
-					return_value = KErrGeneral; 
-				}
-		    else if( sendmsg_state == CTestData::EMessageSent ) 
-				{
-					//If message sent to invalid userid or blank userid, state should EMessageSendErr
-					// This is used in case of SendMessagetoinvalidUseridTestL
-					return_value = KErrNone; 
-				}
-			
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-				//logout didnot happen successfully
-				return_value = KErrGeneral;
-			}
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data (connect_data, iLog );	
-		return return_value;
-	}
-	
-
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SendMessageRepeatedTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SendMessageRepeatedTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		
-		iTestData->SetTestType(CTestData::ESend);
-		
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			//Send a message
-			
-			//for sending a message
-			char *recipient_id, *msg;
-			
-			recipient_id = connect_data->msg_data->recipient;
-			msg = connect_data->msg_data->message;
-
-			//Create the Object of Send Message class
-			iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
-			
-			//call the SendMessage test case	
-			TInt sendmsg_state = CTestData::EMessageNotSent;
-		
-			for( TInt cnt =0 ; cnt < KRepeatedMessageCount ; cnt++ )
-			{
-				sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData);	
-				
-				if( sendmsg_state != CTestData::EMessageSent )
-					{
-					return_value = KErrGeneral; //Error in Sending message	
-					break;
-					}
-			}
-		
-				
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-				//logout didnot happen successfully
-				return_value = KErrGeneral;
-			}
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data (connect_data, iLog );	
-		return return_value;
-	}
-
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::ReceiveRepeatedMessageTestL
-// Test for login.
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::ReceiveRepeatedMessageTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-	
-		iTestData = CTestData::NewL(iLog);
-		
-		iTestData->SetTestType(CTestData::EReceive);
-	
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,
-									servername, resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData);
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//Get the contact_id and the message.
-			char *recipient_id, *msg;
-			
-			recipient_id = connect_data->msg_data->recipient;
-			msg = connect_data->msg_data->message;
-		
-		
-		  //Do the receive message test case
-		  //Create the Object of Send Message class
-		  iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
-		  
-		  TInt recvmsg_state = CTestData::EMessageNotSent;
-		
-			for( TInt cnt =0 ; cnt < KRepeatedMessageCount ; cnt++ )
-			{
-				iTestData->SetSendRecvMsgState(CTestData::EMessageNotSent);
-				recvmsg_state = iSendMsgObj->ReceiveMessage(recipient_id,msg,iTestData);	
-				
-				if( recvmsg_state != CTestData::EMessageRecvd )
-					{
-					return_value = KErrGeneral;	
-					break;
-					}
-			}
-		  		  
-		  //do the logout and the cleanup
-			login_status = iLoginObj->action_logout(iTestData);
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-				//logout didnot happen successfully
-				return_value = KErrGeneral;
-			}
-		  
-		}
-		else
-		{
-			//login didnot happen successfully
-			return_value = KErrGeneral;
-		}
-		free_data (connect_data, iLog );
-		return return_value;
-	}
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::ReceiveMessageTestL
-// Test for login.
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::ReceiveMessageTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-	
-		iTestData = CTestData::NewL(iLog);
-		
-		iTestData->SetTestType(CTestData::EReceive);
-	
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,
-									servername, resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData);
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//Get the contact_id and the message.
-			char *recipient_id, *msg;
-			
-			recipient_id = connect_data->msg_data->recipient;
-			msg = connect_data->msg_data->message;
-		
-		    iLog->Log( _L("ReceiveMessageTestL:: Logged In \n") );
-		    
-		  //Do the receive message test case
-		  //Create the Object of Send Message class
-		  iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
-		  TInt recvmsg_state = iSendMsgObj->ReceiveMessage(recipient_id,msg,iTestData);	
-		  
-		  if( recvmsg_state != CTestData::EMessageRecvd )
-				{
-				iLog->Log( _L("ReceiveMessageTestL:: receive Error \n") );
-				return_value = KErrGeneral;	
-				}
-		  //do the logout and the cleanup
-		  login_status = iLoginObj->action_logout(iTestData);
-		  if (login_status != CTestData::EDISCONNECTED)
-				{
-					iLog->Log( _L("ReceiveMessageTestL:: Logout Error \n") );
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-		  
-		}
-		else
-		{
-			//login didnot happen successfully
-			return_value = KErrGeneral;
-		}
-		free_data (connect_data, iLog );
-		return return_value;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::ReceiveMessageBlankTestL
-// Test for login.
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::ReceiveMessageBlankTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-	
-		iTestData = CTestData::NewL(iLog);
-	
-		iTestData->SetTestType(CTestData::ERecvBlank);
-		
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,
-									servername, resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData);
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			iLog->Log( _L("ReceiveMessageBlankTestL:: Logged In \n") );
-			//Get the contact_id and the message.
-			char *recipient_id, *msg;
-			
-			recipient_id = connect_data->msg_data->recipient;
-			msg = connect_data->msg_data->message;
-			
-			//Set the message to blamk string
-			msg = "";
-			
-		  //Do the receive message test case
-		  //Create the Object of Send Message class
-		  iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
-		  TInt recvmsg_state = iSendMsgObj->ReceiveMessage(recipient_id,msg,iTestData);	
-		  
-		  if( recvmsg_state == CTestData::EMessageNotSent  )
-				{
-				iLog->Log( _L("ReceiveMessageBlankTestL:: EMESSAGE_NOT_SENT \n") );
-				return_value = KErrNone; //Error in Sending message
-				}
-				  
-		    iLog->Log( _L("ReceiveMessageBlankTestL:: b4 action_logout \n") );
-		   //do the logout and the cleanup
-			login_status = iLoginObj->action_logout(iTestData);
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-				iLog->Log( _L("ReceiveMessageBlankTestL:: logout error \n") );
-				//logout didnot happen successfully
-				return_value = KErrGeneral;
-			}
-		  
-		}
-		else
-		{
-			//login didnot happen successfully
-			return_value = KErrGeneral;
-		}
-		free_data (connect_data, iLog );
-		return return_value;
-		  
-		}
-		
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::ReceiveMessageMaxLengthTestL
-// Test for login.
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::ReceiveMessageMaxLengthTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-	
-		iTestData = CTestData::NewL(iLog);
-		
-		iTestData->SetTestType(CTestData::EReceive);
-	
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,
-									servername, resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData);
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//Get the contact_id and the message.
-			char *recipient_id;
-			//char *msg;
-			
-			recipient_id = connect_data->msg_data->recipient;
-			// msg = connect_data->msg_data->message; //not required
-		
-		 //Set the message to maxlength string( with 400 chars)
-			char *max_len_msg = {"abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghij"};
-									
-		  //Do the receive message test case
-		  //Create the Object of Send Message class
-		  iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
-		  
-		  TInt recvmsg_state = iSendMsgObj->ReceiveMessage(recipient_id,max_len_msg,iTestData);	
-		  
-		  if( recvmsg_state != CTestData::EMessageRecvd )
-					{
-					return_value = KErrGeneral;	
-					}
-		   //do the logout and the cleanup
-			login_status = iLoginObj->action_logout(iTestData);
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-				//logout didnot happen successfully
-				return_value = KErrGeneral;
-			}
-		  
-		}
-		else
-		{
-			//login didnot happen successfully
-			return_value = KErrGeneral;
-		}
-		free_data (connect_data, iLog );
-		return return_value;
-		  
-		}
-		
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::LoginCancelTestL
-// Test for Cancelling the login.
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::LoginCancelTestL( 
-    CStifItemParser& aItem  )
-	{
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-		
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = 
-					iLoginObj->action_cancel(username,passwd,
-											servername, resource_login,ssl_flag,
-											port,proxy_server, proxy_port,
-											iTestData );
-		
-		free_data (connect_data, iLog );
-		
-		if (login_status == CTestData::EDISCONNECTED )
-		{
-			//i.e the login didnot happen successfully
-			//which is correct, since this is a cancel test case.
-			return KErrNone;	
-		}
-		return KErrGeneral;	 //login status must be disconnceted else an error
-	}
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::LoginInvalidUseridTestL
-// Test for login.
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::LoginInvalidUseridTestL( CStifItemParser& aItem  )
-{
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-		
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = 
-					iLoginObj->action_login(username,passwd,
-											servername, resource_login,ssl_flag,
-											port,proxy_server, proxy_port,
-											iTestData );
-		
-		free_data (connect_data, iLog );
-		
-		if (login_status == CTestData::EDISCONNECTED)
-		{
-			//i.e. login didnot happen with invalid user-id and passwd
-			return KErrNone;
-		}
-		
-		return KErrGeneral;	 //login status must be disconnceted else an error
-}
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::LoginInvalidPasswdTestL
-// Test for login.
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::LoginInvalidPasswdTestL( CStifItemParser& aItem  )
-{
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-		
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = 
-					iLoginObj->action_login(username,passwd,
-											servername, resource_login,ssl_flag,
-											port,proxy_server, proxy_port,
-											iTestData );
-		
-		free_data (connect_data, iLog );
-		
-		if (login_status == CTestData::EDISCONNECTED)
-		{
-			//i.e. login didnot happen with invalid user-id and passwd
-			return (KErrNone);
-		}
-		
-		return KErrGeneral;	 //login status must be disconnceted else an error
-}
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::LoginInvalidUseridPasswdTestL
-// Test for login.
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::LoginInvalidUseridPasswdTestL( 
-    CStifItemParser& aItem  )
-{
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-		
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = 
-					iLoginObj->action_login(username,passwd,
-											servername, resource_login,ssl_flag,
-											port,proxy_server, proxy_port,
-											iTestData );
-		
-		free_data (connect_data, iLog );
-		
-		if (login_status == CTestData::EDISCONNECTED)
-		{
-			//i.e. login didnot happen with invalid user-id and passwd
-			return KErrNone;
-		}
-		
-		return KErrGeneral;	 //login status must be disconnceted else an error
-}
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SendMessageWith400TestL
-// Test for login.
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SendMessageWith400TestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-	    ssl_flag = connect_data->ssl_flag;
-	    port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-	    
-	    iTestData = CTestData::NewL(iLog);
-	    
-	    iTestData->SetTestType(CTestData::ESend);
-	     
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login( username,passwd,
-									servername, resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			//Send a message
-			
-			//for sending a message
-			char *recipient_id;
-			
-			recipient_id = connect_data->msg_data->recipient;
-			//msg = connect_data->msg_data->message;
-			//hardcode the message of 400 characters.
-			//Set the message to maxlength string( with 400 chars)
-			char *msg = {"abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghijklmnopqrstuvwxyzabcd  \
-							abcdefghij"};
-
-			//Create the Object of Send Message class
-			iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
-			
-			//call the SendMessage test case	
-			TInt sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData );
-			
-			if( sendmsg_state == CTestData::EMessageNotSent || 
-				sendmsg_state == CTestData::EMessageSendErr  )
-				{
-				return_value = KErrGeneral; //Error in Sending message
-				}
-			else if( sendmsg_state == CTestData::EMessageSent ) 
-				{
-				    // EMessageSent was expected
-					return_value = KErrNone; 
-				}
-		   	
-		
-			//Do the logout.
-			login_status = iLoginObj->action_logout( iTestData );
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}					
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}
-		
-		
-		free_data (connect_data, iLog );	
-		return return_value;
-	}
-
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SendMesasgeToBlankUserIdTestL
-// Test for login.
-// -----------------------------------------------------------------------------
-TInt CTelepathyGabbleTest::SendMesasgeToBlankUserIdTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		
-		iTestData = CTestData::NewL(iLog);
-		
-		iTestData->SetTestType(CTestData::ESendErr);
-		
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = iLoginObj->action_login(username,passwd,
-								servername, resource_login,ssl_flag,
-								port,proxy_server, proxy_port,
-								iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			//Send a message
-			
-			//for sending a message
-			char *recipient_id, *msg;
-			
-			recipient_id = "";//hardcode the recipient for blank.
-		
-			msg = connect_data->msg_data->message;
-
-			//Create the Object of Send Message class
-			iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
-			
-			
-			//call the SendMessage test case	
-			TInt sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData);
-			
-			if( sendmsg_state == CTestData::EMessageNotSent 
-				|| sendmsg_state == CTestData::EMessageSent )
-				{
-				return_value = KErrGeneral; //Error in Sending message
-				}
-		    else if( sendmsg_state == CTestData::EMessageSendErr ) 
-				{
-					//If message sent to invalid userid or blank userid, state should EMessageSendErr
-					// This is used in case of SendMessagetoinvalidUseridTestL
-					return_value = KErrNone; 
-				}
-				
-			//Do the logout.
-			login_status = iLoginObj->action_logout(iTestData);
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-				
-			
-					
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}
-		
-		free_data (connect_data, iLog );	
-		return return_value;
-	}
-
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SendMesasgeBlankTestL
-// Test for login.
-// -----------------------------------------------------------------------------
-TInt CTelepathyGabbleTest::SendMesasgeBlankTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		
-		iTestData = CTestData::NewL(iLog);
-		
-		iTestData->SetTestType(CTestData::ESend);
-		
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = iLoginObj->action_login(username,passwd,
-								servername, resource_login,ssl_flag,
-								port,proxy_server, proxy_port,
-								iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			//Send a message
-			
-			//for sending a message
-			char *recipient_id, *msg;
-			
-			recipient_id = connect_data->msg_data->recipient;
-			//msg = connect_data->msg_data->message;
-			//hardcode the message for blank.
-			msg = "";
-
-			//Create the Object of Send Message class
-			iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
-			
-			//call the SendMessage test case	
-			TInt sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData);
-			if( sendmsg_state != CTestData::EMessageSent )
-			{
-			//There was some error while sending the message.
-			return_value = KErrGeneral;
-			}
-			
-				
-			//Do the logout.
-			login_status = iLoginObj->action_logout(iTestData);
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-				//logout didnot happen successfully
-				return_value = KErrGeneral;
-			}
-			
-			
-					
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}
-		
-		free_data (connect_data, iLog );	
-		return return_value;
-	}
-	
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SendMessagetoinvalidUseridTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SendMessagetoinvalidUseridTestL( 
-    CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		
-		iTestData->SetTestType(CTestData::ESendErr);
-		
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			//Send a message
-			
-			//for sending a message
-			char *recipient_id, *msg;
-			
-			TInt testType = iTestData->GetTestType();
-			
-			recipient_id = connect_data->msg_data->recipient;
-			msg = connect_data->msg_data->message;
-
-			//Create the Object of Send Message class
-			iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
-			
-		
-			
-			//call the SendMessage test case	
-			TInt sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData);
-			
-			if( sendmsg_state == CTestData::EMessageNotSent ||
-					sendmsg_state == CTestData::EMessageSent )
-				{
-				// EMessageSendErr was expected
-				return_value = KErrGeneral; //Error in Sending message
-				}
-		
-		    else if( sendmsg_state == CTestData::EMessageSendErr ) 
-				{
-					//If message sent to invalid userid or blank userid, state should EMessageSendErr
-					// This is used in case of SendMessagetoinvalidUseridTestL
-					return_value = KErrNone; 
-				}
-			
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-				//logout didnot happen successfully
-				return_value = KErrGeneral;
-			}
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data (connect_data, iLog );	
-		return return_value;
-	}
-	
-
-
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::RemoveContactWithBlankUserIdTestL
-// Test for removing blank userid
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::RemoveContactWithBlankUserIdTestL( 
-    CStifItemParser& aItem  )
-{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-	
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = iLoginObj->action_login(username,passwd,
-														servername, resource_login,ssl_flag,
-														port,proxy_server, proxy_port,
-														iTestData);
-		
-		
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login happened successfully.
-			//Create the AddDelete Contact class object.
-			
-			//iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
-			iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
-			
-			
-			//Get the contact_id and the message.
-			char *contact_id, *msg;
-			
-			contact_id = ""; //make the contactid as blank
-			msg = connect_data->msg_data->message;
-			
-			TInt contact_status = iAddDelContactObj->remove_contact( contact_id, msg, iTestData );
-			
-			if( contact_status == CTestData::EDELETE_FAIL )
-			{
-				return_value = KErrNone;
-			}
-			
-			//Do the logout and then return KErrNone;
-			login_status =	iLoginObj->action_logout(iTestData);
-			
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-				return_value = KErrGeneral; //logout was not successful
-			}
-			
-			free_data (connect_data, iLog );
-			return return_value;
-		}
-		
-		else
-		  {
-		  	free_data (connect_data, iLog );
-		  	return KErrGeneral;//login was not successful
-		  }
-}
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::AddContactWithBlankUserIdTestL
-// Test for Adding blank userid
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::AddContactWithBlankUserIdTestL( 
-    CStifItemParser& aItem  )
-{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-	
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = iLoginObj->action_login(username,passwd,
-														servername, resource_login,ssl_flag,
-														port,proxy_server, proxy_port,
-														iTestData);
-		
-		
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login happened successfully.
-			//Create the AddDelete Contact class object.
-			
-			//iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
-			iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
-			
-			
-			//Get the contact_id and the message.
-			char *addcontact_id, *msg;
-			
-			addcontact_id = ""; //make the contactid as blank
-			msg = connect_data->msg_data->message;
-			
-			TInt addcontact_status = iAddDelContactObj->add_contact(addcontact_id,msg, iTestData );
-			
-			if( addcontact_status == CTestData::EADD_FAIL )
-			{
-				return_value = KErrNone;
-			}
-			
-			//Do the logout and then return KErrNone;
-			login_status =	iLoginObj->action_logout(iTestData);
-			
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-				return_value = KErrGeneral; //logout was not successful
-			}
-			
-			free_data (connect_data, iLog );
-			return return_value;
-		}
-		
-		else
-		  {
-		  	free_data (connect_data, iLog );
-		  	return KErrGeneral;//login was not successful
-		  }
-}
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::AddContactTestL
-// Test for Adding Contact
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::AddContactTestL( 
-    CStifItemParser& aItem  )
-{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-	
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = iLoginObj->action_login(username,passwd,
-														servername, resource_login,ssl_flag,
-														port,proxy_server, proxy_port,
-														iTestData);
-		
-		
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login happened successfully.
-			//Create the AddDelete Contact class object.
-			
-			//iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
-			iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
-			
-			
-			//Get the contact_id and the message.
-			char *addcontact_id, *msg;
-			
-			addcontact_id = connect_data->msg_data->recipient;
-			msg = connect_data->msg_data->message;
-			
-			TInt addcontact_status = iAddDelContactObj->add_contact(addcontact_id,msg, iTestData );
-			
-			if( addcontact_status != CTestData::EADD_SUCCESS )
-			{
-				return_value = KErrGeneral;
-			}
-			
-			//Do the logout and then return KErrNone;
-			login_status =	iLoginObj->action_logout(iTestData);
-			
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-				return_value = KErrGeneral; //logout was not successful
-			}
-			
-			free_data (connect_data, iLog );
-			return return_value;
-		}
-		
-		else
-		  {
-		  	free_data (connect_data, iLog );
-		  	return KErrGeneral;//login was not successful
-		  }
-}
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::AddContactAlreadyInRosterTestL
-// Test for Adding Contact which is already added
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::AddContactAlreadyInRosterTestL( 
-    CStifItemParser& aItem  )
-{
-		TInt return_value = KErrNone;
-		
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-	
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = iLoginObj->action_login(username,passwd,
-														servername, resource_login,ssl_flag,
-														port,proxy_server, proxy_port,
-														iTestData);
-		
-		
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login happened successfully.
-			//Create the AddDelete Contact class object.
-						
-			iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
-						
-			//Get the contact_id and the message.
-			char *addcontact_id, *msg;
-			
-			addcontact_id = connect_data->msg_data->recipient;
-			msg = connect_data->msg_data->message;
-			
-			TInt addcontact_status = iAddDelContactObj->add_contact(addcontact_id,msg, iTestData );
-			
-			if( addcontact_status != CTestData::EADD_SUCCESS )
-			{
-				return_value = KErrGeneral;
-				login_status = iLoginObj->action_logout(iTestData);
-				if (login_status != CTestData::EDISCONNECTED)
-					{
-					return_value = KErrGeneral;
-			  	}
-				
-			}
-			else
-			{
-				//The function add_contact resets iAddDeleteContactStatus (in CTestData) to EADD_FAIL
-				//to check again that adding a contact already added was successful(EADD_SUCCESS)
-				//so no need to set here explicitly
-
-				
-				addcontact_status = iAddDelContactObj->add_contact(addcontact_id,msg, iTestData );
-				if( addcontact_status != CTestData::EADD_SUCCESS )
-					{
-					return_value = KErrGeneral;
-				  	}
-				login_status = iLoginObj->action_logout(iTestData);
-				if (login_status != CTestData::EDISCONNECTED)
-					{
-					return_value = KErrGeneral;
-			   		}
-			}
-			
-		free_data (connect_data, iLog );
-		return return_value;	
-	 }		
-	else
-		{ 
-			free_data (connect_data, iLog ); 
-		  return KErrGeneral;	 //login was not successful
-		}
-	
-}
-
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::RemoveContactAlreadyRemovedTestL
-// Test for removing Contact which is already removed
-// -----------------------------------------------------------------------------
-	
-TInt CTelepathyGabbleTest::RemoveContactAlreadyRemovedTestL( 
-    CStifItemParser& aItem  )
-{
-		TInt return_value = KErrNone; 
-		
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-	
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = iLoginObj->action_login(username,passwd,
-														servername, resource_login,ssl_flag,
-														port,proxy_server, proxy_port,
-														iTestData);
-		
-		
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login happened successfully.
-			//Create the AddDelete Contact class object.
-						
-			iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
-						
-			//Get the contact_id and the message.
-			char *contact_id, *msg;
-			
-			contact_id = connect_data->msg_data->recipient;
-			msg = connect_data->msg_data->message;
-			
-			TInt contact_status = iAddDelContactObj->add_contact( contact_id, msg, iTestData );
-			
-			if( contact_status != CTestData::EADD_SUCCESS )
-			{
-				iLog->Log( _L("CTelepathyGabbleTest:: contact not added successfully \n") );
-				return_value = KErrGeneral;
-				login_status = iLoginObj->action_logout(iTestData);
-				if (login_status != CTestData::EDISCONNECTED)
-					{
-					return_value = KErrGeneral;
-			  	}
-			  free_data (connect_data, iLog ); 
-		    return return_value;	
-			}
-			
-			contact_status = iAddDelContactObj->remove_contact( contact_id, msg, iTestData );
-			
-			if( contact_status != CTestData::EDELETE_SUCCESS )
-			{
-				//contact removed first time, so should be removed successfully, otherwise error
-				iLog->Log( _L("CTelepathyGabbleTest::First Time  contact not deleted successfully \n") );
-				return_value = KErrGeneral;
-				login_status = iLoginObj->action_logout(iTestData);
-				if (login_status != CTestData::EDISCONNECTED)
-					{
-					return_value = KErrGeneral;
-			  	}
-			 }
-			else
-			{
-				//The function remove_contact resets iAddDeleteContactStatus (in CTestData) to EDELETE_FAIL
-				//to check again that removing a contact already removed was not successful,
-				// so no need to set  here explicitly
-				iLog->Log( _L("CTelepathyGabbleTest::First Time  contact deleted successfully \n") );				
-				contact_status = iAddDelContactObj->remove_contact(contact_id,msg, iTestData );
-				
-			
-				// because contact to be removed was already deleted, so status should be EDELETE_FAIL
-				if( contact_status != CTestData::EDELETE_FAIL )
-					{
-					iLog->Log( _L("CTelepathyGabbleTest::Second Time deleted successfully, it should give some error \n") );
-					return_value = KErrGeneral; 
-				  	}
-				login_status = iLoginObj->action_logout(iTestData);
-				if (login_status != CTestData::EDISCONNECTED)
-					{
-						iLog->Log( _L("CTelepathyGabbleTest::Error in logout \n") );
-					return_value = KErrGeneral;
-			  		}
-			}
-			
-		free_data (connect_data, iLog );
-		return return_value;	
-	 }		
-	else
-		{ 
-			free_data (connect_data, iLog ); 
-		  return KErrGeneral;	 //login was not successful
-		}
-	
-}
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::RemoveContactTestL
-// Test for removing a contact
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::RemoveContactTestL( 
-    CStifItemParser& aItem  )
-{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-	
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = iLoginObj->action_login(username,passwd,
-											servername, resource_login,ssl_flag,
-											port,proxy_server, proxy_port,
-											iTestData );
-		
-		
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login happened successfully.
-			//Create the AddDelete Contact class object.
-			
-			
-			iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
-			
-			
-			//Get the contact_id and the message.
-			char *contact_id, *msg;
-			
-			contact_id = connect_data->msg_data->recipient;
-			msg = connect_data->msg_data->message;
-			
-			TInt removecontact_status = iAddDelContactObj->remove_contact( contact_id, msg,	iTestData);
-			
-			if( removecontact_status != CTestData::EDELETE_SUCCESS )
-			{
-				return_value = KErrGeneral;
-			}
-			
-			//Do the logout and then return KErrNone;
-			login_status =	iLoginObj->action_logout(iTestData);
-			
-			if (login_status != CTestData::EDISCONNECTED)
-			{
-				return_value = KErrGeneral; //logout was not successful
-			}
-			
-			free_data (connect_data, iLog );
-			return return_value;
-		}
-		
-		else
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-}
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::RemoveInvalidContactTestL
-// Test for removing invalid userid
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::RemoveInvalidContactTestL( 
-    CStifItemParser& aItem  )
-    
-{	
-	TInt err = RemoveContactTestL(aItem);
-	if ( err == KErrGeneral
-	 				&&	 iTestData->GetAddDeleteContactStatus() == CTestData::EDELETE_FAIL )
-	{
-		// This is correct, since the contact_id was invalid
-		return KErrNone;
-	}
-	
-	return KErrGeneral;
-	
-}
-  
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::FetchContactsTestL
-// Test for fetching contacts
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::FetchContactsTestL( 
-    CStifItemParser& aItem  )
-{
-	  TInt return_value = KErrNone;
-	  //Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data (connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-		
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-		
-		iTestData = CTestData::NewL(iLog);
-	
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-			
-		//action_login will have parameters 
-		//passed from cfg file
-		TInt login_status = 
-					iLoginObj->action_login(username,passwd,
-											servername, resource_login,ssl_flag,
-											port,proxy_server, proxy_port,
-											iTestData);
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-		
-		  	//if successfully logged in
-		  	//fetch the contacts
-		  
-		  	iFetchContactObj = CTelepathyGabbleFetchContacts::NewL();
-		  						
-			return_value = iFetchContactObj->test_request_roster( iTestData );
-			
-			//Do the logout and the cleanup.
-			login_status = iLoginObj->action_logout(iTestData);
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-				 	return_value = KErrGeneral; //there was error in logout
-				}
-		 
-		}
-		else
-		{
-			return_value = KErrGeneral; //login didn't happen successfully
-		}
-		
-		free_data (connect_data, iLog );
-		return return_value;
-			
-}
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SearchTwiceTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SearchTwiceTestL( CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		iTestData->SetTestType(CTestData::ESearch);
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			
-			GHashTable *data_to_search = NULL;
-			
-			GValue *gvalue = NULL;
-		
-			char *key, *value;
-			
-			key = connect_data->msg_data->recipient;
-			value = connect_data->msg_data->message;
-			
-			data_to_search = g_hash_table_new(g_str_hash,g_str_equal);	
-			
-			gvalue = g_new0(GValue, 1);	
-		
-					 
-			g_value_init(gvalue, G_TYPE_STRING);
-			g_value_set_string (gvalue, value );
-			g_hash_table_insert( data_to_search, GetSearchLabelL(servername,key), gvalue);			      
-			
-		
-
-			//Create the Object of Send Message class
-			iSearchObj = CTelepathyGabbleSearch::NewL();	
-			
-					
-			//call the SendMessage test case	
-			TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
-			
-			if( search_state == CTestData::ESearchError )
-				{
-					return_value = KErrGeneral; //Error in Searching
-				}
-			else if( search_state == CTestData::ESearchCompleted) 
-				{
-					search_state = iSearchObj->SearchL(data_to_search, iTestData);
-					if( search_state == CTestData::ESearchError )
-						{
-						return_value = KErrGeneral; //Error in Searching	
-						}
-					//return_value = KErrNone; 
-				}
-			
-			iSearchObj->CloseChannel(iTestData);
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-			
-			//do this later	
-		   	/*g_hash_table_foreach_remove ( data_to_search, 
-					search_hash_remove, NULL );*/
-		
-			//Free the hash table itself
-			g_hash_table_destroy ( data_to_search );
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data ( connect_data, iLog );	
-		return return_value;
-	}
-	
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::SearchFiveTimesTestL
-// -----------------------------------------------------------------------------
-
-TInt CTelepathyGabbleTest::SearchFiveTimesTestL( CStifItemParser& aItem  )
-	{
-		TInt return_value = KErrNone;
-		//Pass the parameters to action_login() from the 
-		//data mentioned in the cfg file.
-		
-		//step 1: Do the login.
-		ConnectData  *connect_data = NULL;
-		
-		if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
-		{
-			free_data ( connect_data, iLog );
-			return KErrGeneral;
-		}
-		
-
-		//for login
-		char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
-		char *proxy_server = NULL;
-		char *proxy_port = NULL;
-		
-	
-		username = 	connect_data->username;
-		passwd   =  connect_data->password;
-		servername = 	connect_data->server;
-		resource_login = connect_data->resource;
-		ssl_flag = connect_data->ssl_flag;
-		port = connect_data->port;
-		#ifdef __WINSCW__
-	  		proxy_server = connect_data->proxy_data->proxy_server;
-			proxy_port = connect_data->proxy_data->proxy_port;
-		#endif
-		
-
-		if (iTestData == NULL)
-		{
-			//Create the iTestData if it is not existing.
-			
-			iTestData = CTestData::NewL(iLog);
-		}
-		iTestData->SetTestType(CTestData::ESearch);
-		//Create the login object
-		iLoginObj = CTelepathyGabbleLoginTest::NewL();
-		
-		//action_login will have parameters 
-		//passed from cfg file
-		
-		TInt login_status = 
-			iLoginObj->action_login(username,passwd,servername, 
-									resource_login,ssl_flag,
-									port,proxy_server, proxy_port,
-									iTestData );
-		
-		if (login_status == CTestData::ECONNECTED)
-		{
-			//login was successful
-			
-			GHashTable *data_to_search = NULL;
-			
-			GValue *gvalue = NULL;
-		
-			char *key, *value;
-			
-			key = connect_data->msg_data->recipient;
-			value = connect_data->msg_data->message;
-			
-			data_to_search = g_hash_table_new(g_str_hash,g_str_equal);	
-			
-			gvalue = g_new0(GValue, 1);	
-		
-					 
-			g_value_init(gvalue, G_TYPE_STRING);
-			g_value_set_string (gvalue, value );
-			g_hash_table_insert( data_to_search, GetSearchLabelL(servername,key), gvalue);			      
-			
-		
-
-			//Create the Object of Send Message class
-			iSearchObj = CTelepathyGabbleSearch::NewL();	
-			
-			TInt search_state;	
-				
-			for(TInt i = 0; i<5 ;i++ )
-				{
-					search_state = iSearchObj->SearchL(data_to_search, iTestData);
-					if( search_state == CTestData::ESearchError )
-						{
-						return_value = KErrGeneral; //Error in Searching
-						break;	
-						}
-				}
-			iSearchObj->CloseChannel(iTestData);
-			//Do the logout
-			login_status = iLoginObj->action_logout(iTestData);
-
-			if (login_status != CTestData::EDISCONNECTED)
-				{
-					//logout didnot happen successfully
-					return_value = KErrGeneral;
-				}
-			
-			//do this later	
-		   	/*g_hash_table_foreach_remove ( data_to_search, 
-					search_hash_remove, NULL );*/
-		
-			//Free the hash table itself
-			g_hash_table_destroy ( data_to_search );
-		
-		}
-		else
-		{
-			//Login itself didnot happen.
-			return_value =  KErrGeneral;
-		}		
-		
-		free_data ( connect_data, iLog );	
-		return return_value;
-	}
-	
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::GetSearchLabelForYukonL
-// -----------------------------------------------------------------------------
-gchar* CTelepathyGabbleTest::GetSearchLabelForYukonL(gchar *search_key)
-{
-if(strcmp(search_key,"user") == 0)
-	{
-	gchar* label= "User";
-	return label;	
-	}
-else if(strcmp(search_key,"fn") == 0)
-	{
-	gchar* label= "Full Name";
-	return label;	
-	}	
-else if(strcmp(search_key,"first") == 0)
-	{
-	gchar* label= "Name";
-	return label;	
-	}	
-else if(strcmp(search_key,"middle") == 0)
-	{
-	gchar* label= "Middle Name";
-	return label;	
-	}		
-else if(strcmp(search_key,"last") == 0)
-	{
-	gchar* label= "Family Name";
-	return label;	
-	}
-else if(strcmp(search_key,"nick") == 0)
-	{
-	gchar* label= "Nickname";
-	return label;	
-	}
-else if(strcmp(search_key,"email") == 0)
-	{
-	gchar* label= "Email";
-	return label;	
-	}	
-else if(strcmp(search_key,"bday") == 0)
-	{
-	gchar* label= "Birthday";
-	return label;	
-	}	
-else if(strcmp(search_key,"ctry") == 0)
-	{
-	gchar* label= "Country";
-	return label;	
-	}		
-else if(strcmp(search_key,"orgname") == 0)
-	{
-	gchar* label= "Organization Name";
-	return label;	
-	}
-else if(strcmp(search_key,"locality") == 0)
-	{
-	gchar* label= "City";
-	return label;	
-	}
-else if(strcmp(search_key,"orgunit") == 0)
-	{
-	gchar* label= "Organization Unit";
-	return label;	
-	}			
-}
-
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::GetSearchLabelForGizmoL
-// -----------------------------------------------------------------------------
-gchar* CTelepathyGabbleTest::GetSearchLabelForGizmoL(gchar *search_key)
-{
-if(strcmp(search_key,"xmpp_user") == 0)
-	{
-	gchar* label= "Account Name";
-	return label;	
-	}
-else if(strcmp(search_key,"email_address") == 0)
-	{
-	gchar* label= "Email Address";
-	return label;	
-	}	
-else if(strcmp(search_key,"first_name") == 0)
-	{
-	gchar* label= "First Name";
-	return label;	
-	}	
-else if(strcmp(search_key,"last_name") == 0)
-	{
-	gchar* label= "Family Name";
-	return label;	
-	}
-else if(strcmp(search_key,"country") == 0)
-	{
-	gchar* label= "Country";
-	return label;	
-	}		
-else if(strcmp(search_key,"state") == 0)
-	{
-	gchar* label= "State/Province";
-	return label;	
-	}
-else if(strcmp(search_key,"city") == 0)
-	{
-	gchar* label= "City";
-	return label;	
-	}
-else if(strcmp(search_key,"max_results") == 0)
-	{
-	gchar* label= "Maximum # of Results";
-	return label;	
-	}			
-}
-
-// -----------------------------------------------------------------------------
-// CTelepathyGabbleTest::GetSearchLabelL
-// -----------------------------------------------------------------------------
-gchar* CTelepathyGabbleTest::GetSearchLabelL(gchar* aService,gchar* aSearchKey)
-{
-if(strcmp(aService,"chat.gizmoproject.com") == 0)
-	{
-	GetSearchLabelForGizmoL(aSearchKey);	
-	}
-else if(strcmp(aService,"chat.ovi.com") == 0 )
-	{
-	GetSearchLabelForYukonL(aSearchKey);	
-	}
-}
-	
-  	
-
-/** 
-* Free function for the  hash key/value pairs
-*/
-/*gboolean search_hash_remove( gpointer key, gpointer value,
-                      gpointer user_data ) 
-	{
-
-	//Free function for the  hash values
-	if ( key ) 
-		{
-		free( key );
-		}
-	if ( value ) 
-		{
-		free ( value );
-		}
-	
-	return TRUE;
-	}
-*/
-//End of File
\ No newline at end of file
--- a/libtelepathy/tsrc/src/telepathygabbletestdata.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,514 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    File containing Test Data at the global level (used by different test objects)
-*
-*/
-
-
-
-
-// INCLUDE FILES
-#include "telepathygabbletestdata.h"
-#include <StifLogger.h>
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: Constructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-
-CTestData::CTestData(CStifLogger *aLogger)
-	: iLogger(aLogger)
-    {
-    }
-    
-//-----------------------------------------------------------------------------
-// function_name	: ConstructL
-// description     	: Constructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-
-void CTestData::ConstructL()
-	{
-	iConnectionState = EDISCONNECTED; //default.
-	iTestType = EOther;
-	//Create the mainloop and also add the callback.
-	iMainLoop = g_main_loop_new (NULL, FALSE);
-	iSendRecvState = EMessageNotSent;
-	iAddDeleteContactStatus = EADD_FAIL;
-	iSearchState = ESearchStarted;
-	iSearchKeys = g_new0( gchar*, 1);
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: NewL
-// description     	: Constructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-CTestData* CTestData::NewL(CStifLogger *aLogger)
-    {
-    
-	CTestData* self = new(ELeave) CTestData(aLogger);
-    CleanupStack::PushL( self );
-    self->ConstructL();    
-    CleanupStack::Pop();
-    return self;
-    }
-
-//-----------------------------------------------------------------------------
-// function_name	: ~CTestData
-// description     	: destructor
-// Returns          : None
-//-----------------------------------------------------------------------------
-CTestData::~CTestData()
-    {
-      
-   	if( iLogger )
-	    {
-	     iLogger->Log( _L("~CTestData in\n") );
-	    }
-    //Destroy the hash table for text channels
-    
-    if( iTextChannelHashTable )
-	    {
-	    g_hash_table_destroy( iTextChannelHashTable );
-	  	iTextChannelHashTable = NULL;
-	    }
-   
-     //Dbus connection object
-    if( iDBusConnection )
-	   	{
-	   	dbus_g_connection_unref (iDBusConnection); 
-	   	iDBusConnection = NULL;	
-	   	}
-   
-    if( iTpConnMgr )
-	   	{
-	   	g_object_unref (iTpConnMgr);
-	   	iTpConnMgr = NULL;	
-	   	}
-	   	
-   	//tp conn object
-   	if( iTpConn )
-	   	{
-	   	g_object_unref (iTpConn);
-	   	iTpConn = NULL;	
-	   	}
-
-	//main loop
-	if( iMainLoop )
-	   	{
-	   	 g_main_loop_unref ( iMainLoop );  
-	   	iMainLoop = NULL;	
-	   	}
-	   	
-		 
-    if( iSearchKeys )
-	  {
-	  	for( TInt i=0; iSearchKeys[i]; i++ )
-			{
-			g_free( iSearchKeys[i] );
-			iSearchKeys[i] = NULL;
-			}
-	  	g_free( iSearchKeys );
-	  	iSearchKeys = NULL;	
-	  }
-     
-    if( iLogger )
-	    {
-	     iLogger->Log( _L("~CTestData out\n") );
-	    }
-    }
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetStifLogger
-//-----------------------------------------------------------------------------
-
-CStifLogger* CTestData::GetStifLogger()
-	{
-	return iLogger;	
-	}
-
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetMainLoop
-//-----------------------------------------------------------------------------
-
-GMainLoop* CTestData::GetMainLoop()
-	{
-	return iMainLoop;	
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetGroupSubscribeInterface
-//-----------------------------------------------------------------------------
-
-DBusGProxy* CTestData::GetGroupSubscribeInterface()
-	{
-	return iGroupSubscribeInterface;	
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetGroupKnownInterface
-//-----------------------------------------------------------------------------
-
-DBusGProxy* CTestData::GetGroupKnownInterface()
-	{
-	return iGroupKnownInterface;	
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetGroupPublishInterface
-//-----------------------------------------------------------------------------
-
-DBusGProxy* CTestData::GetGroupPublishInterface()
-	{
-	return iGroupPublishInterface;	
-	}
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetGroupDenyInterface
-//-----------------------------------------------------------------------------
-
-DBusGProxy* CTestData::GetGroupDenyInterface()
-	{
-	return iGroupDenyInterface;	
-	}
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetTextChannelsHT
-//-----------------------------------------------------------------------------
-
-GHashTable* CTestData::GetTextChannelsHT()
-	{
-	return iTextChannelHashTable;	
-	} 
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: SetGroupSubscribeInterface
-//-----------------------------------------------------------------------------
-
-void CTestData::SetGroupSubscribeInterface( DBusGProxy* aGroupSubscribeInterface )
-	{
-	iGroupSubscribeInterface = aGroupSubscribeInterface;	
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetGroupKnownInterface
-//-----------------------------------------------------------------------------
-
-void CTestData::SetGroupKnownInterface( DBusGProxy* aGroupKnownInterface )
-	{
-	iGroupKnownInterface = aGroupKnownInterface;	
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetGroupPublishInterface
-//-----------------------------------------------------------------------------
-
-void  CTestData::SetGroupPublishInterface( DBusGProxy* aGroupPublishInterface )
-	{
-	iGroupPublishInterface = aGroupPublishInterface;	
-	}
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetGroupDenyInterface
-//-----------------------------------------------------------------------------
-void CTestData::SetGroupDenyInterface(DBusGProxy*  aGroupDenyInterface)
-	{
-	iGroupDenyInterface = aGroupDenyInterface;	
-	}
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetTextChannelsHT
-//-----------------------------------------------------------------------------
-
-void CTestData::SetTextChannelsHT( GHashTable*  aTextChannelHashTable )
-	{
-	iTextChannelHashTable = aTextChannelHashTable;	
-	} 
-
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: GetDBusConnection
-//-----------------------------------------------------------------------------
-DBusGConnection* CTestData::GetDBusConnection()
-	{
-	return iDBusConnection;
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-// description     	: SetDBusConnection
-//-----------------------------------------------------------------------------
-void CTestData::SetDBusConnection( DBusGConnection* aDBusConnection )
-	{
-	iDBusConnection = aDBusConnection;
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : GetTpConn
-//-----------------------------------------------------------------------------
-
-TpConn* CTestData::GetTpConn()
-	{
-	return iTpConn;
-	}	 
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : SetTpConn
-//-----------------------------------------------------------------------------
-
-void CTestData::SetTpConn(TpConn* aTpConn)
-	{
-	 iTpConn = aTpConn;
-	}	 
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : SetTpConnMgr
-//-----------------------------------------------------------------------------
-
-void CTestData::SetTpConnMgr(TpConnMgr* aTpConnMgr)
-	{
-	 iTpConnMgr = aTpConnMgr;
-	}
-
-	 
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : GetLoginCompleteFlag
-//-----------------------------------------------------------------------------
-
-TInt CTestData::GetLoginCompleteFlag()
-	{
-	return iLoginComplete;
-	}	 
-
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : IncLoginCompleteFlag
-//-----------------------------------------------------------------------------
-
-void CTestData::IncLoginCompleteFlag()
-	{
-	iLoginComplete++;
-	}	 
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : ResetLoginCompleteFlag
-//-----------------------------------------------------------------------------
-
-void CTestData::ResetLoginCompleteFlag()
-	{
-	iLoginComplete = 0;
-	}
- 
- 
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : GetTotalFetchCount
-//-----------------------------------------------------------------------------
-
-TInt CTestData::GetTotalFetchCount()
-	{
-	return iTotalFetchCount;
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : GetLastIndexInFetch
-//-----------------------------------------------------------------------------
-
-TInt CTestData::GetLastIndexInFetch()
-	{
-	return iLastIndex;
-	}
-	
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : SetLastIndexInFetch
-//-----------------------------------------------------------------------------
-
-void CTestData::SetLastIndexInFetch( TInt aLastIndex )
-	{
-	iLastIndex = aLastIndex;
-	}
-		
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : SetTotalFetchCount
-//-----------------------------------------------------------------------------
-
-void CTestData::SetTotalFetchCount(TInt aValue)
-	{
-	iTotalFetchCount = aValue;
-	}
-	
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : GetTotalFetchCount
-//-----------------------------------------------------------------------------
-
-CTestData::TConnectionState CTestData::GetConnectionState()
-	{
-	return iConnectionState;
-	}
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : SetTotalFetchCount
-//-----------------------------------------------------------------------------
-
-void CTestData::SetConnectionState(TConnectionState aConnectionState)
-	{
-	iConnectionState = aConnectionState;
-	}
-	
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : GetTotalFetchCount
-//-----------------------------------------------------------------------------
-
-CTestData::TSendRecvState CTestData::GetSendRecvMsgState()
-	{
-	return iSendRecvState;
-	}
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : SetTotalFetchCount
-//-----------------------------------------------------------------------------
-
-void CTestData::SetSendRecvMsgState(TSendRecvState aSendRecvState)
-	{
-	iSendRecvState = aSendRecvState;
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : GetTotalFetchCount
-//-----------------------------------------------------------------------------
-
-CTestData::TAddDeleteContactStatus CTestData::GetAddDeleteContactStatus()
-	{
-	return iAddDeleteContactStatus;
-	}
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : SetTotalFetchCount
-//-----------------------------------------------------------------------------
-
-void CTestData::SetAddDeleteContactStatus(TAddDeleteContactStatus aAddDeleteContactStatus)
-	{
-	iAddDeleteContactStatus = aAddDeleteContactStatus;
-	}
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : GetSearchState
-//-----------------------------------------------------------------------------
-
-CTestData::TSearchState CTestData::GetSearchState()
-	{
-	return iSearchState;
-	}
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : SetSearchState
-//-----------------------------------------------------------------------------
-
-void CTestData::SetSearchState(TSearchState aSearchState)
-	{
-	iSearchState = aSearchState;
-	}	
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : GetTestType
-//-----------------------------------------------------------------------------
-
-CTestData::TTestType CTestData::GetTestType( )
-	{
-	return iTestType;
-	}	
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : SetTestType
-//-----------------------------------------------------------------------------
-
-void CTestData::SetTestType(TTestType aTestType)
-	{
-	iTestType = aTestType;
-	}	
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : SetSearchKeys
-//-----------------------------------------------------------------------------
-
-void CTestData::SetSearchKeys( gchar **aKeys )
-	{
-	TInt i = 0;
-	for( i=0; aKeys[i]; i++ )
-		{
-		iSearchKeys[i] = g_strdup(aKeys[i]);	
-		}
-	iSearchKeys[i] = aKeys[i];	
-	}
-	
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : GetSearchKeys
-//-----------------------------------------------------------------------------
-
-gchar** CTestData::GetSearchKeys( )
-	{
-	return iSearchKeys;	
-	}	
-
-
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : SetSearchChan
-//-----------------------------------------------------------------------------
-
-void CTestData::SetSearchChan(TpChan *aSearchChan )
-	{
-	iSearchChan = aSearchChan;
-	}	
-	
-//-----------------------------------------------------------------------------
-// function_name	: CTestData
-/// description     : GetSearchChan
-//-----------------------------------------------------------------------------
-
-TpChan* CTestData::GetSearchChan( )
-	{
-	return iSearchChan;
-	}	
-		
-	
-//End of File						
\ No newline at end of file
--- a/libtelepathy/tsrc/src/telepathygabbleutils.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
-* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    File containing Utility functions
-*
-*/
-
-
-
-
-
-//Include files
-#include <e32err.h>
-#include <e32const.h>
-#include <e32base.h>
-
-#include <glib.h>
-
-#include "telepathygabbletestdata.h"
-#include "telepathygabbleutils.h"
-
-
-
-
-//-----------------------------------------------------------------------------
-// function_name	: CTelepathyGabbleUtils
-// description     	: constructor
-//----------------------------------------------------------------------------- 
-guint CTelepathyGabbleUtils::get_handle_from_contact ( const gchar  *contact_id,
-														CTestData* aTestData)
-	 
-{
-
-	guint          handle;
-	gboolean       success;
-	GError        *error = NULL;
-	
-	
-	//check for the return value if 0 is ok or should some negative value to be passed
-	g_return_val_if_fail (contact_id != NULL, 0); 
-	
-	GArray      *handles = NULL;	
-	const gchar *contact_ids[2] ; //contact_ids initialization here gives error ..may be some compiler issue as otherwise okay to initialze here
-	
-	
-	contact_ids[0]= contact_id;
-	contact_ids[1]= NULL;
-	
-
-	success = tp_conn_request_handles (DBUS_G_PROXY (aTestData->GetTpConn()),
-					   TP_CONN_HANDLE_TYPE_CONTACT,
-					   contact_ids, &handles, &error);
-	if( !handles || error )	
-	{
-	 	//do some error handling here
-	 	
-	 	g_error_free(error);
-	 	return KErrNotFound; 
-	}				   
-						   
-
-	handle = g_array_index(handles, guint, 0);
-	g_array_free (handles, TRUE);
-	
-
-	if (!success) 
-	{
-		//test_log_handler ( error->message );
-		g_clear_error (&error);
-		
-		//check for the return value if 0 is ok or should some negative value to be passed
-		return 0;
-	}
-
-	return handle;
-}
-
-//  End of File
--- a/loudmouth/bwins/loudmouthu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-EXPORTS
-	lm_connection_authenticate @ 1 NONAME
-	lm_connection_authenticate_and_block @ 2 NONAME
-	lm_connection_cancel_open @ 3 NONAME
-	lm_connection_close @ 4 NONAME
-	lm_connection_get_full_jid @ 5 NONAME
-	lm_connection_get_jid @ 6 NONAME
-	lm_connection_get_keep_alive_rate @ 7 NONAME
-	lm_connection_get_local_host @ 8 NONAME
-	lm_connection_get_port @ 9 NONAME
-	lm_connection_get_proxy @ 10 NONAME
-	lm_connection_get_server @ 11 NONAME
-	lm_connection_get_ssl @ 12 NONAME
-	lm_connection_get_state @ 13 NONAME
-	lm_connection_is_authenticated @ 14 NONAME
-	lm_connection_is_open @ 15 NONAME
-	lm_connection_new @ 16 NONAME
-	lm_connection_new_with_context @ 17 NONAME
-	lm_connection_open @ 18 NONAME
-	lm_connection_open_and_block @ 19 NONAME
-	lm_connection_ref @ 20 NONAME
-	lm_connection_register_message_handler @ 21 NONAME
-	lm_connection_send @ 22 NONAME
-	lm_connection_send_raw @ 23 NONAME
-	lm_connection_send_with_reply @ 24 NONAME
-	lm_connection_send_with_reply_and_block @ 25 NONAME
-	lm_connection_set_disconnect_function @ 26 NONAME
-	lm_connection_set_jid @ 27 NONAME
-	lm_connection_set_keep_alive_rate @ 28 NONAME
-	lm_connection_set_port @ 29 NONAME
-	lm_connection_set_proxy @ 30 NONAME
-	lm_connection_set_server @ 31 NONAME
-	lm_connection_set_ssl @ 32 NONAME
-	lm_connection_unref @ 33 NONAME
-	lm_connection_unregister_message_handler @ 34 NONAME
-	lm_error_quark @ 35 NONAME
-	lm_message_get_node @ 36 NONAME
-	lm_message_get_sub_type @ 37 NONAME
-	lm_message_get_type @ 38 NONAME
-	lm_message_handler_invalidate @ 39 NONAME
-	lm_message_handler_is_valid @ 40 NONAME
-	lm_message_handler_new @ 41 NONAME
-	lm_message_handler_ref @ 42 NONAME
-	lm_message_handler_unref @ 43 NONAME
-	lm_message_new @ 44 NONAME
-	lm_message_new_with_sub_type @ 45 NONAME
-	lm_message_node_add_child @ 46 NONAME
-	lm_message_node_find_child @ 47 NONAME
-	lm_message_node_get_attribute @ 48 NONAME
-	lm_message_node_get_child @ 49 NONAME
-	lm_message_node_get_raw_mode @ 50 NONAME
-	lm_message_node_get_value @ 51 NONAME
-	lm_message_node_ref @ 52 NONAME
-	lm_message_node_set_attribute @ 53 NONAME
-	lm_message_node_set_attributes @ 54 NONAME
-	lm_message_node_set_raw_mode @ 55 NONAME
-	lm_message_node_set_value @ 56 NONAME
-	lm_message_node_to_string @ 57 NONAME
-	lm_message_node_unref @ 58 NONAME
-	lm_message_ref @ 59 NONAME
-	lm_message_unref @ 60 NONAME
-	lm_parser_free @ 61 NONAME
-	lm_parser_new @ 62 NONAME
-	lm_parser_parse @ 63 NONAME
-	lm_proxy_get_password @ 64 NONAME
-	lm_proxy_get_port @ 65 NONAME
-	lm_proxy_get_server @ 66 NONAME
-	lm_proxy_get_type @ 67 NONAME
-	lm_proxy_get_username @ 68 NONAME
-	lm_proxy_new @ 69 NONAME
-	lm_proxy_new_with_server @ 70 NONAME
-	lm_proxy_ref @ 71 NONAME
-	lm_proxy_set_password @ 72 NONAME
-	lm_proxy_set_port @ 73 NONAME
-	lm_proxy_set_server @ 74 NONAME
-	lm_proxy_set_type @ 75 NONAME
-	lm_proxy_set_username @ 76 NONAME
-	lm_proxy_unref @ 77 NONAME
-	lm_sha_hash @ 78 NONAME
-	lm_ssl_get_fingerprint @ 79 NONAME
-	lm_ssl_is_supported @ 80 NONAME
-	lm_ssl_new @ 81 NONAME
-	lm_ssl_ref @ 82 NONAME
-	lm_ssl_unref @ 83 NONAME
-	lm_ssl_use_starttls @ 84 NONAME
-	lm_utils_get_localtime @ 85 NONAME
-
--- a/loudmouth/bwinscw/loudmouthu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-EXPORTS
-	lm_connection_authenticate @ 1 NONAME
-	lm_connection_authenticate_and_block @ 2 NONAME
-	lm_connection_cancel_open @ 3 NONAME
-	lm_connection_close @ 4 NONAME
-	lm_connection_get_jid @ 5 NONAME
-	lm_connection_get_port @ 6 NONAME
-	lm_connection_get_proxy @ 7 NONAME
-	lm_connection_get_server @ 8 NONAME
-	lm_connection_get_ssl @ 9 NONAME
-	lm_connection_get_state @ 10 NONAME
-	lm_connection_is_authenticated @ 11 NONAME
-	lm_connection_is_open @ 12 NONAME
-	lm_connection_new @ 13 NONAME
-	lm_connection_new_with_context @ 14 NONAME
-	lm_connection_open @ 15 NONAME
-	lm_connection_open_and_block @ 16 NONAME
-	lm_connection_ref @ 17 NONAME
-	lm_connection_register_message_handler @ 18 NONAME
-	lm_connection_send @ 19 NONAME
-	lm_connection_send_raw @ 20 NONAME
-	lm_connection_send_with_reply @ 21 NONAME
-	lm_connection_send_with_reply_and_block @ 22 NONAME
-	lm_connection_set_disconnect_function @ 23 NONAME
-	lm_connection_set_jid @ 24 NONAME
-	lm_connection_set_keep_alive_rate @ 25 NONAME
-	lm_connection_set_port @ 26 NONAME
-	lm_connection_set_proxy @ 27 NONAME
-	lm_connection_set_server @ 28 NONAME
-	lm_connection_set_ssl @ 29 NONAME
-	lm_connection_unref @ 30 NONAME
-	lm_connection_unregister_message_handler @ 31 NONAME
-	lm_error_quark @ 32 NONAME
-	lm_message_get_node @ 33 NONAME
-	lm_message_get_sub_type @ 34 NONAME
-	lm_message_get_type @ 35 NONAME
-	lm_message_handler_invalidate @ 36 NONAME
-	lm_message_handler_is_valid @ 37 NONAME
-	lm_message_handler_new @ 38 NONAME
-	lm_message_handler_ref @ 39 NONAME
-	lm_message_handler_unref @ 40 NONAME
-	lm_message_new @ 41 NONAME
-	lm_message_new_with_sub_type @ 42 NONAME
-	lm_message_node_add_child @ 43 NONAME
-	lm_message_node_find_child @ 44 NONAME
-	lm_message_node_get_attribute @ 45 NONAME
-	lm_message_node_get_child @ 46 NONAME
-	lm_message_node_get_raw_mode @ 47 NONAME
-	lm_message_node_get_value @ 48 NONAME
-	lm_message_node_ref @ 49 NONAME
-	lm_message_node_set_attribute @ 50 NONAME
-	lm_message_node_set_attributes @ 51 NONAME
-	lm_message_node_set_raw_mode @ 52 NONAME
-	lm_message_node_set_value @ 53 NONAME
-	lm_message_node_to_string @ 54 NONAME
-	lm_message_node_unref @ 55 NONAME
-	lm_message_ref @ 56 NONAME
-	lm_message_unref @ 57 NONAME
-	lm_parser_free @ 58 NONAME
-	lm_parser_new @ 59 NONAME
-	lm_parser_parse @ 60 NONAME
-	lm_proxy_get_password @ 61 NONAME
-	lm_proxy_get_port @ 62 NONAME
-	lm_proxy_get_server @ 63 NONAME
-	lm_proxy_get_type @ 64 NONAME
-	lm_proxy_get_username @ 65 NONAME
-	lm_proxy_new @ 66 NONAME
-	lm_proxy_new_with_server @ 67 NONAME
-	lm_proxy_ref @ 68 NONAME
-	lm_proxy_set_password @ 69 NONAME
-	lm_proxy_set_port @ 70 NONAME
-	lm_proxy_set_server @ 71 NONAME
-	lm_proxy_set_type @ 72 NONAME
-	lm_proxy_set_username @ 73 NONAME
-	lm_proxy_unref @ 74 NONAME
-	lm_sha_hash @ 75 NONAME
-	lm_ssl_get_fingerprint @ 76 NONAME
-	lm_ssl_is_supported @ 77 NONAME
-	lm_ssl_new @ 78 NONAME
-	lm_ssl_ref @ 79 NONAME
-	lm_ssl_unref @ 80 NONAME
-	lm_utils_get_localtime @ 81 NONAME
-
--- a/loudmouth/eabi/loudmouthu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-EXPORTS
-	lm_connection_authenticate @ 1 NONAME
-	lm_connection_authenticate_and_block @ 2 NONAME
-	lm_connection_cancel_open @ 3 NONAME
-	lm_connection_close @ 4 NONAME
-	lm_connection_get_jid @ 5 NONAME
-	lm_connection_get_port @ 6 NONAME
-	lm_connection_get_proxy @ 7 NONAME
-	lm_connection_get_server @ 8 NONAME
-	lm_connection_get_ssl @ 9 NONAME
-	lm_connection_get_state @ 10 NONAME
-	lm_connection_is_authenticated @ 11 NONAME
-	lm_connection_is_open @ 12 NONAME
-	lm_connection_new @ 13 NONAME
-	lm_connection_new_with_context @ 14 NONAME
-	lm_connection_open @ 15 NONAME
-	lm_connection_open_and_block @ 16 NONAME
-	lm_connection_ref @ 17 NONAME
-	lm_connection_register_message_handler @ 18 NONAME
-	lm_connection_send @ 19 NONAME
-	lm_connection_send_raw @ 20 NONAME
-	lm_connection_send_with_reply @ 21 NONAME
-	lm_connection_send_with_reply_and_block @ 22 NONAME
-	lm_connection_set_disconnect_function @ 23 NONAME
-	lm_connection_set_jid @ 24 NONAME
-	lm_connection_set_keep_alive_rate @ 25 NONAME
-	lm_connection_set_port @ 26 NONAME
-	lm_connection_set_proxy @ 27 NONAME
-	lm_connection_set_server @ 28 NONAME
-	lm_connection_set_ssl @ 29 NONAME
-	lm_connection_unref @ 30 NONAME
-	lm_connection_unregister_message_handler @ 31 NONAME
-	lm_error_quark @ 32 NONAME
-	lm_message_get_node @ 33 NONAME
-	lm_message_get_sub_type @ 34 NONAME
-	lm_message_get_type @ 35 NONAME
-	lm_message_handler_invalidate @ 36 NONAME
-	lm_message_handler_is_valid @ 37 NONAME
-	lm_message_handler_new @ 38 NONAME
-	lm_message_handler_ref @ 39 NONAME
-	lm_message_handler_unref @ 40 NONAME
-	lm_message_new @ 41 NONAME
-	lm_message_new_with_sub_type @ 42 NONAME
-	lm_message_node_add_child @ 43 NONAME
-	lm_message_node_find_child @ 44 NONAME
-	lm_message_node_get_attribute @ 45 NONAME
-	lm_message_node_get_child @ 46 NONAME
-	lm_message_node_get_raw_mode @ 47 NONAME
-	lm_message_node_get_value @ 48 NONAME
-	lm_message_node_ref @ 49 NONAME
-	lm_message_node_set_attribute @ 50 NONAME
-	lm_message_node_set_attributes @ 51 NONAME
-	lm_message_node_set_raw_mode @ 52 NONAME
-	lm_message_node_set_value @ 53 NONAME
-	lm_message_node_to_string @ 54 NONAME
-	lm_message_node_unref @ 55 NONAME
-	lm_message_ref @ 56 NONAME
-	lm_message_unref @ 57 NONAME
-	lm_parser_free @ 58 NONAME
-	lm_parser_new @ 59 NONAME
-	lm_parser_parse @ 60 NONAME
-	lm_proxy_get_password @ 61 NONAME
-	lm_proxy_get_port @ 62 NONAME
-	lm_proxy_get_server @ 63 NONAME
-	lm_proxy_get_type @ 64 NONAME
-	lm_proxy_get_username @ 65 NONAME
-	lm_proxy_new @ 66 NONAME
-	lm_proxy_new_with_server @ 67 NONAME
-	lm_proxy_ref @ 68 NONAME
-	lm_proxy_set_password @ 69 NONAME
-	lm_proxy_set_port @ 70 NONAME
-	lm_proxy_set_server @ 71 NONAME
-	lm_proxy_set_type @ 72 NONAME
-	lm_proxy_set_username @ 73 NONAME
-	lm_proxy_unref @ 74 NONAME
-	lm_ssl_get_fingerprint @ 75 NONAME
-	lm_ssl_is_supported @ 76 NONAME
-	lm_ssl_new @ 77 NONAME
-	lm_ssl_ref @ 78 NONAME
-	lm_ssl_unref @ 79 NONAME
-	lm_ssl_use_starttls @ 80 NONAME
-	lm_utils_get_localtime @ 81 NONAME
-
--- a/loudmouth/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-PRJ_PLATFORMS
-DEFAULT
-
-#include <platform_paths.hrh>
-PRJ_EXPORTS
-../rom/loudmouth.iby					CORE_MW_LAYER_IBY_EXPORT_PATH(loudmouth.iby)
-
-PRJ_MMPFILES
-loudmouth.mmp
-
--- a/loudmouth/group/loudmouth.mmp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-/*
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include<platform_paths.hrh>
-TARGET              loudmouth.dll
-TARGETTYPE          DLL
-UID                 0x1000008d  0x2000F851	
-
-VERSION      10.1
-#ifdef EKA2
-LANG                SC
-CAPABILITY          All -TCB
-VENDORID            VID_DEFAULT
-
-#endif
-
-#if !defined(__WINSCW__) && !defined(__WINS__)
-EpocAllowDllData
-#endif
-
-MACRO               SYMBIAN
-MACRO               HAVE_CONFIG_H
-
-MACRO               LM_COMPILATION
-
-MACRO								USE_TCP_KEEPALIVES
-#ifdef WINSCW
-MACRO			EMULATOR
-#endif
-
-#ifndef WINSCW
-#define LM_NO_DEBUG
-#endif
-
-
-//EXPORTUNFROZEN
-
-USERINCLUDE         ../inc
-USERINCLUDE         ../inc/loudmouth
-
-SYSTEMINCLUDE       ../inc
-SYSTEMINCLUDE       /epoc32/include
-
-OS_LAYER_LIBC_SYSTEMINCLUDE
-OS_LAYER_GLIB_SYSTEMINCLUDE
-OS_LAYER_SSL_SYSTEMINCLUDE
-OS_LAYER_STDCPP_SYSTEMINCLUDE
-OS_LAYER_BOOST_SYSTEMINCLUDE
-OS_LAYER_DBUS_SYSTEMINCLUDE
-OS_LAYER_LIBUTILITY_SYSTEMINCLUDE
-
-//#endif
-
-
-
-/* Loudmouth source files */
-SOURCEPATH          ../src
-
-SOURCE              lm-connection.c
-SOURCE              lm-debug.c
-SOURCE              lm-error.c
-SOURCE              lm-message.c 
-SOURCE              lm-message-handler.c
-SOURCE              lm-message-node.c
-SOURCE              lm-parser.c
-SOURCE              lm-proxy.c
-SOURCE              lm-sha.c
-SOURCE              lm-sock.c
-SOURCE              lm-ssl-base.c
-SOURCE              lm-ssl-generic.c
-SOURCE              lm-ssl-gnutls.c
-SOURCE              lm-ssl-openssl.c
-SOURCE              lm-utils.c
-SOURCE              lm-socket.c
-SOURCE              lm-message-queue.c
-SOURCE              lm-sasl.c
-SOURCE              lm-misc.c
-SOURCE              md5.c
-SOURCE              base64.c
-#ifdef WINSCW
-SOURCE		libloudmouth_wsd.cpp
-#endif
-
-         
-
-LIBRARY             libc.lib
-LIBRARY             libpthread.lib
-
-LIBRARY             libglib.lib
-LIBRARY             glibbackend.lib
-LIBRARY             libgmodule.lib
-LIBRARY             libgobject.lib
-LIBRARY				libgthread.lib
-
-LIBRARY             libssl.lib
-LIBRARY             libcrypto.lib
-//LIBRARY             libresolv.lib
-//LIBRARY             libglib.lib
-#ifdef WINSCW
-//wsd solution
-LIBRARY		ewsd.lib
-LIBRARY             euser.lib
-#endif
-      
-
-/*
-#if defined(ARMCC)
-deffile ../eabi/ 
-#elif defined(WINSCW)
-deffile ../bwinscw/ 
-#endif
-*/
-
-//VENDORID VID_DEFAULT 
-
--- a/loudmouth/inc/Makefile.in	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,645 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = loudmouth
-DIST_COMMON = $(libloudmouthinclude_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" \
-	"$(DESTDIR)$(libloudmouthincludedir)"
-libLTLIBRARIES_INSTALL = $(INSTALL)
-LTLIBRARIES = $(lib_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-libloudmouth_1_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1)
-am__libloudmouth_1_la_SOURCES_DIST = lm-connection.c lm-debug.c \
-	lm-debug.h lm-error.c lm-message.c lm-message-handler.c \
-	lm-message-node.c lm-message-queue.c lm-message-queue.h \
-	lm-misc.c lm-misc.h lm-parser.c lm-parser.h lm-internals.h \
-	lm-sha.c lm-sha.h lm-ssl-generic.c lm-ssl-base.c lm-ssl-base.h \
-	lm-ssl-internals.h lm-ssl-gnutls.c lm-ssl-openssl.c lm-utils.c \
-	lm-proxy.c lm-sock.h lm-sock.c lm-socket.c lm-socket.h \
-	asyncns.c asyncns.h lm-sasl.c lm-sasl.h md5.c md5.h base64.c \
-	base64.h
-@USE_GNUTLS_FALSE@@USE_OPENSSL_TRUE@am__objects_1 = lm-ssl-openssl.lo
-@USE_GNUTLS_TRUE@am__objects_1 = lm-ssl-gnutls.lo
-am__objects_2 =
-am_libloudmouth_1_la_OBJECTS = lm-connection.lo lm-debug.lo \
-	lm-error.lo lm-message.lo lm-message-handler.lo \
-	lm-message-node.lo lm-message-queue.lo lm-misc.lo lm-parser.lo \
-	lm-sha.lo lm-ssl-generic.lo lm-ssl-base.lo $(am__objects_1) \
-	lm-utils.lo lm-proxy.lo lm-sock.lo lm-socket.lo asyncns.lo \
-	lm-sasl.lo md5.lo base64.lo $(am__objects_2)
-libloudmouth_1_la_OBJECTS = $(am_libloudmouth_1_la_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libloudmouth_1_la_SOURCES)
-DIST_SOURCES = $(am__libloudmouth_1_la_SOURCES_DIST)
-libloudmouthincludeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(libloudmouthinclude_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CHECK_CFLAGS = @CHECK_CFLAGS@
-CHECK_LIBS = @CHECK_LIBS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DOC_CFLAGS = @DOC_CFLAGS@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@
-ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GLIB2_REQUIRED = @GLIB2_REQUIRED@
-GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_LIBS = @GLIB_LIBS@
-GLIB_MKENUMS = @GLIB_MKENUMS@
-GNUTLS_REQUIRED = @GNUTLS_REQUIRED@
-GOBJECT_QUERY = @GOBJECT_QUERY@
-GREP = @GREP@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
-GTK_DOC_USE_LIBTOOL_TRUE = @GTK_DOC_USE_LIBTOOL_TRUE@
-HAVE_CHECK_FALSE = @HAVE_CHECK_FALSE@
-HAVE_CHECK_TRUE = @HAVE_CHECK_TRUE@
-HTML_DIR = @HTML_DIR@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@
-LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@
-LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@
-LIBIDN_CFLAGS = @LIBIDN_CFLAGS@
-LIBIDN_LIBS = @LIBIDN_LIBS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTASN1_REQUIRED = @LIBTASN1_REQUIRED@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LOUDMOUTH_CFLAGS = @LOUDMOUTH_CFLAGS@
-LOUDMOUTH_LIBS = @LOUDMOUTH_LIBS@
-LTLIBOBJS = @LTLIBOBJS@
-LT_AGE = @LT_AGE@
-LT_CURRENT = @LT_CURRENT@
-LT_REVISION = @LT_REVISION@
-MAINT = @MAINT@
-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-REBUILD = @REBUILD@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_GNUTLS_FALSE = @USE_GNUTLS_FALSE@
-USE_GNUTLS_TRUE = @USE_GNUTLS_TRUE@
-USE_OPENSSL_FALSE = @USE_OPENSSL_FALSE@
-USE_OPENSSL_TRUE = @USE_OPENSSL_TRUE@
-VERSION = @VERSION@
-WARN_CFLAGS = @WARN_CFLAGS@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-NULL = 
-TEST_DIR = $(top_srcdir)/
-AM_CPPFLAGS = \
-	-I.				    \
-	-I$(top_srcdir)			    \
-	$(LOUDMOUTH_CFLAGS)		    \
-	$(LIBIDN_CFLAGS)		    \
-	-DLM_COMPILATION	  	    \
-	-DRUNTIME_ENDIAN                    \
-	$(NULL)
-
-lib_LTLIBRARIES = libloudmouth-1.la
-@USE_GNUTLS_TRUE@ssl_sources = \
-@USE_GNUTLS_TRUE@	lm-ssl-gnutls.c
-
-@USE_OPENSSL_TRUE@ssl_sources = \
-@USE_OPENSSL_TRUE@	lm-ssl-openssl.c
-
-libloudmouth_1_la_SOURCES = \
-	lm-connection.c	 		\
-	lm-debug.c                      \
-	lm-debug.h                      \
-	lm-error.c			\
-	lm-message.c	 		\
-	lm-message-handler.c		\
-	lm-message-node.c		\
-	lm-message-queue.c		\
-	lm-message-queue.h		\
-	lm-misc.c                       \
-	lm-misc.h                       \
-	lm-parser.c			\
-	lm-parser.h			\
-	lm-internals.h			\
-	lm-sha.c			\
-	lm-sha.h			\
-	lm-ssl-generic.c                \
-	lm-ssl-base.c                   \
-	lm-ssl-base.h                   \
-	lm-ssl-internals.h              \
-	$(ssl_sources)                  \
-	lm-utils.c			\
-	lm-proxy.c                      \
-	lm-sock.h			\
-	lm-sock.c			\
-	lm-socket.c                     \
-	lm-socket.h                     \
-	asyncns.c     \
-	asyncns.h     \
-	lm-sasl.c                       \
-	lm-sasl.h                       \
-	md5.c                           \
-	md5.h                           \
-	base64.c                        \
-	base64.h                        \
-	$(NULL)
-
-libloudmouthinclude_HEADERS = \
-	lm-connection.h			\
-	lm-error.h			\
-	lm-message.h		 	\
-	lm-message-handler.h		\
-	lm-message-node.h		\
-	lm-utils.h			\
-	lm-proxy.h                      \
-	lm-ssl.h                        \
-	loudmouth.h			\
-	$(NULL)
-
-libloudmouth_1_la_LIBADD = \
-	$(LOUDMOUTH_LIBS)		\
-	$(LIBIDN_LIBS) \
-	-lresolv
-
-libloudmouth_1_la_LDFLAGS = \
-	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-	-export-symbols $(srcdir)/loudmouth.sym
-
-libloudmouthincludedir = $(includedir)/loudmouth-1.0/loudmouth
-EXTRA_DIST = \
-	lm-ssl-gnutls.c \
-	lm-ssl-openssl.c \
-	loudmouth.sym
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  loudmouth/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  loudmouth/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    f=$(am__strip_dir) \
-	    echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
-	    $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
-	  else :; fi; \
-	done
-
-uninstall-libLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  p=$(am__strip_dir) \
-	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
-	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
-	done
-
-clean-libLTLIBRARIES:
-	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
-libloudmouth-1.la: $(libloudmouth_1_la_OBJECTS) $(libloudmouth_1_la_DEPENDENCIES) 
-	$(LINK) -rpath $(libdir) $(libloudmouth_1_la_LDFLAGS) $(libloudmouth_1_la_OBJECTS) $(libloudmouth_1_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asyncns.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-connection.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-debug.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-error.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-message-handler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-message-node.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-message-queue.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-message.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-misc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-parser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-proxy.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-sasl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-sha.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-sock.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-socket.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-ssl-base.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-ssl-generic.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-ssl-gnutls.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-ssl-openssl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm-utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-distclean-libtool:
-	-rm -f libtool
-uninstall-info-am:
-install-libloudmouthincludeHEADERS: $(libloudmouthinclude_HEADERS)
-	@$(NORMAL_INSTALL)
-	test -z "$(libloudmouthincludedir)" || $(mkdir_p) "$(DESTDIR)$(libloudmouthincludedir)"
-	@list='$(libloudmouthinclude_HEADERS)'; for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(libloudmouthincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libloudmouthincludedir)/$$f'"; \
-	  $(libloudmouthincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libloudmouthincludedir)/$$f"; \
-	done
-
-uninstall-libloudmouthincludeHEADERS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(libloudmouthinclude_HEADERS)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(libloudmouthincludedir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(libloudmouthincludedir)/$$f"; \
-	done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-	list='$(DISTFILES)'; for file in $$list; do \
-	  case $$file in \
-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-	  esac; \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
-	  else \
-	    dir=''; \
-	  fi; \
-	  if test -d $$d/$$file; then \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
-	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libloudmouthincludedir)"; do \
-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-	mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-libtool distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-libloudmouthincludeHEADERS
-
-install-exec-am: install-libLTLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \
-	uninstall-libloudmouthincludeHEADERS
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-exec \
-	install-exec-am install-info install-info-am \
-	install-libLTLIBRARIES install-libloudmouthincludeHEADERS \
-	install-man install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am uninstall-info-am uninstall-libLTLIBRARIES \
-	uninstall-libloudmouthincludeHEADERS
-
-
-# an explicit dependency here so alm generated files get built
-$(OBJECTS): $(built_sources)
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
--- a/loudmouth/inc/asyncns.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-
-
-/* $Id: asyncns.h 23 2007-02-16 12:49:17Z lennart $ */
-
-/***
-  This file is part of libasyncns.
-  Copyright (C) 2006 Collabora Ltd.
- * 
-  libasyncns is free software; you can redistribute it and/or modify
-  it under the terms of the GNU Lesser General Public License as
-  published by the Free Software Foundation; either version 2 of the
-  License, or (at your option) any later version.
- 
-  libasyncns is distributed in the hope that it will be useful, but
-  WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-  General Public License for more details.
- 
-  You should have received a copy of the GNU Lesser General Public
-  License along with libasyncns; if not, write to the Free Software
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-  USA.
-***/
-#ifndef fooasyncnshfoo
-#define fooasyncnshfoo
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-
-/** /mainpage
- *
- * /section moo Method of operation
- *
- * To use libasyncns allocate an asyncns_t object with
- * asyncns_new(). This will spawn a number of worker threads (or processes, depending on what is available) which
- * are subsequently used to process the queries the controlling
- * program issues via asyncns_getaddrinfo() and
- * asyncns_getnameinfo(). Use asyncns_free() to shut down the worker
- * threads/processes.
- *
- * Since libasyncns may fork off new processes you have to make sure that
- * your program is not irritated by spurious SIGCHLD signals.
- */
-
-/** /example asyncns-test.c
- * An example program */
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/** An opaque libasyncns session structure */
-typedef struct asyncns asyncns_t;
-
-/** An opaque libasyncns query structure */
-typedef struct asyncns_query asyncns_query_t;
-
-/** Allocate a new libasyncns session with n_proc worker processes */
-asyncns_t* asyncns_new(unsigned n_proc);
-
-/** Free a libasyncns session. This destroys all attached
- * asyncns_query_t objects automatically */
-void asyncns_free(asyncns_t *asyncns);
-
-/** Return the UNIX file descriptor to select() for readability
- * on. Use this function to integrate libasyncns with your custom main
- * loop. */
-int asyncns_fd(asyncns_t *asyncns);
-
-/** Process pending responses. After this function is called you can
- * get the next completed query object(s) using asyncns_getnext(). If
- * block is non-zero wait until at least one response has been
- * processed. If block is zero, process all pending responses and
- * return. */
-int asyncns_wait(asyncns_t *asyncns, int block);
-
-/** Issue a name to address query on the specified session. The
- * arguments are compatible with the ones of libc's
- * getaddrinfo(3). The function returns a new query object. When the
- * query is completed you may retrieve the results using
- * asyncns_getaddrinfo_done().*/
-asyncns_query_t* asyncns_getaddrinfo(asyncns_t *asyncns, const char *node, const char *service, const struct addrinfo *hints);
-
-/** Retrieve the results of a preceding asyncns_getaddrinfo()
- * call. Returns a addrinfo structure and a return value compatible
- * with libc's getaddrinfo(3). The query object q is destroyed by this
- * call and may not be used any further. Make sure to free the
- * returned addrinfo structure with asyncns_freeaddrinfo() and not
- * libc's freeaddrinfo(3)! If the query is not completed yet EAI_AGAIN
- * is returned.*/
-int asyncns_getaddrinfo_done(asyncns_t *asyncns, asyncns_query_t* q, struct addrinfo **ret_res);
-
-/** Issue an address to name query on the specified session. The
-arguments are compatible with the ones of libc's getnameinfo(3). The
-function returns a new query object. When the query is completed you
-may retrieve the results using asyncns_getnameinfo_done(). Set gethost
-(resp. getserv) to non-zero if you want to query the hostname
-(resp. the service name). */
-asyncns_query_t* asyncns_getnameinfo(asyncns_t *asyncns, const struct sockaddr *sa, socklen_t salen, int flags, int gethost, int getserv);
-
-/** Retrieve the results of a preceding asyncns_getnameinfo)(
- * call. Returns the hostname and the service name in ret_host and
- * ret_serv. The query object q is destroyed by this call and may not
- * be used any further. If the query is not completed yet EAI_AGAIN is
- * returned. */
-int asyncns_getnameinfo_done(asyncns_t *asyncns, asyncns_query_t* q, char *ret_host, size_t hostlen, char *ret_serv, size_t servlen);
-
-/** Issue an resolver query on the specified session. The arguments are
- * compatible with the ones of libc's res_query(3). The function returns a new
- * query object. When the query is completed you may retrieve the results using
- * asyncns_res_done().  */
-asyncns_query_t* asyncns_res_query(asyncns_t *asyncns, const char *dname, int class, int type);
-
-/** Issue an resolver query on the specified session. The arguments are
- * compatible with the ones of libc's res_search(3). The function returns a new
- * query object. When the query is completed you may retrieve the results using
- * asyncns_res_done().  */
-asyncns_query_t* asyncns_res_search(asyncns_t *asyncns, const char *dname, int class, int type);
-
-/** Retrieve the results of a preceding asyncns_res_query)( or
- * asyncns_res_search call.  The query object q is destroyed by this call and
- * may not be used any further. Returns a pointer to the answer of the
- * res_query call. If the query is not completed yet -EAGAIN is returned, on
- * failure -errno is returned otherwise the length of answer is returned. */
-int asyncns_res_done(asyncns_t *asyncns, asyncns_query_t* q, unsigned char
-**answer);
-
-/** Return the next completed query object. If no query has been
- * completed yet, return NULL. Please note that you need to run
- * asyncns_wait() before this function will return sensible data.  */
-asyncns_query_t* asyncns_getnext(asyncns_t *asyncns);
-
-/** Return the number of query objects (completed or not) attached to
- * this session */
-int asyncns_getnqueries(asyncns_t *asyncns);
-
-/** Cancel a currently running query. q is is destroyed by this call
- * and may not be used any futher. */
-void asyncns_cancel(asyncns_t *asyncns, asyncns_query_t* q);
-
-/** Free the addrinfo structure as returned by
-asyncns_getaddrinfo_done(). Make sure to use this functions instead of
-the libc's freeaddrinfo()! */
-void asyncns_freeaddrinfo(struct addrinfo *ai);
-
-/** Returns non-zero when the query operation specified by q has been completed */
-int asyncns_isdone(asyncns_t *asyncns, asyncns_query_t*q);
-
-/** Assign some opaque userdata with a query object */
-void asyncns_setuserdata(asyncns_t *asyncns, asyncns_query_t *q, void *userdata);
-
-/** Return userdata assigned to a query object. Use
- * asyncns_setuserdata() to set this data. If no data has been set
- * prior to this call it returns NULL. */
-void* asyncns_getuserdata(asyncns_t *asyncns, asyncns_query_t *q);
-
-#ifdef  __cplusplus
-}
-#endif
-    
-#endif
--- a/loudmouth/inc/base64.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * base64.h - Base 64 encoding/decoding implementation
- * Copyright (C) 2006 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __BASE64_H__
-#define __BASE64_H__
-
-#include <glib.h>
-
-gchar *_lm_base64_encode (const gchar *str, gsize n);
-gchar *_lm_base64_decode (const gchar *str, gsize *len);
-
-#define base64_encode _lm_base64_encode
-#define base64_decode _lm_base64_decode
-
-#endif /* __BASE64_H__ */
--- a/loudmouth/inc/config.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/* 
- * © .  All rights reserved.
- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
- 
-/* config.h.  Generated from config.h.in by configure.  */
-/* config.h.in.  Generated from configure.ac by autoheader.  */
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#define HAVE_ARPA_INET_H 1
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* whether to use GnuTSL support. */
-/* #undef HAVE_GNUTLS */
-
-/* Define if IDN support is included */
-/* #define HAVE_IDN 1 */
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#define HAVE_LIBNSL 1
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-/* #undef HAVE_LIBSOCKET */
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the <netdb.h> header file. */
-#define HAVE_NETDB_H 1
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#define HAVE_NETINET_IN_H 1
-
-/* Have OpenSSL */
-#define HAVE_OPENSSL 
-
-/* Define to 1 if you have the <openssl/ssl.h> header file. */
-#define HAVE_OPENSSL_SSL_H 1
-
-/* whether to use SSL support. */
-#define HAVE_SSL 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#define HAVE_SYS_SOCKET_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define if libc defines a timezone variable */
-/* #undef HAVE_TIMEZONE */
-
-/* Define if struct tm has a tm_gmtoff member */
-#define HAVE_TM_GMTOFF 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the <winsock2.h> header file. */
-/* #undef HAVE_WINSOCK2_H */
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "loudmouth"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "Loudmouth"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "Loudmouth 1.2.0"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "loudmouth"
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.2.0"
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
--- a/loudmouth/inc/gdebug.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * .  All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GLib Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GLib Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#ifndef __G_DEBUG_H__
-#define __G_DEBUG_H__
-
-#include <_ansi.h>
-
-G_BEGIN_DECLS 
-
-typedef enum {
-  G_DEBUG_FATAL_WARNINGS  = 1 << 0,
-  G_DEBUG_FATAL_CRITICALS = 1 << 1
-} GDebugFlag;
-
-
-#ifdef G_ENABLE_DEBUG
-
-#define G_NOTE(type, action)            G_STMT_START { \
-    if (!_g_debug_initialized)                         \
-       { _g_debug_init (); }                           \
-    if (_g_debug_flags & G_DEBUG_##type)               \
-       { action; };                         } G_STMT_END
-
-#else /* !G_ENABLE_DEBUG */
-
-#define G_NOTE(type, action)
-      
-#endif /* G_ENABLE_DEBUG */
-
-#ifdef SYMBIAN
-IMPORT_C gboolean * __g_debug_initialized();
-#endif /* SYMBIAN */
-GLIB_VAR gboolean _g_debug_initialized;
-
-#ifdef SYMBIAN
-IMPORT_C guint * __g_debug_flags();
-#endif /* SYMBIAN */
-GLIB_VAR guint _g_debug_flags;
-
-void _g_debug_init (void) G_GNUC_INTERNAL;
-
-G_END_DECLS
-
-#endif /* __G_DEBUG_H__ */
--- a/loudmouth/inc/libloudmouth_wsd_macros.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef _LIBLOUDMOUTHMACROS_WSD_DEFS_H_
-#define _LIBLOUDMOUTHMACROS_WSD_DEFS_H_
-
-#if (defined(SYMBIAN) && (defined(__WINSCW__) || defined(__WINS__)))
-#if EMULATOR
-#undef EMULATOR
-#endif
-#ifdef GET_WSD_VAR_NAME
-#undef GET_WSD_VAR_NAME
-#endif
-
-#define EMULATOR (defined(SYMBIAN) && (defined(__WINSCW__) || defined(__WINS__)))
-#define GET_WSD_VAR_NAME(var,filename,prefix) 	_##prefix##_##filename##_##var
-
-#define RETURN_WSD_VAR(var,filename,prefix) (libloudmouth_ImpurePtr()->GET_WSD_VAR_NAME(var,filename,prefix))
-
-#define GET_WSD_VAR_FROM_TLS(var,filename,type,prefix)\
-type *_##prefix##_##filename##_##var()\
-{\
-	return (&RETURN_WSD_VAR(var,filename,prefix));\
-}
-
-#define GET_WSD_ARRAY_FROM_TLS(var,filename,type,prefix)\
-type *_##prefix##_##filename##_##var()\
-{\
-	return (RETURN_WSD_VAR(var,filename,prefix));\
-}
-
-#define VARIABLE_DECL(var,varprefix,filename,datatype)\
-datatype GET_WSD_VAR_NAME(var,filename,varprefix);
-
-#define VARIABLE_DECL_ARRAY(var,prefix,filename,datatype,size) \
-datatype GET_WSD_VAR_NAME(var,filename,prefix)[size];
-
-#define VARIABLE_DECL_2DARRAY(var,prefix,filename,datatype,size,size1) \
-datatype GET_WSD_VAR_NAME(var,filename,prefix)[size][size1];
-
-
-#define GET_STATIC_VAR_FROM_TLS(var,filename,type) 		GET_WSD_VAR_FROM_TLS(var,filename,type,s)
-
-#define GET_GLOBAL_VAR_FROM_TLS(var,filename,type) 	GET_WSD_VAR_FROM_TLS(var,filename,type,g)
-
-#define GET_STATIC_ARRAY_FROM_TLS(var,filename,type) 	GET_WSD_ARRAY_FROM_TLS(var,filename,type,s)
-
-#define GET_GLOBAL_ARRAY_FROM_TLS(var,filename,type) 	GET_WSD_ARRAY_FROM_TLS(var,filename,type,g)
-
-#endif
-#endif		//_LIBLOUDMOUTHMACROS_WSD_DEFS_H_
--- a/loudmouth/inc/libloudmouth_wsd_solution.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
- 
-#ifndef _LIBLOUDMOUTH_WSD_H
-#define _LIBLOUDMOUTH_WSD_H
-#include "libloudmouth_wsd_macros.h"
-#include "lm_enums.h"
-#include "ghash.h"
-#include <gutils.h>
-#include "lm-internals.h"
-#include <glib/gtypes.h>
-/*#include "lm-debug.h"
-#include "lm-message.h"
-#include "lm-utils.h"
-#include "base64.h"
-#include "lm-misc.h"
-#include "lm-sha.h"*/
-
-#if EMULATOR
-#ifdef __cplusplus
-extern "C" 
-{
-#endif
-typedef struct _TypeNames TypeNames;
-
-struct _TypeNames 
-	{
-    LmMessageType  type;
-    const gchar   name[20];
-
-  	};
-
-
-typedef struct _SubTypeNames SubTypeNames;
-
-struct _SubTypeNames 
-	{
-    LmMessageSubType  type;
-    const gchar   name[20];
-
-  	};
-
-
-struct libloudmouth_global_struct
-	{
-	VARIABLE_DECL(debug_flags, g, lm_debug,LmLogLevelFlags)	
-	VARIABLE_DECL(initialized, g, lm_debug,gboolean)
-	VARIABLE_DECL(log_handler_id, g, lm_debug,guint)
-	VARIABLE_DECL_ARRAY(type_names, s, lm_message,TypeNames,13)
-	VARIABLE_DECL_ARRAY(sub_type_names, s, lm_message,SubTypeNames,14)
-	VARIABLE_DECL(initialized, s, lm_ssl_openssl,gboolean)
-	VARIABLE_DECL(last_id, s, lm_utils,guint) 
-	VARIABLE_DECL_ARRAY(base64chars, s, lm_utils, gchar, 256) 
-	VARIABLE_DECL_ARRAY(ret_val, s, lm_sha, gchar, 256)
-	VARIABLE_DECL_ARRAY(encoding, s, lm_base64, gchar, 256) 
-	VARIABLE_DECL_ARRAY(buf, s, lm_misc, char, 256)
-	VARIABLE_DECL(initialised, g, lm_sock,gboolean)
-
-    
-      /*END-global vars*/
-          
-    };
-
-struct libloudmouth_global_struct * libloudmouth_ImpurePtr();
-int libloudmouth_Init(struct libloudmouth_global_struct *);
-#ifdef __cplusplus
-}
-#endif
-#endif //EMULATOR
-#endif //header guard ifdef _LIBGABBLE_WSD_H
-
--- a/loudmouth/inc/lm-debug.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_DEBUG_H__
-#define __LM_DEBUG_H__
-#include <stdio.h>
-#include <glib.h>
-#include "lm_enums.h"
-
-//Wsd changes
-
-/*typedef enum {
-
-	LM_LOG_LEVEL_VERBOSE = 1 << (G_LOG_LEVEL_USER_SHIFT),
-	LM_LOG_LEVEL_NET     = 1 << (G_LOG_LEVEL_USER_SHIFT + 1),
-	LM_LOG_LEVEL_PARSER  = 1 << (G_LOG_LEVEL_USER_SHIFT + 2),
-	LM_LOG_LEVEL_SSL     = 1 << (G_LOG_LEVEL_USER_SHIFT + 3),
-	LM_LOG_LEVEL_SASL    = 1 << (G_LOG_LEVEL_USER_SHIFT + 4),
-	LM_LOG_LEVEL_ALL     = (LM_LOG_LEVEL_NET |
-				LM_LOG_LEVEL_VERBOSE |
-				LM_LOG_LEVEL_PARSER |
-				LM_LOG_LEVEL_SSL |
-				LM_LOG_LEVEL_SASL)
-} LmLogLevelFlags;
-*/
-#ifndef LM_LOG_DOMAIN
-#  define LM_LOG_DOMAIN "LM"
-#endif
-
-#ifndef _DEBUG
-#define LM_NO_DEBUG
-#endif
-#ifdef G_HAVE_ISO_VARARGS
-#  ifdef LM_NO_DEBUG
-#    define lm_verbose(...)
-#  else
-#    define lm_verbose(...) \
-       g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_VERBOSE, __VA_ARGS__)
-#  endif
-#elif defined(G_HAVE_GNUC_VARARGS)
-#  if LM_NO_DEBUG
-#    define lm_verbose(fmt...)
-#  else
-#    define lm_verbose(fmt...) \
-       g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_VERBOSE, fmt)
-#  endif
-#else
-#  ifdef LM_NO_DEBUG
-  static void
- lm_verbose(const gchar *format, ...) {};
-#  else
-static void
-lm_verbose (const gchar *format, ...)
-{
-//#ifdef HAVELMLOGS
-	FILE *fp;
-  va_list args;
-  va_start (args, format);
- // g_logv (LM_LOG_DOMAIN, LM_LOG_LEVEL_VERBOSE, format, args);
-	fp = fopen("c:\\lmlogs.txt","a");
-
-	if(fp)
-		{
-	/*			fprintf(fp,arg);
-		fprintf(fp,"\n");*/
-	//	fprintf (fp, "%lu: 0x%lx: ", _dbus_getpid (), pthread_self ());
-		vfprintf (fp, format, args);
-		fflush(fp);
-		fclose(fp);
-		}
-  va_end (args);
-  //#endif
-}
-#  endif
-#endif
-
-void lm_debug_init (void);
-
-#endif /* __LM_DEBUG_H__ */
-#define UNUSED_FORMAL_PARAM(p) (void) p
-
--- a/loudmouth/inc/lm-internals.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/* Private functions that are internal to the library */
-
-#ifndef __LM_INTERNALS_H__
-#define __LM_INTERNALS_H__
-
-#include <glib.h>
-
-#include <sys/types.h>
-
-#include "lm-message.h"
-#include "lm-message-handler.h"
-#include "lm-message-node.h"
-#include "lm-sock.h"
-#include "lm-socket.h"
-
-#ifndef G_OS_WIN32
-typedef int LmSocketT;
-#else  /* G_OS_WIN32 */
-typedef SOCKET LmSocketT;
-#endif /* G_OS_WIN32 */
-
-typedef struct {
-	gpointer       func;
-	gpointer       user_data;
-	GDestroyNotify notify;
-} LmCallback;
-
-typedef struct {
-	LmConnection *connection;
-	LmSocket *socket;
-
-	/* struct to save resolved address */
-	struct addrinfo *resolved_addrs;
-	struct addrinfo *current_addr;
-	LmSocketT         fd;
-	GIOChannel      *io_channel;
-} LmConnectData;
-
-gboolean         _lm_socket_failed_with_error (LmConnectData *connect_data,
-                                                   int error);
-gboolean         _lm_socket_failed            (LmConnectData *connect_data);
-void             _lm_socket_succeeded         (LmConnectData *connect_data);
-gboolean _lm_connection_async_connect_waiting (LmConnection *connection);
-void _lm_connection_set_async_connect_waiting (LmConnection *connection,
-					       gboolean      waiting);
-
-LmCallback *     _lm_utils_new_callback             (gpointer          func, 
-						     gpointer          data,
-						     GDestroyNotify    notify);
-void             _lm_utils_free_callback            (LmCallback       *cb);
-
-gchar *          _lm_utils_generate_id              (void);
-gchar *          _lm_utils_base64_encode            (const gchar      *str);
-gchar *          _lm_utils_hostname_to_punycode     (const gchar      *hostname);
-const gchar *    _lm_message_type_to_string         (LmMessageType     type);
-const gchar *    _lm_message_sub_type_to_string     (LmMessageSubType  type);
-LmMessage *      _lm_message_new_from_node          (LmMessageNode    *node);
-void             _lm_message_node_add_child_node    (LmMessageNode    *node,
-						     LmMessageNode    *child);
-LmMessageNode *  _lm_message_node_new               (const gchar      *name);
-void             _lm_debug_init                     (void);
-
-
-gboolean         _lm_proxy_connect_cb               (GIOChannel *source,
-                                                     GIOCondition condition,
-                                                     gpointer data);
-LmHandlerResult    
-_lm_message_handler_handle_message                (LmMessageHandler *handler,
-						   LmConnection     *connection,
-						   LmMessage        *messag);
-gboolean         _lm_sock_library_init            (void);
-void             _lm_sock_library_shutdown        (void);
-void             _lm_sock_set_blocking            (LmSocketT               sock,
-						   gboolean               block);
-void             _lm_sock_shutdown                (LmSocketT               sock);
-void             _lm_sock_close                   (LmSocketT               sock);
-LmSocketT         _lm_sock_makesocket              (int                    af,
-						   int                    type,
-						   int                    protocol);
-int              _lm_sock_connect                 (LmSocketT               sock,
-						   const struct sockaddr *name,
-						   int                    namelen);
-gboolean         _lm_sock_is_blocking_error       (int                    err);
-gboolean         _lm_sock_is_blocking_success     (int                    err);
-int              _lm_sock_get_last_error          (void);
-void             _lm_sock_get_error               (LmSocketT               sock, 
-						   void                  *error, 
-						   socklen_t             *len);
-const gchar *    _lm_sock_get_error_str           (int                    err);
-const gchar *    _lm_sock_addrinfo_get_error_str  (int                    err);
-gchar       *    _lm_sock_get_local_host          (LmSocketT              sock);
-
-#ifdef USE_TCP_KEEPALIVES
-gboolean         _lm_sock_set_keepalive (LmSocketT sock, int delay);
-#endif /* USE_TCP_KEEPALIVES */
-
-#endif /* __LM_INTERNALS_H__ */
--- a/loudmouth/inc/lm-message-queue.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2006 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_MESSAGE_QUEUE_H__
-#define __LM_MESSAGE_QUEUE_H__
-
-#include <glib.h>
-#include "loudmouth/lm-message.h"
-
-typedef struct _LmMessageQueue LmMessageQueue;
-
-typedef void (* LmMessageQueueCallback) (LmMessageQueue *queue,
-					 gpointer        user_data);
-
-LmMessageQueue *  lm_message_queue_new         (LmMessageQueueCallback func,
-						gpointer               data);
-void              lm_message_queue_attach      (LmMessageQueue        *queue,
-						GMainContext *context);
-
-void              lm_message_queue_detach      (LmMessageQueue *queue);
-void              lm_message_queue_push_tail   (LmMessageQueue *queue,
-						LmMessage      *m);
-LmMessage *       lm_message_queue_peek_nth    (LmMessageQueue *queue,
-						guint           n);
-LmMessage *       lm_message_queue_pop_nth     (LmMessageQueue *queue,
-						guint           n);
-guint             lm_message_queue_get_length  (LmMessageQueue *queue);
-gboolean          lm_message_queue_is_empty    (LmMessageQueue *queue);
-
-LmMessageQueue *  lm_message_queue_ref         (LmMessageQueue *queue);
-void              lm_message_queue_unref       (LmMessageQueue *queue);
-
-#endif /* __LM_MESSAGE_QUEUE_H__ */
--- a/loudmouth/inc/lm-misc.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2006 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_MISC_H__
-#define __LM_MISC_H__
-
-#include <glib.h>
-
-GSource *          lm_misc_add_io_watch         (GMainContext *context,
-						 GIOChannel   *chan,
-						 GIOCondition  condition,
-						 GIOFunc       function,
-						 gpointer      data);
-GSource *          lm_misc_add_idle             (GMainContext *context,
-						 GSourceFunc   function,
-						 gpointer      data);
-GSource *          lm_misc_add_timeout          (GMainContext *context,
-						 guint         interval,
-						 GSourceFunc   function,
-						 gpointer      data);
-
-const char *       lm_misc_io_condition_to_str  (GIOCondition    condition);
-
-
-#endif /* __LM_MISC_H__ */
-
--- a/loudmouth/inc/lm-parser.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_PARSER_H__
-#define __LM_PARSER_H__
-
-#include <glib.h>
-#include "lm-message.h"
-
-typedef struct LmParser LmParser;
-
-typedef void (* LmParserMessageFunction) (LmParser     *parser,
-					  LmMessage    *message,
-					  gpointer      user_data);
-
-IMPORT_C LmParser *   lm_parser_new       (LmParserMessageFunction  function,
-				  gpointer                 user_data,
-				  GDestroyNotify           notify);
-IMPORT_C void         lm_parser_parse     (LmParser                *parser,
-				  const gchar             *string);
-IMPORT_C void         lm_parser_free      (LmParser                *parser);
-
-#endif /* __LM_PARSER_H__ */
--- a/loudmouth/inc/lm-sasl.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2007 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_SASL_H__
-#define __LM_SASL_H__
-
-#if !defined (LM_INSIDE_LOUDMOUTH_H) && !defined (LM_COMPILATION)
-#error "Only <loudmouth/loudmouth.h> can be included directly, this file may disappear or change contents."
-#endif
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-typedef struct _LmSASL LmSASL;
-
-typedef void (*LmSASLResultHandler) (LmSASL *sasl,
-				     LmConnection *connection,
-				     gboolean success,
-				     const gchar *reason);
-
-LmSASL *lm_sasl_new (LmConnection *connection);
-
-void lm_sasl_authenticate (LmSASL *sasl, 
-			   const gchar *username,
-			   const gchar *password,
-			   const gchar *server,
-			   LmSASLResultHandler handler);
-
-void lm_sasl_free (LmSASL *sasl);
-
-void
-lm_sasl_get_auth_params (LmSASL *sasl, const gchar **username,
-	const gchar **password);
-G_END_DECLS
-
-#endif /* __LM_SASL_H__ */
-
--- a/loudmouth/inc/lm-sha.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_SHA_H__
-#define __LM_SHA_H__
-
-#include <glib.h>
-
-IMPORT_C const gchar *     lm_sha_hash    (const gchar *str);
-
-#endif /* __LM_SHA_H__ */
--- a/loudmouth/inc/lm-sock.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2006 Imendio AB 
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_SOCK_H__
-#define __LM_SOCK_H__
-
-G_BEGIN_DECLS
-
-#if !defined (LM_INSIDE_LOUDMOUTH_H) && !defined (LM_COMPILATION)
-#error "Only <loudmouth/loudmouth.h> can be included directly, this file may di/sappear or change contents."
-#endif
-
-#include <glib.h>
-
-#ifndef G_OS_WIN32
-
-#include <unistd.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-
-#define _LM_SOCK_EINPROGRESS EINPROGRESS
-#define _LM_SOCK_EWOULDBLOCK EWOULDBLOOK
-#define _LM_SOCK_EALREADY    EALREADY
-#define _LM_SOCK_EISCONN     EISCONN
-#define _LM_SOCK_EINVAL      EINVAL
-
-//added by prima
-//to be removed later when MRT fixes the bug on return of socket connect
-#define _LM_SOCK_EEXISTS EEXIST
-//end added by prima
-
-#define _LM_SOCK_VALID(S)    ((S) >= 0)
-
-#else  /* G_OS_WIN32 */
-
-/* This means that we require Windows XP or above to build on
- * Windows, the reason for this, is that getaddrinfo() and
- * freeaddrinfo() require ws2tcpip.h functions that are only available
- * on these platforms. 
- *
- * This MUST be defined before windows.h is included.
- */
-
-
-#if (_WIN32_WINNT < 0x0501)
-#undef  WINVER
-#define WINVER 0x0501
-#undef  _WIN32_WINNT
-#define _WIN32_WINNT WINVER
-#endif
-
-#include <winsock2.h>
-#include <ws2tcpip.h>
-
-#define _LM_SOCK_EINPROGRESS WSAEINPROGRESS
-#define _LM_SOCK_EWOULDBLOCK WSAEWOULDBLOCK
-#define _LM_SOCK_EALREADY    WSAEALREADY
-#define _LM_SOCK_EISCONN     WSAEISCONN
-#define _LM_SOCK_EINVAL      WSAEINVAL
-#define _LM_SOCK_VALID(S)    ((S) != INVALID_SOCKET)
-
-#endif /* G_OS_WIN32 */
-
-G_END_DECLS
-
-#endif /* __LM_SOCK__ */
--- a/loudmouth/inc/lm-socket.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2006 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_SOCKET_H__ 
-#define __LM_SOCKET_H__
-
-#include <glib.h>
-
-#include "lm-internals.h"
-
-typedef struct _LmSocket LmSocket;
-
-typedef void    (* IncomingDataFunc)  (LmSocket       *socket,
-				       const gchar    *buf,
-				       gpointer        user_data);
-
-typedef void    (* SocketClosedFunc)  (LmSocket       *socket,
-				       LmDisconnectReason reason,
-				       gpointer        user_data);
-
-typedef void    (* ConnectResultFunc) (LmSocket        *socket,
-				       gboolean         result,
-				       gpointer         user_data);
-
-gboolean  lm_socket_output_is_buffered    (LmSocket       *socket,
-					   const gchar    *buffer,
-					   gint            len);
-void      lm_socket_setup_output_buffer   (LmSocket       *socket,
-					   const gchar    *buffer,
-					   gint            len);
-gint      lm_socket_do_write              (LmSocket       *socket,
-					   const gchar    *buf,
-					   gint            len);
-
-LmSocket *  lm_socket_create              (GMainContext   *context, 
-					   IncomingDataFunc data_func,
-					   SocketClosedFunc closed_func,
-					   ConnectResultFunc connect_func,
-					   gpointer         user_data,
-					   LmConnection   *connection,
-					   gboolean        blocking,
-					   const gchar    *server, 
-					   const gchar    *domain,
-					   guint           port, 
-					   LmSSL          *ssl,
-					   LmProxy        *proxy,
-					   GError        **error);
-void        lm_socket_flush               (LmSocket       *socket);
-void        lm_socket_close               (LmSocket       *socket);
-LmSocket *  lm_socket_ref                 (LmSocket       *socket);
-void        lm_socket_unref               (LmSocket       *socket);
-#ifdef HAVE_ASYNCNS
-void	    _asyncns_cancel               (LmSocket *socket);
-#endif
-gboolean    lm_socket_starttls            (LmSocket *socket);
-gboolean    lm_socket_set_keepalive       (LmSocket *socket, int delay);
-gchar *     lm_socket_get_local_host      (LmSocket *socket);
-
-#endif /* __LM_SOCKET_H__ */
-
--- a/loudmouth/inc/lm-ssl-base.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003-2006 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_SSL_BASE_H__
-#define __LM_SSL_BASE_H__
-
-#include "lm-ssl.h"
-
-#define LM_SSL_BASE(x) ((LmSSLBase *) x)
-
-typedef struct _LmSSLBase LmSSLBase;
-struct _LmSSLBase {
-	LmSSLFunction   func;
-	gpointer        func_data;
-	GDestroyNotify  data_notify;
-	gchar          *expected_fingerprint;
-	char            fingerprint[20];
-	gboolean        use_starttls;
-	gboolean        require_starttls;
-
-	gint            ref_count;
-};
-
-void _lm_ssl_base_init         (LmSSLBase      *base, 
-				const gchar    *expected_fingerprint,
-				LmSSLFunction   ssl_function,
-				gpointer        user_data,
-				GDestroyNotify  notify);
-
-void _lm_ssl_base_free_fields  (LmSSLBase      *base);
-
-#endif /* __LM_SSL_BASE_H__ */
--- a/loudmouth/inc/lm-ssl-internals.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003-2006 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_SSL_INTERNALS_H__
-#define __LM_SSL_INTERNALS_H__
-
-#include <glib.h>
-
-LmSSLResponse   _lm_ssl_func_always_continue (LmSSL       *ssl,
-					      LmSSLStatus  status,
-					      gpointer     user_data);
-LmSSL *          _lm_ssl_new              (const gchar    *expected_fingerprint,
-					   LmSSLFunction   ssl_function,
-					   gpointer        user_data,
-					   GDestroyNotify  notify);
-
-void             _lm_ssl_initialize       (LmSSL            *ssl);
-gboolean         _lm_ssl_begin            (LmSSL            *ssl,
-					   gint              fd,
-					   const gchar      *server,
-					   GError          **error);
-GIOStatus        _lm_ssl_read             (LmSSL            *ssl,
-					   gchar            *buf,
-					   gint              len,
-					   gsize             *bytes_read);
-gint             _lm_ssl_send             (LmSSL            *ssl,
-					   const gchar      *str,
-					   gint              len);
-void             _lm_ssl_close            (LmSSL            *ssl);
-void             _lm_ssl_free             (LmSSL            *ssl);
-
-LmSSL *          _lm_ssl_new              (const gchar    *expected_fingerprint,
-					   LmSSLFunction   ssl_function,
-					   gpointer        user_data,
-					   GDestroyNotify  notify);
-
-void             _lm_ssl_initialize       (LmSSL            *ssl);
-gboolean         _lm_ssl_begin            (LmSSL            *ssl,
-					   gint              fd,
-					   const gchar      *server,
-					   GError          **error);
-GIOStatus        _lm_ssl_read             (LmSSL            *ssl,
-					   gchar            *buf,
-					   gint              len,
-					   gsize             *bytes_read);
-gint             _lm_ssl_send             (LmSSL            *ssl,
-					   const gchar      *str,
-					   gint              len);
-void             _lm_ssl_close            (LmSSL            *ssl);
-void             _lm_ssl_free             (LmSSL            *ssl);
-
-#endif /* __LM_SSL_INTERNALS_H__ */
--- a/loudmouth/inc/lm_enums.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef enum_lm
-#define enum_lm
-#include <glib/gmessages.h>
-typedef enum 
-{
-	LM_LOG_LEVEL_VERBOSE = 1 << (G_LOG_LEVEL_USER_SHIFT),
-	LM_LOG_LEVEL_NET     = 1 << (G_LOG_LEVEL_USER_SHIFT+1),
-	LM_LOG_LEVEL_PARSER  = 1 << (G_LOG_LEVEL_USER_SHIFT+2),
-	LM_LOG_LEVEL_SSL     = 1 << (G_LOG_LEVEL_USER_SHIFT+3),
-	LM_LOG_LEVEL_SASL    = 1 << (G_LOG_LEVEL_USER_SHIFT+4),
-	LM_LOG_LEVEL_ALL     = ((1 << ((8) +1)) |
-				(1 << ((8))) |
-				(1 << ((8) +2)) |
-				(1 << ((8) +3)) |
-				(1 << ((8) +4)))
-} LmLogLevelFlags;
-
-#endif
--- a/loudmouth/inc/loudmouth/lm-connection.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_CONNECTION_H__
-#define __LM_CONNECTION_H__
-
-#if !defined (LM_INSIDE_LOUDMOUTH_H) && !defined (LM_COMPILATION)
-#error "Only <loudmouth/loudmouth.h> can be included directly, this file may disappear or change contents."
-#endif
-
-#include "loudmouth/lm-message.h"
-#include "loudmouth/lm-proxy.h"
-#include "loudmouth/lm-ssl.h"
-
-G_BEGIN_DECLS
-
-#define LM_CONNECTION(o) (LmConnection *) o;
-
-#define LM_CONNECTION_DEFAULT_PORT     5222
-#define LM_CONNECTION_DEFAULT_PORT_SSL 5223
-
-typedef struct _LmConnection LmConnection;
-
-typedef struct LmMessageHandler LmMessageHandler;
-
-typedef enum {
-	LM_HANDLER_RESULT_REMOVE_MESSAGE,
-	LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS
-} LmHandlerResult;
- 
-typedef enum {
-	LM_HANDLER_PRIORITY_LAST   = 1,
-	LM_HANDLER_PRIORITY_NORMAL = 2,
-	LM_HANDLER_PRIORITY_FIRST  = 3
-} LmHandlerPriority;
-
-typedef enum {
-	LM_DISCONNECT_REASON_OK,
-	LM_DISCONNECT_REASON_PING_TIME_OUT,
-	LM_DISCONNECT_REASON_HUP,
-	LM_DISCONNECT_REASON_ERROR,
-	LM_DISCONNECT_REASON_RESOURCE_CONFLICT,
-	LM_DISCONNECT_REASON_INVALID_XML,
-	LM_DISCONNECT_REASON_UNKNOWN
-} LmDisconnectReason;
-
-typedef enum {
-	LM_CONNECTION_STATE_CLOSED,
-	LM_CONNECTION_STATE_OPENING,
-	LM_CONNECTION_STATE_OPEN,
-	LM_CONNECTION_STATE_AUTHENTICATING,
-	LM_CONNECTION_STATE_AUTHENTICATED
-} LmConnectionState;
-
-typedef void          (* LmResultFunction)     (LmConnection       *connection,
-						gboolean            success,
-						gpointer            user_data);
-
-typedef void          (* LmDisconnectFunction) (LmConnection       *connection,
-						LmDisconnectReason  reason,
-						gpointer            user_data);
-
-IMPORT_C LmConnection *lm_connection_new               (const gchar        *server);
-IMPORT_C LmConnection *lm_connection_new_with_context  (const gchar        *server,
-					       GMainContext       *context);
-IMPORT_C gboolean      lm_connection_open              (LmConnection       *connection,
-					       LmResultFunction    function,
-					       gpointer            user_data,
-					       GDestroyNotify      notify,
-					       GError            **error);
-
-IMPORT_C gboolean      lm_connection_open_and_block    (LmConnection       *connection,
-					       GError            **error);
-
-IMPORT_C void          lm_connection_cancel_open       (LmConnection      *connection);
-IMPORT_C gboolean      lm_connection_close             (LmConnection       *connection,
-					       GError            **error);
-IMPORT_C gboolean      lm_connection_authenticate      (LmConnection       *connection,
-					       const gchar        *username,
-					       const gchar        *password,
-					       const gchar        *resource,
-					       LmResultFunction    function,
-					       gpointer            user_data,
-					       GDestroyNotify      notify,
-					       GError            **error);
-IMPORT_C gboolean
-lm_connection_authenticate_and_block          (LmConnection       *connection,
-					       const gchar        *username,
-					       const gchar        *password,
-					       const gchar        *resource,
-					       GError            **error);
-IMPORT_C guint         lm_connection_get_keep_alive_rate (LmConnection     *connection);
-IMPORT_C void        lm_connection_set_keep_alive_rate (LmConnection       *connection,
-					       guint               rate);
-
-IMPORT_C gboolean    lm_connection_is_open           (LmConnection       *connection);
-IMPORT_C gboolean    lm_connection_is_authenticated  (LmConnection       *connection);
-
-IMPORT_C const gchar * lm_connection_get_server        (LmConnection       *connection);
-IMPORT_C void          lm_connection_set_server        (LmConnection       *connection,
-					       const gchar        *server);
-IMPORT_C void          lm_connection_set_jid           (LmConnection       *connection,
-					       const gchar        *jid);
-IMPORT_C const gchar * lm_connection_get_jid           (LmConnection       *connection);
-IMPORT_C gchar *       lm_connection_get_full_jid      (LmConnection       *connection);
-
-IMPORT_C guint         lm_connection_get_port          (LmConnection       *connection);
-IMPORT_C void          lm_connection_set_port          (LmConnection       *connection,
-					       guint               port);
-
-IMPORT_C LmSSL *       lm_connection_get_ssl           (LmConnection       *connection);
-IMPORT_C void          lm_connection_set_ssl           (LmConnection       *connection,
-					       LmSSL              *ssl);
-IMPORT_C LmProxy *     lm_connection_get_proxy         (LmConnection       *connection);
-IMPORT_C void          lm_connection_set_proxy         (LmConnection       *connection,
-					       LmProxy            *proxy);
-IMPORT_C gboolean      lm_connection_send              (LmConnection       *connection,
-					       LmMessage          *message,
-					       GError            **error);
-IMPORT_C gboolean      lm_connection_send_with_reply   (LmConnection       *connection,
-					       LmMessage          *message,
-					       LmMessageHandler   *handler,
-					       GError            **error);
-IMPORT_C LmMessage *   
-lm_connection_send_with_reply_and_block       (LmConnection       *connection,
-					       LmMessage          *message,
-					       GError            **error);
-IMPORT_C void
-lm_connection_register_message_handler        (LmConnection       *connection,
-					       LmMessageHandler   *handler,
-					       LmMessageType       type,
-					       LmHandlerPriority   priority);
-IMPORT_C void
-lm_connection_unregister_message_handler      (LmConnection       *connection,
-					       LmMessageHandler   *handler,
-					       LmMessageType       type);
-IMPORT_C void 
-lm_connection_set_disconnect_function         (LmConnection       *connection,
-					       LmDisconnectFunction function,
-					       gpointer             user_data,
-					       GDestroyNotify       notify);
-					       
-IMPORT_C gboolean      lm_connection_send_raw          (LmConnection       *connection,
-					       const gchar        *str,
-					       GError            **error);
-IMPORT_C LmConnectionState lm_connection_get_state     (LmConnection       *connection);
-IMPORT_C gchar *       lm_connection_get_local_host    (LmConnection       *connection);
-IMPORT_C LmConnection* lm_connection_ref               (LmConnection       *connection);
-IMPORT_C void          lm_connection_unref             (LmConnection       *connection);
-
-gboolean
-_lm_connection_old_auth (LmConnection *connection, const gchar *username,
-			 const gchar *password, const gchar *resource,
-			 GError **errror);
-
-G_END_DECLS
-
-#endif /* __LM_CONNECTION_H__ */
--- a/loudmouth/inc/loudmouth/lm-error.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_ERROR_H__
-#define __LM_ERROR_H__
-
-#if !defined (LM_INSIDE_LOUDMOUTH_H) && !defined (LM_COMPILATION)
-#error "Only <loudmouth/loudmouth.h> can be included directly, this file may disappear or change contents."
-#endif
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-#define LM_ERROR lm_error_quark ()
-
-typedef enum {
-        LM_ERROR_CONNECTION_NOT_OPEN,
-        LM_ERROR_CONNECTION_OPEN,
-        LM_ERROR_AUTH_FAILED,
-	LM_ERROR_CONNECTION_FAILED
-} LmError;
-
-IMPORT_C GQuark lm_error_quark (void) G_GNUC_CONST;
-
-G_END_DECLS
-
-#endif /* __LM_ERROR_H__ */
--- a/loudmouth/inc/loudmouth/lm-message-handler.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_MESSAGE_HANDLER_H__
-#define __LM_MESSAGE_HANDLER_H__
-
-#if !defined (LM_INSIDE_LOUDMOUTH_H) && !defined (LM_COMPILATION)
-#error "Only <loudmouth/loudmouth.h> can be included directly, this file may disappear or change contents."
-#endif
-
-#include "loudmouth/lm-connection.h"
-
-G_BEGIN_DECLS
-
-typedef LmHandlerResult (* LmHandleMessageFunction) (LmMessageHandler *handler,
-						     LmConnection     *connection,
-						     LmMessage        *message,
-						     gpointer          user_data);
-
-IMPORT_C LmMessageHandler *lm_message_handler_new   (LmHandleMessageFunction  function,
-					    gpointer                 user_data,
-					    GDestroyNotify           notify);
-IMPORT_C void              lm_message_handler_invalidate (LmMessageHandler   *handler);
-IMPORT_C gboolean          lm_message_handler_is_valid   (LmMessageHandler   *handler);
-IMPORT_C LmMessageHandler *lm_message_handler_ref   (LmMessageHandler        *handler);
-IMPORT_C void              lm_message_handler_unref (LmMessageHandler        *handler);
-
-G_END_DECLS
-
-#endif /* __LM_MESSAGE_HANDLER_H__ */
-
--- a/loudmouth/inc/loudmouth/lm-message-node.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_MESSAGE_NODE_H__
-#define __LM_MESSAGE_NODE_H__
-
-#if !defined (LM_INSIDE_LOUDMOUTH_H) && !defined (LM_COMPILATION)
-#error "Only <loudmouth/loudmouth.h> can be included directly, this file may disappear or change contents."
-#endif
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-typedef struct _LmMessageNode LmMessageNode;
-
-struct _LmMessageNode {
-	gchar      *name;
-	gchar      *value;
-	gboolean    raw_mode;
-
-        LmMessageNode     *next;
-        LmMessageNode     *prev;
-	LmMessageNode     *parent;
-        LmMessageNode     *children;
-
-	/* < private > */
-	GSList     *attributes;
-	gint        ref_count;
-};
-
-IMPORT_C const gchar *  lm_message_node_get_value      (LmMessageNode *node);
-IMPORT_C void           lm_message_node_set_value      (LmMessageNode *node,
-					       const gchar   *value);
-IMPORT_C LmMessageNode *lm_message_node_add_child      (LmMessageNode *node,
-					       const gchar   *name,
-					       const gchar   *value);
-IMPORT_C void           lm_message_node_set_attributes (LmMessageNode *node,
-					       const gchar   *name,
-					       ...);
-IMPORT_C void           lm_message_node_set_attribute  (LmMessageNode *node,
-					       const gchar   *name,
-					       const gchar   *value);
-IMPORT_C const gchar *  lm_message_node_get_attribute  (LmMessageNode *node,
-					       const gchar   *name);
-IMPORT_C LmMessageNode *lm_message_node_get_child      (LmMessageNode *node,
-					       const gchar   *child_name);
-IMPORT_C LmMessageNode *lm_message_node_find_child     (LmMessageNode *node,
-					       const gchar   *child_name);
-IMPORT_C gboolean       lm_message_node_get_raw_mode   (LmMessageNode *node);
-IMPORT_C void           lm_message_node_set_raw_mode   (LmMessageNode *node,
-					       gboolean       raw_mode);
-IMPORT_C LmMessageNode *lm_message_node_ref            (LmMessageNode *node);
-IMPORT_C void           lm_message_node_unref          (LmMessageNode *node);
-IMPORT_C gchar *        lm_message_node_to_string      (LmMessageNode *node);
-
-G_END_DECLS
-
-#endif /* __LM_MESSAGE_NODE_H__ */
--- a/loudmouth/inc/loudmouth/lm-message.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_MESSAGE_H__
-#define __LM_MESSAGE_H__
-
-#if !defined (LM_INSIDE_LOUDMOUTH_H) && !defined (LM_COMPILATION)
-#error "Only <loudmouth/loudmouth.h> can be included directly, this file may disappear or change contents."
-#endif
-
-#include "loudmouth/lm-message-node.h"
-
-G_BEGIN_DECLS
-
-typedef struct LmMessagePriv LmMessagePriv;
-
-typedef struct {
-	LmMessageNode *node;
-
-	LmMessagePriv *priv;
-} LmMessage;
-
-typedef enum {
-	LM_MESSAGE_TYPE_MESSAGE,
-	LM_MESSAGE_TYPE_PRESENCE,
-	LM_MESSAGE_TYPE_IQ,
-	LM_MESSAGE_TYPE_STREAM,
-	LM_MESSAGE_TYPE_STREAM_ERROR,
-	LM_MESSAGE_TYPE_STREAM_FEATURES,
-	LM_MESSAGE_TYPE_AUTH,
-	LM_MESSAGE_TYPE_CHALLENGE,
-	LM_MESSAGE_TYPE_RESPONSE,
-	LM_MESSAGE_TYPE_SUCCESS,
-	LM_MESSAGE_TYPE_FAILURE,
-	LM_MESSAGE_TYPE_PROCEED,
-	LM_MESSAGE_TYPE_STARTTLS,
-	LM_MESSAGE_TYPE_UNKNOWN
-} LmMessageType;
-
-typedef enum {
-        LM_MESSAGE_SUB_TYPE_NOT_SET = -10,
-	LM_MESSAGE_SUB_TYPE_AVAILABLE = -1,
-	LM_MESSAGE_SUB_TYPE_NORMAL = 0,
-	LM_MESSAGE_SUB_TYPE_CHAT,
-        LM_MESSAGE_SUB_TYPE_GROUPCHAT,
-        LM_MESSAGE_SUB_TYPE_HEADLINE,
-        LM_MESSAGE_SUB_TYPE_UNAVAILABLE,
-        LM_MESSAGE_SUB_TYPE_PROBE,
-        LM_MESSAGE_SUB_TYPE_SUBSCRIBE,
-        LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE,
-        LM_MESSAGE_SUB_TYPE_SUBSCRIBED,
-        LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED,
-	LM_MESSAGE_SUB_TYPE_GET,
-	LM_MESSAGE_SUB_TYPE_SET,
-	LM_MESSAGE_SUB_TYPE_RESULT,
-	LM_MESSAGE_SUB_TYPE_ERROR
-} LmMessageSubType;
-
-IMPORT_C LmMessage *      lm_message_new               (const gchar      *to,
-					       LmMessageType     type);
-IMPORT_C LmMessage *      lm_message_new_with_sub_type (const gchar      *to,
-					       LmMessageType     type,
-					       LmMessageSubType  sub_type);
-IMPORT_C LmMessageType    lm_message_get_type          (LmMessage        *message);
-IMPORT_C LmMessageSubType lm_message_get_sub_type      (LmMessage        *message);
-IMPORT_C LmMessageNode *  lm_message_get_node          (LmMessage        *message);
-IMPORT_C LmMessage *      lm_message_ref               (LmMessage        *message);
-IMPORT_C void             lm_message_unref             (LmMessage        *message);
-
-G_END_DECLS
-
-#endif /* __LM_MESSAGE_H__ */
--- a/loudmouth/inc/loudmouth/lm-proxy.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2004 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __LM_PROXY_H__
-#define __LM_PROXY_H__
-
-#if !defined (LM_INSIDE_LOUDMOUTH_H) && !defined (LM_COMPILATION)
-#error "Only <loudmouth/loudmouth.h> can be included directly, this file may disappear or change contents."
-#endif
-
-G_BEGIN_DECLS
-
-typedef struct _LmProxy LmProxy;
-
-typedef enum {
-	LM_PROXY_TYPE_NONE = 0,
-	LM_PROXY_TYPE_HTTP
-} LmProxyType;
-
-IMPORT_C LmProxy *     lm_proxy_new              (LmProxyType         type);
-IMPORT_C LmProxy *     lm_proxy_new_with_server  (LmProxyType         type,
-					 const gchar        *server,
-					 guint               port);
-
-IMPORT_C LmProxyType   lm_proxy_get_type         (LmProxy            *proxy);
-IMPORT_C void          lm_proxy_set_type         (LmProxy            *proxy,
-					 LmProxyType         type);
-
-IMPORT_C const gchar * lm_proxy_get_server       (LmProxy            *proxy);
-IMPORT_C void          lm_proxy_set_server       (LmProxy            *proxy,
-					 const gchar        *server);
-
-IMPORT_C guint         lm_proxy_get_port         (LmProxy            *proxy);
-IMPORT_C void          lm_proxy_set_port         (LmProxy            *proxy,
-					 guint               port);
-
-IMPORT_C const gchar * lm_proxy_get_username     (LmProxy            *proxy);
-IMPORT_C void          lm_proxy_set_username     (LmProxy            *proxy,
-					 const gchar        *username);
-
-IMPORT_C const gchar * lm_proxy_get_password     (LmProxy            *proxy);
-IMPORT_C void          lm_proxy_set_password     (LmProxy            *proxy,
-					 const gchar        *password);
-
-IMPORT_C LmProxy *     lm_proxy_ref              (LmProxy            *proxy);
-IMPORT_C void          lm_proxy_unref            (LmProxy            *proxy);
-
-G_END_DECLS
-#endif /* __LM_PROXY_H__ */
-
--- a/loudmouth/inc/loudmouth/lm-ssl.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003-2004 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_SSL_H__
-#define __LM_SSL_H__
-
-#include <glib.h>
-
-#if !defined (LM_INSIDE_LOUDMOUTH_H) && !defined (LM_COMPILATION)
-#error "Only <loudmouth/loudmouth.h> can be included directly, this file may disappear or change contents."
-#endif
-
-G_BEGIN_DECLS
-
-typedef struct _LmSSL LmSSL;
-
-typedef enum {
-	LM_CERT_INVALID,
-	LM_CERT_ISSUER_NOT_FOUND,
-	LM_CERT_REVOKED
-} LmCertificateStatus;
-
-typedef enum {
-	LM_SSL_STATUS_NO_CERT_FOUND,	
-	LM_SSL_STATUS_UNTRUSTED_CERT,
-	LM_SSL_STATUS_CERT_EXPIRED,
-	LM_SSL_STATUS_CERT_NOT_ACTIVATED,
-	LM_SSL_STATUS_CERT_HOSTNAME_MISMATCH,			
-	LM_SSL_STATUS_CERT_FINGERPRINT_MISMATCH,			
-	LM_SSL_STATUS_GENERIC_ERROR
-} LmSSLStatus;
-
-typedef enum {
-	LM_SSL_RESPONSE_CONTINUE,
-	LM_SSL_RESPONSE_STOP
-} LmSSLResponse;
-
-typedef LmSSLResponse (* LmSSLFunction)      (LmSSL        *ssl,
-					      LmSSLStatus   status,
-					      gpointer      user_data);
-
-IMPORT_C LmSSL *               lm_ssl_new             (const gchar *expected_fingerprint,
-					      LmSSLFunction   ssl_function,
-					      gpointer        user_data,
-					      GDestroyNotify  notify);
-
-IMPORT_C gboolean              lm_ssl_is_supported    (void);
-
-IMPORT_C const gchar *         lm_ssl_get_fingerprint (LmSSL          *ssl);
-
-IMPORT_C void                  lm_ssl_use_starttls    (LmSSL *ssl,
-					      gboolean use_starttls,
-					      gboolean require);
-
-gboolean              lm_ssl_get_use_starttls (LmSSL *ssl);
-
-gboolean              lm_ssl_get_require_starttls (LmSSL *ssl);
-
-IMPORT_C LmSSL *               lm_ssl_ref             (LmSSL          *ssl);
-IMPORT_C void                  lm_ssl_unref           (LmSSL          *ssl);
-
-G_END_DECLS
-
-#endif /* __LM_SSL_H__ */
--- a/loudmouth/inc/loudmouth/lm-utils.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LM_UTILS_H__
-#define __LM_UTILS_H__
-
-#if !defined (LM_INSIDE_LOUDMOUTH_H) && !defined (LM_COMPILATION)
-#error "Only <loudmouth/loudmouth.h> can be included directly, this file may di/sappear or change contents."
-#endif
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-IMPORT_C struct tm *lm_utils_get_localtime (const gchar *stamp);
-
-G_END_DECLS
-
-#endif /* __LM_UTILS_H__ */
--- a/loudmouth/inc/loudmouth/loudmouth.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __LOUDMOUTH_H__
-#define __LOUDMOUTH_H__
-
-#define LM_INSIDE_LOUDMOUTH_H 1
-
-#include "loudmouth/lm-connection.h"
-#include "loudmouth/lm-error.h"
-#include "loudmouth/lm-message.h"
-#include "loudmouth/lm-message-handler.h"
-#include "loudmouth/lm-message-node.h"
-#include "loudmouth/lm-proxy.h"
-#include "loudmouth/lm-utils.h"
-#include "loudmouth/lm-ssl.h"
-
-#undef LM_INSIDE_LOUDMOUTH_H
-
-#endif /* __LOUDMOUTH_H__ */
--- a/loudmouth/inc/md5.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-  Copyright (C) 1999, 2002 Aladdin Enterprises.  All rights reserved.
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  L. Peter Deutsch
-  ghost@aladdin.com
-
- */
-/* $Id: md5.h,v 1.4 2002/04/13 19:20:28 lpd Exp $ */
-/*
-  Independent implementation of MD5 (RFC 1321).
-
-  This code implements the MD5 Algorithm defined in RFC 1321, whose
-  text is available at
-	http://www.ietf.org/rfc/rfc1321.txt
-  The code is derived from the text of the RFC, including the test suite
-  (section A.5) but excluding the rest of Appendix A.  It does not include
-  any code or documentation that is identified in the RFC as being
-  copyrighted.
-
-  The original and principal author of md5.h is L. Peter Deutsch
-  <ghost@aladdin.com>.  Other authors are noted in the change history
-  that follows (in reverse chronological order):
-
-  2002-04-13 lpd Removed support for non-ANSI compilers; removed
-	references to Ghostscript; clarified derivation from RFC 1321;
-	now handles byte order either statically or dynamically.
-  1999-11-04 lpd Edited comments slightly for automatic TOC extraction.
-  1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5);
-	added conditionalization for C++ compilation from Martin
-	Purschke <purschke@bnl.gov>.
-  1999-05-03 lpd Original version.
- */
-
-#ifndef md5_INCLUDED
-#  define md5_INCLUDED
-
-/*
- * This package supports both compile-time and run-time determination of CPU
- * byte order.  If ARCH_IS_BIG_ENDIAN is defined as 0, the code will be
- * compiled to run only on little-endian CPUs; if ARCH_IS_BIG_ENDIAN is
- * defined as non-zero, the code will be compiled to run only on big-endian
- * CPUs; if ARCH_IS_BIG_ENDIAN is not defined, the code will be compiled to
- * run on either big- or little-endian CPUs, but will run slightly less
- * efficiently on either one than if ARCH_IS_BIG_ENDIAN is defined.
- */
-
-typedef unsigned char md5_byte_t; /* 8-bit byte */
-typedef unsigned int md5_word_t; /* 32-bit word */
-
-/* Define the state of the MD5 Algorithm. */
-typedef struct md5_state_s {
-    md5_word_t count[2];	/* message length in bits, lsw first */
-    md5_word_t abcd[4];		/* digest buffer */
-    md5_byte_t buf[64];		/* accumulate block */
-} md5_state_t;
-
-#ifdef __cplusplus
-extern "C" 
-{
-#endif
-
-/* Initialize the algorithm. */
-void md5_init(md5_state_t *pms);
-
-/* Append a string to the message. */
-void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes);
-
-/* Finish the message and return the digest. */
-void md5_finish(md5_state_t *pms, md5_byte_t digest[16]);
-
-#ifdef __cplusplus
-}  /* end extern "C" */
-#endif
-
-#endif /* md5_INCLUDED */
--- a/loudmouth/install/loudmouth.bat	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
- * loudmouth.bat
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * -- LET'S DISCO!!!  \o/ \o_ _o/ /\o/\ _/o/- -\o\_ --
- */
-
-@ECHO OFF
-makesis loudmouth.pkg
-signsis loudmouth.sis loudmouth.sisx rd.cer rd-key.pem
--- a/loudmouth/install/loudmouth.pkg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-; ============================================================================
-;  Name        : loudmouth.pkg
-;  Part of     : OpenC project
-;  Description : package file for all openc libraries
-;
-;
-;	
-;	All rights reserved.
-;
-;	Redistribution and use in source and binary forms, with or without 
-;	modification, are permitted provided that the following conditions are met:
-; 	* Redistributions of source code must retain the above copyright notice, this 
-;  	  list of conditions and the following disclaimer. 
-; 	* Redistributions in binary form must reproduce the above copyright notice, 
-;   	this list of conditions and the following disclaimer in the documentation 
-;   	and/or other materials provided with the distribution. 
-; 	*	Neither the name of the <ORGANIZATION> nor the names of its contributors 
-;   	may be used to endorse or promote products derived from this software 
-;   	without specific prior written permission. 
-;   
-;	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
-;	AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
-;	IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
-;	DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-;	FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
-;	DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
-;	SERVICES, LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
-;	CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-;	OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
-;	OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-; ===========================================================================
-;Languages
-&EN
-
-;Header
-#{"loudmouth-pkg"},(0x19207369),1,0,0
-
-;Localised Vendor name
-%{"Nokia Testing EN"}
-
-;Unique Vendor name
-:"Vendor"
-
-;INI FILE
-;  "\epoc32\winscw\c\testframework\testframework.ini"        -   "c:\testframework\testframework_tlm.ini"
-
-;CFG FILES
-  "\epoc32\winscw\c\testframework\tstlm_gtalk.cfg"                  - "c:\testframework\tstlm_gtalk.cfg"
-  "\epoc32\winscw\c\testframework\tstlm_gtalk1.cfg"                  - "c:\testframework\tstlm_gtalk1.cfg"
-
-
-;TEST EXE
-"\epoc32\release\ARMV5\urel\tstlm.dll"   	              - "!:\Sys\Bin\tstlm.dll"
-
-;loudmouth
-;"\epoc32\release\armv5\urel\loudmouth.dll"                    - "!:\sys\bin\loudmouth.dll"
--- a/loudmouth/rom/loudmouth.iby	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * loudmouth.iby
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * -- LET'S DISCO!!!  \o/ \o_ _o/ /\o/\ _/o/- -\o\_ --
- */
-#ifndef __LOUDMOUTH_IBY__
-#define __LOUDMOUTH_IBY__
-
-//Loudmouth DLLs
-file=ABI_DIR\BUILD_DIR\loudmouth.dll        				SHARED_LIB_DIR\loudmouth.dll
-
-// mecostub SIS, provides support for SIS upgrading
-//data=DATAZ_\system\install\meco_stub.sis     system\install\meco_stub.sis
-
-#endif
-
-
--- a/loudmouth/src/asyncns.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1143 +0,0 @@
-/* $Id: asyncns.c 27 2007-02-16 13:51:03Z lennart $ */
-
-/***
-  This file is part of libasyncns.
-  Copyright (C) 2006 Collabora Ltd.
-  
-  libasyncns is free software; you can redistribute it and/or modify
-  it under the terms of the GNU Lesser General Public License as
-  published by the Free Software Foundation; either version 2 of the
-  License, or (at your option) any later version.
- 
-  libasyncns is distributed in the hope that it will be useful, but
-  WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-  General Public License for more details.
- 
-  You should have received a copy of the GNU Lesser General Public
-  License along with libasyncns; if not, write to the Free Software
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-  USA.
-***/
-
-/*#undef HAVE_PTHREAD */
-
-#include <assert.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <unistd.h>
-#include <sys/select.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <sys/wait.h>
-#include <sys/types.h>
-#include <pwd.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#ifdef HAVE_SYS_PRCTL_H
-#include <sys/prctl.h>
-#endif
-
-#if HAVE_PTHREAD
-#include <pthread.h>
-#endif
-
-#include "asyncns.h"
-
-#define MAX_WORKERS 16
-#define MAX_QUERIES 256
-#define BUFSIZE (10240)
-
-typedef enum {
-    REQUEST_ADDRINFO,
-    RESPONSE_ADDRINFO,
-    REQUEST_NAMEINFO,
-    RESPONSE_NAMEINFO,
-    REQUEST_RES_QUERY,
-    REQUEST_RES_SEARCH,
-    RESPONSE_RES,
-    REQUEST_TERMINATE
-} query_type_t;
-
-enum {
-    REQUEST_RECV_FD = 0,
-    REQUEST_SEND_FD = 1,
-    RESPONSE_RECV_FD = 2,
-    RESPONSE_SEND_FD = 3
-};
-
-struct asyncns {
-    int fds[4];
-
-#ifndef HAVE_PTHREAD    
-    pid_t workers[MAX_WORKERS];
-#else
-    pthread_t workers[MAX_WORKERS];
-#endif
-    unsigned valid_workers;
-
-    unsigned current_id, current_index;
-    asyncns_query_t* queries[MAX_QUERIES];
-
-    asyncns_query_t *done_head, *done_tail;
-
-    int n_queries;
-};
-
-struct asyncns_query {
-    asyncns_t *asyncns;
-    int done;
-    unsigned id;
-    query_type_t type;
-    asyncns_query_t *done_next, *done_prev;
-    int ret;
-    struct addrinfo *addrinfo;
-    char *serv, *host;
-    void *userdata;
-};
-
-typedef struct rheader {
-    query_type_t type;
-    unsigned id;
-    size_t length;
-} rheader_t;
-
-typedef struct addrinfo_request {
-    struct rheader header;
-    int hints_is_null;
-    int ai_flags;
-    int ai_family;
-    int ai_socktype;
-    int ai_protocol;
-    size_t node_len, service_len;
-} addrinfo_request_t;
-
-typedef struct addrinfo_response {
-    struct rheader header;
-    int ret;
-} addrinfo_response_t;
-
-typedef struct addrinfo_serialization {
-    int ai_flags;
-    int ai_family;
-    int ai_socktype;
-    int ai_protocol;
-    size_t ai_addrlen;
-    size_t canonname_len;
-} addrinfo_serialization_t;
-
-typedef struct nameinfo_request {
-    struct rheader header;
-    int flags;
-    socklen_t sockaddr_len;
-    int gethost, getserv;
-} nameinfo_request_t;
-
-typedef struct nameinfo_response {
-    struct rheader header;
-    size_t hostlen, servlen;
-    int ret;
-} nameinfo_response_t;
-
-typedef struct res_query_request {
-    struct rheader header;
-    int class;
-    int type;
-    size_t dlen;
-} res_request_t;
-
-typedef struct res_query_response {
-    struct rheader header;
-    int ret;
-} res_response_t;
-
-#ifndef HAVE_STRNDUP
-
-static char *strndup(const char *s, size_t l) {
-    size_t a;
-    char *n;
-
-    a = strlen(s);
-    if (a > l)
-        a = l;
-
-    if (!(n = malloc(a+1)))
-        return NULL;
-
-    strncpy(n, s, a);
-    n[a] = 0;
-
-    return n;
-}
-
-#endif
-
-static int fd_nonblock(int fd) {
-    int i;
-    assert(fd >= 0);
-
-    if ((i = fcntl(fd, F_GETFL, 0)) < 0)
-        return -1;
-
-    if (i & O_NONBLOCK)
-        return 0;
-
-    return fcntl(fd, F_SETFL, i | O_NONBLOCK);
-}
-
-static int fd_cloexec(int fd) {
-    int v;
-    assert(fd >= 0);
-
-    if ((v = fcntl(fd, F_GETFD, 0)) < 0)
-        return -1;
-
-    if (v & FD_CLOEXEC)
-        return 0;
-    
-    return fcntl(fd, F_SETFD, v | FD_CLOEXEC);
-}
-
-
-static void *serialize_addrinfo(void *p, const struct addrinfo *ai, size_t *length, size_t maxlength) {
-    addrinfo_serialization_t *s = p;
-    size_t cnl, l;
-    assert(p);
-    assert(ai);
-    assert(length);
-    assert(*length <= maxlength);
-
-    cnl = (ai->ai_canonname ? strlen(ai->ai_canonname)+1 : 0);
-    l = sizeof(addrinfo_serialization_t) + ai->ai_addrlen + cnl;
-
-    if (*length + l > maxlength)
-        return NULL;
-
-    s->ai_flags = ai->ai_flags;
-    s->ai_family = ai->ai_family;
-    s->ai_socktype = ai->ai_socktype;
-    s->ai_protocol = ai->ai_protocol;
-    s->ai_addrlen = ai->ai_addrlen;
-    s->canonname_len = cnl;
-
-    memcpy((uint8_t*) p + sizeof(addrinfo_serialization_t), ai->ai_addr, ai->ai_addrlen);
-
-    if (ai->ai_canonname)
-        strcpy((char*) p + sizeof(addrinfo_serialization_t) + ai->ai_addrlen, ai->ai_canonname);
-
-    *length += l;
-    return (uint8_t*) p + l;
-}
-
-static int send_addrinfo_reply(int out_fd, unsigned id, int ret, struct addrinfo *ai) {
-    uint8_t data[BUFSIZE];
-    addrinfo_response_t *resp = (addrinfo_response_t*) data;
-    assert(out_fd >= 0);
-
-    resp->header.type = RESPONSE_ADDRINFO;
-    resp->header.id = id;
-    resp->header.length = sizeof(addrinfo_response_t);
-    resp->ret = ret;
-
-    if (ret == 0 && ai) {
-        void *p = data + sizeof(addrinfo_response_t);
-
-        while (ai && p) {
-            p = serialize_addrinfo(p, ai, &resp->header.length, BUFSIZE);
-            ai = ai->ai_next;
-        }
-    }
-
-    if (ai)
-        freeaddrinfo(ai);
-
-    return send(out_fd, resp, resp->header.length, 0);
-}
-
-static int send_nameinfo_reply(int out_fd, unsigned id, int ret, const char *host, const char *serv) {
-    uint8_t data[BUFSIZE];
-    size_t hl, sl;
-    nameinfo_response_t *resp = (nameinfo_response_t*) data;
-
-    assert(out_fd >= 0);
-    
-    sl = serv ? strlen(serv)+1 : 0;
-    hl = host ? strlen(host)+1 : 0;
-
-    resp->header.type = RESPONSE_NAMEINFO;
-    resp->header.id = id;
-    resp->header.length = sizeof(nameinfo_response_t) + hl + sl;
-    resp->ret = ret;
-    resp->hostlen = hl;
-    resp->servlen = sl;
-
-    assert(sizeof(data) >= resp->header.length);
-    
-    if (host)
-        memcpy(data + sizeof(nameinfo_response_t), host, hl);
-
-    if (serv)
-        memcpy(data + sizeof(nameinfo_response_t) + hl, serv, sl);
-    
-    return send(out_fd, resp, resp->header.length, 0);
-}
-
-static int send_res_reply(int out_fd, unsigned id, const unsigned char *answer, int ret) {
-    uint8_t data[BUFSIZE];
-    res_response_t *resp = (res_response_t *) data;
-
-    assert(out_fd >= 0);
-    
-    resp->header.type = RESPONSE_RES;
-    resp->header.id = id;
-    resp->header.length = sizeof(res_response_t) + (ret < 0 ? 0 : ret);
-    resp->ret = (ret < 0) ? -errno : ret;
-
-    assert(sizeof(data) >= resp->header.length);
-    
-    if (ret > 0)
-        memcpy(data + sizeof(res_response_t), answer, ret);
-
-    return send(out_fd, resp, resp->header.length, 0);
-}
-
-static int handle_request(int out_fd, const rheader_t *req, size_t length) {
-    assert(out_fd >= 0);
-    assert(req);
-    assert(length >= sizeof(rheader_t));
-    assert(length == req->length);
-
-    switch (req->type) {
-        case REQUEST_ADDRINFO: {
-            struct addrinfo ai, *result = NULL;
-            const addrinfo_request_t *ai_req = (const addrinfo_request_t*) req;
-            const char *node, *service;
-            int ret;
-
-            assert(length >= sizeof(addrinfo_request_t));
-            assert(length == sizeof(addrinfo_request_t) + ai_req->node_len + ai_req->service_len);
-
-            memset(&ai, 0, sizeof(ai));
-            ai.ai_flags = ai_req->ai_flags;
-            ai.ai_family = ai_req->ai_family;
-            ai.ai_socktype = ai_req->ai_socktype;
-            ai.ai_protocol = ai_req->ai_protocol;
-
-            node = ai_req->node_len ? (const char*) req + sizeof(addrinfo_request_t) : NULL;
-            service = ai_req->service_len ? (const char*) req + sizeof(addrinfo_request_t) + ai_req->node_len : NULL;
-
-            /*printf("[getaddrinfo for '%s']\n", node);*/
-            ret = getaddrinfo(node, service,
-                              ai_req->hints_is_null ? NULL : &ai,
-                              &result);
-            /*printf("[return value: %d: '%s']\n", ret, gai_strerror(ret));*/
-
-            /* send_addrinfo_reply() frees result */
-            return send_addrinfo_reply(out_fd, req->id, ret, result);
-        }
-
-        case REQUEST_NAMEINFO: {
-            int ret;
-            const nameinfo_request_t *ni_req = (const nameinfo_request_t*) req;
-            char hostbuf[NI_MAXHOST], servbuf[NI_MAXSERV];
-            const struct sockaddr *sa;
-            
-            assert(length >= sizeof(nameinfo_request_t));
-            assert(length == sizeof(nameinfo_request_t) + ni_req->sockaddr_len);
-
-            sa = (const struct sockaddr*) ((const char*) req + sizeof(nameinfo_request_t));
-            
-            ret = getnameinfo(sa, ni_req->sockaddr_len,
-                              ni_req->gethost ? hostbuf : NULL, ni_req->gethost ? sizeof(hostbuf) : 0,
-                              ni_req->getserv ? servbuf : NULL, ni_req->getserv ? sizeof(servbuf) : 0,
-                              ni_req->flags);
-
-            return send_nameinfo_reply(out_fd, req->id, ret,
-                                       ret == 0 && ni_req->gethost ? hostbuf : NULL,
-                                       ret == 0 && ni_req->getserv ? servbuf : NULL);
-        }
-
-        case REQUEST_RES_QUERY: 
-        case REQUEST_RES_SEARCH: {
-            int ret;
-            unsigned char answer[BUFSIZE];
-            const res_request_t *res_req = (const res_request_t *)req;
-            const char *dname;
-
-            assert(length >= sizeof(res_request_t));
-            assert(length == sizeof(res_request_t) + res_req->dlen + 1);
-
-            dname = (const char *) req + sizeof(res_request_t);
-
-            if (req->type == REQUEST_RES_QUERY) { 
-                /*printf("[res query for '%s']\n", dname);*/
-                ret = res_query(dname, res_req->class, res_req->type, 
-                                answer, BUFSIZE);
-                /*printf("[return value: %d]\n", ret);*/
-            } else {
-                ret = res_search(dname, res_req->class, res_req->type, 
-                                 answer, BUFSIZE);
-            }
-            return send_res_reply(out_fd, req->id, answer, ret);
-        }
-
-        case REQUEST_TERMINATE: {
-            /* Quit */
-            return -1;
-        }
-
-        default:
-            ;
-    }
-
-    return 0;
-}
-
-#ifndef HAVE_PTHREAD
-
-static int process_worker(int in_fd, int out_fd) {
-    int have_death_sig = 0;
-    assert(in_fd > 2);
-    assert(out_fd > 2);
-    
-    close(0);
-    close(1);
-    close(2);
-
-    open("/dev/null", O_RDONLY);
-    open("/dev/null", O_WRONLY);
-    open("/dev/null", O_WRONLY);
-
-    chdir("/");
-
-    if (geteuid() == 0) {
-        struct passwd *pw;
-
-        if ((pw = getpwnam("nobody"))) {
-#ifdef HAVE_SETRESUID            
-            setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid);
-#elif HAVE_SETREUID
-            setreuid(pw->pw_uid, pw->pw_uid);
-#else
-            setuid(pw->pw_uid);
-            seteuid(pw->pw_uid);
-#endif
-        }
-    }
-
-    signal(SIGTERM, SIG_DFL);
-
-    signal(SIGINT, SIG_IGN);
-    signal(SIGHUP, SIG_IGN);
-    signal(SIGPIPE, SIG_IGN);
-    signal(SIGUSR1, SIG_IGN);
-    signal(SIGUSR2, SIG_IGN);
-
-#ifdef PR_SET_PDEATHSIG
-    if (prctl(PR_SET_PDEATHSIG, SIGTERM) >= 0)
-        have_death_sig = 1;
-#endif
-
-    if (!have_death_sig)
-        fd_nonblock(in_fd);
-    
-    while (getppid() > 1) { /* if the parent PID is 1 our parent process died. */
-        char buf[BUFSIZE];
-        ssize_t length;
-
-        if (!have_death_sig) {
-            fd_set fds;
-            struct timeval tv = { 0, 500000 } ;
-            
-            FD_ZERO(&fds);
-            FD_SET(in_fd, &fds);
-            
-            if (select(in_fd+1, &fds, NULL, NULL, &tv) < 0)
-                break;
-            
-            if (getppid() == 1)
-                break;
-        }
-        
-        if ((length = recv(in_fd, buf, sizeof(buf), 0)) <= 0) {
-
-            if (length < 0 && errno == EAGAIN)
-                continue;
-
-            break;
-        }
-
-        if (handle_request(out_fd, (rheader_t*) buf, (size_t) length) < 0)
-            break;
-    }
-
-    close(in_fd);
-    close(out_fd);
-    
-    return 0;
-}
-
-#else
-
-static void* thread_worker(void *p) {
-    sigset_t fullset;
-    int *fds = p;
-    pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL);
-
-    /* No signals in this thread please */
-    sigfillset(&fullset);
-    pthread_sigmask(SIG_BLOCK, &fullset, NULL);
-    
-    for (;;) {
-        char buf[BUFSIZE];
-        ssize_t length;
-
-        if ((length = recv(fds[REQUEST_RECV_FD], buf, sizeof(buf), 0)) <= 0)
-            break;
-
-        if (handle_request(fds[RESPONSE_SEND_FD], (rheader_t*) buf, (size_t) length) < 0)
-            break;
-        
-    }
-
-    return NULL;
-}
-
-#endif
-
-asyncns_t* asyncns_new(unsigned n_proc) {
-    asyncns_t *asyncns = NULL;
-    int i;
-    unsigned p;
-    assert(n_proc >= 1);
-
-    if (n_proc > MAX_WORKERS)
-        n_proc = MAX_WORKERS;
-
-    if (!(asyncns = malloc(sizeof(asyncns_t))))
-        goto fail;
-
-    asyncns->valid_workers = 0;
-
-    for (i = 0; i < 4; i++) 
-        asyncns->fds[i] = -1;
-        
-    for (p = 0; p < MAX_QUERIES; p++)
-        asyncns->queries[p] = NULL;
-    
-    if (socketpair(PF_UNIX, SOCK_DGRAM, 0, asyncns->fds) < 0 ||
-        socketpair(PF_UNIX, SOCK_DGRAM, 0, asyncns->fds+2) < 0)
-        goto fail;
-    
-    for (i = 0; i < 4; i++) 
-        fd_cloexec(asyncns->fds[i]);
-
-    for (asyncns->valid_workers = 0; asyncns->valid_workers < n_proc; asyncns->valid_workers++) {
-
-#ifndef HAVE_PTHREAD
-        if ((asyncns->workers[asyncns->valid_workers] = fork()) < 0)
-            goto fail;
-        else if (asyncns->workers[asyncns->valid_workers] == 0) {
-            close(asyncns->fds[REQUEST_SEND_FD]);
-            close(asyncns->fds[RESPONSE_RECV_FD]);
-            _exit(process_worker(asyncns->fds[REQUEST_RECV_FD], asyncns->fds[RESPONSE_SEND_FD]));
-        }
-#else
-        if (pthread_create(&asyncns->workers[asyncns->valid_workers], NULL, thread_worker, asyncns->fds) != 0)
-            goto fail;
-#endif
-    }
-
-#ifndef HAVE_PTHREAD
-    close(asyncns->fds[REQUEST_RECV_FD]);
-    close(asyncns->fds[RESPONSE_SEND_FD]);
-    asyncns->fds[REQUEST_RECV_FD] = asyncns->fds[RESPONSE_SEND_FD] = -1;
-#endif    
-    
-    asyncns->current_index = asyncns->current_id = 0;
-    asyncns->done_head = asyncns->done_tail = NULL;
-    asyncns->n_queries = 0;
-
-    fd_nonblock(asyncns->fds[RESPONSE_RECV_FD]);
-
-    return asyncns;
-
-fail:
-    if (asyncns) 
-        asyncns_free(asyncns);
-
-    return NULL;
-}
-
-void asyncns_free(asyncns_t *asyncns) {
-    unsigned p;
-    int i;
-    rheader_t req;
-    assert(asyncns);
-
-    req.type = REQUEST_TERMINATE;
-    req.length = sizeof(req);
-    req.id = 0;
-    
-    /* Send one termiantion packet for each worker */
-    for (p = 0; p < asyncns->valid_workers; p++)
-        send(asyncns->fds[REQUEST_SEND_FD], &req, req.length, 0);
-
-    /* No terminate them forcibly*/
-    for (p = 0; p < asyncns->valid_workers; p++) {
-#ifndef HAVE_PTHREAD
-        kill(asyncns->workers[p], SIGTERM);
-        waitpid(asyncns->workers[p], NULL, 0);
-#else
-        pthread_cancel(asyncns->workers[p]);
-        pthread_join(asyncns->workers[p], NULL);
-#endif        
-    }
-
-    /* Due to Solaris' broken thread cancelation we first send an
-     * termination request and then cancel th thread. */
-
-    
-    for (i = 0; i < 4; i++)
-        if (asyncns->fds[i] >= 0)
-            close(asyncns->fds[i]);
-    
-    for (p = 0; p < MAX_QUERIES; p++)
-        if (asyncns->queries[p])
-            asyncns_cancel(asyncns, asyncns->queries[p]);
-    
-    free(asyncns);
-}
-
-int asyncns_fd(asyncns_t *asyncns) {
-    assert(asyncns);
-
-    return asyncns->fds[RESPONSE_RECV_FD];
-}
-
-static asyncns_query_t *lookup_query(asyncns_t *asyncns, unsigned id) {
-    asyncns_query_t *q;
-    assert(asyncns);
-
-    if ((q = asyncns->queries[id % MAX_QUERIES]))
-        if (q->id == id)
-            return q;
-
-    return NULL;
-}
-
-static void complete_query(asyncns_t *asyncns, asyncns_query_t *q) {
-    assert(asyncns);
-    assert(q);
-    assert(!q->done);
-
-    q->done = 1;
-    
-    if ((q->done_prev = asyncns->done_tail))
-        asyncns->done_tail->done_next = q;
-    else
-        asyncns->done_head = q;
-
-    asyncns->done_tail = q;
-    q->done_next = NULL;
-}
-
-static void *unserialize_addrinfo(void *p, struct addrinfo **ret_ai, size_t *length) {
-    addrinfo_serialization_t *s = p;
-    size_t l;
-    struct addrinfo *ai;
-    assert(p);
-    assert(ret_ai);
-    assert(length);
-
-    if (*length < sizeof(addrinfo_serialization_t))
-        return NULL;
-
-    l = sizeof(addrinfo_serialization_t) + s->ai_addrlen + s->canonname_len;
-    if (*length < l)
-        return NULL;
-
-    if (!(ai = malloc(sizeof(struct addrinfo))))
-        goto fail;
-    
-    ai->ai_addr = NULL;
-    ai->ai_canonname = NULL;
-    ai->ai_next = NULL;
-
-    if (s->ai_addrlen && !(ai->ai_addr = malloc(s->ai_addrlen)))
-        goto fail;
-    
-    if (s->canonname_len && !(ai->ai_canonname = malloc(s->canonname_len)))
-        goto fail;
-
-    ai->ai_flags = s->ai_flags;
-    ai->ai_family = s->ai_family;
-    ai->ai_socktype = s->ai_socktype;
-    ai->ai_protocol = s->ai_protocol;
-    ai->ai_addrlen = s->ai_addrlen;
-
-    if (ai->ai_addr)
-        memcpy(ai->ai_addr, (uint8_t*) p + sizeof(addrinfo_serialization_t), s->ai_addrlen);
-
-    if (ai->ai_canonname)
-        memcpy(ai->ai_canonname, (uint8_t*) p + sizeof(addrinfo_serialization_t) + s->ai_addrlen, s->canonname_len);
-
-    *length -= l;
-    *ret_ai = ai;
-    
-    return (uint8_t*) p + l;
-
-
-fail:
-    if (ai)
-        asyncns_freeaddrinfo(ai);
-
-    return NULL;
-}
-
-static int handle_response(asyncns_t *asyncns, rheader_t *resp, size_t length) {
-    asyncns_query_t *q;
-    assert(asyncns);
-    assert(resp);
-    assert(length >= sizeof(rheader_t));
-    assert(length == resp->length);
-
-    if (!(q = lookup_query(asyncns, resp->id)))
-        return 0;
-    
-    switch (resp->type) {
-        case RESPONSE_ADDRINFO: {
-            const addrinfo_response_t *ai_resp = (addrinfo_response_t*) resp;
-            void *p;
-            size_t l;
-            struct addrinfo *prev = NULL;
-
-            assert(length >= sizeof(addrinfo_response_t));
-            assert(q->type == REQUEST_ADDRINFO);
-
-            q->ret = ai_resp->ret;
-            l = length - sizeof(addrinfo_response_t);
-            p = (uint8_t*) resp + sizeof(addrinfo_response_t);
-
-            while (l > 0 && p) {
-                struct addrinfo *ai = NULL;
-                p = unserialize_addrinfo(p, &ai, &l);
-
-                if (!ai)
-                    break;
-
-                if (prev)
-                    prev->ai_next = ai;
-                else
-                    q->addrinfo = ai;
-
-                prev = ai;
-            }
-
-            complete_query(asyncns, q);
-            break;
-        }
-
-        case RESPONSE_NAMEINFO: {
-            const nameinfo_response_t *ni_resp = (nameinfo_response_t*) resp;
-
-            assert(length >= sizeof(nameinfo_response_t));
-            assert(q->type == REQUEST_NAMEINFO);
-
-            q->ret = ni_resp->ret;
-
-            if (ni_resp->hostlen)
-                q->host = strndup((const char*) ni_resp + sizeof(nameinfo_response_t), ni_resp->hostlen-1);
-
-            if (ni_resp->servlen)
-                q->serv = strndup((const char*) ni_resp + sizeof(nameinfo_response_t) + ni_resp->hostlen, ni_resp->servlen-1);
-                    
-
-            complete_query(asyncns, q);
-            break;
-        }
-
-        case RESPONSE_RES: {
-            const res_response_t *res_resp = (res_response_t *)resp;
-
-            assert(length >= sizeof(res_response_t));
-            assert(q->type == REQUEST_RES_QUERY || q->type == REQUEST_RES_SEARCH);
-
-            q->ret = res_resp->ret;
-
-            if (res_resp->ret >= 0)  {
-                q->serv = malloc(res_resp->ret);
-                memcpy(q->serv, (char *)resp + sizeof(res_response_t), res_resp->ret);
-            }
-
-            complete_query(asyncns, q);
-            break;
-        }
-            
-        default:
-            ;
-    }
-    
-    return 0;
-}
-
-int asyncns_wait(asyncns_t *asyncns, int block) {
-    int handled = 0;
-    assert(asyncns);
-
-    for (;;) {
-        char buf[BUFSIZE];
-        ssize_t l;
-
-        if (((l = recv(asyncns->fds[RESPONSE_RECV_FD], buf, sizeof(buf), 0)) < 0)) {
-            fd_set fds;
-
-            if (errno != EAGAIN)
-                return -1;
-
-            if (!block || handled)
-                return 0;
-                
-            FD_ZERO(&fds);
-            FD_SET(asyncns->fds[RESPONSE_RECV_FD], &fds);
-
-            if (select(asyncns->fds[RESPONSE_RECV_FD]+1, &fds, NULL, NULL, NULL) < 0)
-                return -1;
-                
-            continue;
-        }
-
-
-        if (handle_response(asyncns, (rheader_t*) buf, (size_t) l) < 0)
-            return -1;
-
-        handled = 1;
-    }
-}
-
-static asyncns_query_t *alloc_query(asyncns_t *asyncns) {
-    asyncns_query_t *q;
-    assert(asyncns);
-
-    if (asyncns->n_queries >= MAX_QUERIES)
-        return NULL;
-
-    while (asyncns->queries[asyncns->current_index]) {
-
-        asyncns->current_index++;
-        asyncns->current_id++;
-
-        while (asyncns->current_index >= MAX_QUERIES)
-            asyncns->current_index -= MAX_QUERIES;
-    }
-        
-    if (!(q = asyncns->queries[asyncns->current_index] = malloc(sizeof(asyncns_query_t))))
-        return NULL;
-
-    asyncns->n_queries++;
-
-    q->asyncns = asyncns;
-    q->done = 0;
-    q->id = asyncns->current_id;
-    q->done_next = q->done_prev = NULL;
-    q->ret = 0;
-    q->addrinfo = NULL;
-    q->userdata = NULL;
-    q->host = q->serv = NULL;
-
-    return q;
-}
-
-asyncns_query_t* asyncns_getaddrinfo(asyncns_t *asyncns, const char *node, const char *service, const struct addrinfo *hints) {
-    uint8_t data[BUFSIZE];
-    addrinfo_request_t *req = (addrinfo_request_t*) data;
-    asyncns_query_t *q;
-    assert(asyncns);
-    assert(node || service);
-
-    if (!(q = alloc_query(asyncns)))
-        return NULL;
-
-    memset(req, 0, sizeof(addrinfo_request_t));
-    
-    req->node_len = node ? strlen(node)+1 : 0;
-    req->service_len = service ? strlen(service)+1 : 0;
-    
-    req->header.id = q->id;
-    req->header.type = q->type = REQUEST_ADDRINFO;
-    req->header.length = sizeof(addrinfo_request_t) + req->node_len + req->service_len;
-
-    if (req->header.length > BUFSIZE)
-        goto fail;
-
-    if (!(req->hints_is_null = !hints)) {
-        req->ai_flags = hints->ai_flags; 
-        req->ai_family = hints->ai_family;
-        req->ai_socktype = hints->ai_socktype;
-        req->ai_protocol = hints->ai_protocol;
-    }
-
-    if (node)
-        strcpy((char*) req + sizeof(addrinfo_request_t), node);
-
-    if (service)
-        strcpy((char*) req + sizeof(addrinfo_request_t) + req->node_len, service);
-
-    if (send(asyncns->fds[REQUEST_SEND_FD], req, req->header.length, 0) < 0)
-        goto fail;
-    
-    return q;
-
-fail:
-    if (q)
-        asyncns_cancel(asyncns, q);
-
-    return NULL;
-}
-
-int asyncns_getaddrinfo_done(asyncns_t *asyncns, asyncns_query_t* q, struct addrinfo **ret_res) {
-    int ret;
-    assert(asyncns);
-    assert(q);
-    assert(q->asyncns == asyncns);
-    assert(q->type == REQUEST_ADDRINFO);
-
-    if (!q->done)
-        return EAI_AGAIN;
-
-    *ret_res = q->addrinfo;
-    q->addrinfo = NULL;
-    ret = q->ret;
-    asyncns_cancel(asyncns, q);
-
-    return ret;
-}
-
-asyncns_query_t* asyncns_getnameinfo(asyncns_t *asyncns, const struct sockaddr *sa, socklen_t salen, int flags, int gethost, int getserv) {
-    uint8_t data[BUFSIZE];
-    nameinfo_request_t *req = (nameinfo_request_t*) data;
-    asyncns_query_t *q;
-
-    assert(asyncns);
-    assert(sa);
-    assert(salen > 0);
-
-    if (!(q = alloc_query(asyncns)))
-        return NULL;
-
-    memset(req, 0, sizeof(nameinfo_request_t));
-    
-    req->header.id = q->id;
-    req->header.type = q->type = REQUEST_NAMEINFO;
-    req->header.length = sizeof(nameinfo_request_t) + salen;
-
-    if (req->header.length > BUFSIZE)
-        goto fail;
-
-    req->flags = flags;
-    req->sockaddr_len = salen;
-    req->gethost = gethost;
-    req->getserv = getserv;
-
-    memcpy((uint8_t*) req + sizeof(nameinfo_request_t), sa, salen);
-
-    if (send(asyncns->fds[REQUEST_SEND_FD], req, req->header.length, 0) < 0)
-        goto fail;
-    
-    return q;
-
-fail:
-    if (q)
-        asyncns_cancel(asyncns, q);
-
-    return NULL;
-}
-
-int asyncns_getnameinfo_done(asyncns_t *asyncns, asyncns_query_t* q, char *ret_host, size_t hostlen, char *ret_serv, size_t servlen) {
-    int ret;
-    assert(asyncns);
-    assert(q);
-    assert(q->asyncns == asyncns);
-    assert(q->type == REQUEST_NAMEINFO);
-    assert(!ret_host || hostlen);
-    assert(!ret_serv || servlen);
-
-    if (!q->done)
-        return EAI_AGAIN;
-
-    if (ret_host && q->host) {
-        strncpy(ret_host, q->host, hostlen);
-        ret_host[hostlen-1] = 0;
-    }
-
-    if (ret_serv && q->serv) {
-        strncpy(ret_serv, q->serv, servlen);
-        ret_serv[servlen-1] = 0;
-    }
-    
-    ret = q->ret;
-    asyncns_cancel(asyncns, q);
-
-    return ret;
-}
-
-static asyncns_query_t *
-asyncns_res(asyncns_t *asyncns, query_type_t qtype, 
-            const char *dname, int class, int type) {
-    uint8_t data[BUFSIZE];
-    res_request_t *req = (res_request_t*) data;
-    asyncns_query_t *q;
-    size_t dlen;
-
-    assert(asyncns);
-    assert(dname);
-
-    dlen = strlen(dname);
-
-    if (!(q = alloc_query(asyncns)))
-        return NULL;
-
-    memset(req, 0, sizeof(res_request_t));
-    
-    req->header.id = q->id;
-    req->header.type = q->type = qtype;
-    req->header.length = sizeof(res_request_t) + dlen + 1;
-
-    if (req->header.length > BUFSIZE)
-        goto fail;
-
-    req->class = class;
-    req->type = type;
-    req->dlen = dlen;
-
-    memcpy((uint8_t*) req + sizeof(res_request_t), dname, dlen + 1);
-
-    if (send(asyncns->fds[REQUEST_SEND_FD], req, req->header.length, 0) < 0)
-        goto fail;
-
-    return q;
-
-fail:
-    if (q)
-        asyncns_cancel(asyncns, q);
-
-    return NULL;
-}
-
-asyncns_query_t* asyncns_res_query(asyncns_t *asyncns, const char *dname, int class, int type) { 
-    return asyncns_res(asyncns, REQUEST_RES_QUERY, dname, class, type);
-}
-
-asyncns_query_t* asyncns_res_search(asyncns_t *asyncns, const char *dname, int class, int type) { 
-    return asyncns_res(asyncns, REQUEST_RES_SEARCH, dname, class, type);
-}
-
-int asyncns_res_done(asyncns_t *asyncns, asyncns_query_t* q, unsigned char **answer) {
-    int ret;
-    assert(asyncns);
-    assert(q);
-    assert(q->asyncns == asyncns);
-    assert(q->type == REQUEST_RES_QUERY || q->type == REQUEST_RES_SEARCH);
-    assert(answer);
-
-    if (!q->done)
-        return -EAGAIN;
-
-    *answer = (unsigned char *)q->serv;
-    q->serv = NULL;
-
-    ret = q->ret;
-
-    asyncns_cancel(asyncns, q);
-
-    return ret;
-}
-
-asyncns_query_t* asyncns_getnext(asyncns_t *asyncns) {
-    assert(asyncns);
-    return asyncns->done_head;
-}
-
-int asyncns_getnqueries(asyncns_t *asyncns) {
-    assert(asyncns);
-    return asyncns->n_queries;
-}
-
-void asyncns_cancel(asyncns_t *asyncns, asyncns_query_t* q) {
-    int i;
-    assert(asyncns);
-    assert(q);
-    assert(q->asyncns == asyncns);
-    assert(asyncns->n_queries > 0);
-
-    if (q->done) {
-
-        if (q->done_prev)
-            q->done_prev->done_next = q->done_next;
-        else 
-            asyncns->done_head = q->done_next;
-
-        if (q->done_next)
-            q->done_next->done_prev = q->done_prev;
-        else
-            asyncns->done_tail = q->done_prev;
-    }
-
-
-    i = q->id % MAX_QUERIES;
-    assert(asyncns->queries[i] == q);
-    asyncns->queries[i] = NULL;
-
-    asyncns_freeaddrinfo(q->addrinfo);
-    free(q->addrinfo);
-    free(q->host);
-    free(q->serv);
-
-    asyncns->n_queries--;
-    free(q);
-}
-
-void asyncns_freeaddrinfo(struct addrinfo *ai) {
-    if (!ai)
-        return;
-
-    while (ai) {
-        struct addrinfo *next = ai->ai_next;
-
-        free(ai->ai_addr);
-        free(ai->ai_canonname);
-        free(ai);
-
-        ai = next;
-    }
-}
-
-int asyncns_isdone(asyncns_t *asyncns, asyncns_query_t*q) {
-    assert(asyncns);
-    assert(q);
-    assert(q->asyncns == asyncns);
-
-    return q->done;
-}
-
-void asyncns_setuserdata(asyncns_t *asyncns, asyncns_query_t *q, void *userdata) {
-    assert(q);
-    assert(asyncns);
-    assert(q->asyncns = asyncns);
-    
-    q->userdata = userdata;
-}
-
-void* asyncns_getuserdata(asyncns_t *asyncns, asyncns_query_t *q) {
-    assert(q);
-    assert(asyncns);
-    assert(q->asyncns = asyncns);
-
-    return q->userdata;
-}
-
-
--- a/loudmouth/src/base64.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,207 +0,0 @@
-/*
- * base64.c - Base 64 encoding/decoding implementation
- * Copyright (C) 2006 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <ctype.h>
-#include <string.h>
-
-#include <glib.h>
-
-#include "base64.h"
-
-/*
-|AAAA AABB|BBBB CCCC|CCDD DDDD|
-
-0xFC = 1111 1100
-0x03 = 0000 0011
-0xF0 = 1111 0000
-0x0F = 0000 1111
-0xC0 = 1100 0000
-0x3F = 0011 1111
-
-3 input bytes = 4 output bytes;
-2 input bytes = 2 output bytes;
-1 input byte  = 1 output byte.
-*/
-
-
-#ifdef EMULATOR
-#include "libloudmouth_wsd_solution.h"
-
-GET_STATIC_ARRAY_FROM_TLS(encoding, lm_base64, gchar)
-  #define encoding (GET_WSD_VAR_NAME(encoding, lm_base64, s)())
-
-#else
-
-static const gchar *encoding =
-  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-#endif
-
-
-
-static const guint decoding[256] =
-{
-  /* ... */
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0,
-  /* + */
-  62,
-  /* ... */
-   0, 0, 0,
-  /* / , 0-9 */
-  63,
-  52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
-  /* ... */
-   0, 0, 0, 0, 0, 0, 0,
-  /* A */
-   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12,
-  13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-  /* ... */
-   0, 0, 0, 0, 0, 0,
-  /* a */
-  26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-  39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51
-};
-
-#define GET_6_BITS_0(s) (((s)[0] & 0xFC) >> 2)
-#define GET_6_BITS_1(s) (((s)[0] & 0x03) << 4) | \
-                        (((s)[1] & 0xF0) >> 4)
-#define GET_6_BITS_2(s) (((s)[1] & 0x0F) << 2) | \
-                        (((s)[2] & 0xC0) >> 6)
-#define GET_6_BITS_3(s) (((s)[2] & 0x3F) << 0)
-
-#define GET_BYTE_0(s) (((decoding[(guchar)(s)[0]] & 0x3F) << 2) | \
-                       ((decoding[(guchar)(s)[1]] & 0x30) >> 4))
-#define GET_BYTE_1(s) (((decoding[(guchar)(s)[1]] & 0x0F) << 4) | \
-                       ((decoding[(guchar)(s)[2]] & 0x3C) >> 2))
-#define GET_BYTE_2(s) (((decoding[(guchar)(s)[2]] & 0x03) << 6) | \
-                       ((decoding[(guchar)(s)[3]] & 0xFF) << 0))
-
-gchar *_lm_base64_encode (const gchar *txt, gsize n)
-{
-  guint i;
-  guint len;
-  GString *tmp;
-  GString *str = g_string_new_len (txt, n);
-
-  len = str->len;
-  /* TODO: calculate requisite output string length and allocate that big a
-   * GString */
-  tmp = g_string_new ("");
-
-  for (i = 0; i < len; i += 3)
-    {
-      guint c1, c2, c3, c4;
-
-      switch (i + 3 - len)
-        {
-        case 1:
-          c1 = encoding[GET_6_BITS_0 (str->str + i)];
-          c2 = encoding[GET_6_BITS_1 (str->str + i)];
-          c3 = encoding[GET_6_BITS_2 (str->str + i)];
-          c4 = '=';
-          break;
-        case 2:
-          c1 = encoding[GET_6_BITS_0 (str->str + i)];
-          c2 = encoding[GET_6_BITS_1 (str->str + i)];
-          c3 = '=';
-          c4 = '=';
-          break;
-        default:
-          c1 = encoding[GET_6_BITS_0 (str->str + i)];
-          c2 = encoding[GET_6_BITS_1 (str->str + i)];
-          c3 = encoding[GET_6_BITS_2 (str->str + i)];
-          c4 = encoding[GET_6_BITS_3 (str->str + i)];
-        }
-
-      g_string_append_printf (tmp, "%c%c%c%c", c1, c2, c3, c4);
-    }
-
-  return g_string_free (tmp, FALSE);
-}
-
-gchar *_lm_base64_decode (const gchar *str, gsize *len)
-{
-  guint i;
-  GString *tmp;
-  char group[4];
-  guint filled = 0;
-
-  *len = 0;
-
-  for (i = 0; str[i]; i++)
-    {
-      if (str[i] != 'A' &&
-          str[i] != '=' &&
-          !isspace(str[i]) &&
-          decoding[(guchar) str[i]] == 0)
-        {
-          g_debug ("bad character %x at byte %u", (guchar)str[i], i);
-          return NULL;
-        }
-    }
-
-  tmp = g_string_new ("");
-
-  for (i = 0; str[i]; i++)
-    {
-      if (isspace(str[i]))
-        continue;
-
-      group[filled++] = str[i];
-
-      if (filled == 4)
-        {
-          if (group[3] == '=')
-            {
-              if (group[2] == '=')
-                {
-                  g_string_append_c (tmp, GET_BYTE_0(group));
-                }
-              else
-                {
-                  g_string_append_c (tmp, GET_BYTE_0(group));
-                  g_string_append_c (tmp, GET_BYTE_1(group));
-                }
-             }
-           else
-            {
-              g_string_append_c (tmp, GET_BYTE_0(group));
-              g_string_append_c (tmp, GET_BYTE_1(group));
-              g_string_append_c (tmp, GET_BYTE_2(group));
-            }
-          filled = 0;
-        }
-    }
-
-  if (filled)
-    {
-      g_debug ("insufficient padding at end of base64 string:\n%s", str);
-      g_string_free (tmp, TRUE);
-      return NULL;
-    }
-
-  *len = tmp->len;
-  return g_string_free (tmp, FALSE);
-}
-
-
--- a/loudmouth/src/libloudmouth_wsd.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2003-2007 Imendio AB
- * Copyright (C) 2008 Nokia Corporation and/or its subsidiary/subsidiaries.
- * Copyright (C) 2007 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <e32std.h> 
-#include "libloudmouth_wsd_solution.h"
-#include <string.h>
-
-
-#include <pls.h> // For emulator WSD API 
-
-const TUid KLibLoudmouthUid3 = {0x10281F99};     // This is the UID of the library
-struct libloudmouth_global_struct *libloudmouth_ImpurePtr()
-{
-	#if defined(__WINSCW__) || defined(__WINS__)
-
-	// Access the PLS of this process
-	struct libloudmouth_global_struct *g = Pls<struct libloudmouth_global_struct>(KLibLoudmouthUid3, &libloudmouth_Init);	
-    return g;
-
-	#else
-
-	return NULL;	
-
-	#endif
-};
-
-int libloudmouth_Init(libloudmouth_global_struct *g)
-{
- 
-TypeNames type_names[14] = {
-	{ LM_MESSAGE_TYPE_MESSAGE,         "message"         },
-	{ LM_MESSAGE_TYPE_PRESENCE,        "presence"        },
-	{ LM_MESSAGE_TYPE_IQ,              "iq"              },
-	{ LM_MESSAGE_TYPE_STREAM,          "stream:stream"   },
-	{ LM_MESSAGE_TYPE_STREAM_FEATURES, "stream:features" },
-	{ LM_MESSAGE_TYPE_STREAM_ERROR,    "stream:error"    },
-	{ LM_MESSAGE_TYPE_AUTH,            "auth"            },
-	{ LM_MESSAGE_TYPE_CHALLENGE,       "challenge"       },
-	{ LM_MESSAGE_TYPE_RESPONSE,        "response"        },
-	{ LM_MESSAGE_TYPE_SUCCESS,         "success"         },
-	{ LM_MESSAGE_TYPE_FAILURE,         "failure"         },
-	{ LM_MESSAGE_TYPE_PROCEED,         "proceed"         },
-	{ LM_MESSAGE_TYPE_STARTTLS,        "starttls"        },
-	{ LM_MESSAGE_TYPE_UNKNOWN,         NULL              }
-
-};
-
-SubTypeNames sub_type_names[14] = {
-	{ LM_MESSAGE_SUB_TYPE_NORMAL,          "normal"        },
-        { LM_MESSAGE_SUB_TYPE_CHAT,            "chat"          },
-	{ LM_MESSAGE_SUB_TYPE_GROUPCHAT,       "groupchat"     },
-	{ LM_MESSAGE_SUB_TYPE_HEADLINE,        "headline"      },
-	{ LM_MESSAGE_SUB_TYPE_UNAVAILABLE,     "unavailable"   },
-        { LM_MESSAGE_SUB_TYPE_PROBE,           "probe"         },
-	{ LM_MESSAGE_SUB_TYPE_SUBSCRIBE,       "subscribe"     },
-	{ LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE,     "unsubscribe"   },
-	{ LM_MESSAGE_SUB_TYPE_SUBSCRIBED,      "subscribed"    },
-	{ LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED,    "unsubscribed"  },
-	{ LM_MESSAGE_SUB_TYPE_GET,             "get"           },
-	{ LM_MESSAGE_SUB_TYPE_SET,             "set"           },
-	{ LM_MESSAGE_SUB_TYPE_RESULT,          "result"        }, 
-	{ LM_MESSAGE_SUB_TYPE_ERROR,           "error"         }
-};
-gchar base_64_chars[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-gchar encoding1[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-gchar retval[41] = "";
-
-char buffer[256] = "";
-
-	  if(g)
-	  {	
-       //g->GET_WSD_VAR_NAME(debug_flags,lm_debug,g) = Flags;
-
-	   g->GET_WSD_VAR_NAME(initialized,lm_debug,g) = EFalse;
-	   g->GET_WSD_VAR_NAME(log_handler_id,lm_debug,g) = 0;
-	   memcpy (&(g->GET_WSD_VAR_NAME(type_names,lm_message,s)), type_names, 13*sizeof(TypeNames));
-	   memcpy (&(g->GET_WSD_VAR_NAME(sub_type_names,lm_message,s)), sub_type_names, 14*sizeof(SubTypeNames));
-       g->GET_WSD_VAR_NAME(initialized,lm_ssl_openssl,s) = EFalse;
-       g->GET_WSD_VAR_NAME(last_id,lm_utils, s) = 0;
-       
-       strcpy((g->GET_WSD_VAR_NAME(base64chars,lm_utils,s)), base_64_chars);
-       
-       strcpy((g->GET_WSD_VAR_NAME(ret_val,lm_sha,s)), retval);
-       
-       strcpy((g->GET_WSD_VAR_NAME(encoding,lm_base64,s)), encoding1);
-       
-       strcpy((g->GET_WSD_VAR_NAME(buf,lm_misc,s)), buffer);
-       
-       g->GET_WSD_VAR_NAME(initialised,lm_sock,g) = EFalse;
-		return 0;
-       }
-  return 1;
-}
-
--- a/loudmouth/src/lm-connection.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2248 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003-2007 Imendio AB
- *  and/or its subsidiary/subsidiaries. All rights reserved.
- * Copyright (C) 2007 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-
-#include <string.h>
-#include <sys/stat.h> 
-#include <sys/types.h>
-#include <fcntl.h>
-
-/* Needed on Mac OS X */
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#include <arpa/nameser.h>
-//#include <resolv.h>
-
-#include <glib.h>
-#include <gdebug.h>
-
-#include "lm-sock.h"
-#include "lm-debug.h"
-#include "lm-error.h"
-#include "lm-internals.h"
-#include "lm-message-queue.h"
-#include "lm-misc.h"
-#include "lm-ssl-internals.h"
-#include "lm-parser.h"
-#include "lm-sha.h"
-#include "lm-connection.h"
-#include "lm-utils.h"
-#include "lm-socket.h"
-#include "lm-sasl.h"
-
-#define IN_BUFFER_SIZE 1024
-//#define SRV_LEN 8192
-#define SRV_LEN 2048 // check the actual value needed here! - MeCo
-
-typedef struct {
-	LmHandlerPriority  priority;
-	LmMessageHandler  *handler;
-} HandlerData;
-
-struct _LmConnection {
-	/* Parameters */
-	GMainContext *context;
-	gchar        *server;
-	gchar        *jid;
-	gchar        *effective_jid;
-	guint         port;
-	gboolean      use_srv;
-
-	LmSocket     *socket;
-	LmSSL        *ssl;
-	LmProxy      *proxy;
-	LmParser     *parser;
-
-	gchar        *stream_id;
-
-	GHashTable   *id_handlers;
-	GSList       *handlers[LM_MESSAGE_TYPE_UNKNOWN];
-
-	/* XMPP1.0 stuff (SASL, resource binding, StartTLS) */
-	gboolean      use_sasl;
-	LmSASL       *sasl;
-	gchar        *resource;
-	LmMessageHandler *features_cb;
-	LmMessageHandler *starttls_cb;
-	gboolean      tls_started;
-
-	/* Communication */
-	guint         open_id;
-	LmCallback   *open_cb;
-
- 	gboolean      async_connect_waiting;
-	gboolean      blocking;
-
-	gboolean      cancel_open;
-	LmCallback   *auth_cb;
-
-	LmCallback   *disconnect_cb;
-
-	LmMessageQueue *queue;
-
-	LmConnectionState state;
-
-	guint         keep_alive_rate;
-	GSource      *keep_alive_source;
-
-	gint          ref_count;
-};
-
-typedef enum {
-	AUTH_TYPE_PLAIN  = 1,
-	AUTH_TYPE_DIGEST = 2,
-	AUTH_TYPE_0K     = 4
-} AuthType;
-
-#define XMPP_NS_BIND "urn:ietf:params:xml:ns:xmpp-bind"
-#define XMPP_NS_SESSION "urn:ietf:params:xml:ns:xmpp-session"
-#define XMPP_NS_STARTTLS "urn:ietf:params:xml:ns:xmpp-tls"
-
-static void     connection_free (LmConnection *connection);
-
-
-static void     connection_handle_message    (LmConnection         *connection,
-					      LmMessage            *message);
-
-static void     connection_new_message_cb    (LmParser             *parser,
-					      LmMessage            *message,
-					      LmConnection         *connection);
-static gboolean connection_do_open           (LmConnection         *connection,
-					      GError              **error);
-void            connection_do_close          (LmConnection         *connection);
-
-
-static LmMessage *     connection_create_auth_req_msg (const gchar *username);
-static LmMessage *     connection_create_auth_msg     (LmConnection *connection,
-						       const gchar  *username,
-						       const gchar  *password,
-						       const gchar  *resource,
-						       gint          auth_type);
-static LmHandlerResult connection_auth_req_reply (LmMessageHandler *handler,
-						  LmConnection     *connection,
-						  LmMessage        *m,
-						  gpointer          user_data);
-static int connection_check_auth_type            (LmMessage      *auth_req_rpl);
-					      
-static LmHandlerResult
-connection_auth_reply                            (LmMessageHandler *handler,
-						  LmConnection     *connection,
-						  LmMessage        *m,
-						  gpointer          user_data);
-
-static void      connection_stream_received      (LmConnection    *connection, 
-						  LmMessage       *m);
-static void      connection_stream_error         (LmConnection    *connection, 
-						  LmMessage       *m);
-
-static gint      connection_handler_compare_func (HandlerData     *a,
-						  HandlerData     *b);
-static gboolean  connection_send_keep_alive      (LmConnection    *connection);
-static void      connection_start_keep_alive     (LmConnection    *connection);
-static void      connection_stop_keep_alive      (LmConnection    *connection);
-static gboolean  connection_send                 (LmConnection    *connection, 
-						  const gchar     *str, 
-						  gint             len, 
-						  GError         **error);
-static void      connection_message_queue_cb     (LmMessageQueue  *queue,
-						  LmConnection    *connection);
-static void      connection_signal_disconnect    (LmConnection       *connection,
-						  LmDisconnectReason  reason);
-static void      connection_incoming_data        (LmSocket        *socket, 
-						  const gchar     *buf,
-						  LmConnection    *connection);
-static void      connection_socket_closed_cb     (LmSocket        *socket,
-						  LmDisconnectReason reason,
-						  LmConnection       *connection);
-static void      connection_socket_connect_cb    (LmSocket           *socket,
-						  gboolean            result,
-						  LmConnection       *connection);
-
-static gboolean  connection_get_server_from_jid  (const gchar     *jid,
-						  gchar          **server);
-static void      connection_send_stream_header   (LmConnection    *connection);
-static LmHandlerResult connection_features_cb (LmMessageHandler *handler,
-					       LmConnection     *connection,
-					       LmMessage        *message,
-					       gpointer          user_data);
-
-static void
-connection_free (LmConnection *connection)
-{
-	int        i;
-
-	g_free (connection->server);
-	g_free (connection->jid);
-	g_free (connection->effective_jid);
-	g_free (connection->stream_id);
-	g_free (connection->resource);
-
-	if (connection->sasl) {
-		lm_sasl_free (connection->sasl);
-	}
-
-	if (connection->parser) {
-		lm_parser_free (connection->parser);
-	}
-
-	/* Unref handlers */
-	for (i = 0; i < LM_MESSAGE_TYPE_UNKNOWN; ++i) {
-		GSList *l;
-
-		for (l = connection->handlers[i]; l; l = l->next) {
-			HandlerData *hd = (HandlerData *) l->data;
-			
-			lm_message_handler_unref (hd->handler);
-			g_free (hd);
-		}
-
-		g_slist_free (connection->handlers[i]);
-	}
-
-	g_hash_table_destroy (connection->id_handlers);
-	if (connection->state >= LM_CONNECTION_STATE_OPENING) {
-		connection_do_close (connection);
-	}
-
-	if (connection->open_cb) {
-		_lm_utils_free_callback (connection->open_cb);
-	}
-	
-	if (connection->auth_cb) {
-		_lm_utils_free_callback (connection->auth_cb);
-	}
-
-	lm_connection_set_disconnect_function (connection, NULL, NULL, NULL);
-
-	if (connection->proxy) {
-		lm_proxy_unref (connection->proxy);
-	}
-
-	lm_message_queue_unref (connection->queue);
-
-        if (connection->context) {
-                g_main_context_unref (connection->context);
-        }
-
-	if (connection->socket) {
-		lm_socket_unref (connection->socket);
-	}
-
-        g_free (connection);
-}
-
-static void
-connection_handle_message (LmConnection *connection, LmMessage *m)
-{
-	LmMessageHandler *handler;
-	GSList           *l;
-	const gchar      *id;
-	LmHandlerResult   result = LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-	lm_connection_ref (connection);
-	lm_verbose("[connection_handle_message]: Inside\n");
-	lm_verbose("msg type:[%d]\n", lm_message_get_type (m));
-	id = lm_message_node_get_attribute (m->node, "id");
-	if(id)
-		{
-		lm_verbose("handlemsg node id: %s\n", id);
-		}
-	if (lm_message_get_type (m) == LM_MESSAGE_TYPE_STREAM) {
-		lm_verbose("[connection_handle_message]: Stream received\n");
-		lm_verbose("[connection_handle_message]: calling connection_stream_received \n");
-		connection_stream_received (connection, m);
-		lm_verbose("[connection_handle_message]: CALLED connection_stream_received \n");
-		goto out;
-	}
-
-	if ((lm_message_get_sub_type (m) == LM_MESSAGE_SUB_TYPE_ERROR) ||
-	    (lm_message_get_sub_type (m) == LM_MESSAGE_SUB_TYPE_RESULT)) {
-		id = lm_message_node_get_attribute (m->node, "id");
-
-		lm_verbose("[connection_handle_message]: type is error or result \n");
-		if (id) {
-			handler = g_hash_table_lookup (connection->id_handlers, id);
-			if (handler) {
-				lm_verbose("[connection_handle_message]: calling the right handler for error/result \n");
-				result = _lm_message_handler_handle_message (handler,
-									     connection,
-									     m);
-				lm_verbose("[connection_handle_message]: Called right handler for error/result \n");									     
-				g_hash_table_remove (connection->id_handlers,
-						    id);
-			}
-		}
-
-		if (result == LM_HANDLER_RESULT_REMOVE_MESSAGE) {
-			lm_verbose("return from connection_handle_message\n");
-			goto out;
-		}
-	}
-	lm_verbose("[connection_handle_message]:starting for loop for more handlers\n");
-	for (l = connection->handlers[lm_message_get_type (m)]; 
-	     l && result == LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; 
-	     l = l->next) {
-		HandlerData *hd = (HandlerData *) l->data;
-		lm_verbose("[connection_handle_message]:inside for loop for more handlers with msg type: %d\n", lm_message_get_type (m));
-		lm_verbose("[connection_handle_message]:inside for loop with node name: %s\n",lm_message_get_node(m)->name);
-		result = _lm_message_handler_handle_message (hd->handler,
-							     connection,
-							     m);
-		lm_verbose("[connection_handle_message]:got result from _lm_message_handler_handle_message as :%d\n",result);
-	}
-	lm_verbose("[connection_handle_message]:Ended for loop for more handlers\n");
-	if (lm_message_get_type (m) == LM_MESSAGE_TYPE_STREAM_ERROR) {
-		lm_verbose("[connection_handle_message]:stream error\n");
-		connection_stream_error (connection, m);
-		goto out;
-	}
-	
-out:
-	lm_verbose("[connection_handle_message]:exiting connection_handle_message\n");
-	lm_connection_unref (connection);
-	lm_verbose("[connection_handle_message]:after unref of connection\n");
-	return;
-}
-
-static void
-connection_new_message_cb (LmParser     *parser,
-			   LmMessage    *m,
-			   LmConnection *connection)
-{
-	const gchar *from;
-	
-	lm_message_ref (m);
-
-	from = lm_message_node_get_attribute (m->node, "from");
-	if (!from) {
-		from = "unknown";
-	}
-	
-	lm_verbose ("New message with type=\"%s\" from: %s\n",
-		    _lm_message_type_to_string (lm_message_get_type (m)),
-		    from);
-
-	lm_message_queue_push_tail (connection->queue, m);
-	UNUSED_FORMAL_PARAM(parser);
-}
-
-static gboolean
-connection_send_keep_alive (LmConnection *connection)
-{ 
-    lm_verbose ("[connection_send_keep_alive]\n");
-	if (!connection_send (connection, " ", -1, NULL)) {
-		lm_verbose ("Error while sending keep alive package!\n");
-	}
-	return TRUE;
-}
-
-static void
-connection_start_keep_alive (LmConnection *connection)
-{
-	lm_verbose("[connection_start_keep_alive]:Inside ....");
-	/* try using TCP keepalives if possible */
-	if ((connection->keep_alive_rate > 0) &&
-		lm_socket_set_keepalive (connection->socket,
-			connection->keep_alive_rate)) {
-	lm_verbose("[connection_start_keep_alive]: timer already active\n");
-	connection->keep_alive_source =
-         lm_misc_add_timeout (connection->context,
-                      connection->keep_alive_rate * 1000,
-                      (GSourceFunc) connection_send_keep_alive,
-                      connection);
-		return;
-	}
-
-	if (connection->keep_alive_source) {
-		lm_verbose("[connection_start_keep_alive]:stopping keep alive timer");
-		connection_stop_keep_alive (connection);
-	}
-
-	if (connection->keep_alive_rate > 0) {
-		connection->keep_alive_source =
-			lm_misc_add_timeout (connection->context,
-					     connection->keep_alive_rate * 1000,
-					     (GSourceFunc) connection_send_keep_alive,
-					     connection);
-		lm_verbose("[connection_start_keep_alive]: added timer to gsource\n");
-	}
-lm_verbose("[connection_start_keep_alive]: ...Exiting connection_start_keep_alive....");	 
-}
-
-static void
-connection_stop_keep_alive (LmConnection *connection)
-{
-	lm_verbose("[connection_start_keep_alive]:Stopping Keep Alive\n");
-	if (connection->keep_alive_source) {
-		g_source_destroy (connection->keep_alive_source);
-	}
-
-	connection->keep_alive_source = NULL;
-}
-
-static gboolean
-connection_send (LmConnection  *connection, 
-		 const gchar   *str, 
-		 gint           len, 
-		 GError       **error)
-{
-	gint b_written;
-
-	if (connection->state < LM_CONNECTION_STATE_OPENING) {
-	/*	g_log (LM_LOG_DOMAIN,LM_LOG_LEVEL_NET,
-		       "Connection is not open.\n");
-
-		g_set_error (error,
-			     LM_ERROR,
-			     LM_ERROR_CONNECTION_NOT_OPEN,
-			     "Connection is not open, call lm_connection_open() first");*/
-		lm_verbose("[connection_send]: Connection is not open call lm_connection_open() first");	     
-		return FALSE;
-	}
-
-	if (len == -1) {
-		len = strlen (str);
-	}
-
-	//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET, "\nSEND:\n");
-	//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET, 
-	//       "-----------------------------------\n");
-	//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET, "%s\n", str);
-	//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET, 
-	//       "-----------------------------------\n");
-	lm_verbose (  "\n[connection_send]: SEND:\n");
-	lm_verbose (  "-----------------------------------\n");
-	lm_verbose (  "%s\n", str);
-	lm_verbose (  "-----------------------------------\n");
-
-	/* Check to see if there already is an output buffer, if so, add to the
-	   buffer and return */
-
-	if (lm_socket_output_is_buffered (connection->socket, str, len)) {
-		return TRUE;
-	}
-	
-	b_written = lm_socket_do_write (connection->socket, str, len);
-
-	lm_verbose("[connection_send]: number of bytes written using lm_socket_do_write is : %d\n",b_written);
-	if (b_written < 0) {
-		lm_verbose("[connection_send]: Since b_written<0 closing the connection\n");
-		connection_do_close (connection);
-		connection_signal_disconnect (connection, 
-		                     LM_DISCONNECT_REASON_ERROR);
-		g_set_error (error,
-			     LM_ERROR,
-			     LM_ERROR_CONNECTION_FAILED,
-			     "Server closed the connection");
-		return FALSE;
-	}
-
-	if (b_written < len) {
-		lm_socket_setup_output_buffer (connection->socket, 
-						str + b_written, 
-						len - b_written);
-	}
-
-	return TRUE;
-}
-
-static void
-connection_message_queue_cb (LmMessageQueue *queue, LmConnection *connection)
-{
-	LmMessage *m;
-
-	m = lm_message_queue_pop_nth (connection->queue, 0);
-
-	if (m) {
-	    lm_verbose("In connection_message_queue_cb\n");
-		connection_handle_message (connection, m);
-		lm_message_unref (m);
-		lm_verbose("After un refing the message\n");
-	}
-	UNUSED_FORMAL_PARAM(queue);
-}
-
-/* Returns directly */
-/* Setups all data needed to start the connection attempts */
-static gboolean
-connection_do_open (LmConnection *connection, GError **error) 
-{
-	gchar *domain = NULL;
-
-	if (lm_connection_is_open (connection)) {
-		g_set_error (error,
-			     LM_ERROR,
-			     LM_ERROR_CONNECTION_NOT_OPEN,
-			     "Connection is already open, call lm_connection_close() first");
-		return FALSE;
-	}
-
-	if (!connection_get_server_from_jid (connection->jid, &domain)) {
-		domain = g_strdup (connection->server);
-	}
-
-	lm_verbose ("[connection_do_open]: Connecting to: %s:%d\n", connection->server, connection->port);
-
-	connection->socket = lm_socket_create (connection->context,
-					       (IncomingDataFunc) connection_incoming_data,
-					       (SocketClosedFunc) connection_socket_closed_cb,
-					       (ConnectResultFunc) connection_socket_connect_cb,
-					       connection,
-					       connection,
-					       connection->blocking,
-					       connection->server,
-					       domain,
-					       connection->port,
-					       connection->ssl,
-					       connection->proxy,
-					       error);
-
-	g_free (domain);
-    lm_verbose ("[connection_do_open]: after lm_socket_create call in connection_do_open");
-    
-	if (!connection->socket) {
-		return FALSE;
-	}
-
-	lm_message_queue_attach (connection->queue, connection->context);
-	
-	connection->state = LM_CONNECTION_STATE_OPENING;
-	connection->async_connect_waiting = FALSE;
-
-	return TRUE;
-}
-					
-void
-connection_do_close (LmConnection *connection)
-{
-	connection_stop_keep_alive (connection);
-
-	if (connection->socket) {
-		lm_socket_close (connection->socket);
-	}
-
-	lm_message_queue_detach (connection->queue);
-	
-	if (!lm_connection_is_open (connection)) {
-		/* lm_connection_is_open is FALSE for state OPENING as well */
-		connection->state = LM_CONNECTION_STATE_CLOSED;
-		connection->async_connect_waiting = FALSE;
-		return;
-	}
-	
-	connection->state = LM_CONNECTION_STATE_CLOSED;
-	connection->async_connect_waiting = FALSE;
-	if (connection->ssl) {
-		_lm_ssl_close (connection->ssl);
-	}
-
-	if (connection->sasl) {
-		lm_sasl_free (connection->sasl);
-		connection->sasl = NULL;
-	}
-}
-
-typedef struct {
-	gchar        *username;
-	gchar        *password;
-	gchar        *resource;
-} AuthReqData;
-
-static void 
-auth_req_data_free (AuthReqData *data) 
-{
-	g_free (data->username);
-	g_free (data->password);
-	g_free (data->resource);
-	g_free (data);
-}
-
-static LmMessage *
-connection_create_auth_req_msg (const gchar *username)
-{
-	LmMessage     *m;
-	LmMessageNode *q_node;
-	
-	m = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ,
-					  LM_MESSAGE_SUB_TYPE_GET);
-	q_node = lm_message_node_add_child (m->node, "query", NULL);
-	lm_message_node_set_attributes (q_node,
-					"xmlns", "jabber:iq:auth",
-					NULL);
-	lm_message_node_add_child (q_node, "username", username);
-
-	return m;
-}
-
-static LmMessage *
-connection_create_auth_msg (LmConnection *connection,
-			    const gchar  *username,
-			    const gchar  *password,
-			    const gchar  *resource,
-			    gint          auth_type)
-{
-	LmMessage     *auth_msg;
-	LmMessageNode *q_node;
-
-	auth_msg = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ,
-						 LM_MESSAGE_SUB_TYPE_SET);
-	
-	q_node = lm_message_node_add_child (auth_msg->node, "query", NULL);
-	
-	lm_message_node_set_attributes (q_node,
-					"xmlns", "jabber:iq:auth", 
-					NULL);
-
-	lm_message_node_add_child (q_node, "username", username);
-	
-	if (auth_type & AUTH_TYPE_0K) {
-		lm_verbose ("Using 0k auth (not implemented yet)\n");
-		/* TODO: Should probably use this? */
-	}
-
-	if (auth_type & AUTH_TYPE_DIGEST) {
-		gchar       *str;
-		const gchar *digest;
-
-		lm_verbose ("Using digest\n");
-		str = g_strconcat (connection->stream_id, password, NULL);
-		digest = lm_sha_hash (str);
-		g_free (str);
-		lm_message_node_add_child (q_node, "digest", digest);
-	} 
-	else if (auth_type & AUTH_TYPE_PLAIN) {
-		lm_verbose ("Using plaintext auth\n");
-		lm_message_node_add_child (q_node, "password", password);
-	} else {
-		/* TODO: Report error somehow */
-	}
-	
-	lm_message_node_add_child (q_node, "resource", resource);
-
-	return auth_msg;
-}
-
-static LmHandlerResult
-connection_auth_req_reply (LmMessageHandler *handler,
-			   LmConnection     *connection,
-			   LmMessage        *m,
-			   gpointer          user_data)
-{
-	int               auth_type;
-	LmMessage        *auth_msg;
-	LmMessageHandler *auth_handler;
-	AuthReqData      *data = (AuthReqData *) user_data;      
-	gboolean          result;
-	
-	auth_type = connection_check_auth_type (m);
-
-	auth_msg = connection_create_auth_msg (connection, 
-					       data->username,
-					       data->password,
-					       data->resource,
-					       auth_type);
-
-	auth_handler = lm_message_handler_new (connection_auth_reply,
-					       NULL, NULL);
-	result = lm_connection_send_with_reply (connection, auth_msg, 
-						auth_handler, NULL);
-	lm_message_handler_unref (auth_handler);
-	lm_message_unref (auth_msg);
-	UNUSED_FORMAL_PARAM(handler);
-	UNUSED_FORMAL_PARAM(user_data);
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static int
-connection_check_auth_type (LmMessage *auth_req_rpl)
-{
-	LmMessageNode *q_node;
-	gint           ret_val = 0; 
-
-	q_node = lm_message_node_get_child (auth_req_rpl->node, "query");
-	
-	if (!q_node) {
-		return AUTH_TYPE_PLAIN;
-	}
-
-	if (lm_message_node_get_child (q_node, "password")) {
-		ret_val |= AUTH_TYPE_PLAIN;
-	}
-
-	if (lm_message_node_get_child (q_node, "digest")) {
-		ret_val |= AUTH_TYPE_DIGEST;
-	}
-
-	if (lm_message_node_get_child (q_node, "sequence") &&
-	    lm_message_node_get_child (q_node, "token")) {
-		ret_val |= AUTH_TYPE_0K;
-	}
-
-	return ret_val;
-}
-
-static LmHandlerResult 
-connection_auth_reply (LmMessageHandler *handler,
-		       LmConnection     *connection,
-		       LmMessage        *m,
-		       gpointer          user_data)
-{
-	const gchar *type;
-	gboolean     result = TRUE;
-	
-	g_return_val_if_fail (connection != NULL, 
-			      LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS);
-	
-
-	type = lm_message_node_get_attribute (m->node, "type");
-	if (strcmp (type, "result") == 0) {
-		result = TRUE;
-		connection->state = LM_CONNECTION_STATE_AUTHENTICATED;
-	} 
-	else if (strcmp (type, "error") == 0) {
-		result = FALSE;
-		connection->state = LM_CONNECTION_STATE_OPEN;
-	}
-	
-	lm_verbose ("AUTH reply: %d\n", result);
-	
-	if (connection->auth_cb) {
-	        LmCallback *cb = connection->auth_cb;
-
-		connection->auth_cb = NULL;
-
-		if (cb->func) {
-	    		(* ((LmResultFunction) cb->func)) (connection, 
-						           result, cb->user_data);
-		}
-
-		_lm_utils_free_callback (cb);
-	}
-	UNUSED_FORMAL_PARAM(handler);
-	UNUSED_FORMAL_PARAM(user_data);
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-
-static LmHandlerResult
-_lm_connection_starttls_cb (LmMessageHandler *handler,
-			    LmConnection *connection,
-			    LmMessage *message,
-			    gpointer user_data)
-{
-	if (lm_socket_starttls (connection->socket)) {
-		connection->tls_started = TRUE;
-		connection_send_stream_header (connection);
-	} else {
-		connection_do_close (connection);
-		connection_signal_disconnect (connection, 
-					      LM_DISCONNECT_REASON_ERROR);
-	}
-	UNUSED_FORMAL_PARAM(message);
-	UNUSED_FORMAL_PARAM(handler);
-	UNUSED_FORMAL_PARAM(user_data);
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static void
-connection_stream_received (LmConnection *connection, LmMessage *m)
-{
-	gboolean result;
-	const char *xmpp_version;
-	
-	g_return_if_fail (connection != NULL);
-	g_return_if_fail (m != NULL);
-	
-	connection->stream_id = g_strdup (lm_message_node_get_attribute (m->node,
-									 "id"));;
-
-	xmpp_version = lm_message_node_get_attribute (m->node, "version");
-	if (xmpp_version && strcmp (xmpp_version, "1.0") == 0) {
-		lm_verbose ("[connection_stream_received]: XMPP 1.0 stream received: %s\n",
-			    connection->stream_id);
-
-		connection->use_sasl = TRUE;
-		
-		/* stream is started multiple times, but we only want
-		 * one sasl mechanism */
-		if (!connection->sasl)
-			connection->sasl = lm_sasl_new(connection);
-
-		/* if we'd like to use tls and we didn't already start
-		 * it, prepare for it now */
-		if (connection->ssl &&
-				lm_ssl_get_use_starttls (connection->ssl) &&
-				!connection->starttls_cb) {
-						lm_verbose("[connction_stream_received]: Starttls called");
-			connection->starttls_cb  =
-				lm_message_handler_new (_lm_connection_starttls_cb,
-					NULL, NULL);
-			lm_connection_register_message_handler (connection,
-				connection->starttls_cb,
-				LM_MESSAGE_TYPE_PROCEED,
-				LM_HANDLER_PRIORITY_FIRST);
-		}
-	} else {
-		lm_verbose ("Old Jabber stream received: %s\n", 
-			    connection->stream_id);
-	}
-	
-	if (connection->state < LM_CONNECTION_STATE_OPEN) {
-		connection->state = LM_CONNECTION_STATE_OPEN;
-	}
-	
-	/* Check to see if the stream is correctly set up */
-	result = TRUE;
-
-//	connection_start_keep_alive (connection); //prima
-
-	if (connection->open_cb) {
-		LmCallback *cb = connection->open_cb;
-
-		connection->open_cb = NULL;
-		
-		if (cb->func) {
-		        (* ((LmResultFunction) cb->func)) (connection, result,
-			        			   cb->user_data);
-		}
-		_lm_utils_free_callback (cb);
-	}
-}
-
-static void
-connection_stream_error (LmConnection *connection, LmMessage *m)
-{
-	LmMessageNode *node, *reason_node;
-	LmDisconnectReason reason;
-
-	g_return_if_fail (connection != NULL);
-	g_return_if_fail (m != NULL);
-
-	node = m->node;
-
-	/* Resource conflict */
-	reason_node = lm_message_node_get_child (node, "conflict");
-	if (reason_node) {
-		lm_verbose ("Stream error: Conflict (resource connected elsewhere)\n");
-		reason = LM_DISCONNECT_REASON_RESOURCE_CONFLICT;
-		return;
-	}
-
-	/* XML is crack */
-	reason_node = lm_message_node_get_child (node, "xml-not-well-formed");
-	if (reason_node) {
-		lm_verbose ("Stream error: XML not well formed\n");
-		reason = LM_DISCONNECT_REASON_INVALID_XML;
-		return;
-	}
-
-	lm_verbose ("Stream error: Unrecognised error\n");
-	reason = LM_DISCONNECT_REASON_ERROR;
-	connection->stream_id = g_strdup (lm_message_node_get_attribute (m->node,
-									 "id"));;
-	connection_do_close (connection);
-	connection_signal_disconnect (connection, reason);
-}
-
-static gint
-connection_handler_compare_func (HandlerData *a, HandlerData *b)
-{
-	return b->priority - a->priority;
-}
-
-static void
-connection_signal_disconnect (LmConnection       *connection,
-			      LmDisconnectReason  reason)
-{
-    lm_verbose ("[connection_signal_disconnect]\n");      
-	if (connection->disconnect_cb && connection->disconnect_cb->func) {
-	    
-		LmCallback *cb = connection->disconnect_cb;
-		lm_verbose("[connection_signal_disconnect]: ...disconnecting\n");		
-		lm_connection_ref (connection);
-		(* ((LmDisconnectFunction) cb->func)) (connection,
-						       reason,
-						       cb->user_data);
-		lm_connection_unref (connection);
-		lm_verbose("[connection_signal_disconnect]: ...after unref\n"); 
-	}
-}
-
-static void
-connection_incoming_data (LmSocket     *socket, 
-			  const gchar  *buf, 
-			  LmConnection *connection)
-{
-	lm_parser_parse (connection->parser, buf);
-	UNUSED_FORMAL_PARAM(socket);
-}
-
-static void
-connection_socket_closed_cb (LmSocket        *socket,
-			     LmDisconnectReason reason,
-			     LmConnection       *connection)
-{
-    lm_verbose("[connection_socket_closed_cb]: inside..\n");
-    connection_do_close (connection);
-	connection_signal_disconnect (connection, reason);
-	lm_verbose("[connection_socket_closed_cb]: exiting..\n");
-	UNUSED_FORMAL_PARAM(socket);
-}
-
-static void
-connection_socket_connect_cb (LmSocket           *socket,
-			      gboolean            result,
-			      LmConnection       *connection)
-{
-	if (!result) {
-		connection_do_close (connection);
-	    lm_verbose ("[connection_socket_connect_cb]: result false ");
-		if (connection->open_cb) {
-			LmCallback *cb = connection->open_cb;
-		    lm_verbose ("[connection_socket_connect_cb]: connection->open_cb is defined "); 
-
-			connection->open_cb = NULL;
-			
-			(* ((LmResultFunction) cb->func)) (connection, FALSE,
-							   cb->user_data);
-			_lm_utils_free_callback (cb);
-		}
-	
-		UNUSED_FORMAL_PARAM(socket);
-		return;
-	}
-	
-	/* FIXME: Set up according to XMPP 1.0 specification */
-	/*        StartTLS and the like */
-	if (!connection_send (connection, 
-			      "<?xml version='1.0' encoding='UTF-8'?>", -1,
-			      NULL)) {
-		lm_verbose ("Failed to send xml version and encoding\n");
-		connection_do_close (connection);
-
-		return;
-	}
-
-	connection_send_stream_header (connection);
-	lm_verbose("\n[connection_socket_connect_cb]: exiting ");
-}
-
-static gboolean
-connection_get_server_from_jid (const gchar     *jid,
-				gchar          **server)
-{
-	gchar *ch;
-	gchar *ch_end;
-
-	if (jid != NULL && (ch = strchr (jid, '@')) != NULL) {
-		ch_end = strchr(ch + 1, '/');
-		if (ch_end != NULL) {
-			*server = g_strndup (ch + 1, ch_end - ch - 1);
-		} else {
-			*server = g_strdup (ch + 1);
-		}
-
-		return TRUE;
-	} 
-	
-	return FALSE;
-}
-
-static void
-connection_send_stream_header (LmConnection *connection)
-{
-	LmMessage *m;
-	gchar     *server_from_jid;
-
-	lm_verbose ("Sending stream header\n");
-
-	if (!connection_get_server_from_jid (connection->jid, &server_from_jid)) {
-		server_from_jid = g_strdup (connection->server);
-	}
-
-	m = lm_message_new (server_from_jid, LM_MESSAGE_TYPE_STREAM);
-	lm_message_node_set_attributes (m->node,
-					"xmlns:stream", 
-					"http://etherx.jabber.org/streams",
-					"xmlns", "jabber:client",
-					"version", "1.0",
-					NULL);
-	
-	g_free (server_from_jid);
-
-	if (!lm_connection_send (connection, m, NULL)) {
-		lm_verbose ("Failed to send stream information\n");
-		connection_do_close (connection);
-	}
-	connection_start_keep_alive (connection); //prima	
-	lm_message_unref (m);
-	lm_verbose("\n[connection_send_stream_header]: Exiting send stream header method");
-}
-
-gboolean 
-_lm_connection_async_connect_waiting (LmConnection *connection)
-{
-	return connection->async_connect_waiting;
-}
-
-void
-_lm_connection_set_async_connect_waiting (LmConnection *connection,
-					  gboolean      waiting)
-{
-	connection->async_connect_waiting = waiting;
-}
-
-static void
-connection_call_auth_cb (LmConnection *connection, gboolean success)
-{
-	if (success) {
-		lm_verbose("connection_call_auth_cb: authenticated\n");
-		connection->state = LM_CONNECTION_STATE_AUTHENTICATED;
-	} else {
-		lm_verbose("connection_call_auth_cb: conn still open\n");
-		connection->state = LM_CONNECTION_STATE_OPEN;
-	}
-
-	if (connection->auth_cb) {
-	        LmCallback *cb = connection->auth_cb;
-
-		connection->auth_cb = NULL;
-
-		if (cb->func) {
-		lm_verbose("connection_call_auth_cb: calling the test code's registered cb method\n");
-	    		(* ((LmResultFunction) cb->func)) (connection, 
-						           success,
-							   cb->user_data);
-		}
-
-		_lm_utils_free_callback (cb);
-	}
-}
-
-static LmHandlerResult
-connection_bind_reply (LmMessageHandler *handler,
-			LmConnection    *connection,
-			LmMessage       *message,
-			gpointer         user_data)
-{
-	LmMessage        *m;
-	LmMessageNode    *session_node;
-	LmMessageNode    *jid_node;
-	int               result;
-	LmMessageSubType  type;
-	lm_verbose("[connection_bind_reply]: inside connection_bind_reply\n");
-	type = lm_message_get_sub_type (message);
-	if (type == LM_MESSAGE_SUB_TYPE_ERROR) {
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL, 
-		       "%s: error while binding to resource\n", G_STRFUNC);*/
-		lm_verbose("[connection_bind_reply]: calling connection_call_auth_cb\n");
-		connection_call_auth_cb (connection, FALSE);
-		lm_verbose("[connection_bind_reply]: called connection_call_auth_cb\n");
-		UNUSED_FORMAL_PARAM(user_data);
-		UNUSED_FORMAL_PARAM(handler);
-		return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-	}
-
-	/* use whatever server returns as our effective jid */
-	jid_node = lm_message_node_find_child (message->node, "jid");
-	if (jid_node) {
-		g_free (connection->effective_jid);
-		connection->effective_jid = g_strdup
-			(lm_message_node_get_value (jid_node));
-	}
-
-
-	m = lm_message_new_with_sub_type (NULL,
-					  LM_MESSAGE_TYPE_IQ, 
-					  LM_MESSAGE_SUB_TYPE_SET);
-
-	lm_verbose("[connection_bind_reply]: Creation session child node\n");
-	session_node = lm_message_node_add_child (m->node, "session", NULL);
-	lm_message_node_set_attributes (session_node,
-					"xmlns", XMPP_NS_SESSION,
-					NULL);
-	lm_verbose("[connection_bind_reply]: Sending session child node\n");
-	result = lm_connection_send (connection, m, NULL);
-	lm_message_unref (m);
-	if (result < 0) {
-		connection_do_close (connection);
-	}
-
-	/* We may finally tell the client they're authorized */
-	connection_call_auth_cb (connection, TRUE);
-
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static LmHandlerResult
-connection_features_cb (LmMessageHandler *handler,
-			    LmConnection     *connection,
-			    LmMessage        *message,
-			    gpointer          user_data)
-{
-	LmMessageNode *bind_node;
-	LmMessageNode    *starttls_node;
-	LmMessageNode *old_auth;
-	lm_verbose("[connection_features_cb] inside..\n");
-	
-	starttls_node = lm_message_node_find_child (message->node, "starttls");
-	if (connection->ssl && lm_ssl_get_use_starttls (connection->ssl)) {
-		if (starttls_node) {
-			LmMessage        *msg;
-
-			msg = lm_message_new (NULL, LM_MESSAGE_TYPE_STARTTLS);
-
-			lm_message_node_set_attributes (
-				msg->node,
-				"xmlns", XMPP_NS_STARTTLS,
-				NULL);
-
-			lm_connection_send (connection, msg, NULL);
-			lm_message_unref (msg);
-
-			return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-		} else if (!connection->tls_started &&
-				lm_ssl_get_require_starttls (connection->ssl)) {
-			/* If there were no starttls features present and we require it, this is
-			 * the place to scream. */
-		lm_verbose("connection_features_cb: Required StartTLS feature not supported by server\n");
-
-			/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL, 
-			       "%s: required StartTLS feature not supported by server\n", G_STRFUNC);*/
-			connection_do_close (connection);
-			connection_signal_disconnect (connection,
-				LM_DISCONNECT_REASON_ERROR);
-			UNUSED_FORMAL_PARAM(user_data);
-			UNUSED_FORMAL_PARAM(handler);
-			return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-		}
-	}
-
-	bind_node = lm_message_node_find_child (message->node, "bind");
-	if (bind_node) {
-		LmMessageHandler *bind_handler;
-		LmMessage        *bind_msg;
-		const gchar      *ns;
-		int               result;
-
-		lm_verbose("connection_features_cb: found bind node\n");
-		ns = lm_message_node_get_attribute (bind_node, "xmlns");
-		if (!ns || strcmp (ns, XMPP_NS_BIND) != 0) {
-			return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-		}
-
-		bind_msg = lm_message_new_with_sub_type (NULL,
-							 LM_MESSAGE_TYPE_IQ, 
-							 LM_MESSAGE_SUB_TYPE_SET);
-
-		bind_node = lm_message_node_add_child (bind_msg->node, 
-						       "bind", NULL);
-		lm_message_node_set_attributes (bind_node,
-						"xmlns", XMPP_NS_BIND,
-						NULL);
-
-		lm_message_node_add_child (bind_node, "resource",
-					   connection->resource);
-
-		lm_verbose("[connection_features_cb]:setting callback method for bind response\n");
-		bind_handler = lm_message_handler_new (connection_bind_reply,
-						       NULL, NULL);
-		lm_verbose("[connection_features_cb]: calling lm_connection_send_with_reply for bind response\n");
-		result = lm_connection_send_with_reply (connection, bind_msg, 
-							bind_handler, NULL);
-		lm_verbose("[connection_features_cb]:called lm_connection_send_with_reply for bind response with result: %d\n", result);
-		lm_message_handler_unref (bind_handler);
-		lm_message_unref (bind_msg);
-
-		if (result < 0) {
-			/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL, 
-			       "%s: can't send resource binding request\n", G_STRFUNC);*/
-			connection_do_close (connection);
-		}
-	}
-
-	old_auth = lm_message_node_find_child (message->node, "auth");
-	if (connection->use_sasl && old_auth) {
-		g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL, 
-		       "Server uses XEP-0078 (jabber iq auth) instead of SASL\n");
-		/* So the server is XMPP1.0, but doesn't support SASL and uses
-		 * obsolete XEP-0078 instead. Let's cope. */
-
-		connection->use_sasl = FALSE;
-
-		if (connection->sasl) {
-			const gchar *user, *pass;
-
-			lm_sasl_get_auth_params (connection->sasl, &user, &pass);
-			if (user && pass) {
-				GError *error = NULL;
-				lm_verbose("[connection_features_cb]:calling _lm_connection_old_auth\n");
-				_lm_connection_old_auth (connection, user, pass,
-					connection->resource, &error);
-
-				if (error) {
-					g_error_free (error);
-				}
-			}
-
-			lm_sasl_free (connection->sasl);
-			connection->sasl = NULL;
-		}
-	}
-
-	return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-}
-
-/**
- * lm_connection_new:
- * @server: The hostname to the server for the connection.
- * 
- * Creates a new closed connection. To open the connection call 
- * lm_connection_open(). @server can be #NULL but must be set before calling lm_connection_open().
- * 
- * Return value: A newly created LmConnection, should be unreffed with lm_connection_unref().
- **/
-EXPORT_C LmConnection *
-lm_connection_new (const gchar *server)
-{
-	LmConnection *connection = NULL;
-	gint          i;
-	
-	lm_debug_init ();
-	_lm_sock_library_init ();
-
-	connection = g_new0 (LmConnection, 1);
-
-	if (server) {
-		connection->server  = _lm_utils_hostname_to_punycode (server);
-		connection->use_srv = FALSE;
-	} else {
-		connection->server  = NULL;
-		connection->use_srv = TRUE;
-	}
-
-	connection->context           = NULL;
-	connection->port              = LM_CONNECTION_DEFAULT_PORT;
-	connection->jid               = NULL;
-	connection->effective_jid     = NULL;
-	connection->ssl               = NULL;
-	connection->proxy             = NULL;
-	connection->disconnect_cb     = NULL;
-	connection->queue             = lm_message_queue_new ((LmMessageQueueCallback) connection_message_queue_cb, 
-							      connection);
-	connection->cancel_open       = FALSE;
-	connection->state             = LM_CONNECTION_STATE_CLOSED;
-	connection->keep_alive_source = NULL;
-	connection->keep_alive_rate   = 0;
-	connection->socket            = NULL;
-	connection->use_sasl          = FALSE;
-	connection->tls_started       = FALSE;
-	
-	connection->id_handlers = g_hash_table_new_full (g_str_hash, 
-							 g_str_equal,
-							 g_free, 
-							 (GDestroyNotify) lm_message_handler_unref);
-	connection->ref_count         = 1;
-	
-	for (i = 0; i < LM_MESSAGE_TYPE_UNKNOWN; ++i) {
-		connection->handlers[i] = NULL;
-	}
-
-	connection->parser = lm_parser_new 
-		((LmParserMessageFunction) connection_new_message_cb, 
-		 connection, NULL);
-
-	return connection;
-}
-
-/**
- * lm_connection_new_with_context:
- * @server: The hostname to the server for the connection.
- * @context: The context this connection should be running in.
- * 
- * Creates a new closed connection running in a certain context. To open the 
- * connection call #lm_connection_open. @server can be #NULL but must be set 
- * before calling #lm_connection_open.
- * 
- * Return value: A newly created LmConnection, should be unreffed with lm_connection_unref().
- **/
-EXPORT_C LmConnection *
-lm_connection_new_with_context (const gchar *server, GMainContext *context)
-{
-	LmConnection *connection;
-
-	connection = lm_connection_new (server);
-	connection->context = context;
-
-	if (context) {
-        	g_main_context_ref (connection->context);
-	}
-
-	return connection;
-}
-
-/**
- * lm_connection_open:
- * @connection: #LmConnection to open
- * @function: Callback function that will be called when the connection is open.
- * @user_data: User data that will be passed to @function.
- * @notify: Function for freeing that user_data, can be NULL.
- * @error: location to store error, or %NULL
- * 
- * An async call to open @connection. When the connection is open @function will be called.
- * 
- * Return value: #TRUE if everything went fine, otherwise #FALSE.
- **/
-EXPORT_C gboolean
-lm_connection_open (LmConnection      *connection, 
-		    LmResultFunction   function,
-		    gpointer           user_data,
-		    GDestroyNotify     notify,
-		    GError           **error)
-{
-	lm_verbose("[lm_connection_open]: open...");
-	g_return_val_if_fail (connection != NULL, FALSE);
-	
-	connection->open_cb = _lm_utils_new_callback ((gpointer)function, 
-						      user_data, notify);
-	connection->blocking = FALSE;
-	lm_verbose("[lm_connection_open]: calling connection_do_open...");
-	return connection_do_open (connection, error);
-}
-
-/**
- * lm_connection_open_and_block:
- * @connection: an #LmConnection to open
- * @error: location to store error, or %NULL
- * 
- * Opens @connection and waits until the stream is setup. 
- * 
- * Return value: #TRUE if no errors where encountered during opening and stream setup successfully, #FALSE otherwise.
- **/
-EXPORT_C gboolean
-lm_connection_open_and_block (LmConnection *connection, GError **error)
-{
-	gboolean          result;
-	LmConnectionState state;
-	
-	g_return_val_if_fail (connection != NULL, FALSE);
-
-	connection->open_cb = NULL;
-	connection->blocking = TRUE;
-
-	result = connection_do_open (connection, error);
-	
-	if (result == FALSE) {
-		return FALSE;
-	}
-		
-	while ((state = lm_connection_get_state (connection)) == LM_CONNECTION_STATE_OPENING) {
-		if (g_main_context_pending (connection->context)) {
-			g_main_context_iteration (connection->context, TRUE);
-		} else {
-			/* Sleep for 1 millisecond */
-			g_usleep (1000);
-		}
-	}
-
-	if (lm_connection_is_open (connection)) {
-		connection_start_keep_alive (connection);
-		return TRUE;
-	}
-
-	/* Need to set the error here: LM-15 */
-	g_set_error (error,
-		     LM_ERROR,
-		     LM_ERROR_CONNECTION_FAILED,
-		     "Opening the connection failed");
-
-	return FALSE;
-}
-
-/**
- * lm_connection_cancel_open:
- * @connection: an #LmConnection to cancel opening on
- *
- * Cancels the open operation of a connection. The connection should be in the state #LM_CONNECTION_STATE_OPENING.
- **/
-EXPORT_C void
-lm_connection_cancel_open (LmConnection *connection)
-{
-	g_return_if_fail (connection != NULL);
-
-	lm_verbose("[lm_connection_cancel_open]: inside..");
-	if (connection->open_cb) {
-		_lm_utils_free_callback (connection->open_cb);
-		connection->open_cb = NULL;
-	}
-
-	connection->cancel_open = TRUE;
-
-#ifdef HAVE_ASYNCNS
-	lm_verbose("[lm_connection_cancel_open] called in HAVE_ASYNCNS");
-	_asyncns_cancel(connection->socket);
-#endif
-}
-
-/**
- * lm_connection_close:
- * @connection: #LmConnection to close 
- * @error: location to store error, or %NULL
- * 
- * A synchronous call to close the connection. When returning the connection is considered to be closed and can be opened again with lm_connection_open().
- * 
- * Return value: Returns #TRUE if no errors where detected, otherwise #FALSE.
- **/
-EXPORT_C gboolean
-lm_connection_close (LmConnection      *connection, 
-		     GError           **error)
-{
-	gboolean no_errors = TRUE;
-	
-	g_return_val_if_fail (connection != NULL, FALSE);
-
-#ifdef HAVE_ASYNCNS
-	_asyncns_cancel (connection->socket);
-#endif
-
-	if (connection->state == LM_CONNECTION_STATE_CLOSED) {
-		g_set_error (error,
-			     LM_ERROR,
-			     LM_ERROR_CONNECTION_NOT_OPEN,
-			     "Connection is not open, call lm_connection_open() first");
-		return FALSE;
-	}
-
-	lm_verbose ("Disconnecting from: %s:%d\n", 
-		    connection->server, connection->port);
-	
-	if (lm_connection_is_open (connection)) {
-		if (!connection_send (connection, "</stream:stream>", -1, error)) {
-			no_errors = FALSE;
-		}
-
-		lm_socket_flush (connection->socket);
-	}
-	
-	connection_do_close (connection);
-	connection_signal_disconnect (connection, LM_DISCONNECT_REASON_OK);
-	
-	return no_errors;
-}
-
-static void
-connection_sasl_auth_finished (LmSASL *sasl,
-			       LmConnection *connection,
-			       gboolean success,
-			       const gchar *reason)
-{
-	if (!success) {
-		lm_verbose ("SASL authentication failed, closing connection\n");
-		connection_call_auth_cb (connection, FALSE);
-		return;
-	}
-
-	connection_send_stream_header (connection);
-	UNUSED_FORMAL_PARAM(sasl);
-	UNUSED_FORMAL_PARAM(reason);
-	lm_verbose("\n exiting SASL auth finished method");
-}
-
-/**
- * lm_connection_authenticate:
- * @connection: #LmConnection to authenticate.
- * @username: Username used to authenticate.
- * @password: Password corresponding to @username.
- * @resource: Resource used for this connection.
- * @function: Callback called when authentication is finished.
- * @user_data: Userdata passed to @function when called.
- * @notify: Destroy function to free the memory used by @user_data, can be NULL.
- * @error: location to store error, or %NULL
- * 
- * Tries to authenticate a user against the server. The #LmResult in the result callback @function will say whether it succeeded or not. 
- * 
- * Return value: #TRUE if no errors where detected while sending the authentication message, #FALSE otherwise.
- **/
-EXPORT_C gboolean
-lm_connection_authenticate (LmConnection      *connection,
-			    const gchar       *username,
-			    const gchar       *password,
-			    const gchar       *resource,
-			    LmResultFunction   function,
-			    gpointer           user_data,
-			    GDestroyNotify     notify,
-			    GError           **error)
-{
-	g_return_val_if_fail (connection != NULL, FALSE);
-	g_return_val_if_fail (username != NULL, FALSE);
-	g_return_val_if_fail (password != NULL, FALSE);
-	g_return_val_if_fail (resource != NULL, FALSE);
-
-	if (!lm_connection_is_open (connection)) {
-		g_set_error (error,
-			     LM_ERROR,
-			     LM_ERROR_CONNECTION_NOT_OPEN,
-			     "Connection is not open, call lm_connection_open() first");
-		return FALSE;
-	}
-	lm_verbose("\n[lm_connection_authenticate] inside...\n");
-	connection->state = LM_CONNECTION_STATE_AUTHENTICATING;
-	
-	connection->auth_cb = _lm_utils_new_callback ((gpointer)function, 
-						      user_data, 
-						      notify);
-
-	connection->resource = g_strdup (resource);
-	connection->effective_jid = g_strdup_printf ("%s/%s", 
-		connection->jid, connection->resource);
-
-	if (connection->use_sasl) {
-		lm_verbose("[lm_connection_authenticate]: conn->use_sasl is true. calling lm_sasl_authenticate\n");
-		lm_sasl_authenticate (connection->sasl,
-				      username, password,
-				      connection->server,
-				      connection_sasl_auth_finished);
-
-		connection->features_cb  =
-			lm_message_handler_new (connection_features_cb,
-				NULL, NULL);
-		lm_connection_register_message_handler (connection,
-			connection->features_cb,
-			LM_MESSAGE_TYPE_STREAM_FEATURES,
-			LM_HANDLER_PRIORITY_FIRST);
-
-		lm_verbose("[lm_connection_authenticate]: connection->use_sasl is true. So NOT calling create_auth_req_msg\n");
-		return TRUE;
-	}
-
-	return _lm_connection_old_auth (connection, username, password,
-		resource, error);
-}
-
-gboolean
-_lm_connection_old_auth (LmConnection *connection, const gchar *username,
-	const gchar *password, const gchar *resource, GError **error)
-{
-	LmMessage        *m;
-	AuthReqData      *data;
-	LmMessageHandler *handler;
-	gboolean          result;
-	
-
-	m = connection_create_auth_req_msg (username);
-		
-	data = g_new0 (AuthReqData, 1);
-	data->username = g_strdup (username);
-	data->password = g_strdup (password);
-	data->resource = g_strdup (resource);
-	
-	handler = lm_message_handler_new (connection_auth_req_reply, 
-					  data, 
-					  (GDestroyNotify) auth_req_data_free);
-	result = lm_connection_send_with_reply (connection, m, handler, error);
-	
-	lm_message_handler_unref (handler);
-	lm_message_unref (m);
-
-	return result;
-}
-
-/**
- * lm_connection_authenticate_and_block:
- * @connection: an #LmConnection
- * @username: Username used to authenticate.
- * @password: Password corresponding to @username.
- * @resource: Resource used for this connection.
- * @error: location to store error, or %NULL
- * 
- * Tries to authenticate a user against the server. This function blocks until a reply to the authentication attempt is returned and returns whether it was successful or not.
- * 
- * Return value: #TRUE if no errors where detected and authentication was successful. #FALSE otherwise.
- **/
-EXPORT_C gboolean
-lm_connection_authenticate_and_block (LmConnection  *connection,
-				      const gchar   *username,
-				      const gchar   *password,
-				      const gchar   *resource,
-				      GError       **error)
-{
-	gboolean          result;
-
-	result = lm_connection_authenticate (connection, username, password,
-		resource, NULL, NULL, NULL, error);
-
-	if (!result)
-		return result;
-
-	while (lm_connection_get_state (connection) == LM_CONNECTION_STATE_AUTHENTICATING) {
-		if (g_main_context_pending (connection->context)) {
-			g_main_context_iteration (connection->context, TRUE);
-		} else {
-			/* Sleep for 1 millisecond */
-			g_usleep (1000);
-		}
-	}
-
-	switch (lm_connection_get_state (connection)) {
-	case LM_CONNECTION_STATE_AUTHENTICATED:
-		return TRUE;
-		//removing compilation error : not reachable statement
-		//break;
-	case LM_CONNECTION_STATE_OPEN:
-		g_set_error (error,
-			     LM_ERROR,
-			     LM_ERROR_AUTH_FAILED,
-			     "Authentication failed");
-		return FALSE;
-		//removing compilation error : not reachable statement
-		//break;
-	default:
-		g_assert_not_reached ();
-		break;
-	} 
-
-	return FALSE;
-}
-
-/**
- * lm_connection_get_keep_alive_rate:
- * @connection: an #LmConnection 
- *
- * Get the keep alive rate, in seconds. Zero is returned if no keep alive rate has been set.
- *
- * Since 1.3.5
- **/
-guint
-lm_connection_get_keep_alive_rate (LmConnection *connection)
-{
-	g_return_val_if_fail (connection != NULL, 0);
-
-	return connection->keep_alive_rate;
-}
-
-/**
- * lm_connection_set_keep_alive_rate:
- * @connection: an #LmConnection
- * @rate: Number of seconds between keep alive packages are sent.
- * 
- * Set the keep alive rate, in seconds. Set to 0 to prevent keep alive messages to be sent.
- * A keep alive message is a single space character.
- **/
-EXPORT_C void
-lm_connection_set_keep_alive_rate (LmConnection *connection, guint rate)
-{
-	g_return_if_fail (connection != NULL);
-	lm_verbose("Setting Keep Alive Rate");
-	connection_stop_keep_alive (connection);
-
-	if (rate == 0) {
-		connection->keep_alive_source = NULL;
-		return;
-	}
-
-	connection->keep_alive_rate = rate;
-	
-	if (lm_connection_is_open (connection)) {
-		connection_start_keep_alive (connection);
-	}
-}
-
-/**
- * lm_connection_is_open:
- * @connection: #LmConnection to check if it is open.
- * 
- * Check if the @connection is currently open.
- * 
- * Return value: #TRUE if connection is open and #FALSE if it is closed.
- **/
-EXPORT_C gboolean
-lm_connection_is_open (LmConnection *connection)
-{
-	g_return_val_if_fail (connection != NULL, FALSE);
-	
-	return connection->state >= LM_CONNECTION_STATE_OPEN;
-}
-
-/**
- * lm_connection_is_authenticated:
- * @connection: #LmConnection to check if it is authenticated
- * 
- * Check if @connection is authenticated.
- * 
- * Return value: #TRUE if connection is authenticated, #FALSE otherwise.
- **/
-EXPORT_C gboolean 
-lm_connection_is_authenticated (LmConnection *connection)
-{
-	g_return_val_if_fail (connection != NULL, FALSE);
-
-	return connection->state >= LM_CONNECTION_STATE_AUTHENTICATED;
-}
-
-/**
- * lm_connection_get_server:
- * @connection: an #LmConnection
- * 
- * Fetches the server address that @connection is using. 
- * 
- * Return value: the server address
- **/
-EXPORT_C const gchar *
-lm_connection_get_server (LmConnection *connection)
-{
-	g_return_val_if_fail (connection != NULL, NULL);
-
-	return connection->server;
-}
-
-/**
- * lm_connection_set_server:
- * @connection: an #LmConnection
- * @server: Address of the server
- * 
- * Sets the server address for @connection to @server. Notice that @connection
- * can't be open while doing this. 
- **/
-EXPORT_C void
-lm_connection_set_server (LmConnection *connection, const gchar *server)
-{
-	g_return_if_fail (connection != NULL);
-	g_return_if_fail (server != NULL);
-	
-	if (lm_connection_is_open (connection)) {
-		g_warning ("Can't change server address while connected");
-		return;
-	}
-	
-	g_free (connection->server);
-	connection->server = _lm_utils_hostname_to_punycode (server);
-	connection->use_srv = FALSE;
-}
-
-/**
- * lm_connection_get_jid:
- * @connection: an #LmConnection
- * 
- * Fetches the jid set for @connection is using. 
- * 
- * Return value: the jid
- **/
-EXPORT_C const gchar *
-lm_connection_get_jid (LmConnection *connection)
-{
-	g_return_val_if_fail (connection != NULL, NULL);
-
-	return connection->jid;
-}
-
-/**
- * lm_connection_get_full_jid:
- * @connection: an #LmConnection
- * 
- * Returns the full jid that server set for us after
- * resource binding, complete with the resource.
- *
- * Return value: the jid
- **/
-gchar *
-lm_connection_get_full_jid (LmConnection *connection)
-{
-	g_return_val_if_fail (connection != NULL, NULL);
-
-	return connection->effective_jid;
-}
-
-/**
- * lm_connection_set_jid:
- * @connection: an #LmConnection
- * @jid: JID to be used for @connection
- * 
- * Sets the JID to be used for @connection.
- **/
-EXPORT_C void 
-lm_connection_set_jid (LmConnection *connection, const gchar *jid)
-{
-	g_return_if_fail (connection != NULL);
-
-	if (lm_connection_is_open (connection)) {
-		g_warning ("Can't change JID while connected");
-		return;
-	}
-
-	g_free (connection->jid);
-	connection->jid = g_strdup (jid);
-}
-
-/**
- * lm_connection_get_port:
- * @connection: an #LmConnection
- * 
- * Fetches the port that @connection is using.
- * 
- * Return value: 
- **/
-EXPORT_C guint
-lm_connection_get_port (LmConnection *connection)
-{
-	g_return_val_if_fail (connection != NULL, 0);
-
-	return connection->port;
-}
-
-/**
- * lm_connection_set_port:
- * @connection: an #LmConnection
- * @port: server port
- * 
- * Sets the server port that @connection will be using.
- **/
-EXPORT_C void
-lm_connection_set_port (LmConnection *connection, guint port)
-{
-	g_return_if_fail (connection != NULL);
-	
-	if (lm_connection_is_open (connection)) {
-		g_warning ("Can't change server port while connected");
-		return;
-	}
-	
-	connection->port = port;
-}
-
-/**
- * lm_connection_get_ssl: 
- * @connection: an #LmConnection
- *
- * Returns the SSL struct if the connection is using one.
- * 
- * Return value: The ssl struct or %NULL if no proxy is used.
- **/
-EXPORT_C LmSSL *
-lm_connection_get_ssl (LmConnection *connection)
-{
-	g_return_val_if_fail (connection != NULL, NULL);
-	
-	return connection->ssl;
-}
-
-/**
- * lm_connection_set_ssl:
- * @connection: An #LmConnection
- * @ssl: An #LmSSL
- *
- * Sets SSL struct or unset if @ssl is %NULL. If set @connection will use SSL to for the connection.
- */
-EXPORT_C void
-lm_connection_set_ssl (LmConnection *connection, LmSSL *ssl)
-{
-	lm_verbose("[lm_connection_set_ssl]: inside...");
-	g_return_if_fail (connection != NULL);
-	g_return_if_fail (lm_ssl_is_supported () == TRUE);
-
-	if (connection->ssl) {
-		lm_ssl_unref (connection->ssl);
-	}
-
-	if (ssl) {
-		lm_verbose("[lm_connection_set_ssl]: setting of ssl success");
-		connection->ssl = lm_ssl_ref (ssl);
-	} else {
-		lm_verbose("[lm_connection_set_ssl]: setting of ssl failed");
-		connection->ssl = NULL;
-	}
-}
-
-/**
- * lm_connection_get_proxy: 
- * @connection: an #LmConnection
- *
- * Returns the proxy if the connection is using one.
- * 
- * Return value: The proxy or %NULL if no proxy is used.
- **/
-EXPORT_C LmProxy *
-lm_connection_get_proxy (LmConnection *connection)
-{
-	g_return_val_if_fail (connection != NULL, NULL);
-
-	return connection->proxy;
-} 
-
-/**
- * lm_connection_set_proxy: 
- * @connection: an #LmConnection
- * @proxy: an #LmProxy
- *
- * Sets the proxy to use for this connection. To unset pass #NULL.
- * 
- **/
-EXPORT_C void
-lm_connection_set_proxy (LmConnection *connection, LmProxy *proxy)
-{
-	g_return_if_fail (connection != NULL);
-
-	if (lm_connection_is_open (connection)) {
-		g_warning ("Can't change server proxy while connected");
-		return;
-	}
-
-	if (connection->proxy) {
-		lm_proxy_unref (connection->proxy);
-		connection->proxy = NULL;
-	}
-
-	if (proxy && lm_proxy_get_type (proxy) != LM_PROXY_TYPE_NONE) {
-		connection->proxy = lm_proxy_ref (proxy);
-	}
-}
-
-/**
- * lm_connection_send: 
- * @connection: #LmConnection to send message over.
- * @message: #LmMessage to send.
- * @error: location to store error, or %NULL
- * 
- * Asynchronous call to send a message.
- * 
- * Return value: Returns #TRUE if no errors where detected while sending, #FALSE otherwise.
- **/
-EXPORT_C gboolean
-lm_connection_send (LmConnection  *connection, 
-		    LmMessage     *message, 
-		    GError       **error)
-{
-	gchar    *xml_str;
-	gchar    *ch;
-	gboolean  result;
-	
-	g_return_val_if_fail (connection != NULL, FALSE);
-	g_return_val_if_fail (message != NULL, FALSE);
-
-	xml_str = lm_message_node_to_string (message->node);
-	ch = strstr (xml_str, "</stream:stream>");
-	if (ch) {
-		*ch = '\0';
-	}
-	
-	result = connection_send (connection, xml_str, -1, error);
-	g_free (xml_str);
-
-	return result;
-}
-
-/**
- * lm_connection_send_with_reply:
- * @connection: #LmConnection used to send message.
- * @message: #LmMessage to send.
- * @handler: #LmMessageHandler that will be used when a reply to @message arrives
- * @error: location to store error, or %NULL
- * 
- * Send a #LmMessage which will result in a reply. 
- * 
- * Return value: Returns #TRUE if no errors where detected while sending, #FALSE otherwise.
- **/
-EXPORT_C gboolean 
-lm_connection_send_with_reply (LmConnection      *connection,
-			       LmMessage         *message,
-			       LmMessageHandler  *handler,
-			       GError           **error)
-{
-	gchar *id;
-	
-	g_return_val_if_fail (connection != NULL, FALSE);
-	g_return_val_if_fail (message != NULL, FALSE);
-	g_return_val_if_fail (handler != NULL, FALSE);
-
-	if (lm_message_node_get_attribute (message->node, "id")) {
-		id = g_strdup (lm_message_node_get_attribute (message->node, 
-							      "id"));
-	} else {
-		id = _lm_utils_generate_id ();
-		lm_message_node_set_attributes (message->node, "id", id, NULL);
-	}
-	
-	g_hash_table_insert (connection->id_handlers, 
-			     id, lm_message_handler_ref (handler));
-	lm_verbose("[lm_connection_send_with_reply]: inside..calling lm_connection_send\n");
-	return lm_connection_send (connection, message, error);
-}
-
-/**
- * lm_connection_send_with_reply_and_block:
- * @connection: an #LmConnection
- * @message: an #LmMessage
- * @error: Set if error was detected during sending.
- * 
- * Send @message and wait for return.
- * 
- * Return value: The reply
- **/
-EXPORT_C LmMessage *
-lm_connection_send_with_reply_and_block (LmConnection  *connection,
-					 LmMessage     *message,
-					 GError       **error)
-{
-	gchar     *id;
-	LmMessage *reply = NULL;
-
-	g_return_val_if_fail (connection != NULL, NULL);
-	g_return_val_if_fail (message != NULL, NULL);
-
-	if (connection->state < LM_CONNECTION_STATE_OPENING) {
-		g_set_error (error,
-			     LM_ERROR,
-			     LM_ERROR_CONNECTION_NOT_OPEN,
-			     "Connection is not open, call lm_connection_open() first");
-		return FALSE;
-	}
-
-
-	if (lm_message_node_get_attribute (message->node, "id")) {
-		id = g_strdup (lm_message_node_get_attribute (message->node, 
-							      "id"));
-	} else {
-		id = _lm_utils_generate_id ();
-		lm_message_node_set_attributes (message->node, "id", id, NULL);
-	}
-
-	lm_message_queue_detach (connection->queue);
-
-	lm_connection_send (connection, message, error);
-
-	while (!reply) {
-		const gchar *m_id;
-		guint        n;
-
-		g_main_context_iteration (connection->context, TRUE);
-	
-		if (lm_message_queue_is_empty (connection->queue)) {
-			continue;
-		}
-
-		for (n = 0; n < lm_message_queue_get_length (connection->queue); n++) {
-			LmMessage *m;
-
-			m = (LmMessage *) lm_message_queue_peek_nth (connection->queue, n);
-
-			m_id = lm_message_node_get_attribute (m->node, "id");
-			
-			if (m_id && strcmp (m_id, id) == 0) {
-				reply = m;
-				lm_message_queue_pop_nth (connection->queue, n);
-				break;
-			}
-		}
-	}
-
-	g_free (id);
-	lm_message_queue_attach (connection->queue, connection->context);
-
-	return reply;
-}
-
-/**
- * lm_connection_register_message_handler:
- * @connection: Connection to register a handler for.
- * @handler: Message handler to register.
- * @type: Message type that @handler will handle.
- * @priority: The priority in which to call @handler.
- * 
- * Registers a #LmMessageHandler to handle incoming messages of a certain type.
- * To unregister the handler call lm_connection_unregister_message_handler().
- **/
-EXPORT_C void
-lm_connection_register_message_handler  (LmConnection       *connection,
-					 LmMessageHandler   *handler,
-					 LmMessageType       type,
-					 LmHandlerPriority   priority)
-{
-	HandlerData      *hd;
-	
-	g_return_if_fail (connection != NULL);
-	g_return_if_fail (handler != NULL);
-	g_return_if_fail (type != LM_MESSAGE_TYPE_UNKNOWN);
-
-	hd = g_new0 (HandlerData, 1);
-	hd->priority = priority;
-	hd->handler  = lm_message_handler_ref (handler);
-
-	connection->handlers[type] = g_slist_insert_sorted (connection->handlers[type],
-							    hd, 
-							    (GCompareFunc) connection_handler_compare_func);
-}
-
-/**
- * lm_connection_unregister_message_handler:
- * @connection: Connection to unregister a handler for.
- * @handler: The handler to unregister.
- * @type: What type of messages to unregister this handler for.
- * 
- * Unregisters a handler for @connection. @handler will no longer be called 
- * when incoming messages of @type arrive.
- **/
-EXPORT_C void
-lm_connection_unregister_message_handler (LmConnection      *connection,
-					  LmMessageHandler  *handler,
-					  LmMessageType      type)
-{
-	GSList *l;
-	
-	g_return_if_fail (connection != NULL);
-	g_return_if_fail (handler != NULL);
-	g_return_if_fail (type != LM_MESSAGE_TYPE_UNKNOWN);
-
-	for (l = connection->handlers[type]; l; l = l->next) {
-		HandlerData *hd = (HandlerData *) l->data;
-		
-		if (handler == hd->handler) {
-			connection->handlers[type] = g_slist_remove_link (connection->handlers[type], l);
-			g_slist_free (l);
-			lm_message_handler_unref (hd->handler);
-			g_free (hd);
-			break;
-		}
-	}
-}
-
-/**
- * lm_connection_set_disconnect_function:
- * @connection: Connection to register disconnect callback for.
- * @function: Function to be called when @connection is closed.
- * @user_data: User data passed to @function.
- * @notify: Function that will be called with @user_data when @user_data needs to be freed. Pass #NULL if it shouldn't be freed.
- * 
- * Set the callback that will be called when a connection is closed. 
- **/
-EXPORT_C void
-lm_connection_set_disconnect_function (LmConnection         *connection,
-				       LmDisconnectFunction  function,
-				       gpointer              user_data,
-				       GDestroyNotify        notify)
-{
-	g_return_if_fail (connection != NULL);
-
-	if (connection->disconnect_cb) {
-		_lm_utils_free_callback (connection->disconnect_cb);
-	}
-		
-	if (function) {
-		connection->disconnect_cb = _lm_utils_new_callback ((gpointer)function, 
-	    					                    user_data,
-							            notify);
-	} else {
-		connection->disconnect_cb = NULL;
-	}
-}
-
-/**
- * lm_connection_send_raw:
- * @connection: Connection used to send
- * @str: The string to send, the entire string will be sent.
- * @error: Set if error was detected during sending.
- * 
- * Asynchronous call to send a raw string. Useful for debugging and testing.
- * 
- * Return value: Returns #TRUE if no errors was detected during sending, 
- * #FALSE otherwise.
- **/
-EXPORT_C gboolean 
-lm_connection_send_raw (LmConnection  *connection, 
-			const gchar   *str, 
-			GError       **error)
-{
-	g_return_val_if_fail (connection != NULL, FALSE);
-	g_return_val_if_fail (str != NULL, FALSE);
-
-	return connection_send (connection, str, -1, error);
-}
-/**
- * lm_connection_get_state:
- * @connection: Connection to get state on
- *
- * Returns the state of the connection.
- *
- * Return value: The state of the connection.
- **/
-EXPORT_C LmConnectionState 
-lm_connection_get_state (LmConnection *connection)
-{
-	g_return_val_if_fail (connection != NULL, 
-			      LM_CONNECTION_STATE_CLOSED);
-
-	return connection->state;
-}
-
-/**
- * lm_connection_get_client_host:
- * @connection: An #LmConnection
- *
- * Returns the local host name of the connection.
- *
- * Return value: A newly allocated string representing the local host name.
- **/
-gchar *
-lm_connection_get_local_host (LmConnection *connection)
-{
-	return lm_socket_get_local_host (connection->socket);
-}
-
-/**
- * lm_connection_ref:
- * @connection: Connection to add a reference to.
- * 
- * Add a reference on @connection. To remove a reference call 
- * lm_connection_unref().
- * 
- * Return value: Returns the same connection.
- **/
-EXPORT_C LmConnection*
-lm_connection_ref (LmConnection *connection)
-{
-	g_return_val_if_fail (connection != NULL, NULL);
-	
-	connection->ref_count++;
-	
-	return connection;
-}
-
-/**
- * lm_connection_unref:
- * @connection: Connection to remove reference from.
- * 
- * Removes a reference on @connection. If there are no references to
- * @connection it will be freed and shouldn't be used again.
- **/
-EXPORT_C void
-lm_connection_unref (LmConnection *connection)
-{
-	//g_return_if_fail (connection != NULL);
-	if(!connection)
-		return;
-	connection->ref_count--;
-	
-	if (connection->ref_count == 0) {
-		connection_free (connection);
-	}
-}
--- a/loudmouth/src/lm-debug.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "lm-debug.h"
-
-
-//#ifdef EMULATOR
-#ifndef LM_NO_DEBUG
-
-
-#ifdef EMULATOR
-#include "libloudmouth_wsd_solution.h"
-
-GET_GLOBAL_VAR_FROM_TLS(debug_flags,lm_debug,LmLogLevelFlags)
-	#define debug_flags (*GET_WSD_VAR_NAME(debug_flags,lm_debug,g)())
-
-GET_GLOBAL_VAR_FROM_TLS(initialized,lm_debug,gboolean)
-	#define initialized (*GET_WSD_VAR_NAME(initialized,lm_debug,g)())
-
-GET_GLOBAL_VAR_FROM_TLS(log_handler_id,lm_debug,guint)
-	#define log_handler_id (*GET_WSD_VAR_NAME(log_handler_id,lm_debug,g)())
-
-#else //EMULATOR
-
-
-static LmLogLevelFlags debug_flags = 0;
-static gboolean initialized = FALSE;
-static guint log_handler_id = 0;
-#endif//EMULATOR
-
-
-static const GDebugKey debug_keys[] = {
-	{"VERBOSE",      LM_LOG_LEVEL_VERBOSE},
-	{"NET",          LM_LOG_LEVEL_NET},
-	{"PARSER",       LM_LOG_LEVEL_PARSER},
-	{"SSL",          LM_LOG_LEVEL_SSL},
-	{"SASL",         LM_LOG_LEVEL_SASL},
-	{"ALL",          LM_LOG_LEVEL_ALL}
-};
-
-#define NUM_DEBUG_KEYS (sizeof (debug_keys) / sizeof (GDebugKey))
-
-static void
-debug_log_handler (const gchar    *log_domain,
-		   GLogLevelFlags  log_level,
-		   const gchar    *message,
-		   gpointer        user_data)
-{
-
-	
-	/*if (debug_flags & log_level) {
-		if (log_level & LM_LOG_LEVEL_VERBOSE) {
-			g_print ("*** ");
-		}
-		else if (log_level & LM_LOG_LEVEL_PARSER) {
-			g_print ("LM-PARSER: ");
-		} 
-		else if (log_level & LM_LOG_LEVEL_SASL) {
-			g_print ("LM-SASL: ");
-		}
-		else if (log_level & LM_LOG_LEVEL_SSL) {
-			g_print ("LM-SSL: ");
-		}
-	
-		g_print ("%s", message);*/
-       UNUSED_FORMAL_PARAM(log_domain);
-       UNUSED_FORMAL_PARAM(log_level);
-       UNUSED_FORMAL_PARAM(user_data);
-		lm_verbose (message);
-	//}
-}
-
-/**
- * lm_debug_init
- *
- * Initialized the debug system.
- **/
-void 
-lm_debug_init (void)
-{
-	/*const gchar *env_lm_debug;
-
-	if (initialized) {
-		return;
-	}
-	
-	env_lm_debug = g_getenv ("LM_DEBUG");
-	if (env_lm_debug) {
-		debug_flags = g_parse_debug_string (env_lm_debug, debug_keys,
-						    NUM_DEBUG_KEYS);
-	}
-
-	log_handler_id = g_log_set_handler (LM_LOG_DOMAIN, LM_LOG_LEVEL_ALL, 
-			   debug_log_handler, NULL);
-
-	initialized = TRUE;*/
-
-}
-
-#else  /* LM_NO_DEBUG */
-
-void 
-lm_debug_init (void)
-{
-}
-
-#endif /* LM_NO_DEBUG */
-
--- a/loudmouth/src/lm-error.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-#include <glib/gerror.h>
-#include "lm-error.h"
-
-EXPORT_C GQuark
-lm_error_quark (void)
-{
-	static GQuark q = 0;
-
-	if (q == 0) {
-		q = g_quark_from_static_string ("lm-error-quark");
-	}
-	
-	return q;
-}
--- a/loudmouth/src/lm-message-handler.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-
-#include "lm-internals.h"
-#include "lm-message-handler.h"
-#include "lm-debug.h"
-struct LmMessageHandler {
-	gboolean                valid;
-        gint                    ref_count;
-        LmHandleMessageFunction function;
-        gpointer                user_data;
-        GDestroyNotify          notify;
-};
-
-LmHandlerResult 
-_lm_message_handler_handle_message (LmMessageHandler *handler,
-                                    LmConnection     *connection,
-                                    LmMessage        *message)
-{
-     g_return_val_if_fail (handler != NULL, 
-                          LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS);
-	lm_verbose("\nCalling handler in handler_handle_message\n");
-	if (!handler->valid) {
-		return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-	}
-        
-        if (handler->function) {
-        		lm_verbose("In handler msg Node name: %s", message->node->name);
-                return (* handler->function) (handler, connection, 
-                                              message, handler->user_data);
-        }
-        lm_verbose("could not call handler: go for more handlers\n");
-        return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-}
-
-/**
- * lm_message_handler_new:
- * @function: a callback
- * @user_data: user data passed to function
- * @notify: function called when the message handler is freed
- * 
- * Creates a new message handler. This can be set to handle incoming messages
- * and when a message of the type the handler is registered to handle is
- * received @function will be called and @user_data will be passed to it.
- * @notify is called when the message handler is freed, that way any memory
- * allocated by @user_data can be freed.
- * 
- * Return value: a newly created message handler
- **/
-EXPORT_C LmMessageHandler *
-lm_message_handler_new (LmHandleMessageFunction function,
-                        gpointer                user_data,
-                        GDestroyNotify          notify)
-{
-        LmMessageHandler *handler;
-
-	g_return_val_if_fail (function != NULL, NULL);
-        
-        handler = g_new0 (LmMessageHandler, 1);
-        
-        if (handler == NULL) {
-                return NULL;
-        }
-        
-	handler->valid     = TRUE;	
-        handler->ref_count = 1;
-        handler->function  = function;
-        handler->user_data = user_data;
-        handler->notify    = notify;
-        
-        return handler;
-}
-
-/**
- * lm_message_handler_invalidate
- * @handler: an #LmMessageHandler
- *
- * Invalidates the handler. Useful if you need to cancel a reply
- **/
-EXPORT_C void
-lm_message_handler_invalidate (LmMessageHandler *handler)
-{
-	handler->valid = FALSE;
-}
-
-/**
- * lm_message_handler_is_valid
- * @handler: an #LmMessageHandler
- *
- * Fetches whether the handler is valid or not.
- *
- * Return value: #TRUE if @handler is valid, otherwise #FALSE
- **/
-EXPORT_C gboolean
-lm_message_handler_is_valid (LmMessageHandler *handler)
-{
-	g_return_val_if_fail (handler != NULL, FALSE);
-
-	return handler->valid;
-}
-
-/**
- * lm_message_handler_ref:
- * @handler: an #LmMessageHandler
- * 
- * Adds a reference to @handler.
- * 
- * Return value: the message handler
- **/
-EXPORT_C LmMessageHandler *
-lm_message_handler_ref (LmMessageHandler *handler)
-{
-        g_return_val_if_fail (handler != NULL, NULL);
-        
-        handler->ref_count++;
-
-        return handler;
-}
-
-/**
- * lm_message_handler_unref:
- * @handler: an #LmMessagHandler
- * 
- * Removes a reference from @handler. When no more references are present the 
- * handler is freed.
- **/
-EXPORT_C void
-lm_message_handler_unref (LmMessageHandler *handler)
-{
-        g_return_if_fail (handler != NULL);
-        
-        handler->ref_count --;
-        
-        if (handler->ref_count == 0) {
-                if (handler->notify) {
-                        (* handler->notify) (handler->user_data);
-                }
-                g_free (handler);
-        }
-}
-
--- a/loudmouth/src/lm-message-node.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,506 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-#include <string.h>
-
-#include "lm-internals.h"
-#include "lm-message-node.h"
-
-typedef struct {
-        gchar *key;
-        gchar *value;
-} KeyValuePair;
-
-static void            message_node_free            (LmMessageNode    *node);
-static LmMessageNode * message_node_last_child      (LmMessageNode    *node);
-
-static void
-message_node_free (LmMessageNode *node)
-{
-        LmMessageNode *l;
-        GSList        *list;
-        
-        g_return_if_fail (node != NULL);
-
-	for (l = node->children; l;) {
-		LmMessageNode *next = l->next;
-
-		lm_message_node_unref (l);
-		l = next;
-        }
-
-        g_free (node->name);
-        g_free (node->value);
-        
-        for (list = node->attributes; list; list = list->next) {
-                KeyValuePair *kvp = (KeyValuePair *) list->data;
-                
-                g_free (kvp->key);
-                g_free (kvp->value);
-                g_free (kvp);
-        }
-        
-        g_slist_free (node->attributes);
-        g_free (node);
-}
-
-static LmMessageNode *
-message_node_last_child (LmMessageNode *node)
-{
-        LmMessageNode *l;
-        
-        g_return_val_if_fail (node != NULL, NULL);
-
-        if (!node->children) {
-                return NULL;
-        }
-                
-        l = node->children;
-
-        while (l->next) {
-                l = l->next;
-        }
-
-        return l;
-}
-
-LmMessageNode *
-_lm_message_node_new (const gchar *name)
-{
-        LmMessageNode *node;
-
-        node = g_new0 (LmMessageNode, 1);
-        
-        node->name       = g_strdup (name);
-        node->value      = NULL;
-	node->raw_mode   = FALSE;
-        node->attributes = NULL;
-        node->next       = NULL;
-        node->prev       = NULL;
-        node->parent     = NULL;
-        node->children   = NULL;
-
-	node->ref_count  = 1;
-
-        return node;
-}
-void
-_lm_message_node_add_child_node (LmMessageNode *node, LmMessageNode *child)
-{
-        LmMessageNode *prev;
-	
-        g_return_if_fail (node != NULL);
-
-        prev = message_node_last_child (node);
-	lm_message_node_ref (child);
-
-        if (prev) {
-                prev->next    = child;
-                child->prev   = prev;
-        } else {
-                node->children = child;
-        }
-        
-        child->parent = node;
-}
-
-/**
- * lm_message_node_get_value:
- * @node: an #LmMessageNode
- * 
- * Retrieves the value of @node.
- * 
- * Return value: 
- **/
-EXPORT_C const gchar *
-lm_message_node_get_value (LmMessageNode *node)
-{
-	g_return_val_if_fail (node != NULL, NULL);
-	
-	return node->value;
-}
-
-/**
- * lm_message_node_set_value:
- * @node: an #LmMessageNode
- * @value: the new value.
- * 
- * Sets the value of @node. If a previous value is set it will be freed.
- **/
-EXPORT_C void
-lm_message_node_set_value (LmMessageNode *node, const gchar *value)
-{
-        g_return_if_fail (node != NULL);
-       
-        g_free (node->value);
-	
-        if (!value) {
-                node->value = NULL;
-                return;
-        }
-
-        node->value = g_strdup (value);
-}
-
-/**
- * lm_message_node_add_child:
- * @node: an #LmMessageNode
- * @name: the name of the new child
- * @value: value of the new child
- * 
- * Add a child node with @name and value set to @value. 
- * 
- * Return value: the newly created child
- **/
-EXPORT_C LmMessageNode *
-lm_message_node_add_child (LmMessageNode *node, 
-			   const gchar   *name, 
-			   const gchar   *value)
-{
-	LmMessageNode *child;
-	
-        g_return_val_if_fail (node != NULL, NULL);
-        g_return_val_if_fail (name != NULL, NULL);
-
-	child = _lm_message_node_new (name);
-
-	lm_message_node_set_value (child, value);
-	_lm_message_node_add_child_node (node, child);
-	lm_message_node_unref (child);
-
-	return child;
-}
-
-/**
- * lm_message_node_set_attributes:
- * @node: an #LmMessageNode
- * @name: the first attribute, should be followed by a string with the value
- * @Varargs: The rest of the name/value pairs
- * 
- * Sets a list of attributes. The arguments should be names and corresponding 
- * value and needs to be ended with %NULL.
- **/
-EXPORT_C void
-lm_message_node_set_attributes  (LmMessageNode *node,
-				 const gchar   *name,
-				 ...)
-{
-	va_list args;
-	
-        g_return_if_fail (node != NULL);
-
-	for (va_start (args, name); 
-	     name; 
-	     name = (const gchar *) va_arg (args, gpointer)) {
-		const gchar *value;
-
-		value = (const gchar *) va_arg (args, gpointer);
-
-		lm_message_node_set_attribute (node, name, value);
-		
-	}
-
-	va_end (args);
-}
-
-/**
- * lm_message_node_set_attribute:
- * @node: an #LmMessageNode
- * @name: name of attribute
- * @value: value of attribute.
- * 
- * Sets the attribute @name to @value.
- **/
-EXPORT_C void
-lm_message_node_set_attribute (LmMessageNode *node,
-			       const gchar   *name,
-			       const gchar   *value)
-{
-	gboolean  found = FALSE; 
-	GSList   *l;
-
-        g_return_if_fail (node != NULL);
-        g_return_if_fail (name != NULL);
-        g_return_if_fail (value != NULL);
-
-	for (l = node->attributes; l; l = l->next) {
-		KeyValuePair *kvp = (KeyValuePair *) l->data;
-                
-		if (strcmp (kvp->key, name) == 0) {
-			g_free (kvp->value);
-			kvp->value = g_strdup (value);
-			found = TRUE;
-			break;
-		}
-	}
-	
-	if (!found) {
-		KeyValuePair *kvp;
-	
-		kvp = g_new0 (KeyValuePair, 1);                
-		kvp->key = g_strdup (name);
-		kvp->value = g_strdup (value);
-		
-		node->attributes = g_slist_prepend (node->attributes, kvp);
-	}
-}
-
-/**
- * lm_message_node_get_attribute:
- * @node: an #LmMessageNode
- * @name: the attribute name
- * 
- * Fetches the attribute @name from @node.
- * 
- * Return value: the attribute value or %NULL if not set
- **/
-EXPORT_C const gchar *
-lm_message_node_get_attribute (LmMessageNode *node, const gchar *name)
-{
-        GSList      *l;
-        const gchar *ret_val = NULL;
-
-        //g_return_val_if_fail (node != NULL, NULL);
-        //g_return_val_if_fail (name != NULL, NULL);
-
-		if(!node || !name)
-			return NULL;
-		
-        for (l = node->attributes; l; l = l->next) {
-                KeyValuePair *kvp = (KeyValuePair *) l->data;
-                
-                if (strcmp (kvp->key, name) == 0) {
-                        ret_val = kvp->value;
-                }
-        }
-        
-        return ret_val;
-}
-
-/**
- * lm_message_node_get_child:
- * @node: an #LmMessageNode
- * @child_name: the childs name
- * 
- * Fetches the child @child_name from @node. If child is not found as an 
- * immediate child of @node %NULL is returned.
- * 
- * Return value: the child node or %NULL if not found
- **/
-EXPORT_C LmMessageNode *
-lm_message_node_get_child (LmMessageNode *node, const gchar *child_name)
-{
-	LmMessageNode *l;
-
-    //    g_return_val_if_fail (node != NULL, NULL);
-   //     g_return_val_if_fail (child_name != NULL, NULL);
-	
-	if(!node || !child_name)
-		return NULL;
-	for (l = node->children; l; l = l->next) {
-		if (strcmp (l->name, child_name) == 0) {
-			return l;
-		}
-	}
-
-	return NULL;
-}
-
-/**
- * lm_message_node_find_child:
- * @node: A #LmMessageNode
- * @child_name: The name of the child to find
- * 
- * Locates a child among all children of @node. The entire tree will be search 
- * until a child with name @child_name is located. 
- * 
- * Return value: the located child or %NULL if not found
- **/
-EXPORT_C LmMessageNode * 
-lm_message_node_find_child (LmMessageNode *node,
-			    const gchar   *child_name)
-{
-        LmMessageNode *l;
-        LmMessageNode *ret_val = NULL;
-
-        //g_return_val_if_fail (node != NULL, NULL);
-        //g_return_val_if_fail (child_name != NULL, NULL);
-		if(!node || !child_name)
-			return NULL;
-        for (l = node->children; l; l = l->next) {
-                if (strcmp (l->name, child_name) == 0) {
-                        return l;
-                }
-                if (l->children) {
-                        ret_val = lm_message_node_find_child (l, child_name);
-                        if (ret_val) {
-                                return ret_val;
-                        }
-                }
-        }
-
-        return NULL;
-}
-
-/**
- * lm_message_node_get_raw_mode:
- * @node: an #LmMessageNode
- * 
- * Checks if the nodes value should be sent as raw mode. 
- *
- * Return value: %TRUE if nodes value should be sent as is and %FALSE if the value will be escaped before sending.
- **/
-EXPORT_C gboolean
-lm_message_node_get_raw_mode (LmMessageNode *node)
-{
-	//g_return_val_if_fail (node != NULL, FALSE);
-	
-	return node? node->raw_mode : 0 ;
-	//return node->raw_mode;
-}
-
-/** 
- * lm_message_node_set_raw_mode:
- * @node: an #LmMessageNode
- * @raw_mode: boolean specifying if node value should be escaped or not.
- *
- * Set @raw_mode to %TRUE if you don't want to escape the value. You need to make sure the value is valid XML yourself.
- **/
-EXPORT_C void
-lm_message_node_set_raw_mode (LmMessageNode *node, gboolean raw_mode)
-{
-	//g_return_if_fail (node != NULL);
-	if(!node)
-		return;
-	
-	node->raw_mode = raw_mode;	
-}
-
-/**
- * lm_message_node_ref:
- * @node: an #LmMessageNode
- * 
- * Adds a reference to @node.
- * 
- * Return value: the node
- **/
-EXPORT_C LmMessageNode *
-lm_message_node_ref (LmMessageNode *node)
-{
-	//g_return_val_if_fail (node != NULL, NULL);
-	if(!node)
-		return NULL;
-	node->ref_count++;
-       
-	return node;
-}
-
-/**
- * lm_message_node_unref:
- * @node: an #LmMessageNode
- * 
- * Removes a reference from @node. When no more references are present the
- * node is freed. When freed lm_message_node_unref() will be called on all
- * children. If caller needs to keep references to the children a call to 
- * lm_message_node_ref() needs to be done before the call to 
- *lm_message_unref().
- **/
-EXPORT_C void
-lm_message_node_unref (LmMessageNode *node)
-{
-	//g_return_if_fail (node != NULL);
-	if(!node)
-		return;
-	node->ref_count--;
-	
-	if (node->ref_count == 0) {
-		message_node_free (node);
-	}
-}
-
-/**
- * lm_message_node_to_string:
- * @node: an #LmMessageNode
- * 
- * Returns an XML string representing the node. This is what is sent over the
- * wire. This is used internally Loudmouth and is external for debugging 
- * purposes.
- * 
- * Return value: an XML string representation of @node
- **/
-EXPORT_C gchar *
-lm_message_node_to_string (LmMessageNode *node)
-{
-	GString       *ret;
-	GSList        *l;
-	LmMessageNode *child;
-
-	g_return_val_if_fail (node != NULL, NULL);
-	
-	if (node->name == NULL) {
-		return g_strdup ("");
-	}
-	
-	ret = g_string_new ("<");
-	g_string_append (ret, node->name);
-	
-	for (l = node->attributes; l; l = l->next) {
-		KeyValuePair *kvp = (KeyValuePair *) l->data;
-
-		if (node->raw_mode == FALSE) {
-			gchar *escaped;
-
-			escaped = g_markup_escape_text (kvp->value, -1);
-			g_string_append_printf (ret, " %s=\"%s\"", 
-						kvp->key, escaped);
-			g_free (escaped);
-		} else {
-			g_string_append_printf (ret, " %s=\"%s\"", 
-						kvp->key, kvp->value);
-		}
-		
-	}
-	
-	g_string_append_c (ret, '>');
-	
-	if (node->value) {
-		gchar *tmp;
-
-		if (node->raw_mode == FALSE) {
-			tmp = g_markup_escape_text (node->value, -1);
-			g_string_append (ret,  tmp);
-			g_free (tmp);
-		} else {
-			g_string_append (ret, node->value);
-		}
-	} 
-
-	for (child = node->children; child; child = child->next) {
-		gchar *child_str = lm_message_node_to_string (child);
-		g_string_append_c (ret, ' ');
-		g_string_append (ret, child_str);
-		g_free (child_str);
-	}
-
-	g_string_append_printf (ret, "</%s>\n", node->name);
-	
-	return g_string_free (ret, FALSE);
-}
--- a/loudmouth/src/lm-message-queue.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2006 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-
-#include "lm-message-queue.h"
-#include "lm-debug.h"
-
-struct _LmMessageQueue {
-	GQueue                  *messages;
-
-	GMainContext            *context;
-	GSource                 *source;
-
-	LmMessageQueueCallback  callback;
-	gpointer                user_data;
-
-	gint                    ref_count;
-};
-
-typedef struct {
-	GSource         source;
-	LmMessageQueue *queue;
-} MessageQueueSource;
-
-static void        message_queue_free            (LmMessageQueue *queue);
-static gboolean    message_queue_prepare_func    (GSource         *source,
-						  gint            *timeout);
-static gboolean    message_queue_check_func      (GSource         *source);
-static gboolean    message_queue_dispatch_func   (GSource         *source,
-						  GSourceFunc      callback,
-						  gpointer         user_data);
-
-static GSourceFuncs source_funcs = {
-	message_queue_prepare_func,
-	message_queue_check_func,
-	message_queue_dispatch_func,
-	NULL
-};
-
-static void
-foreach_free_message (LmMessage *m, gpointer user_data)
-{
-	lm_message_unref (m);
-	UNUSED_FORMAL_PARAM(user_data);
-}
-
-static void
-message_queue_free (LmMessageQueue *queue)
-{
-	lm_message_queue_detach (queue);
-	
-	g_queue_foreach (queue->messages, (GFunc) foreach_free_message, NULL);
-	g_queue_free (queue->messages);
-
-	g_free (queue);
-}
-
-//Prepare has to return true for check method to be called.
-static gboolean
-message_queue_prepare_func (GSource *source, gint *timeout)
-{
-	LmMessageQueue *queue;
-
-	queue = ((MessageQueueSource *)source)->queue;
-	UNUSED_FORMAL_PARAM(timeout);
-	return !g_queue_is_empty (queue->messages);
-}
-
-//check has to return true for Dispatch method to be called.
-static gboolean
-message_queue_check_func (GSource *source)
-{
-//	return FALSE;
-UNUSED_FORMAL_PARAM(source);
-return TRUE;
-}
-
-static gboolean
-message_queue_dispatch_func (GSource     *source,
-			     GSourceFunc  callback,
-			     gpointer     user_data)
-{
-	LmMessageQueue *queue;
-
-	queue = ((MessageQueueSource *)source)->queue;
-
-	if (queue->callback) {
-		(queue->callback) (queue, queue->user_data);
-	}
-	UNUSED_FORMAL_PARAM(source);
-	UNUSED_FORMAL_PARAM(callback);
-	return TRUE;
-}
-
-LmMessageQueue *
-lm_message_queue_new (LmMessageQueueCallback  callback,
-		      gpointer                user_data)
-{
-	LmMessageQueue *queue;
-
-	queue = g_new0 (LmMessageQueue, 1);
-
-	queue->messages = g_queue_new ();
-	queue->context = NULL;
-	queue->source = NULL;
-	queue->ref_count = 1;
-
-	queue->callback = callback;
-	queue->user_data = user_data;
-
-	return queue;
-}
-
-void
-lm_message_queue_attach (LmMessageQueue *queue, GMainContext *context)
-{
-	GSource *source;
-
-	if (queue->source) {
-		if (queue->context == context) {
-			/* Already attached */
-			return;
-		}
-		lm_message_queue_detach (queue);
-	}
-
-	if (context)  {
-		queue->context = g_main_context_ref (context);
-	}
-	
-	source = g_source_new (&source_funcs, sizeof (MessageQueueSource));
-	((MessageQueueSource *)source)->queue = queue;
-	queue->source = source;
-
-	g_source_attach (source, queue->context);
-}
-
-void
-lm_message_queue_detach (LmMessageQueue *queue)
-{
-	if (queue->source) {
-		g_source_destroy (queue->source);
-		g_source_unref (queue->source);
-	}
-
-	if (queue->context) {
-		g_main_context_unref (queue->context);
-	}
-
-	queue->source = NULL;
-	queue->context = NULL;
-}
-
-void
-lm_message_queue_push_tail (LmMessageQueue *queue, LmMessage *m)
-{
-	g_return_if_fail (queue != NULL);
-	g_return_if_fail (m != NULL);
-
-	g_queue_push_tail (queue->messages, m);
-}
-
-LmMessage *
-lm_message_queue_peek_nth (LmMessageQueue *queue, guint n)
-{
-	g_return_val_if_fail (queue != NULL, NULL);
-
-	return (LmMessage *) g_queue_peek_nth (queue->messages, n);
-}
-
-LmMessage *
-lm_message_queue_pop_nth (LmMessageQueue *queue, guint n)
-{
-	g_return_val_if_fail (queue != NULL, NULL);
-
-	return (LmMessage *) g_queue_pop_nth (queue->messages, n);
-}
-
-guint
-lm_message_queue_get_length (LmMessageQueue *queue)
-{
-	g_return_val_if_fail (queue != NULL, 0);
-
-	return g_queue_get_length (queue->messages);
-}
-
-gboolean 
-lm_message_queue_is_empty (LmMessageQueue *queue)
-{
-	g_return_val_if_fail (queue != NULL, TRUE);
-
-	return g_queue_is_empty (queue->messages);
-}
-
-LmMessageQueue *
-lm_message_queue_ref (LmMessageQueue *queue)
-{
-	g_return_val_if_fail (queue != NULL, NULL);
-
-	queue->ref_count++;
-
-	return queue;
-}
-
-void
-lm_message_queue_unref (LmMessageQueue *queue)
-{
-	g_return_if_fail (queue != NULL);
-
-	queue->ref_count--;
-
-	if (queue->ref_count <= 0) {
-		message_queue_free (queue);
-	}
-}
-
--- a/loudmouth/src/lm-message.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,373 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-#include <string.h>
-
-#include "lm-internals.h"
-#include "lm-message.h"
-
-#define PRIV(o) ((LmMessage *)o)->priv
-
-
-#ifdef EMULATOR
-#include "libloudmouth_wsd_solution.h"
-
-GET_STATIC_ARRAY_FROM_TLS(type_names, lm_message, TypeNames)
-  #define type_names (GET_WSD_VAR_NAME(type_names, lm_message, s)())
-  
-GET_STATIC_ARRAY_FROM_TLS(sub_type_names,lm_message,SubTypeNames)
-	#define sub_type_names (GET_WSD_VAR_NAME(sub_type_names,lm_message,s)())	
-
-
-#else
-static struct TypeNames 
-{
-        LmMessageType  type;
-        const gchar   *name;
-} type_names[] = {
-	{ LM_MESSAGE_TYPE_MESSAGE,         "message"         },
-	{ LM_MESSAGE_TYPE_PRESENCE,        "presence"        },
-	{ LM_MESSAGE_TYPE_IQ,              "iq"              },
-	{ LM_MESSAGE_TYPE_STREAM,          "stream:stream"   },
-	{ LM_MESSAGE_TYPE_STREAM_FEATURES, "stream:features" },
-	{ LM_MESSAGE_TYPE_STREAM_ERROR,    "stream:error"    },
-	{ LM_MESSAGE_TYPE_AUTH,            "auth"            },
-	{ LM_MESSAGE_TYPE_CHALLENGE,       "challenge"       },
-	{ LM_MESSAGE_TYPE_RESPONSE,        "response"        },
-	{ LM_MESSAGE_TYPE_SUCCESS,         "success"         },
-	{ LM_MESSAGE_TYPE_FAILURE,         "failure"         },
-	{ LM_MESSAGE_TYPE_PROCEED,         "proceed"         },
-	{ LM_MESSAGE_TYPE_STARTTLS,        "starttls"        },
-	{ LM_MESSAGE_TYPE_UNKNOWN,         NULL              }
-};
-
-static struct SubTypeNames 
-{
-        LmMessageSubType  type;
-        const gchar      *name;
-} sub_type_names[] = {
-	{ LM_MESSAGE_SUB_TYPE_NORMAL,          "normal"        },
-        { LM_MESSAGE_SUB_TYPE_CHAT,            "chat"          },
-	{ LM_MESSAGE_SUB_TYPE_GROUPCHAT,       "groupchat"     },
-	{ LM_MESSAGE_SUB_TYPE_HEADLINE,        "headline"      },
-	{ LM_MESSAGE_SUB_TYPE_UNAVAILABLE,     "unavailable"   },
-        { LM_MESSAGE_SUB_TYPE_PROBE,           "probe"         },
-	{ LM_MESSAGE_SUB_TYPE_SUBSCRIBE,       "subscribe"     },
-	{ LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE,     "unsubscribe"   },
-	{ LM_MESSAGE_SUB_TYPE_SUBSCRIBED,      "subscribed"    },
-	{ LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED,    "unsubscribed"  },
-	{ LM_MESSAGE_SUB_TYPE_GET,             "get"           },
-	{ LM_MESSAGE_SUB_TYPE_SET,             "set"           },
-	{ LM_MESSAGE_SUB_TYPE_RESULT,          "result"        }, 
-	{ LM_MESSAGE_SUB_TYPE_ERROR,           "error"         }
-};
-#endif
-
-struct LmMessagePriv {
-	LmMessageType    type;
-	LmMessageSubType sub_type;
-	gint             ref_count;
-};
-
-static LmMessageType
-message_type_from_string (const gchar *type_str)
-{
-        gint i;
-
-        if (!type_str) {
-                return LM_MESSAGE_TYPE_UNKNOWN;
-        }
-
-        for (i = LM_MESSAGE_TYPE_MESSAGE;
-	     i < LM_MESSAGE_TYPE_UNKNOWN;
-	     ++i) {
-                if (strcmp (type_str, type_names[i].name) == 0) {
-                        return type_names[i].type;
-                }
-        }
-
-        return LM_MESSAGE_TYPE_UNKNOWN;
-}
-
-
-const gchar *
-_lm_message_type_to_string (LmMessageType type)
-{
-        if (type < LM_MESSAGE_TYPE_MESSAGE ||
-            type > LM_MESSAGE_TYPE_STARTTLS) {
-                type = LM_MESSAGE_TYPE_UNKNOWN;
-        }
-
-        return type_names[type].name;
-}
-
-static LmMessageSubType
-message_sub_type_from_string (const gchar *type_str)
-{
-        gint i;
-
-        if (!type_str) {
-                return LM_MESSAGE_SUB_TYPE_NOT_SET;
-        }
-
-        for (i = LM_MESSAGE_SUB_TYPE_NORMAL;
-	     i <= LM_MESSAGE_SUB_TYPE_ERROR;
-	     ++i) {
-                if (g_ascii_strcasecmp (type_str, 
-					sub_type_names[i].name) == 0) {
-                        return i;
-                }
-        }
-
-        return LM_MESSAGE_SUB_TYPE_NOT_SET;
-}
-
-const gchar *
-_lm_message_sub_type_to_string (LmMessageSubType type)
-{
-        if (type < LM_MESSAGE_SUB_TYPE_NORMAL ||
-            type > LM_MESSAGE_SUB_TYPE_ERROR) {
-		return NULL;
-        }
-
-        return sub_type_names[type].name;
-}
-
-static LmMessageSubType
-message_sub_type_when_unset (LmMessageType type) {
-	LmMessageSubType sub_type = LM_MESSAGE_SUB_TYPE_NORMAL;
-
-	switch (type) {
-	case LM_MESSAGE_TYPE_MESSAGE:
-		/* A message without type should be handled like a message with
-		 * type=normal, but we won't set it to that since then the user
-		 * will not know if it's set or not.
-		 */
-		sub_type = LM_MESSAGE_SUB_TYPE_NOT_SET;
-		break;
-	case LM_MESSAGE_TYPE_PRESENCE:
-		sub_type = LM_MESSAGE_SUB_TYPE_AVAILABLE;
-		break;
-	case LM_MESSAGE_TYPE_IQ:
-		sub_type = LM_MESSAGE_SUB_TYPE_GET;
-		break;
-	default:
-		break;
-	}
-
-	return sub_type;
-}
-
-LmMessage *
-_lm_message_new_from_node (LmMessageNode *node)
-{
-	LmMessage        *m;
-	LmMessageType     type;
-	LmMessageSubType  sub_type;
-	const gchar      *sub_type_str;
-	
-	type = message_type_from_string (node->name);
-
-	if (type == LM_MESSAGE_TYPE_UNKNOWN) {
-		return NULL;
-	}
-
-	sub_type_str = lm_message_node_get_attribute (node, "type");
-	if (sub_type_str) {
-		sub_type = message_sub_type_from_string (sub_type_str);
-	} else {
-		sub_type = message_sub_type_when_unset (type);
-	}
-
-	m = g_new0 (LmMessage, 1);
-	m->priv = g_new0 (LmMessagePriv, 1);
-	
-	PRIV(m)->ref_count = 1;
-	PRIV(m)->type = type;
-	PRIV(m)->sub_type = sub_type;
-	
-	m->node = lm_message_node_ref (node);
-	
-	return m;
-}
-
-/**
- * lm_message_new:
- * @to: receipient jid
- * @type: message type
- * 
- * Creates a new #LmMessage which can be sent with lm_connection_send() or 
- * lm_connection_send_with_reply(). If @to is %NULL the message is sent to the
- * server. The returned message should be unreferenced with lm_message_unref() 
- * when caller is finished with it.
- * 
- * Return value: a newly created #LmMessage
- **/
-EXPORT_C LmMessage *
-lm_message_new (const gchar *to, LmMessageType type)
-{
-	LmMessage *m;
-	gchar     *id;
-
-	m       = g_new0 (LmMessage, 1);
-	m->priv = g_new0 (LmMessagePriv, 1);
-
-	PRIV(m)->ref_count = 1;
-	PRIV(m)->type      = type;
-	PRIV(m)->sub_type  = message_sub_type_when_unset (type);
-	
-	m->node = _lm_message_node_new (_lm_message_type_to_string (type));
-
-	id = _lm_utils_generate_id ();
-	lm_message_node_set_attribute (m->node, "id", id);
-	g_free (id);
-	
-	if (to) {
-		lm_message_node_set_attribute (m->node, "to", to);
-	}
-
-	if (type == LM_MESSAGE_TYPE_IQ) {
-		lm_message_node_set_attribute (m->node, "type", "get");
-	}
-	
-	return m;
-}
-
-/**
- * lm_message_new_with_sub_type:
- * @to: receipient jid
- * @type: message type
- * @sub_type: message sub type
- * 
- * Creates a new #LmMessage with sub type set. See lm_message_new() for more 
- * information.
- * 
- * Return value: a newly created #LmMessage
- **/
-EXPORT_C LmMessage *
-lm_message_new_with_sub_type (const gchar      *to,
-			      LmMessageType     type, 
-			      LmMessageSubType  sub_type)
-{
-	LmMessage   *m;
-	const gchar *type_str;
-
-	m = lm_message_new (to, type);
-
-	type_str = _lm_message_sub_type_to_string (sub_type);
-
-	if (type_str) {
-		lm_message_node_set_attributes (m->node,
-						"type", type_str, NULL);
-		PRIV(m)->sub_type = sub_type;
-	}
-
-	return m;
-}
-
-/**
- * lm_message_get_type:
- * @message: an #LmMessage
- * 
- * Fetches the type of @message.
- * 
- * Return value: the message type
- **/
-EXPORT_C LmMessageType
-lm_message_get_type (LmMessage *message)
-{
-	g_return_val_if_fail (message != NULL, LM_MESSAGE_TYPE_UNKNOWN);
-	
-	return PRIV(message)->type;
-}
-
-/**
- * lm_message_get_sub_type:
- * @message: 
- * 
- * Fetches the sub type of @message.
- * 
- * Return value: the message sub type
- **/
-EXPORT_C LmMessageSubType
-lm_message_get_sub_type (LmMessage *message)
-{
-	g_return_val_if_fail (message != NULL, LM_MESSAGE_TYPE_UNKNOWN);
-	
-	return PRIV(message)->sub_type;
-}
-
-/**
- * lm_message_get_node:
- * @message: an #LmMessage
- * 
- * Retrieves the root node from @message.
- * 
- * Return value: an #LmMessageNode
- **/
-EXPORT_C LmMessageNode *
-lm_message_get_node (LmMessage *message)
-{
-	g_return_val_if_fail (message != NULL, NULL);
-	
-	return message->node;
-}
-
-/**
- * lm_message_ref:
- * @message: an #LmMessage
- * 
- * Adds a reference to @message.
- * 
- * Return value: the message
- **/
-EXPORT_C LmMessage *
-lm_message_ref (LmMessage *message)
-{
-	g_return_val_if_fail (message != NULL, NULL);
-	
-	PRIV(message)->ref_count++;
-	
-	return message;
-}
-
-/**
- * lm_message_unref:
- * @message: an #LmMessage
- * 
- * Removes a reference from @message. When no more references are present the 
- * message is freed.
- **/
-EXPORT_C void
-lm_message_unref (LmMessage *message)
-{
-	//g_return_if_fail (message != NULL);
-	if(message==NULL)
-		return;
-	
-	PRIV(message)->ref_count--;
-	
-	if (PRIV(message)->ref_count == 0) {
-		lm_message_node_unref (message->node);
-		g_free (message->priv);
-		g_free (message);
-	}
-}
--- a/loudmouth/src/lm-misc.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2006 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-
-#include <string.h>
-
-#include "lm-misc.h"
-
-#ifdef EMULATOR
-#include "libloudmouth_wsd_solution.h"
-GET_STATIC_ARRAY_FROM_TLS(buf, lm_misc, gchar)
-  #define buf (GET_WSD_VAR_NAME(buf, lm_misc, s)())
-  
-
-#endif
-
-static void
-misc_setup_source (GMainContext *context,
-		   GSource      *source,
-		   GSourceFunc   function,
-		   gpointer      data)
-{
-	g_source_set_callback (source, (GSourceFunc)function, data, NULL);
-	g_source_attach (source, context);
-	g_source_unref (source);
-}
-
-GSource *
-lm_misc_add_io_watch (GMainContext *context,
-		      GIOChannel   *channel,
-		      GIOCondition  condition,
-		      GIOFunc       function,
-		      gpointer      data)
-{
-	GSource *source;
-                                                                                
-	g_return_val_if_fail (channel != NULL, 0);
-                                                                                
-	source = g_io_create_watch (channel, condition);
-	misc_setup_source (context, source, (GSourceFunc) function, data);
-
-	return source;
-}
-
-GSource *
-lm_misc_add_idle (GMainContext *context,
-		  GSourceFunc   function,
-		  gpointer      data)
-{
-	GSource *source;
-                                                                                
-	g_return_val_if_fail (function != NULL, 0);
-                                                                                
-	source = g_idle_source_new ();
-	misc_setup_source (context, source, function, data);
-  
-	return source;
-}
-
-GSource *
-lm_misc_add_timeout (GMainContext *context,
-		     guint         interval,
-		     GSourceFunc   function,
-		     gpointer      data)
-{
-	GSource *source;
-                                                                                
-	g_return_val_if_fail (function != NULL, 0);
-                                                                                
-	source = g_timeout_source_new (interval);
-	misc_setup_source (context, source, function, data);
-  
-	return source;
-}
-
-const char *
-lm_misc_io_condition_to_str  (GIOCondition condition)
-{
-#ifndef EMULATOR
-	static char buf[256];
-#endif
-
-	buf[0] = '\0';
-
-	if(condition & G_IO_ERR)
-		strcat(buf, "G_IO_ERR ");
-	if(condition & G_IO_HUP)
-		strcat(buf, "G_IO_HUP ");
-	if(condition & G_IO_NVAL)
-		strcat(buf, "G_IO_NVAL ");
-	if(condition & G_IO_IN)
-		strcat(buf, "G_IO_IN ");
-	if(condition & G_IO_OUT)
-		strcat(buf, "G_IO_OUT ");
-
-	return buf;
-}
-
--- a/loudmouth/src/lm-parser.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-#include <string.h>
-
-#include <glib.h>
-
-#include "lm-debug.h"
-#include "lm-internals.h"
-#include "lm-message-node.h"
-#include "lm-parser.h"
-
-#define SHORT_END_TAG "/>"
-#define XML_MAX_DEPTH 5
-
-#define LM_PARSER(o) ((LmParser *) o)
-
-struct LmParser {
-	LmParserMessageFunction  function;
-	gpointer                 user_data;
-	GDestroyNotify           notify;
-	
-	LmMessageNode           *cur_root;
-	LmMessageNode           *cur_node;
-		
-	GMarkupParser           *m_parser;
-	GMarkupParseContext     *context;
-};
-
-
-/* Used while parsing */
-static void    parser_start_node_cb (GMarkupParseContext  *context,
-				     const gchar          *node_name,
-				     const gchar         **attribute_names,
-				     const gchar         **attribute_values,
-				     gpointer              user_data,
-				     GError              **error);
-static void    parser_end_node_cb   (GMarkupParseContext  *context,
-				     const gchar          *node_name,
-				     gpointer              user_data,
-				     GError              **error);
-static void    parser_text_cb       (GMarkupParseContext  *context,
-				     const gchar          *text,
-				     gsize                 text_len,  
-				     gpointer              user_data,
-				     GError              **error);
-static void    parser_error_cb      (GMarkupParseContext  *context,
-				     GError               *error,
-				     gpointer              user_data);
-
-static void
-parser_start_node_cb (GMarkupParseContext  *context,
-		      const gchar          *node_name,
-		      const gchar         **attribute_names,
-		      const gchar         **attribute_values,
-		      gpointer              user_data,
-		      GError              **error)
-{	
-	LmParser     *parser;
-	gint          i;
-	
-	parser = LM_PARSER (user_data);;
-	
-
-/* 	parser->cur_depth++; */
-
-	if (!parser->cur_root) {
-		/* New toplevel element */
-		parser->cur_root = _lm_message_node_new (node_name);
-		parser->cur_node = parser->cur_root;
-	} else {
-		LmMessageNode *parent_node;
-		
-		parent_node = parser->cur_node;
-		
-		parser->cur_node = _lm_message_node_new (node_name);
-		_lm_message_node_add_child_node (parent_node,
-						 parser->cur_node);
-	}
-
-	for (i = 0; attribute_names[i]; ++i) {
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_PARSER, 
-		       "ATTRIBUTE: %s = %s\n", 
-		       attribute_names[i],
-		       attribute_values[i]);*/
-		
-		lm_verbose ("[parser_start_node_cb]: ATTRIBUTE: %s = %s\n", 
-		       attribute_names[i],
-		       attribute_values[i]);
-		
-		lm_message_node_set_attributes (parser->cur_node,
-						attribute_names[i],
-						attribute_values[i], 
-						NULL);
-	}
-	
-	if (strcmp ("stream:stream", node_name) == 0) {
-		parser_end_node_cb (context,
-				    "stream:stream",
-				    user_data, 
-				    error);
-	}
-}
-
-static void
-parser_end_node_cb (GMarkupParseContext  *context,
-		    const gchar          *node_name,
-		    gpointer              user_data,
-		    GError              **error)
-{
-	LmParser     *parser;
-	
-	parser = LM_PARSER (user_data);
-	
-	/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_PARSER,
-	       "Trying to close node: %s\n", node_name);*/
-    lm_verbose ("[parser_end_node_cb]:Trying to close node: %s\n", node_name);
-    if (!parser->cur_node) {
-                /* FIXME: LM-1 should look at this */
-                return;
-        }
-        
-	if (strcmp (parser->cur_node->name, node_name) != 0) {
-		if (strcmp (node_name, "stream:stream")) {
-			g_print ("Got an stream:stream end\n");
-		}
-		g_warning ("Trying to close node that isn't open: %s",
-			   node_name);
-		return;
-	}
-
-	if (parser->cur_node == parser->cur_root) {
-		LmMessage *m;
-		
-		m = _lm_message_new_from_node (parser->cur_root);
-
-		if (!m) {
-			g_warning ("Couldn't create message: %s\n",
-				   parser->cur_root->name);
-			return;
-		}
-
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_PARSER,
-		       "Have a new message\n");*/
-		lm_verbose("[parser_end_node_cb]: Have a new message\n");
-		if (parser->function) {
-			(* parser->function) (parser, m, parser->user_data);
-		}
-
-		lm_message_unref (m);
-		lm_message_node_unref (parser->cur_root);
-		
-			
-		parser->cur_node = parser->cur_root = NULL;
-	} else {
-		LmMessageNode *tmp_node;
-		tmp_node = parser->cur_node;
-		parser->cur_node = parser->cur_node->parent;
-
-		lm_message_node_unref (tmp_node);
-	}
-	UNUSED_FORMAL_PARAM(context);
-	UNUSED_FORMAL_PARAM(error);
-}
-
-static void
-parser_text_cb (GMarkupParseContext   *context,
-		const gchar           *text,
-		gsize                  text_len,  
-		gpointer               user_data,
-		GError               **error)
-{
-	LmParser *parser;
-	
-	g_return_if_fail (user_data != NULL);
-	
-	parser = LM_PARSER (user_data);
-	
-	if (parser->cur_node && strcmp (text, "") != 0) {
-		lm_message_node_set_value (parser->cur_node, text);
-	} 
-	UNUSED_FORMAL_PARAM(context);
-	UNUSED_FORMAL_PARAM(error);
-	UNUSED_FORMAL_PARAM(text_len);
-}
-
-static void
-parser_error_cb (GMarkupParseContext *context,
-		 GError              *error,
-		 gpointer             user_data)
-{
-	g_return_if_fail (user_data != NULL);
-	g_return_if_fail (error != NULL);
-	
-	g_warning ("Parsing failed: %s\n", error->message);
-	UNUSED_FORMAL_PARAM(context);
-}
-
-EXPORT_C LmParser *
-lm_parser_new (LmParserMessageFunction function, 
-	       gpointer                user_data, 
-	       GDestroyNotify          notify)
-{
-	LmParser *parser;
-	
-	parser = g_new0 (LmParser, 1);
-	if (!parser) {
-		return NULL;
-	}
-	
-	parser->m_parser = g_new0 (GMarkupParser, 1);
-	if (!parser->m_parser) {
-		g_free (parser);
-		return NULL;
-	}
-
-	parser->function  = function;
-	parser->user_data = user_data;
-	parser->notify    = notify;
-	
-	parser->m_parser->start_element = parser_start_node_cb;
-	parser->m_parser->end_element   = parser_end_node_cb;
-	parser->m_parser->text          = parser_text_cb;
-	parser->m_parser->error         = parser_error_cb;
-
-	parser->context = g_markup_parse_context_new (parser->m_parser, 0,
-						      parser, NULL);
-
-	parser->cur_root = NULL;
-	parser->cur_node = NULL;
-
-	return parser;
-}
-
-EXPORT_C void
-lm_parser_parse (LmParser *parser, const gchar *string)
-{
-	g_return_if_fail (parser != NULL);
-	
-        if (!parser->context) {
-                parser->context = g_markup_parse_context_new (parser->m_parser, 0,
-                                                              parser, NULL);
-        }
-        
-        if (g_markup_parse_context_parse (parser->context, string, 
-                                          (gssize)strlen (string), NULL)) {
-        } else {
-		g_markup_parse_context_free (parser->context);
-		parser->context = NULL;
-        }
-}
-
-EXPORT_C void
-lm_parser_free (LmParser *parser)
-{
-	if (parser->notify) {
-		(* parser->notify) (parser->user_data);
-	}
-
-	if (parser->context) {
-		g_markup_parse_context_free (parser->context);
-	}
-	g_free (parser->m_parser);
-	g_free (parser);
-}
-
--- a/loudmouth/src/lm-proxy.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,490 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2004 Imendio AB
- * Copyright (C) 2004 Josh Beam <josh@3ddrome.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-
-#include <glib.h>
-#include <string.h>
-
-#ifndef G_OS_WIN32
-
-#include <unistd.h>
-#include <sys/socket.h>
-
-#else  /* G_OS_WIN32 */
-
-#include <winsock2.h>
-
-#endif /* G_OS_WIN32 */
-
-#include "lm-internals.h"
-#include "lm-proxy.h"
-#include "lm-debug.h"
-#include "lm-utils.h"
-
-struct _LmProxy {
-	LmProxyType  type;
-	gchar       *server;
-	guint        port;
-	gchar       *username;
-	gchar       *password;
-	guint        io_watch;
-
-        gint         ref_count;
-};
-
-static void          proxy_free              (LmProxy       *proxy);
-static gboolean      proxy_http_negotiate    (LmProxy       *proxy,
-					      gint           fd, 
-					      const gchar   *server,
-					      guint          port);
-static gboolean      proxy_negotiate         (LmProxy       *proxy,
-					      gint           fd,
-					      const gchar   *server,
-					      guint          port);
-static gboolean      proxy_http_read_cb      (GIOChannel    *source,
-					      GIOCondition   condition,
-					      gpointer       data);
-static gboolean      proxy_read_cb           (GIOChannel    *source,
-                                              GIOCondition   condition,
-                                              gpointer       data);
-
-static void
-proxy_free (LmProxy *proxy)
-{
-	g_free (proxy->server);
-	g_free (proxy->username);
-	g_free (proxy->password);
-
-	g_free (proxy);
-}
-
-static gboolean
-proxy_http_negotiate (LmProxy *proxy, gint fd, const gchar *server, guint port)
-{
-	gchar *str;
-
-	if (proxy->username && proxy->password) {
-		gchar *tmp1;
-		gchar *tmp2;
-
-		tmp1 = g_strdup_printf ("%s:%s",
-					proxy->username, 
-					proxy->password);
-		tmp2 = _lm_utils_base64_encode (tmp1);
-		g_free (tmp1);
-
-		str = g_strdup_printf ("CONNECT %s:%u HTTP/1.1\r\nHost: %s:%u\r\nProxy-Authorization: Basic %s\r\n\r\n",
-				       server, port,
-				       server, port,
-				       tmp2);
-		g_free (tmp2);
-	} else {
-		str = g_strdup_printf ("CONNECT %s:%u HTTP/1.1\r\nHost: %s:%u\r\n\r\n",
-				       server, port, 
-				       server, port);
-	}
-
-	send (fd, str, strlen (str), 0);
-	g_free (str);
-	return TRUE;
-}
-
-/* returns TRUE when connected through proxy */
-static gboolean
-proxy_http_read_cb (GIOChannel *source, GIOCondition condition, gpointer data)
-{
-	gchar          buf[512];
-	gsize          bytes_read;
-	GError        *error = NULL;
-
-	g_io_channel_read_chars (source, buf, 512, &bytes_read, &error);
-
-	if (bytes_read < 16) {
-		return FALSE;
-	}
-
-	if (strncmp (buf, "HTTP/1.1 200", 12) != 0 &&
-	    strncmp (buf, "HTTP/1.0 200", 12) != 0) {
-		return FALSE;
-	}
-
-	if (strncmp (buf + (bytes_read - 4), "\r\n\r\n", 4) != 0) {
-		return FALSE;
-	}
-	UNUSED_FORMAL_PARAM(condition);
-	UNUSED_FORMAL_PARAM(data);
-	return TRUE;
-}
-
-static gboolean
-proxy_read_cb (GIOChannel *source, GIOCondition condition, gpointer data)
-{
-	LmConnectData *connect_data;
-	LmConnection  *connection;
-	LmProxy       *proxy;
-	gboolean       retval = FALSE;
-
-	connect_data = (LmConnectData *) data;
-	connection = connect_data->connection;
-	proxy = lm_connection_get_proxy (connection);
-
-	g_return_val_if_fail (proxy != NULL, FALSE);
-
-	if (lm_connection_is_open (connection)) {
-		return FALSE;
-	}
-
-	switch (lm_proxy_get_type (proxy)) {
-	default:
-	case LM_PROXY_TYPE_NONE:
-		g_assert_not_reached ();
-		break;
-	case LM_PROXY_TYPE_HTTP:
-		retval = proxy_http_read_cb (source, condition, data);
-		break;
-	}
-
-	if (retval == TRUE) {
-		g_source_remove (proxy->io_watch);
-		_lm_socket_succeeded ((LmConnectData *) data);
-	}
-	//retval is false
-	//route call to connect_cb	
-	else
-	{
-	_lm_socket_failed_with_error(connect_data, _LM_SOCK_EINVAL);	
-	}
-	return FALSE;
-}
-
-gboolean
-proxy_negotiate (LmProxy *proxy, gint fd, const gchar *server, guint port)
-{
-	g_return_val_if_fail (proxy != NULL, FALSE);
-
-	switch (proxy->type) {
-	case LM_PROXY_TYPE_NONE:
-		return TRUE;
-	case LM_PROXY_TYPE_HTTP:
-		return proxy_http_negotiate (proxy, fd, server, port);
-	default:
-		g_assert_not_reached ();
-	}
-
-	return FALSE;
-}
-
-gboolean
-_lm_proxy_connect_cb (GIOChannel *source, GIOCondition condition, gpointer data)
-{
-	LmConnection  *connection;
-	LmConnectData *connect_data;
-	LmProxy       *proxy;
-	int            error;
-	socklen_t      len;
-
-	connect_data = (LmConnectData *) data;
-	connection = connect_data->connection;
-	proxy = lm_connection_get_proxy (connection);
-
-	g_return_val_if_fail (proxy != NULL, FALSE);
-
-	if (condition == G_IO_ERR) {
-		len = sizeof (error);
-		_lm_sock_get_error (connect_data->fd, &error, &len);
-		_lm_socket_failed_with_error (connect_data, error);
-		return FALSE;
-	} else if (condition == G_IO_OUT) {
-		if (!proxy_negotiate (lm_connection_get_proxy (connection), connect_data->fd, lm_connection_get_server (connection), lm_connection_get_port (connection))) {
-			_lm_socket_failed (connect_data);
-			return FALSE;
-		}
-			
-		proxy->io_watch = g_io_add_watch (connect_data->io_channel,
-						  G_IO_IN|G_IO_ERR,
-						  (GIOFunc) proxy_read_cb,
-						  connect_data);
-	} else {
-		g_assert_not_reached ();
-	}
-	UNUSED_FORMAL_PARAM(source);
-	return FALSE;
-}
-
-/**
- * lm_proxy_new
- * @type: the type of the new proxy
- * 
- * Creates a new Proxy. Used #lm_connection_set_proxy to make a connection 
- * user this proxy.
- * 
- * Return value: a newly create proxy
- **/
-EXPORT_C LmProxy * 
-lm_proxy_new (LmProxyType type)
-{
-	LmProxy *proxy;
-
-	proxy = g_new0 (LmProxy, 1);
-	
-	proxy->ref_count = 1;
-	proxy->type = type;
-
-	switch (proxy->type) {
-	case LM_PROXY_TYPE_HTTP:
-		proxy->port = 8000;
-		break;
-	default:
-		proxy->port = 0;
-	}
-
-	return proxy;
-}
-
-/**
- * lm_proxy_new_with_server
- * @type: the type of the new proxy
- * @server: the proxy server
- * @port: the proxy server port
- * 
- * Creates a new Proxy. Use #lm_connection_set_proxy to make a connection 
- * user this proxy.
- * 
- * Return value: a newly create proxy
- **/
-EXPORT_C LmProxy *
-lm_proxy_new_with_server (LmProxyType  type,
-			  const gchar *server,
-			  guint        port)
-{
-	LmProxy *proxy;
-
-	proxy = lm_proxy_new (type);
-	lm_proxy_set_server (proxy, server);
-	lm_proxy_set_port (proxy, port);
-
-	return proxy;
-}
-
-/**
- * lm_proxy_get_type
- * @proxy: an #LmProxy
- * 
- * Fetches the proxy type
- * 
- * Return value: the type 
- **/
-EXPORT_C LmProxyType
-lm_proxy_get_type (LmProxy *proxy)
-{
-	g_return_val_if_fail (proxy != NULL, LM_PROXY_TYPE_NONE);
-
-	return proxy->type;
-}
-
-/**
- * lm_proxy_set_type
- * @proxy: an #LmProxy
- * @type: an LmProxyType
- *
- * Sets the proxy type for @proxy to @type. 
- **/
-EXPORT_C void
-lm_proxy_set_type (LmProxy *proxy, LmProxyType type)
-{
-	g_return_if_fail (proxy != NULL);
-
-	proxy->type = type;
-}
-
-/**
- * lm_proxy_get_server:
- * @proxy: an #LmProxy
- * 
- * Fetches the server address that @proxy is using.
- * 
- * Return value: the proxy server address
- **/
-EXPORT_C const gchar *
-lm_proxy_get_server (LmProxy *proxy)
-{
-	g_return_val_if_fail (proxy != NULL, NULL);
-	
-	return proxy->server;
-}
-
-/**
- * lm_proxy_set_server:
- * @proxy: an #LmProxy
- * @server: Address of the proxy server
- * 
- * Sets the server address for @proxy to @server. 
- **/
-EXPORT_C void
-lm_proxy_set_server (LmProxy *proxy, const gchar *server)
-{
-	g_return_if_fail (proxy != NULL);
-	g_return_if_fail (server != NULL);
-	
-	g_free (proxy->server);
-	proxy->server = _lm_utils_hostname_to_punycode (server);
-}
-
-/**
- * lm_proxy_get_port:
- * @proxy: an #LmProxy
- * 
- * Fetches the port that @proxy is using.
- * 
- * Return value: The port 
- **/
-EXPORT_C guint
-lm_proxy_get_port (LmProxy *proxy)
-{
-	g_return_val_if_fail (proxy != NULL, 0);
-
-	return proxy->port;
-}
-
-/**
- * lm_proxy_set_port:
- * @proxy: an #LmProxy
- * @port: proxy server port
- * 
- * Sets the server port that @proxy will be using.
- **/
-EXPORT_C void
-lm_proxy_set_port (LmProxy *proxy, guint port)
-{
-	g_return_if_fail (proxy != NULL);
-	
-	proxy->port = port;
-}
-
-/**
- * lm_proxy_get_username:
- * @proxy: an #LmProxy
- * 
- * Fetches the username that @proxy is using.
- * 
- * Return value: the username
- **/
-EXPORT_C const gchar *
-lm_proxy_get_username (LmProxy *proxy)
-{
-	g_return_val_if_fail (proxy != NULL, NULL);
-	
-	return proxy->username;
-}
-
-/**
- * lm_proxy_set_username:
- * @proxy: an #LmProxy
- * @username: Username
- * 
- * Sets the username for @proxy to @username or %NULL to unset.  
- **/
-EXPORT_C void
-lm_proxy_set_username (LmProxy *proxy, const gchar *username)
-{
-	g_return_if_fail (proxy != NULL);
-	
-	g_free (proxy->username);
-	
-	if (username) {
-		proxy->username = g_strdup (username);
-	} else {
-		proxy->username = NULL;
-	}
-}
-/**
- * lm_proxy_get_password:
- * @proxy: an #LmProxy
- * 
- * Fetches the password that @proxy is using.
- * 
- * Return value: the proxy password
- **/
-EXPORT_C const gchar *
-lm_proxy_get_password (LmProxy *proxy)
-{
-	g_return_val_if_fail (proxy != NULL, NULL);
-	
-	return proxy->password;
-}
-
-/**
- * lm_proxy_set_password:
- * @proxy: an #LmProxy
- * @password: Password
- * 
- * Sets the password for @proxy to @password or %NULL to unset. 
- **/
-EXPORT_C void
-lm_proxy_set_password (LmProxy *proxy, const gchar *password)
-{
-	g_return_if_fail (proxy != NULL);
-	
-	g_free (proxy->password);
-
-	if (password) {
-		proxy->password = g_strdup (password);
-	} else {
-		proxy->password = NULL;
-	}
-}
-
-/**
- * lm_proxy_ref:
- * @proxy: an #LmProxy
- * 
- * Adds a reference to @proxy.
- * 
- * Return value: the proxy
- **/
-EXPORT_C LmProxy *
-lm_proxy_ref (LmProxy *proxy)
-{
-	g_return_val_if_fail (proxy != NULL, NULL);
-	
-	proxy->ref_count++;
-	return proxy;
-}
-
-/**
- * lm_proxy_unref
- * @proxy: an #LmProxy
- * 
- * Removes a reference from @proxy. When no more references are present
- * @proxy is freed.
- **/
-EXPORT_C void
-lm_proxy_unref (LmProxy *proxy)
-{
-	g_return_if_fail (proxy != NULL);
-	
-	proxy->ref_count--;
-
-	if (proxy->ref_count == 0) {
-		proxy_free (proxy);
-        }
-}
--- a/loudmouth/src/lm-sasl.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,876 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2007 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <glib.h>
-
-//hack - to get over compilation error
-#include <glib_global.h>
-#include "lm-sock.h"
-#include "lm-debug.h"
-#include "lm-error.h"
-#include "lm-internals.h"
-#include "lm-message-queue.h"
-#include "lm-misc.h"
-#include "lm-ssl-internals.h"
-#include "lm-parser.h"
-#include "lm-sha.h"
-#include "lm-connection.h"
-#include "lm-utils.h"
-#include "lm-socket.h"
-#include "lm-sasl.h"
-
-#include "md5.h"
-#include "base64.h"
-
-typedef enum {
-	AUTH_TYPE_PLAIN  = 1,
-	AUTH_TYPE_DIGEST = 2
-} AuthType;
-
-typedef enum {
-	SASL_AUTH_STATE_NO_MECH,
-	SASL_AUTH_STATE_PLAIN_STARTED,
-	SASL_AUTH_STATE_DIGEST_MD5_STARTED,
-	SASL_AUTH_STATE_DIGEST_MD5_SENT_AUTH_RESPONSE,
-	SASL_AUTH_STATE_DIGEST_MD5_SENT_FINAL_RESPONSE,
-} SaslAuthState;
-
-struct _LmSASL {
-	LmConnection        *connection;
-	AuthType             auth_type;
-	SaslAuthState        state;
-	gchar               *username;
-	gchar               *password;
-	gchar               *server;
-	gchar               *digest_md5_rspauth;
-	LmMessageHandler    *features_cb;
-	LmMessageHandler    *challenge_cb;
-	LmMessageHandler    *success_cb;
-	LmMessageHandler    *failure_cb;
-
-	gboolean             features_received;
-	gboolean             start_auth;
-
-	LmSASLResultHandler  handler;
-};
-
-#define XMPP_NS_SASL_AUTH "urn:ietf:params:xml:ns:xmpp-sasl"
-
-static LmHandlerResult     sasl_features_cb  (LmMessageHandler *handler,
-					      LmConnection     *connection,
-					      LmMessage        *message,
-					      gpointer          user_data);
-
-static LmHandlerResult     sasl_challenge_cb (LmMessageHandler *handler,
-					      LmConnection     *connection,
-					      LmMessage        *message,
-					      gpointer          user_data);
-
-static LmHandlerResult     sasl_success_cb   (LmMessageHandler *handler,
-					      LmConnection     *connection,
-					      LmMessage        *message,
-					      gpointer          user_data);
-
-static LmHandlerResult     sasl_failure_cb   (LmMessageHandler *handler,
-					      LmConnection     *connection,
-					      LmMessage        *message,
-					      gpointer          user_data);
-
-
-/* DIGEST-MD5 mechanism code from libgibber */
-
-static gchar *
-sasl_strndup_unescaped (const gchar *str, gsize len) 
-{
-	const gchar *s;
-	gchar       *d;
-	gchar       *ret;
-
-	ret = g_malloc0 (len + 1);
-	for (s = str, d = ret ; s < (str + len) ; s++, d++) {
-		if (*s == '\\') s++;
-		*d = *s;
-	}
-
-	return ret;
-}
-
-static GHashTable *
-sasl_digest_md5_challenge_to_hash (const gchar * challenge)
-{
-	const gchar *keystart, *keyend, *valstart;
-	const gchar *c = challenge;
-	gchar       *key, *val;
-	GHashTable  *result;
-	
-	result = g_hash_table_new_full (g_str_hash, g_str_equal, 
-					g_free, g_free);
-
-	do { 
-		while (g_ascii_isspace(*c)) c++;
-
-		keystart = c;
-		for (; *c != '\0' && *c != '='; c++);
-
-		if (*c == '\0' || c == keystart) goto error;
-
-		keyend = c; 
-		c++;
-
-		if (*c == '"') {
-			c++;
-			valstart = c;
-			for (; *c != '\0' && *c != '"'; c++);
-			if (*c == '\0' || c == valstart) goto error;
-			val = sasl_strndup_unescaped (valstart, c - valstart);
-			c++;
-		} else {
-			valstart = c;
-			for (; *c !=  '\0' && *c != ','; c++);
-			if (c == valstart) goto error;
-			val = g_strndup (valstart, c - valstart);
-		}
-
-		key = g_strndup (keystart, keyend - keystart);
-
-		g_hash_table_insert (result, key, val);
-
-		if (*c == ',') c++;
-	} while (*c != '\0');
-
-	return result;
-error:
-	/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL, 
-	       "Failed to parse challenge: %s", challenge);*/
-	lm_verbose("[sasl_digest_md5_challenge_to_hash]:Failed to parse challenge: %s", challenge);
-	g_hash_table_destroy (result);
-	return NULL;
-}
-
-static gchar *
-sasl_md5_hex_hash (gchar *value, gsize len) 
-{
-	md5_byte_t   digest_md5[16];
-	md5_state_t  md5_calc;
-	GString     *str;
-	int          i;
-
-	str = g_string_sized_new (32);
-
-	md5_init (&md5_calc);
-	md5_append (&md5_calc, (const md5_byte_t *)value, len);
-	md5_finish (&md5_calc, digest_md5);
-
-	for (i = 0 ; i < 16 ; i++) {
-		g_string_append_printf (str, "%02x", digest_md5[i]);
-	}
-
-	return g_string_free (str, FALSE);
-}
-
-static gchar *
-sasl_digest_md5_generate_cnonce(void)
-{
-	/* RFC 2831 recommends the the nonce to be either hexadecimal or base64 with
-	 * at least 64 bits of entropy */
-#define NR 8
-	guint32 n[NR]; 
-	int i;
-
-	for (i = 0; i < NR; i++) {
-		n[i] = g_random_int();
-	}
-
-	return base64_encode ((gchar *)n, sizeof(n));
-}
-
-static gchar *
-sasl_md5_prepare_response (LmSASL *sasl, GHashTable *challenge)
-{
-	GString     *response;
-	const gchar *realm, *nonce;
-	gchar       *a1, *a1h, *a2, *a2h, *kd, *kdh;
-	gchar       *cnonce = NULL;
-	gchar       *tmp;
-	md5_byte_t   digest_md5[16];
-	md5_state_t  md5_calc;
-	gsize        len;
-
-	response = g_string_new ("");
-
-	if (sasl->username == NULL || sasl->password == NULL) {
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-		       "%s: no username or password provided", G_STRFUNC);*/
-		lm_verbose("[sasl_md5_prepare_response]: %s: no username or password provided", G_STRFUNC);
-		if (sasl->handler) {
-			sasl->handler (sasl, sasl->connection, 
-				       FALSE, "no username/password provided");
-		}
-		goto error;
-	}
-
-	nonce = g_hash_table_lookup (challenge, "nonce");
-	if (nonce == NULL || nonce == '\0') {
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-		       "%s: server didn't provide a nonce in the challenge", 
-		       G_STRFUNC);*/
-		lm_verbose("[sasl_md5_prepare_response]: %s: server didn't provide a nonce in the challenge", G_STRFUNC);
-		if (sasl->handler) {
-			sasl->handler (sasl, sasl->connection,
-				       FALSE, "server error");
-		}
-		goto error;
-	}
-
-	cnonce = sasl_digest_md5_generate_cnonce ();
-
-	/* FIXME challenge can contain multiple realms */
-	realm = g_hash_table_lookup (challenge, "realm");
-	if (realm == NULL) {
-		realm = sasl->server;
-	}
-
-	/* FIXME properly escape values */
-	g_string_append_printf (response, "username=\"%s\"", sasl->username);
-	g_string_append_printf (response, ",realm=\"%s\"", realm);
-	g_string_append_printf (response, ",digest-uri=\"xmpp/%s\"", realm);
-	g_string_append_printf (response, ",nonce=\"%s\",nc=00000001", nonce);
-	g_string_append_printf (response, ",cnonce=\"%s\"", cnonce);
-	/* FIXME should check if auth is in the cop challenge val */
-	g_string_append_printf (response, ",qop=auth,charset=utf-8");
-
-	tmp = g_strdup_printf ("%s:%s:%s", 
-			       sasl->username, realm, sasl->password);
-	md5_init (&md5_calc);
-	md5_append (&md5_calc, (const md5_byte_t *)tmp, strlen(tmp));
-	md5_finish (&md5_calc, digest_md5);
-	g_free (tmp);
-
-	a1 = g_strdup_printf ("0123456789012345:%s:%s", nonce, cnonce);
-	len = strlen (a1);
-	memcpy (a1, digest_md5, 16);
-	a1h = sasl_md5_hex_hash (a1, len);
-
-	a2 = g_strdup_printf ("AUTHENTICATE:xmpp/%s", realm);
-	a2h = sasl_md5_hex_hash (a2, strlen(a2));
-
-	kd = g_strdup_printf ("%s:%s:00000001:%s:auth:%s",
-			      a1h, nonce, cnonce, a2h);
-	kdh = sasl_md5_hex_hash (kd, strlen(kd));
-	g_string_append_printf (response, ",response=%s", kdh);
-
-	g_free (kd);
-	g_free (kdh);
-	g_free (a2);
-	g_free (a2h);
-
-	/* Calculate the response we expect from the server */
-	a2 = g_strdup_printf (":xmpp/%s", realm);
-	a2h = sasl_md5_hex_hash (a2, strlen(a2));
-
-	kd = g_strdup_printf ("%s:%s:00000001:%s:auth:%s", a1h, nonce, cnonce, a2h);
-	g_free (sasl->digest_md5_rspauth);
-	sasl->digest_md5_rspauth = sasl_md5_hex_hash (kd, strlen(kd));
-
-	g_free (a1);
-	g_free (a1h);
-	g_free (a2);
-	g_free (a2h);
-	g_free (kd);
-
-out:
-	g_free (cnonce);
-	if (response) {
-		return g_string_free (response, FALSE);
-	} else {
-		return NULL;
-	}
-
-error:
-	g_string_free (response, TRUE);
-	response = NULL;
-	goto out;
-}
-
-static gboolean
-sasl_digest_md5_send_initial_response (LmSASL *sasl, GHashTable *challenge)
-{
-	LmMessage *msg;
-	gchar     *response;
-	gchar     *response64;
-	int        result;
-
-	response = sasl_md5_prepare_response(sasl, challenge);
-	if (response == NULL) {
-		return FALSE;
-	}
-
-	response64 = base64_encode ((gchar *)response, strlen(response));
-
-	msg = lm_message_new (NULL, LM_MESSAGE_TYPE_RESPONSE);
-	lm_message_node_set_attributes (msg->node,
-					"xmlns", XMPP_NS_SASL_AUTH,
-					NULL);
-	lm_message_node_set_value (msg->node, response64);
-
-	result = lm_connection_send (sasl->connection, msg, NULL);
-
-	g_free (response);
-	g_free (response64);
-	lm_message_unref (msg);
-
-	if (!result) {
-		return FALSE;
-	}
-
-	sasl->state = SASL_AUTH_STATE_DIGEST_MD5_SENT_AUTH_RESPONSE;
-
-	return TRUE;
-}
-
-static gboolean
-sasl_digest_md5_check_server_response(LmSASL *sasl, GHashTable *challenge)
-{
-	LmMessage   *msg;
-	const gchar *rspauth;
-	int          result;
-
-	rspauth = g_hash_table_lookup (challenge, "rspauth");
-	if (rspauth == NULL) {
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SSL,
-		       "%s: server sent an invalid reply (no rspauth)\n",
-		       G_STRFUNC);*/
-		lm_verbose("%s: server sent an invalid reply (no rspauth)\n",G_STRFUNC);
-
-		if (sasl->handler) {
-			sasl->handler (sasl, sasl->connection, 
-				       TRUE, "server error");
-		}
-		return FALSE;
-	}
-
-	if (strcmp (sasl->digest_md5_rspauth, rspauth) != 0) {
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SSL,
-		       "%s: server sent an invalid reply (rspauth not matching)\n", 
-		       G_STRFUNC);*/
-		lm_verbose("%s: server sent an invalid reply (rspauth not matching)\n", 
-		       G_STRFUNC);
-
-		if (sasl->handler) {
-			sasl->handler (sasl, sasl->connection,
-				       TRUE, "server error");
-		}
-		return FALSE;
-	}
-
-	msg = lm_message_new (NULL, LM_MESSAGE_TYPE_RESPONSE);
-	lm_message_node_set_attributes (msg->node,
-					"xmlns", XMPP_NS_SASL_AUTH,
-					NULL);
-
-	result = lm_connection_send (sasl->connection, msg, NULL);
-	lm_message_unref (msg);
-
-	if (!result) {
-		g_warning ("Failed to send SASL response\n");
-		return FALSE;
-	}
-
-	sasl->state = SASL_AUTH_STATE_DIGEST_MD5_SENT_FINAL_RESPONSE;
-
-	return TRUE;
-}
-
-static gboolean
-sasl_digest_md5_handle_challenge (LmSASL *sasl, LmMessageNode *node)
-{
-	const gchar *encoded;
-	gchar       *challenge;
-	gsize        len;
-	GHashTable  *h;
-
-	encoded = lm_message_node_get_value (node);
-	if (!encoded) {
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-		       "%s: got empty challenge!", G_STRFUNC);*/
-		lm_verbose("[sasl_digest_md5_handle_challenge]: %s: got empty challenge!", G_STRFUNC);
-		return FALSE;
-	}
-
-	challenge = (gchar *) base64_decode (encoded, &len);
-	h = sasl_digest_md5_challenge_to_hash (challenge);
-	g_free(challenge);
-
-	if (!h) {
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-		       "%s: server sent an invalid challenge", G_STRFUNC);*/
-		lm_verbose("[sasl_digest_md5_handle_challenge]: %s: server sent an invalid challenge", G_STRFUNC);
-		if (sasl->handler) {
-			sasl->handler (sasl, sasl->connection, 
-				       FALSE, "server error");
-		}
-		return FALSE;
-	}
-
-	switch (sasl->state) {
-	case SASL_AUTH_STATE_DIGEST_MD5_STARTED:
-		sasl_digest_md5_send_initial_response (sasl, h); 
-		break;
-	case SASL_AUTH_STATE_DIGEST_MD5_SENT_AUTH_RESPONSE:
-		sasl_digest_md5_check_server_response (sasl, h); 
-		break;
-	default:
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-		       "%s: server sent a challenge at the wrong time", 
-		       G_STRFUNC);*/
-		lm_verbose( "[sasl_digst_md5_handle_challenge]: %s: server sent a challenge at the wrong time", 
-		       G_STRFUNC);
-		if (sasl->handler) {
-			sasl->handler (sasl, sasl->connection,
-				       FALSE, "server error");
-		}
-
-		return FALSE;
-	} 
-
-	g_hash_table_destroy(h);
-
-	return TRUE;
-}
-
-static LmHandlerResult
-sasl_challenge_cb (LmMessageHandler *handler,
-		   LmConnection     *connection,
-		   LmMessage        *message,
-		   gpointer          user_data)
-{
-	LmSASL      *sasl;
-	const gchar *ns;
-
-	ns = lm_message_node_get_attribute (message->node, "xmlns");
-	if (!ns || strcmp (ns, XMPP_NS_SASL_AUTH) != 0) {
-		return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-	}
-
-	sasl = (LmSASL *) user_data;
-
-	switch (sasl->auth_type) {
-	case AUTH_TYPE_PLAIN:
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SSL,
-		       "%s: server sent challenge for PLAIN mechanism",
-		       G_STRFUNC);*/
-		lm_verbose("[sasl_challenge_cb]: %s: server sent challenge for PLAIN mechanism",G_STRFUNC);
-
-		if (sasl->handler) {
-			sasl->handler (sasl, sasl->connection, 
-				       FALSE, "server error");
-		}
-		break;
-	case AUTH_TYPE_DIGEST:
-		sasl_digest_md5_handle_challenge (sasl, message->node);
-		break;
-	default:
-		g_warning ("Wrong auth type");
-		break;
-	}
-	UNUSED_FORMAL_PARAM(handler);
-	UNUSED_FORMAL_PARAM(connection);
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static LmHandlerResult
-sasl_success_cb (LmMessageHandler *handler,
-		 LmConnection     *connection,
-		 LmMessage        *message,
-		 gpointer          user_data)
-{
-	LmSASL      *sasl;
-	const gchar *ns;
-	
-	ns = lm_message_node_get_attribute (message->node, "xmlns");
-	if (!ns || strcmp (ns, XMPP_NS_SASL_AUTH) != 0) {
-		return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-	}
-
-	sasl = (LmSASL *) user_data;
-
-	switch (sasl->auth_type) {
-	case AUTH_TYPE_PLAIN:
-		if (sasl->state != SASL_AUTH_STATE_PLAIN_STARTED) {
-			/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-			       "%s: server sent success before finishing auth", 
-			       G_STRFUNC);*/
-			lm_verbose("[sasl_success_cb]: %s: server sent success before finishing auth", G_STRFUNC);
-			if (sasl->handler) {
-				sasl->handler (sasl, sasl->connection, 
-					       FALSE, "server error");
-			}
-		}
-		break;
-	case AUTH_TYPE_DIGEST:
-		if (sasl->state != SASL_AUTH_STATE_DIGEST_MD5_SENT_AUTH_RESPONSE &&
-		    sasl->state != SASL_AUTH_STATE_DIGEST_MD5_SENT_FINAL_RESPONSE) {
-			/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-			       "%s: server sent success before finishing auth", 
-			       G_STRFUNC);*/
-			lm_verbose("[sasl_success_cb]: %s: server sent success before finishing auth", G_STRFUNC);
-			if (sasl->handler) {
-				sasl->handler (sasl, sasl->connection, 
-					       FALSE, "server error");
-			}
-		}
-		break;
-	default:
-		g_warning ("Wrong auth type");
-		break;
-	}
-
-/*	g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-	       "%s: SASL authentication successful", G_STRFUNC);*/
-	lm_verbose("[sasl_success_cb]: %s: SASL authentication successful", G_STRFUNC);
-
-	if (sasl->handler) {
-		sasl->handler (sasl, sasl->connection, TRUE, NULL);
-	}
-	UNUSED_FORMAL_PARAM(handler);
-	UNUSED_FORMAL_PARAM(connection);
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-	
-}
-
-static LmHandlerResult
-sasl_failure_cb (LmMessageHandler *handler,
-		 LmConnection     *connection,
-		 LmMessage        *message,
-		 gpointer          user_data)
-{
-	LmSASL      *sasl;
-	const gchar *ns;
-	const gchar *reason = "unknown reason";
-	lm_verbose("[sasl_failure_cb]: inside sasl_failure_cb\n");
-	ns = lm_message_node_get_attribute (message->node, "xmlns");
-	if (!ns || strcmp (ns, XMPP_NS_SASL_AUTH) != 0) {
-		return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-	}
-
-	sasl = (LmSASL *) user_data;
-
-	if (message->node->children) {
-		const gchar *r;
-		
-		r = lm_message_node_get_value (message->node->children);
-		if (r) {
-			reason = r;
-		}
-	}
-	lm_verbose("[sasl_failure_cb]: %s: SASL authentication failed: %s\n", G_STRFUNC, reason);
-	/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-	       "%s: SASL authentication failed: %s", G_STRFUNC, reason);*/
-
-	if (sasl->handler) {
-		sasl->handler (sasl, sasl->connection, FALSE, reason);
-	}
-	UNUSED_FORMAL_PARAM(handler);
-	UNUSED_FORMAL_PARAM(connection);
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-
-static gboolean
-sasl_start (LmSASL *sasl)
-{
-	LmMessage  *auth_msg;
-	gboolean    result;
-	const char *mech = NULL;
-
-	auth_msg = lm_message_new (NULL, LM_MESSAGE_TYPE_AUTH);
-	lm_verbose("[sasl_start]: inside sasl_start\n");
-	if (sasl->auth_type == AUTH_TYPE_PLAIN) {
-      		GString *str;
-		gchar   *cstr;
-
-		str = g_string_new ("");
-
-		mech = "PLAIN";
-		sasl->state = SASL_AUTH_STATE_PLAIN_STARTED;
-		lm_verbose("[sasl_start]: inside sasl_start: auth type is PLAIN\n");
-		if (sasl->username == NULL || sasl->password == NULL) {
-			lm_verbose("[sasl_start]: no username or password provided\n");
-			/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-			       "%s: no username or password provided", 
-			       G_STRFUNC);*/
-			if (sasl->handler) {
-				sasl->handler (sasl, sasl->connection, FALSE, "no username/password provided");
-			}
-
-			return FALSE;
-		}
-
-		g_string_append_c (str, '\0');
-		g_string_append (str, sasl->username);
-		g_string_append_c (str, '\0');
-		g_string_append (str, sasl->password);
-		cstr = base64_encode ((gchar *)str->str, str->len);
-
-		lm_message_node_set_value (auth_msg->node, cstr);
-
-		g_string_free (str, TRUE);
-		g_free (cstr);
-
-		/* Here we say the Google magic word. Bad Google. */
-		lm_message_node_set_attributes (auth_msg->node,
-						"xmlns:ga", "http://www.google.com/talk/protocol/auth",
-						"ga:client-uses-full-bind-result", "true",
-						NULL);
-
-	} 
-	else if (sasl->auth_type == AUTH_TYPE_DIGEST) {
-		mech = "DIGEST-MD5";
-		sasl->state = SASL_AUTH_STATE_DIGEST_MD5_STARTED;
-	}
-
-	lm_message_node_set_attributes (auth_msg->node,
-					"xmlns", XMPP_NS_SASL_AUTH,
-					"mechanism", mech,
-					NULL);
-
-	result = lm_connection_send (sasl->connection, auth_msg, NULL);
-	lm_message_unref (auth_msg);
-
-	if (!result) {
-		return FALSE;
-	}
-
-	return TRUE;
-}
-
-static gboolean
-sasl_set_auth_type (LmSASL *sasl, LmMessageNode *mechanisms)
-{
-	LmMessageNode *m;
-	const gchar   *ns;
-
-	sasl->auth_type = 0;
-	lm_verbose("[sasl_set_auth_type]: inside sasl_set_auth_type\n");
-	ns = lm_message_node_get_attribute (mechanisms, "xmlns");
-	if (!ns || strcmp (ns, XMPP_NS_SASL_AUTH) != 0) {
-		return FALSE;
-	}
-
-	for (m = mechanisms->children; m; m = m->next) {
-		const gchar *name;
-		
-		name = lm_message_node_get_value (m);
-
-		if (!name) {
-			continue;
-		}
-		if (strcmp (name, "PLAIN") == 0) {
-			sasl->auth_type |= AUTH_TYPE_PLAIN;
-			continue;
-		}
-		if (strcmp (name, "DIGEST-MD5") == 0) {
-			sasl->auth_type |= AUTH_TYPE_DIGEST;
-			continue;
-		}
-
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-		       "%s: unknown SASL auth mechanism: %s", G_STRFUNC, name);*/
-		lm_verbose ("[sasl_set_auth_type]: %s: unknown SASL auth mechanism: %s", G_STRFUNC, name);
-	}
-
-	return TRUE;
-}
-
-static gboolean
-sasl_authenticate (LmSASL *sasl)
-{
-	lm_verbose ("[sasl_authenticate]: inside sasl_authenticate\n");
-	if (sasl->auth_type == 0) {
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL,
-		      "%s: no supported SASL auth mechanisms found",
-		      G_STRFUNC);*/
-	  lm_verbose ("[sasl_authenticate]: %s: no supported SASL auth mechanisms found",G_STRFUNC);
-
-		return FALSE;
-	}
-
-	/* Prefer DIGEST */
-	if (sasl->auth_type & AUTH_TYPE_DIGEST) {
-		sasl->auth_type = AUTH_TYPE_DIGEST;
-		return sasl_start (sasl);
-	}
-	else if (sasl->auth_type & AUTH_TYPE_PLAIN) {
-		sasl->auth_type = AUTH_TYPE_PLAIN;
-		return sasl_start (sasl);
-	} 
-
-	return FALSE;
-}
-
-static LmHandlerResult
-sasl_features_cb (LmMessageHandler *handler,
-		  LmConnection     *connection,
-		  LmMessage        *message,
-		  gpointer          user_data)
-{
-    	LmMessageNode *mechanisms;
-	LmSASL        *sasl;
-
-	lm_verbose ("\n[sasl_feature_cb]: Stream features received\n\n");
-	//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SASL, "Stream features received\n");
-	mechanisms = lm_message_node_find_child (message->node, "mechanisms");
-	if (!mechanisms) {
-	    gchar* childname = NULL;
-		lm_message_node_get_child(message->node,childname);
-		lm_verbose("[sasl_feature_cb]: Child name of stream:features %s\n", message->node->children->name);
-		lm_verbose("[sasl_feature_cb]: Child pointer of stream:features %u\n", message->node->children);
-		lm_verbose ("[sasl_feature_cb]: mechanisms empty:LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS \n");
-		return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-	}
-	lm_verbose("[sasl_features_cb]: Mechanisms not null\n");
-
-	sasl = (LmSASL *) user_data;
-	sasl->features_received = TRUE;
-
-	sasl_set_auth_type (sasl, mechanisms);
-
-	if (sasl->start_auth) {
-		lm_verbose ("[sasl_feature_cb]: Going to call sasl_authenticate\n");
-		sasl_authenticate (sasl);
-	}
-	UNUSED_FORMAL_PARAM(handler);
-	UNUSED_FORMAL_PARAM(connection);
-	return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-}
-
-LmSASL *
-lm_sasl_new (LmConnection *connection)
-{
-	LmSASL *sasl;
-	
-	sasl = g_new0 (LmSASL, 1);
-
-	sasl->connection = connection;
-	sasl->features_received = FALSE;
-	sasl->start_auth = FALSE;
-
-	sasl->features_cb = lm_message_handler_new (sasl_features_cb,
-						    sasl,
-						    NULL);
-	lm_verbose ("[lm_sasl_new]: inside \n");
-	lm_connection_register_message_handler (connection,
-						sasl->features_cb,
-						LM_MESSAGE_TYPE_STREAM_FEATURES,
-						LM_HANDLER_PRIORITY_LAST);
-	return sasl;
-}
-
-void
-lm_sasl_authenticate (LmSASL              *sasl,
-		      const gchar         *username,
-		      const gchar         *password,
-		      const gchar         *server,
-		      LmSASLResultHandler  handler)
-{
-	sasl->username   = g_strdup (username);
-	sasl->password   = g_strdup (password);
-	sasl->server     = g_strdup (server);
-	sasl->handler    = handler;
-
-	sasl->challenge_cb = lm_message_handler_new (sasl_challenge_cb,
-						     sasl,
-						     NULL);
-	lm_connection_register_message_handler (sasl->connection,
-						sasl->challenge_cb,
-						LM_MESSAGE_TYPE_CHALLENGE,
-						LM_HANDLER_PRIORITY_FIRST);
-	
-	sasl->success_cb = lm_message_handler_new (sasl_success_cb,
-						   sasl,
-						   NULL);
-	lm_connection_register_message_handler (sasl->connection,
-						sasl->success_cb,
-						LM_MESSAGE_TYPE_SUCCESS,
-						LM_HANDLER_PRIORITY_FIRST);
-
-	sasl->failure_cb = lm_message_handler_new (sasl_failure_cb,
-						   sasl,
-						   NULL);
-	lm_connection_register_message_handler (sasl->connection,
-						sasl->failure_cb,
-						LM_MESSAGE_TYPE_FAILURE,
-						LM_HANDLER_PRIORITY_FIRST);
-
-	if (sasl->features_received) {
-		lm_verbose("[lm_sasl_authenticate]: calling sasl_authenticate\n");
-		sasl_authenticate (sasl);
-	} else {
-		sasl->start_auth = TRUE;
-	}
-}
-
-void
-lm_sasl_free (LmSASL *sasl)
-{
-	g_return_if_fail (sasl != NULL);
-
-	g_free (sasl->username);
-	g_free (sasl->password);
-	g_free (sasl->server);
-
-	if (sasl->features_cb) {
-		lm_connection_unregister_message_handler (sasl->connection,
-							  sasl->features_cb, 
-							  LM_MESSAGE_TYPE_STREAM_FEATURES);
-	}
-
-	if (sasl->challenge_cb) {
-		lm_connection_unregister_message_handler (sasl->connection,
-							  sasl->challenge_cb,
-							  LM_MESSAGE_TYPE_CHALLENGE);
-	}
-
-	if (sasl->success_cb) {
-		lm_connection_unregister_message_handler (sasl->connection,
-							  sasl->success_cb,
-							  LM_MESSAGE_TYPE_SUCCESS);
-	}
-
-	if (sasl->failure_cb) {
-		lm_connection_unregister_message_handler (sasl->connection,
-							  sasl->failure_cb,
-							  LM_MESSAGE_TYPE_FAILURE);
-	}
-
-	g_free (sasl);
-}
-
-
-void
-lm_sasl_get_auth_params (LmSASL *sasl, const gchar **username,
-	const gchar **password)
-{
-	*username = sasl->username;
-	*password = sasl->password;
-}
-
--- a/loudmouth/src/lm-sha.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,635 +0,0 @@
-/*-
- * Copyright (c) 2001, 2002 Allan Saddi <allan@saddi.com>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-
-/*
- * Define WORDS_BIGENDIAN if compiling on a big-endian architecture.
- *
- * Define SHA1_TEST to test the implementation using the NIST's
- * sample messages. The output should be:
- *
- *   a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d
- *   84983e44 1c3bd26e baae4aa1 f95129e5 e54670f1
- *   34aa973c d4c4daa4 f61eeb2b dbad2731 6534016f
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <stdio.h>
-#include <glib.h>
-
-#include "lm-sha.h"
-
-#ifdef EMULATOR
-#include "libloudmouth_wsd_solution.h"
-GET_STATIC_ARRAY_FROM_TLS(ret_val, lm_sha, gchar)
-  #define ret_val (GET_WSD_VAR_NAME(ret_val, lm_sha, s)())
-#endif
-
-
-
-#define SHA1_HASH_SIZE 20
-
-/* Hash size in 32-bit words */
-#define SHA1_HASH_WORDS 5
-
-struct _SHA1Context {
-  guint64 totalLength;
-  guint32 hash[SHA1_HASH_WORDS];
-  guint32 bufferLength;
-  union {
-    guint32 words[16];
-    guint8 bytes[64];
-  } buffer;
-};
-
-typedef struct _SHA1Context SHA1Context;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-static void SHA1Init (SHA1Context *sc);
-static void SHA1Update (SHA1Context *sc, const void *udata, guint32 len);
-static void SHA1Final (SHA1Context *sc, guint8 hash[SHA1_HASH_SIZE]);
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifndef lint
-static const char rcsid[] =
-	"$Id$";
-#endif /* !lint */
-
-#define ROTL(x, n) (((x) << (n)) | ((x) >> (32 - (n))))
-#define ROTR(x, n) (((x) >> (n)) | ((x) << (32 - (n))))
-
-#define F_0_19(x, y, z) ((z) ^ ((x) & ((y) ^ (z))))
-#define F_20_39(x, y, z) ((x) ^ (y) ^ (z))
-#define F_40_59(x, y, z) (((x) & ((y) | (z))) | ((y) & (z)))
-#define F_60_79(x, y, z) ((x) ^ (y) ^ (z))
-
-#define DO_ROUND(F, K) { \
-  temp = ROTL(a, 5) + F(b, c, d) + e + *(W++) + K; \
-  e = d; \
-  d = c; \
-  c = ROTL(b, 30); \
-  b = a; \
-  a = temp; \
-}
-
-#define K_0_19 0x5a827999L
-#define K_20_39 0x6ed9eba1L
-#define K_40_59 0x8f1bbcdcL
-#define K_60_79 0xca62c1d6L
-
-#ifndef RUNTIME_ENDIAN
-
-#ifdef WORDS_BIGENDIAN
-
-#define BYTESWAP(x) (x)
-#define BYTESWAP64(x) (x)
-
-#else /* WORDS_BIGENDIAN */
-
-#define BYTESWAP(x) ((ROTR((x), 8) & 0xff00ff00L) | \
-		     (ROTL((x), 8) & 0x00ff00ffL))
-#define BYTESWAP64(x) _byteswap64(x)
-
-static inline guint64 _byteswap64(guint64 x)
-{
-  guint32 a = x >> 32;
-  guint32 b = (guint32) x;
-  return ((guint64) BYTESWAP(b) << 32) | (guint64) BYTESWAP(a);
-}
-
-#endif /* WORDS_BIGENDIAN */
-
-#else /* !RUNTIME_ENDIAN */
-
-static int littleEndian;
-
-#define BYTESWAP(x) _byteswap(x)
-#define BYTESWAP64(x) _byteswap64(x)
-
-#define _BYTESWAP(x) ((ROTR((x), 8) & 0xff00ff00L) | \
-		      (ROTL((x), 8) & 0x00ff00ffL))
-#define _BYTESWAP64(x) __byteswap64(x)
-
-static inline guint64 __byteswap64(guint64 x)
-{
-  guint32 a = x >> 32;
-  guint32 b = (guint32) x;
-  return ((guint64) _BYTESWAP(b) << 32) | (guint64) _BYTESWAP(a);
-}
-
-static inline guint32 _byteswap(guint32 x)
-{
-  if (!littleEndian)
-    return x;
-  else
-    return _BYTESWAP(x);
-}
-
-static inline guint64 _byteswap64(guint64 x)
-{
-  if (!littleEndian)
-    return x;
-  else
-    return _BYTESWAP64(x);
-}
-
-static inline void setEndian(void)
-{
-  union {
-    guint32 w;
-    guint8 b[4];
-  } endian;
-
-  endian.w = 1L;
-  littleEndian = endian.b[0] != 0;
-}
-
-#endif /* !RUNTIME_ENDIAN */
-
-static const guint8 padding[64] = {
-  0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-static void
-SHA1Init (SHA1Context *sc)
-{
-#ifdef RUNTIME_ENDIAN
-  setEndian ();
-#endif /* RUNTIME_ENDIAN */
-
-#ifdef G_OS_WIN32
-  sc->totalLength = 0L;
-#else
-  sc->totalLength = 0LL;
-#endif
-  sc->hash[0] = 0x67452301L;
-  sc->hash[1] = 0xefcdab89L;
-  sc->hash[2] = 0x98badcfeL;
-  sc->hash[3] = 0x10325476L;
-  sc->hash[4] = 0xc3d2e1f0L;
-  sc->bufferLength = 0L;
-}
-
-static void
-burnStack (int size)
-{
-  char buf[128];
-
-  memset (buf, 0, sizeof (buf));
-  size -= sizeof (buf);
-  if (size > 0)
-    burnStack (size);
-}
-
-static void
-SHA1Guts (SHA1Context *sc, const guint32 *cbuf)
-{
-  guint32 buf[80];
-  guint32 *W, *W3, *W8, *W14, *W16;
-  guint32 a, b, c, d, e, temp;
-  int i;
-
-  W = buf;
-
-  for (i = 15; i >= 0; i--) {
-    *(W++) = BYTESWAP(*cbuf);
-    cbuf++;
-  }
-
-  W16 = &buf[0];
-  W14 = &buf[2];
-  W8 = &buf[8];
-  W3 = &buf[13];
-
-  for (i = 63; i >= 0; i--) {
-    *W = *(W3++) ^ *(W8++) ^ *(W14++) ^ *(W16++);
-    *W = ROTL(*W, 1);
-    W++;
-  }
-
-  a = sc->hash[0];
-  b = sc->hash[1];
-  c = sc->hash[2];
-  d = sc->hash[3];
-  e = sc->hash[4];
-
-  W = buf;
-
-#ifndef SHA1_UNROLL
-#define SHA1_UNROLL 20
-#endif /* !SHA1_UNROLL */
-
-#if SHA1_UNROLL == 1
-  for (i = 19; i >= 0; i--)
-    DO_ROUND(F_0_19, K_0_19);
-
-  for (i = 19; i >= 0; i--)
-    DO_ROUND(F_20_39, K_20_39);
-
-  for (i = 19; i >= 0; i--)
-    DO_ROUND(F_40_59, K_40_59);
-
-  for (i = 19; i >= 0; i--)
-    DO_ROUND(F_60_79, K_60_79);
-#elif SHA1_UNROLL == 2
-  for (i = 9; i >= 0; i--) {
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-  }
-
-  for (i = 9; i >= 0; i--) {
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-  }
-
-  for (i = 9; i >= 0; i--) {
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-  }
-
-  for (i = 9; i >= 0; i--) {
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-  }
-#elif SHA1_UNROLL == 4
-  for (i = 4; i >= 0; i--) {
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-  }
-
-  for (i = 4; i >= 0; i--) {
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-  }
-
-  for (i = 4; i >= 0; i--) {
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-  }
-
-  for (i = 4; i >= 0; i--) {
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-  }
-#elif SHA1_UNROLL == 5
-  for (i = 3; i >= 0; i--) {
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-  }
-
-  for (i = 3; i >= 0; i--) {
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-  }
-
-  for (i = 3; i >= 0; i--) {
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-  }
-
-  for (i = 3; i >= 0; i--) {
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-  }
-#elif SHA1_UNROLL == 10
-  for (i = 1; i >= 0; i--) {
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-  }
-
-  for (i = 1; i >= 0; i--) {
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-  }
-
-  for (i = 1; i >= 0; i--) {
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-  }
-
-  for (i = 1; i >= 0; i--) {
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-  }
-#elif SHA1_UNROLL == 20
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-#else /* SHA1_UNROLL */
-#error SHA1_UNROLL must be 1, 2, 4, 5, 10 or 20!
-#endif
-
-  sc->hash[0] += a;
-  sc->hash[1] += b;
-  sc->hash[2] += c;
-  sc->hash[3] += d;
-  sc->hash[4] += e;
-}
-
-static void
-SHA1Update (SHA1Context *sc, const void *udata, guint32 len)
-{
-  guint32 bufferBytesLeft;
-  guint32 bytesToCopy;
-  int needBurn = 0;
-  guint8 *data = (guint8 *)udata;
-
-#ifdef SHA1_FAST_COPY
-  if (sc->bufferLength) {
-    bufferBytesLeft = 64L - sc->bufferLength;
-
-    bytesToCopy = bufferBytesLeft;
-    if (bytesToCopy > len)
-      bytesToCopy = len;
-
-    memcpy (&sc->buffer.bytes[sc->bufferLength], data, bytesToCopy);
-
-    sc->totalLength += bytesToCopy * 8L;
-
-    sc->bufferLength += bytesToCopy;
-    data += bytesToCopy;
-    len -= bytesToCopy;
-
-    if (sc->bufferLength == 64L) {
-      SHA1Guts (sc, sc->buffer.words);
-      needBurn = 1;
-      sc->bufferLength = 0L;
-    }
-  }
-
-  while (len > 63) {
-    sc->totalLength += 512L;
-
-    SHA1Guts (sc, data);
-    needBurn = 1;
-
-    data += 64L;
-    len -= 64L;
-  }
-
-  if (len) {
-    memcpy (&sc->buffer.bytes[sc->bufferLength], data, len);
-
-    sc->totalLength += len * 8L;
-
-    sc->bufferLength += len;
-  }
-#else /* SHA1_FAST_COPY */
-  while (len) {
-    bufferBytesLeft = 64L - sc->bufferLength;
-
-    bytesToCopy = bufferBytesLeft;
-    if (bytesToCopy > len)
-      bytesToCopy = len;
-
-    memcpy (&sc->buffer.bytes[sc->bufferLength], data, bytesToCopy);
-
-    sc->totalLength += bytesToCopy * 8L;
-
-    sc->bufferLength += bytesToCopy;
-    data += bytesToCopy;
-    len -= bytesToCopy;
-
-    if (sc->bufferLength == 64L) {
-      SHA1Guts (sc, sc->buffer.words);
-      needBurn = 1;
-      sc->bufferLength = 0L;
-    }
-  }
-#endif /* SHA1_FAST_COPY */
-
-  if (needBurn)
-    burnStack (sizeof (guint32[86]) + sizeof (guint32 *[5]) + sizeof (int));
-}
-
-static void
-SHA1Final (SHA1Context *sc, guint8 hash[SHA1_HASH_SIZE])
-{
-  guint32 bytesToPad;
-  guint64 lengthPad;
-  int i;
-
-  bytesToPad = 120L - sc->bufferLength;
-  if (bytesToPad > 64L)
-    bytesToPad -= 64L;
-
-  lengthPad = BYTESWAP64(sc->totalLength);
-
-  SHA1Update (sc, padding, bytesToPad);
-  SHA1Update (sc, &lengthPad, 8L);
-
-  if (hash) {
-    for (i = 0; i < SHA1_HASH_WORDS; i++) {
-#ifdef SHA1_FAST_COPY
-      *((guint32 *) hash) = BYTESWAP(sc->hash[i]);
-#else /* SHA1_FAST_COPY */
-      hash[0] = (guint8) (sc->hash[i] >> 24);
-      hash[1] = (guint8) (sc->hash[i] >> 16);
-      hash[2] = (guint8) (sc->hash[i] >> 8);
-      hash[3] = (guint8) sc->hash[i];
-#endif /* SHA1_FAST_COPY */
-      hash += 4;
-    }
-  }
-}
-
-#ifdef G_OS_WIN32
-#define snprintf _snprintf
-#endif
-
-const gchar *
-lm_sha_hash (const gchar *str)
-{
-#ifndef EMULATOR
-        static gchar  ret_val[41];
-#endif
-        SHA1Context   ctx;
-        guint8         hash[SHA1_HASH_SIZE];
-        gchar        *ch;
-        guint          i;
-        
-        SHA1Init (&ctx);
-        SHA1Update (&ctx, str, strlen (str));
-        SHA1Final (&ctx, hash);
-
-        ch = ret_val;
-
-        for (i = 0; i < SHA1_HASH_SIZE; ++i) {
-                snprintf (ch, 3, "%02x", hash[i]);
-                ch += 2;
-        }
-
-        return (const gchar *) ret_val;
-}
--- a/loudmouth/src/lm-sock.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,392 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2006 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-//#include <glib.h>
-//#include <glib/gi18n.h>
-
-#ifndef G_OS_WIN32
-//#include <libc/netinet/net_types.h>
-
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/socket.h>
-#include <fcntl.h>
-#include <netinet/in.h>
-//#include <libc/netinet/ip.h>
-//#include <libc/netinet/tcp.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-// hack - to compile without the error of n_long not defined
-#define LM_SHUTDOWN SHUT_RDWR
-
-#else  /* G_OS_WIN32 */
-
-#include <winsock2.h>
-#define LM_SHUTDOWN SD_BOTH
-
-#endif /* G_OS_WIN32 */
-
-#include "lm-internals.h"
-#include "lm-connection.h"
-#include "lm-sock.h"
-#include "lm-debug.h"
-
-#define IPV6_MAX_ADDRESS_LEN 46 /* 45 + '\0' */
-
-#ifdef EMULATOR
-#include "libloudmouth_wsd_solution.h"
-
-GET_GLOBAL_VAR_FROM_TLS(initialised,lm_sock,gboolean)
-	#define initialised (*GET_WSD_VAR_NAME(initialised,lm_sock,g)())
-
-#else
-static gboolean initialised = FALSE;
-#endif
-gboolean
-_lm_sock_library_init (void)
-{
-#ifdef G_OS_WIN32
-	WORD    version;
-	WSADATA data;
-	int     error;
-#endif /* G_OS_WIN32 */
-	
-	if (initialised) {
-		return TRUE;
-	}
-
-	lm_verbose ("Socket library initialising...\n");
-	
-#ifdef G_OS_WIN32
-	lm_verbose ("Checking for winsock 2.0 or above...\n");
-	
-	version = MAKEWORD (2, 0);
-		
-	error = WSAStartup (version, &data);
-	if (error != 0) {
-		g_printerr ("WSAStartup() failed, error:%d\n", error);
-		return FALSE;
-	}
-	
-	/* Confirm that the WinSock DLL supports 2.0.
-	 * Note that if the DLL supports versions greater  
-	 * than 2.0 in addition to 2.0, it will still return 
-	 * 2.0 in wVersion since that is the version we      
-	 * requested.                                        
-	 */
-	if (LOBYTE (data.wVersion) != 2 ||
-	    HIBYTE (data.wVersion) != 0) {
-		/* Tell the user that we could not find a usable
-		 * WinSock DLL.                                  
-		 */
-		g_printerr ("Socket library version is not sufficient!\n");
-		WSACleanup ();
-		return FALSE;
-	}
-#endif /* G_OS_WIN32 */
-
-	initialised = TRUE;
-	
-	return TRUE;
-}
-
-void
-_lm_sock_library_shutdown (void)
-{
-	if (!initialised) {
-		return;
-	}
-
-	lm_verbose ("Socket library shutting down...\n");
-
-#ifdef G_OS_WIN32
-	WSACleanup ();
-#endif /* G_OS_WIN32 */
-
-	initialised = FALSE;
-}
-
-void
-_lm_sock_set_blocking (LmSocketT sock, 
-		       gboolean block)
-{
-	int res;
-
-#ifndef G_OS_WIN32
-	res = fcntl (sock, F_SETFL, block ? 0 : O_NONBLOCK);
-#else  /* G_OS_WIN32 */
-	u_long mode = (block ? 0 : 1);
-	res = ioctlsocket (sock, FIONBIO, &mode);
-#endif /* G_OS_WIN32 */
-
-	if (res != 0) {
-	//	g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET,
-	//	       "Could not set connection to be %s\n",
-	//	       block ? "blocking" : "non-blocking");
-		lm_verbose ("[_lm_sock_set_blocking]: Could not set connection to be %s\n",
-		       block ? "blocking" : "non-blocking");
-	}
-}
-
-void
-_lm_sock_shutdown (LmSocketT sock)
-{
-	shutdown (sock, LM_SHUTDOWN);
-}
-
-void
-_lm_sock_close (LmSocketT sock)
-{
-#ifndef G_OS_WIN32
-	close (sock);
-#else  /* G_OS_WIN32 */
-	closesocket (sock);
-#endif /* G_OS_WIN32 */
-}
-
-LmSocketT
-_lm_sock_makesocket (int af,
-		     int type, 
-		     int protocol)
-{
-	int optval = 1;
-	int sock_fd = -1;
-    unsigned int optlen = sizeof(optval);
-    sock_fd = socket (af, type, protocol);
-    setsockopt(sock_fd,SOL_SOCKET,SO_REUSEADDR|SO_REUSEPORT,&optval,optlen);
-	
-	return (LmSocketT)sock_fd;
-}
-
-int 
-_lm_sock_connect (LmSocketT               sock, 
-		  const struct sockaddr *name, 
-		  int                    namelen)
-{
-	return connect (sock, name, namelen);
-}
-
-gboolean
-_lm_sock_is_blocking_error (int err)
-{
-#ifndef G_OS_WIN32
-	return (err == _LM_SOCK_EINPROGRESS);
-#else  /* G_OS_WIN32 */
-	return (err == _LM_SOCK_EINPROGRESS || 
-		err == _LM_SOCK_EWOULDBLOCK || 
-		err == _LM_SOCK_EINVAL);
-#endif /* G_OS_WIN32 */
-}
-
-gboolean
-_lm_sock_is_blocking_success (int err)
-{
-	//Bug fixed by MRT from week 50 devlong onwards
-	return (err == _LM_SOCK_EEXISTS);
-	//Error EEXIST = 17 is not expected here. But It should be mrt error 107
-	//fix take later
-	//Before week 50 SDK
-	//return (err == _LM_SOCK_EALREADY || err == _LM_SOCK_EISCONN);
-}
-
-int 
-_lm_sock_get_last_error (void)
-{
-#ifndef G_OS_WIN32
-	return errno;
-#else  /* G_OS_WIN32 */
-	return WSAGetLastError ();
-#endif /* G_OS_WIN32 */
-}
-
-void 
-_lm_sock_get_error (LmSocketT   sock, 
-		    void      *error, 
-		    socklen_t *len)
-{
-	getsockopt (sock, SOL_SOCKET, SO_ERROR, (void*) error, len);
-}
-
-const gchar *
-_lm_sock_get_error_str (int err)
-{
-#ifndef G_OS_WIN32
-	return strerror (err);
-#else  /* G_OS_WIN32 */
-	switch (err) {
-	case WSAEINTR:              return _("Connect interrupted and canceled");
-	case WSAEACCES:             return _("Permission denied"); 
-	case WSAEFAULT:             return _("Bad address");
-	case WSAEINVAL:             return _("Invalid argument");
-	case WSAEMFILE:             return _("Too many open sockets");
-	case WSAEWOULDBLOCK:        return _("Resource temporarily unavailable");
-	case WSAEINPROGRESS:        return _("Operation now in progress");
-	case WSAEALREADY:           return _("Operation already in progress");
-	case WSAENOTSOCK:           return _("Socket operation on nonsocket");
-	case WSAEDESTADDRREQ:       return _("Destination address required");
-	case WSAEMSGSIZE:           return _("Message too long");
-	case WSAEPROTOTYPE:         return _("Protocol wrong type for socket");
-	case WSAENOPROTOOPT:        return _("Bad protocol option");
-	case WSAEPROTONOSUPPORT:    return _("Protocol not supported");
-	case WSAESOCKTNOSUPPORT:    return _("Socket type not supported");
-	case WSAEOPNOTSUPP:         return _("Operation not supported");
-	case WSAEPFNOSUPPORT:       return _("Protocol family not supported");
-	case WSAEAFNOSUPPORT:       return _("Address family not supported by protocol family");
-	case WSAEADDRINUSE:         return _("Address already in use");
-	case WSAEADDRNOTAVAIL:      return _("Can not assign requested address");
-	case WSAENETDOWN:           return _("Network is down");
-	case WSAENETUNREACH:        return _("Network is unreachable");
-	case WSAENETRESET:          return _("Network dropped connection on reset");
-	case WSAECONNABORTED:       return _("Software caused connection abort");
-	case WSAECONNRESET:         return _("Connection reset by peer");
-	case WSAENOBUFS:            return _("No buffer space available");
-	case WSAEISCONN:            return _("Socket is already connected");
-	case WSAENOTCONN:           return _("Socket is not connected");
-	case WSAESHUTDOWN:          return _("Can not send after socket shutdown");
-	case WSAETIMEDOUT:          return _("Connection timed out");
-	case WSAECONNREFUSED:       return _("Connection refused");
-	case WSAEHOSTDOWN:          return _("Host is down");
-	case WSAEHOSTUNREACH:       return _("No route to host");
-	case WSAEPROCLIM:           return _("Too many processes");
-	case WSASYSNOTREADY:        return _("Network subsystem is unavailable");
-	case WSAVERNOTSUPPORTED:    return _("Winsock library version is out of range ");
-	case WSANOTINITIALISED:     return _("Successful WSAStartup not yet performed");
-	case WSAEDISCON:            return _("Graceful shutdown in progress");
-	case WSATYPE_NOT_FOUND:     return _("Class type not found");
-	case WSAHOST_NOT_FOUND:     return _("Host not found");
-	case WSATRY_AGAIN:          return _("Nonauthoritative host not found");
-	case WSANO_RECOVERY:        return _("This is a nonrecoverable error");
-	case WSANO_DATA:            return _("Valid name, no data record of requested type");
-	case WSA_INVALID_HANDLE:    return _("Specified event object handle is invalid");
-	case WSA_INVALID_PARAMETER: return _("One or more parameters are invalid");
-	case WSA_IO_INCOMPLETE:     return _("Overlapped I/O event object no in signaled state");
-	case WSA_IO_PENDING:        return _("Overlapped operations will complete later");
-	case WSA_NOT_ENOUGH_MEMORY: return _("Insufficient memory available");
-	case WSA_OPERATION_ABORTED: return _("Overlapped operation aborted");
-		/* os dependent */
-	case WSASYSCALLFAILURE:     return _("System call failure");
-	}
-	
-	return _("Unknown");
-#endif /* G_OS_WIN32 */
-}
-
-const gchar *
-_lm_sock_addrinfo_get_error_str (int err)
-{
-	switch (err) {
-	case EAI_AGAIN:    
-		return ("The nameserver failed to return an "
-			 "address, try again later");
-	case EAI_BADFLAGS: 
-		return ("Internal error trying to obtain remote address");
-	case EAI_FAIL:     
-		return ("The nameserver encountered errors "
-			 "looking up this address");
-	/* EAI_NODATA is apparently missing on FreeBSD. On recent GNU libc,
-	 * it requires _GNU_SOURCE to be defined; in the unlikely case that
-	 * that GNU libc returns this value we'll return the default message */
-#ifdef EAI_NODATA
-	case EAI_NODATA:   
-		return _("The remote host exists but no address "
-			 "is available");
-#endif
-	case EAI_NONAME:   
-		return ("The remote address is unknown");
-	case EAI_FAMILY:
-	case EAI_SERVICE:
-	case EAI_SOCKTYPE:
-		return ("The remote address is not obtainable "
-			 "for that socket type.");
-	default:
-		break;
-	}
-
-	return ("The remote address could not be obtained ");
-}
-
-#ifdef USE_TCP_KEEPALIVES
-gboolean
-_lm_sock_set_keepalive (LmSocketT sock, int delay)
-{
-	int opt;
-
-	lm_verbose ("[_lm_sock_set_keepalive]: USE_TCP_KEEPALIVES Enabled\n");
-		       
-	opt = 1;
-	if (setsockopt (sock, SOL_SOCKET, SO_KEEPALIVE, &opt, sizeof (opt)) < 0) {
-		return FALSE;
-	}
-
-	//opt = 3; /* 3 keepalives before considering connection dead */
-	/*if (setsockopt (sock, IPPROTO_TCP, TCP_KEEPCNT, &opt, sizeof (opt)) < 0) {
-		return FALSE;
-	}
-
-	opt = delay;
-	if (setsockopt (sock, IPPROTO_TCP, TCP_KEEPIDLE, &opt, sizeof (opt)) < 0) {
-		return FALSE;
-	}
-
-	opt = delay; 
-	if (setsockopt (sock, IPPROTO_TCP, TCP_KEEPINTVL, &opt, sizeof (opt)) < 0) {
-		return FALSE;
-	}*/
-	UNUSED_FORMAL_PARAM(delay);
-	return TRUE;
-}
-#endif /* USE_TCP_KEEPALIVES */
-
-gchar *
-_lm_sock_get_local_host (LmSocketT sock)
-{
-	struct sockaddr      addr_info;
-	void                *sock_addr;
-	socklen_t            namelen;
-	char                 addrbuf[IPV6_MAX_ADDRESS_LEN];
-	const char          *host;
-
-	namelen = sizeof (struct sockaddr);
-	if (getsockname (sock, &addr_info, &namelen)) {
-		return NULL;
-	}
-
-	switch (addr_info.sa_family) {
-		case AF_INET: 
-			
-			sock_addr = & (((struct sockaddr_in *) &addr_info)->sin_addr);
-			break;
-		case AF_INET6:
-			sock_addr = & (((struct sockaddr_in6 *) &addr_info)->sin6_addr);
-			break;
-		default:
-			return NULL;
-	}
-	/* inet_ntoa has been obsoleted in favour of inet_ntop */
-	host = inet_ntop (addr_info.sa_family,
-			  sock_addr,
-			  addrbuf,
-			  IPV6_MAX_ADDRESS_LEN);
-
-	return g_strdup (host);
-}
-
--- a/loudmouth/src/lm-socket.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1251 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2006 Imendio AB
- *  and/or its subsidiary/subsidiaries. All rights reserved.
- * Copyright (C) 2007 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-
-#include <string.h>
-#include <sys/types.h>
-
-/* Needed on Mac OS X */
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-/* Needed on Mac OS X */
-#if HAVE_ARPA_NAMESER_COMPAT_H
-#include <arpa/nameser_compat.h>
-#endif
-
-#include <arpa/nameser.h>
-#include <resolv.h>
-
-#include "lm-debug.h"
-#include "lm-internals.h"
-#include "lm-misc.h"
-#include "lm-ssl.h"
-#include "lm-ssl-internals.h"
-#include "lm-proxy.h"
-#include "lm-socket.h"
-#include "lm-sock.h"
-#include "lm-error.h"
-
-#ifdef HAVE_ASYNCNS
-#include <asyncns.h>
-#define freeaddrinfo(x) asyncns_freeaddrinfo(x)
-#endif
-
-#define IN_BUFFER_SIZE 1024
-#define MIN_PORT 1
-#define MAX_PORT 65536
-//#define SRV_LEN 8192
-#define SRV_LEN 512 // check the actual value needed here! - meco
-
-struct _LmSocket {
-	LmConnection *connection;
-	GMainContext *context;
-
-	gchar        *domain;
-	gchar        *server;
-	guint         port;
-
-	gboolean      blocking;
-
-	LmSSL        *ssl;
-	gboolean      ssl_started;
-	LmProxy      *proxy;
-
-	GIOChannel   *io_channel;
-	GSource      *watch_in;
-	GSource      *watch_err;
-	GSource      *watch_hup;
-
-	LmSocketT      fd;
-
-	GSource      *watch_connect;
-
-	gboolean      cancel_open;
-	
-	GSource      *watch_out;
-	GString      *out_buf;
-
-	LmConnectData *connect_data;
-
-	IncomingDataFunc data_func;
-	SocketClosedFunc closed_func;
-	ConnectResultFunc connect_func;
-	gpointer         user_data;
-
-	guint          ref_count;
-
-#ifdef HAVE_ASYNCNS
-	GSource		*watch_resolv;
-	asyncns_query_t *resolv_query;
-	asyncns_t	*asyncns_ctx;
-	GIOChannel	*resolv_channel;
-#endif
-}; 
-
-static void         socket_free               (LmSocket       *socket);
-static gboolean     socket_do_connect         (LmConnectData  *connect_data);
-static gboolean     socket_connect_cb         (GIOChannel     *source, 
-					       GIOCondition    condition,
-					       LmConnectData  *connect_data);
-static gboolean     socket_in_event           (GIOChannel     *source,
-					       GIOCondition    condition,
-					       LmSocket       *socket);
-static gboolean     socket_hup_event          (GIOChannel     *source,
-					       GIOCondition    condition,
-					       LmSocket       *socket);
-static gboolean     socket_error_event        (GIOChannel     *source,
-					       GIOCondition    condition,
-					       LmSocket       *socket);
-static gboolean     socket_buffered_write_cb  (GIOChannel     *source, 
-					       GIOCondition    condition,
-					       LmSocket       *socket);
-static gboolean     socket_parse_srv_response (unsigned char  *srv, 
-					       int             srv_len, 
-					       gchar         **out_server, 
-					       guint          *out_port);
-static void         socket_close_io_channel   (GIOChannel     *io_channel);
-
-static void
-socket_free (LmSocket *socket)
-{
-	g_free (socket->server);
-	g_free (socket->domain);
-
-	if (socket->ssl) {
-		lm_ssl_unref (socket->ssl);
-	}
-
-	if (socket->proxy) {
-		lm_proxy_unref (socket->proxy);
-	}
-	
-	if (socket->out_buf) {
-		g_string_free (socket->out_buf, TRUE);
-	}
-
-	g_free (socket);
-}
-
-gint
-lm_socket_do_write (LmSocket *socket, const gchar *buf, gint len)
-{
-	gint b_written;
-	gint err;
-	if (socket->ssl_started) {
-		b_written = _lm_ssl_send (socket->ssl, buf, len);
-	} else {
-		GIOStatus io_status = G_IO_STATUS_AGAIN;
-		gsize     bytes_written;
-
-		while (io_status == G_IO_STATUS_AGAIN) {
-			io_status = g_io_channel_write_chars (socket->io_channel, 
-							      buf, len, 
-							      &bytes_written,
-							      NULL);
-		}
-
-		b_written = bytes_written;
-
-		if (io_status != G_IO_STATUS_NORMAL) {
-			b_written = -1;
-		}
-	}
-
-	err = _lm_sock_get_last_error ();
-	lm_verbose("[lm_socket_do_write]: socket write last error: %d\n\n",err);
-	return b_written;
-}
-
-static gboolean
-socket_read_incoming (LmSocket *socket,
-		      gchar    *buf,
-		      gsize     buf_size,
-		      gsize    *bytes_read,
-		      gboolean *hangup,
-		      gint     *reason)
-{
-	GIOStatus status;
-
-	*hangup = FALSE;
-
-	if (socket->ssl_started) {
-		status = _lm_ssl_read (socket->ssl, 
-				       buf, buf_size - 1, bytes_read);
-	} else {
-		status = g_io_channel_read_chars (socket->io_channel,
-						  buf, buf_size - 1,
-						  bytes_read,
-						  NULL);
-	}
-
-//added by prima
-	if (status != G_IO_STATUS_NORMAL ) {
-		switch (status) {
-		case G_IO_STATUS_EOF:
-			*reason = LM_DISCONNECT_REASON_HUP;
-			break;
-		case G_IO_STATUS_AGAIN:
-			/* No data readable but we didn't hangup */
-			return FALSE;
-		//	break;
-		case G_IO_STATUS_ERROR:
-			*reason = LM_DISCONNECT_REASON_ERROR;
-			break;
-		default:
-			*reason = LM_DISCONNECT_REASON_UNKNOWN;
-		}
-
-		/* Notify connection_in_event that we hangup the connection */
-		*hangup = TRUE;
-		
-		return FALSE;
-	}
-
-	if(*bytes_read>0)
-		{
-		buf[*bytes_read] = '\0';	
-		return TRUE;
-		}	
-
-	/* There is more data to be read */
-	return FALSE;
-	//return TRUE;
-}
-
-static gboolean
-socket_in_event (GIOChannel   *source,
-		     GIOCondition  condition,
-		     LmSocket     *socket)
-{
-	gchar     buf[IN_BUFFER_SIZE];
-	gsize     bytes_read = 0;
-	gboolean  read_anything = FALSE;
-	gboolean  hangup = 0;
-	gint      reason = 0;
-
-	if (!socket->io_channel) {
-		lm_verbose ( "[socket_in_event]:Error in io_channel\n");
-		return FALSE;
-	}
-
-	while (/*(condition & G_IO_IN) && */socket_read_incoming (socket, buf, IN_BUFFER_SIZE, 
-				     &bytes_read, &hangup, &reason)) {
-		
-		//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET, "\nRECV [%d]:\n", 
-		//       (int)bytes_read);
-		//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET, 
-		//       "-----------------------------------\n");
-		//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET, "'%s'\n", buf);
-		//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET, 
-		//       "-----------------------------------\n");
-		
-		lm_verbose ("\n[socket_in_event]: RECV [%d]:\n", (int)bytes_read);
-		lm_verbose ("-----------------------------------\n");
-		lm_verbose ("'%s'\n", buf);
-		lm_verbose ( "-----------------------------------\n");
-		lm_verbose ("Read: %d chars\n", (int)bytes_read);
-
-		(socket->data_func) (socket, buf, socket->user_data);
-
-		read_anything = TRUE;
-
-		//condition = g_io_channel_get_buffer_condition (socket->io_channel);
-	}
-
-	/* If we have read something, delay the hangup so that the data can be
-	 * processed. */
-	if (hangup && !read_anything) {
-		(socket->closed_func) (socket, reason, socket->user_data);
-		lm_verbose ( "[socket_in_event]:Error in hangup && !read_anything\n");
-		return FALSE;
-	}
-lm_verbose ( "[socket_in_event]:Returning TRUE\n");
-	return TRUE;
-}
-	
-static gboolean
-socket_hup_event (GIOChannel   *source,
-		      GIOCondition  condition,
-		      LmSocket     *socket)
-{
-	lm_verbose ("HUP event: %d->'%s'\n", 
-		    condition, lm_misc_io_condition_to_str (condition));
-
-	if (!socket->io_channel) {
-		return FALSE;
-	}
-
-	(socket->closed_func) (socket, LM_DISCONNECT_REASON_HUP, 
-			       socket->user_data);
-	
-	return TRUE;
-}
-
-static gboolean
-socket_error_event (GIOChannel   *source,
-		    GIOCondition  condition,
-		    LmSocket     *socket)
-{
-	gint err =0;
-	lm_verbose ("[socket_error_event]: ERROR event: %d->'%s'\n", 
-		    condition, lm_misc_io_condition_to_str (condition));
-
-	err = _lm_sock_get_last_error ();
-	lm_verbose("[socket_error_event]: socket write last error: %d\n\n",err);
-	if (!socket->io_channel) {
-		return FALSE;
-	}
-
-	(socket->closed_func) (socket, LM_DISCONNECT_REASON_ERROR, 
-			       socket->user_data);
-	
-	return TRUE;
-}
-
-static gboolean
-_lm_socket_ssl_init (LmSocket *socket, gboolean delayed)
-{
-	GError *error = NULL;
-	const gchar *ssl_verify_domain = NULL;
-
-	lm_verbose ("[_lm_socket_ssl_init] Setting up SSL...\n");
-
-	_lm_ssl_initialize (socket->ssl);
-
-#ifdef HAVE_GNUTLS
-	/* GNU TLS requires the socket to be blocking */
-	_lm_sock_set_blocking (socket->fd, TRUE);
-#endif
-
-	/* If we're using StartTLS, the correct thing is to verify against
-	 * the domain. If we're using old SSL, we should verify against the
-	 * hostname. */
-	if (delayed)
-		ssl_verify_domain = socket->domain;
-	else
-		ssl_verify_domain = socket->server;
-	
-	if (!_lm_ssl_begin (socket->ssl, socket->fd, ssl_verify_domain, &error)) {
-		lm_verbose ("Could not begin SSL\n");
-
-		if (error) {
-			/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET,
-				"%s\n", error->message);
-			*/
-			lm_verbose("[_lm_socket_ssl_init]: %s\n", error->message);
-				g_error_free (error);
-		}
-		lm_verbose("\n[_lm_socket_ssl_init]: shutting down the socket");
-		_lm_sock_shutdown (socket->fd);
-		_lm_sock_close (socket->fd);
-
-		if (!delayed && socket->connect_func) {
-			lm_verbose("\n[_lm_socket_ssl_init]: calling the socket connect callback if ssl begin failed");
-			(socket->connect_func) (socket, FALSE, socket->user_data);
-		}
-		
-		return FALSE;
-	}
-
-#ifdef HAVE_GNUTLS
-	_lm_sock_set_blocking (socket->fd, FALSE); 
-#endif
-
-	socket->ssl_started = TRUE;
-
-  return TRUE;
-}
-
-gboolean
-lm_socket_starttls (LmSocket *socket)
-{
-	g_return_val_if_fail (lm_ssl_get_use_starttls (socket->ssl) == TRUE, FALSE);
-
-	return _lm_socket_ssl_init (socket, TRUE);
-}
-
-
-
-void
-_lm_socket_succeeded (LmConnectData *connect_data)
-{
-	LmSocket     *socket;
-	
-	socket = connect_data->socket;
-
-	lm_verbose ("\n[_lm_socket_succeeded]:inside.. \n");
-	if (socket->watch_connect) {
-		g_source_destroy (socket->watch_connect);
-		socket->watch_connect = NULL;
-	}
-
-	/* Need some way to report error/success */
-	if (socket->cancel_open) {
-		lm_verbose ("Cancelling connection...\n");
-		if (socket->connect_func) {
-			(socket->connect_func) (socket, FALSE, socket->user_data);
-		}
-		return;
-	}
-	
-	socket->fd = connect_data->fd;
-	socket->io_channel = connect_data->io_channel;
-
-	freeaddrinfo (connect_data->resolved_addrs);
-	socket->connect_data = NULL;
-	g_free (connect_data);
-
-	/* old-style ssl should be started immediately */
-	if (socket->ssl && (lm_ssl_get_use_starttls (socket->ssl) == FALSE)) {
-		if (!_lm_socket_ssl_init (socket, FALSE)) {
-			return;
-		}
-	}
-
-	socket->watch_in = 
-		lm_misc_add_io_watch (socket->context,
-				      socket->io_channel,
-				      G_IO_IN,
-				      (GIOFunc) socket_in_event,
-				      socket);
-
-	/* FIXME: if we add these, we don't get ANY
-	 * response from the server, this is to do with the way that
-	 * windows handles watches, see bug #331214.
-	 */
-#ifndef G_OS_WIN32
-	socket->watch_err = 
-		lm_misc_add_io_watch (socket->context,
-				      socket->io_channel,
-				      G_IO_ERR,
-				      (GIOFunc) socket_error_event,
-				      socket);
-		
-	socket->watch_hup =
-		lm_misc_add_io_watch (socket->context,
-				      socket->io_channel,
-				      G_IO_HUP,
-				      (GIOFunc) socket_hup_event,
-				      socket);
-#endif
-
-	if (socket->connect_func) {
-		(socket->connect_func) (socket, TRUE, socket->user_data);
-	}
-}
-
-gboolean 
-_lm_socket_failed_with_error (LmConnectData *connect_data, int error) 
-{
-	LmSocket *socket;
-	
-	/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET,
-	       "Connection failed: %s (error %d)\n",
-	       _lm_sock_get_error_str (error), error);*/
-	lm_verbose( "[_lm_socket_failed_with_error]: Connection failed: %s (error %d)\n",_lm_sock_get_error_str (error), error);
-	
-	socket = lm_socket_ref (connect_data->socket);
-
-	connect_data->current_addr = connect_data->current_addr->ai_next;
-	
-	if (socket->watch_connect) {
-		g_source_destroy (socket->watch_connect);
-		socket->watch_connect = NULL;
-	}
-
-	if (connect_data->io_channel != NULL) {
-		socket_close_io_channel (connect_data->io_channel);
-	}
-	
-	if (connect_data->current_addr == NULL) {
-		if (socket->connect_func) {
-			(socket->connect_func) (socket, FALSE, socket->user_data);
-		}
-		lm_verbose("\n\n[_lm_socket_failed_with_error]: connect_data->current_addr ==NULL");
-		 /* if the user callback called connection_close(), this is already freed */
-		if (socket->connect_data != NULL) {
-			freeaddrinfo (connect_data->resolved_addrs);
-			socket->connect_data = NULL;
-			g_free (connect_data);
-		}
-	} else {
-		/* try to connect to the next host */
-		lm_verbose("\n\n[_lm_socket_failed_with_error]: !!!!Trying to connect to the next host after socket connect failed with error\n");
-		return socket_do_connect (connect_data);
-	}
-
-	lm_socket_unref(socket);
-
-	return FALSE;
-}
-
-gboolean 
-_lm_socket_failed (LmConnectData *connect_data)
-{
-	return _lm_socket_failed_with_error (connect_data,
-                                       _lm_sock_get_last_error());
-}
-
-static gboolean 
-socket_connect_cb (GIOChannel   *source, 
-		       GIOCondition  condition,
-		       LmConnectData *connect_data) 
-{
-	LmSocket        *socket;
-	struct addrinfo *addr;
-	int              err;
-	socklen_t        len;
-	LmSocketT        fd;
-	gboolean         result = FALSE;
-
-	socket = lm_socket_ref (connect_data->socket);
-	addr = connect_data->current_addr;
-	fd = g_io_channel_unix_get_fd (source);
-	lm_verbose("\n[socket_connect_cb]: Inside socket_connect_cb\n");
-	if (condition == G_IO_ERR) {
-		len = sizeof (err);
-		_lm_sock_get_error (fd, &err, &len);
-		if (!_lm_sock_is_blocking_error (err)) {
-			/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET,
-			       "Connection failed.\n");*/
-			lm_verbose( "[socket_conect_cb]: Connection failed.\n");
-
-			/* error condition, but might be possible to recover
-			 * from it (by connecting to the next host) */
-			if (!_lm_socket_failed_with_error (connect_data, err)) {
-				socket->watch_connect = NULL;
-				goto out;
-			}
-		}
-	}
-
-	if (_lm_connection_async_connect_waiting (socket->connection)) {
-		gint res;
-
-		fd = g_io_channel_unix_get_fd (source);
-		lm_verbose("\n[socket_conect_cb]: Async waiting calling _lm_sock_connect again\n");
-		res = _lm_sock_connect (fd, addr->ai_addr, (int)addr->ai_addrlen);  
-		if (res < 0) {
-			err = _lm_sock_get_last_error ();
-			if (_lm_sock_is_blocking_success (err)) {
-				_lm_connection_set_async_connect_waiting (socket->connection, FALSE);
-
-				/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET,
-				       "Connection success (1).\n");*/
-				lm_verbose("[socket_connect_cb]: connection success");
-				_lm_socket_succeeded (connect_data);
-			}
-			
-			if (_lm_connection_async_connect_waiting (socket->connection) &&
-			    !_lm_sock_is_blocking_error (err)) {
-				/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET,
-				       "Connection failed.\n");*/
-				lm_verbose("[socket_conect_cb]: connection failed");
-				_lm_sock_close (connect_data->fd);
-				_lm_socket_failed_with_error (connect_data, err);
-
-				socket->watch_connect = NULL;
-				goto out;
-			}
-		} 
-	} else {		
-		/* for blocking sockets, G_IO_OUT means we are connected */
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET,
-		       "Connection success (2).\n");*/
-		lm_verbose("[socket_conect_cb]: Connection success (2).\n");
-		_lm_socket_succeeded (connect_data);
-	}
-
-	result = TRUE;
-
- out:
-	lm_socket_unref(socket);
-	
- 	return result; 
-}
-
-static gboolean
-socket_do_connect (LmConnectData *connect_data) 
-{
-	LmSocket        *socket;
-	LmSocketT        fd;
-	int              res, err;
-	int              port;
-	char             name[NI_MAXHOST];
-	char             portname[NI_MAXSERV];
-	struct addrinfo *addr;
-	
-	socket = connect_data->socket;
-	addr = connect_data->current_addr;
- 
-	if (socket->proxy) {
-		port = htons (lm_proxy_get_port (socket->proxy));
-	} else {
-		port = htons (socket->port);
-	}
-	
-	((struct sockaddr_in *) addr->ai_addr)->sin_port = port;
-
-	res = getnameinfo (addr->ai_addr,
-			   (socklen_t)addr->ai_addrlen,
-			   name,     sizeof (name),
-			   portname, sizeof (portname),
-			   NI_NUMERICHOST | NI_NUMERICSERV);
-	
-	if (res < 0) {
-		return _lm_socket_failed (connect_data);
-	}
-
-	/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET,
-	       "Trying %s port %s...\n", name, portname);*/
-	lm_verbose("[socket_do_connect]: Trying %s port %s...\n", name, portname);
-	lm_verbose("[socket_do_connect]: calling make socket\n");
-	fd = _lm_sock_makesocket (addr->ai_family,
-				  addr->ai_socktype, 
-				  addr->ai_protocol);
-	lm_verbose("[socket_do_connet]: called make socket and fd");
-	lm_verbose("[socket_do_connect]: The value of FD is :%d",fd);
-	if (!_LM_SOCK_VALID (fd)) {
-		/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET, 
-		       "Failed making socket, error:%d...\n",
-		       _lm_sock_get_last_error ());*/
-		lm_verbose( "[socket_do_connect]: Failed making socket, error:[%d]...\n", _lm_sock_get_last_error ());
-
-		return _lm_socket_failed (connect_data);
-	}
-
-	/* Even though it says _unix_new(), it is supported by glib on
-	 * win32 because glib does some cool stuff to find out if it
-	 * can treat it as a FD or a windows SOCKET.
-	 */
-	connect_data->fd = fd;
-	connect_data->io_channel = g_io_channel_unix_new (fd);
-	
-	g_io_channel_set_encoding (connect_data->io_channel, NULL, NULL);
-	g_io_channel_set_buffered (connect_data->io_channel, FALSE);
-
-	//_lm_sock_set_blocking (connect_data->fd, socket->blocking);
-	
-	if (socket->proxy) {
-		socket->watch_connect =
-			lm_misc_add_io_watch (socket->context,
-					      connect_data->io_channel,
-					      G_IO_OUT|G_IO_ERR,
-					      (GIOFunc) _lm_proxy_connect_cb, 
-					      connect_data);
-	} else {
-		socket->watch_connect =
-			lm_misc_add_io_watch (socket->context,
-					      connect_data->io_channel,
-					      G_IO_OUT|G_IO_ERR,
-					      (GIOFunc) socket_connect_cb,
-					      connect_data);
-	}
-
-	_lm_connection_set_async_connect_waiting (socket->connection, !socket->blocking);
-	lm_verbose("\n[socket_do_connect]: calling _lm_sock_connect\n");
-  	_lm_sock_set_blocking (connect_data->fd, TRUE); //prima
-  	errno =0;
-  	res = _lm_sock_connect (connect_data->fd, 
-				addr->ai_addr, (int)addr->ai_addrlen);  
-	err = _lm_sock_get_last_error (); 
-	lm_verbose("[socket_do_connect]: socket connect last error: [%d]\n",err);
-	if (res < 0) {
-		//err = _lm_sock_get_last_error ();
-		lm_verbose("[socket_do_connect]: socket connect last error: %d\n",err);
-		if (!_lm_sock_is_blocking_error (err)) {
-			_lm_sock_close (connect_data->fd);
-			return _lm_socket_failed_with_error (connect_data, err);
-		}
-	}
-	_lm_sock_set_blocking (connect_data->fd, FALSE);//prima
-	return TRUE;
-}
-
-gboolean
-lm_socket_output_is_buffered (LmSocket     *socket,
-			       const gchar  *buffer,
-			       gint          len)
-{
-	if (socket->out_buf) {
-		lm_verbose ("Appending %d bytes to output buffer\n", len);
-		g_string_append_len (socket->out_buf, buffer, len);
-		return TRUE;
-	}
-
-	return FALSE;
-}
-
-void
-lm_socket_setup_output_buffer (LmSocket *socket, const gchar *buffer, gint len)
-{
-	lm_verbose ("OUTPUT BUFFER ENABLED\n");
-
-	socket->out_buf = g_string_new_len (buffer, len);
-
-	socket->watch_out =
-		lm_misc_add_io_watch (socket->context,
-				      socket->io_channel,
-				      G_IO_OUT,
-				      (GIOFunc) socket_buffered_write_cb,
-				      socket);
-}
-
-static gboolean
-socket_buffered_write_cb (GIOChannel   *source, 
-			  GIOCondition  condition,
-			  LmSocket     *socket)
-{
-	gint     b_written;
-	GString *out_buf;
-	/* FIXME: Do the writing */
-
-	out_buf = socket->out_buf;
-	if (!out_buf) {
-		/* Should not be possible */
-		return FALSE;
-	}
-
-	b_written = lm_socket_do_write (socket, out_buf->str, out_buf->len);
-
-	if (b_written < 0) {
-		(socket->closed_func) (socket, LM_DISCONNECT_REASON_ERROR, 
-				       socket->user_data);
-		return FALSE;
-	}
-
-	g_string_erase (out_buf, 0, (gsize) b_written);
-	if (out_buf->len == 0) {
-		lm_verbose ("Output buffer is empty, going back to normal output\n");
-
-		if (socket->watch_out) {
-			g_source_destroy (socket->watch_out);
-			socket->watch_out = NULL;
-		}
-
-		g_string_free (out_buf, TRUE);
-		socket->out_buf = NULL;
-		return FALSE;
-	}
-
-	return TRUE;
-}
-
-static gboolean
-socket_parse_srv_response (unsigned char  *srv, 
-			   int             srv_len, 
-			   gchar         **out_server, 
-			   guint          *out_port)
-{
-/*	int                  qdcount;
-	int                  ancount;
-	int                  len;
-	const unsigned char *pos;
-	unsigned char       *end;
-	HEADER              *head;
-	char                 name[256];
-	char                 pref_name[256];
-	guint                pref_port = 0;
-	guint                pref_prio = 9999;
-
-	pref_name[0] = 0;
-
-	pos = srv + sizeof (HEADER);
-	end = srv + srv_len;
-	head = (HEADER *) srv;
-
-	qdcount = ntohs (head->qdcount);
-	ancount = ntohs (head->ancount);
-
-	// Ignore the questions 
-	while (qdcount-- > 0 && (len = dn_expand (srv, end, pos, name, 255)) >= 0) {
-		g_assert (len >= 0);
-		pos += len + QFIXEDSZ;
-	}
-
-	// Parse the answers 
-	while (ancount-- > 0 && (len = dn_expand (srv, end, pos, name, 255)) >= 0) {
-		// Ignore the initial string 
-		uint16_t pref, weight, port;
-
-		g_assert (len >= 0);
-		pos += len;
-		// Ignore type, ttl, class and dlen 
-		pos += 10;
-		GETSHORT (pref, pos);
-		GETSHORT (weight, pos);
-		GETSHORT (port, pos);
-
-		len = dn_expand (srv, end, pos, name, 255);
-		if (pref < pref_prio) {
-			pref_prio = pref;
-			strcpy (pref_name, name);
-			pref_port = port;
-		}
-		pos += len;
-	}
-
-	if (pref_name[0]) {
-		*out_server = g_strdup (pref_name);
-		*out_port = pref_port;
-		return TRUE;
-	} */
-	return FALSE;
-}
-
-static void
-socket_close_io_channel (GIOChannel *io_channel)
-{
-	gint fd;
-
-	g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET, 
-	       "Freeing up IOChannel and file descriptor\n");
-
-	fd = g_io_channel_unix_get_fd (io_channel);
-
-	g_io_channel_unref (io_channel);
-
-	_lm_sock_close (fd);
-}
-
-static void
-_lm_socket_create_phase1 (LmSocket *socket, unsigned char *srv_ans, int len);
-static void
-_lm_socket_create_phase2 (LmSocket *socket, struct addrinfo *ans);
-
-#ifdef HAVE_ASYNCNS
-#define PHASE_1 0
-#define PHASE_2 1
-
-static gboolean
-_lm_socket_resolver_done (GSource *source,
-    			  GIOCondition condition,
-			  gpointer data);
-
-
-static void
-_asyncns_done (LmSocket *socket)
-{
-	if (socket->resolv_channel != NULL) {
-		g_io_channel_unref (socket->resolv_channel);
-		socket->resolv_channel = NULL;
-	}
- 
-	if (socket->watch_resolv) {
-		g_source_destroy(socket->watch_resolv);
-		socket->watch_resolv = NULL;
-	}
-
-	if (socket->asyncns_ctx) {
-		asyncns_free (socket->asyncns_ctx);
-		socket->asyncns_ctx = NULL;
-	}
-
- 	socket->resolv_query = NULL;
-}
-
-void _asyncns_cancel (LmSocket *socket)
-{
-	if (socket == NULL)
-		return;
-
-	if (socket->asyncns_ctx) {
-		if (socket->resolv_query)
-			asyncns_cancel (socket->asyncns_ctx, socket->resolv_query);
-
-		_asyncns_done (socket);
-	}
-}
-
-static gboolean
-_asyncns_prep (LmSocket *socket, GError **error)
-{
-	if (socket->asyncns_ctx) {
-		return TRUE;
-	}
-
-	socket->asyncns_ctx = asyncns_new (1);
-	if (socket->asyncns_ctx == NULL) {
-		g_set_error (error,
-				LM_ERROR,                 
-				LM_ERROR_CONNECTION_FAILED,   
-				"can't initialise libasyncns");
-		return FALSE;
-	}
-
-	socket->resolv_channel =
-		g_io_channel_unix_new (asyncns_fd (socket->asyncns_ctx));
-
-	socket->watch_resolv = 
-		lm_misc_add_io_watch (socket->context,
-				      socket->resolv_channel,
-				      G_IO_IN,
-				      (GIOFunc) _lm_socket_resolver_done,
-				      socket);
-
-	return TRUE;
-}
-
-static gboolean
-_lm_socket_resolver_done (GSource *source,
-    			  GIOCondition condition,
-			  gpointer data)
-{
-	LmSocket	*socket = lm_socket_ref ((LmSocket *) data);
-	struct addrinfo	*ans;
-	unsigned char   *srv_ans;
-	int 		 err;
-	gboolean         result = FALSE;
-
-	/* process pending data */
-	asyncns_wait (socket->asyncns_ctx, FALSE);
-
-	if (!asyncns_isdone (socket->asyncns_ctx, socket->resolv_query)) {
-		result = TRUE;
-	} else {
-		switch ((guint) asyncns_getuserdata (socket->asyncns_ctx, socket->resolv_query)) {
-		case PHASE_1:
-			err = asyncns_res_done (socket->asyncns_ctx, socket->resolv_query, &srv_ans);
-			socket->resolv_query = NULL;
-			_lm_socket_create_phase1 (socket, (err <= 0) ? NULL : srv_ans, err);
-			result = TRUE;
-			break;
-		case PHASE_2:
-			err = asyncns_getaddrinfo_done (socket->asyncns_ctx, socket->resolv_query, &ans);
-			socket->resolv_query = NULL;
-			_lm_socket_create_phase2 (socket, (err) ? NULL : ans);
-			_asyncns_done (socket);
-			break;
-		default:
-			g_assert_not_reached();
-			break;
-		}
-	}
-
-	lm_socket_unref(socket);
-	
-	return result;
-}
-
-#endif
-
-static void
-_lm_socket_create_phase1 (LmSocket *socket,
-			  unsigned char *srv_ans,
-			  int len)
-{
-	const char          *remote_addr;
-	LmConnectData       *data;
-	struct addrinfo      req;
-#ifndef HAVE_ASYNCNS
-	struct addrinfo *ans;
-	int              err;
-#endif
-
-	if (srv_ans != NULL) {
-		gchar    *new_server;
-		guint     new_port;
-		gboolean  result;
-		result = socket_parse_srv_response (srv_ans, len, 
-						    &new_server, 
-						    &new_port);
-		if (result == TRUE) {
-			g_free (socket->server);
-			socket->server = new_server;
-			socket->port = new_port;
-		}
-	}
-
-	/* If server wasn't specified and SRV failed, use domain */
-	if (!socket->server) {
-		lm_verbose ("SRV lookup failed, trying jid domain\n");
-		socket->server = g_strdup (socket->domain);
-	}
-
-	if (socket->proxy) {
-		remote_addr = lm_proxy_get_server (socket->proxy);
-	} else {
-		remote_addr = socket->server;
-	}
-
-	/*g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_NET,
-	       "Going to connect to %s%s:%u\n", (socket->proxy) ? "proxy " : "",
-	       remote_addr, socket->port);*/
-	lm_verbose( "[_lm_socket_create_phase1]: Going to connect to %s%s:%u\n", (socket->proxy) ? "proxy " : "",
-	       remote_addr, socket->port);
-
-	data = g_new0 (LmConnectData, 1);
-
-	data->socket        = socket;
-	data->connection    = socket->connection;
-	data->fd            = -1;
-	socket->connect_data = data;
-
-	memset (&req, 0, sizeof(req));
-	req.ai_family   = AF_UNSPEC;
-	req.ai_socktype = SOCK_STREAM;
-	req.ai_protocol = IPPROTO_TCP;
-
-#ifdef HAVE_ASYNCNS
-	if (!_asyncns_prep (socket, NULL))
-		return;
-
-	socket->resolv_query =
-	  	asyncns_getaddrinfo (socket->asyncns_ctx,
-		    		     remote_addr,
-				     NULL,
-				     &req);
-
-	asyncns_setuserdata (socket->asyncns_ctx,
-			     socket->resolv_query,
-			     (gpointer) PHASE_2);
-#else
-	err = getaddrinfo (remote_addr, NULL, &req, &ans);
-	lm_verbose( "[_lm_socket_create_phase1]: after getaddrinfo : %u\n", err);
-	_lm_socket_create_phase2 (socket, (err) ? NULL : ans);
-	if (err != 0) {
-		return;
-	}
-#endif
-}
-
-static void
-_lm_socket_create_phase2 (LmSocket *socket, struct addrinfo *ans)
-{
-	if (ans == NULL) {
-		lm_verbose ("error while resolving, bailing out\n");
-		if (socket->connect_func) {
-			(socket->connect_func) (socket, FALSE, socket->user_data);
-		}
-		g_free (socket->connect_data);
-		socket->connect_data = NULL;
-		return;
-	}
-
-	socket->connect_data->resolved_addrs = ans;
-	socket->connect_data->current_addr   = ans;
-
-	socket_do_connect (socket->connect_data);
-}
-
-LmSocket *
-lm_socket_create (GMainContext      *context,
-		  IncomingDataFunc   data_func,
-		  SocketClosedFunc   closed_func,
-		  ConnectResultFunc  connect_func,
-		  gpointer           user_data,
-		  LmConnection      *connection,
-		  gboolean           blocking,
-		  const gchar       *server,
-		  const gchar       *domain,
-		  guint              port, 
-		  LmSSL             *ssl,
-		  LmProxy           *proxy,
-		  GError           **error)
-{
-	LmSocket        *socket;
-
-#ifndef HAVE_ASYNCNS
-	unsigned char    srv_ans[SRV_LEN];
-	int              len;
-#endif
-	lm_verbose ("[lm_socket_create]: inside..");
-	
-	g_return_val_if_fail (domain != NULL, NULL);
-	g_return_val_if_fail ((port >= MIN_PORT && port <= MAX_PORT), NULL);
-	g_return_val_if_fail (data_func != NULL, NULL);
-	g_return_val_if_fail (closed_func != NULL, NULL);
-	g_return_val_if_fail (connect_func != NULL, NULL);
-
-	
-	socket = g_new0 (LmSocket, 1);
-	lm_verbose ("[lm_socket_create]: after g_new0 ");
-
-	socket->ref_count = 1;
-
-	socket->connection = connection;
-	socket->domain = g_strdup (domain);
-	socket->server = g_strdup (server);
-	socket->port = port;
-	socket->cancel_open = FALSE;
-	socket->ssl = ssl;
-	socket->ssl_started = FALSE;
-	socket->proxy = NULL;
-	socket->blocking = blocking;
-
-	if (context) {
-		socket->context = g_main_context_ref (context);
-	}
-
-	if (proxy) {
-		socket->proxy = lm_proxy_ref (proxy);
-	}
-
-	if (!server) {
-		/*char          *srv;
-		srv = g_strdup_printf ("_xmpp-client._tcp.%s", socket->domain);
-		lm_verbose ("Performing a SRV lookup for %s\n", srv);
-
-#ifdef HAVE_ASYNCNS
-		if (!_asyncns_prep (socket, error))
-			return NULL;
-		
-		socket->resolv_query =
-			asyncns_res_query (socket->asyncns_ctx, srv, C_IN, T_SRV);
-		asyncns_setuserdata (socket->asyncns_ctx, socket->resolv_query, (gpointer) PHASE_1);
-#else
-		res_init ();
-
-		len = res_query (srv, C_IN, T_SRV, srv_ans, SRV_LEN);
-		_lm_socket_create_phase1 (socket, (len < 1) ? NULL : srv_ans, len);
-		g_free (srv);
-#endif*/
-	} else {
-		lm_verbose ("SRV lookup disabled for %s\n", socket->server);
-		_lm_socket_create_phase1 (socket, NULL, 0);
-	}
-
-	if (socket->connect_data == NULL) {
-		/* Open failed synchronously, probably a DNS lookup problem */
-		lm_socket_unref(socket);
-		
-		g_set_error (error,
-			     LM_ERROR,                 
-			     LM_ERROR_CONNECTION_FAILED,   
-			     "Failed to resolve server");
-		
-		return NULL;
-	}
-		
-
-	/* If the connection fails synchronously, we don't want to call the
-	 * connect_func to indicate an error, we return an error indication
-	 * instead. So, we delay saving the functions until after we know
-	 * we are going to return success.
-	 */
-	socket->data_func = data_func;
-	socket->closed_func = closed_func;
-	socket->connect_func = connect_func;
-	socket->user_data = user_data;
-	
-	return socket;
-}
-
-void
-lm_socket_flush (LmSocket *socket)
-{
-	g_return_if_fail (socket != NULL);
-	g_return_if_fail (socket->io_channel != NULL);
-
-	g_io_channel_flush (socket->io_channel, NULL);
-}
-
-void
-lm_socket_close (LmSocket *socket)
-{
-	LmConnectData *data;
-	int ret = 0;
-	g_return_if_fail (socket != NULL);
-
-	if (socket->watch_connect) {
-		g_source_destroy (socket->watch_connect);
-		socket->watch_connect = NULL;
-	}
-	
-	_lm_sock_close(socket->fd);
-	data = socket->connect_data;
-	ret = errno; lm_verbose("\n\n[lm_socket_close]: The errno after close fd is: %d",ret);
-	if (data) {
-		freeaddrinfo (data->resolved_addrs);
-		socket->connect_data = NULL;
-		g_free (data);
-	}
-
-	if (socket->io_channel) {
-		if (socket->watch_in) {
-			g_source_destroy (socket->watch_in);
-			socket->watch_in = NULL;
-		}
-
-		if (socket->watch_err) {
-			g_source_destroy (socket->watch_err);
-			socket->watch_err = NULL;
-		}
-
-		if (socket->watch_hup) {
-			g_source_destroy (socket->watch_hup);
-			socket->watch_hup = NULL;
-		}
-
-		if (socket->watch_out) {
-			g_source_destroy (socket->watch_out);
-			socket->watch_out = NULL;
-		}
-
-		socket_close_io_channel (socket->io_channel);
-
-		socket->io_channel = NULL;
-		socket->fd = -1;
-	}
-}
-
-gchar *
-lm_socket_get_local_host (LmSocket *socket)
-{
-	return _lm_sock_get_local_host (socket->fd);
-}
-
-LmSocket *
-lm_socket_ref (LmSocket *socket)
-{
-	g_return_val_if_fail (socket != NULL, NULL);
-
-	socket->ref_count++;
-
-	return socket;
-}
-
-void
-lm_socket_unref (LmSocket *socket)
-{
-	g_return_if_fail (socket != NULL);
-
-	socket->ref_count--;
-
-	if (socket->ref_count <= 0) {
-		socket_free (socket);
-	}
-}
-
-gboolean
-lm_socket_set_keepalive (LmSocket *socket, int delay)
-{
-#ifdef USE_TCP_KEEPALIVES
-	return _lm_sock_set_keepalive (socket->fd, delay);
-#else
-	return FALSE;
-#endif /* USE_TCP_KEEPALIVES */
-}
-
--- a/loudmouth/src/lm-ssl-base.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003-2006 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "lm-ssl-base.h"
-#include "lm-ssl-internals.h"
-
-void
-_lm_ssl_base_init (LmSSLBase      *base, 
-		   const gchar    *expected_fingerprint,
-		   LmSSLFunction   ssl_function,
-		   gpointer        user_data,
-		   GDestroyNotify  notify)
-{
-	base->ref_count      = 1;
-	base->func           = ssl_function;
-	base->func_data      = user_data;
-	base->data_notify    = notify;
-	base->fingerprint[0] = '\0';
-	
-	if (expected_fingerprint) {
-		base->expected_fingerprint = g_strdup (expected_fingerprint);
-	} else {
-		base->expected_fingerprint = NULL;
-	}
-
-	if (!base->func) {
-		/* If user didn't provide an SSL func the default will be used
-		 * this function will always tell the connection to continue.
-		 */
-		base->func = _lm_ssl_func_always_continue;
-	}
-}
-
-void
-_lm_ssl_base_free_fields (LmSSLBase *base)
-{
-	g_free (base->expected_fingerprint);
-}
-
--- a/loudmouth/src/lm-ssl-generic.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003-2006 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-#include "lm-debug.h"
-#include "lm-ssl.h"
-#include "lm-ssl-base.h"
-#include "lm-ssl-internals.h"
-
-LmSSLResponse  
-_lm_ssl_func_always_continue (LmSSL       *ssl,
-			      LmSSLStatus  status,
-			      gpointer     user_data)
-{
-     UNUSED_FORMAL_PARAM(ssl);
-     UNUSED_FORMAL_PARAM(status);
-     UNUSED_FORMAL_PARAM(user_data);
-	return LM_SSL_RESPONSE_CONTINUE;;
-}
-
-/* Define the SSL functions as noops if we compile without support */
-#ifndef HAVE_SSL
-
-LmSSL *
-_lm_ssl_new (const gchar    *expected_fingerprint,
-	     LmSSLFunction   ssl_function,
-	     gpointer        user_data,
-	     GDestroyNotify  notify)
-{
-	return NULL;
-}
-
-void
-_lm_ssl_initialize (LmSSL *ssl)
-{
-	/* NOOP */
-}
-
-gboolean
-_lm_ssl_begin (LmSSL        *ssl,
-	       gint          fd,
-	       const gchar  *server,
-	       GError      **error)
-{
-	return TRUE;
-}
-
-GIOStatus
-_lm_ssl_read (LmSSL *ssl,
-	      gchar *buf,
-	      gint   len,
-	      gsize  *bytes_read)
-{
-	/* NOOP */
-	*bytes_read = 0;
-
-	return G_IO_STATUS_EOF;
-}
-
-gboolean 
-_lm_ssl_send (LmSSL *ssl, const gchar *str, gint len)
-{
-	/* NOOP */
-	return TRUE;
-}
-void 
-_lm_ssl_close (LmSSL *ssl)
-{
-	/* NOOP */
-}
-
-void
-_lm_ssl_free (LmSSL *ssl)
-{
-	/* NOOP */
-}
-
-#endif /* HAVE_SSL */
-
-
-
-/**
- * lm_ssl_new:
- * @expected_fingerprint: The expected fingerprint. @ssl_function will be called if there is a mismatch. %NULL if you are not interested in this check.
- * @ssl_function: Callback called to inform the user of a problem during setting up the SSL connection and how to proceed. If %NULL is passed the default function that always continues will be used.
- * @user_data: Data sent with the callback.
- * @notify: Function to free @user_dataa when the connection is finished. %NULL if @user_data should not be freed.
- *
- * Creates a new SSL struct, call #lm_connection_set_ssl to use it. 
- *
- * Return value: A new #LmSSL struct.
- **/
-EXPORT_C LmSSL *
-lm_ssl_new (const gchar    *expected_fingerprint,
-	    LmSSLFunction   ssl_function,
-	    gpointer        user_data,
-	    GDestroyNotify  notify)
-{
-	/* The implementation of this function will be different depending
-	 * on which implementation is used 
-	 */
-	return _lm_ssl_new (expected_fingerprint,
-			    ssl_function, user_data, notify);
-}
-
-/**
- * lm_ssl_is_supported:
- *
- * Checks whether Loudmouth supports SSL or not.
- *
- * Return value: #TRUE if this installation of Loudmouth supports SSL, otherwise returns #FALSE.
- **/
-EXPORT_C gboolean
-lm_ssl_is_supported (void)
-{
-#ifdef HAVE_SSL
-	return TRUE;
-#else
-	return FALSE;
-#endif
-}
-
-
-/**
- * lm_ssl_get_fingerprint: 
- * @ssl: an #LmSSL
- *
- * Returns the MD5 fingerprint of the remote server's certificate.
- * 
- * Return value: A 16-byte array representing the fingerprint or %NULL if unknown.
- **/
-EXPORT_C const gchar *
-lm_ssl_get_fingerprint (LmSSL *ssl)
-{
-	g_return_val_if_fail (ssl != NULL, NULL);
-	
-	return LM_SSL_BASE(ssl)->fingerprint;
-}
-
-/**
- * lm_ssl_ref:
- * @ssl: an #LmSSL
- * 
- * Adds a reference to @ssl.
- * 
- * Return value: the ssl
- **/
-EXPORT_C LmSSL *
-lm_ssl_ref (LmSSL *ssl)
-{
-	g_return_val_if_fail (ssl != NULL, NULL);
-
-	LM_SSL_BASE(ssl)->ref_count++;
-
-	return ssl;
-}
-
-/**
- * lm_ssl_use_starttls:
- * @ssl: an #LmSSL
- *
- * Set whether STARTTLS should be used.
- **/
-EXPORT_C void
-lm_ssl_use_starttls (LmSSL *ssl,
-		     gboolean use_starttls,
-		     gboolean require_starttls)
-{
-	LmSSLBase *base;
-
-	base = LM_SSL_BASE (ssl);
-	base->use_starttls = use_starttls;
-	base->require_starttls = require_starttls;
-}
-
-/**
- * lm_ssl_get_use_starttls:
- *
- * Return value: TRUE is @ssl is configured to use STARTTLS.
- **/
-gboolean
-lm_ssl_get_use_starttls (LmSSL *ssl)
-{
-	LmSSLBase *base;
-
-	base = LM_SSL_BASE (ssl);
-	lm_verbose ("lm_ssl_get_use_starttls use_starttls[%d]\n", base->use_starttls);
-	return base->use_starttls;
-}
-
-/**
- * lm_ssl_get_require_starttls:
- *
- * Return value: TRUE if @ssl requires that STARTTLS succeed.
- **/
-gboolean
-lm_ssl_get_require_starttls (LmSSL *ssl)
-{
-	LmSSLBase *base;
-
-	base = LM_SSL_BASE (ssl);
-	return base->require_starttls;
-}
-
-/**
- * lm_ssl_unref
- * @ssl: an #LmSSL
- * 
- * Removes a reference from @ssl. When no more references are present
- * @ssl is freed.
- **/
-EXPORT_C void 
-lm_ssl_unref (LmSSL *ssl)
-{
-	LmSSLBase *base;
-	
-	g_return_if_fail (ssl != NULL);
-        
-	base = LM_SSL_BASE (ssl);
-
-	base->ref_count --;
-        
-        if (base->ref_count == 0) {
-		if (base->data_notify) {
-			(* base->data_notify) (base->func_data);
-		}
-             
-		_lm_ssl_free (ssl);
-        }
-}
-
-
--- a/loudmouth/src/lm-ssl-gnutls.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,312 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003-2006 Imendio AB
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-
-#include <string.h>
-#include <glib.h>
-
-#include "lm-debug.h"
-#include "lm-error.h"
-#include "lm-ssl-base.h"
-#include "lm-ssl-internals.h"
-
-#ifdef HAVE_GNUTLS
-
-#include <gnutls/x509.h>
-
-#define CA_PEM_FILE "/etc/ssl/certs/ca-certificates.crt"
-
-struct _LmSSL {
-	LmSSLBase base;
-
-	gnutls_session                 gnutls_session;
-	gnutls_certificate_credentials gnutls_xcred;
-	gboolean                       started;
-};
-
-static gboolean       ssl_verify_certificate    (LmSSL       *ssl,
-						 const gchar *server);
-
-static gboolean
-ssl_verify_certificate (LmSSL *ssl, const gchar *server)
-{
-	LmSSLBase *base;
-	unsigned int        status;
-	int rc;
-
-	base = LM_SSL_BASE (ssl);
-
-	/* This verification function uses the trusted CAs in the credentials
-	 * structure. So you must have installed one or more CA certificates.
-	 */
-	rc = gnutls_certificate_verify_peers2 (ssl->gnutls_session, &status);
-
-	if (rc == GNUTLS_E_NO_CERTIFICATE_FOUND) {
-		if (base->func (ssl,
-			       LM_SSL_STATUS_NO_CERT_FOUND,
-			       base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-			return FALSE;
-		}
-	}
-
-	if (rc != 0) {
-		if (base->func (ssl,
-			       LM_SSL_STATUS_GENERIC_ERROR,
-			       base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-			return FALSE;
-		}
-	}
-
-	if (rc == GNUTLS_E_NO_CERTIFICATE_FOUND) {
-		if (base->func (ssl,
-			       LM_SSL_STATUS_NO_CERT_FOUND,
-			       base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-			return FALSE;
-		}
-	}
-	
-	if (status & GNUTLS_CERT_INVALID
-	    || status & GNUTLS_CERT_REVOKED) {
-		if (base->func (ssl, LM_SSL_STATUS_UNTRUSTED_CERT,
-			       base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-			return FALSE;
-		}
-	}
-	
-	if (gnutls_certificate_expiration_time_peers (ssl->gnutls_session) < time (0)) {
-		if (base->func (ssl, LM_SSL_STATUS_CERT_EXPIRED,
-			       base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-			return FALSE;
-		}
-	}
-	
-	if (gnutls_certificate_activation_time_peers (ssl->gnutls_session) > time (0)) {
-		if (base->func (ssl, LM_SSL_STATUS_CERT_NOT_ACTIVATED,
-			       base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-			return FALSE;
-		}
-	}
-	
-	if (gnutls_certificate_type_get (ssl->gnutls_session) == GNUTLS_CRT_X509) {
-		const gnutls_datum* cert_list;
-		guint cert_list_size;
-		size_t digest_size;
-		gnutls_x509_crt cert;
-		
-		cert_list = gnutls_certificate_get_peers (ssl->gnutls_session, &cert_list_size);
-		if (cert_list == NULL) {
-			if (base->func (ssl, LM_SSL_STATUS_NO_CERT_FOUND,
-				       base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-				return FALSE;
-			}
-		}
-
-		gnutls_x509_crt_init (&cert);
-
-		if (gnutls_x509_crt_import (cert, &cert_list[0],
-					     GNUTLS_X509_FMT_DER) != 0) {
-			if (base->func (ssl, LM_SSL_STATUS_NO_CERT_FOUND, 
-					base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-				return FALSE;
-			}
-		}
-
-		if (!gnutls_x509_crt_check_hostname (cert, server)) {
-			if (base->func (ssl, LM_SSL_STATUS_CERT_HOSTNAME_MISMATCH,
-				       base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-				return FALSE;
-			}
-		}
-
-		gnutls_x509_crt_deinit (cert);
-
-		digest_size = sizeof (base->fingerprint);
-
-		if (gnutls_fingerprint (GNUTLS_DIG_MD5, &cert_list[0],
-					base->fingerprint,
-					&digest_size) >= 0) {
-			if (base->expected_fingerprint &&
-			    memcmp (base->expected_fingerprint, 
-				    base->fingerprint,
-				    digest_size) &&
-			    base->func (ssl,
-				       LM_SSL_STATUS_CERT_FINGERPRINT_MISMATCH,
-				       base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-				return FALSE;
-			}
-		} 
-		else if (base->func (ssl, LM_SSL_STATUS_GENERIC_ERROR,
-				     base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-			return FALSE; 
-		} 
-	}
-
-	return TRUE;
-}
-
-/* From lm-ssl-protected.h */
-
-LmSSL *
-_lm_ssl_new (const gchar    *expected_fingerprint,
-	    LmSSLFunction   ssl_function,
-	    gpointer        user_data,
-	    GDestroyNotify  notify)
-{
-	LmSSL *ssl;
-
-	ssl = g_new0 (LmSSL, 1);
-
-	_lm_ssl_base_init ((LmSSLBase *) ssl,
-			   expected_fingerprint,
-			   ssl_function, user_data, notify);
-
-	return ssl;
-}
-
-void
-_lm_ssl_initialize (LmSSL *ssl) 
-{
-	gnutls_global_init ();
-	gnutls_certificate_allocate_credentials (&ssl->gnutls_xcred);
-	gnutls_certificate_set_x509_trust_file(ssl->gnutls_xcred,
-					       CA_PEM_FILE,
-					       GNUTLS_X509_FMT_PEM);
-}
-
-gboolean
-_lm_ssl_begin (LmSSL *ssl, gint fd, const gchar *server, GError **error)
-{
-	int ret;
-	gboolean auth_ok = TRUE;
-	const int cert_type_priority[] =
-		{ GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 };
-	const int compression_priority[] =
-		{ GNUTLS_COMP_DEFLATE, GNUTLS_COMP_NULL, 0 };
-
-	gnutls_init (&ssl->gnutls_session, GNUTLS_CLIENT);
-	gnutls_set_default_priority (ssl->gnutls_session);
-	gnutls_certificate_type_set_priority (ssl->gnutls_session,
-					      cert_type_priority);
-	gnutls_compression_set_priority (ssl->gnutls_session,
-					 compression_priority);
-	gnutls_credentials_set (ssl->gnutls_session,
-				GNUTLS_CRD_CERTIFICATE,
-				ssl->gnutls_xcred);
-
-	gnutls_transport_set_ptr (ssl->gnutls_session,
-				  (gnutls_transport_ptr_t) fd);
-
-	ret = gnutls_handshake (ssl->gnutls_session);
-
-	if (ret >= 0) {
-		auth_ok = ssl_verify_certificate (ssl, server);
-	}
-
-	if (ret < 0 || !auth_ok) {
-		char *errmsg;
-
-		gnutls_perror (ret);
-	
-		if (!auth_ok) {
-			errmsg = "*** GNUTLS authentication error";
-		} else {
-			errmsg = "*** GNUTLS handshake failed";
-		}
-
-		g_set_error (error, 
-			     LM_ERROR, LM_ERROR_CONNECTION_OPEN,
-			     errmsg);			
-
-		return FALSE;
-	}
-	lm_verbose ("GNUTLS negotiated compression: %s",
-		    gnutls_compression_get_name (gnutls_compression_get
-			(ssl->gnutls_session)));
-
-	ssl->started = TRUE;
-
-	return TRUE;
-}
-
-GIOStatus
-_lm_ssl_read (LmSSL *ssl, gchar *buf, gint len, gsize *bytes_read)
-{
-	GIOStatus status;
-	gint      b_read;
-
-	*bytes_read = 0;
-	b_read = gnutls_record_recv (ssl->gnutls_session, buf, len);
-
-	if (b_read == GNUTLS_E_AGAIN) {
-		status = G_IO_STATUS_AGAIN;
-	}
-	else if (b_read == 0) {
-		status = G_IO_STATUS_EOF;
-	}
-	else if (b_read < 0) {
-		status = G_IO_STATUS_ERROR;
-	} else {
-		*bytes_read = (guint) b_read;
-		status = G_IO_STATUS_NORMAL;
-	}
-
-	return status;
-}
-
-gint
-_lm_ssl_send (LmSSL *ssl, const gchar *str, gint len)
-{
-	gint bytes_written;
-
-	bytes_written = gnutls_record_send (ssl->gnutls_session, str, len);
-
-	while (bytes_written < 0) {
-		if (bytes_written != GNUTLS_E_INTERRUPTED &&
-		    bytes_written != GNUTLS_E_AGAIN) {
-			return -1;
-		}
-	
-		bytes_written = gnutls_record_send (ssl->gnutls_session, 
-						    str, len);
-	}
-
-	return bytes_written;
-}
-
-void 
-_lm_ssl_close (LmSSL *ssl)
-{
-	if (!ssl->started)
-		return;
-
-	gnutls_deinit (ssl->gnutls_session);
-	gnutls_certificate_free_credentials (ssl->gnutls_xcred);
-	gnutls_global_deinit ();
-}
-
-void
-_lm_ssl_free (LmSSL *ssl)
-{
-	_lm_ssl_base_free_fields (LM_SSL_BASE (ssl));
-	g_free (ssl);
-}
-
-#endif /* HAVE_GNUTLS */
--- a/loudmouth/src/lm-ssl-openssl.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,469 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2006 Imendio AB
- *  and/or its subsidiary/subsidiaries. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <glib.h>
-
-#include "lm-debug.h"
-#include "lm-error.h"
-#include "lm-ssl-base.h"
-#include "lm-ssl-internals.h"
-
-#ifdef EMULATOR
-#include "libloudmouth_wsd_solution.h"
-GET_STATIC_VAR_FROM_TLS(initialized, lm_ssl_openssl, gboolean)
-  #define initialized (*GET_WSD_VAR_NAME(initialized, lm_ssl_openssl, s) () )
-#endif
-#ifdef HAVE_OPENSSL
-
-#include <openssl/ssl.h>
-#include <openssl/err.h>
-
-#define LM_SSL_CN_MAX		63
-
-struct _LmSSL {
-	LmSSLBase base;
-
-	SSL_METHOD *ssl_method;
-	SSL_CTX *ssl_ctx;
-	SSL *ssl;
-	/*BIO *bio;*/
-};
-
-int ssl_verify_cb (int preverify_ok, X509_STORE_CTX *x509_ctx);
-
-static gboolean ssl_verify_certificate (LmSSL *ssl, const gchar *server);
-static GIOStatus ssl_io_status_from_return (LmSSL *ssl, gint error);
-
-/*static char _ssl_error_code[11];*/
-
-static void
-ssl_print_state (LmSSL *ssl, const char *func, int val)
-{
-	unsigned long errid;
-	const char *errmsg;
-
-	switch (SSL_get_error(ssl->ssl, val)) {
-		case SSL_ERROR_NONE:
-			g_warning ("%s(): %i / SSL_ERROR_NONE",
-				   func, val);
-			break;
-		case SSL_ERROR_ZERO_RETURN:
-			g_warning ("%s(): %i / SSL_ERROR_ZERO_RETURN",
-				   func, val);
-			break;
-		case SSL_ERROR_WANT_READ:
-			g_warning ("%s(): %i / SSL_ERROR_WANT_READ",
-				   func, val);
-			break;
-		case SSL_ERROR_WANT_WRITE:
-			g_warning ("%s(): %i / SSL_ERROR_WANT_WRITE",
-				   func, val);
-			break;
-		case SSL_ERROR_WANT_X509_LOOKUP:
-			g_warning ("%s(): %i / SSL_ERROR_WANT_X509_LOOKUP",
-				   func, val);
-			break;
-		case SSL_ERROR_SYSCALL:
-			g_warning ("%s(): %i / SSL_ERROR_SYSCALL",
-				   func, val);
-			break;
-		case SSL_ERROR_SSL:
-			g_warning ("%s(): %i / SSL_ERROR_SSL",
-				   func, val);
-			break;
-	}
-	do {
-		errid = ERR_get_error();
-		if (errid) {
-			errmsg = ERR_error_string(errid, NULL);
-			g_warning ("\t%s", errmsg);
-		}
-	} while (errid != 0);
-}
-
-/*static const char *
-ssl_get_x509_err (long verify_res)
-{
-	sprintf(_ssl_error_code, "%ld", verify_res);
-	return _ssl_error_code;
-}*/
-
-	
-int
-ssl_verify_cb (int preverify_ok, X509_STORE_CTX *x509_ctx)
-{
-	/* As this callback doesn't get auxiliary pointer parameter we
-	 * cannot really use this. However, we can retrieve results later. */
-    UNUSED_FORMAL_PARAM(preverify_ok);
-    UNUSED_FORMAL_PARAM(x509_ctx);
-	return 1;
-}
-
-static gboolean
-ssl_verify_certificate (LmSSL *ssl, const gchar *server)
-{
-	gboolean retval = TRUE;
-	LmSSLBase *base;
-	long verify_res;
-	unsigned int digest_len;
-	X509 *srv_crt;
-	gchar *cn;
-	X509_NAME *crt_subj;
-
-  return TRUE ; // hack - to bypass certificate verification error- Pankaj
-/*
-	base = LM_SSL_BASE(ssl);
-
-	//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SSL,
-	//       "%s: Cipher: %s/%s/%i\n",
-	//       __FILE__,
-	//       SSL_get_cipher_version(ssl->ssl),
-	//       SSL_get_cipher_name(ssl->ssl),
-	//       SSL_get_cipher_bits(ssl->ssl, NULL));
-	
-	lm_verbose("\n[ssl_verify_certificate]:Cipher: %s/%s/%i\n",
-	       SSL_get_cipher_version(ssl->ssl),
-	       SSL_get_cipher_name(ssl->ssl),
-	       SSL_get_cipher_bits(ssl->ssl, NULL));
-
-	verify_res = SSL_get_verify_result(ssl->ssl);
-	srv_crt = SSL_get_peer_certificate(ssl->ssl);
-	if (base->expected_fingerprint != NULL) {
-		X509_digest(srv_crt, EVP_md5(), (guchar *) base->fingerprint,
-			&digest_len);
-		if (memcmp(base->expected_fingerprint, base->fingerprint,
-			digest_len) != 0) {
-			if (base->func(ssl,
-				LM_SSL_STATUS_CERT_FINGERPRINT_MISMATCH,
-				base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-				return FALSE;
-			}
-		}
-	}
-    //g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SSL,
-	  //     "%s: SSL_get_verify_result() = %ld\n",
-	  //     __FILE__,
-	  //     verify_res);
-	lm_verbose("[ssl_verify_certificate]: SSL_get_verify_result() = %ld\n", verify_res);
-	switch (verify_res) {
-		case X509_V_OK:
-			break;
-		case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
-			// special case for self signed certificates? 
-		case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
-		case X509_V_ERR_UNABLE_TO_GET_CRL:
-		case X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE:
-			if (base->func(ssl,
-				LM_SSL_STATUS_NO_CERT_FOUND,
-				base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-				retval = FALSE;
-			}
-			break;
-		case X509_V_ERR_INVALID_CA:
-		case X509_V_ERR_CERT_UNTRUSTED:
-		case X509_V_ERR_CERT_REVOKED:
-			if (base->func(ssl,
-				LM_SSL_STATUS_UNTRUSTED_CERT,
-				base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-				retval = FALSE;
-			}
-			break;
-		case X509_V_ERR_CERT_NOT_YET_VALID:
-		case X509_V_ERR_CRL_NOT_YET_VALID:
-			if (base->func(ssl,
-				LM_SSL_STATUS_CERT_NOT_ACTIVATED,
-				base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-				retval = FALSE;
-			}
-			break;
-		case X509_V_ERR_CERT_HAS_EXPIRED:
-		case X509_V_ERR_CRL_HAS_EXPIRED:
-			if (base->func(ssl,
-				LM_SSL_STATUS_CERT_EXPIRED,
-				base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-				retval = FALSE;
-			}
-			break;
-		default:
-			if (base->func(ssl, LM_SSL_STATUS_GENERIC_ERROR,
-				base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-				retval = FALSE;
-			}
-	}
-	//if (retval == FALSE) {
-	//	g_set_error (error, LM_ERROR, LM_ERROR_CONNECTION_OPEN,
-	//		ssl_get_x509_err(verify_res), NULL);
-	//}
-	crt_subj = X509_get_subject_name(srv_crt);
-	cn = (gchar *) g_malloc0(LM_SSL_CN_MAX + 1);
-	
-	if (X509_NAME_get_text_by_NID(crt_subj, NID_commonName, cn, LM_SSL_CN_MAX) > 0) {
-		gchar *domain = cn;
-
-		//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SSL,
-		//      "%s: server = '%s', cn = '%s'\n",
-		//      __FILE__, server, cn);
-		lm_verbose("%s: server = '%s', cn = '%s'\n",
-		      __FILE__, server, cn);
-		
-		if ((cn[0] == '*') && (cn[1] == '.')) {
-			domain = strstr (cn, server);
-		}
-
-		if ((domain == NULL) || (strncmp (server, domain, LM_SSL_CN_MAX) != 0)) {
-			if (base->func (ssl,
-					LM_SSL_STATUS_CERT_HOSTNAME_MISMATCH,
-					base->func_data) != LM_SSL_RESPONSE_CONTINUE) {
-				retval = FALSE;
-			}
-    	}
-	} else {
-		g_warning ("X509_NAME_get_text_by_NID() failed");
-	}
-
-	//g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_SSL, 
-	//       "%s:\n\tIssuer: %s\n\tSubject: %s\n\tFor: %s\n",
-	//       __FILE__,
-	//       X509_NAME_oneline(X509_get_issuer_name(srv_crt), NULL, 0),
-	//       X509_NAME_oneline(X509_get_subject_name(srv_crt), NULL, 0),
-	//       cn);
-	       
-	lm_verbose("%s:\n\tIssuer: %s\n\tSubject: %s\n\tFor: %s\n",
-	       __FILE__,
-	       X509_NAME_oneline(X509_get_issuer_name(srv_crt), NULL, 0),
-	       X509_NAME_oneline(X509_get_subject_name(srv_crt), NULL, 0),
-	       cn);
-
-	g_free(cn);
-	
-	//return TRUE ; // hack - to bypass certificate verification error- Pankaj
-	return retval;
-	*/
-}
-
-static GIOStatus
-ssl_io_status_from_return (LmSSL *ssl, gint ret)
-{
-	gint      error;
-	GIOStatus status;
-
-	if (ret > 0) return G_IO_STATUS_NORMAL;
-
-	error = SSL_get_error(ssl->ssl, ret);
-	switch (error) {
-		case SSL_ERROR_WANT_READ:
-		case SSL_ERROR_WANT_WRITE:
-			status = G_IO_STATUS_AGAIN;
-			break;
-		case SSL_ERROR_ZERO_RETURN:
-			status = G_IO_STATUS_EOF;
-			break;
-		default:
-			status = G_IO_STATUS_ERROR;
-	}
-
-	return status;
-}
-
-/* From lm-ssl-protected.h */
-
-LmSSL *
-_lm_ssl_new (const gchar    *expected_fingerprint,
-	    LmSSLFunction   ssl_function,
-	    gpointer        user_data,
-	    GDestroyNotify  notify)
-{
-	LmSSL *ssl;
-
-	ssl = g_new0 (LmSSL, 1);
-
-	_lm_ssl_base_init ((LmSSLBase *) ssl,
-			   expected_fingerprint,
-			   ssl_function, user_data, notify);
-
-	return ssl;
-}
-
-void
-_lm_ssl_initialize (LmSSL *ssl) 
-{
-#ifndef EMULATOR
-	static gboolean initialized = FALSE;
-#endif
-	/*const char *cert_file = NULL;*/
-
-	if (!initialized) {
-		SSL_library_init();
-		/* FIXME: Is this needed when we are not in debug? */
-		SSL_load_error_strings();
-		initialized = TRUE;
-	}
-
-	ssl->ssl_method = TLSv1_client_method();
-	if (ssl->ssl_method == NULL) {
-		g_warning ("TLSv1_client_method() == NULL");
-		abort();
-	}
-	ssl->ssl_ctx = SSL_CTX_new(ssl->ssl_method);
-	if (ssl->ssl_ctx == NULL) {
-		g_warning ("SSL_CTX_new() == NULL");
-		abort();
-	}
-	/*if (access("/etc/ssl/cert.pem", R_OK) == 0)
-		cert_file = "/etc/ssl/cert.pem";
-	if (!SSL_CTX_load_verify_locations(ssl->ssl_ctx,
-		cert_file, "/etc/ssl/certs")) {
-		g_warning("SSL_CTX_load_verify_locations() failed");
-	}*/
-	SSL_CTX_set_default_verify_paths (ssl->ssl_ctx);
-	SSL_CTX_set_verify (ssl->ssl_ctx, SSL_VERIFY_PEER, ssl_verify_cb);
-}
-
-gboolean
-_lm_ssl_begin (LmSSL *ssl, gint fd, const gchar *server, GError **error)
-{
-	gint ssl_ret;
-	GIOStatus status;
-
-	if (!ssl->ssl_ctx) {
-		g_set_error (error,
-			     LM_ERROR, LM_ERROR_CONNECTION_OPEN,
-			     "No SSL Context for OpenSSL");
-		return FALSE;
-	}
-
-	ssl->ssl = SSL_new(ssl->ssl_ctx);
-	if (ssl->ssl == NULL) {
-		g_warning ("SSL_new() == NULL");
-		g_set_error(error, LM_ERROR, LM_ERROR_CONNECTION_OPEN,
-			    "SSL_new()");
-		return FALSE;
-	}
-
-	if (!SSL_set_fd (ssl->ssl, fd)) {
-		g_warning ("SSL_set_fd() failed");
-		g_set_error(error, LM_ERROR, LM_ERROR_CONNECTION_OPEN,
-			"SSL_set_fd()");
-		return FALSE;
-	}
-	/*ssl->bio = BIO_new_socket (fd, BIO_NOCLOSE);
-	if (ssl->bio == NULL) {
-		g_warning("BIO_new_socket() failed");
-		g_set_error(error, LM_ERROR, LM_ERROR_CONNECTION_OPEN,
-			"BIO_new_socket()");
-		return FALSE;
-	}
-	SSL_set_bio(ssl->ssl, ssl->bio, ssl->bio);*/
-
-	do {
-		ssl_ret = SSL_connect(ssl->ssl);
-		if (ssl_ret <= 0) {
-			status = ssl_io_status_from_return(ssl, ssl_ret);
-			if (status != G_IO_STATUS_AGAIN) {
-				lm_verbose("[_lm_ssl_begin] errno for ssl connect:[%d], ssl_ret[%d]\n", errno, ssl_ret);
-				lm_verbose("\n[_lm_ssl_begin] ssl_io_status_from_return return status failed..:[%d]\n", status);
-				ssl_print_state(ssl, "SSL_connect",
-					ssl_ret);
-				g_set_error(error, LM_ERROR,
-					LM_ERROR_CONNECTION_OPEN,
-					"SSL_connect()");
-				return FALSE;
-			}
-		}
-	} while (ssl_ret <= 0);
-
-	lm_verbose("\n[_lm_ssl_begin] errno for ssl connect:[%d], ssl_ret[%d]\n", errno, ssl_ret);
-	// log
-	{
-	long verify_res;	
-	verify_res = SSL_get_verify_result(ssl->ssl);
-	lm_verbose("[_lm_ssl_begin]: After SSL Connect : SSL_get_verify_result() = %ld\n", verify_res);
-	}
-
-	if (!ssl_verify_certificate (ssl, server)) {
-		g_set_error (error, LM_ERROR, LM_ERROR_CONNECTION_OPEN,
-			"*** SSL certificate verification failed");
-		return FALSE;
-	}
-	
-	return TRUE; 
-}
-
-GIOStatus
-_lm_ssl_read (LmSSL *ssl, gchar *buf, gint len, gsize *bytes_read)
-{
-	GIOStatus status;
-	gint ssl_ret;
-
-	*bytes_read = 0;
-	ssl_ret = SSL_read(ssl->ssl, buf, len);
-	status = ssl_io_status_from_return(ssl, ssl_ret);
-	if (status == G_IO_STATUS_NORMAL) {
-		*bytes_read = ssl_ret;
-	}
-	
-	return status;
-}
-
-gint
-_lm_ssl_send (LmSSL *ssl, const gchar *str, gint len)
-{
-	GIOStatus status;
-	gint ssl_ret;
-
-	do {
-		ssl_ret = SSL_write(ssl->ssl, str, len);
-		if (ssl_ret <= 0) {
-			status = ssl_io_status_from_return(ssl, ssl_ret);
-			if (status != G_IO_STATUS_AGAIN)
-				return -1;
-		}
-	} while (ssl_ret <= 0);
-
-	return ssl_ret;
-}
-
-void 
-_lm_ssl_close (LmSSL *ssl)
-{
-	if (ssl->ssl != NULL) {
-		SSL_shutdown(ssl->ssl);
-		SSL_free(ssl->ssl);
-		ssl->ssl = NULL;
-	}
-}
-
-void
-_lm_ssl_free (LmSSL *ssl)
-{
-	SSL_CTX_free(ssl->ssl_ctx);
-	ssl->ssl_ctx = NULL;
-
-	_lm_ssl_base_free_fields (LM_SSL_BASE(ssl));
-	g_free (ssl);
-}
-
-#endif /* HAVE_GNUTLS */
--- a/loudmouth/src/lm-utils.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2003 Imendio AB 
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-#include <glib.h>
-
-#ifndef G_OS_WIN32
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_IDN
-#include <stringprep.h>
-#include <punycode.h>
-#include <idna.h>
-#endif
-
-#include "lm-internals.h"
-#include "lm-utils.h"
-
-#ifdef EMULATOR
-#include "libloudmouth_wsd_solution.h"
-GET_STATIC_VAR_FROM_TLS(last_id, lm_utils, guint)
-  #define last_id (*GET_WSD_VAR_NAME(last_id, lm_utils, s)())
-  
-GET_STATIC_ARRAY_FROM_TLS(base64chars, lm_utils, gchar)
-  #define base64chars (GET_WSD_VAR_NAME(base64chars, lm_utils, s)())
-#endif
-
-
-LmCallback *
-_lm_utils_new_callback (gpointer func, 
-			gpointer user_data,
-			GDestroyNotify notify)
-{
-	LmCallback *cb;
-	
-	cb = g_new0 (LmCallback, 1);
-	cb->func = func;
-	cb->user_data = user_data;
-	cb->notify = notify;
-
-	return cb;
-}
-
-void
-_lm_utils_free_callback (LmCallback *cb)
-{
-	if (!cb) {
-		return;
-	}
-
-	if (cb->notify) {
-		(* cb->notify) (cb->user_data);
-	}
-	g_free (cb);
-}
-
-gchar *
-_lm_utils_generate_id (void)
-{
-#ifndef EMULATOR
-	static guint  last_id = 0;
-#endif
-	GTimeVal      tv;
-	glong         val;
-
-	g_get_current_time (&tv);
-	val = (tv.tv_sec & tv.tv_usec) + last_id++;
-		
-	return g_strdup_printf ("%ld%ld", val, tv.tv_usec);
-}
-
-gchar * 
-_lm_utils_base64_encode (const gchar *s)
-{
-#ifndef EMULATOR
-
-	static const gchar *base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-#endif
-	guint    i, j;
-	guint32  bits = 0;
-	guint    maxlen = (strlen(s) * 2) + 3;
-	gchar   *str;
-
-	str = g_malloc(maxlen);
-
-	j = 0;
-	for (i = 0; i < strlen(s); i++) {
-		bits <<= 8;
-		bits |= s[i] & 0xff;
-
-		if (!((i+1) % 3)) {
-			guint indices[4];
-
-			indices[0] = (bits >> 18) & 0x3f;
-			indices[1] = (bits >> 12) & 0x3f;
-			indices[2] = (bits >> 6) & 0x3f;
-			indices[3] = bits & 0x3f;
-			bits = 0;
-
-			str[j++] = base64chars[(indices[0])];
-			str[j++] = base64chars[(indices[1])];
-			str[j++] = base64chars[(indices[2])];
-			str[j++] = base64chars[(indices[3])];
-		}
-	}
-
-	if (j + 4 < maxlen) {
-		if ((i % 3) == 1) {
-			guint indices[2];
-
-			indices[0] = (bits >> 2) & 0x3f;
-			indices[1] = (bits << 4) & 0x3f;
-
-			str[j++] = base64chars[(indices[0])];
-			str[j++] = base64chars[(indices[1])];
-			str[j++] = '=';
-			str[j++] = '=';
-		} else if ((i % 3) == 2) {
-			guint indices[3];
-
-			indices[0] = (bits >> 10) & 0x3f;
-			indices[1] = (bits >> 4) & 0x3f;
-			indices[2] = (bits << 2) & 0x3f;
-
-			str[j++] = base64chars[(indices[0])];
-			str[j++] = base64chars[(indices[1])];
-			str[j++] = base64chars[(indices[2])];
-			str[j++] = '=';
-		}
-	}
-
-	str[j] = '\0';
-
-	return str;
-}
-
-gchar*
-_lm_utils_hostname_to_punycode (const gchar *hostname)
-{
-#ifdef HAVE_IDN
-	char *s;
-	uint32_t *q;
-	int rc;
-	gchar *result;
-
-	q = stringprep_utf8_to_ucs4 (hostname, -1, NULL);
-	if (q == NULL) {
-		return g_strdup (hostname);
-	}
-
-	rc = idna_to_ascii_4z (q, &s, IDNA_ALLOW_UNASSIGNED);
-	free(q);
-	if (rc != IDNA_SUCCESS) {
-		return g_strdup (hostname);
-	}
-
-	/* insures result is allocated through glib */
-	result = g_strdup(s);
-	free(s);
-
-	return result;
-#else
-	return g_strdup(hostname);
-#endif
-}
-
-/**
- * lm_utils_get_localtime:
- * @stamp: An XMPP timestamp
- *
- * Converts an XMPP timestamp to a struct tm showing local time.
- * 
- * Return value: The local time struct.
- **/
-EXPORT_C struct tm *
-lm_utils_get_localtime (const gchar *stamp)
-{
-	struct tm tm;
-	time_t    t;
-	gint      year, month;
-	
-	g_return_val_if_fail (stamp != NULL, NULL);
-
-	/* 20021209T23:51:30 */
-
-	sscanf (stamp, "%4d%2d%2dT%2d:%2d:%2d", 
-		&year, &month, &tm.tm_mday, &tm.tm_hour,
-		&tm.tm_min, &tm.tm_sec);
-
-	tm.tm_year = year - 1900;
-	tm.tm_mon = month - 1;
-	tm.tm_isdst = -1;
-
- 	t = mktime (&tm);
-
-#if defined(HAVE_TM_GMTOFF)
-	t += tm.tm_gmtoff;
-#elif defined(HAVE_TIMEZONE)
-	t -= timezone;
-	if (tm.tm_isdst > 0) {
-		t += 3600;
-	}
-#endif	
-
-	return localtime (&t);
-}
-
-
--- a/loudmouth/src/md5.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,381 +0,0 @@
-/*
-  Copyright (C) 1999, 2000, 2002 Aladdin Enterprises.  All rights reserved.
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  L. Peter Deutsch
-  ghost@aladdin.com
-
- */
-/* $Id: md5.c,v 1.6 2002/04/13 19:20:28 lpd Exp $ */
-/*
-  Independent implementation of MD5 (RFC 1321).
-
-  This code implements the MD5 Algorithm defined in RFC 1321, whose
-  text is available at
-	http://www.ietf.org/rfc/rfc1321.txt
-  The code is derived from the text of the RFC, including the test suite
-  (section A.5) but excluding the rest of Appendix A.  It does not include
-  any code or documentation that is identified in the RFC as being
-  copyrighted.
-
-  The original and principal author of md5.c is L. Peter Deutsch
-  <ghost@aladdin.com>.  Other authors are noted in the change history
-  that follows (in reverse chronological order):
-
-  2002-04-13 lpd Clarified derivation from RFC 1321; now handles byte order
-	either statically or dynamically; added missing #include <string.h>
-	in library.
-  2002-03-11 lpd Corrected argument list for main(), and added int return
-	type, in test program and T value program.
-  2002-02-21 lpd Added missing #include <stdio.h> in test program.
-  2000-07-03 lpd Patched to eliminate warnings about "constant is
-	unsigned in ANSI C, signed in traditional"; made test program
-	self-checking.
-  1999-11-04 lpd Edited comments slightly for automatic TOC extraction.
-  1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5).
-  1999-05-03 lpd Original version.
- */
-
-#include "md5.h"
-#include <string.h>
-
-#undef BYTE_ORDER	/* 1 = big-endian, -1 = little-endian, 0 = unknown */
-#ifdef ARCH_IS_BIG_ENDIAN
-#  define BYTE_ORDER (ARCH_IS_BIG_ENDIAN ? 1 : -1)
-#else
-#  define BYTE_ORDER 0
-#endif
-
-#define T_MASK ((md5_word_t)~0)
-#define T1 /* 0xd76aa478 */ (T_MASK ^ 0x28955b87)
-#define T2 /* 0xe8c7b756 */ (T_MASK ^ 0x173848a9)
-#define T3    0x242070db
-#define T4 /* 0xc1bdceee */ (T_MASK ^ 0x3e423111)
-#define T5 /* 0xf57c0faf */ (T_MASK ^ 0x0a83f050)
-#define T6    0x4787c62a
-#define T7 /* 0xa8304613 */ (T_MASK ^ 0x57cfb9ec)
-#define T8 /* 0xfd469501 */ (T_MASK ^ 0x02b96afe)
-#define T9    0x698098d8
-#define T10 /* 0x8b44f7af */ (T_MASK ^ 0x74bb0850)
-#define T11 /* 0xffff5bb1 */ (T_MASK ^ 0x0000a44e)
-#define T12 /* 0x895cd7be */ (T_MASK ^ 0x76a32841)
-#define T13    0x6b901122
-#define T14 /* 0xfd987193 */ (T_MASK ^ 0x02678e6c)
-#define T15 /* 0xa679438e */ (T_MASK ^ 0x5986bc71)
-#define T16    0x49b40821
-#define T17 /* 0xf61e2562 */ (T_MASK ^ 0x09e1da9d)
-#define T18 /* 0xc040b340 */ (T_MASK ^ 0x3fbf4cbf)
-#define T19    0x265e5a51
-#define T20 /* 0xe9b6c7aa */ (T_MASK ^ 0x16493855)
-#define T21 /* 0xd62f105d */ (T_MASK ^ 0x29d0efa2)
-#define T22    0x02441453
-#define T23 /* 0xd8a1e681 */ (T_MASK ^ 0x275e197e)
-#define T24 /* 0xe7d3fbc8 */ (T_MASK ^ 0x182c0437)
-#define T25    0x21e1cde6
-#define T26 /* 0xc33707d6 */ (T_MASK ^ 0x3cc8f829)
-#define T27 /* 0xf4d50d87 */ (T_MASK ^ 0x0b2af278)
-#define T28    0x455a14ed
-#define T29 /* 0xa9e3e905 */ (T_MASK ^ 0x561c16fa)
-#define T30 /* 0xfcefa3f8 */ (T_MASK ^ 0x03105c07)
-#define T31    0x676f02d9
-#define T32 /* 0x8d2a4c8a */ (T_MASK ^ 0x72d5b375)
-#define T33 /* 0xfffa3942 */ (T_MASK ^ 0x0005c6bd)
-#define T34 /* 0x8771f681 */ (T_MASK ^ 0x788e097e)
-#define T35    0x6d9d6122
-#define T36 /* 0xfde5380c */ (T_MASK ^ 0x021ac7f3)
-#define T37 /* 0xa4beea44 */ (T_MASK ^ 0x5b4115bb)
-#define T38    0x4bdecfa9
-#define T39 /* 0xf6bb4b60 */ (T_MASK ^ 0x0944b49f)
-#define T40 /* 0xbebfbc70 */ (T_MASK ^ 0x4140438f)
-#define T41    0x289b7ec6
-#define T42 /* 0xeaa127fa */ (T_MASK ^ 0x155ed805)
-#define T43 /* 0xd4ef3085 */ (T_MASK ^ 0x2b10cf7a)
-#define T44    0x04881d05
-#define T45 /* 0xd9d4d039 */ (T_MASK ^ 0x262b2fc6)
-#define T46 /* 0xe6db99e5 */ (T_MASK ^ 0x1924661a)
-#define T47    0x1fa27cf8
-#define T48 /* 0xc4ac5665 */ (T_MASK ^ 0x3b53a99a)
-#define T49 /* 0xf4292244 */ (T_MASK ^ 0x0bd6ddbb)
-#define T50    0x432aff97
-#define T51 /* 0xab9423a7 */ (T_MASK ^ 0x546bdc58)
-#define T52 /* 0xfc93a039 */ (T_MASK ^ 0x036c5fc6)
-#define T53    0x655b59c3
-#define T54 /* 0x8f0ccc92 */ (T_MASK ^ 0x70f3336d)
-#define T55 /* 0xffeff47d */ (T_MASK ^ 0x00100b82)
-#define T56 /* 0x85845dd1 */ (T_MASK ^ 0x7a7ba22e)
-#define T57    0x6fa87e4f
-#define T58 /* 0xfe2ce6e0 */ (T_MASK ^ 0x01d3191f)
-#define T59 /* 0xa3014314 */ (T_MASK ^ 0x5cfebceb)
-#define T60    0x4e0811a1
-#define T61 /* 0xf7537e82 */ (T_MASK ^ 0x08ac817d)
-#define T62 /* 0xbd3af235 */ (T_MASK ^ 0x42c50dca)
-#define T63    0x2ad7d2bb
-#define T64 /* 0xeb86d391 */ (T_MASK ^ 0x14792c6e)
-
-
-static void
-md5_process(md5_state_t *pms, const md5_byte_t *data /*[64]*/)
-{
-    md5_word_t
-	a = pms->abcd[0], b = pms->abcd[1],
-	c = pms->abcd[2], d = pms->abcd[3];
-    md5_word_t t;
-#if BYTE_ORDER > 0
-    /* Define storage only for big-endian CPUs. */
-    md5_word_t X[16];
-#else
-    /* Define storage for little-endian or both types of CPUs. */
-    md5_word_t xbuf[16];
-    const md5_word_t *X;
-#endif
-
-    {
-#if BYTE_ORDER == 0
-	/*
-	 * Determine dynamically whether this is a big-endian or
-	 * little-endian machine, since we can use a more efficient
-	 * algorithm on the latter.
-	 */
-	static const int w = 1;
-
-	if (*((const md5_byte_t *)&w)) /* dynamic little-endian */
-#endif
-#if BYTE_ORDER <= 0		/* little-endian */
-	{
-	    /*
-	     * On little-endian machines, we can process properly aligned
-	     * data without copying it.
-	     */
-	    if (!((data - (const md5_byte_t *)0) & 3)) {
-		/* data are properly aligned */
-		X = (const md5_word_t *)data;
-	    } else {
-		/* not aligned */
-		memcpy(xbuf, data, 64);
-		X = xbuf;
-	    }
-	}
-#endif
-#if BYTE_ORDER == 0
-	else			/* dynamic big-endian */
-#endif
-#if BYTE_ORDER >= 0		/* big-endian */
-	{
-	    /*
-	     * On big-endian machines, we must arrange the bytes in the
-	     * right order.
-	     */
-	    const md5_byte_t *xp = data;
-	    int i;
-
-#  if BYTE_ORDER == 0
-	    X = xbuf;		/* (dynamic only) */
-#  else
-#    define xbuf X		/* (static only) */
-#  endif
-	    for (i = 0; i < 16; ++i, xp += 4)
-		xbuf[i] = xp[0] + (xp[1] << 8) + (xp[2] << 16) + (xp[3] << 24);
-	}
-#endif
-    }
-
-#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32 - (n))))
-
-    /* Round 1. */
-    /* Let [abcd k s i] denote the operation
-       a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */
-#define F(x, y, z) (((x) & (y)) | (~(x) & (z)))
-#define SET(a, b, c, d, k, s, Ti)\
-  t = a + F(b,c,d) + X[k] + Ti;\
-  a = ROTATE_LEFT(t, s) + b
-    /* Do the following 16 operations. */
-    SET(a, b, c, d,  0,  7,  T1);
-    SET(d, a, b, c,  1, 12,  T2);
-    SET(c, d, a, b,  2, 17,  T3);
-    SET(b, c, d, a,  3, 22,  T4);
-    SET(a, b, c, d,  4,  7,  T5);
-    SET(d, a, b, c,  5, 12,  T6);
-    SET(c, d, a, b,  6, 17,  T7);
-    SET(b, c, d, a,  7, 22,  T8);
-    SET(a, b, c, d,  8,  7,  T9);
-    SET(d, a, b, c,  9, 12, T10);
-    SET(c, d, a, b, 10, 17, T11);
-    SET(b, c, d, a, 11, 22, T12);
-    SET(a, b, c, d, 12,  7, T13);
-    SET(d, a, b, c, 13, 12, T14);
-    SET(c, d, a, b, 14, 17, T15);
-    SET(b, c, d, a, 15, 22, T16);
-#undef SET
-
-     /* Round 2. */
-     /* Let [abcd k s i] denote the operation
-          a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */
-#define G(x, y, z) (((x) & (z)) | ((y) & ~(z)))
-#define SET(a, b, c, d, k, s, Ti)\
-  t = a + G(b,c,d) + X[k] + Ti;\
-  a = ROTATE_LEFT(t, s) + b
-     /* Do the following 16 operations. */
-    SET(a, b, c, d,  1,  5, T17);
-    SET(d, a, b, c,  6,  9, T18);
-    SET(c, d, a, b, 11, 14, T19);
-    SET(b, c, d, a,  0, 20, T20);
-    SET(a, b, c, d,  5,  5, T21);
-    SET(d, a, b, c, 10,  9, T22);
-    SET(c, d, a, b, 15, 14, T23);
-    SET(b, c, d, a,  4, 20, T24);
-    SET(a, b, c, d,  9,  5, T25);
-    SET(d, a, b, c, 14,  9, T26);
-    SET(c, d, a, b,  3, 14, T27);
-    SET(b, c, d, a,  8, 20, T28);
-    SET(a, b, c, d, 13,  5, T29);
-    SET(d, a, b, c,  2,  9, T30);
-    SET(c, d, a, b,  7, 14, T31);
-    SET(b, c, d, a, 12, 20, T32);
-#undef SET
-
-     /* Round 3. */
-     /* Let [abcd k s t] denote the operation
-          a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-#define SET(a, b, c, d, k, s, Ti)\
-  t = a + H(b,c,d) + X[k] + Ti;\
-  a = ROTATE_LEFT(t, s) + b
-     /* Do the following 16 operations. */
-    SET(a, b, c, d,  5,  4, T33);
-    SET(d, a, b, c,  8, 11, T34);
-    SET(c, d, a, b, 11, 16, T35);
-    SET(b, c, d, a, 14, 23, T36);
-    SET(a, b, c, d,  1,  4, T37);
-    SET(d, a, b, c,  4, 11, T38);
-    SET(c, d, a, b,  7, 16, T39);
-    SET(b, c, d, a, 10, 23, T40);
-    SET(a, b, c, d, 13,  4, T41);
-    SET(d, a, b, c,  0, 11, T42);
-    SET(c, d, a, b,  3, 16, T43);
-    SET(b, c, d, a,  6, 23, T44);
-    SET(a, b, c, d,  9,  4, T45);
-    SET(d, a, b, c, 12, 11, T46);
-    SET(c, d, a, b, 15, 16, T47);
-    SET(b, c, d, a,  2, 23, T48);
-#undef SET
-
-     /* Round 4. */
-     /* Let [abcd k s t] denote the operation
-          a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
-#define I(x, y, z) ((y) ^ ((x) | ~(z)))
-#define SET(a, b, c, d, k, s, Ti)\
-  t = a + I(b,c,d) + X[k] + Ti;\
-  a = ROTATE_LEFT(t, s) + b
-     /* Do the following 16 operations. */
-    SET(a, b, c, d,  0,  6, T49);
-    SET(d, a, b, c,  7, 10, T50);
-    SET(c, d, a, b, 14, 15, T51);
-    SET(b, c, d, a,  5, 21, T52);
-    SET(a, b, c, d, 12,  6, T53);
-    SET(d, a, b, c,  3, 10, T54);
-    SET(c, d, a, b, 10, 15, T55);
-    SET(b, c, d, a,  1, 21, T56);
-    SET(a, b, c, d,  8,  6, T57);
-    SET(d, a, b, c, 15, 10, T58);
-    SET(c, d, a, b,  6, 15, T59);
-    SET(b, c, d, a, 13, 21, T60);
-    SET(a, b, c, d,  4,  6, T61);
-    SET(d, a, b, c, 11, 10, T62);
-    SET(c, d, a, b,  2, 15, T63);
-    SET(b, c, d, a,  9, 21, T64);
-#undef SET
-
-     /* Then perform the following additions. (That is increment each
-        of the four registers by the value it had before this block
-        was started.) */
-    pms->abcd[0] += a;
-    pms->abcd[1] += b;
-    pms->abcd[2] += c;
-    pms->abcd[3] += d;
-}
-
-void
-md5_init(md5_state_t *pms)
-{
-    pms->count[0] = pms->count[1] = 0;
-    pms->abcd[0] = 0x67452301;
-    pms->abcd[1] = /*0xefcdab89*/ T_MASK ^ 0x10325476;
-    pms->abcd[2] = /*0x98badcfe*/ T_MASK ^ 0x67452301;
-    pms->abcd[3] = 0x10325476;
-}
-
-void
-md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes)
-{
-    const md5_byte_t *p = data;
-    int left = nbytes;
-    int offset = (pms->count[0] >> 3) & 63;
-    md5_word_t nbits = (md5_word_t)(nbytes << 3);
-
-    if (nbytes <= 0)
-	return;
-
-    /* Update the message length. */
-    pms->count[1] += nbytes >> 29;
-    pms->count[0] += nbits;
-    if (pms->count[0] < nbits)
-	pms->count[1]++;
-
-    /* Process an initial partial block. */
-    if (offset) {
-	int copy = (offset + nbytes > 64 ? 64 - offset : nbytes);
-
-	memcpy(pms->buf + offset, p, copy);
-	if (offset + copy < 64)
-	    return;
-	p += copy;
-	left -= copy;
-	md5_process(pms, pms->buf);
-    }
-
-    /* Process full blocks. */
-    for (; left >= 64; p += 64, left -= 64)
-	md5_process(pms, p);
-
-    /* Process a final partial block. */
-    if (left)
-	memcpy(pms->buf, p, left);
-}
-
-void
-md5_finish(md5_state_t *pms, md5_byte_t digest[16])
-{
-    static const md5_byte_t pad[64] = {
-	0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-    };
-    md5_byte_t data[8];
-    int i;
-
-    /* Save the length before padding. */
-    for (i = 0; i < 8; ++i)
-	data[i] = (md5_byte_t)(pms->count[i >> 2] >> ((i & 3) << 3));
-    /* Pad to 56 bytes mod 64. */
-    md5_append(pms, pad, ((55 - (pms->count[0] >> 3)) & 63) + 1);
-    /* Append the length. */
-    md5_append(pms, data, 8);
-    for (i = 0; i < 16; ++i)
-	digest[i] = (md5_byte_t)(pms->abcd[i >> 2] >> ((i & 3) << 3));
-}
--- a/loudmouth/tsrc/bmarm/tstlmu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
-
--- a/loudmouth/tsrc/bwins/tstlmu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &)
-
--- a/loudmouth/tsrc/conf/tstlm.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,575 +0,0 @@
-[Define]
-SERVER       chat.gizmoproject.com
-USERNAME     prima@chat.gizmoproject.com
-PASSWORD     donna
-RECIPIENT    donna.prima@gmail.com
-MESSAGE      Hello
-RESOURCE     mytesds5rt123
-
-UnexistGizmoJID   			testlmnokia1111@chat.gizmoproject.com
-OnlyDomainofJID				@chat.gizmoproject.com
-UnexistGTalkJID				abcd123_mk@gmail.com
-BadGizmoDomain				prima@chat.gizmoooproject.com
-BadGtalkDomain				nokiaprima@gmaiiil.com
-badpassword  				12345 
-badserver    				chat.gizmoprojeeeect.com
-UsernameWithBadServer  			testlmnokia@chat.gizmoprojeeeeect.com
-SpecialUSERNAME				im:here%27s_a_wild_%26_%2Fcr%zy%2F_address@chat.gizmoproject.com
-LONGUSERNAME				im:here%27s_a_wild_%26_%2Fcr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address@chat.gizmoproject.com
-LONGPASSWORD				thisisawrongpasswordandthetestcaseshouldnotfail		  
-LONGMESSAGE		  			HelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworlsfsdfdgdfgdfgdfgdfgdf
-REPEATEDMESSAGE				RepeatingHello
-SMILEYMESSAGE				:):-);-):-D:D:-(:(
-GIZMOCONTACT				harsh_rakesh@chat.gizmoproject.com
-
-EMPTYCONTACT				Emptycontact@chat.gizmoproject.com
-EMPTYPASSWORD				test
-
-LONGGMAILUSERID 				abcd123456abcd123456abcd123456@gmail.com
-GMAILPWD					nokia123
-
-PROXY_SERVER 172.16.9.181
-PROXY_PORT   8080
-[Enddefine]
-
-[Test]
-title 1. lm_connection_new
-create tstlm LmObj
-LmObj lm_connection_new SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-[Test]
-title 2. lm_connection_send
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 3. lm_fetching_contactlist
-create tstlm LmObj
-LmObj lm_fetching_contactlist SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 4. lm_fetching_presence
-create tstlm LmObj
-LmObj lm_fetching_presence SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 5. lm_connection_new_with_context
-create tstlm LmObj
-LmObj lm_new_with_context
-delete LmObj
-[Endtest] 
-
-[Test]
-title 6. lm_connection_open
-create tstlm LmObj
-LmObj lm_connection_open SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 7. lm_connection_closeWhenNotOpen
-create tstlm LmObj
-LmObj lm_connection_closeWhenNotOpen SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 8. lm_connection_authenticate
-create tstlm LmObj
-LmObj lm_authenticate SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 9. lm_connection_is_open
-create tstlm LmObj
-LmObj lm_connection_is_open SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 10. lm_connection_authenticate_withbadpassword
-create tstlm LmObj
-LmObj lm_authenticate_badpassword SERVER USERNAME badpassword RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 11. lm_connection_authenticate when connection is closed
-create tstlm LmObj
-LmObj lm_authenticate_connectionisnotcreated SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 12. lm_connection_is_open_WhenConnectionIsClosed
-create tstlm LmObj
-LmObj lm_connection_is_open_WhenConnectionIsClosed SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 13. lm_connection_close
-create tstlm LmObj
-LmObj lm_connection_close SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 14. lm_connection_is_authenticated
-create tstlm LmObj
-LmObj lm_is_authenticated SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 15. lm_connection_is_authenticated_WhenNot_Authenticated
-create tstlm LmObj
-LmObj lm_connection_is_authenticated_WhenNot_Authenticated SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 16. lm_connection_set_get_server
-create tstlm LmObj
-LmObj lm_connection_set_get_server SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 17. lm_connection_set_get_port
-create tstlm LmObj
-LmObj lm_connection_set_get_port
-delete LmObj
-[Endtest]
-
-[Test]
-title 18. lm_connection_set_get_ssl
-create tstlm LmObj
-LmObj lm_connection_set_get_ssl
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 19. lm_connection_set_get_proxy
-create tstlm LmObj
-LmObj lm_connection_set_get_proxy
-delete LmObj
-[Endtest]
-
-[Test]
-title 20. lm_connection_set_get_jid
-create tstlm LmObj
-LmObj lm_connection_set_get_jid SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 21. lm_connection_set_jid_WithNull
-create tstlm LmObj
-LmObj lm_connection_set_jid_WithNull SERVER \0 PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 22. lm_connection_set_port_WithNULL
-create tstlm LmObj
-LmObj lm_connection_set_port_WithNULL
-delete LmObj
-[Endtest]
-
-[Test]
-title 23. lm_connection_set_server_withNULL
-create tstlm LmObj
-LmObj lm_connection_set_server_withNULL   \0 USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 24. lm_connection_set_disconnect_function
-create tstlm LmObj
-LmObj set_disconnect_function SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 25. lm_connection_send_with_reply
-create tstlm LmObj
-LmObj lm_send_with_reply SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 26. lm_proxy_set_get_port
-create tstlm LmObj
-LmObj lm_proxy_set_get_port
-delete LmObj
-[Endtest] 
-
-[Test]
-title 27. lm_proxy_set_get_type
-create tstlm LmObj
-LmObj lm_proxy_set_get_type
-delete LmObj
-[Endtest] 
-
-[Test]
-title 28. lm_proxy_set_get_server
-create tstlm LmObj
-LmObj lm_proxy_set_get_server
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 29. lm_proxy_set_get_username
-create tstlm LmObj
-LmObj lm_proxy_set_get_username
-delete LmObj
-[Endtest] 
-
-
-
-[Test]
-title 30. lm_proxy_set_get_password
-create tstlm LmObj
-LmObj lm_proxy_set_get_password
-delete LmObj
-[Endtest] 
-
-[Test]
-title 31. lm_proxy_new
-create tstlm LmObj
-LmObj lm_proxy_new
-delete LmObj
-[Endtest] 
-
-[Test]
-title 32. lm_proxy_new_with_server
-create tstlm LmObj
-LmObj lm_proxy_new_with_server
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 33. lm_proxy_ref
-create tstlm LmObj
-LmObj lm_proxy_ref
-delete LmObj
-[Endtest] 
-
-[Test]
-title 34. lm_proxy_unref
-create tstlm LmObj
-LmObj lm_proxy_unref
-delete LmObj
-[Endtest] 
-
-[Test]
-title 35. lm_ssl_new
-create tstlm LmObj
-LmObj lm_ssl_new
-delete LmObj
-[Endtest] 
-
-[Test]
-title 36. lm_ssl_is_supported
-create tstlm LmObj
-LmObj lm_ssl_is_supported
-delete LmObj
-[Endtest] 
-
-[Test]
-title 37. lm_ssl_get_fingerprint
-create tstlm LmObj
-LmObj lm_ssl_get_fingerprint
-delete LmObj
-[Endtest] 
-
-[Test]
-title 38. lm_ssl_ref
-create tstlm LmObj
-LmObj lm_ssl_ref
-delete LmObj
-[Endtest] 
-
-[Test]
-title 39. lm_ssl_unref
-create tstlm LmObj
-LmObj lm_ssl_unref
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 40. lm_message_node_ref
-create tstlm LmObj
-LmObj lm_message_node_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 41. lm_message_node_unref
-create tstlm LmObj
-LmObj lm_message_node_unref
-delete LmObj
-[Endtest]
-
-[Test]
-title 42. lm_message_node_to_string
-create tstlm LmObj
-LmObj lm_message_node_to_string
-delete LmObj
-[Endtest]
-
-
-\\failed when run together. passed independantly
-[Test]
-title 43. lm_message_node_set_get_attributes
-create tstlm LmObj
-LmObj lm_message_node_set_get_attributes
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 44. lm_message_node_set_get_raw_mode
-create tstlm LmObj
-LmObj lm_message_node_set_get_raw_mode
-delete LmObj
-[Endtest]
-
-\\failed when run together. passed independantly
-[Test]
-title 45. lm_message_node_add_child
-create tstlm LmObj
-LmObj lm_message_node_add_child
-delete LmObj
-[Endtest]
-
-[Test]
-title 46. lm_message_node_get_child
-create tstlm LmObj
-LmObj lm_message_node_get_child
-delete LmObj
-[Endtest]
-
-[Test]
-title 47. lm_message_node_find_child
-create tstlm LmObj
-LmObj lm_message_node_find_child
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 48. lm_message_node_set_get_value
-create tstlm LmObj
-LmObj lm_message_node_set_get_value
-delete LmObj
-[Endtest]
-
-[Test]
-title 49. lm_message_handler_new
-create tstlm LmObj
-LmObj lm_message_handler_new SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 50. lm_message_handler_invalidate
-create tstlm LmObj
-LmObj lm_message_handler_invalidate
-delete LmObj
-[Endtest]
-
-[Test]
-title 51. lm_message_handler_is_valid
-create tstlm LmObj
-LmObj lm_message_handler_is_valid
-delete LmObj
-[Endtest]
-
-[Test]
-title 52. lm_message_handler_ref
-create tstlm LmObj
-LmObj lm_message_handler_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 53. lm_message_handler_unref
-create tstlm LmObj
-LmObj lm_message_handler_unref
-delete LmObj
-[Endtest]
-
-[Test]
-title 54. lm_message_new
-create tstlm LmObj
-LmObj lm_message_new SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-[Test]
-title 55. lm_message_new_with_sub_type
-create tstlm LmObj
-LmObj lm_message_new_with_sub_type SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 56. lm_message_get_type
-create tstlm LmObj
-LmObj lm_message_get_type
-delete LmObj
-[Endtest]
-
-[Test]
-title 57. lm_message_get_sub_type
-create tstlm LmObj
-LmObj lm_message_get_sub_type
-delete LmObj
-[Endtest]
-
-[Test]
-title 58. lm_message_get_node
-create tstlm LmObj
-LmObj lm_message_get_node
-delete LmObj
-[Endtest]
-
-[Test]
-title 59. lm_message_ref
-create tstlm LmObj
-LmObj lm_message_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 60. lm_message_unref
-create tstlm LmObj
-LmObj lm_message_unref
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 61. lm_connection_get_state
-create tstlm LmObj
-LmObj lm_connection_get_state SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 62. lm_connection_ref
-create tstlm LmObj
-LmObj lm_connection_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 63. lm_connection_unref
-create tstlm LmObj
-LmObj lm_connection_unref
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 64. lm_connection_send_raw
-create tstlm LmObj
-LmObj lm_connection_send_raw SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 65. lm_register_message_handler
-create tstlm LmObj
-LmObj register_message_handler SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 66. lm_set_ssl_WithNULL
-create tstlm LmObj
-LmObj lm_connection_set_ssl_WithNULL
-delete LmObj
-[Endtest]
-
-[Test]
-title 67. lm_connection_authenticate_withUnexistJID
-create tstlm LmObj
-LmObj lm_authenticate_unexistjid SERVER UnexistGizmoJID PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 68. lm_login_test_with_SpecialChar_JID
-create tstlm LmObj
-LmObj lm_login_test SERVER SpecialUSERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 69. lm_login_test_with_Long_JID
-create tstlm LmObj
-LmObj lm_login_test SERVER LONGUSERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 70. lm_login_test_with_Long_PASSWORD
-create tstlm LmObj
-LmObj lm_login_test SERVER USERNAME LONGPASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 71. lm_send_long_message
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD RECIPIENT LONGMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 72. lm_send_400chars
-create tstlm LmObj
-LmObj lm_connection_send400char SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 73. lm_send_repeated
-create tstlm LmObj
-LmObj lm_connection_send_repeated SERVER USERNAME PASSWORD RECIPIENT REPEATEDMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 74. lm_send_smiley
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD RECIPIENT SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
--- a/loudmouth/tsrc/conf/tstlm1.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,304 +0,0 @@
-[Define]
-SERVER       chat.gizmoproject.com
-USERNAME     prima@chat.gizmoproject.com
-PASSWORD     donna
-RECIPIENT    donna.prima@gmail.com
-MESSAGE      Hello
-RESOURCE     mytesds5rt123
-
-UnexistGizmoJID   			testlmnokia1111@chat.gizmoproject.com
-OnlyDomainofJID					@chat.gizmoproject.com
-UnexistGTalkJID					abcd123_mk@gmail.com
-BadGizmoDomain					prima@chat.gizmoooproject.com
-badpassword  						12345 
-badserver    						chat.gizmoprojeeeect.com
-UsernameWithBadServer  	testlmnokia@chat.gizmoprojeeeeect.com
-SpecialUSERNAME					im:here%27s_a_wild_%26_%2Fcr%zy%2F_address@chat.gizmoproject.com
-LONGUSERNAME						im:here%27s_a_wild_%26_%2Fcr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address@chat.gizmoproject.com
-LONGPASSWORD 						loudmouthloudmouthloudmouthloudmouthloudmouthloudmouthloudmouthloudmouthloudmouthloudmouthloudmouth
-LONGMESSAGE		  				HelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworlsfsdfdgdfgdfgdfgdfgdf
-REPEATEDMESSAGE					RepeatingHello
-SMILEYMESSAGE						:):-);-):-D:D:-(:(
-GIZMOCONTACT						harsh_rakesh@chat.gizmoproject.com
-
-EMPTYCONTACT						Emptycontact@chat.gizmoproject.com
-EMPTYPASSWORD						test
-
-LONGGMAILUSERID 				abcd123456abcd123456abcd123456@gmail.com
-GMAILPWD								nokia123
-
-PROXY_SERVER 172.16.9.181
-PROXY_PORT   8080
-[Enddefine]
-
-[Test]
-title 75. lm_add_contact
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD GIZMOCONTACT SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 76. lm_remove_contact
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD GIZMOCONTACT SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 77. lm_subscribe_contact
-create tstlm LmObj
-LmObj lm_subscribe_contact SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 78. lm_send_receive
-create tstlm LmObj
-LmObj lm_connection_send_receive SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 80. lm_send_to_LongGmailUserid
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD LONGGMAILUSERID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 81. lm_connection_cancel_open
-create tstlm LmObj
-LmObj lm_connection_cancel_open SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 82. lm_send_image_bytestream_msg
-create tstlm LmObj
-LmObj lm_connection_send_image_bytestream_msg SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 83. lm_send_image_bytestream_iq
-create tstlm LmObj
-LmObj lm_connection_send_image_bytestream_iq SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 84. lm_get_privacy_lists
-create tstlm LmObj
-LmObj lm_connection_get_privacy_lists SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 85. lm_set_privacy_lists
-create tstlm LmObj
-LmObj lm_connection_set_privacy_lists SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 86. lm_get_one_privacy_list
-create tstlm LmObj
-LmObj lm_connection_get_one_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 87. lm_set_one_privacy_list
-create tstlm LmObj
-LmObj lm_connection_get_one_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 88. lm_create_one_privacy_list
-create tstlm LmObj
-LmObj lm_connection_create_one_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 89. lm_get_one_unexist_privacy_list
-create tstlm LmObj
-LmObj lm_connection_get_one_unexist_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 90. lm_set_one_unexist_privacy_list
-create tstlm LmObj
-LmObj lm_connection_set_one_unexist_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 91. lm_get_many_privacy_list_from_listname
-create tstlm LmObj
-LmObj lm_connection_get_many_privacy_list_from_listname SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test] 
-title 92. lm_set_active_list
-create tstlm LmObj
-LmObj lm_connection_set_active_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 93. lm_set_unexist_active_list
-create tstlm LmObj
-LmObj lm_connection_set_unexist_active_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 94. lm_set_decline_active_list
-create tstlm LmObj
-LmObj lm_connection_set_decline_active_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 95. lm_block_contact
-create tstlm LmObj
-LmObj lm_connection_block_contact SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 96. lm_unblock_contact
-create tstlm LmObj
-LmObj lm_connection_unblock_contact SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 97. lm_send_multiple_conn
-create tstlm LmObj
-LmObj lm_connection_send_multiple_conn SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 98. lm_service_discovery
-create tstlm LmObj
-LmObj lm_service_discovery SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 99. lm_simple_communications_blocking
-create tstlm LmObj
-LmObj lm_simple_communications_blocking SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 100. lm_service_discovery_connected_resource
-create tstlm LmObj
-LmObj lm_service_discovery_connected_resource SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 101. lm_send_im_with_reply_unexistjid_gizmo
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD UnexistGizmoJID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 102. lm_add_contact_unexistjid_gizmo
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD UnexistGizmoJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 103. lm_remove_contact_unexisting_gizmo
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD UnexistGizmoJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 104. lm_add_contact_unexistjid_gtalk
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD UnexistGTalkJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 105. lm_remove_contact_unexisting_gtalk
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD UnexistGTalkJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 106. lm_add_contact_long_gtalkid
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD LONGGMAILUSERID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 107. lm_remove_contact_long_gtalkid
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD LONGGMAILUSERID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 108. lm_send_im_with_reply
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 109. lm_fetching_empty_contactlist
-create tstlm LmObj
-LmObj lm_fetching_contactlist SERVER EMPTYCONTACT EMPTYPASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 110. lm_change_own_presence
-create tstlm LmObj
-LmObj lm_change_own_presence SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE
- PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 111. lm_send_im_with_reply_invalid_gizmo
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD UnexistGizmoJID MESSAGE RES
-OURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 112. lm_send_im_with_reply_invalid_gizmodomain_only
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD OnlyDomainofJID MESSAGE RES
-OURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
--- a/loudmouth/tsrc/conf/tstlm_NFT.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-[Define]
-SERVER       talk.google.com
-USERNAME     nokiaprima@gmail.com
-PASSWORD     nokianokia
-RECIPIENT    donna.prima@gmail.com
-MESSAGE      Hello
-RESOURCE      mytesds5rt123
-USERNAME1     rakesh.harsh@gmail.com
-PASSWORD1     majisay82
-UnexistGizmoJID   			testlmnokia1111@chat.gizmoproject.com
-UnexistGTalkJID					abcd123_mk@gmail.com
-OnlyDomainofJID					@gmail.com
-BadGizmoDomain					prima@chat.gizmoooproject.com
-BadGtalkDomain					nokiaprima@gmaiiil.com
-badpassword  						12345 
-badserver    						talk.goo456gly.com
-SpecialUSERNAME					im:here%27s_a_wild_%26_%2Fcr%zy%2F_address@gmail.com
-LONGUSERNAME						im:here%27s_a_wild_%26_%2Fr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address@gmail.com
-LONGMESSAGE		  				HelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworlsfsdfdgdfgdfgdfgdfgdf
-REPEATEDMESSAGE					RepeatingHello
-SMILEYMESSAGE						:):-);-):-D:D:-(:(
-GIZMOCONTACT						harsh_rakesh@chat.gizmoproject.com
-LONGPASSWORD						thisisawrongpasswordandthetestcaseshouldnotfail
-SPECIALMESSAGE 					hello&*&*^#^*)%)@$)*@)(*%%(*!^%@^#%
-EMPTYCONTACT						Emptycontact@gmail.com
-EMPTYPASSWORD						testtesttest
-EMPTYDOMAIN							nokiaprima
-LONGGMAILUSERID 				abcd123456abcd123456abcd123456@gmail.com
-GMAILPWD								nokia123
-UsernameWithBadServer   prima@talk.goo456gly.com
-
-
-PROXY_SERVER 172.16.42.135
-PROXY_PORT   8080
-
-[Enddefine]
-
-[Test]
-title 1. lm_nft_updating_presence
-create tstlm LmObj
-LmObj lm_nft_updating_presence SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-[Test]
-title 2. lm_nft_presence_notification
-create tstlm LmObj
-LmObj lm_nft_presence_notification SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-[Test]
-title 3. lm_nft_send_text_message
-create tstlm LmObj
-LmObj lm_nft_send_text_message SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-[Test]
-title 4. lm_nft_open_conversation_with_multiple
-create tstlm LmObj
-LmObj lm_nft_open_conversation_with_multiple SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-[Test]
-title 5. lm_nft_fetch300_contact
-create tstlm LmObj
-LmObj lm_nft_fetch300_contact SERVER USERNAME1 PASSWORD1 RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-[Test]
-title 6. lm_nft_loginlogoutmultipletime
-create tstlm LmObj
-LmObj lm_nft_loginlogoutmultipletime SERVER USERNAME1 PASSWORD1 RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-
-
-
--- a/loudmouth/tsrc/conf/tstlm_gizmo.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,592 +0,0 @@
-[Define]
-SERVER       chat.gizmoproject.com
-USERNAME     prima@chat.gizmoproject.com
-PASSWORD     donna
-RECIPIENT    donna.prima@gmail.com
-MESSAGE      Hello
-RESOURCE     mytesds5rt123
-
-UnexistGizmoJID   			testlmnokia1111@chat.gizmoproject.com
-OnlyDomainofJID					@chat.gizmoproject.com
-UnexistGTalkJID					abcd123_mk@gmail.com
-BadGizmoDomain					prima@chat.gizmooo123project.com
-BadGtalkDomain					nokiaprima@gmaiiil.com
-badpassword  						12345 
-badserver    						chat.gizmoprojeeeect.com
-UsernameWithBadServer  	testlmnokia@chat.gizmoproj123eeeeect.com
-SpecialUSERNAME					im:here%27s_a_wild_%26_%2Fcr%zy%2F_address@chat.gizmoproject.com
-LONGUSERNAME						im:here%27s_a_wild_%26_%2Fcr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address@chat.gizmoproject.com
-LONGPASSWORD						thisisawrongpasswordandthetestcaseshouldnotfail		  
-LONGMESSAGE		  				HelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworlsfsdfdgdfgdfgdfgdfgdf
-SPECIALMESSAGE 					hello&*&*^#^*)%)@$)*@)(*%%(*!^%@^#%
-REPEATEDMESSAGE					RepeatingHello
-SMILEYMESSAGE						:):-);-):-D:D:-(:(
-GIZMOCONTACT						harsh_rakesh@chat.gizmoproject.com
-
-EMPTYCONTACT						Emptycontact@chat.gizmoproject.com
-EMPTYPASSWORD						test
-EMPTYDOMAIN							prima
-LONGGMAILUSERID 				abcd123456abcd123456abcd123456@gmail.com
-GMAILPWD								nokia123
-
-
-PROXY_SERVER 172.16.9.181
-PROXY_PORT   8080
-
-[Enddefine]
-
-[Test]
-title 1. lm_connection_new
-create tstlm LmObj
-LmObj lm_connection_new SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-[Test]
-title 2. lm_connection_send
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 3. lm_fetching_contactlist
-create tstlm LmObj
-LmObj lm_fetching_contactlist SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 4. lm_fetching_presence
-create tstlm LmObj
-LmObj lm_fetching_presence SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 5. lm_connection_new_with_context
-create tstlm LmObj
-LmObj lm_new_with_context
-delete LmObj
-[Endtest] 
-
-[Test]
-title 6. lm_connection_open
-create tstlm LmObj
-LmObj lm_connection_open SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 7. lm_connection_closeWhenNotOpen
-create tstlm LmObj
-LmObj lm_connection_closeWhenNotOpen SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 8. lm_connection_authenticate
-create tstlm LmObj
-LmObj lm_authenticate SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 9. lm_connection_is_open
-create tstlm LmObj
-LmObj lm_connection_is_open SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 10. lm_connection_authenticate_withbadpassword
-create tstlm LmObj
-LmObj lm_authenticate_badpassword SERVER USERNAME badpassword RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 11. lm_connection_authenticate when connection is closed
-create tstlm LmObj
-LmObj lm_authenticate_connectionisnotcreated SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-
-[Test]
-title 12. lm_connection_is_open_WhenConnectionIsClosed
-create tstlm LmObj
-LmObj lm_connection_is_open_WhenConnectionIsClosed SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 13. lm_connection_close
-create tstlm LmObj
-LmObj lm_connection_close SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 14. lm_connection_is_authenticated
-create tstlm LmObj
-LmObj lm_is_authenticated SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 15. lm_connection_is_authenticated_WhenNot_Authenticated
-create tstlm LmObj
-LmObj lm_connection_is_authenticated_WhenNot_Authenticated SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 16. lm_connection_set_get_server
-create tstlm LmObj
-LmObj lm_connection_set_get_server SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 17. lm_connection_set_get_port
-create tstlm LmObj
-LmObj lm_connection_set_get_port
-delete LmObj
-[Endtest]
-
-[Test]
-title 18. lm_connection_set_get_ssl
-create tstlm LmObj
-LmObj lm_connection_set_get_ssl
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 19. lm_connection_set_get_proxy
-create tstlm LmObj
-LmObj lm_connection_set_get_proxy
-delete LmObj
-[Endtest]
-
-[Test]
-title 20. lm_connection_set_get_jid
-create tstlm LmObj
-LmObj lm_connection_set_get_jid SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-
-[Test]
-title 21. lm_connection_set_jid_WithNull
-create tstlm LmObj
-LmObj lm_connection_set_jid_WithNull SERVER \0 PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-
-[Test]
-title 22. lm_connection_set_port_WithNULL
-create tstlm LmObj
-LmObj lm_connection_set_port_WithNULL
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 23. lm_connection_set_server_withNULL
-create tstlm LmObj
-LmObj lm_connection_set_server_withNULL   \0 USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 24. lm_connection_set_disconnect_function
-create tstlm LmObj
-LmObj set_disconnect_function SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 25. lm_connection_send_with_reply
-create tstlm LmObj
-LmObj lm_send_with_reply SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 26. lm_proxy_set_get_port
-create tstlm LmObj
-LmObj lm_proxy_set_get_port
-delete LmObj
-[Endtest] 
-
-[Test]
-title 27. lm_proxy_set_get_type
-create tstlm LmObj
-LmObj lm_proxy_set_get_type
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 28. lm_proxy_set_get_server
-create tstlm LmObj
-LmObj lm_proxy_set_get_server
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 29. lm_proxy_set_get_username
-create tstlm LmObj
-LmObj lm_proxy_set_get_username
-delete LmObj
-[Endtest] 
-
-
-
-[Test]
-title 30. lm_proxy_set_get_password
-create tstlm LmObj
-LmObj lm_proxy_set_get_password
-delete LmObj
-[Endtest] 
-
-[Test]
-title 31. lm_proxy_new
-create tstlm LmObj
-LmObj lm_proxy_new
-delete LmObj
-[Endtest] 
-
-[Test]
-title 32. lm_proxy_new_with_server
-create tstlm LmObj
-LmObj lm_proxy_new_with_server
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 33. lm_proxy_ref
-create tstlm LmObj
-LmObj lm_proxy_ref
-delete LmObj
-[Endtest] 
-
-[Test]
-title 34. lm_proxy_unref
-create tstlm LmObj
-LmObj lm_proxy_unref
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 35. lm_ssl_new
-create tstlm LmObj
-LmObj lm_ssl_new
-delete LmObj
-[Endtest] 
-
-[Test]
-title 36. lm_ssl_is_supported
-create tstlm LmObj
-LmObj lm_ssl_is_supported
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 37. lm_ssl_get_fingerprint
-create tstlm LmObj
-LmObj lm_ssl_get_fingerprint
-delete LmObj
-[Endtest] 
-
-[Test]
-title 38. lm_ssl_ref
-create tstlm LmObj
-LmObj lm_ssl_ref
-delete LmObj
-[Endtest] 
-
-[Test]
-title 39. lm_ssl_unref
-create tstlm LmObj
-LmObj lm_ssl_unref
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 40. lm_message_node_ref
-create tstlm LmObj
-LmObj lm_message_node_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 41. lm_message_node_unref
-create tstlm LmObj
-LmObj lm_message_node_unref
-delete LmObj
-[Endtest]
-
-[Test]
-title 42. lm_message_node_to_string
-create tstlm LmObj
-LmObj lm_message_node_to_string
-delete LmObj
-[Endtest]
-
-
-\\failed when run together. passed independantly
-[Test]
-title 43. lm_message_node_set_get_attributes
-create tstlm LmObj
-LmObj lm_message_node_set_get_attributes
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 44. lm_message_node_set_get_raw_mode
-create tstlm LmObj
-LmObj lm_message_node_set_get_raw_mode
-delete LmObj
-[Endtest]
-
-\\failed when run together. passed independantly
-[Test]
-title 45. lm_message_node_add_child
-create tstlm LmObj
-LmObj lm_message_node_add_child
-delete LmObj
-[Endtest]
-
-[Test]
-title 46. lm_message_node_get_child
-create tstlm LmObj
-LmObj lm_message_node_get_child
-delete LmObj
-[Endtest]
-
-[Test]
-title 47. lm_message_node_find_child
-create tstlm LmObj
-LmObj lm_message_node_find_child
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 48. lm_message_node_set_get_value
-create tstlm LmObj
-LmObj lm_message_node_set_get_value
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 49. lm_message_handler_new
-create tstlm LmObj
-LmObj lm_message_handler_new SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 50. lm_message_handler_invalidate
-create tstlm LmObj
-LmObj lm_message_handler_invalidate
-delete LmObj
-[Endtest]
-
-[Test]
-title 51. lm_message_handler_is_valid
-create tstlm LmObj
-LmObj lm_message_handler_is_valid
-delete LmObj
-[Endtest]
-
-[Test]
-title 52. lm_message_handler_ref
-create tstlm LmObj
-LmObj lm_message_handler_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 53. lm_message_handler_unref
-create tstlm LmObj
-LmObj lm_message_handler_unref
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 54. lm_message_new
-create tstlm LmObj
-LmObj lm_message_new SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-[Test]
-title 55. lm_message_new_with_sub_type
-create tstlm LmObj
-LmObj lm_message_new_with_sub_type SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 56. lm_message_get_type
-create tstlm LmObj
-LmObj lm_message_get_type
-delete LmObj
-[Endtest]
-
-[Test]
-title 57. lm_message_get_sub_type
-create tstlm LmObj
-LmObj lm_message_get_sub_type
-delete LmObj
-[Endtest]
-
-[Test]
-title 58. lm_message_get_node
-create tstlm LmObj
-LmObj lm_message_get_node
-delete LmObj
-[Endtest]
-
-[Test]
-title 59. lm_message_ref
-create tstlm LmObj
-LmObj lm_message_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 60. lm_message_unref
-create tstlm LmObj
-LmObj lm_message_unref
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 61. lm_connection_get_state
-create tstlm LmObj
-LmObj lm_connection_get_state SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 62. lm_connection_ref
-create tstlm LmObj
-LmObj lm_connection_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 63. lm_connection_unref
-create tstlm LmObj
-LmObj lm_connection_unref
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 64. lm_connection_send_raw
-create tstlm LmObj
-LmObj lm_connection_send_raw SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 65. lm_register_message_handler
-create tstlm LmObj
-LmObj register_message_handler SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-
-[Test]
-title 66. lm_set_ssl_WithNULL
-create tstlm LmObj
-LmObj lm_connection_set_ssl_WithNULL
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 67. lm_connection_authenticate_withUnexistJID
-create tstlm LmObj
-LmObj lm_authenticate_unexistjid SERVER UnexistGizmoJID PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 68. lm_login_test_with_SpecialChar_JID
-create tstlm LmObj
-LmObj lm_login_test SERVER SpecialUSERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 69. lm_login_test_with_Long_JID
-create tstlm LmObj
-LmObj lm_login_test SERVER LONGUSERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 70. lm_login_test_with_Long_PASSWORD
-create tstlm LmObj
-LmObj lm_login_test SERVER USERNAME LONGPASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 71. lm_send_long_message
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD RECIPIENT LONGMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 72. lm_send_400chars
-create tstlm LmObj
-LmObj lm_connection_send400char SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 73. lm_send_repeated
-create tstlm LmObj
-LmObj lm_connection_send_repeated SERVER USERNAME PASSWORD RECIPIENT REPEATEDMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 74. lm_send_smiley
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD RECIPIENT SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
--- a/loudmouth/tsrc/conf/tstlm_gizmo1.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,356 +0,0 @@
-[Define]
-SERVER       chat.gizmoproject.com
-USERNAME     prima@chat.gizmoproject.com
-PASSWORD     donna
-RECIPIENT    donna.prima@gmail.com
-MESSAGE      Hello
-RESOURCE     mytesds5rt123
-
-UnexistGizmoJID   			testlmnokia1111@chat.gizmoproject.com
-OnlyDomainofJID					@chat.gizmoproject.com
-UnexistGTalkJID					abcd123_mk@gmail.com
-BadGizmoDomain					prima@chat.gizmo123ooproject.com
-badpassword  						12345 
-badserver    						chat.gizmop123rojeeeect.com
-UsernameWithBadServer  	testlmnokia@chat.gizmoprojeeeeect.com
-SpecialUSERNAME					im:here%27s_a_wild_%26_%2Fcr%zy%2F_address@chat.gizmoproject.com
-LONGUSERNAME						im:here%27s_a_wild_%26_%2Fcr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address@chat.gizmoproject.com
-LONGPASSWORD 						loudmouthloudmouthloudmouthloudmouthloudmouthloudmouthloudmouthloudmouthloudmouthloudmouthloudmouth
-LONGMESSAGE		  				HelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworlsfsdfdgdfgdfgdfgdfgdf
-REPEATEDMESSAGE					RepeatingHello
-SMILEYMESSAGE						:):-);-):-D:D:-(:(
-GIZMOCONTACT						harsh_rakesh@chat.gizmoproject.com
-SPECIALMESSAGE 					hello&*&*^#^*)%)@$)*@)(*%%(*!^%@^#%
-EMPTYCONTACT						Emptycontact@chat.gizmoproject.com
-EMPTYPASSWORD						test
-
-EMPTYDOMAIN							prima
-LONGGMAILUSERID 				abcd123456abcd123456abcd123456@gmail.com
-GMAILPWD								nokia123
-
-PROXY_SERVER 172.16.9.181
-PROXY_PORT   8080
-[Enddefine]
-
-[Test]
-title 75. lm_add_contact
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD GIZMOCONTACT SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 76. lm_remove_contact
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD GIZMOCONTACT SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 77. lm_subscribe_contact
-create tstlm LmObj
-LmObj lm_subscribe_contact SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 78. lm_send_receive
-create tstlm LmObj
-LmObj lm_connection_send_receive SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 80. lm_send_to_LongGmailUserid
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD LONGGMAILUSERID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 81. lm_connection_cancel_open
-create tstlm LmObj
-LmObj lm_connection_cancel_open SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 82. lm_send_image_bytestream_msg
-create tstlm LmObj
-LmObj lm_connection_send_image_bytestream_msg SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 83. lm_send_image_bytestream_iq
-create tstlm LmObj
-LmObj lm_connection_send_image_bytestream_iq SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 84. lm_get_privacy_lists
-create tstlm LmObj
-LmObj lm_connection_get_privacy_lists SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 85. lm_set_privacy_lists
-create tstlm LmObj
-LmObj lm_connection_set_privacy_lists SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 86. lm_get_one_privacy_list
-create tstlm LmObj
-LmObj lm_connection_get_one_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 87. lm_set_one_privacy_list
-create tstlm LmObj
-LmObj lm_connection_get_one_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 88. lm_create_one_privacy_list
-create tstlm LmObj
-LmObj lm_connection_create_one_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 89. lm_get_one_unexist_privacy_list
-create tstlm LmObj
-LmObj lm_connection_get_one_unexist_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 90. lm_set_one_unexist_privacy_list
-create tstlm LmObj
-LmObj lm_connection_set_one_unexist_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 91. lm_get_many_privacy_list_from_listname
-create tstlm LmObj
-LmObj lm_connection_get_many_privacy_list_from_listname SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test] 
-title 92. lm_set_active_list
-create tstlm LmObj
-LmObj lm_connection_set_active_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 93. lm_set_unexist_active_list
-create tstlm LmObj
-LmObj lm_connection_set_unexist_active_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 94. lm_set_decline_active_list
-create tstlm LmObj
-LmObj lm_connection_set_decline_active_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 95. lm_block_contact
-create tstlm LmObj
-LmObj lm_connection_block_contact SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 96. lm_unblock_contact
-create tstlm LmObj
-LmObj lm_connection_unblock_contact SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 97. lm_send_multiple_conn
-create tstlm LmObj
-LmObj lm_connection_send_multiple_conn SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 98. lm_service_discovery
-create tstlm LmObj
-LmObj lm_service_discovery SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 99. lm_simple_communications_blocking
-create tstlm LmObj
-LmObj lm_simple_communications_blocking SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 100. lm_service_discovery_connected_resource
-create tstlm LmObj
-LmObj lm_service_discovery_connected_resource SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 101. lm_send_im_with_reply_unexistjid_gizmo
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD UnexistGizmoJID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 102. lm_add_contact_unexistjid_gizmo
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD UnexistGizmoJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 103. lm_remove_contact_unexisting_gizmo
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD UnexistGizmoJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 104. lm_add_contact_unexistjid_gtalk
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD UnexistGTalkJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 105. lm_remove_contact_unexisting_gtalk
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD UnexistGTalkJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 106. lm_add_contact_long_gtalkid
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD LONGGMAILUSERID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 107. lm_remove_contact_long_gtalkid
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD LONGGMAILUSERID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 108. lm_send_im_with_reply
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 109. lm_fetching_empty_contactlist
-create tstlm LmObj
-LmObj lm_fetching_contactlist SERVER EMPTYCONTACT EMPTYPASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 110. lm_change_own_presence
-create tstlm LmObj
-LmObj lm_change_own_presence SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 111. lm_send_im_with_reply_invalid_gizmo
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD UnexistGizmoJID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 112. lm_send_im_with_reply_invalid_gizmodomain_only
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD OnlyDomainofJID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 113. lm_send_message_with_special_char
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD RECIPIENT SPECIALMESSAGE RESOU
-RCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 114. lm_login_test_with_blank_username
-create tstlm LmObj
-LmObj lm_login_test SERVER \0 PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER P
-ROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 115. lm_login_test_with_blank_password
-create tstlm LmObj
-LmObj lm_login_test SERVER USERNAME \0 RECIPIENT MESSAGE RESOURCE PROXY_SERVER P
-ROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 116. lm_login_test_empty_domain
-create tstlm LmObj
-LmObj lm_login_test SERVER EMPTYDOMAIN PASSWORD RECIPIENT MESSAGE RESOURCE PROXY
-_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 117. lm_login_test_invalid_port
-create tstlm LmObj
-LmObj lm_login_test_invalid_port SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 118. lm_login_test_invalid_server
-create tstlm LmObj
-LmObj lm_login_test_invalid_server badserver USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 79. lm_login_test_invalid_domain
-create tstlm LmObj
-LmObj lm_login_test_invalid_server SERVER BadGtalkDomain PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
--- a/loudmouth/tsrc/conf/tstlm_gtalk.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,591 +0,0 @@
-[Define]
-SERVER       talk.google.com
-USERNAME     nokiaprima@gmail.com
-PASSWORD     nokianokia
-RECIPIENT    donna.prima@gmail.com
-MESSAGE      Hello
-RESOURCE     mytesds5rt123
-
-UnexistGizmoJID   			testlmnokia1111@chat.gizmoproject.com
-UnexistGTalkJID					abcd123_mk@gmail.com
-OnlyDomainofJID					@gmail.com
-BadGizmoDomain					prima@chat.gizmoooproject.com
-BadGtalkDomain					nokiaprima@gmaiiil.com
-badpassword  						12345 
-badserver    						talk.goo456gly.com
-SpecialUSERNAME					im:here%27s_a_wild_%26_%2Fcr%zy%2F_address@gmail.com
-LONGUSERNAME						im:here%27s_a_wild_%26_%2Fr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address@gmail.com
-LONGMESSAGE		  				HelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworlsfsdfdgdfgdfgdfgdfgdf
-REPEATEDMESSAGE					RepeatingHello
-SMILEYMESSAGE						:):-);-):-D:D:-(:(
-GIZMOCONTACT						harsh_rakesh@chat.gizmoproject.com
-LONGPASSWORD						thisisawrongpasswordandthetestcaseshouldnotfail
-SPECIALMESSAGE 					hello&*&*^#^*)%)@$)*@)(*%%(*!^%@^#%
-EMPTYCONTACT						Emptycontact@gmail.com
-EMPTYPASSWORD						testtesttest
-EMPTYDOMAIN							nokiaprima
-LONGGMAILUSERID 				abcd123456abcd123456abcd123456@gmail.com
-GMAILPWD								nokia123
-UsernameWithBadServer   prima@talk.goo456gly.com
-
-
-PROXY_SERVER 172.16.42.135
-PROXY_PORT   8080
-
-[Enddefine]
-
-[Test]
-title 1. lm_connection_new
-create tstlm LmObj
-LmObj lm_connection_new SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-[Test]
-title 2. lm_connection_send
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 3. lm_fetching_contactlist
-create tstlm LmObj
-LmObj lm_fetching_contactlist SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 4. lm_fetching_presence
-create tstlm LmObj
-LmObj lm_fetching_presence SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 5. lm_connection_new_with_context
-create tstlm LmObj
-LmObj lm_new_with_context
-delete LmObj
-[Endtest] 
-
-[Test]
-title 6. lm_connection_open
-create tstlm LmObj
-LmObj lm_connection_open SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-
-
-[Test]
-title 7. lm_connection_closeWhenNotOpen
-create tstlm LmObj
-LmObj lm_connection_closeWhenNotOpen SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 8. lm_connection_authenticate
-create tstlm LmObj
-LmObj lm_authenticate SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 9. lm_connection_is_open
-create tstlm LmObj
-LmObj lm_connection_is_open SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 10. lm_connection_authenticate_withbadpassword
-create tstlm LmObj
-LmObj lm_authenticate_badpassword SERVER USERNAME badpassword RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 11. lm_connection_authenticate when connection is closed
-create tstlm LmObj
-LmObj lm_authenticate_connectionisnotcreated SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-
-[Test]
-title 12. lm_connection_is_open_WhenConnectionIsClosed
-create tstlm LmObj
-LmObj lm_connection_is_open_WhenConnectionIsClosed SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 13. lm_connection_close
-create tstlm LmObj
-LmObj lm_connection_close SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 14. lm_connection_is_authenticated
-create tstlm LmObj
-LmObj lm_is_authenticated SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 15. lm_connection_is_authenticated_WhenNot_Authenticated
-create tstlm LmObj
-LmObj lm_connection_is_authenticated_WhenNot_Authenticated SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 16. lm_connection_set_get_server
-create tstlm LmObj
-LmObj lm_connection_set_get_server SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 17. lm_connection_set_get_port
-create tstlm LmObj
-LmObj lm_connection_set_get_port
-delete LmObj
-[Endtest]
-
-[Test]
-title 18. lm_connection_set_get_ssl
-create tstlm LmObj
-LmObj lm_connection_set_get_ssl
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 19. lm_connection_set_get_proxy
-create tstlm LmObj
-LmObj lm_connection_set_get_proxy
-delete LmObj
-[Endtest]
-
-[Test]
-title 20. lm_connection_set_get_jid
-create tstlm LmObj
-LmObj lm_connection_set_get_jid SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 21. lm_connection_set_jid_WithNull
-create tstlm LmObj
-LmObj lm_connection_set_jid_WithNull SERVER \0 PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-
-[Test]
-title 22. lm_connection_set_port_WithNULL
-create tstlm LmObj
-LmObj lm_connection_set_port_WithNULL
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 23. lm_connection_set_server_withNULL
-create tstlm LmObj
-LmObj lm_connection_set_server_withNULL   \0 USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 24. lm_connection_set_disconnect_function
-create tstlm LmObj
-LmObj set_disconnect_function SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 25. lm_connection_send_with_reply
-create tstlm LmObj
-LmObj lm_send_with_reply SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 26. lm_proxy_set_get_port
-create tstlm LmObj
-LmObj lm_proxy_set_get_port
-delete LmObj
-[Endtest] 
-
-[Test]
-title 27. lm_proxy_set_get_type
-create tstlm LmObj
-LmObj lm_proxy_set_get_type
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 28. lm_proxy_set_get_server
-create tstlm LmObj
-LmObj lm_proxy_set_get_server
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 29. lm_proxy_set_get_username
-create tstlm LmObj
-LmObj lm_proxy_set_get_username
-delete LmObj
-[Endtest] 
-
-
-
-[Test]
-title 30. lm_proxy_set_get_password
-create tstlm LmObj
-LmObj lm_proxy_set_get_password
-delete LmObj
-[Endtest] 
-
-[Test]
-title 31. lm_proxy_new
-create tstlm LmObj
-LmObj lm_proxy_new
-delete LmObj
-[Endtest] 
-
-[Test]
-title 32. lm_proxy_new_with_server
-create tstlm LmObj
-LmObj lm_proxy_new_with_server
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 33. lm_proxy_ref
-create tstlm LmObj
-LmObj lm_proxy_ref
-delete LmObj
-[Endtest] 
-
-[Test]
-title 34. lm_proxy_unref
-create tstlm LmObj
-LmObj lm_proxy_unref
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 35. lm_ssl_new
-create tstlm LmObj
-LmObj lm_ssl_new
-delete LmObj
-[Endtest] 
-
-[Test]
-title 36. lm_ssl_is_supported
-create tstlm LmObj
-LmObj lm_ssl_is_supported
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 37. lm_ssl_get_fingerprint
-create tstlm LmObj
-LmObj lm_ssl_get_fingerprint
-delete LmObj
-[Endtest] 
-
-[Test]
-title 38. lm_ssl_ref
-create tstlm LmObj
-LmObj lm_ssl_ref
-delete LmObj
-[Endtest] 
-
-[Test]
-title 39. lm_ssl_unref
-create tstlm LmObj
-LmObj lm_ssl_unref
-delete LmObj
-[Endtest] 
-
-
-[Test]
-title 40. lm_message_node_ref
-create tstlm LmObj
-LmObj lm_message_node_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 41. lm_message_node_unref
-create tstlm LmObj
-LmObj lm_message_node_unref
-delete LmObj
-[Endtest]
-
-[Test]
-title 42. lm_message_node_to_string
-create tstlm LmObj
-LmObj lm_message_node_to_string
-delete LmObj
-[Endtest]
-
-
-\\failed when run together. passed independantly
-[Test]
-title 43. lm_message_node_set_get_attributes
-create tstlm LmObj
-LmObj lm_message_node_set_get_attributes
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 44. lm_message_node_set_get_raw_mode
-create tstlm LmObj
-LmObj lm_message_node_set_get_raw_mode
-delete LmObj
-[Endtest]
-
-\\failed when run together. passed independantly
-[Test]
-title 45. lm_message_node_add_child
-create tstlm LmObj
-LmObj lm_message_node_add_child
-delete LmObj
-[Endtest]
-
-[Test]
-title 46. lm_message_node_get_child
-create tstlm LmObj
-LmObj lm_message_node_get_child
-delete LmObj
-[Endtest]
-
-[Test]
-title 47. lm_message_node_find_child
-create tstlm LmObj
-LmObj lm_message_node_find_child
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 48. lm_message_node_set_get_value
-create tstlm LmObj
-LmObj lm_message_node_set_get_value
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 49. lm_message_handler_new
-create tstlm LmObj
-LmObj lm_message_handler_new SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 50. lm_message_handler_invalidate
-create tstlm LmObj
-LmObj lm_message_handler_invalidate
-delete LmObj
-[Endtest]
-
-[Test]
-title 51. lm_message_handler_is_valid
-create tstlm LmObj
-LmObj lm_message_handler_is_valid
-delete LmObj
-[Endtest]
-
-[Test]
-title 52. lm_message_handler_ref
-create tstlm LmObj
-LmObj lm_message_handler_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 53. lm_message_handler_unref
-create tstlm LmObj
-LmObj lm_message_handler_unref
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 54. lm_message_new
-create tstlm LmObj
-LmObj lm_message_new SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest] 
-
-[Test]
-title 55. lm_message_new_with_sub_type
-create tstlm LmObj
-LmObj lm_message_new_with_sub_type SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 56. lm_message_get_type
-create tstlm LmObj
-LmObj lm_message_get_type
-delete LmObj
-[Endtest]
-
-[Test]
-title 57. lm_message_get_sub_type
-create tstlm LmObj
-LmObj lm_message_get_sub_type
-delete LmObj
-[Endtest]
-
-[Test]
-title 58. lm_message_get_node
-create tstlm LmObj
-LmObj lm_message_get_node
-delete LmObj
-[Endtest]
-
-[Test]
-title 59. lm_message_ref
-create tstlm LmObj
-LmObj lm_message_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 60. lm_message_unref
-create tstlm LmObj
-LmObj lm_message_unref
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 61. lm_connection_get_state
-create tstlm LmObj
-LmObj lm_connection_get_state SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 62. lm_connection_ref
-create tstlm LmObj
-LmObj lm_connection_ref
-delete LmObj
-[Endtest]
-
-[Test]
-title 63. lm_connection_unref
-create tstlm LmObj
-LmObj lm_connection_unref
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 64. lm_connection_send_raw
-create tstlm LmObj
-LmObj lm_connection_send_raw SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 65. lm_register_message_handler
-create tstlm LmObj
-LmObj register_message_handler SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-
-[Test]
-title 66. lm_set_ssl_WithNULL
-create tstlm LmObj
-LmObj lm_connection_set_ssl_WithNULL
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 67. lm_connection_authenticate_withUnexistJID
-create tstlm LmObj
-LmObj lm_authenticate_unexistjid SERVER UnexistGtalkJID PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 68. lm_login_test_with_SpecialChar_JID
-create tstlm LmObj
-LmObj lm_login_test SERVER SpecialUSERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 69. lm_login_test_with_Long_JID
-create tstlm LmObj
-LmObj lm_login_test SERVER LONGGMAILUSERID GMAILPWD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 70. lm_login_test_with_Long_PASSWORD
-create tstlm LmObj
-LmObj lm_login_test SERVER USERNAME LONGPASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 71. lm_send_long_message
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD RECIPIENT LONGMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 72. lm_send_400chars
-create tstlm LmObj
-LmObj lm_connection_send400char SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 73. lm_send_repeated
-create tstlm LmObj
-LmObj lm_connection_send_repeated SERVER USERNAME PASSWORD RECIPIENT REPEATEDMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 74. lm_send_smiley
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME PASSWORD RECIPIENT SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
--- a/loudmouth/tsrc/conf/tstlm_gtalk1.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,313 +0,0 @@
-[Define]
-SERVER       talk.google.com
-USERNAME     nokiaprima@gmail.com
-PASSWORD     nokianokia
-RECIPIENT    donna.prima@gmail.com
-MESSAGE      Hello
-RESOURCE     mytesds5rt123
-
-UnexistGTalkJID					abcd123_mk@gmail.com
-OnlyDomainofJID					@gmail.com
-UnexistGizmoJID					primaunexist@chat.gizmoproject.com
-BadGizmoDomain					prima@chat.gizmoooproject.com
-BadGtalkDomain					nokiaprima@gmaiiil.com
-badpassword  						12345 
-badserver    						talk.goo456gly.com
-SpecialUSERNAME					im:here%27s_a_wild_%26_%2Fcr%zy%2F_address@gmail.com
-LONGUSERNAME						im:here%27s_a_wild_%26_%2Fr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address_here%27s_a_wild_%26_%2Fcr%zy%2F_address@gmail.com
-LONGMESSAGE		  				HelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworldHelloworlsfsdfdgdfgdfgdfgdfgdf
-REPEATEDMESSAGE					RepeatingHello
-SMILEYMESSAGE						:):-);-):-D:D:-(:(
-GIZMOCONTACT						harsh_rakesh@chat.gizmoproject.com
-LONGPASSWORD						thisisawrongpasswordandthetestcaseshouldnotfail
-SPECIALMESSAGE 					hello&*&*^#^*)%)@$)*@)(*%%(*!^%@^#%
-EMPTYCONTACT						Emptycontact@gmail.com
-EMPTYPASSWORD						testtesttest
-EMPTYDOMAIN							nokiaprima
-LONGGMAILUSERID 				abcd123456abcd123456abcd123456@gmail.com
-GMAILPWD								nokia123
-UsernameWithBadServer   prima@talk.goo456gly.com
-
-PROXY_SERVER 172.16.42.135
-PROXY_PORT   8080
-[Enddefine]
-
-[Test]
-title 75. lm_add_contact
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD GIZMOCONTACT SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 76. lm_remove_contact
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD GIZMOCONTACT SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 77. lm_subscribe_contact
-create tstlm LmObj
-LmObj lm_subscribe_contact SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 78. lm_send_receive
-create tstlm LmObj
-LmObj lm_connection_send_receive SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 79. lm_login_test_invalid_domain
-create tstlm LmObj
-LmObj lm_login_test_invalid_server SERVER BadGtalkDomain PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 80. lm_send_to_LongGmailUserid
-create tstlm LmObj
-LmObj lm_connection_send SERVER USERNAME GMAILPWD LONGGMAILUSERID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 81. lm_connection_cancel_open
-create tstlm LmObj
-LmObj lm_connection_cancel_open SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 82. lm_send_image_bytestream_msg
-create tstlm LmObj
-LmObj lm_connection_send_image_bytestream_msg SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 83. lm_send_image_bytestream_iq
-create tstlm LmObj
-LmObj lm_connection_send_image_bytestream_iq SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 84. lm_get_privacy_lists
-create tstlm LmObj
-LmObj lm_connection_get_privacy_lists SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 85. lm_set_privacy_lists
-create tstlm LmObj
-LmObj lm_connection_set_privacy_lists SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 86. lm_get_one_privacy_list
-create tstlm LmObj
-LmObj lm_connection_get_one_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 87. lm_set_one_privacy_list
-create tstlm LmObj
-LmObj lm_connection_get_one_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 88. lm_create_one_privacy_list
-create tstlm LmObj
-LmObj lm_connection_create_one_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 89. lm_get_one_unexist_privacy_list
-create tstlm LmObj
-LmObj lm_connection_get_one_unexist_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 90. lm_set_one_unexist_privacy_list
-create tstlm LmObj
-LmObj lm_connection_set_one_unexist_privacy_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 91. lm_get_many_privacy_list_from_listname
-create tstlm LmObj
-LmObj lm_connection_get_many_privacy_list_from_listname SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test] 
-title 92. lm_set_active_list
-create tstlm LmObj
-LmObj lm_connection_set_active_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 93. lm_set_unexist_active_list
-create tstlm LmObj
-LmObj lm_connection_set_unexist_active_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 94. lm_set_decline_active_list
-create tstlm LmObj
-LmObj lm_connection_set_decline_active_list SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 95. lm_block_contact
-create tstlm LmObj
-LmObj lm_connection_block_contact SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 96. lm_unblock_contact
-create tstlm LmObj
-LmObj lm_connection_unblock_contact SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 97. lm_send_multiple_conn
-create tstlm LmObj
-LmObj lm_connection_send_multiple_conn SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 98. lm_service_discovery
-create tstlm LmObj
-LmObj lm_service_discovery SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 99. lm_simple_communications_blocking
-create tstlm LmObj
-LmObj lm_simple_communications_blocking SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 100. lm_service_discovery_connected_resource
-create tstlm LmObj
-LmObj lm_service_discovery_connected_resource SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 101. lm_send_im_with_reply_unexistjid_gizmo
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD UnexistGizmoJID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 102. lm_add_contact_unexistjid_gizmo
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD UnexistGizmoJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 103. lm_remove_contact_unexisting_gizmo
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD UnexistGizmoJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 104. lm_add_contact_unexistjid_gtalk
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD UnexistGTalkJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 105. lm_remove_contact_unexisting_gtalk
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD UnexistGTalkJID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 106. lm_add_contact_long_gtalkid
-create tstlm LmObj
-LmObj lm_add_contact SERVER USERNAME PASSWORD LONGGMAILUSERID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 107. lm_remove_contact_long_gtalkid
-create tstlm LmObj
-LmObj lm_remove_contact SERVER USERNAME PASSWORD LONGGMAILUSERID SMILEYMESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-[Test]
-title 108. lm_send_im_with_reply
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 109. lm_fetching_empty_contactlist
-create tstlm LmObj
-LmObj lm_fetching_contactlist SERVER EMPTYCONTACT EMPTYPASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 110. lm_change_own_presence
-create tstlm LmObj
-LmObj lm_change_own_presence SERVER USERNAME PASSWORD RECIPIENT MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 111. lm_send_im_with_reply_invalid_gtalk
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD UnexistGTalkJID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-[Test]
-title 112. lm_send_im_with_reply_invalid_gtalkdomain_only
-create tstlm LmObj
-LmObj lm_send_im_with_reply SERVER USERNAME PASSWORD OnlyDomainofJID MESSAGE RESOURCE PROXY_SERVER PROXY_PORT
-delete LmObj
-[Endtest]
-
-
-
-
-
--- a/loudmouth/tsrc/eabi/tstlmu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
-
--- a/loudmouth/tsrc/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   ?Description
-*
-*/
-
-
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// defaults to WINS MARM so you can ignore this if you just build these
-DEFAULT
-
-PRJ_TESTEXPORTS
-// NOTE: If using ARS requirements all export operations should be done under this.
-// 'abld test export'
-
-PRJ_EXPORTS
-../init/TestFramework.ini /epoc32/winscw/c/TestFramework/TestFramework.ini
-../conf/tstlm_gtalk.cfg /epoc32/winscw/c/TestFramework/tstlm_gtalk.cfg
-../conf/tstlm_gtalk1.cfg /epoc32/winscw/c/TestFramework/tstlm_gtalk1.cfg
-// Specify the source file followed by its destination here
-// copy will be used to copy the source file to its destination
-// If there's no destination then the source file will be copied
-// to the same name in /epoc32/include
-// Example: 
-
-
-
-PRJ_TESTMMPFILES
-// NOTE: If using ARS requirements .mmp file operation should be done under this.
-// 'abld test build'
-tstlm.mmp
-PRJ_MMPFILES
-// Specify the .mmp files required for building the important component
-// releasables.
-//
-// Specify "tidy" if the component you need to build doesn't need to be
-// released. Specify "ignore" if the MMP file exists but should be
-// ignored.
-// Example:
-//tstlm.mmp
-
-//  End of File
--- a/loudmouth/tsrc/group/tstlm.mmp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   ?Description
-*
-*/
-
-
-#include<platform_paths.hrh>
-TARGET          tstlm.dll
-TARGETTYPE      dll
-UID             0x1000008D 0x101FB3E3
-
-CAPABILITY      ALL -TCB
-
-
-//TARGETPATH      ?target_path
-DEFFILE         tstlm.def
-
-MACRO           SYMBIAN
-
-
-SOURCEPATH      ../src
-SOURCE          tstlm.cpp
-SOURCE          tstlmBlocks.cpp
-
-//RESOURCE        resource_file
-//RESOURCE        resource_file2
-
-USERINCLUDE     ../inc 
-
-SYSTEMINCLUDE   /epoc32/include 
-SYSTEMINCLUDE   /epoc32/include/internal
-
-//SYSTEMINCLUDE   /epoc32/include/domain/osextensions
-USERINCLUDE       ../../inc
-//#ifdef __S60_32__
-SYSTEMINCLUDE       /epoc32/include/stdapis
-//SYSTEMINCLUDE       /epoc32/include/stdapis/glib-2.0
-//SYSTEMINCLUDE       /epoc32/include/stdapis/glib-2.0/glib
-//SYSTEMINCLUDE       /epoc32/include/stdapis/openssl
-//#endif
-
-//#ifndef __S60_50__
-//SYSTEMINCLUDE       /epoc32/include/osextensions/stdapis
-//SYSTEMINCLUDE       /epoc32/include/osextensions/stdapis/glib-2.0
-//SYSTEMINCLUDE       /epoc32/include/osextensions/stdapis/glib-2.0/glib
-//SYSTEMINCLUDE       /epoc32/include/osextensions/stdapis/openssl
-//#endif
-MW_LAYER_SYSTEMINCLUDE
-OS_LAYER_LIBC_SYSTEMINCLUDE
-OS_LAYER_GLIB_SYSTEMINCLUDE
-OS_LAYER_SSL_SYSTEMINCLUDE
-OS_LAYER_STDCPP_SYSTEMINCLUDE
-OS_LAYER_BOOST_SYSTEMINCLUDE
-OS_LAYER_DBUS_SYSTEMINCLUDE
-OS_LAYER_LIBUTILITY_SYSTEMINCLUDE
-
-
-
-
-
-LIBRARY         euser.lib
-LIBRARY         stiftestinterface.lib
-LIBRARY         libc.lib
-LIBRARY         libpthread.lib
-LIBRARY         libglib.lib
-LIBRARY         loudmouth.lib
-
-LANG            SC
-
-//EPOCALLOWDLLDATA
-
-/*
-START WINS      
-?wins_specific_information
-END
-
-START MARM
-?marm_specific_information
-END
-*/
-// Other possible keywords:
- 
-// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
-/*
-START BITMAP ?target
-TARGETPATH   ?emulated_path_on_target_machine
-HEADER
-SOURCE       ?color_depth ?source_bitmap
-END
-*/
-// DEFFILE ?filename
-// AIF ?filename
-
-// End of File
--- a/loudmouth/tsrc/group/tstlm.pkg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-; 
-; Description: 
-;
-
-; Languages
-&EN
-
-; Provide value for uid
-#{"STIF"},(0x00000000),1,1,0,TYPE=SA
-
-; Series60 product id for S60 3.0
-[0x101F7961], 0, 0, 0, {"Series60ProductID"}
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-; Logo
-; None
-
-; Package signature - Optional
-; None
-
-; Start of Package body
-
-; Condition blocks
-; None
-
-; Options list
-; None
-
-; Install files
-"\epoc32\release\armv5\udeb\tstlm.dll"   -   "!:\Sys\Bin\tstlm.dll"
-;CFG FILES
-"..\conf\tstlm_gtalk.cfg"-"C:\TestFramework\tstlm_gtalk.cfg"
-"..\conf\tstlm_gtalk1.cfg"-"C:\TestFramework\tstlm_gtalk1.cfg"
-"..\init\TestFramework.ini"-"C:\TestFramework\TestFramework.ini"
-  
-;ini file
-"..\init\TestFramework.ini"-"C:\TestFramework\TestFramework.ini"
-
-  
-; Embedded SIS 
-; None
-
-; End of Package body
-
-; PKG dependencies
-; None
-
-; PKG capabilities
-; None
--- a/loudmouth/tsrc/inc/tstlm.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,314 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   tstlm.h
-*
-*/
-
-
-
-
-#ifndef TSTLM_H
-#define TSTLM_H
-
-//  INCLUDES
-#include <StifLogger.h>
-#include <TestScripterInternal.h>
-#include <StifTestModule.h>
-
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-// Logging path
-_LIT( KtstlmLogPath, "\\logs\\testframework\\tstlm\\" ); 
-// Log file
-_LIT( KtstlmLogFile, "tstlm.txt" ); 
-
-// FUNCTION PROTOTYPES
-//?type ?function_name(?arg_list);
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-class Ctstlm;
-
-// DATA TYPES
-//enum ?declaration
-//typedef ?declaration
-//extern ?data_type;
-
-// CLASS DECLARATION
-
-/**
-*  Ctstlm test class for STIF Test Framework TestScripter.
-*  ?other_description_lines
-*
-*  @lib ?library
-*  @since ?Series60_version
-*/
-NONSHARABLE_CLASS(Ctstlm) : public CScriptBase
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static Ctstlm* NewL( CTestModuleIf& aTestModuleIf );
-
-        /**
-        * Destructor.
-        */
-        virtual ~Ctstlm();
-
-    public: // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-    public: // Functions from base classes
-
-        /**
-        * From CScriptBase Runs a script line.
-        * @since ?Series60_version
-        * @param aItem Script line containing method name and parameters
-        * @return Symbian OS error code
-        */
-        virtual TInt RunMethodL( CStifItemParser& aItem );
-
-    protected:  // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-    protected:  // Functions from base classes
-
-        /**
-        * From ?base_class ?member_description
-        */
-        //?type ?member_function();
-
-    private:
-
-        /**
-        * C++ default constructor.
-        */
-        Ctstlm( CTestModuleIf& aTestModuleIf );
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-
-        // Prohibit copy constructor if not deriving from CBase.
-        // ?classname( const ?classname& );
-        // Prohibit assigment operator if not deriving from CBase.
-        // ?classname& operator=( const ?classname& );
-
-        /**
-        * Frees all resources allocated from test methods.
-        * @since ?Series60_version
-        */
-        void Delete();
-
-        /**
-        * Test methods are listed below. 
-        */
-
-        /**
-        * Example test method.
-        * @since ?Series60_version
-        * @param aItem Script line containing parameters.
-        * @return Symbian OS error code.
-        */        
-        
-        // LmConnection
-        virtual TInt lm_connection_newL( CStifItemParser& aItem );
-        virtual TInt lm_new_with_contextL( CStifItemParser& aItem );
-        virtual TInt lm_connection_openL( CStifItemParser& aItem );
-        virtual TInt lm_connection_closeL ( CStifItemParser& aItem );
-        virtual TInt lm_authenticateL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_is_openL ( CStifItemParser& aItem );
-        virtual TInt lm_is_authenticatedL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_set_get_serverL ( CStifItemParser& aItem );        
-        virtual TInt lm_connection_set_get_jidL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_set_get_portL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_set_get_sslL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_set_get_proxyL ( CStifItemParser& aItem );
-        
-        virtual TInt lm_connection_sendL(CStifItemParser& aItem );
-        virtual TInt lm_connection_send400charL(CStifItemParser& aItem );
-        virtual TInt lm_connection_send_repeatedL(CStifItemParser& aItem );
-        
-        
-        virtual TInt lm_send_with_replyL ( CStifItemParser& aItem );
-        virtual TInt register_message_handlerL ( CStifItemParser& aItem );
-        virtual TInt set_disconnect_functionL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_send_rawL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_get_stateL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_refL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_unrefL ( CStifItemParser& aItem );
-        
-        virtual TInt lm_connection_is_open_WhenConnectionIsClosedL ( CStifItemParser& aItem );
-        virtual TInt lm_is_authenticated_WhenNotAuthenticatedL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_set_server_WithNULL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_set_jid_WithNULL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_set_port_WithNULL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_set_ssl_WithNULL ( CStifItemParser& aItem );
-        virtual TInt lm_connection_closeWhenNotOpenedL ( CStifItemParser& aItem );
-        // LmMessage
-        virtual TInt lm_message_newL ( CStifItemParser& aItem );
-        virtual TInt lm_message_new_with_sub_typeL ( CStifItemParser& aItem );
-        virtual TInt lm_message_get_typeL ( CStifItemParser& aItem );
-        virtual TInt lm_message_get_sub_typeL ( CStifItemParser& aItem );
-        virtual TInt lm_message_get_nodeL ( CStifItemParser& aItem );
-        virtual TInt lm_message_refL ( CStifItemParser& aItem );
-        virtual TInt lm_message_unrefL ( CStifItemParser& aItem );
-        
-        // LmMessageHanlder
-        virtual TInt lm_message_handler_newL ( CStifItemParser& aItem );
-        virtual TInt lm_message_handler_invalidateL ( CStifItemParser& aItem );
-        virtual TInt lm_message_handler_is_validL ( CStifItemParser& aItem );
-        virtual TInt lm_message_handler_refL ( CStifItemParser& aItem );
-        virtual TInt lm_message_handler_unrefL ( CStifItemParser& aItem );
-        
-        // LmMessageNode
-        
-        virtual TInt lm_message_node_set_get_valueL ( CStifItemParser& aItem ); 
-        virtual TInt lm_message_node_add_childL ( CStifItemParser& aItem ); 
-        virtual TInt lm_message_node_get_childL ( CStifItemParser& aItem ); 
-        virtual TInt lm_message_node_find_childL ( CStifItemParser& aItem );         
-        virtual TInt lm_message_node_set_get_attributesL ( CStifItemParser& aItem );
-             
-        
-        virtual TInt lm_message_node_set_get_raw_modeL ( CStifItemParser& aItem );        
-        virtual TInt lm_message_node_refL ( CStifItemParser& aItem );
-        virtual TInt lm_message_node_unrefL ( CStifItemParser& aItem );        
-        virtual TInt lm_message_node_to_stringL ( CStifItemParser& aItem );
-        
-        // LmSSL
-        virtual TInt lm_ssl_newL( CStifItemParser& aItem );
-        virtual TInt lm_ssl_is_supportedL( CStifItemParser& aItem );
-        virtual TInt lm_ssl_get_fingerprintL( CStifItemParser& aItem );        
-        virtual TInt lm_ssl_refL( CStifItemParser& aItem );
-        virtual TInt lm_ssl_unrefL( CStifItemParser& aItem );
-        
-        // LmProxy
-        virtual TInt lm_proxy_newL( CStifItemParser& aItem );
-        virtual TInt lm_proxy_new_with_serverL( CStifItemParser& aItem );        
-        virtual TInt lm_proxy_set_get_typeL( CStifItemParser& aItem );        
-        virtual TInt lm_proxy_set_get_serverL( CStifItemParser& aItem );        
-        virtual TInt lm_proxy_set_get_portL( CStifItemParser& aItem );        
-        virtual TInt lm_proxy_set_get_usernameL( CStifItemParser& aItem );        
-        virtual TInt lm_proxy_set_get_passwordL( CStifItemParser& aItem );        
-        virtual TInt lm_proxy_refL( CStifItemParser& aItem );
-        virtual TInt lm_proxy_unrefL( CStifItemParser& aItem );
-        
-        // lm-send-sync example        
-        virtual TInt lm_send_syncL ( CStifItemParser& aItem );
-        
-        //fetching contact list
-        
-        virtual TInt lm_fetching_contactlist_L( CStifItemParser& aItem );
-        
-        virtual TInt lm_fetching_presenceL( CStifItemParser& aItem );
-        
-        // subscribe presence for contact
-        
-        virtual TInt lm_subscribe_contact_L( CStifItemParser& aItem );
-        
-        
-        virtual TInt lm_authenticate_WithUnexistingJID( CStifItemParser& aItem );
-        virtual TInt lm_authenticate_WithBadPasswordL( CStifItemParser& aItem );
-        virtual TInt lm_authenticate_WhenConnectionIsNotOpenedL( CStifItemParser& aItem );
-        virtual TInt lm_connection_open_with_badserverL(CStifItemParser& aItem); 
-        
-        virtual TInt lm_connection_send_receiveL(CStifItemParser& aItem);
-        virtual TInt lm_login_testL(CStifItemParser& aItem);
-        
-        virtual TInt lm_add_contactL(CStifItemParser& aItem);
-        virtual TInt lm_remove_contactL(CStifItemParser& aItem);
-        virtual TInt lm_connection_cancel_openL(CStifItemParser& aItem);
-        virtual TInt lm_connection_get_privacy_listsL(CStifItemParser& aItem);
-        virtual TInt lm_connection_set_privacy_listsL(CStifItemParser& aItem);
-        virtual TInt lm_connection_send_image_bytestream_msgL(CStifItemParser& aItem);
-        virtual TInt lm_connection_send_image_bytestream_iqL(CStifItemParser& aItem);
-        virtual TInt lm_connection_send_multiple_connL(CStifItemParser& aItem);
-        virtual TInt lm_connection_block_contactL(CStifItemParser& aItem);
-        virtual TInt lm_connection_unblock_contactL(CStifItemParser& aItem);
-        virtual TInt lm_connection_set_active_listL(CStifItemParser& aItem);
-        virtual TInt lm_connection_set_unexist_active_listL(CStifItemParser& aItem);
-        virtual TInt lm_connection_set_decline_active_listL(CStifItemParser& aItem);
-        virtual TInt lm_connection_get_one_privacy_listL(CStifItemParser& aItem);
-        virtual TInt lm_connection_set_one_privacy_listL(CStifItemParser& aItem);
-        virtual TInt lm_connection_get_many_privacy_list_from_listnameL(CStifItemParser& aItem);
-        virtual TInt lm_connection_set_one_unexist_privacy_listL(CStifItemParser& aItem);
-        virtual TInt lm_connection_get_one_unexist_privacy_listL(CStifItemParser& aItem);
-        virtual TInt lm_connection_create_one_privacy_listL(CStifItemParser& aItem);
-        virtual TInt lm_service_discoveryL(CStifItemParser& aItem);
-        virtual TInt lm_service_discovery_connected_resourceL(CStifItemParser& aItem);
-        virtual TInt lm_simple_communications_blockingL(CStifItemParser& aItem);
-        virtual TInt lm_send_im_with_replyL(CStifItemParser& aItem);
-        virtual TInt lm_receive_any_messageL(CStifItemParser& aItem);
-        virtual TInt lm_login_multiple_sessionsL(CStifItemParser& aItem);
-        virtual TInt lm_change_own_presenceL(CStifItemParser& aItem);
-        virtual TInt  lm_login_test_invalid_serverL(CStifItemParser& aItem);
-        virtual TInt  lm_login_test_invalid_portL(CStifItemParser& aItem);
-        
-        virtual TInt lm_memory_leak_testL(CStifItemParser& aItem);
-        virtual TInt lm_nft_updating_presenceL(CStifItemParser& aItem);
-        virtual TInt lm_nft_presence_notificationL(CStifItemParser& aItem);
-        virtual TInt lm_nft_send_text_messageL(CStifItemParser& aItem);
-        virtual TInt lm_nft_open_conversation_with_multipleL(CStifItemParser& aItem);
-        virtual TInt lm_nft_fetch300_contactL(CStifItemParser& aItem);
-        virtual TInt lm_nft_loginlogoutmultipletime(CStifItemParser& aItem);
-        virtual TInt lm_nft_receiving100_message_L(CStifItemParser& aItem);
-    public:     // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    protected:  // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    private:    // Data
-        
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-        // Reserved pointer for future extension
-        //TAny* iReserved;
-
-    public:     // Friend classes
-        //?friend_class_declaration;
-    protected:  // Friend classes
-        //?friend_class_declaration;
-    private:    // Friend classes
-        //?friend_class_declaration;
-
-    };
-
-#endif      // TSTLM_H
-
-// End of File
--- a/loudmouth/tsrc/init/TestFramework.ini	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-#
-# This is STIFTestFramework initialization file
-# Comment lines start with '#'-character.
-# See STIF TestFramework users guide.doc for instructions
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-[Engine_Defaults]
-
-TestReportMode= FullReport		# Possible values are: 'Empty', 'Summary', 'Environment',
-                                                               'TestCases' or 'FullReport'
-
-CreateTestReport= YES			# Possible values: YES or NO
-
-TestReportFilePath= C:\LOGS\TestFramework\
-TestReportFileName= TestReport
-
-TestReportFormat= TXT			# Possible values: TXT or HTML
-TestReportOutput= FILE			# Possible values: FILE or RDEBUG
-TestReportFileCreationMode= OVERWRITE	# Possible values: OVERWRITE or APPEND
-
-DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
-
-[End_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Module configurations start
-
-[New_Module]
-ModuleName= testscripter
-TestCaseFile= C:\testframework\tstlm_gtalk.cfg
-[End_Module]
-
-[New_Module]
-ModuleName= testscripter
-TestCaseFile= C:\testframework\tstlm_gtalk1.cfg
-[End_Module]
-
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-[Logger_Defaults]
-
-[End_Logger_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# End of file
--- a/loudmouth/tsrc/src/tstlm.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   tstlm.cpp
-*
-*/
-
-
-
-
-// INCLUDE FILES
-#include <StifTestInterface.h>
-#include <stdlib.h>
-#include "tstlm.h"
-#include <e32cons.h>
-//#include <mrtlib.h>
-
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// ?function_name ?description.
-// ?description
-// Returns: ?value_1: ?description
-//          ?value_n: ?description_line1
-//                    ?description_line2
-// -----------------------------------------------------------------------------
-//
-/*
-?type ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg)  // ?description
-    {
-
-    ?code  // ?comment
-
-    // ?comment
-    ?code
-    }
-*/
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// Ctstlm::Ctstlm
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-Ctstlm::Ctstlm( 
-    CTestModuleIf& aTestModuleIf ):
-        CScriptBase( aTestModuleIf )
-    {
-    //MrtInit();
-    setenv("G_SLICE","always-malloc",1);
-    setenv("LM_DEBUG","ALL",1);
-    }
-
-// -----------------------------------------------------------------------------
-// Ctstlm::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void Ctstlm::ConstructL()
-    {
-    iLog = CStifLogger::NewL( KtstlmLogPath, 
-                          KtstlmLogFile,
-                          CStifLogger::ETxt,
-                          CStifLogger::EFile,
-                          EFalse );
-
-		TestModuleIf().SetBehavior( CTestModuleIf::ETestLeaksMem );
-		TestModuleIf().SetBehavior( CTestModuleIf::ETestLeaksRequests );
-		TestModuleIf().SetBehavior( CTestModuleIf::ETestLeaksHandles );
-    }
-
-// -----------------------------------------------------------------------------
-// Ctstlm::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-Ctstlm* Ctstlm::NewL( 
-    CTestModuleIf& aTestModuleIf )
-    {
-    Ctstlm* self = new (ELeave) Ctstlm( aTestModuleIf );
-
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-
-    }
-
-// Destructor
-Ctstlm::~Ctstlm()
-    { 
-
-    // Delete resources allocated from test methods
-    Delete();
-
-    // Delete logger
-    delete iLog; 
-
-    }
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// LibEntryL is a polymorphic Dll entry point.
-// Returns: CScriptBase: New CScriptBase derived object
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CScriptBase* LibEntryL( 
-    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
-    {
-
-    return ( CScriptBase* ) Ctstlm::NewL( aTestModuleIf );
-
-    }
-
-// -----------------------------------------------------------------------------
-// E32Dll is a DLL entry point function.
-// Returns: KErrNone
-// -----------------------------------------------------------------------------
-//
-#ifndef EKA2 // Hide Dll entry point to EKA2
-GLDEF_C TInt E32Dll(
-    TDllReason /*aReason*/) // Reason code
-    {
-    return(KErrNone);
-
-    }
-#endif // EKA2
-
-//  End of File
--- a/loudmouth/tsrc/src/tstlmBlocks.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14822 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   tstlmblocks.cpp
-*
-*/
-
-
-
-
-// INCLUDE FILES
-#include <e32svr.h>
-#include <StifParser.h>
-#include <StifTestInterface.h>
-#include "tstlm.h"
-
-#include "loudmouth/loudmouth.h"
-#include <glib.h>
-#include <glib/gprintf.h>           // for g_stpcpy
-#include <string.h>
-#include <stdlib.h>
-
-#include <glowmem.h>
-
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-#define UNEXIST_PORT 0
-#define MYPORT 4321
-#define HAVE_OPENSSL
-#define FAKEPORT NULL
-//You need to use 5223 for ssl+sasl and 5222 for non-ssl+sasl connection
-
-#define GTALK_SSL_PORT 443
-#define SSL_INVALID_PORT 999
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-
-typedef enum
-{
-	RC_OK,
-	RC_ERROR
-} RC_Code_t;
-
-typedef struct
-{
-	gchar *recipient;
-	gchar *message;
-} MessageData;
-
-typedef struct
-{
-	gchar      *proxy_server;
-	guint       proxy_port;	
-}ProxyData;
-
-typedef struct
-{
-	gchar       *server;
-	gchar       *username;
-	gchar       *password;		
-	gchar       *resource;
-	MessageData *msg_data;	
-#ifdef __WINSCW__
-    ProxyData   *proxy_data;
-#endif
-} ConnectData;
-
-typedef struct
-{
-	ConnectData *connect_data;
-	GMainLoop   *main_loop;
-	RC_Code_t   rCode;	
-} AuthData;
-
-typedef struct
-{
-    GMainLoop *main_loop;
-    RC_Code_t Test_Success;	
-    int count;
-} HandleData;
-
-typedef struct
-{
-	ConnectData *connect_data;
-	LmMessage* message;
-	LmMessageHandler* handler;
-	GMainLoop   *main_loop;
-	RC_Code_t   rCode;	
-} SendStreamData;
-// ======== MODULE DATA STRUCTURES =========
-typedef enum
-	{
-	XMPP_PRESENCE_TYPE_ONLINE,
-	XMPP_PRESENCE_TYPE_CHAT,
-	XMPP_PRESENCE_TYPE_AWAY,
-	XMPP_PRESENCE_TYPE_XA,
-	XMPP_PRESENCE_TYPE_DND,
-	XMPP_PRESENCE_TYPE_INVISIBLE,
-	XMPP_PRESENCE_TYPE_UNAVAILABLE
-	} JabberPresenceType;
-
-// LOCAL FUNCTION PROTOTYPES
-
-// Function to read data from the cfg file
-static RC_Code_t read_data ( ConnectData*& connect_data, 
-                             CStifItemParser& aItem );
-// Function to free the allocated resources
-static void free_data ( ConnectData*& connect_data );
-
-// Callback function used in lm_connection_open
-static void connection_open_cb ( LmConnection *connection, 
-                                 gboolean     success, 
-                                 gpointer     data );
-
-static void wrong_input_in_open_cb ( LmConnection *connection, 
-                                 gboolean     success, 
-                                 gpointer     data );                                 
-
-//Callback function set in lm_connection_authenticate() call
-//from lm-connection_send
-static void connection_auth_cb ( LmConnection *connection, 
-                                 gboolean     success, 
-                                 gpointer     data );
-
-//Callback from lm_login_test method after auth
-static void lm_login_cb ( LmConnection * connection, 
-                     gboolean  success, 
-                     gpointer data );
-// Callback function called by lm_connection_open in Lm_AuthenticateL
-// Will call authenticate method from inside this callback. 
-// It uses the correct input data
-static void auth_in_connection_cb( LmConnection *connection, 
-                              gboolean     success, 
-                              gpointer     *data );
-                                                               
-// Callback function set in auth_from_open_cb for handling 
-//wrong input data during authenticate. Written to handle negative test cases.
-static void wrong_input_auth_cb ( LmConnection *connection, 
-                                 gboolean     success, 
-                                 gpointer     data );
-// Callback function set by lm_connection_open call.
-//written to handle the negative test cases for authenticate
-static void auth_from_open_cb ( LmConnection *connection, 
-                              gboolean     success, 
-                              gpointer     *data );
-// Callback function to handle messages                              
-static LmHandlerResult handle_messages ( LmMessageHandler *handler,
-                                         LmConnection     *conneciton,
-                                         LmMessage        *message,
-                                         gpointer         user_data );
-static LmHandlerResult handle_100_messages ( LmMessageHandler *handler,
-                                         LmConnection     *conneciton,
-                                         LmMessage        *message,
-                                         gpointer         user_data );
-// Callback function called when connection is closed
-static void connection_close_cb ( LmConnection       *connection, 
-                                  LmDisconnectReason reason,
-                                  gpointer           user_data );
-                                  
-// Callback function called when presence is changed
-static void jabber_presence_handler_cb ( LmConnection       *connection, 
-                                  LmDisconnectReason reason,
-                                  gpointer           user_data );                                  
-static void message_response_cb ( LmConnection       *connection, 
-                                  LmDisconnectReason reason,
-                                  gpointer           user_data );                                    
-                                  
-// Get the MessageType in Type
-static void GetMessageType ( LmMessageType MessageType, gchar *Type );
-// Get MessageSubType in SubType
-static void GetMessageSubType ( LmMessageSubType MessageSubType, 
-                                gchar *SubType );
-
-// Callback function called if something goes wrong during the connection phase
-static LmSSLResponse ssl_cb ( LmSSL       *ssl, 
-                              LmSSLStatus status, 
-                              gpointer    user_data );
-
-#ifdef __WINSCW__
-// Set connection to connect through a proxy
-static void SetProxy ( LmConnection *connection, ProxyData *connect_data );
-#endif
-
-// Set SSL for connection
-static void SSLInit ( LmConnection *connection );
-
-// Returns the username from the JID ( username@domainname/resource )
-static gchar *get_user_name ( const gchar *jid );
-
-
-static JabberPresenceType
-jabber_presence_type_from_string ( const gchar *string );
-
-
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ==============================
-
-//-----------------------------------------------------------------------------
-// function_name	: read_data
-// description     	: Reads data from the CFG file
-// Returns          : None
-//-----------------------------------------------------------------------------
-//
-static RC_Code_t
-read_data ( ConnectData*& connect_data, CStifItemParser& aItem )
-    {
-	TPtrC               string;
-	TBuf8<KMaxFileName> temp;
-	MessageData         *msg_data   = NULL;
-	
-#ifdef __WINSCW__
-	ProxyData           *proxy_data = NULL;
-	TInt                proxy_port;
-#endif
-
-	
-	connect_data = g_new0 ( ConnectData, 1 );
-	if ( !connect_data )
-	    {
-		return RC_ERROR;
-	    }
-	    
-	msg_data = g_new0 ( MessageData, 1 );
-	if ( !msg_data )
-	    {
-		free_data ( connect_data );
-		return RC_ERROR;
-	    }
-	
-	connect_data->msg_data = msg_data;
-	
-#ifdef __WINSCW__
-    proxy_data = g_new0 ( ProxyData, 1 );
-    if ( !proxy_data ) 
-    	{
-    	free_data ( connect_data );
-    	return RC_ERROR;
-    	}
-	connect_data->proxy_data = proxy_data;
-#endif
-
-	// Read server name
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-		temp.Copy ( string );
-		temp.Append ( '\0' );
-		connect_data->server = g_new0 ( gchar, temp.Length() );
-		if ( !connect_data->server )
-		    {			
-			free_data ( connect_data );
-			return RC_ERROR;
-		    }
-		g_stpcpy ( connect_data->server, ( gchar * ) temp.Ptr() ); 
-	    }
-	    
-	// Read Username
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    connect_data->username = g_new0 ( gchar, temp.Length() );
-	    if ( !connect_data->username )
-	        {	    	
-	    	free_data ( connect_data );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( connect_data->username, ( gchar * ) temp.Ptr() );		    
-	    }
-	
-	// Read Password corresponding to Username
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    connect_data->password = g_new0 ( gchar, temp.Length () );		    
-	    if ( !connect_data->password )
-	        {	    	
-	    	free_data ( connect_data );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( connect_data->password, ( gchar *) temp.Ptr() );
-	    }
-	
-	// Read recipient
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    msg_data->recipient = g_new0 ( gchar, temp.Length() );
-	    if ( !msg_data->recipient )
-	        {
-	    	free_data ( connect_data );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( msg_data->recipient, ( gchar * ) temp.Ptr() );
-	    }
-	
-	// Read Message
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );	    
-	    msg_data->message = g_new0 ( gchar, temp.Length() );
-	    if ( !msg_data->message )
-	        {
-	    	free_data ( connect_data );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( msg_data->message, ( gchar * ) temp.Ptr() );
-	    }
-	
-	// Read resource identifier
-	if ( aItem.GetNextString ( string ) == KErrNone )
-	    {
-	    temp.Copy ( string );
-	    temp.Append ( '\0' );
-	    connect_data->resource = g_new0 ( gchar, temp.Length() );
-	    if ( !connect_data->resource )
-	        {
-	    	free_data ( connect_data );
-	    	return RC_ERROR;
-	        }
-	    g_stpcpy ( connect_data->resource, ( gchar * ) temp.Ptr() );		    
-	    }
-	 
-#ifdef __WINSCW__
-	// Read proxy server and proxy port
-    if ( aItem.GetNextString ( string ) == KErrNone )
-    	{
-    	temp.Copy ( string );
-    	temp.Append ( '\0' );
-    	proxy_data->proxy_server = g_new0 ( gchar, temp.Length() );
-    	if ( !proxy_data->proxy_server )
-    		{
-    		free_data ( connect_data );
-    		return RC_ERROR;
-    		}
-    	g_stpcpy ( proxy_data->proxy_server, ( gchar * ) temp.Ptr() );
-    	}
-    	
-    	if ( aItem.GetNextInt ( proxy_port ) == KErrNone )
-    		{
-    		proxy_data->proxy_port = proxy_port;
-    		}    	
-#endif 
-
-	return RC_OK;
-    }
-
-
-//-----------------------------------------------------------------------------
-// function_name	: free_data
-// description     	: Deallocates all the data
-// Returns          : None
-//-----------------------------------------------------------------------------
-//
-static void
-free_data ( ConnectData*& connect_data )
-    {
-	if ( connect_data )
-	    {
-		if ( connect_data->server )
-		    {
-			g_free ( connect_data->server );
-			connect_data->server = NULL;
-		    }
-		
-		if ( connect_data->username )
-		    {
-			g_free ( connect_data->username );
-			connect_data->username = NULL;
-		    }
-		
-		if ( connect_data->password )
-		    {
-			g_free ( connect_data->password );
-			connect_data->password = NULL;
-		    }
-		
-		if ( connect_data->msg_data )
-		    {
-			if ( connect_data->msg_data->recipient )
-			    {
-				g_free ( connect_data->msg_data->recipient );
-				connect_data->msg_data->recipient = NULL;
-			    }
-			if ( connect_data->msg_data->message )
-			    {
-				g_free ( connect_data->msg_data->message );
-				connect_data->msg_data->message = NULL;
-			    }
-			g_free ( connect_data->msg_data );
-			connect_data->msg_data = NULL;
-		    }		
-		
-		if ( connect_data->resource )
-		    {
-			g_free ( connect_data->resource );
-			connect_data->resource = NULL;
-		    }
-		    
-	#ifdef __WINSCW__
-	    if ( connect_data->proxy_data )
-	    	{
-	    	if ( connect_data->proxy_data->proxy_server )
-	    		{
-	    		g_free ( connect_data->proxy_data->proxy_server );
-	    		connect_data->proxy_data->proxy_server = NULL;
-	    		}
-	    	g_free ( connect_data->proxy_data );
-	    	connect_data->proxy_data = NULL;	
-	    	}
-	#endif	     
-		g_free ( connect_data );
-		connect_data = NULL;    
-	    }
-    }
-
-
-//-----------------------------------------------------------------------------
-// funnction_name	: connection_open_cb
-// description		: callback function called by lm_connection_open
-// Returns			: None
-//-----------------------------------------------------------------------------
-//
-static void
-connection_open_cb ( LmConnection *connection, 
-                     gboolean    success  /*success*/, 
-                     gpointer data )
-    {
-    
-    gboolean result = success ;
-    GMainLoop *main_loop = ( GMainLoop * ) data;
-    
-	if ( main_loop )
-	    {
-		g_main_loop_quit ( main_loop );	
-	    }		
-    /* send whitespace to the server every 30 seconds */
-    lm_connection_set_keep_alive_rate (connection, 30);			
-    }
-
-
-//-----------------------------------------------------------------------------
-// funnction_name	: wrong_input_in_open_cb
-// description		: callback function called by lm_connection_open when the wrong
-//input like wrong server , user id etc is given
-// Returns			: None
-//-----------------------------------------------------------------------------
-//
-static void
-wrong_input_in_open_cb ( LmConnection */*connection*/, 
-                     gboolean    success  /*success*/, 
-                     gpointer data )
-    {
-    
-    gboolean result = success;
-    AuthData *auth_data = ( AuthData * ) data;
-    
-     //Result is false when the wrong input parameters were successfully handled.
-    if (result == FALSE)
-		{       
-		auth_data->rCode = RC_OK;
-		}
-    else 
-    	{
-    	//Result is true, when the wrong input was not handled successfully.
-       	auth_data->rCode = RC_ERROR;	
-    	}
-    g_main_loop_quit ( auth_data->main_loop ); 		
-    }
-//-----------------------------------------------------------------------------
-// funnction_name	: wrong_input_auth_cb
-// description		: callback function called by lm_connection_open
-// Returns			: None
-//-----------------------------------------------------------------------------
-//
-static void
-wrong_input_auth_cb ( LmConnection */*connection*/, 
-                     gboolean  success, 
-                     gpointer data )
-    {
-    gboolean result = success;
-    AuthData *auth_data = ( AuthData * ) data;
-    //Result is false when the wrong input parameters were successfully handled.
-    if (result == FALSE)
-		{       
-		auth_data->rCode = RC_OK;
-		}
-    else 
-    	{
-    	//Result is true, when the wrong input was not handled successfully.
-       	auth_data->rCode = RC_ERROR;	
-    	}
-    g_main_loop_quit ( auth_data->main_loop );       		
-    }
-    
-//-----------------------------------------------------------------------------
-// funnction_name	: connection_auth_cb
-// description		: callback function set by lm_connection_authenticate
-// in lm_connection_sendL()
-// Returns			: None
-//-----------------------------------------------------------------------------
-//
-static void connection_auth_cb ( LmConnection */*connection*/, 
-                     gboolean  /*success*/, 
-                     gpointer data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * ) data;
-    
-	if ( main_loop )
-	    {
-		g_main_loop_quit ( main_loop );	
-	    }	   		
-    }
-
-//-----------------------------------------------------------------------------
-// function_name	: auth_in_connection_cb
-// description		: callback function called for lm_connection_open
-// Returns			: RC_OK if successfull, RC_ERROR otherwise
-//-----------------------------------------------------------------------------
-static void
-auth_in_connection_cb ( LmConnection *connection, 
-                  gboolean success, 
-                  gpointer *data )
-    {
-    AuthData *auth_data = ( AuthData * ) data;
-         
-    if ( !success )
-        {
-        // Connection failed
-        auth_data->rCode = RC_ERROR;
-        g_main_loop_quit ( auth_data->main_loop );    	    
-        }
-    
-    // Extract the username from the JID
-    gchar *username = get_user_name ( auth_data->connect_data->username );
-    
-    if ( !lm_connection_authenticate ( connection, 
-                                       username,
-                                       auth_data->connect_data->password,
-                                       auth_data->connect_data->resource, 
-                                       NULL, 
-                                       auth_data->connect_data->msg_data, 
-                                       NULL, 
-                                       NULL ) )
-        {
-       	auth_data->rCode = RC_ERROR;
-       	g_free ( username );
-       	g_main_loop_quit ( auth_data->main_loop );    	    
-        }
-    g_free ( username );
-        
-    auth_data->rCode = RC_OK;    
-    g_main_loop_quit ( auth_data->main_loop );    
-    
-    }
-
-//-----------------------------------------------------------------------------
-// function_name	: auth_from_open_cb
-// description		: callback function called for lm_connection_authenticate
-// Returns			: RC_OK if successfull, RC_ERROR otherwise
-//-----------------------------------------------------------------------------
-static void
-auth_from_open_cb ( LmConnection *connection, 
-                  gboolean success, 
-                  gpointer *data )
-    {
-    AuthData *auth_data = ( AuthData * ) data;
-         
-    if ( !success )
-        {
-        // Connection failed
-        auth_data->rCode = RC_ERROR;
-        g_main_loop_quit ( auth_data->main_loop );    	    
-        }
-    
-    // Extract the username from the JID
-    gchar *username = get_user_name ( auth_data->connect_data->username );
-    
-    if ( !lm_connection_authenticate ( connection, 
-                                       username,
-                                       auth_data->connect_data->password,
-                                       auth_data->connect_data->resource, 
-                                       ( LmResultFunction ) wrong_input_auth_cb, 
-                                       auth_data ,  
-                                       NULL, 
-                                       NULL ) )
-        {
-       	auth_data->rCode = RC_ERROR;
-       	g_free ( username );
-       	g_main_loop_quit ( auth_data->main_loop );    	    
-        }
-    g_free ( username );
-    
-    }
-
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_messages
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_messages ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        /*message*/,
-                  gpointer          user_data )
-    {
-    HandleData *handle_data = ( HandleData * )user_data;	
-	
-	if ( handle_data )
-		{
-		handle_data->Test_Success = RC_OK;
-	
-	    g_main_loop_quit ( handle_data->main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_messages
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_100_messages ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        /*message*/,
-                  gpointer          user_data )
-    {
-    HandleData *handle_data = ( HandleData * )user_data;    
-    //static int count=0;
-    handle_data->count++;
-    GMainLoop *main_loop = ( GMainLoop * )user_data;
-    //count++;
-    if(handle_data->count==5)
-            {
-        g_main_loop_quit ( handle_data->main_loop );
-        //    g_main_loop_quit ( main_loop );
-            } 
-        //} 
-    
-    return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_messages
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_100_presence_notification ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        /*message*/,
-                  gpointer          user_data )
-    {
-    HandleData *handle_data = ( HandleData * )user_data;    
-    handle_data->count++;
-    GMainLoop *main_loop = ( GMainLoop * )user_data;
-    if(handle_data->count==100)
-            {
-        g_main_loop_quit ( handle_data->main_loop );
-        
-            } 
-      
-    
-    return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-
-//--------------------------------------------------------------------------------
-// function_name	: connection_close_cb
-// description		: callback function called when connection is closed
-// Returns			: RC_OK if called
-//--------------------------------------------------------------------------------
-static void
-connection_close_cb ( LmConnection       */*connection*/,
-                      LmDisconnectReason reason,
-                      gpointer           user_data )
-    {   
-    HandleData *handle_data = ( HandleData * ) user_data;
-    
-    switch ( reason )
-        {
-        case LM_DISCONNECT_REASON_OK:
-    	    handle_data->Test_Success = RC_OK;
-    	    break;
-        case LM_DISCONNECT_REASON_PING_TIME_OUT:
-        /* No break, fall through */
-        case LM_DISCONNECT_REASON_HUP:
-        case LM_DISCONNECT_REASON_ERROR:
-        case LM_DISCONNECT_REASON_UNKNOWN:
-            handle_data->Test_Success = RC_ERROR;
-            break;
-        default:
-            handle_data->Test_Success = RC_ERROR;
-            break;
-        }
-	
-    }
-
-
-//------------------------------------------------------------------------------
-// function_name	: GetMessageType
-// description     	: Gets LmMessageType in Type
-// Returns          : None
-//------------------------------------------------------------------------------
-static void
-GetMessageType ( LmMessageType MessageType, gchar *Type )
-{
-	switch ( MessageType )
-	    {
-		case LM_MESSAGE_TYPE_MESSAGE:		
-		    g_stpcpy ( Type, "LM_MESSAGE_TYPE_MESSAGE" );
-		    break;
-	    case LM_MESSAGE_TYPE_PRESENCE:	        
-	        g_stpcpy ( Type, "LM_MESSAGE_TYPE_MESSAGE" );
-	        break;	        	    
-	    case LM_MESSAGE_TYPE_IQ:	        
-	        g_stpcpy ( Type, "LM_MESSAGE_TYPE_IQ" );
-	        break;
-	    case LM_MESSAGE_TYPE_STREAM:	        
-	        g_stpcpy ( Type, "LM_MESSAGE_TYPE_STREAM" );
-	        break;
-	    case LM_MESSAGE_TYPE_STREAM_ERROR:	        
-	        g_stpcpy ( Type, "LM_MESSAGE_TYPE_STREAM_ERROR" );	        
-	        break;
-	    case LM_MESSAGE_TYPE_UNKNOWN:	        
-	        g_stpcpy ( Type, "LM_MESSAGE_TYPE_UNKNOWN" );
-	        break;	        
-	    }
-}
-
-
-//------------------------------------------------------------------------------
-// function_name	: GetMessageSubType
-// description     	: Gets LmMessageSubType in SubType
-// Returns          : None
-//------------------------------------------------------------------------------
-static void
-GetMessageSubType ( LmMessageSubType MessageSubType, gchar *SubType )
-{
-	switch ( MessageSubType )
-	    {
-		case LM_MESSAGE_SUB_TYPE_NOT_SET:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_NOT_SET" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_AVAILABLE:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_AVAILABLE" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_NORMAL:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_NORMAL" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_CHAT:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_CHAT" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_GROUPCHAT:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_GROUPCHAT" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_HEADLINE:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_HEADLINE" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_UNAVAILABLE:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_UNAVAILABLE" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_PROBE:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_PROBE" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_SUBSCRIBE:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_SUBSCRIBE" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_SUBSCRIBED:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_SUBSCRIBED" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_GET:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_GET" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_SET:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_SET" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_RESULT:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_RESULT" );
-		    break;
-		case LM_MESSAGE_SUB_TYPE_ERROR:
-		    g_stpcpy ( SubType, "LM_MESSAGE_SUB_TYPE_ERROR" );
-		    break;
-	    }
-}
-
-
-// ---------------------------------------------------------------------------
-// jabber_presence_type_from_string: Returns the presence type
-// ---------------------------------------------------------------------------
-//	
-static JabberPresenceType
-jabber_presence_type_from_string ( const gchar *string )
-	{
-	
-	if ( string == NULL )
-		return XMPP_PRESENCE_TYPE_ONLINE;
-	
-	if ( !strcmp ( string, "online" ) )
-		return XMPP_PRESENCE_TYPE_ONLINE;	
-	else if ( !strcmp ( string, "chat" ) )
-		return XMPP_PRESENCE_TYPE_CHAT;
-	else if ( !strcmp ( string, "away" ) )
-		return XMPP_PRESENCE_TYPE_AWAY;
-	else if ( !strcmp ( string, "xa" ) )
-		return XMPP_PRESENCE_TYPE_XA;
-	else if ( !strcmp ( string, "dnd" ) )
-		return XMPP_PRESENCE_TYPE_DND;
-	else if ( !strcmp ( string, "invisible" ) )
-		return XMPP_PRESENCE_TYPE_INVISIBLE;
-	else if ( !strcmp ( string, "unavailable" ) )
-		return XMPP_PRESENCE_TYPE_UNAVAILABLE;	
-	else
-		return XMPP_PRESENCE_TYPE_ONLINE;
-	}
-
-
-// ---------------------------------------------------------------------------
-// function_name       : ssl_cb
-// description         : This function is called if something goes wrong
-//                       during the connecting phase.
-// Arguements          :
-//        ssl          : An LmSSL
-//        status       : The status informing what went wrong
-//        user_data    : User data provided in the callback
-//
-// Returns             : User should return LM_SSL_RESPONSE_CONTINUE if 
-//                       connection should proceed. otherwise 
-//                       LM_SSL_RESPONSE_STOP.
-// ---------------------------------------------------------------------------
-//
-static LmSSLResponse
-ssl_cb ( LmSSL */*ssl*/, LmSSLStatus status, gpointer /*user_data*/ )
-	{
-	
-	g_print ( "SSL status :%d\n", status );
-	
-	switch ( status ) 
-	    {
-	case LM_SSL_STATUS_NO_CERT_FOUND:
-       	g_printerr ("No certificate found!\n");
-       	break;
-     case LM_SSL_STATUS_UNTRUSTED_CERT:
-       	g_printerr ("Certificate is not trusted!\n");
-       	break;
- 	case LM_SSL_STATUS_CERT_EXPIRED:
-       	g_printerr ("Certificate has expired!\n");
-       	break;
-	case LM_SSL_STATUS_CERT_NOT_ACTIVATED:
-       	g_printerr ("Certificate has not been activated!\n");
-       	break;
-	case LM_SSL_STATUS_CERT_HOSTNAME_MISMATCH:
-       	g_printerr ("Certificate hostname does not match expected hostname!\n");
-       	break;
-	 case LM_SSL_STATUS_CERT_FINGERPRINT_MISMATCH:
-	 	g_printerr ( "fingerprint error!\n" );
-	 	break;
-	 case LM_SSL_STATUS_GENERIC_ERROR:
-        g_printerr ("Generic SSL error!\n");
-        break;
-	    }
-		
-	return LM_SSL_RESPONSE_CONTINUE;
-	}
-
-
-// ---------------------------------------------------------------------------
-// function_name       : SetProxy
-// description         : Sets the connection to use proxy
-// Arguements          :
-//        connection   : LmConnection
-//        connect_data : ConnectData
-// Returns             : None
-// ---------------------------------------------------------------------------
-//
-#ifdef __WINSCW__
-static void 
-SetProxy ( LmConnection *connection, ProxyData *proxy_data )
-	{
-	LmProxy *proxy = NULL;
-	
-	proxy = lm_proxy_new ( LM_PROXY_TYPE_HTTP );
-	lm_proxy_set_server ( proxy, proxy_data->proxy_server );
-	lm_proxy_set_port ( proxy, proxy_data->proxy_port );
-	lm_connection_set_proxy ( connection, proxy );
-	lm_proxy_unref ( proxy );
-	}
-#endif
-
-// ---------------------------------------------------------------------------
-// function_name       : SSLInit
-// description         : Sets the connection to use SSL
-// Arguements          :
-//        connection   : LmConnection
-// Returns             : None
-// ---------------------------------------------------------------------------
-//
-static void 
-SSLInit ( LmConnection *connection )
-	{
-	LmSSL *ssl = NULL;
-	
-	ssl = lm_ssl_new ( NULL, ( LmSSLFunction ) ssl_cb, NULL, NULL );
-	lm_connection_set_ssl ( connection, ssl );
-		lm_ssl_unref ( ssl );
-	lm_connection_set_keep_alive_rate (connection, 30);
-	}
-
-
-// ---------------------------------------------------------------------------
-// function_name       : get_user_name 
-// description         : Returns the username from the jid
-// Arguements          :
-//        jid          : jid
-// Returns             : username
-// ---------------------------------------------------------------------------
-//
-static gchar *
-get_user_name ( const gchar *jid )
-	{
-	const gchar *ch;
-	
-	g_return_val_if_fail ( jid != NULL, NULL );
-	
-	ch = strchr ( jid, '@' );
-	if ( !ch )
-		return ( gchar *) jid;
-	
-	return g_strndup ( jid, ch - jid );
-	}
-
-// ---------------------------------------------------------------------------
-// jabber_presence_handler_cb: Callback function to handle the presence info
-// ---------------------------------------------------------------------------
-//
-static LmHandlerResult
-jabber_presence_handler_cb ( LmMessageHandler * /*handler*/,
-                              LmConnection     * /*connection*/,
-                              LmMessage        *message,
-                              gpointer          user_data )
-	{	
-	const gchar        *jid;
-	const gchar        *show;
-	const gchar        *status;		
-	
-	LmMessageNode      *node;
-	JabberPresenceType type;
-	
-	if(message != NULL)
-		{
-		// Get the JID attribute
-		jid = lm_message_node_get_attribute ( message->node, "from" );
-
-		// Get the show attribute
-		
-		node = lm_message_node_get_child ( message->node, "show" );
-		show = node ? ( node->value ) : "online";
-		
-		// Get the status attribute
-		node   = lm_message_node_get_child ( message->node, "status" );
-		status = node ? ( node->value ) : NULL;
-		
-		type = jabber_presence_type_from_string ( show );			
-		}
-	
-		
-	GMainLoop *main_loop = ( GMainLoop * ) user_data;  
-	if ( main_loop )
-	    {
-	    g_main_loop_quit ( main_loop );	
-	    }  		
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-	}
-
-
-
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// Ctstlm::Delete
-// Delete here all resources allocated and opened from test methods. 
-// Called from destructor. 
-// -----------------------------------------------------------------------------
-//
-void Ctstlm::Delete() 
-    {
-
-    }
-
-// -----------------------------------------------------------------------------
-// Ctstlm::RunMethodL
-// Run specified method. Contains also table of test mothods and their names.
-// -----------------------------------------------------------------------------
-//
-TInt Ctstlm::RunMethodL( 
-    CStifItemParser& aItem ) 
-    {
-	iLog->Log ( _L ( "In RunMethodL method" ) );
-	
-
-    //TestModuleIf().SetBehavior( CTestModuleIf::ETestLeaksRequests ); 
-    //TestModuleIf().SetBehavior( CTestModuleIf::ETestLeaksHandles );  
-
-    static TStifFunctionInfo const KFunctions[] =
-        {  
-        // Copy this line for every implemented function.
-        // First string is the function name used in TestScripter script file.
-        // Second is the actual implementation member function.    
-        
-        // LmConnection       
-        ENTRY( "lm_connection_new", Ctstlm::lm_connection_newL ),
-        ENTRY( "lm_new_with_context", Ctstlm::lm_new_with_contextL ),
-        ENTRY( "lm_connection_open", Ctstlm::lm_connection_openL ),
-        ENTRY( "lm_connection_is_open_WhenConnectionIsClosed", Ctstlm::lm_connection_is_open_WhenConnectionIsClosedL), 
-        ENTRY( "lm_connection_is_authenticated_WhenNot_Authenticated", Ctstlm::lm_is_authenticated_WhenNotAuthenticatedL), 
-        ENTRY( "lm_connection_set_server_withNULL", Ctstlm::lm_connection_set_server_WithNULL),   
-        ENTRY( "lm_connection_set_jid_WithNull", Ctstlm::lm_connection_set_jid_WithNULL),   
-        ENTRY( "lm_connection_set_port_WithNULL", Ctstlm::lm_connection_set_port_WithNULL),   
-        ENTRY( "lm_connection_set_ssl_WithNULL", Ctstlm::lm_connection_set_ssl_WithNULL),   
-        ENTRY( "lm_connection_close", Ctstlm::lm_connection_closeL ),
-        ENTRY( "lm_connection_closeWhenNotOpen", Ctstlm::lm_connection_closeWhenNotOpenedL ),
-        ENTRY( "lm_authenticate", Ctstlm::lm_authenticateL ),
-        ENTRY( "lm_connection_is_open", Ctstlm::lm_connection_is_openL ),
-        ENTRY( "lm_is_authenticated", Ctstlm::lm_is_authenticatedL ),
-        ENTRY( "lm_connection_set_get_server", Ctstlm::lm_connection_set_get_serverL ),
-        ENTRY( "lm_connection_set_get_jid", Ctstlm::lm_connection_set_get_jidL ), 
-        ENTRY( "lm_connection_set_get_port", Ctstlm::lm_connection_set_get_portL ),
-        ENTRY( "lm_connection_set_get_ssl", Ctstlm::lm_connection_set_get_sslL ),
-        ENTRY( "lm_connection_set_get_proxy", Ctstlm::lm_connection_set_get_proxyL ),
-        
-        ENTRY( "lm_connection_send", Ctstlm::lm_connection_sendL ),
-        ENTRY( "lm_connection_send400char", Ctstlm::lm_connection_send400charL ),
-        ENTRY( "lm_connection_send_repeated", Ctstlm::lm_connection_send_repeatedL ),       
-        
-        ENTRY( "lm_send_with_reply", Ctstlm::lm_send_with_replyL ),
-        ENTRY( "register_message_handler", Ctstlm::register_message_handlerL ),
-        ENTRY( "set_disconnect_function", Ctstlm::set_disconnect_functionL ),
-        ENTRY( "lm_connection_send_raw",  Ctstlm::lm_connection_send_rawL ),
-        ENTRY( "lm_connection_get_state", Ctstlm::lm_connection_get_stateL ),
-        ENTRY( "lm_connection_ref",  Ctstlm::lm_connection_refL ),
-        ENTRY( "lm_connection_unref", Ctstlm::lm_connection_unrefL ),
-        
-        // LmMessage
-        ENTRY( "lm_message_new", Ctstlm::lm_message_newL ),
-        ENTRY( "lm_message_new_with_sub_type", Ctstlm::lm_message_new_with_sub_typeL ),
-        ENTRY( "lm_message_get_type", Ctstlm::lm_message_get_typeL ),
-        ENTRY( "lm_message_get_sub_type", Ctstlm::lm_message_get_sub_typeL ),
-        ENTRY( "lm_message_get_node", Ctstlm::lm_message_get_nodeL ),
-        ENTRY( "lm_message_ref", Ctstlm::lm_message_refL ),
-        ENTRY( "lm_message_unref", Ctstlm::lm_message_unrefL ),
-        
-        // LmMessageHandler
-        ENTRY( "lm_message_handler_new", Ctstlm::lm_message_handler_newL ),
-        ENTRY( "lm_message_handler_invalidate", Ctstlm::lm_message_handler_invalidateL ),
-        ENTRY( "lm_message_handler_is_valid", Ctstlm::lm_message_handler_is_validL ),
-        ENTRY( "lm_message_handler_ref", Ctstlm::lm_message_handler_refL ),
-        ENTRY( "lm_message_handler_unref", Ctstlm::lm_message_handler_unrefL ),
-        
-        // LmMessageNode
-        ENTRY( "lm_message_node_set_get_value", Ctstlm::lm_message_node_set_get_valueL ),
-        ENTRY( "lm_message_node_add_child", Ctstlm::lm_message_node_add_childL ),
-        ENTRY( "lm_message_node_get_child", Ctstlm::lm_message_node_get_childL ),
-        ENTRY( "lm_message_node_find_child", Ctstlm::lm_message_node_find_childL ),  
-        
-        ENTRY( "lm_message_node_set_get_attributes", Ctstlm::lm_message_node_set_get_attributesL ),
-              
-        ENTRY( "lm_message_node_set_get_raw_mode", Ctstlm::lm_message_node_set_get_raw_modeL ),
-        
-        ENTRY( "lm_message_node_ref", Ctstlm::lm_message_node_refL ),
-        ENTRY( "lm_message_node_unref", Ctstlm::lm_message_node_unrefL ),
-        
-        ENTRY( "lm_message_node_to_string", Ctstlm::lm_message_node_to_stringL ),
-        
-        // LmSSL
-        ENTRY( "lm_ssl_new", Ctstlm::lm_ssl_newL ),
-        ENTRY( "lm_ssl_is_supported", Ctstlm::lm_ssl_is_supportedL ),
-        ENTRY( "lm_ssl_get_fingerprint", Ctstlm::lm_ssl_get_fingerprintL ),
-        ENTRY( "lm_ssl_ref", Ctstlm::lm_ssl_refL ),
-        ENTRY( "lm_ssl_unref", Ctstlm::lm_ssl_unrefL ),        
-        
-        // LmProxy        
-        ENTRY( "lm_proxy_new", Ctstlm::lm_proxy_newL ),
-        ENTRY( "lm_proxy_new_with_server", Ctstlm::lm_proxy_new_with_serverL ),        
-        ENTRY( "lm_proxy_set_get_type", Ctstlm::lm_proxy_set_get_typeL ),        
-        ENTRY( "lm_proxy_set_get_server", Ctstlm::lm_proxy_set_get_serverL ),        
-        ENTRY( "lm_proxy_set_get_port", Ctstlm::lm_proxy_set_get_portL ),        
-        ENTRY( "lm_proxy_set_get_username", Ctstlm::lm_proxy_set_get_usernameL ),        
-        ENTRY( "lm_proxy_set_get_password", Ctstlm::lm_proxy_set_get_passwordL ),        
-        ENTRY( "lm_proxy_ref", Ctstlm::lm_proxy_refL ),
-        ENTRY( "lm_proxy_unref", Ctstlm::lm_proxy_unrefL ),
-        
-        // lm-send-sync example        
-        ENTRY( "lm_send_sync", Ctstlm::lm_send_syncL ),
-        
-        // lm contact list fetching code
-        
-        ENTRY( "lm_fetching_contactlist", Ctstlm::lm_fetching_contactlist_L ),
-        ENTRY( "lm_fetching_presence", Ctstlm::lm_fetching_presenceL ),
-        ENTRY( "lm_subscribe_contact", Ctstlm::lm_subscribe_contact_L ),
-        ENTRY( "lm_authenticate_unexistjid", Ctstlm::lm_authenticate_WithUnexistingJID ),
-        ENTRY( "lm_authenticate_badpassword", Ctstlm::lm_authenticate_WithBadPasswordL ),
-        ENTRY( "lm_authenticate_connectionisnotcreated", Ctstlm::lm_authenticate_WhenConnectionIsNotOpenedL ),
-        ENTRY( "lm_connection_open_with_bad_server", Ctstlm::lm_connection_open_with_badserverL ),
-        ENTRY( "lm_connection_send_receive", Ctstlm::lm_connection_send_receiveL ),
-        ENTRY( "lm_login_test", Ctstlm::lm_login_testL ),
-        ENTRY( "lm_add_contact", Ctstlm::lm_add_contactL ),
-        ENTRY( "lm_remove_contact", Ctstlm::lm_remove_contactL ),
-        ENTRY( "lm_connection_cancel_open", Ctstlm::lm_connection_cancel_openL ),
-        ENTRY( "lm_connection_get_privacy_lists", Ctstlm::lm_connection_get_privacy_listsL ),
-        ENTRY( "lm_connection_set_privacy_lists", Ctstlm::lm_connection_set_privacy_listsL ),
-        ENTRY( "lm_connection_send_image_bytestream_msg", Ctstlm::lm_connection_send_image_bytestream_msgL ),
-        ENTRY( "lm_connection_send_image_bytestream_iq", Ctstlm::lm_connection_send_image_bytestream_iqL ),
-        ENTRY( "lm_connection_send_multiple_conn", Ctstlm::lm_connection_send_multiple_connL ),
-        ENTRY( "lm_connection_block_contact", Ctstlm::lm_connection_block_contactL ),
-        ENTRY( "lm_connection_unblock_contact", Ctstlm::lm_connection_unblock_contactL ),
-        ENTRY( "lm_connection_set_active_list", Ctstlm::lm_connection_set_active_listL ),
-        ENTRY( "lm_connection_set_unexist_active_list", Ctstlm::lm_connection_set_unexist_active_listL ),
-        ENTRY( "lm_connection_set_decline_active_list", Ctstlm::lm_connection_set_decline_active_listL ),
-        ENTRY( "lm_connection_get_one_privacy_list", Ctstlm::lm_connection_get_one_privacy_listL ),
-        ENTRY( "lm_connection_set_one_privacy_list", Ctstlm::lm_connection_set_one_privacy_listL ),
-        ENTRY( "lm_connection_get_many_privacy_list_from_listname", Ctstlm::lm_connection_get_many_privacy_list_from_listnameL ),
-        ENTRY( "lm_connection_set_one_unexist_privacy_list", Ctstlm::lm_connection_set_one_unexist_privacy_listL ),
-        ENTRY( "lm_connection_get_one_unexist_privacy_list", Ctstlm::lm_connection_get_one_unexist_privacy_listL ),
-        ENTRY( "lm_connection_create_one_privacy_list", Ctstlm::lm_connection_create_one_privacy_listL ),
-        ENTRY( "lm_service_discovery", Ctstlm::lm_service_discoveryL ),
-        ENTRY( "lm_service_discovery_connected_resource", Ctstlm::lm_service_discovery_connected_resourceL ),
-        ENTRY( "lm_simple_communications_blocking", Ctstlm::lm_simple_communications_blockingL ),
-        ENTRY( "lm_send_im_with_reply", Ctstlm::lm_send_im_with_replyL ),
-        ENTRY( "lm_receive_any_message", Ctstlm::lm_receive_any_messageL ),
-        ENTRY( "lm_login_multiple_sessions", Ctstlm::lm_login_multiple_sessionsL ),
-        ENTRY( "lm_change_own_presence", Ctstlm::lm_change_own_presenceL ),
-        ENTRY( "lm_login_test_invalid_server", Ctstlm::lm_login_test_invalid_serverL ),
-        ENTRY( "lm_login_test_invalid_port", Ctstlm::lm_login_test_invalid_portL ),
-        ENTRY( "lm_memory_leak_test", Ctstlm::lm_memory_leak_testL ),
-        ENTRY( "lm_nft_updating_presence", Ctstlm::lm_nft_updating_presenceL ),
-        ENTRY( "lm_nft_presence_notification", Ctstlm::lm_nft_presence_notificationL ),
-        ENTRY( "lm_nft_send_text_message", Ctstlm::lm_nft_send_text_messageL ),
-        ENTRY( "lm_nft_open_conversation_with_multiple",Ctstlm::lm_nft_open_conversation_with_multipleL ),
-        ENTRY( "lm_nft_fetch300_contact", Ctstlm::lm_nft_fetch300_contactL ),
-        ENTRY( "lm_nft_loginlogoutmultipletime", Ctstlm::lm_nft_loginlogoutmultipletime ),
-        ENTRY( "lm_nft_receiving100_message_L", Ctstlm::lm_nft_receiving100_message_L ),
-        
-        };
-
-    const TInt count = sizeof( KFunctions ) / 
-                        sizeof( TStifFunctionInfo );
-
-    return RunInternalL( KFunctions, count, aItem );
-
-    }
-
-
-//----------------------------------------------------------------------------
-// Ctstlm::lm_connection_newL
-// Description	: Creates a new closed connection. Server can be NULL but must
-//				  be set before calling lm_connection_open()
-// Arguements	:
-//		 server	: The hostname of the server for the connection
-// Retrurns		: A newly created LmConnection, should be unreffed with 
-//				  lm_connection_unref()
-//----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_newL ( CStifItemParser& aItem )
-	{
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;	
-  	
-  	SET_LOW_MEMORY_TRAP ( NULL );
-  	
-  	iLog->Log ( _L("In lm_connection_newL" ) );
-  	
-  	
-  	
-__UHEAP_MARK;
-__UHEAP_RESET;
-
-  	// Read data from the cfg file
-  	if ( read_data ( connect_data, aItem ) != RC_OK )
-  	    {
-  		iLog->Log ( _L ( "read_data failed" ) );
-  		free_data ( connect_data );
-  		return KErrGeneral;
-  	    }
-  	
-__UHEAP_FAILNEXT(1);
-
-  	//-----------------------
-  	connection = lm_connection_new ( connect_data->server );  	
-  	//-----------------------
-  	
-  	// Free the allocated resources 
-  	free_data ( connect_data );
-  	
-	if ( connection == NULL ) 
-	    {
-		iLog->Log ( _L( "lm_connection_new failed to allocate memory" ) );		
-		return KErrGeneral;	
-	    }
-	
-	lm_connection_unref ( connection );
-__UHEAP_MARKEND;
-	
-	REMOVE_LOW_MEMORY_TRAP ();
-	
-	iLog->Log ( _L( "lm_connection_new test case passed" ) );
-	
-	return KErrNone;			
-	}
-	
-	
-//----------------------------------------------------------------------------
-// Ctstlm::lm_connection_new_with_context
-// Description	: Creates a new closed connection running in a certain context
-// Arguements	:
-//		server	: The hostname of the server for the connection
-//		context	: The context this connection should be running on
-// Retrurns		: A newly created Lmconnection, should be unreffed with
-//				  lm_connection_unref()
-//----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_new_with_contextL ( CStifItemParser& /* aItem */ )
-    {
-	GMainContext *context;
-	LmConnection *connection = NULL;
-	
-	iLog->Log ( _L( "In lm_connection_new_with_contextL" ) );
-	
-	context = g_main_context_new ();
-	connection = lm_connection_new_with_context ( NULL, context );
-	if ( connection == NULL ) 
-		{
-		iLog->Log ( _L ( "lm_connection_new_with_context failed" ) );
-		return KErrGeneral;
-		}
-		
-	lm_connection_unref ( connection );
-	
-	iLog->Log ( _L ( "lm_connection_new_with_context test case passed" ) );
-	
-	return KErrNone;
-    }
-	
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_open
-// Description	: An async call to open connection. When the connection is open
-//                function 'connection_open_cb' is called
-// Arguements	:
-//	connection	: LmConnection to open
-//	function	: Callback function that will be called when the connection 
-//         		  is open
-//	user_data	: User data that will be passed to function
-//	notify		: Function for freeing that user_data, can be NULL
-//	error		: location to store error
-// Returns		: TRUE if everything went fine, FALSE otherwise
-//
-// Requieres	: This test case requires GUI for selecting Access point
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_openL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	
-	GMainLoop    *main_loop    = NULL;	
-		
-	iLog->Log ( _L ( "In lm_connection_open" ) );
-	
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Open a new closed connection
-	//context = g_main_context_new ();
-	//connection = lm_connection_new_with_context ( connect_data->server, context );
-	
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-		
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Set proxy for emulator
-#ifdef __WINSCW__
-    SetProxy ( connection, connect_data->proxy_data );
-#endif
-
-    // Set connection to use SSL
-    SSLInit ( connection );
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	
-	iLog->Log ( _L ( "lm_connection_open succeded" ) );
-	return  KErrNone;	
-
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_close
-// Description	 : A synchronous call to close the connection
-// Arguements    :
-//	  connection : LmConnection to close
-//			error		: location to store error, or NULL
-// Retrurns      :TRUE if no errors were detected, otherwise FALSE
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_closeL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_close" ) );
-	
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Open a new closed connection	
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, connect_data->username );
-	// Set proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set connection to use SSL
-	SSLInit ( connection );
-	GMainLoop *main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );		
-		return KErrGeneral;
-	    }
-		
-	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	
-		
-	if ( lm_connection_close ( connection, NULL ) == FALSE )
-	    {
-		iLog->Log ( _L ( "lm_connection_close failed" ) );
-		lm_connection_unref ( connection );
-		return KErrGeneral;
-	    }
-	
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	iLog->Log ( _L ( "lm_connection_close passed" ) );
-	
-	return KErrNone;
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_closeWhenNotOpenedL
-// Description	 : A synchronous call to close the connection
-// Arguements    :
-//	  connection : LmConnection to close
-//			error		: location to store error, or NULL
-// Retrurns      :TRUE if no errors were detected, otherwise FALSE
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_closeWhenNotOpenedL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_close" ) );
-	
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Open a new closed connection	
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-		
-	if ( lm_connection_close ( connection, NULL ) == TRUE )
-	    {
-		iLog->Log ( _L ( "lm_connection_close failed" ) );
-		lm_connection_unref ( connection );
-		return KErrGeneral;
-	    }
-	
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	iLog->Log ( _L ( "lm_connection_closeWhenNotOpenedL passed" ) );
-	
-	return KErrNone;
-    }
-
-
-
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_authenticateL
-// Description	  : Tries to authenticate a user against the server
-// Arguements	  :
-//	 connnection  : LmConnection to authenticate
-//	 username     : Username used to authenticate
-//	 password     : Password corresponding to username
-//	 resource     : Resource used for this connection
-//	 function     : Callback function called when authentication is finished
-//   user_data    : Userdata passed to callback function when called
-//   notify       : Function for freeing user_data, can be NULL
-//   error        : location to store error, or NULL
-// Returns        : TRUE if no errors were detected, FALSE otherwise
-// Requieres      : This test case requires GUI for selecting Access point
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_authenticateL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;	
-	AuthData     *auth_data    = NULL;
-		
-	iLog->Log ( _L ( "In lm_authenticateL" ) );	
-
-	auth_data = g_new0 ( AuthData, 1 );
-	if ( !auth_data )
-		{
-		iLog->Log ( _L ( "memory allocation failed for auth_data" ) );
-		return KErrGeneral;
-		}	
-		
-	if ( read_data ( auth_data->connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );		
-		free_data ( auth_data->connect_data );		
-		g_free ( auth_data );
-		return KErrGeneral;
-		}
-	
-	auth_data->main_loop    = g_main_loop_new ( NULL, FALSE );	
-	auth_data->rCode        = RC_ERROR;
-	connection = lm_connection_new ( auth_data->connect_data->server );
-	if ( connection == NULL )
-	    {
-	    iLog->Log ( _L ( "lm_connection_new failed" ) );
-	    free_data ( auth_data->connect_data );
-	    g_main_loop_unref ( auth_data->main_loop );
-	    g_free ( auth_data );
-	    return KErrGeneral;
-	    }
-	
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, auth_data->connect_data->username );
-
-#ifdef __WINSCW__
-	SetProxy ( connection, auth_data->connect_data->proxy_data );
-#endif
-	SSLInit ( connection );
-	
-	if ( !lm_connection_open ( connection, 
-	                           ( LmResultFunction ) auth_in_connection_cb,
-	                           auth_data, 
-	                           NULL, 
-	                           NULL ) )                          
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ) );
-		free_data ( auth_data->connect_data );
-		g_main_loop_unref ( auth_data->main_loop );
-		g_free ( auth_data );
-		return KErrGeneral;
-	    }	   
-	                                    
-	
-	g_main_loop_run ( auth_data->main_loop );
-	g_main_loop_unref ( auth_data->main_loop );
-	
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );
-	free_data ( auth_data->connect_data );	
-	
-	if ( auth_data->rCode != RC_OK )
-	    {
-	    iLog->Log ( _L ( "lm_authenticateL failed" ) );
-	    g_free ( auth_data );
-	    return KErrGeneral;
-	    }
-	
-	g_free ( auth_data );
-
-	iLog->Log ( _L ( "lm_authenticateL passed" ) );
-	
-	return KErrNone;		
-    }
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_is_open
-// Description  : Check if connection is currently open or not
-// Arguements   :
-//   connection	: an LmConnection to check if it is open
-// Returns      : TRUE if connection is open and FALSE if it is closed
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_is_openL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	gboolean NotOpen           = FALSE;	
-	
-	iLog->Log ( _L ( "In lm_connection_is_open" ) );
-	
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-		
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, connect_data->username );
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	SSLInit ( connection );
-	
-	// Check for connection in case of connection not yet opened
-	if ( !lm_connection_is_open ( connection ) )
-	    {
-		iLog->Log ( _L ( "Connection is not open" ) );
-		NotOpen = TRUE;
-	    }	
-	
-	// Check for open connection in case of connection opened	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop ); 
-	
-	if ( !lm_connection_is_open ( connection ) && FALSE == NotOpen )
-	    {
-		iLog->Log ( _L ( "lm_connection_is_open failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-	    }	
-	
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );
-	free_data ( connect_data );	
-	
-	iLog->Log ( _L ( "lm_connection_is_open passed" ) );
-	
-	return KErrNone;
-	}
-/////////////////////////////////////////////////////////
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_is_open_WhenConnectionIsClosedL
-// Description  : Check if connection is currently open or not
-// Arguements   :
-//   connection	: an LmConnection to check if it is open
-// Returns      : TRUE if connection is open and FALSE if it is closed
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_is_open_WhenConnectionIsClosedL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	gboolean NotOpen           = FALSE;	
-	
-	iLog->Log ( _L ( "lm_connection_is_open_WhenConnectionIsClosedL" ) );
-	
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-		
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( " lm_connection_is_open" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-		
-	if ( lm_connection_is_open ( connection )  )
-	    {
-		iLog->Log ( _L ( "lm_connection_is_open_WhenConnectionIsClosedL failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-	    }	
-	
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );
-	free_data ( connect_data );	
-	
-	iLog->Log ( _L ( "lm_connection_is_open_WhenConnectionIsClosedL passed" ) );
-	
-	return KErrNone;
-	}
-
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_is_authenticated
-// Description  : Check if connection is authenticated or not
-// Arguements   :
-//   connection	: an LmConnection to check 
-// Returns      : TRUE if connection is authenticated, FALSE otherwise
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_is_authenticatedL ( CStifItemParser& aItem )
-    {
-    LmConnection *connection       = NULL;
-    ConnectData  *connect_data     = NULL;
-    gboolean     NotAuthenticated  = FALSE;    
-    
-    iLog->Log ( _L ( "In lm_connection_is_authenticated" ) );
-    
-    // Read data from the CFG file
-    if ( read_data ( connect_data, aItem ) != RC_OK )
-    	{
-    	iLog->Log ( _L ( "read_data failed" ) );
-    	free_data ( connect_data );
-    	return KErrGeneral;
-    	}    
-    
-    // Open a new closed connection
-    connection = lm_connection_new ( connect_data->server );
-    if ( !connection )
-    	{
-    	iLog->Log ( _L ( "lm_connection_new failed" ) );
-    	free_data ( connect_data );
-    	return KErrGeneral;
-    	}
-    
-    // Set the connection to use gtalk's SSL port
-    lm_connection_set_port ( connection, GTALK_SSL_PORT );
-    
-    // Set the JID to be used for connection 
-    lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-    // Open a connection
-    GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop ); 
-	
-    
-    // Check for authentication before the connection is authenticated
-    if ( !lm_connection_is_authenticated ( connection ) )
-        {
-    	iLog->Log ( _L ( "Connection not yet authenticated" ) );
-    	NotAuthenticated = TRUE;
-        }
-    
-    // Authenticate the connection
-    main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-    g_free ( username );
-    
-    // Check for authentication after the connection is authenticated
-    if ( !lm_connection_is_authenticated ( connection ) && 
-          FALSE == NotAuthenticated )
-        {
-    	iLog->Log ( _L ( "lm_connection_is_authenticated failed" ) );    	
-    	lm_connection_close ( connection, NULL );
-    	lm_connection_unref ( connection );
-    	free_data ( connect_data );
-    	return KErrGeneral;
-        }    
-    
-    lm_connection_close ( connection, NULL );
-    lm_connection_unref ( connection );
-    free_data ( connect_data );
-    
-    iLog->Log ( _L ( "lm_connection_is_authenticated passed" ) );
-    
-    return KErrNone;  
-    }
-
-
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_get_server
-// Description  : Sets the server address for connection to server. Notice that
-//                connection can't be open while doing this.
-// Arguements   :
-//   connection	: an LmConnection
-//   server     : Address of the server ( name of the server )
-// Returns      : None
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_set_get_serverL ( CStifItemParser& aItem )
-    {
-    LmConnection *connection   = NULL;
-    gchar        *ServerName   = "ganapati.nokia.com";
-    ConnectData  *connect_data = NULL;
-    gchar        *NewServerName;
-    
-    iLog->Log ( _L ( "In lm_connection_set_server" ) );
-    
-    // Read data from the CFG file
-    if ( read_data ( connect_data, aItem ) != RC_OK )
-    	{
-    	iLog->Log ( _L ( "read_data failed" ) );
-    	free_data ( connect_data );
-    	return KErrGeneral;
-    	}
-    
-    // Open a new closed connection
-    connection = lm_connection_new ( connect_data->server );
-    if ( !connection )
-    	{
-    	iLog->Log ( _L ( " lm_connection_new failed" ) );
-    	free_data ( connect_data );
-    	return KErrGeneral;
-    	}
-    	
-    
-    
-    // Set the servers name before the connection
-    lm_connection_set_server ( connection, ServerName );
-    
-    // Verify the server name
-    NewServerName = (gchar *)lm_connection_get_server ( connection );
-    
-    if ( strcmp ( NewServerName, ServerName ) != 0 )
-        {
-    	iLog->Log ( _L ( "lm_connection_set_server failed" ) );    	
-    	lm_connection_unref ( connection );    	
-    	return KErrGeneral;
-        }
-         
-    lm_connection_unref ( connection );            
-    free_data ( connect_data );
-    // Server name modified successfully
-    iLog->Log ( _L ( "lm_connection_set_server passed" ) );        
-    
-    return KErrNone;    	
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm:lm_connection_set_server_WithNULL 
-// Description  : Sets the server address for connection to server. Notice that
-//                connection can't be open while doing this.
-// Arguements   :
-//   connection	: an LmConnection
-//   server     : Address of the server ( name of the server )
-// Returns      : None
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_set_server_WithNULL ( CStifItemParser& aItem )
-    {
-    LmConnection *connection   = NULL;
-    gchar        *ServerName   = "\0";
-    ConnectData  *connect_data = NULL;
-    gchar        *NewServerName;
-    
-    iLog->Log ( _L ( "In lm_connection_set_server" ) );
-    
-    // Read data from the CFG file
-    if ( read_data ( connect_data, aItem ) != RC_OK )
-    	{
-    	iLog->Log ( _L ( "read_data failed" ) );
-    	free_data ( connect_data );
-    	return KErrGeneral;
-    	}
-    
-    // Open a new closed connection
-    connection = lm_connection_new ( connect_data->server );
-    if ( !connection )
-    	{
-    	iLog->Log ( _L ( " lm_connection_new failed" ) );
-    	free_data ( connect_data );
-    	return KErrGeneral;
-    	}
-    	
-    
-    
-    // Set the servers name before the connection
-    lm_connection_set_server ( connection, ServerName );
-    
-    // Verify the server name
-    NewServerName = (gchar *)lm_connection_get_server ( connection );
-    
-    if ( strcmp ( NewServerName, ServerName ) != 0 )
-        {
-    	iLog->Log ( _L ( "lm_connection_set_server failed" ) );    	
-    	lm_connection_unref ( connection );    	
-    	return KErrGeneral;
-        }
-         
-    lm_connection_unref ( connection );            
-    free_data ( connect_data );
-    // Server name modified successfully
-    iLog->Log ( _L ( "lm_connection_set_server passed" ) );        
-    
-    return KErrNone;    	
-    }
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_get_jid
-// Description  : Sets the JID to be used for connection
-// Arguements   :
-//   connection	: an LmConnection
-//   jid        : JID to be used for connection
-// Returns      : None
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_set_get_jidL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	gchar *Jid                 = "connect.nokia.com";
-	const gchar *GetJid        = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_set_jid" ) );
-	
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Open a new close connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set new jid
-	Jid = g_strdup_printf ( "%s@%s", connect_data->username, connect_data->server );
-	lm_connection_set_jid ( connection, Jid );
-	
-	
-	// Verify the Jid
-	GetJid = lm_connection_get_jid ( connection );
-	if ( strcmp ( Jid, GetJid ) != 0 )
-	    {
-		iLog->Log ( _L ( "lm_connection_set_jid failed" ) );
-		lm_connection_unref ( connection );
-		return KErrGeneral;
-	    }
-	
-	// Remove a referece on connection
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	iLog->Log ( _L ( "lm_connection_set_jid passed" ) );
-	
-	return KErrNone;
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_jid_WithNULL
-// Description  : Sets the JID to be used for connection
-// Arguements   :
-//   connection	: an LmConnection
-//   jid        : JID to be used for connection
-// Returns      : None
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_set_jid_WithNULL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	gchar *Jid                 = "\0";
-	const gchar *GetJid        = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_set_jid" ) );
-	
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Open a new close connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set new jid
-	Jid = g_strdup_printf ( "%s@%s", connect_data->username, connect_data->server );
-	lm_connection_set_jid ( connection, Jid );
-	
-	
-	// Verify the Jid
-	GetJid = lm_connection_get_jid ( connection );
-	if ( strcmp ( Jid, GetJid ) != 0 )
-	    {
-		iLog->Log ( _L ( "lm_connection_set_jid failed" ) );
-		lm_connection_unref ( connection );
-		return KErrGeneral;
-	    }
-	
-	// Remove a referece on connection
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	iLog->Log ( _L ( "lm_connection_set_jid passed" ) );
-	
-	return KErrNone;
-    }
-
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_get_port
-// Description  : Sets the port that connection will be using
-// Arguements   :
-//   connection	: an LmConnection
-//   port       : server port
-// Returns      : None 
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_set_get_portL ( CStifItemParser& /*aItem*/ )
-    {
-	LmConnection *connection = NULL;
-	guint        LmPort;	
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( NULL );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		return KErrGeneral;
-		}
-	
-	// Sets the port 
-	lm_connection_set_port ( connection, MYPORT );
-	
-	// Get the port
-	LmPort = lm_connection_get_port ( connection );
-	
-	// Verify the port used by the connection 	
-	if ( LmPort != MYPORT )
-	    {
-		iLog->Log ( _L ( "lm_connection_set_port failed" ) );
-		lm_connection_unref ( connection );
-		return KErrGeneral;
-	    }
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	
-	iLog->Log ( _L ( "lm_connection_set_port passed" ) );
-	
-	return KErrNone;	
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_port_WithNULL
-// Description  : Sets the port that connection will be using
-// Arguements   :
-//   connection	: an LmConnection
-//   port       : server port
-// Returns      : None 
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_set_port_WithNULL ( CStifItemParser& /*aItem*/ )
-    {
-	LmConnection *connection = NULL;
-	guint        LmPort;	
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( NULL );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		return KErrGeneral;
-		}
-	
-	// Sets the port 
-	lm_connection_set_port ( connection, FAKEPORT );
-	
-	// Get the port
-	LmPort = lm_connection_get_port ( connection );
-	
-	// Verify the port used by the connection 	
-	if ( LmPort != FAKEPORT )
-	    {
-		iLog->Log ( _L ( "lm_connection_set_port failed" ) );
-		lm_connection_unref ( connection );
-		return KErrGeneral;
-	    }
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	
-	iLog->Log ( _L ( "lm_connection_set_port passed" ) );
-	
-	return KErrNone;	
-    }
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_get_ssl
-// Description  : Sets SSL struct or unset if ssl is NULL.
-//                If set connection will use SSL for the connection
-// Arguements   :
-//   connection	: an LmConnection
-//   ssl        : an LmSSL
-// Returns      : None
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_set_get_sslL ( CStifItemParser& /*aItem*/ )
-    {
-    LmConnection *connection = NULL;
-    LmSSL        *ssl        = NULL;
-    
-    iLog->Log ( _L ( "In lm_connection_set_ssl" ) );
-    
-    if ( lm_ssl_is_supported() )
-        {       
-        connection = lm_connection_new ( NULL );
-    
-        ssl = lm_ssl_new ( NULL, NULL, NULL, NULL );
-    
-        lm_connection_set_ssl ( connection, ssl );
-        lm_ssl_unref ( ssl );
-    
-        if ( !lm_connection_get_ssl ( connection ) )
-            {
-    	    iLog->Log ( _L ( "lm_connection_set_ssl failed" ) );
-    	    lm_connection_unref ( connection );    	    
-    	    return KErrGeneral;    
-            }
-        
-        lm_connection_unref ( connection );            
-        
-        iLog->Log ( _L ( "lm_connection_set_ssl passed" ) );
-        
-        return KErrNone;        
-        }
-    
-    iLog->Log ( _L ( "ssl not supported" ) );           
-    
-    return KErrNone;    		    
-    }
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_ssl_WithNULL
-// Description  : Sets SSL struct or unset if ssl is NULL.
-//                If set connection will use SSL for the connection
-// Arguements   :
-//   connection	: an LmConnection
-//   ssl        : an LmSSL
-// Returns      : None
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_set_ssl_WithNULL ( CStifItemParser& /*aItem*/ )
-    {
-    LmConnection *connection = NULL;
-    LmSSL        *ssl        = NULL;
-    
-    iLog->Log ( _L ( "In lm_connection_set_ssl" ) );
-    
-    if ( lm_ssl_is_supported() )
-        {       
-        connection = lm_connection_new ( NULL );
-    
-        ssl = lm_ssl_new ( NULL, NULL, NULL, NULL );
-    
-        lm_connection_set_ssl ( connection, ssl );
-        lm_ssl_unref ( ssl );
-    
-        if ( !lm_connection_get_ssl ( connection ) )
-            {
-    	    iLog->Log ( _L ( "lm_connection_set_ssl failed" ) );
-    	    lm_connection_unref ( connection );    	    
-    	    return KErrGeneral;    
-            }
-        
-        lm_connection_unref ( connection );            
-        
-        iLog->Log ( _L ( "lm_connection_set_ssl passed" ) );
-        
-        return KErrNone;        
-        }
-    
-    iLog->Log ( _L ( "ssl not supported" ) );           
-    
-    return KErrNone;    		    
-    }
-
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_get_proxy
-// Description  : Sets the proxy to use for this connection. To unset pass NULL
-// Arguements   :
-//   connection	: an LmConnection
-//   proxy      : an LmProxy
-// Returns      : None
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_set_get_proxyL ( CStifItemParser& /*aItem*/ )
-    {
-    LmConnection *connection;
-    LmProxy      *Proxy;    
-    
-    iLog->Log ( _L ( "In lm_connection_set_proxy" ) );
-    
-    connection = lm_connection_new ( NULL );
-
-    Proxy = lm_proxy_new ( LM_PROXY_TYPE_HTTP );
-    
-    // Set proxy 
-    lm_connection_set_proxy ( connection, Proxy );
-    lm_proxy_unref ( Proxy );
-    
-    // Verify proxy setttings
-    if ( !lm_connection_get_proxy ( connection ) )
-        {
-    	iLog->Log ( _L ( "lm_connection_set_proxy failed" ) );
-    	lm_connection_unref ( connection );
-    	return KErrGeneral;
-        }    
-    
-    lm_connection_unref ( connection );
-    
-    iLog->Log ( _L ( "lm_connection_set_proxy passed") );
-    
-    return KErrNone;    
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_sendL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_sendL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	
-	iLog->Log ( _L ( "In lm_connection_send" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	
-	g_main_loop_run ( main_loop );
-
-	g_main_loop_unref ( main_loop );    
-
-	
-	GMainLoop	*main_loop1 = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop1,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop1 );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop1 );
-
-	g_main_loop_unref ( main_loop1 );
-	    
-
-	g_free ( username );
-	
-	// Construct a message
-	message = lm_message_new ( connect_data->msg_data->recipient,               
-	                           LM_MESSAGE_TYPE_MESSAGE );
-	lm_message_node_add_child ( message->node, "body", 
-	                            connect_data->msg_data->message);
-	
-	// Send message to the server
-	if ( !lm_connection_send ( connection, message, NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_send failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }	
-	
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	
-	// Remove a reference on message
-	lm_message_unref ( message );
-	
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_send passed" ) );
-	
-	return KErrNone;
-}
-
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_send_with_replyL
-// Description  : Send a LmMessage which will result in a reply
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   handler    : LmMessageHandler that will be used when reply to a message
-//                arrives
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_send_with_replyL ( CStifItemParser& aItem )
-    {
-	LmConnection     *connection;
-	ConnectData      *connect_data = NULL;
-	LmMessage        *message;
-	LmMessageNode    *q_node;
-	LmMessageHandler *handler      = NULL;	
-	
-	iLog->Log ( _L ( "In lm_connection_send_with_reply" ) );
-	
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}	
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the port to gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	// Open a connection with the server
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop ); 
-	
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction )connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	g_free ( username );
-	
-	// Construct a message
-	message = lm_message_new_with_sub_type ( NULL, 
-	                                         LM_MESSAGE_TYPE_IQ,
-	                                         LM_MESSAGE_SUB_TYPE_GET );	                                         
-	q_node = lm_message_node_add_child ( message->node, "query", NULL );
-	lm_message_node_set_attributes ( q_node, "xmlns", "jabber:iq:auth", NULL );
-	lm_message_node_add_child ( q_node, "username", connect_data->username );
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );                                         
-	// Send message to the server
-	handler = lm_message_handler_new ( handle_messages, main_loop, NULL );
-	//we are sending a dummy username request to server and the server should reply with error or not supported message
-	//we handle this in the handler and quit the mainloop.
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref ( handler );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );
-		return KErrGeneral;
-	    }	
-	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );
-	lm_message_unref ( message );
-	lm_message_handler_unref ( handler );
-	free_data ( connect_data );
-	
-	iLog->Log ( _L ( "lm_connection_send_with_reply passed" ) );
-	
-	return KErrNone;
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::register_message_handlerL
-// Description  : Registers a LmMessageHandler to handle incoming messages of
-//                certain type. 
-// Arguements   :
-//   connection	: Connection to register a handle for
-//   handler    : Message handler to register
-//   type       : Message type that handler will handle
-//   priority   : The priority in which to call handler
-// Returns      : None
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::register_message_handlerL ( CStifItemParser& aItem )
-    {
-	LmConnection     *connection;
-	ConnectData      *connect_data;
-	LmMessage        *msg;
-	LmMessageHandler *handler;
-	HandleData       *handle_data;
-	GMainLoop        *main_loop   = NULL;		
-
-	iLog->Log ( _L ( "In register_message_handlerL" ) );
-	
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}	
-	
-	// Create a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-
-	SSLInit ( connection );
-		
-	// Open a connection with the server
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, 
-								( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop ); 
-	
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction )connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	g_free ( username );
-	
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	handle_data = g_new0 ( HandleData, 1 );
-	if ( !handle_data )
-		{
-		iLog->Log ( _L ( "Memory allocation failed for handle_data" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	handle_data->main_loop = main_loop;
-	handle_data->Test_Success = RC_ERROR;
-	
-	// Register a message handler
-	handler = lm_message_handler_new ( handle_messages, handle_data, NULL );
-	if ( !handler )
-		{
-		iLog->Log ( _L ( "lm_message_handler_new failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	lm_connection_register_message_handler ( connection,
-	                                         handler,
-	                                         LM_MESSAGE_TYPE_IQ,
-	                                         LM_HANDLER_PRIORITY_NORMAL );
-	lm_message_handler_unref ( handler );	
-	
-	
-	// Construct a message
-	msg = lm_message_new ( connect_data->msg_data->recipient, 
-	                           LM_MESSAGE_TYPE_IQ );
-	lm_message_node_add_child ( msg->node, "query", NULL );
-
-	
-	//Send message to the server
-	//Since we are sending dummy query to the recipient, we are expecting
-	//an error message. This indicates the response was successfully received.
-	if ( !lm_connection_send ( connection, msg, NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_message_send failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( msg );
-		return KErrGeneral;
-	    }	
-    
-    // Wait for the reply from the server
-    g_main_loop_run ( main_loop );
-    g_main_loop_unref ( main_loop );
-    
-    // Free the allocated resources
-    lm_connection_close ( connection, NULL );
-    lm_connection_unref ( connection );
-    lm_message_unref ( msg );
-    
-    // Verify wheather the callback function called or not
-    if ( RC_OK != handle_data->Test_Success )
-        {
-    	iLog->Log ( _L ( "register_message_handlerL failed" ) );
-    	g_free ( handle_data );
-    	return KErrGeneral;
-        }
-    
-    g_free ( handle_data );
-	free_data ( connect_data );
-    iLog->Log ( _L ( "register_message_handlerL passed" ) );
-    
-    return KErrNone;
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::set_disconnect_functionL
-// Description  : Set the callback that will be called when a connection is 
-//                closed
-// Arguements   :
-//   connection	: Connection to register disconnect callback for
-//   function   : Function to be called when connection is closed
-//   user_data  : User data passed to a function
-//   notify     : Function to free user_data
-// Returns      : None
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::set_disconnect_functionL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;	
-	ConnectData  *connect_data = NULL;
-	HandleData   *handle_data  = NULL;
-	
-	iLog->Log ( _L ( "In set_disconnect_functionL" ) );
-	
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}		
-	
-	// Create a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-
-	SSLInit ( connection );
-
-	
-	// Open a connection with the server
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop ); 
-	
-		
-	handle_data = g_new0 ( HandleData, 1 );
-	if ( !handle_data )
-		{
-		iLog->Log ( _L ( "Memory allocation failed for handle_data" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		return KErrGeneral;
-		}
-	handle_data->Test_Success = RC_ERROR;
-	
-	// Set a Callback function that will be called when connection is closed
-	lm_connection_set_disconnect_function ( connection, 
-	                                        connection_close_cb, 
-	                                        handle_data,
-	                                        NULL );
-	
-	// Close the opened connection
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );
-	
-	// Check wheather callback function is called or not
-	if ( RC_OK != handle_data->Test_Success )
-	    {
-		iLog->Log ( _L ( "set_disconnect_functionL failed" ) );
-		g_free ( handle_data );
-		return KErrGeneral;
-	    } 
-	    
-	g_free ( handle_data );	
-	
-	iLog->Log ( _L ( "set_disconnect_functionL passed" ) );
-	free_data ( connect_data );
-	
-	return KErrNone;	
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_send_raw
-// Description  : Asynchronus call to send a raw string. 
-// Arguements   :
-//   connection	: Connection used to send
-//   str        : The string to send, the entire string will be sent
-//   error      : Set if error was detected during sending
-// Returns      : TRUE if no errors were detected during sending, FALSE 
-//                otherwise
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_send_rawL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	GError       *error        = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_send_raw" ) );
-	
-	// Read data from the cfg file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Create a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-
-	SSLInit ( connection );
-		
-	// Open a connection with the server
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop ); 
-	
-	
-	// Send a raw message 
-	if ( !lm_connection_send_raw ( connection, 
-	                               connect_data->msg_data->message, 
-	                               &error ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_send_raw failed: %s"), error->message );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		return KErrGeneral;
-	    }
-    
-    lm_connection_close ( connection, NULL );
-    lm_connection_unref ( connection );
-    free_data ( connect_data );
-    
-    iLog->Log ( _L ( "lm_connection_send_raw passed" ) );
-    
-    return KErrNone;	
-    }
-
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_get_state
-// Description  : Returns the state of the connection
-// Arguements   :
-//      connection	: Connection to get state
-// Returns      : The state of the connection
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_get_stateL ( CStifItemParser& aItem )
-    {
-	LmConnection      *connection   = NULL;
-	ConnectData       *connect_data = NULL;
-	LmConnectionState state;
-	
-	iLog->Log ( _L ( "In lm_connection_get_state" ) );
-	
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Create a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-
-	SSLInit ( connection );	
-	
-	// Verify the state when the connection is closed
-	state = lm_connection_get_state ( connection );
-	
-	if ( LM_CONNECTION_STATE_CLOSED != state )
-	    {
-		iLog->Log ( _L ( "lm_connection_get_state failed:closed" ) );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		return KErrGeneral;
-	    }
-	
-	// Verify the state after opening the connection
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop ); 
-	
-	    
-	state = lm_connection_get_state ( connection );
-	
-	if ( LM_CONNECTION_STATE_OPEN != state )
-	    {
-		iLog->Log ( _L ( "lm_connection_get_state failed: open" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		return KErrGeneral;
-	    }
-	    
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction )connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	g_free ( username );    
-	
-		    
-	state = lm_connection_get_state ( connection );
-	
-	if ( LM_CONNECTION_STATE_AUTHENTICATED != state )
-	    {
-	    iLog->Log ( _L ( "lm_connection_get_state failed: authenticated" ) );
-	    lm_connection_close ( connection, NULL );
-	    lm_connection_unref ( connection );
-	    free_data ( connect_data );
-	    return KErrGeneral;
-	    }    
-	
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	
-	iLog->Log ( _L ( "lm_connection_get_state passed" ) );
-	
-	return KErrNone;
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_ref
-// Description  : Add a reference on connection
-// Arguements   :
-//   connection	: Connection to a add a reference to 
-// Returns      : Returns the same connection
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_refL ( CStifItemParser& /*aItem*/ )
-    {
-	LmConnection *connection = NULL;	
-	
-	iLog->Log ( _L ("In lm_connection_unref" ) );
-	
-	// Create a new closed connection
-	connection = lm_connection_new ( NULL );
-		
-	// Add a reference on connection
-	connection = lm_connection_ref ( connection );
-	
-    // Loudmouth don't have any API to check the ref count on connection
-    // Therefore lm_connection_ref is considered as passed.
-    	
-    // Decrement the reference count and free the memory
-	lm_connection_unref ( connection );
-	lm_connection_unref ( connection );
-	
-	iLog->Log ( _L ( "lm_connection_ref passed" ) );
-	
-	return KErrNone;
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_unref
-// Description  : Removes the reference on connection. If there are no
-//                references to connection, it will be freed and shouldn't
-//                used again
-//                Check the total available heap space
-//                Create a new closed connection,
-//                Check that available heap space is reduced
-//                Decrement the reference on connection
-//                Check the available heap is equal to what it was before                 
-// Arguements   :
-//   connection	: Connection to remove reference from
-// Returns      : None
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_unrefL ( CStifItemParser& /*aItem*/ )
-    {
-	LmConnection *connection = NULL;
-	RHeap&       heap_handle = User::Heap();
-	TInt         largest_free_block;
-	TInt         heap_available_before;
-	TInt         heap_available_after;	
-	
-	iLog->Log ( _L ( "In lm_connection_unref" ) );	
-__UHEAP_MARK;
-    // Get the heap space before creating closed connection
-	heap_available_before = heap_handle.Available ( largest_free_block );	
-	
-	// Create a new closed connection
-	connection = lm_connection_new ( NULL );	
-	
-	// Decrement the reference on connection
-	lm_connection_unref ( connection );
-
-	// Get the heap space after freeing memory
-	heap_available_after = heap_handle.Available ( largest_free_block );	
-
-   	if ( heap_available_after != heap_available_before )
-	    {
-		iLog->Log ( _L ( "{heap_available_before = %d, heap_available_before = %d}" ),
-		                   heap_available_before, heap_available_after );
-		iLog->Log ( _L ( "Available memeory is not as expected after free!" ) );
-		return KErrGeneral;                   
-	    }	
-__UHEAP_MARKEND;
-	iLog->Log ( _L ( "{ Expected:heap_available_before is equal to heap_available_after }" ) );
-	iLog->Log ( _L ( "heap_available_before = %d, heap_available_after = %d" ),
-	                  heap_available_before, heap_available_after );
-	iLog->Log ( _L ( "lm_connection_unref passed" ) );
-		
-	return KErrNone;
-	
-    }
-    
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_new
-// Description:Creates a new LmMessage which can be sent with 
-//             lm_connection_send() or lm_connection_send_with_reply().
-// Arguements :
-//    to      : recipient jid
-//    type    : message type
-// Returns    : a newly created LmMessage       
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_newL ( CStifItemParser& aItem )
-    {
-	LmMessage     *message;
-	ConnectData   *connect_data = NULL;
-	LmMessageType MessageType;
-	gchar         Type[256];	
-	
-	iLog->Log ( _L ( "\tIn lm_message_new" ) );	
-	
-	// Read data from the CFG file	
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-	{
-		iLog->Log ( _L ( "\tread_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-	}
-	
-	// Construct a message with a type=LM_MESSAGE_TYPE_MESSAGE
-	iLog->Log ( _L ( "\tConstruct a message" ) );
-	
-	message = lm_message_new ( connect_data->msg_data->recipient, 
-	                           LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	{
-		iLog->Log ( _L ( "\tlm_message_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-	}
-	
-	
-	// Verify the message type
-	iLog->Log ( _L ( "\tVerify the message type" ) );
-	
-	MessageType = lm_message_get_type ( message );
-	if ( LM_MESSAGE_TYPE_MESSAGE != MessageType )
-	    {
-		iLog->Log ( _L( "\tExpected message type: LM_MESSAGE_TYPE_MESSAGE" ) );
-		memset ( Type, '\0', sizeof ( Type ) );
-		GetMessageType ( MessageType, Type );
-		iLog->Log ( _L8 ( "\tActual message type  : %s" ), Type );
-		
-		iLog->Log ( _L ( "\tlm_message_get_type failed" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;
-	    }	
-	
-	lm_message_unref ( message );	
-	free_data ( connect_data );
-	
-	iLog->Log ( _L ( "lm_message_new passed" ) );
-	
-	return KErrNone;
-	
-    }
-
- 
- // ---------------------------------------------------------------------------
-// Ctstlm::lm_message_new_with_sub_type
-// Description:Creates a new LmMessage with subtype set.
-// Arguements :
-//  to        : recipient jid
-//  type      : message type
-//  sub_type  : message sub type
-// Returns    : a newly created LmMessage       
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_new_with_sub_typeL ( CStifItemParser& aItem )
-    {
-	LmMessage        *message;
-	ConnectData      *connect_data = NULL;
-	LmMessageType    MessageType;
-	LmMessageSubType MessageSubType;
-	gchar            Type[256];
-	gchar            SubType[256];
-	
-	iLog->Log ( _L ( "In lm_message_new_with_sub_type" ) );
-		
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-	    {
-		iLog->Log ( _L ( "\tread_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-	    }
-	
-	// Construct a message with type and sub type	
-	message = lm_message_new_with_sub_type ( connect_data->msg_data->recipient,
-	                                         LM_MESSAGE_TYPE_IQ,
-	                                         LM_MESSAGE_SUB_TYPE_SET );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "\tlm_message_new_with_sub_type failed" ) );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-
-	
-	// Verify the message type	
-	MessageType = lm_message_get_type ( message );
-	if ( LM_MESSAGE_TYPE_IQ != MessageType )
-	    {
-	    iLog->Log ( _L ( "\tExpected message type: LM_MESSAGE_TYPE_IQ" ) );
-	    memset ( Type, '\0', sizeof ( Type ) );
-	    GetMessageType ( MessageType, Type );
-	    iLog->Log ( _L8 ( "\tActual message type  : %s"), Type );		
-	    lm_message_unref ( message );
-	    return KErrGeneral;
-	    }
-	
-	// Verify the message sub type	
-	MessageSubType = lm_message_get_sub_type ( message );
-	if ( LM_MESSAGE_SUB_TYPE_SET != MessageSubType )
-	    {
-		iLog->Log ( _L ( "\tExpected message subtype: LM_MESSAGE_SUB_TYPE_SET" ) );
-		memset ( SubType, '\0', sizeof ( SubType ) );
-		GetMessageSubType ( MessageSubType, SubType );
-		iLog->Log ( _L8 ( "\tActual message subtype  : %s" ), SubType );
-		lm_message_unref ( message );
-		return KErrGeneral;
-	    }	    
-	
-	lm_message_unref ( message );
-		    
-	free_data ( connect_data );    
-	iLog->Log ( _L ( "lm_message_new_with_sub_type passed" ) );
-	
-	return KErrNone;
-    }
-    
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_get_type
-// Description:Fetches the type of the message
-// Arguements :
-//    message : an LmMessage
-// Returns    : the message type
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_get_typeL ( CStifItemParser& /*aItem*/ )
-    {
-	LmMessage     *message      = NULL;
-	LmMessageType MessageType;
-	gchar         Type[256];
-	
-	iLog->Log ( _L ( "In lm_message_get_type" ) );
-	memset ( Type, '\0', sizeof ( Type ) );
-	
-	// Construct a message with a type	
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_PRESENCE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "\tlm_message_new failed while constructing PRESENCE msg" ) );
-		return KErrGeneral;
-	    } 
-	
-	// Verify the message type=LM_MESSAGE_TYPE_PRESENCE
-	iLog->Log ( _L ( "\tMessage type verification" ) );
-		
-	MessageType = lm_message_get_type ( message );
-	if ( LM_MESSAGE_TYPE_PRESENCE != MessageType )
-	    {
-		iLog->Log ( _L ( "\tExpected message type: LM_MESSAGE_TYPE_PRESENCE" ) ) ;
-		memset ( Type, '\0', sizeof ( Type ) );
-		GetMessageType ( MessageType, Type );
-		iLog->Log ( _L8 ( "\tActual message type  :%s" ), Type );
-		lm_message_unref ( message );
-		return KErrGeneral;
-	    }
-	    
-    // Construct another message with type=LM_MESSAGE_TYPE_IQ
-    iLog->Log ( _L ( "\tConstruct a message with another type" ) );
-    
-    lm_message_unref ( message );
-    message = NULL;    
-    
-    message = lm_message_new ( NULL, LM_MESSAGE_TYPE_IQ );
-    if ( !message )
-        {
-    	iLog->Log ( _L ( "\tlm_message_new failed while constructing IQ message " ) );
-    	lm_message_unref ( message );
-    	return KErrGeneral;
-        }
-    
-    // Verify the message type
-    iLog->Log ( _L ( "\tVerify the message type" ) );
-    
-    MessageType = lm_message_get_type ( message );
-    if ( LM_MESSAGE_TYPE_IQ != MessageType )
-        {
-    	iLog->Log ( _L ( "\tExpected message type: LM_MESSAGE_TYPE_IQ" ) );
-    	memset ( Type, '\0', sizeof ( Type ) );
-    	GetMessageType ( MessageType, Type );
-    	iLog->Log ( _L8 ( "\tActual message type  : %s" ), Type );
-    	lm_message_unref ( message );
-    	return KErrGeneral;
-        }
-    
-    lm_message_unref ( message );
-     
-    iLog->Log ( _L ( "\tlm_message_get_type passed" ) );    
-    
-    return KErrNone;
-    }
-    
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_get_sub_type
-// Description:Fetches the sub type of the message
-// Arguements :
-//    message : an LmMessage
-// Returns    : the message sub type
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_get_sub_typeL ( CStifItemParser& /*aItem*/ )
-    {
-	LmMessage        *message = NULL;
-	LmMessageSubType MessageSubType;
-	gchar            SubType[256];
-	
-	iLog->Log ( _L ( "In lm_message_get_sub_type" ) );
-	
-	// Construct a message with type and subtype=LM_MESSAGE_SUB_TYPE_SUBSCRIBE
-	iLog->Log ( _L ( "\tConstruct a message with type & subtype" ) );
-	
-	message = lm_message_new_with_sub_type ( NULL, 
-	                                         LM_MESSAGE_TYPE_MESSAGE,
-	                                         LM_MESSAGE_SUB_TYPE_SUBSCRIBE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "lm_message_new_with_sub_type failed for SUBSCRIBE" ) );
-		return KErrGeneral;
-	    }
-	
-	// Verify message subtype	
-	MessageSubType = lm_message_get_sub_type ( message );
-	if ( LM_MESSAGE_SUB_TYPE_SUBSCRIBE != MessageSubType )
-	    {
-		iLog->Log ( _L ( "\tExpected MessageSubType: LM_MESSAGE_SUB_TYPE_SUBSCRIBE" ) );		
-		memset ( SubType, '\0', sizeof ( SubType ) );
-		GetMessageSubType ( MessageSubType, SubType );
-		iLog->Log ( _L8 ( "\tActual MessageSubType  : %s" ), SubType );
-		lm_message_unref ( message );
-		return KErrGeneral;
-	    }
-	
-	// Construct another message with subtype=LM_MESSAGE_SUB_TYPE_CHAT	
-	lm_message_unref ( message );
-	message = NULL;
-	
-	message = lm_message_new_with_sub_type ( NULL,
-	                                         LM_MESSAGE_TYPE_MESSAGE,
-	                                         LM_MESSAGE_SUB_TYPE_CHAT );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "\tlm_message_new_with_sub_type failed for CHAT" ) );
-		return KErrGeneral;
-	    }
-	
-	// Verify message subtype	
-	MessageSubType = lm_message_get_sub_type ( message );
-	if ( LM_MESSAGE_SUB_TYPE_CHAT != MessageSubType )
-	    {
-		iLog->Log ( _L ( "\tExpected MessageSubType: LM_MESSAGE_SUB_TYPE_CHAT" ) );
-		
-		memset ( SubType, '\0', sizeof ( SubType ) );
-		GetMessageSubType ( MessageSubType, SubType );
-		iLog->Log ( _L8 ( "\tActual MessageSubType  : %s" ), SubType );
-		lm_message_unref ( message );
-		return KErrGeneral;
-	    }	
-	
-	lm_message_unref ( message );
-	
-	iLog->Log ( _L ( "\tlm_message_get_sub_type passed" ) );	
-	
-	return KErrNone;
-    }
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_get_node
-// Description:Retrives the root node from LmMessage
-// Arguements :
-//   message  : an LmMessage
-// Returns    : an LmMessageNode
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_get_nodeL ( CStifItemParser& /*aItem*/ )
-    {
-	LmMessage     *message;
-	LmMessageNode *Node = NULL;
-	
-	iLog->Log ( _L ( "In lm_message_get_node" ) );
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_MESSAGE
-	iLog->Log ( _L ( "Construct a message" ) );
-	
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Retrive root node from the message
-	iLog->Log ( _L ( "Retrive root node from message" ) );
-	
-	Node = lm_message_get_node ( message );
-	if ( !Node )
-	    {
-		iLog->Log ( _L ( "lm_message_get_node failed" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;
-	    }		
-	
-	lm_message_unref ( message );
-	lm_message_node_unref ( Node );
-	
-	iLog->Log ( _L ( "lm_message_get_node passed" ) );
-	
-	return KErrNone;
-    }
-
-
-    
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_ref 
-// Description:Adds a reference to message
-// Arguements :
-//       message   : an LmMessage
-// Returns    : an message
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_refL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessage *message = NULL;
-	
-	iLog->Log ( _L ( "In lm_message_ref" ) );
-	
-	// Construct a message	
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Add a reference to message 	
-	message = lm_message_ref ( message );
-	
-	// Loudmouth don't have any API to check the ref count on message
-    // Therefore lm_message_ref is considered as passed.
-    
-    // Decrement the reference(2 times) to message and free the memory    
-    lm_message_unref ( message );
-    lm_message_unref ( message );
-    
-    iLog->Log ( _L ( "lm_message_ref passed" ) );
-    
-    return KErrNone;
-}
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_unref 
-// Description:Removes a reference from message. When no more references are 
-//             present, the message is freed.
-//             Check the total available heap space
-//             Construct a new message by using lm_message_new
-//             Check that available heap space is reduced
-//             Decrement the reference from message
-//             Check the available heap is equal to what it was before
-// Arguements :
-//   message  : an LmMessage
-// Returns    : None
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_unrefL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessage *message;
-	RHeap&    heap_handle = User::Heap();
-	TInt 	  largest_free_block;
-	TInt      heap_available_before;
-	TInt      heap_available_after;
-	
-	iLog->Log ( _L ( "In lm_message_unref" ) );
-	
-	// Get the total heap space before constructing a message
-	iLog->Log ( _L ( "Getting the heap size before message construction" ) );	
-	heap_available_before = heap_handle.Available ( largest_free_block );
-		
-	// Construct a message 
-	iLog->Log ( _L ( "Construct a message" ) );
-	
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	{
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		return KErrGeneral;
-	}
-	
-	// Decrement the reference from message
-	iLog->Log ( _L ( "Remove the reference from the message" ) );
-	lm_message_unref ( message );
-	
-	// Get the heap space after freeing memory
-	iLog->Log ( _L ( "Getting the heap size after freeing the memory" ) );
-	heap_available_after = heap_handle.Available ( largest_free_block );
-	
-	// Compare the heap size
-	iLog->Log ( _L ( "Comparing heap size before and after freeing memory" ) );
-	
-	if ( heap_available_after != heap_available_before )
-	{
-		iLog->Log ( _L ( "heap_available_before = %d, heap_available_after = %d" ),
-		                  heap_available_before, heap_available_after );
-		iLog->Log ( _L ( "Available memory is not as expected after freeing" ) );
-		return KErrGeneral;
-	}
-	
-	iLog->Log ( _L ( "Expected: heap_available_before is equal to heap_available_after" ) );
-	iLog->Log ( _L ( "heap_available_before = %d, heap_available_after = %d" ),
-	                  heap_available_before, heap_available_after );
-	
-	return KErrNone;
-}
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_handler_new
-// Description:Creates a new message handler.This can be set to handle incoming
-//             messages and when a message of type the handler is registered to 
-//             handle is received function will be called and user_data will be
-//             passed to it. notify is called when the message handler is freed,
-//             that way any memory allocated by user_data can be freed.
-// Arguements :
-//  function  : a callback
-//  user_data : user data passed to function
-//  notify    : function called when the message handler is freed
-// Returns    : a newly created message handler
-//
-// Note       : This test case requires UI mode to select Access point
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_handler_newL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessageHandler *handler      = NULL;
-	
-	iLog->Log ( _L ( "In lm_message_handler_new" ) );
-	
-	// Create a new message handler
-	handler = lm_message_handler_new ( handle_messages, NULL, NULL );
-	if ( !handler )
-		{
-		iLog->Log ( _L ( "lm_message_handler_new failed" ) );
-		return KErrGeneral;
-		}
-		
-	// Validate the handler
-	if ( !lm_message_handler_is_valid ( handler ) )
-		{
-		iLog->Log ( _L ( "message handler is not valid" ) );
-		lm_message_handler_unref ( handler );
-		return KErrGeneral;
-		}
-	
-	iLog->Log ( _L ( "lm_message_handler_new passed" ) );
-	
-	return KErrNone;
-}
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_handler_invalidate
-// Description:Invalidates the handler. Useful if you need to cancel a reply
-// Arguements :
-//   handler  : an LmMessageHandler
-// Returns    : None
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_handler_invalidateL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessageHandler *handler      = NULL;	
-	gboolean         IsValid;
-		
-	iLog->Log ( _L ( "In lm_message_handler_invalidate" ) );
-	
-	// Create a new message handler
-	iLog->Log ( _L ( "Creat a new message handler" ) );
-	
-	handler = lm_message_handler_new ( handle_messages, NULL, NULL );
-	if ( !handler )
-	    {
-		iLog->Log ( _L ( "lm_message_handler_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Invalidate the message handler ( handler->valid = FALSE )
-	iLog->Log ( _L ( "Invalidate the handler" ) );
-	lm_message_handler_invalidate ( handler );
-	
-	// Check for validity of message handler
-	iLog->Log ( _L ( "Checking validity of message handler" ) );
-	
-	IsValid = lm_message_handler_is_valid ( handler );
-	if ( IsValid )
-	    {
-		iLog->Log ( _L ( "lm_message_handler_invalidate failed" ) );		
-		lm_message_handler_unref ( handler );
-		return KErrGeneral;
-	    }
-	
-	lm_message_handler_unref ( handler );	
-	
-	iLog->Log ( _L ( "lm_message_handler_invalidate passed" ) );	
-	
-	return KErrNone;
-}
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_handler_is_valid
-// Description:Fetches whether the handler is valid or not.
-// Arguements :
-//   handler  : an LmMessageHandler
-// Returns    : TRUE if handler is valid, otherwise FALSE
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_handler_is_validL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_message_handler_is_valid" ) );
-	
-	// Create a new message handler
-	iLog->Log ( _L ( "Constructing new message handler" ) );
-	handler = lm_message_handler_new ( handle_messages, NULL, NULL );
-	if ( !handler )
-	    {
-		iLog->Log ( _L ( "lm_message_handler_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Check the validity of the message handler
-	iLog->Log ( _L ( "Check for validity of message handler" ) );
-	if ( !lm_message_handler_is_valid ( handler ) )
-	    {
-		iLog->Log ( _L ( "lm_message_handler_is_valid failed" ) );
-		lm_message_handler_unref ( handler );
-		return KErrGeneral;
-	    }
-	
-	// Invalidate the handler ( set handler->valid = FALSE )
-	iLog->Log ( _L ( "Invalidate the message handler" ) );
-	lm_message_handler_invalidate ( handler );
-	
-	// check for validity of message handler after invalidating
-	iLog->Log ( _L ( "Check for validity after invalidating" ) );
-	
-	if ( lm_message_handler_is_valid ( handler ) )
-	    {
-		iLog->Log ( _L ( "lm_message_handler_is_valid failed" ) );
-		lm_message_handler_unref ( handler );
-		return KErrGeneral;
-	    }
-	
-	lm_message_handler_unref ( handler );
-	
-	iLog->Log ( _L ( "lm_message_handler_is_valid passed" ) );
-	
-	return KErrNone;
-}
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_handler_ref
-// Description:Adds a reference to handler
-// Arguements :
-//   handler  : an LmMessageHandler
-// Returns    : the message handler
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_handler_refL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessageHandler *handler = NULL;	
-	
-	iLog->Log ( _L ( "In lm_message_handler_ref" ) );
-	
-	// Create a new message handler
-	iLog->Log ( _L ( "Construct a new message handler" ) );
-	
-	handler = lm_message_handler_new ( handle_messages, NULL, NULL );
-	if ( !handler )
-	    {
-		iLog->Log ( _L ( "lm_message_handler_new failed" ) );
-		return KErrGeneral;
-	    }	
-	
-	// Loudmouth don't have any API to check reference to handler
-	// Therefore this test is considered as passed without checking
-	
-	iLog->Log ( _L ( "Remove a reference from the message handler" ) );
-	lm_message_handler_unref ( handler );
-	
-	iLog->Log ( _L ( "lm_message_handler_ref passed" ) );
-	
-	return KErrNone;
-}
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_handler_unref
-// Description:Removes a reference from handler. When no more references are 
-//             present, the handler is freed
-//             Check the total available heap space
-//             Construct a new message handler
-//             Check that available heap space is reduced
-//             Remove reference from the message handler
-//             Check the available heap is equal to what it was before
-// Arguements :
-//    handler : an LmMessageHandler
-// Returns    : None
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_handler_unrefL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessageHandler *handler     = NULL;
-	RHeap&            heap_handle = User::Heap();
-	TInt              largest_free_block;
-	TInt              heap_avail_before;
-	TInt              heap_avail_after;
-	
-	iLog->Log ( _L ( "Inlm_message_handler_unref" ) );
-	
-	// Get the total heap size before creating new message handler
-	iLog->Log ( _L ( "Get the heap size before allocating memory" ) );
-	heap_avail_before = heap_handle.Available ( largest_free_block );
-	
-	// Create a new message handler
-	iLog->Log ( _L ( "Construct a new message handler" ) );
-	
-	handler = lm_message_handler_new ( handle_messages, NULL, NULL );
-	if ( !handler )
-	    { 
-		iLog->Log ( _L ( "lm_message_handler_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Remove a reference from the message handler
-	iLog->Log ( _L ( "Freeing allocated memory" ) );
-	lm_message_handler_unref ( handler );
-	
-	// Get the heap size after removing reference from message handler
-	iLog->Log ( _L ( "Get the heap size after freeing memory" ) );
-	heap_avail_after = heap_handle.Available ( largest_free_block );
-	
-	// Compare the heap size
-	iLog->Log ( _L ( "Compare the heap size after freeing memory" ) );
-	
-	if ( heap_avail_before != heap_avail_after )
-	    {
-		iLog->Log ( _L ( "heap_avail_before = %d, heap_avail_after = %d" ),
-		                  heap_avail_before, heap_avail_after );
-		iLog->Log ( _L ( "Available memory is not as expected after freeing" ) );
-		return KErrGeneral;		
-	    }
-	
-	iLog->Log ( _L ( "Expected: heap_avail_before is equal to heap_avail_after" ) );
-	iLog->Log ( _L ( "heap_avail_before = %d, heap_avail_after = %d" ),
-	                 heap_avail_before, heap_avail_after );
-	
-	return KErrNone;
-}
-
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_node_set_value
-// Description:Sets the value of node. If a prev value is set it will be freed
-// Arguements :
-//   Node     : an LmMessageNode
-//   value    : the new value
-// Returns    : None
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_node_set_get_valueL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessage     *message       = NULL;
-	LmMessageNode *Node          = NULL;
-	const gchar   *SetUsername   = "Nokia";		
-	
-	iLog->Log ( _L ( "In lm_message_node_get_value" ) );
-	
-	// Construct a message with type = LM_MESSAGE_TYPE_MESSAGE
-	iLog->Log ( _L ( "Construct a message" ) );
-	
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	{
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		return KErrGeneral;
-	}
-	
-	// Retrive the root node from message
-	iLog->Log ( _L ( "Retriving root node from the message" ) );
-	Node = lm_message_get_node ( message );
-	if ( !Node )
-	    {
-		iLog->Log ( _L ( "lm_message_get_node failed" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;		
-	    }
-	
-	// Set the value of the node
-	iLog->Log ( _L ( "Set the value of the node" ) );
-	lm_message_node_set_value ( Node, SetUsername );
-	
-	// Retrive the value of node
-	iLog->Log ( _L ( "Retrive the value of the node" ) );
-	const gchar *GetUsername = lm_message_node_get_value ( Node );	
-	
-	// Verify the result
-	iLog->Log ( _L ( "Verify value of node" ) );	
-	if ( strcmp ( SetUsername, GetUsername ) )
-	    {
-		iLog->Log ( _L ( "lm_message_set_value failed" ) );		
-		lm_message_unref ( message );
-	    lm_message_node_unref ( Node );
-		return KErrGeneral;
-	    }	
-	
-	lm_message_unref ( message );
-	lm_message_node_unref ( Node );
-	
-	iLog->Log ( _L ( "lm_message_set_value passed" ) );
-		
-	return KErrNone;
-}
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_node_add_child
-// Description:Add a child node with a name and value
-// Arguements :
-//   node     : an LmMessageNode
-//   name     : name of the new child
-//   value    : value of the new child
-// Returns    : the newly created child
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_node_add_childL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessage     *message   = NULL;
-	LmMessageNode *Node      = NULL;	
-	const gchar   *Username  = "Nokia";		
-	
-	iLog->Log ( _L ( "In lm_message_node_add_child" ) );
-	
-	// Construct a message with type = LM_MESSAGE_TYPE_MESSAGE
-	iLog->Log ( _L ( "construct a message" ) );
-	
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Retrive the root node from message
-	iLog->Log ( _L ( "Retrive the root node from message" ) );
-	
-	Node = lm_message_get_node ( message );
-	if ( !Node )
-	    {
-		iLog->Log ( _L ( "lm_message_get_node failed" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;		
-	    }
-	
-	// Add a child
-	iLog->Log ( _L ( "Add a child 'username' to node" ) );
-	lm_message_node_add_child ( Node, "username", Username );
-	
-	// Verify the child
-	iLog->Log ( _L ( "Verify the child" ) );
-	if ( !lm_message_node_get_child ( Node, "username" ) ) 
-	    {
-		iLog->Log ( _L ( "lm_message_add_child failed" ) );
-		lm_message_unref ( message );
-		lm_message_node_unref ( Node );		
-		return KErrGeneral;
-	    }
-	
-	iLog->Log ( _L ( "Freeing allocated resources" ) );
-	lm_message_unref ( message );
-	lm_message_node_unref ( Node );	
-	
-	iLog->Log ( _L ( "lm_message_node_add_child passed" ) );
-	
-	return KErrNone;	    
-}
-
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_node_find_child
-// Description:Locates a child among all children of node. The entire tree will
-//             be searched until a child with a name child_name is located.
-// Arguements :
-//    node    : an LmMessageNode
-//    name    : name of the child to find
-// Returns    : located child or NULL if not found
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_node_find_childL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessage     *message   = NULL;
-	LmMessageNode *Node      = NULL;	
-	const gchar   *Username  = "Nokia";	
-	const gchar   *Password  = "Nokia";		
-	
-	iLog->Log ( _L ( "In lm_message_node_find_child" ) );
-	
-	// Construct a message with type = LM_MESSAGE_TYPE_MESSAGE
-	iLog->Log ( _L ( "Construct a message" ) );	
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Retrive the root node from message
-	iLog->Log ( _L ( "Retrive the root node from the message" ) );	
-	Node = lm_message_get_node ( message );
-	if ( !Node )
-	    {
-		iLog->Log ( _L ( "lm_message_get_node failed" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;		
-	    }
-	
-	// Add childrens
-	iLog->Log ( _L ( "Adding childrens 'username' and 'password'" ) );
-	lm_message_node_add_child ( Node, "username", Username );
-	lm_message_node_add_child ( Node, "password", Password );
-	
-	// Locate the child 'username'	
-	iLog->Log ( _L ( "Locate the child 'username'" ) );	
-	if ( !lm_message_node_find_child ( Node, "username" ) ) 
-	    {	    
-		iLog->Log ( _L ( "lm_message_node_find_child: child 'username' not found" ) );
-		lm_message_unref ( message );
-		lm_message_node_unref ( Node );		
-		return KErrGeneral;
-	    }
-	
-	// Locate the child 'password'
-	if ( !lm_message_node_get_child ( Node, "password" ) )
-	    {
-	    iLog->Log ( _L ( "lm_message_node_find_child: child 'password' not found" ) );		
-		lm_message_unref ( message );
-		lm_message_node_unref ( Node );
-		return KErrGeneral;
-	    }	
-		
-	lm_message_unref ( message );
-	lm_message_node_unref ( Node );	
-	
-	iLog->Log ( _L ( "lm_message_node_find_child passed" ) );
-	
-	return KErrNone;	    
-}
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_node_set_get_attributes
-// Description:Sets a list of attributes. The arguements should be names and 
-//             correspoinding values and needs to be ended with NULL.
-// Arguements :
-//    node    : an LmMessageNode
-//    name    : first attribute, should be fallowed by string with value
-//    ..      : rest of the name/value pairs
-// Returns    : None
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_node_set_get_attributesL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessage     *message   = NULL;
-	LmMessageNode *Node      = NULL;	
-	const gchar   *Value     = "Nokia";		
-	
-	iLog->Log ( _L ( "In lm_message_node_set_attributes" ) );
-	
-	// Construct a message with type = LM_MESSAGE_TYPE_MESSAGE
-	iLog->Log ( _L ( "Construct a message" ) );
-	
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Retrive the root node from message
-	iLog->Log ( _L ( "Retrive the root node from the message" ) );
-	
-	Node = lm_message_get_node ( message );
-	if ( !Node )
-	    {
-		iLog->Log ( _L ( "lm_message_get_node failed" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;		
-	    }
-	
-	// Set attributes
-	iLog->Log ( _L ("Setting attributes 'username', 'password' and 'xmlns'" ) );
-	lm_message_node_set_attributes ( Node, 
-	                                 "username", Value,
-	                                 "password", Value,
-	                                 "xmlns", "jabber:iq:register",
-	                                 NULL );
-	                                 
-    // Verify the attributes set
-    iLog->Log ( _L (" Verify the attributes" ) );
-    
-    if ( !lm_message_node_get_attribute ( Node, "username" ) )
-        {
-    	iLog->Log ( _L ( "lm_message_set_attributes failed for username" ) );
-    	lm_message_unref ( message );
-    	lm_message_node_unref ( Node );
-    	return KErrGeneral;
-        }
-    
-    if ( !lm_message_node_get_attribute ( Node, "password" ) )
-        {
-    	iLog->Log ( _L ( "lm_message_set_attributes failed for password" ) );
-    	lm_message_unref ( message );
-    	lm_message_node_unref ( Node );
-    	return KErrGeneral;
-        }
-    
-    if ( !lm_message_node_get_attribute ( Node, "xmlns" ) )
-        {
-    	iLog->Log ( _L ( "lm_message_set_attributes failed for xmlns" ) );
-    	lm_message_unref ( message );
-    	lm_message_node_unref ( Node );
-    	return KErrGeneral;
-        }
-    
-    lm_message_unref ( message );
-    lm_message_node_unref ( Node );
-    
-    iLog->Log ( _L ( "lm_message_node_set_attributes passed" ) );
-    
-    return KErrNone;
-}
-
-
-
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_node_set_get_raw_mode
-// Description:Checks if the nodes values should be sent as raw mode
-// Arguements :
-//    node    : an LmMessageNode
-// Returns    : TRUE if nodes value should be sent as is
-//              FALSE if the value will be escaped before sending
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_node_set_get_raw_modeL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessage     *message   = NULL;
-	LmMessageNode *Node      = NULL;		
-	
-	iLog->Log ( _L ( "In lm_message_node_set_raw_mode" ) );
-	
-	// Construct a message with type = LM_MESSAGE_TYPE_MESSAGE
-	iLog->Log ( _L ( "Construct a message" ) );
-		
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Retrive the root node from message
-	iLog->Log ( _L ( "Retrive the root node from message" ) );	
-	Node = lm_message_get_node ( message );
-	if ( !Node )
-	    {
-		iLog->Log ( _L ( "lm_message_get_node failed" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;		
-	    }
-	
-	// Set the raw mode to TRUE
-	iLog->Log ( _L ( "Set the node to raw mode" ) );
-	lm_message_node_set_raw_mode ( Node, TRUE );
-	
-	// Check if the Node is in raw mode or not after setting
-	iLog->Log ( _L ( "Check for raw mode after setting" ) );
-	if ( !lm_message_node_get_raw_mode ( Node ) )
-	    {
-		iLog->Log ( _L ( "get_raw_mode returned FALSE after setting raw mode" ) );
-		lm_message_unref ( message );
-		lm_message_node_unref ( Node );		
-		return KErrGeneral;
-	    }
-	
-	// Set the raw mode to FALSE
-	iLog->Log ( _L ( "Unset the raw mode" ) );
-	lm_message_node_set_raw_mode ( Node, FALSE );
-	
-	// Check for raw mode
-	iLog->Log ( _L ( "Check for raw mode after unsetting" ) );
-	if ( lm_message_node_get_raw_mode ( Node ) )
-	    {
-		iLog->Log ( _L ( "get_raw_mode returned TRUE after unsetting" ) );
-		lm_message_unref ( message );
-		lm_message_node_unref ( Node );		
-		return KErrGeneral;
-	    }
-		
-	lm_message_unref ( message );
-	lm_message_node_unref ( Node );	
-	
-	iLog->Log ( _L ( "lm_message_node_set_raw_mode passed" ) );
-	 
-	return KErrNone;    
-}
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_node_ref
-// Description:Adds a reference to node
-// Arguements :
-//    node    : an LmMessageNode
-// Returns    : the node
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_node_refL ( CStifItemParser& /*aItem*/ )
-{
-    LmMessage     *message   = NULL;
-	LmMessageNode *Node      = NULL;		
-	
-	iLog->Log ( _L ( "In lm_message_node_ref" ) );
-	
-	// Construct a message with type = LM_MESSAGE_TYPE_MESSAGE
-	iLog->Log ( _L ( "Construct a message" ) );
-		
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Retrive the root node from message
-	iLog->Log ( _L ( "Retrive the root node from message" ) );	
-	Node = lm_message_get_node ( message );
-	if ( !Node )
-	    {
-		iLog->Log ( _L ( "lm_message_get_node failed" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;		
-	    }	
-	    
-	// Add a reference to  node
-	lm_message_node_ref ( Node );
-	
-	// Loudmouth dont have any API to check reference on message node
-	// Therefore lm_message_node_ref is considered as passed without checking	
-	lm_message_unref ( message );
-	lm_message_node_unref ( Node );	
-	
-	iLog->Log ( _L ( "lm_message_node_ref passed" ) );
-	
-	return KErrNone;
-}
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_node_unref
-// Description:  Removes a reference from the the node. When no more 
-//             reference are present, the node is freed. When freed 
-//             lm_message_node_unref() will be called on all children.
-//               Check the size of the heap just to verify whether node 
-//             is freed or not when no more references to the node
-// Arguements :
-//    node    : an LmMessageNode
-// Returns    : Node
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_node_unrefL ( CStifItemParser& /*aItem*/ )
-{
-    LmMessage     *message     = NULL;
-	LmMessageNode *Node        = NULL;
-	
-	RHeap&         heap_handle = User::Heap();
-	TInt           largest_free_block;
-	TInt           heap_avail_before;
-	TInt           heap_avail_after; 		
-	
-	iLog->Log ( _L ( "In lm_message_node_unref" ) );
-	
-	// Get the heap size before constructing a message 
-	heap_avail_before = heap_handle.Available ( largest_free_block );
-	
-	// Construct a message with type = LM_MESSAGE_TYPE_MESSAGE
-	iLog->Log ( _L ( "Construct a message" ) );
-		
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Retrive the root node from message
-	iLog->Log ( _L ( "Retrive the root node from message" ) );	
-	Node = lm_message_get_node ( message );
-	if ( !Node )
-	    {
-		iLog->Log ( _L ( "lm_message_get_node failed" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;		
-	    }	
-	    
-	// Remove reference from the message
-	iLog->Log ( _L ( "Remove reference from the message" ) );
-	lm_message_unref ( message );
-	
-	// Remove reference from the node
-	iLog->Log ( _L ( "Remove a reference from the node" ) );
-	lm_message_node_unref ( Node );
-	
-	// Get the heap size after removing references
-	heap_avail_after = heap_handle.Available ( largest_free_block );
-	
-	// Verify the heap size
-	if ( heap_avail_after != heap_avail_before )
-	    {
-		iLog->Log ( _L ( "heap_avail_before = %d, heap_avail_after = %d" ),
-		                  heap_avail_before, heap_avail_after );
-		iLog->Log ( _L ( "Available memory is not as expected after freeing" ) );
-		return KErrGeneral;
-	    }
-	
-	iLog->Log ( _L ( "Expected: heap_available_before is equal to heap_available_after" ) );
-	iLog->Log ( _L ( "heap_avail_before = %d, heap_avail_after = %d" ),
-	                  heap_avail_before, heap_avail_after );
-		
-	return KErrNone;
-}
-
-
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_node_to_string
-// Description:Returns an XML string representing the node. This is what
-//             is sent over the connection. This is used internally by 
-//             loudmouth and is external for debugging  purposes
-// Arguements :
-//    node    : an LmMessageNode
-// Returns    : an XML string representation of node
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_node_to_stringL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessage     *message     = NULL;	
-	gchar         *XmlString      = NULL;
-	
-	
-	iLog->Log ( _L ( "In lm_message_node_to_string" ) );
-	
-	// Construct a message with type = LM_MESSAGE_TYPE_PRESENCE
-	iLog->Log ( _L ( "Construct a message with type=presence" ) );
-		
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_PRESENCE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "lm_message_new failed for type = PRESENCE" ) );
-		return KErrGeneral;
-	    }
-	
-	// Convert node to XML string
-	XmlString = lm_message_node_to_string ( message->node );
-	
-	// Check in XML string for <presence> stanza
-	if ( !g_strrstr ( XmlString, "presence" ) )
-	{
-		iLog->Log ( _L ( "XML string doesnt contain <presence> stanza" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;
-	}
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	lm_message_unref ( message );
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_IQ );
-	if ( !message )
-	{
-		iLog->Log ( _L ( "lm_message_new failed for type = IQ" ) );
-		return KErrGeneral;
-	}
-	
-	// Convert the message node to XML string
-	XmlString = lm_message_node_to_string ( message->node );
-	
-	// Check in XML string for <iq> stanza
-	if ( !g_strrstr ( XmlString, "iq" ) )
-	{
-		iLog->Log ( _L ( "XML string doesnt contain <iq> stanza" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;
-	}
-	
-	iLog->Log ( _L ( "lm_message_node_to_string passed" ) );
-	lm_message_unref ( message );
-	
-	return KErrNone;  
-}
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_ssl_new
-// Description: Creates a new ssl struct
-// Arguements :
-//      expected_fingerprint : The expected fingerprint. ssl_function will be
-//                             called if there is a mismatch. NULL if you 
-//                             are not interested in this check.
-//      ssl_cb               : Callback called to inform the user of a problem
-//                             during setting up the SSL connection and how 
-//                             to proceed.
-//      user_data            : Data sent with the callback
-//      notify               : Function to free user_data when the connection
-//                             is finished. 
-// Returns    : A new LmSSL struct
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_ssl_newL ( CStifItemParser& /*aItem*/ )
-{
-	LmSSL *ssl = NULL;
-	
-	iLog->Log ( _L ( "In lm_ssl_new" ) );
-	
-	ssl = lm_ssl_new ( NULL, ( LmSSLFunction ) ssl_cb, NULL, NULL );
-	if ( !ssl )
-		{
-		iLog->Log ( _L ( "lm_ssl_new failed" ) );
-		return KErrGeneral;
-		}		
-	
-	lm_ssl_unref ( ssl );
-	
-	iLog->Log ( _L ( "lm_ssl_new passed" ) );
-	
-	return KErrNone;		
-}
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_ssl_is_supportedL
-// Description: Checks wheather the Loudmouth supports SSL or not.
-// Arguements : None
-// Returns    : TRUE if loudmouth supports SSL, FALSE otherwise
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_ssl_is_supportedL ( CStifItemParser& /*aItem*/ )
-{	
-	iLog->Log ( _L ( "In lm_ssl_is_supported" ) );
-	
-	if ( !lm_ssl_is_supported() )
-		{
-		iLog->Log ( _L ( "Loudmouth installation doesn't support SSL" ) );
-		}
-	else
-		{
-		iLog->Log ( _L ( "Loudmouth supports SSL" ) );		
-		}
-		
-	iLog->Log ( _L ( "lm_ssl_is_supported passed" ) );
-	
-	return KErrNone;
-}
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_ssl_get_fingerprintL
-// Description: Returns the MD5 fingerprint of the remote server's certificate.
-// Arguements : 
-//      ssl   : An LmSSL
-// Returns    : A 16-byte array indicating fingerprint or NULL if unknow
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_ssl_get_fingerprintL ( CStifItemParser& /*aItem*/ )
-{
-	LmSSL *ssl;	
-	
-	iLog->Log ( _L ( "In lm_ssl_get_fingerprint" ) );
-	
-	ssl = lm_ssl_new ( "--ssl", ( LmSSLFunction )ssl_cb, NULL, NULL );
-	
-	const gchar *fingerprint = lm_ssl_get_fingerprint ( ssl );
-	if ( !fingerprint )
-		{
-		iLog->Log ( _L ( "Not able to get the remote server's certificate" ) );
-		}
-	
-	iLog->Log ( _L ( "lm_ssl_get_fingerprint passed" ) );
-	lm_ssl_unref ( ssl );
-	
-	return KErrNone;
-}
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_ssl_ref
-// Description: Adds a reference to ssl
-// Arguements : 
-//      ssl   : An LmSSL
-// Returns    : LmSSL
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_ssl_refL ( CStifItemParser& /*aItem*/ )
-{
-	LmSSL *ssl;
-	
-	iLog->Log ( _L ( "In lm_ssl_ref" ) );
-	
-	ssl = lm_ssl_new ( NULL, NULL, NULL, NULL );
-	if ( !ssl )
-		{
-		iLog->Log ( _L ( "lm_ssl_new failed" ) );
-		return KErrGeneral;
-		}
-	
-	// Add a reference to ssl
-	lm_ssl_ref ( ssl );
-	
-	// Loudmouth don't have any API to get the reference to ssl.
-	// Therefore this test case is considered as passed without verifying it	
-	lm_ssl_unref ( ssl );
-	
-	iLog->Log ( _L ( "lm_ssl_ref passed" ) );
-	return KErrNone;	
-}
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_ssl_unref
-// Description: Removes a reference from ssl. 
-//              When no more references are present, ssl is freed.
-//              Check the heap size to ensure that lm_ssl_unref frees the ssl
-//              when no more references are present.
-// Arguements : 
-//      ssl   : An LmSSL
-// Returns    : None
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_ssl_unrefL ( CStifItemParser& /*aItem*/ )
-{	
-	RHeap& heap_handle = User::Heap();
-	TInt   largest_free_block;
-	TInt   heap_avail_before;
-	TInt   heap_avail_after;
-	
-	LmSSL  *ssl = NULL;
-	
-	iLog->Log ( _L ( "In lm_ssl_unref" ) );
-	
-	// Get the heap size before creating a new ssl
-	heap_avail_before = heap_handle.Available ( largest_free_block );
-	
-	// Create a new ssl
-	ssl = lm_ssl_new ( NULL, NULL, NULL, NULL );
-	if ( !ssl )
-		{
-		iLog->Log ( _L ( "lm_ssl_new failed" ) );
-		return KErrGeneral;
-		}
-	
-	// Remove a reference from the ssl
-	lm_ssl_unref ( ssl );
-	
-	// Get the heap size after freeing memory
-	heap_avail_after = heap_handle.Available ( largest_free_block );
-	
-	// Compare the heap size
-	if ( heap_avail_after != heap_avail_before )
-		{
-		iLog->Log ( _L ( "heap_avail_before = %d, heap_avail_after = %d" ),
-		                  heap_avail_before, heap_avail_after );
-		iLog->Log ( _L ( "Available memory is not as expected after unref" ) );
-		return KErrGeneral;
-		}
-	
-	iLog->Log ( _L ( "Expected: heap_avail_before is equal to heap_avail_after" ) );
-	iLog->Log ( _L ( "heap_avail_before = %d, heap_avail_after = %d" ),
-	                  heap_avail_before, heap_avail_after );	
-	
-	return KErrNone;	
-}
-    
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_proxy_new
-// Description:Creates a new proxy
-// Arguements :
-//    type    : proxy type (LM_PROXY_TYPE_NONE/LM_PROXY_TYPE_HTTP)
-// Returns    : a newly created proxy       
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_proxy_newL ( CStifItemParser& /*aItem*/ )
-{
-	LmProxy     *proxy = NULL;
-	LmProxyType Type;
-	
-	iLog->Log ( _L ( "In lm_proxy_new" ) );
-	
-	iLog->Log ( _L ( "Create a new proxy" ) );	
-	proxy = lm_proxy_new ( LM_PROXY_TYPE_HTTP );
-	if ( !proxy )
-	{
-		iLog->Log ( _L ( "lm_proxy_new failed" ) );
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	}
-	
-	// Verify the proxy type
-	iLog->Log ( _L ( "Proxy type verification" ) );
-	
-	Type = lm_proxy_get_type ( proxy );
-	if ( LM_PROXY_TYPE_HTTP != Type )
-	{
-		iLog->Log ( _L ( "lm_proxy_new failed" ) );
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	}
-		
-	lm_proxy_unref ( proxy );
-	
-	iLog->Log ( _L ( "lm_proxy_new passed" ) );
-	
-	return KErrNone;	
-}
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_proxy_new_with_server
-// Description:Creates a new proxy
-// Arguements :
-//   type    : proxy type (LM_PROXY_TYPE_NONE/LM_PROXY_TYPE_HTTP)
-//   server  : proxy server
-//   port    : proxy server port
-// Returns   : a newly created proxy       
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_proxy_new_with_serverL ( CStifItemParser& /*aItem*/ )
-{
-	LmProxy     *proxy  = NULL;	
-	guint       port    = 8000;
-	const gchar *server = "nokia.com";
-	
-	
-	iLog->Log ( _L ( "In lm_proxy_new_with_server" ) );
-	// Create a new proxy with the server
-	proxy = lm_proxy_new_with_server ( LM_PROXY_TYPE_HTTP, server, port );
-	if ( !proxy )
-	    {
-		iLog->Log ( _L ( "lm_proxy_new_with_server failed" ) );		
-		return KErrGeneral;
-	    }
-	
-	// Verify proxy type, server and port
-	iLog->Log ( _L ( "Verify server, type and port in proxy" ) );
-	
-	if ( LM_PROXY_TYPE_HTTP != lm_proxy_get_type ( proxy ) )
-	    {
-		iLog->Log ( _L ( "lm_proxy_new_with_server failed for proxy type setting" ) );		
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	    }
-	
-	if ( strcmp ( server, lm_proxy_get_server ( proxy ) ) )
-	    {
-		iLog->Log ( _L ( "lm_proxy_new_with_server failed for server setting" ) );		
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	    }
-	
-	if ( port != lm_proxy_get_port ( proxy ) )
-	    {
-		iLog->Log ( _L ( "lm_proxy_new_with_server failed for port setting" ) );		
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	    }
-	
-	lm_proxy_unref ( proxy );	
-	
-	iLog->Log ( _L ( "lm_proxy_new_with_server passed" ) );	
-	
-	return KErrNone;
-}
-
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_proxy_set_get_type
-// Description:Sets the proxy type for proxy to type
-// Arguements :
-//       proxy    : an LmProxy
-//       type     : proxy type
-// Returns    : None
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_proxy_set_get_typeL ( CStifItemParser& /*aItem*/ )
-{
-	LmProxy     *proxy = NULL;	
-	
-	iLog->Log ( _L ( "In lm_proxy_set_get_type" ) );
-	
-	// Create a new proxy with type=LM_PROXY_TYPE_NONE
-	proxy = lm_proxy_new ( LM_PROXY_TYPE_NONE );
-	if ( !proxy )
-	    {
-		iLog->Log ( _L ( "lm_proxy_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Set the proxy type=LM_PROXY_TYPE_HTTP
-	lm_proxy_set_type ( proxy, LM_PROXY_TYPE_HTTP );
-	
-	// Verify the proxy type for LM_PROXY_TYPE_HTTP		
-	if ( LM_PROXY_TYPE_HTTP != lm_proxy_get_type ( proxy ) )
-	    {
-		iLog->Log ( _L ( "lm_proxy_set_type failed" ) );
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	    }	
-		
-	lm_proxy_unref ( proxy );
-	
-	iLog->Log ( _L ( "lm_proxy_set_get_type passed" ) );
-	
-	return KErrNone;
-}
-
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_proxy_set_get_server
-// Description:Sets the server address for proxy
-// Arguements :
-//   proxy    : an LmProxy
-//   server   : address of the proxy server
-// Returns    : None
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_proxy_set_get_serverL ( CStifItemParser& /*aItem*/ )
-{
-	LmProxy     *proxy  = NULL;
-	const gchar *server = "nokia.com";	
-	
-	iLog->Log ( _L ( "In lm_proxy_get_server" ) );
-	
-	// Create a new proxy with type = LM_PROXY_TYPE_HTTP
-	proxy = lm_proxy_new ( LM_PROXY_TYPE_HTTP );
-	if ( !proxy )
-	    {
-		iLog->Log ( _L ( "lm_proxy_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Set the proxy server to "nokia.com"
-	lm_proxy_set_server ( proxy, server );
-	
-	// Verify the server address in proxy
-	if ( strcmp ( server, lm_proxy_get_server ( proxy ) ) )
-	    {
-		iLog->Log ( _L ( "lm_proxy_set_server failed" ) );
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	    }
-	
-	lm_proxy_unref ( proxy );
-	
-	iLog->Log ( _L ( "lm_proxy_set_server passed" ) );
-	
-	return KErrNone;	
-}
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_proxy_set_port
-// Description:Sets the server port that proxy will be using
-// Arguements :
-//    proxy   : an LmProxy
-//    port    : proxy server port
-// Returns    : None
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_proxy_set_get_portL ( CStifItemParser& /*aItem*/ )
-{
-	LmProxy *proxy = NULL;
-	guint   port1  = 80;
-	guint   port2  = 21;
-	
-	iLog->Log ( _L ( "In lm_proxy_set_get_port" ) );
-	
-	// Create new proxy
-	proxy = lm_proxy_new ( LM_PROXY_TYPE_HTTP );
-	if ( !proxy )
-	    {
-		iLog->Log ( _L ( "lm_proxy_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Set the port = port1
-	lm_proxy_set_port ( proxy, port1 );
-	
-	// Verify the port
-	if ( port1 != lm_proxy_get_port ( proxy ) )
-	    {
-		iLog->Log ( _L ( "lm_proxy_set_port failed for port = %d" ), port1 );
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	    }
-	
-	// Set the port = port2
-	lm_proxy_set_port ( proxy, port2 );
-	
-	// Verify the port
-	if ( port2 != lm_proxy_get_port ( proxy ) )
-	    {
-		iLog->Log ( _L ( "lm_proxy_set_port failed for port = %d" ), port2 );
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	    }
-	
-	lm_proxy_unref ( proxy );
-	
-	iLog->Log ( _L ( "lm_proxy_set_get_port passed" ) );
-	
-	return KErrNone;
-}
-
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_proxy_set_username
-// Description:Sets the username for proxy or NULL to unset
-// Arguements :
-//   proxy    : an LmProxy
-//   username : username
-// Returns    : None
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_proxy_set_get_usernameL ( CStifItemParser& /*aItem*/ )
-{
-	LmProxy     *proxy = NULL;
-	const gchar *user1 = "nokia";
-	const gchar *user2 = "linux";
-	
-	iLog->Log ( _L ( "In lm_proxy_set_get_username" ) );
-	
-	// Create a new proxy
-	proxy = lm_proxy_new ( LM_PROXY_TYPE_HTTP );
-	if ( !proxy )
-	    {
-		iLog->Log ( _L ( "lm_proxy_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Set the proxy username to "nokia"
-	lm_proxy_set_username ( proxy, user1 );
-	
-	// Verify the proxy username
-	if ( strcmp ( user1, lm_proxy_get_username ( proxy ) ) )
-	    {
-		iLog->Log ( _L ( "lm_proxy_set_username failed for user1" ) );
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	    }
-	
-	// Set the proxy username to "linux"
-	lm_proxy_set_username ( proxy, user2);
-	
-	// Verify the proxy username
-	if ( strcmp ( user2, lm_proxy_get_username ( proxy ) ) )
-	    {
-		iLog->Log ( _L ( "lm_proxy_set_username failed for user2" ) );
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	    }
-	
-	lm_proxy_unref ( proxy );
-	
-	iLog->Log ( _L ( "lm_proxy_set_get_username passed" ) );
-	
-	return KErrNone;
-}
-
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_proxy_set_password
-// Description:Sets the password for proxy
-// Arguements :
-//   proxy    : an LmProxy
-// Returns    : the proxy password
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_proxy_set_get_passwordL ( CStifItemParser& /*aItem*/ )
-{
-	LmProxy     *proxy = NULL;
-	const gchar *password = "nokia";
-	
-	iLog->Log ( _L ( "In lm_proxy_set_get_passrod" ) );
-	
-	// Create a new proxy
-	proxy = lm_proxy_new ( LM_PROXY_TYPE_HTTP );
-	if ( !proxy )
-	    {
-		iLog->Log ( _L ( "lm_proxy_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Set the password proxy to "nokia"
-	lm_proxy_set_password ( proxy, password );
-	
-	// Verify the password
-	if ( strcmp ( password, lm_proxy_get_password ( proxy ) ) )
-	    {
-		iLog->Log ( _L ( "lm_proxy_set_password failed" ) );
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	    }
-	
-	// Unset the password
-	lm_proxy_set_password ( proxy, NULL );
-	
-	// Verify the password
-	if ( lm_proxy_get_password ( proxy ) )
-	    {
-		iLog->Log ( _L ( "lm_proxy_set_password failed" ) );
-		lm_proxy_unref ( proxy );
-		return KErrGeneral;
-	    }
-	
-	iLog->Log ( _L ( "lm_proxy_set_password passed" ) );
-	lm_proxy_unref ( proxy );
-	
-	return KErrNone; 
-}
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_proxy_ref
-// Description:Adds a reference to proxy
-// Arguements :
-//   proxy    : an LmProxy
-// Returns    : the proxy
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_proxy_refL ( CStifItemParser& /*aItem*/ )
-{
-	LmProxy *proxy = NULL;
-	
-	iLog->Log ( _L ( "In lm_proxy_ref" ) );
-	
-	// Creat a new proxy
-	proxy = lm_proxy_new ( LM_PROXY_TYPE_HTTP );
-	if ( !proxy )
-	{
-		iLog->Log ( _L ( "lm_proxy_new failed" ) );
-		return KErrGeneral;
-	}
-	
-	// Add a reference to proxy
-	proxy = lm_proxy_ref ( proxy );
-	
-	// Loudmouth don't provide API for getting reference to the proxy
-	// Therefore this test case is considered as passed without checking
-	iLog->Log ( _L ( "lm_proxy_ref passed" ) );
-	lm_proxy_unref ( proxy );
-	lm_proxy_unref ( proxy );
-	
-	return KErrNone;
-}
-
-
-// ---------------------------------------------------------------------------
-// Ctstlm::lm_proxy_unref
-// Description:Removes a reference from the proxy
-//             When no more rererences are present proxy is freed
-//             Check the heap size to ensure that lm_proxy_unref free 
-//             the proxy when no more references are present.
-// Arguements :
-//   proxy    : an LmProxy
-// Returns    : None
-// ---------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_proxy_unrefL ( CStifItemParser& /*aItem*/ )
-{
-	LmProxy *proxy      = NULL;
-	
-	RHeap&  heap_handle = User::Heap();
-	TInt    largest_free_block;
-	TInt    heap_avail_before;
-	TInt    heap_avail_after;
-	
-	iLog->Log ( _L ( "In lm_proxy_unref" ) );
-	
-	// Get the heap size before creating a new proxy
-	heap_avail_before = heap_handle.Available ( largest_free_block );
-	
-	// Create a new proxy
-	proxy = lm_proxy_new ( LM_PROXY_TYPE_HTTP );
-	if ( !proxy )
-	{
-	    iLog->Log ( _L ( "lm_proxy_new failed" ) );
-	    return KErrGeneral;
-	}
-	
-	// Remove a reference from the proxy
-	lm_proxy_unref ( proxy );
-	
-	// Get the heap size 
-	heap_avail_after = heap_handle.Available ( largest_free_block );
-	
-	// Compare the heap size
-	if ( heap_avail_after != heap_avail_before )
-	{
-		iLog->Log ( _L ( "heap_available_before = %d, heap_available_after = %d" ),
-		                  heap_avail_before, heap_avail_after );
-		iLog->Log ( _L ( "Available memory is not as expected after freeing" ) );
-		return KErrGeneral;	
-	}
-	
-	iLog->Log ( _L ( "Expected: heap_available_before is equal to heap_available_after" ) );
-	iLog->Log ( _L ( "heap_available_before = %d, heap_available_after = %d" ),
-	                  heap_avail_before, heap_avail_after );
-	iLog->Log ( _L ( "lm_message_unref passed" ) );
-	
-	return KErrNone;	
-}
-	
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_send_sync
-// Description	: Opens a connection with the gtalk server and sends a jabber
-//                message to the another person  
-// Requires		: This test case requires GUI mode for selecting Access point
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_send_syncL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection  = NULL;
-	LmMessage    *message     = NULL;
-	
-	ConnectData *connect_data = NULL;
-	
-	GError      *error        = NULL;
-	
-	iLog->Log ( _L ( "In lm_send_sync" ) );	
-	
-	// Read data from the CFG file
-	iLog->Log ( _L ( "Reading data from the CFG file" ) );	
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-	    {
-	    iLog->Log ( _L ( "read_data failed" ) );
-	    free_data ( connect_data );
-		return KErrGeneral;
-	    }
-	iLog->Log ( _L ( "Read data from the CFG file" ) );
-	iLog->Log ( _L8 ( "Server name: %s" ), connect_data->server );
-	
-	// Open a new closed connection
-	iLog->Log ( _L ( "Open a new closed connection" ) );
-	connection = lm_connection_new ( connect_data->server );	
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "New closed connection opened" ) );
-	
-	iLog->Log ( _L ( "Setting jid" ) );	
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	iLog->Log ( _L ( "Setting gtalks SSL port" ) );
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Proxy settings for emulator
-#ifdef __WINSCW__
-    SetProxy ( connection, connect_data->proxy_data );
-#endif
-
-	// Set connection to use SSL
-	iLog->Log ( _L ( "Setting SSL for the connection" ) );
-	SSLInit ( connection );
-	
-	iLog->Log ( _L ( "Open a connection with the server" ) );
-	//Calling connection open
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop ); 
-	
-	iLog->Log ( _L ( "connection with the server successfull" ) );
-	
-	iLog->Log ( _L ( "Getting the username from the server" ) );
-	iLog->Log ( _L8 ( "jid: %s" ), connect_data->username );
-	// Get the user from the full JID
-	gchar *username = get_user_name ( connect_data->username );
-	iLog->Log ( _L ( "after extracting from the jid: %s" ), username );
-	
-	
-	iLog->Log ( _L ( "Authenticating with the server" ) );
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction )connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	g_free ( username );
-	iLog->Log ( _L ( "Authentication done" ) );
-	
-	// Send a message to the server
-	iLog->Log ( _L8 ( "Create a new message: %s" ),
-	                   connect_data->msg_data->recipient );
-	message = lm_message_new ( connect_data->msg_data->recipient, 
-	                           LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-		{
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	iLog->Log ( _L ( "Add a node" ) );	
-	lm_message_node_add_child ( message->node, "body", 
-	                            connect_data->msg_data->message );
-	
-	
-	iLog->Log ( _L ( "Send message to the server" ) );
-	if ( !lm_connection_send ( connection, message, NULL ) )
-		{
-		iLog->Log ( _L ( "lm_connection_send failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "Message has been sent" ) );
-	
-	iLog->Log ( _L ( "Free the allocated resources" ) );
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );	
-	lm_message_unref ( message );
-	free_data ( connect_data );
-	iLog->Log ( _L ( "Freed" ) );
-
-	iLog->Log ( _L ( "lm_send_sync passed" ) );
-	
-	return KErrNone;	
-    }
-	
- //-----------------------------------------------------------------------------
-// Ctstlm::lm_is_authenticated_WhenNotAuthenticatedL
-// Description  : Check if connection is authenticated or not
-// Arguements   :
-//   connection	: an LmConnection to check 
-// Returns      : TRUE if connection is authenticated, FALSE otherwise
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_is_authenticated_WhenNotAuthenticatedL ( CStifItemParser& aItem )
-    {
-    LmConnection *connection       = NULL;
-    ConnectData  *connect_data     = NULL;
-    gboolean     NotAuthenticated  = FALSE;    
-    
-    iLog->Log ( _L ( "In lm_connection_is_authenticated" ) );
-    
-    // Read data from the CFG file
-    if ( read_data ( connect_data, aItem ) != RC_OK )
-    	{
-    	iLog->Log ( _L ( "read_data failed" ) );
-    	free_data ( connect_data );
-    	return KErrGeneral;
-    	}    
-    
-    // Open a new closed connection
-    connection = lm_connection_new ( connect_data->server );
-    if ( !connection )
-    	{
-    	iLog->Log ( _L ( "lm_connection_new failed" ) );
-    	free_data ( connect_data );
-    	return KErrGeneral;
-    	}
-    
-    // Set the connection to use gtalk's SSL port
-    lm_connection_set_port ( connection, GTALK_SSL_PORT );
-    
-    // Set the JID to be used for connection 
-    lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-    // Open a connection
-    GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop ); 
-	
-    // Check for authentication after the connection is authenticated
-    if ( lm_connection_is_authenticated ( connection ) )
-        {
-    	iLog->Log ( _L ( "lm_is_authenticated_WhenNotAuthenticatedL failed" ) );    	
-    	lm_connection_close ( connection, NULL );
-    	lm_connection_unref ( connection );
-    	free_data ( connect_data );
-    	return KErrGeneral;
-        }    
-    
-    lm_connection_close ( connection, NULL );
-    lm_connection_unref ( connection );
-    free_data ( connect_data );
-    
-    iLog->Log ( _L ( "lm_is_authenticated_WhenNotAuthenticatedL passed" ) );
-    
-    return KErrNone;  
-    }
-
-
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_fetch_contactlist_messages
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_fetch_contactlist_messages ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *q_node,*item_node;
-	type = lm_message_get_sub_type (reply); 
-     	
-       	
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-    		break;
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		//return NULL;
-    		break;
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    
-   	q_node = lm_message_node_get_child (reply->node, "query");
-
-	if (!q_node) 
-    	{
-   		//return NULL;
-    	}
-    	
-    item_node = lm_message_node_get_child (q_node, "item");
-
-	while (item_node) 
-    	{          	
-    	const char* reply_string;
-        reply_string = lm_message_node_get_attribute(item_node,"jid");  
-        char* friendname;
-        const char* atstring = "@";
-        friendname = strtok((char*)reply_string,atstring );
-        item_node = item_node->next;  
-     	}  
-	
-	
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-    
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_fetching_contactlistL
-// Description  : fetching contact list 
-// Arguements   :
-//   connection	: 
-//   message    : 
-//   error      : 
-// Returns      : 
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_fetching_contactlist_L ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	LmMessageNode *q_node;
-    //LmMessageSubType  type;
-    LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_fetching_contactlist_L" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-
-	//Open call    
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		free_data ( connect_data );	
-		g_main_loop_unref ( main_loop );	
-		return KErrGeneral;
-	    }
-		
-	
-	g_main_loop_run ( main_loop );
-
-	g_main_loop_unref ( main_loop );    
-    
-
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction )connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	g_free ( username );
-	
-
-                
-	// Construct a message
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ,
-    					  LM_MESSAGE_SUB_TYPE_GET);
-    q_node = lm_message_node_add_child (message->node, "query", NULL);
-    lm_message_node_set_attributes (q_node,
-    					"xmlns", "jabber:iq:roster",
-    					NULL); 
-	// Send message to the server
-	handler = lm_message_handler_new ( handle_fetch_contactlist_messages, main_loop, NULL );
-	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );                					
-    					
-   				
-	
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	
-	// Remove a reference on message
-	lm_message_unref ( message );
-	
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_fetching_contactlist_L passed" ) );
-	
-	return KErrNone;
-    }
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_fetching_presenceL
-// Description  : fetching contact list 
-// Arguements   :
-//   connection	: 
-//   message    : 
-//   error      : 
-// Returns      : 
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_fetching_presenceL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	//LmMessageNode *q_node;
-   // LmMessageSubType  type;
-    LmMessageHandler *handler = NULL;
-    GMainLoop    *main_loop    = NULL;
-	
-	iLog->Log ( _L ( "In lm_fetching_presenceL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	
-	g_main_loop_run ( main_loop );
-
-	g_main_loop_unref ( main_loop );    
-
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	g_free ( username );
-	
-	
-	message = lm_message_new_with_sub_type ( NULL,
-	                                     LM_MESSAGE_TYPE_PRESENCE,
-	                                     LM_MESSAGE_SUB_TYPE_AVAILABLE );
-	
-    gboolean result = lm_connection_send ( connection, message, NULL );	
-   	// Close the connection
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	//------------------------------------------------------------------------
-	//
-	// Register a handler to recieve and update presence information
-	//
-	handler = lm_message_handler_new ( 
-	                     (LmHandleMessageFunction)jabber_presence_handler_cb,
-	                     main_loop,
-	                     NULL );
-	
-	lm_connection_register_message_handler ( connection,
-	                                         handler,
-	                                         LM_MESSAGE_TYPE_PRESENCE,
-	                                         LM_HANDLER_PRIORITY_NORMAL );
-	
-	//------------------------------------------------------------------------
-	
-	g_main_loop_run ( main_loop );	
-	g_main_loop_unref ( main_loop );
-	
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	// Remove a reference on message
-	lm_message_unref ( message );	
-	free_data ( connect_data );
-	lm_message_handler_unref(handler);
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_fetching_presenceL passed" ) );
-	
-	return KErrNone;
-    }
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_subscribe_contact_L
-// Description  : fetching contact list 
-// Arguements   :
-//   connection	: 
-//   message    : 
-//   error      : 
-// Returns      : 
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_subscribe_contact_L ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	//LmMessageNode *q_node;
-    //LmMessageSubType  type;
-	
-	iLog->Log ( _L ( "In lm_subscribe_contact_L" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	// Open a connection with the server
-	GMainLoop	*main_loop1 = g_main_loop_new ( NULL, FALSE );
-	
-	if ( !lm_connection_open ( connection, 
-								( LmResultFunction ) connection_open_cb,
-	                           main_loop1, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop1 );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	
-	
-	g_main_loop_run ( main_loop1 );
-
-	g_main_loop_unref ( main_loop1 );   
-
-	
-	GMainLoop	*main_loop2 = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop2,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop2 );
-	g_main_loop_unref ( main_loop2 );    
-	g_free ( username );
-	
-	
-	gchar *jid = "rakesh.harsha@gmail.com";
-    message = lm_message_new (jid, LM_MESSAGE_TYPE_PRESENCE );
-    lm_message_node_set_attribute ( message->node, "type", "subscribe" );
-    //Send the message					
-   	if ( !lm_connection_send ( connection, message, NULL ) )
-    	{
-    	lm_message_unref ( message );
-    	return KErrGeneral;
-    	}
-    
-    lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	// Remove a reference on message
-	lm_message_unref ( message );	
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_subscribe_contact_L passed" ) );	
-	return KErrNone;
-    }
-    
-    
-    
- //-----------------------------------------------------------------------------
-// Ctstlm::lm_authenticate_WithUnexistingJID
-// Description  : Tries to authenticate a user against the server. 
-// Arguements   :
-//   connection : an LmConnection 
-//   username   : Username used to authenticate
-//   password   : Password corresponding to Username
-//   resource   : Resource used for this connection
-//   error      : location to store error, or NULL
-// Returns      : TRUE if no errors were detected & authentication was 
-//                successful,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_authenticate_WithUnexistingJID ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;	
-	//ConnectData  *connect_data = NULL;
-	AuthData     *auth_data    = NULL;
-	//GMainLoop    *main_loop    = NULL;
-	//GMainContext *context      = NULL;
-		
-	iLog->Log ( _L ( "In lm_connection_authenticate" ) );	
-
-	auth_data = g_new0 ( AuthData, 1 );
-	if ( !auth_data )
-		{
-		iLog->Log ( _L ( "memory allocation failed for auth_data" ) );
-		return KErrGeneral;
-		}	
-		
-	if ( read_data ( auth_data->connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );		
-		free_data ( auth_data->connect_data );		
-		g_free ( auth_data );
-		return KErrGeneral;
-		}
-	
-	auth_data->main_loop    = g_main_loop_new ( NULL, FALSE );	
-	auth_data->rCode        = RC_ERROR;
-	
-	//connection = lm_connection_new_with_context ( connect_data->server,context );
-	connection = lm_connection_new ( auth_data->connect_data->server );
-	if ( connection == NULL )
-	    {
-	    iLog->Log ( _L ( "lm_connection_new_with_context failed" ) );
-	    free_data ( auth_data->connect_data );
-	    g_main_loop_unref ( auth_data->main_loop );
-	    g_free ( auth_data );
-	    return KErrGeneral;
-	    }
-	
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, auth_data->connect_data->username );
-
-#ifdef __WINSCW__
-	SetProxy ( connection, auth_data->connect_data->proxy_data );
-#endif
-	SSLInit ( connection );
-	
-	if ( !lm_connection_open ( connection, 
-	                           ( LmResultFunction ) connection_open_cb,
-	                           auth_data->main_loop, 
-	                           NULL, 
-	                           NULL ) )                          
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ) );
-		free_data ( auth_data->connect_data );
-		g_main_loop_unref ( auth_data->main_loop );
-		g_free ( auth_data );
-		return KErrGeneral;
-	    }	   
-	                                    
-	
-	g_main_loop_run ( auth_data->main_loop );
-	g_main_loop_unref ( auth_data->main_loop );
-	
-	// Extract the username from the JID
-    gchar *username = get_user_name ( auth_data->connect_data->username );
-    auth_data->main_loop    = g_main_loop_new ( NULL, FALSE );
-    if ( !lm_connection_authenticate ( connection, 
-                                       username,
-                                       auth_data->connect_data->password,
-                                       auth_data->connect_data->resource, 
-                                       ( LmResultFunction ) wrong_input_auth_cb, 
-                                       auth_data ,  
-                                       NULL, 
-                                       NULL ) )
-        {
-       	auth_data->rCode = RC_ERROR;
-       	lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-       	g_free ( username );
-       	g_main_loop_unref ( auth_data->main_loop );
-       	free_data ( auth_data->connect_data );	
-       	g_free ( auth_data );
-       	return KErrGeneral;
-        }
-            
-    g_main_loop_run ( auth_data->main_loop );
-	g_main_loop_unref ( auth_data->main_loop );
-	g_free ( username );
-	
-	
-	
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );
-	free_data ( auth_data->connect_data );	
-	
-	if ( auth_data->rCode == RC_ERROR )
-	    {
-	    iLog->Log ( _L ( "lm_authenticate_WithUnexistingJID failed" ) );
-	    g_free ( auth_data );
-	    return KErrGeneral;
-	    }
-	
-	g_free ( auth_data );
-
-	iLog->Log ( _L ( "lm_authenticate_WithUnexistingJID passed" ) );
-	
-	return KErrNone;		
-}
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_authenticate_WithBadPasswordL
-// Description  : Tries to authenticate a user against the server. 
-// Arguements   :
-//   connection : an LmConnection 
-//   username   : Username used to authenticate
-//   password   : Password corresponding to Username
-//   resource   : Resource used for this connection
-//   error      : location to store error, or NULL
-// Returns      : TRUE if no errors were detected & authentication was 
-//                successful,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_authenticate_WithBadPasswordL ( CStifItemParser& aItem )
-    {
-		LmConnection *connection   = NULL;	
-	//ConnectData  *connect_data = NULL;
-	AuthData     *auth_data    = NULL;
-	//GMainLoop    *main_loop    = NULL;
-	//GMainContext *context      = NULL;
-		
-	iLog->Log ( _L ( "In lm_connection_authenticate" ) );	
-
-	auth_data = g_new0 ( AuthData, 1 );
-	if ( !auth_data )
-		{
-		iLog->Log ( _L ( "memory allocation failed for auth_data" ) );
-		return KErrGeneral;
-		}	
-		
-	if ( read_data ( auth_data->connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );		
-		free_data ( auth_data->connect_data );		
-		g_free ( auth_data );
-		return KErrGeneral;
-		}
-	
-	//context = g_main_context_new ();
-	//main_loop = g_main_loop_new ( context, FALSE );	
-	auth_data->main_loop    = g_main_loop_new ( NULL, FALSE );	
-	//auth_data->connect_data = connect_data;
-	auth_data->rCode        = RC_ERROR;
-	//auth_data->main_loop    = main_loop;
-	
-	//connection = lm_connection_new_with_context ( connect_data->server,context );
-	connection = lm_connection_new ( auth_data->connect_data->server );
-	if ( connection == NULL )
-	    {
-	    iLog->Log ( _L ( "lm_connection_new_with_context failed" ) );
-	    free_data ( auth_data->connect_data );
-	    g_main_loop_unref ( auth_data->main_loop );
-	    g_free ( auth_data );
-	    return KErrGeneral;
-	    }
-	
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, auth_data->connect_data->username );
-
-#ifdef __WINSCW__
-	SetProxy ( connection, auth_data->connect_data->proxy_data );
-#endif
-	SSLInit ( connection );
-	
-	if ( !lm_connection_open ( connection, 
-	                           ( LmResultFunction ) auth_from_open_cb,
-	                           auth_data, 
-	                           NULL, 
-	                           NULL ) )                          
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ) );
-		free_data ( auth_data->connect_data );
-		g_main_loop_unref ( auth_data->main_loop );
-		g_free ( auth_data );
-		return KErrGeneral;
-	    }	   
-	                                    
-	
-	g_main_loop_run ( auth_data->main_loop );
-	g_main_loop_unref ( auth_data->main_loop );
-	
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );
-	free_data ( auth_data->connect_data );	
-	
-	if ( auth_data->rCode == RC_ERROR )
-	    {
-	    iLog->Log ( _L ( "lm_authenticate_WithBadPasswordL failed" ) );
-	    g_free ( auth_data );
-	    return KErrGeneral;
-	    }
-	
-	g_free ( auth_data );
-
-	iLog->Log ( _L ( "lm_authenticate_WithBadPasswordL passed" ) );
-	
-	return KErrNone;		
-}
-   
-  //-----------------------------------------------------------------------------
-// Ctstlm::lm_authenticate_WhenConnectionIsNotOpenedL
-// Description  : Tries to authenticate a user against the server.handles 
-// 				  a reply to the authentication in callback method
-// Arguments    :
-//   connection : an LmConnection 
-//   username   : Username used to authenticate
-//   password   : Password corresponding to Username
-//   resource   : Resource used for this connection
-//   error      : location to store error, or NULL
-// Returns      : TRUE if no errors were detected & authentication was 
-//                successful,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_authenticate_WhenConnectionIsNotOpenedL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;	
-	ConnectData  *connect_data = NULL;
-	
-	
-	iLog->Log ( _L ( "In lm_authenticate_WhenConnectionIsNotOpenedL" ) );
-	
-	// Read data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Open a new closed connection	
-	connection = lm_connection_new ( connect_data->server );
-	if ( connection == NULL)
-	    {
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-	    }
-	
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	SSLInit ( connection );
-	
-		
-	
-	// Get the username from the JID
-   GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server without doing a connection open
-	if (! lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_open_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_authenticate_WhenConnectionIsNotOpened passed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );  
-		//returning kerrnone since we are testing negative scenario and this call is 
-		//expected to return false
-		return KErrNone; 
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	g_free ( username );
-
-	
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	
-	iLog->Log ( _L ( "lm_authenticate_WhenConnectionIsNotOpened when connection is not opened failed since connection must be already open" ) );
-	//Returning KErrNone, since the test case could not be tested as the connection must be open
-	//The control will never come here for the test case :)
-	return KErrNone;	
-    }
-    
-    
- //-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_open_with_badserver server name
-// Description  : Tries to authenticate a user against the wrong server. 
-// Arguements   :
-//   connection : an LmConnection 
-//   username   : Username used to authenticate
-//   password   : Password corresponding to Username
-//   resource   : Resource used for this connection
-//   error      : location to store error, or NULL
-// Returns      : TRUE if no errors were detected & authentication was 
-//                successful,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_connection_open_with_badserverL ( CStifItemParser& aItem )
-    {
-		LmConnection *connection   = NULL;	
-	//ConnectData  *connect_data = NULL;
-	AuthData     *auth_data    = NULL;
-	//GMainLoop    *main_loop    = NULL;
-	//GMainContext *context      = NULL;
-		
-	iLog->Log ( _L ( "In lm_connection_open_with_badserverL" ) );	
-
-	auth_data = g_new0 ( AuthData, 1 );
-	if ( !auth_data )
-		{
-		iLog->Log ( _L ( "memory allocation failed for auth_data" ) );
-		return KErrGeneral;
-		}	
-		
-	if ( read_data ( auth_data->connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );		
-		free_data ( auth_data->connect_data );		
-		g_free ( auth_data );
-		return KErrGeneral;
-		}
-	
-	//context = g_main_context_new ();
-	//main_loop = g_main_loop_new ( context, FALSE );	
-	auth_data->main_loop    = g_main_loop_new ( NULL, FALSE );	
-	//auth_data->connect_data = connect_data;
-	auth_data->rCode        = RC_ERROR;
-	//auth_data->main_loop    = main_loop;
-	
-	//connection = lm_connection_new_with_context ( connect_data->server,context );
-	connection = lm_connection_new ( auth_data->connect_data->server );
-	if ( connection == NULL )
-	    {
-	    iLog->Log ( _L ( "lm_connection_new failed" ) );
-	    free_data ( auth_data->connect_data );
-	    g_main_loop_unref ( auth_data->main_loop );
-	    g_free ( auth_data );
-	    return KErrGeneral;
-	    }
-	
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection, auth_data->connect_data->username );
-
-#ifdef __WINSCW__
-	SetProxy ( connection, auth_data->connect_data->proxy_data );
-#endif
-	SSLInit ( connection );
-	
-	if ( !lm_connection_open ( connection, 
-	                           ( LmResultFunction ) wrong_input_in_open_cb,
-	                           auth_data, 
-	                           NULL, 
-	                           NULL ) )                          
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ) );
-		free_data ( auth_data->connect_data );
-		g_main_loop_unref ( auth_data->main_loop );
-		g_free ( auth_data );
-		return KErrGeneral;
-	    }	   
-	                                    
-	
-	g_main_loop_run ( auth_data->main_loop );
-	iLog->Log ( _L ( "main loop exited returned" ) );
-	g_main_loop_unref ( auth_data->main_loop );
-	lm_connection_close ( connection, NULL );
-	lm_connection_unref ( connection );
-	free_data ( auth_data->connect_data );	
-	
-	if ( auth_data->rCode == RC_ERROR )
-	    {
-	    iLog->Log ( _L ( "lm_connection_open_with_badserver failed" ) );
-	    g_free ( auth_data );
-	    return KErrGeneral;
-	    }
-	
-	g_free ( auth_data );
-	
-	iLog->Log ( _L ( "lm_connection_open_with_badserver passed" ) );
-	
-	return KErrNone;		
-}
-
- 
-// ----------------------------------------------------------------------------
-// Ctstlm::lm_message_node_get_child
-// Description:Fetches the child from node. If child is not found as an 
-//             immediate child of node, NULL is returned
-// Arguements :
-//    node    : an LmMessageNode
-//    name    : name of the new child
-//    value   : value of the new child
-// Returns    : the child node or NULL if child not found
-// ----------------------------------------------------------------------------
-//
-TInt Ctstlm::lm_message_node_get_childL ( CStifItemParser& /*aItem*/ )
-{
-	LmMessage     *message   = NULL;
-	LmMessageNode *Node      = NULL;	
-	const gchar   *Username  = "Nokia";	
-	const gchar   *Password  = "Nokia";		
-	
-	iLog->Log ( _L ( "In lm_message_node_get_child" ) );
-	
-	// Construct a message with type = LM_MESSAGE_TYPE_MESSAGE
-	iLog->Log ( _L ( "Construct a message" ) );
-	
-	message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-	if ( !message )
-	    {
-		iLog->Log ( _L ( "lm_message_new failed" ) );
-		return KErrGeneral;
-	    }
-	
-	// Retrive the root node from message
-	iLog->Log ( _L ( "Retrive the root node from the message" ) );
-	
-	Node = lm_message_get_node ( message );
-	if ( !Node )
-	    {
-		iLog->Log ( _L ( "lm_message_get_node failed" ) );
-		lm_message_unref ( message );
-		return KErrGeneral;		
-	    }
-	
-	// Add childrens
-	iLog->Log ( _L ( "Adding childrens 'username' and 'password'" ) );
-	lm_message_node_add_child ( Node, "username", Username );
-	lm_message_node_add_child ( Node, "password", Password );
-	
-	// Verify the childs
-	iLog->Log ( _L ( "Verify the childs" ) );
-	
-	if ( !lm_message_node_get_child ( Node, "username" ) ) 
-	    {
-		iLog->Log ( _L ( "lm_message_get_child failed" ) );
-		lm_message_unref ( message );
-		lm_message_node_unref ( Node );		
-		return KErrGeneral;
-	    }
-	
-	if ( !lm_message_node_get_child ( Node, "password" ) )
-	    {
-		iLog->Log ( _L ( "lm_message_get_child failed" ) );
-		lm_message_unref ( message );
-		lm_message_node_unref ( Node );
-		return KErrGeneral;
-	    }	
-		
-	lm_message_unref ( message );
-	lm_message_node_unref ( Node );	
-	
-	iLog->Log ( _L ( "lm_message_node_get_child passed" ) );
-	
-	return KErrNone;	    
-}
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_receive_messages
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_receive_messages ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        /*message*/,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-
-
-
-//-----------------------------------------------------------------------------
-// function_name	: connection_auth_cb
-// description		: callback function set by lm_connection_authenticate
-// in lm_connection_sendL()
-// Returns			: None
-//-----------------------------------------------------------------------------
-//
-static void lm_login_cb ( LmConnection * /*connection*/, 
-                     gboolean  success, 
-                     gpointer data )
-    {
-    gboolean result = success;
-    AuthData *auth_data = ( AuthData * ) data;
-    //Result is false when the wrong input parameters were successfully handled.
-    if (result == FALSE)
-		{       
-		auth_data->rCode = RC_OK;
-		}
-    else 
-    	{
-    	//Result is true, when the wrong input was not handled successfully.
-       	auth_data->rCode = RC_ERROR;	
-    	}
-    g_main_loop_quit ( auth_data->main_loop ); 		
-    }
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_login_testL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_login_testL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	//ConnectData  *connect_data = NULL;
-	AuthData     *auth_data    = NULL;
-	
-	
-	iLog->Log ( _L ( "In lm_login_testL" ) );
-	
-	auth_data = g_new0 ( AuthData, 1 );
-	if ( !auth_data )
-		{
-		iLog->Log ( _L ( "memory allocation failed for auth_data" ) );
-		return KErrGeneral;
-		}	
-	
-	// Read a data from the CFG file
-	if ( read_data ( auth_data->connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( auth_data->connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( auth_data->connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( auth_data->connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, auth_data->connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, auth_data->connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	auth_data->main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           auth_data->main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( auth_data->main_loop );
-		free_data ( auth_data->connect_data );
-				
-		g_free(auth_data);
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	
-	g_main_loop_run ( auth_data->main_loop );
-
-	g_main_loop_unref ( auth_data->main_loop );    
-
-	
-	auth_data->main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( auth_data->connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     auth_data->connect_data->password,
-                                     auth_data->connect_data->resource,
-                                      ( LmResultFunction ) lm_login_cb,
-                                     auth_data,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( auth_data->connect_data );
-		g_main_loop_unref ( auth_data->main_loop );
-		g_free ( username );
-		g_free ( auth_data );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( auth_data->main_loop );
-	g_main_loop_unref ( auth_data->main_loop ); 
-	g_free ( username );
-	
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	free_data ( auth_data->connect_data );
-	
-	if ( auth_data->rCode == RC_ERROR )
-	    {
-	    iLog->Log ( _L ( "lm_login_testL failed" ) );
-	    g_free ( auth_data );
-	    return KErrGeneral;
-	    }	
-	g_free ( auth_data );
-
-	// Message sending passed
-	iLog->Log ( _L ( "lm_login_testL passed" ) );
-	
-	return KErrNone;
-}
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_send400charL
-// Description  : Asynchronous call to send a message of 400 characters
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_send400charL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	
-	iLog->Log ( _L ( "In lm_connection_send" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	// Construct a message
-	message = lm_message_new ( connect_data->msg_data->recipient,               
-	                           LM_MESSAGE_TYPE_MESSAGE );
-	
-	gchar* msg = {"sdfsadFsdfsadfsdfsdjfksdjfl;jdsf;jsadfl;jsdvdfggdfg:   \
-				fjsdljfsldfjsfwerpwerpweripwierweirpiwepriwperiwperipwer  \
-				fjsdljfsldfjsfwerpwerpweripwierweirpiwepriwperiwperipwer  \
-				fjsdljfsldfjsfwerpwerpweripwierweirpiwepriwperiwperipwer  \
-				fjsdljfsldfjsfwerpwerpweripwierweirpiwepriwperiwperipwer  \
-				fjsdljfsldfjsfwerpwerpweripwierweirpiwepriwperiwperipwer  \
-				fjsdljfsldfjsfwerpwerpweripwierweirpiwepriwperiwperipwer  \
-				fjsdljfsldfjsfwerpwerpweripwierweirpiwepriwperiwperipwer  \
-				fjsdljfsldfjsfwerpwerpweripwierweirpiwepriwperiwperipwer"};
-	
-	lm_message_node_add_child ( message->node, "body", 
-	                            msg );
-	
-	// Send message to the server
-	if ( !lm_connection_send ( connection, message, NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_send failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }	
-	
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	// Remove a reference on message
-	lm_message_unref ( message );
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_send passed" ) );
-	
-	return KErrNone;
-    
-    }
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_send_repeatedL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_send_repeatedL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	
-	iLog->Log ( _L ( "In lm_connection_send_repeatedL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	// Construct a message
-	message = lm_message_new ( connect_data->msg_data->recipient,               
-	                           LM_MESSAGE_TYPE_MESSAGE );
-	lm_message_node_add_child ( message->node, "body", 
-	                            connect_data->msg_data->message);
-	
-	// Send message to the server
-	if ( !lm_connection_send ( connection, message, NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_send failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }	
-	
-		// Send message to the server
-	if ( !lm_connection_send ( connection, message, NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_send_repeatedL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }	
-	    
-	// Send message to the server
-	if ( !lm_connection_send ( connection, message, NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_send_repeatedL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }	
-	// Send message to the server
-	if ( !lm_connection_send ( connection, message, NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_send_repeatedL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }	
-	// Send message to the server
-	if ( !lm_connection_send ( connection, message, NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_send_repeatedL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }		    	   	    
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	
-	// Remove a reference on message
-	lm_message_unref ( message );
-	
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_send passed" ) );
-	
-	return KErrNone;
-}
-//--------------------------------------------------------------------------------
-// function_name    : handle_add_contact
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_add_contact ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *q_node,*item_node;
-	type = lm_message_get_sub_type (reply); 
-     	
-    
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_SET:        		        		
-	   			{
-    			/*
-			    <iq to='juliet@example.com/balcony' type='set' id='a78b4q6ha463'>
-					<query xmlns='jabber:iq:roster'>
-					    <item jid='nurse@example.com'
-					          name='Nurse'
-					          subscription='none'>
-					      <group>Servants</group>
-					    </item>
-			  		</query>
-				</iq>
-				*/				
-    			q_node = lm_message_node_get_child (reply->node, "query");   	
-				if (q_node) 
-			    	{
-			   		item_node = lm_message_node_get_child (q_node, "item");
-			   		if(item_node)
-			   			{
-			   			const char* reply_string;
-			        	reply_string = lm_message_node_get_attribute(item_node,"jid");  
-			        	}
-			    
-        			}	
-    			
-    			break;
-	   			}
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		{
-    		/*<iq from='prima@chat.gizmoproject.com/mytest12345rt' 
-			to='prima@chat.gizmoproject.com/mytest12345rt' 
-			id='164121175000' type='error'>
-				<query xmlns='jabber:iq:roster'> 
-					<item jid='testlmnokia1111@chat.gizmoproject.com'/>
-				</query>
-				<error code='404' type='cancel'>
-					<item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-				</error>
-			</iq>
-			*/  
-			//return NULL;
-    		LmMessageNode* error_node=NULL;
-    		LmMessageNode* error_node_child=NULL;
-	    	error_node = lm_message_node_get_child (reply->node, "error");
-		   	if(error_node)
-	   			{
-	   			const char* error_code;
-	        	error_code = lm_message_node_get_attribute(error_node,"code");  
-	        	error_node_child = lm_message_node_get_child (error_node, "item-not-found");
-	        	}
-    		break;
-    		}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }    
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_add_contactL
-// Description  : Asynchronous call to add a new contact
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_add_contactL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	LmMessageNode *q_node,*item_node;
-	LmMessageHandler* handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_add_contactL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	
-	g_main_loop_run ( main_loop );
-
-	g_main_loop_unref ( main_loop );    
-
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );	
-	
-    /***********fetch contact list********************/
-  
-    // Construct a message
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ,
-    					  LM_MESSAGE_SUB_TYPE_GET);
-    q_node = lm_message_node_add_child (message->node, "query", NULL);
-    lm_message_node_set_attributes (q_node,"xmlns", "jabber:iq:roster",NULL); 
-	handler = lm_message_handler_new ( handle_fetch_contactlist_messages, main_loop, NULL );
-	// Send message to the server
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );
-		lm_message_handler_unref(handler);
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );                					
-    lm_message_unref ( message );
-    lm_message_handler_unref(handler);
-  
-    /****send own presence********/
-	
-	message = lm_message_new_with_sub_type ( NULL,
-	                                     LM_MESSAGE_TYPE_PRESENCE,
-	                                     LM_MESSAGE_SUB_TYPE_AVAILABLE );
-	gboolean result = lm_connection_send ( connection, message, NULL );	
-    lm_message_unref ( message );
-    
-    /*********Send request to add a contact**********************/
-  
-	// Construct a message
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    item_node = lm_message_node_add_child ( q_node, "item", NULL );
-    
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:roster" );
-    lm_message_node_set_attribute ( item_node, "jid", connect_data->msg_data->recipient );
-    //If we specify the name we cannot add the contact, maybe the name has to be unique.
-    /*lm_message_node_set_attribute ( item_node, "name", "harsh_rakesh" );
-    if ( group )
-    	{
-    	lm_message_node_add_child ( item, "group", group );
-    	}*/
-	
-	// Send message to the server
-	handler = lm_message_handler_new ( handle_add_contact, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );	
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	// Send subscription request to the server
-    message = lm_message_new_with_sub_type ( connect_data->msg_data->recipient,
-                                         LM_MESSAGE_TYPE_PRESENCE,
-                                         LM_MESSAGE_SUB_TYPE_SUBSCRIBE );
-    result = lm_connection_send ( connection, message, NULL ) ;
-    // Remove a reference on message
-	lm_message_unref ( message );
-	    
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-		
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_add_contactL passed" ) );
-	
-	return KErrNone;
-}
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_remove_contactL
-// Description  : Asynchronous call to add a new contact
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_remove_contactL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	LmMessageNode *q_node,*item_node;
-	LmMessageHandler* handler = NULL;
-	TBool result = EFalse;
-	
-	iLog->Log ( _L ( "In lm_remove_contactL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );	
-	
-    /***********fetch contact list********************/
-  
-    // Construct a message
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ,
-    					  LM_MESSAGE_SUB_TYPE_GET);
-    q_node = lm_message_node_add_child (message->node, "query", NULL);
-    lm_message_node_set_attributes (q_node,"xmlns", "jabber:iq:roster",NULL); 
-	handler = lm_message_handler_new ( handle_fetch_contactlist_messages, main_loop, NULL );
-	// Send message to the server
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );
-		lm_message_handler_unref(handler);
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );                					
-    lm_message_unref ( message );
-    lm_message_handler_unref(handler);
-    
-    /*********Send request to ADD a contact**********************/
-    //If we specify the name we cannot add the contact, maybe the name has to be unique.
-    /*lm_message_node_set_attribute ( item_node, "name", "harsh_rakesh" );
-    	if ( group )
-	    	{
-	    	lm_message_node_add_child ( item, "group", group );
-	    	}
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    item_node = lm_message_node_add_child ( q_node, "item", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:roster" );
-    lm_message_node_set_attribute ( item_node, "jid", connect_data->msg_data->recipient );
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_add_contact, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );	
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	// Send subscription request to the server
-    message = lm_message_new_with_sub_type ( connect_data->msg_data->recipient,
-                                         LM_MESSAGE_TYPE_PRESENCE,
-                                         LM_MESSAGE_SUB_TYPE_SUBSCRIBE );
-    result = lm_connection_send ( connection, message, NULL ) ;
-    lm_message_unref ( message );    
-	
-    /*********Send request to REMOVE a contact**********************/
-    /*
-      <iq from='juliet@example.com/balcony' type='set' id='roster_4'>
-  			<query xmlns='jabber:iq:roster'>
-    			<item jid='nurse@example.com' subscription='remove'/>
-  			</query>
-	  </iq>
-	*/
-	
-	// Construct a message
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    item_node = lm_message_node_add_child ( q_node, "item", NULL );
-    
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:roster" );
-    lm_message_node_set_attribute ( item_node, "jid", connect_data->msg_data->recipient );
-    lm_message_node_set_attribute ( item_node, "subscription", "remove" );
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_add_contact, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_remove_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);	 
-	
-	/***********FETCH contact list********************/
-  
-    // Construct a message
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ,
-    					  LM_MESSAGE_SUB_TYPE_GET);
-    q_node = lm_message_node_add_child (message->node, "query", NULL);
-    lm_message_node_set_attributes (q_node,"xmlns", "jabber:iq:roster",NULL); 
-	handler = lm_message_handler_new ( handle_fetch_contactlist_messages, main_loop, NULL );
-	// Send message to the server
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );
-		lm_message_handler_unref(handler);
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );                					
-    lm_message_unref ( message );
-    lm_message_handler_unref(handler);   		
-	
-	/*********Send request to ADD a contact**********************/
-  	// Construct a message
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    item_node = lm_message_node_add_child ( q_node, "item", NULL );
-    
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:roster" );
-    lm_message_node_set_attribute ( item_node, "jid", connect_data->msg_data->recipient);
-    
-	// Send message to the server
-	handler = lm_message_handler_new ( handle_add_contact, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );	
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	// Send subscription request to the server
-    message = lm_message_new_with_sub_type ( connect_data->msg_data->recipient,
-                                         LM_MESSAGE_TYPE_PRESENCE,
-                                         LM_MESSAGE_SUB_TYPE_SUBSCRIBE );
-    result = lm_connection_send ( connection, message, NULL ) ;
-	// Remove a reference on message
-	lm_message_unref ( message );
-	
-	/***********FETCH contact list********************/
-  
-    // Construct a message
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ,
-    					  LM_MESSAGE_SUB_TYPE_GET);
-    q_node = lm_message_node_add_child (message->node, "query", NULL);
-    lm_message_node_set_attributes (q_node,"xmlns", "jabber:iq:roster",NULL); 
-	handler = lm_message_handler_new ( handle_fetch_contactlist_messages, main_loop, NULL );
-	// Send message to the server
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );
-		lm_message_handler_unref(handler);
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );                					
-    lm_message_unref ( message );
-    lm_message_handler_unref(handler);
-	
-	/*********Send request to REMOVE a contact**********************/
-    /*
-      <iq from='juliet@example.com/balcony' type='set' id='roster_4'>
-  			<query xmlns='jabber:iq:roster'>
-    			<item jid='nurse@example.com' subscription='remove'/>
-  			</query>
-	  </iq>
-	*/
-	
-	// Construct a message
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    item_node = lm_message_node_add_child ( q_node, "item", NULL );
-    
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:roster" );
-    lm_message_node_set_attribute ( item_node, "jid", connect_data->msg_data->recipient );
-    lm_message_node_set_attribute ( item_node, "subscription", "remove" );
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_add_contact, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_remove_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);	    
-	
-	/***********FETCH contact list********************/
-  
-    // Construct a message
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ,
-    					  LM_MESSAGE_SUB_TYPE_GET);
-    q_node = lm_message_node_add_child (message->node, "query", NULL);
-    lm_message_node_set_attributes (q_node,"xmlns", "jabber:iq:roster",NULL); 
-	handler = lm_message_handler_new ( handle_fetch_contactlist_messages, main_loop, NULL );
-	// Send message to the server
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		free_data ( connect_data );
-		lm_message_handler_unref(handler);
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );                					
-    lm_message_unref ( message );
-    lm_message_handler_unref(handler);		
-
-
-	/*********Send request to ADD a contact**********************/
-    //If we specify the name we cannot add the contact, maybe the name has to be unique.
-    /*lm_message_node_set_attribute ( item_node, "name", "harsh_rakesh" );
-    	if ( group )
-	    	{
-	    	lm_message_node_add_child ( item, "group", group );
-	    	}
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    item_node = lm_message_node_add_child ( q_node, "item", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:roster" );
-    lm_message_node_set_attribute ( item_node, "jid", connect_data->msg_data->recipient );
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_add_contact, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );	
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	// Send subscription request to the server
-    message = lm_message_new_with_sub_type ( connect_data->msg_data->recipient,
-                                         LM_MESSAGE_TYPE_PRESENCE,
-                                         LM_MESSAGE_SUB_TYPE_SUBSCRIBE );
-    result = lm_connection_send ( connection, message, NULL ) ;
-    lm_message_unref ( message );  
-    	    
-	/***********cleanup*****************/
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_remove_contactL passed" ) );
-	
-	return KErrNone;
-}
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_send_receiveL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send and receive
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_send_receiveL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessage    *messagetoself = NULL;
-	LmMessageHandler *handler = NULL;
-	HandleData *handle_data = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_send" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-
-	//------------------------------------------------------------------------
-	//Send own presence
-	message = lm_message_new_with_sub_type ( NULL,
-	                                     LM_MESSAGE_TYPE_PRESENCE,
-	                                     LM_MESSAGE_SUB_TYPE_AVAILABLE );
-	
-    gboolean result = lm_connection_send ( connection, message, NULL );	
-   	
-	//------------------------------------------------------------------------
-	//
-	// Register a handler to recieve msgs
-	//
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	handler = lm_message_handler_new ( 
-	                     (LmHandleMessageFunction)handle_messages,
-	                     main_loop,
-	                     NULL );
-	
-	lm_connection_register_message_handler ( connection,
-	                                         handler,
-	                                         LM_MESSAGE_TYPE_MESSAGE,
-	                                         LM_HANDLER_PRIORITY_FIRST );
-	
-	// Construct a message for sending to self
-	messagetoself = lm_message_new ( connect_data->username,               
-	                           LM_MESSAGE_TYPE_MESSAGE );
-	lm_message_node_add_child ( message->node, "body", 
-	                            connect_data->msg_data->message);
-	
-	// Send message to the server
-	if ( !lm_connection_send ( connection, messagetoself, NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_send failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( messagetoself );
-		lm_message_unref ( message );
-		g_main_loop_unref ( main_loop );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }	
-    // Wait for the message sent to self
-    g_main_loop_run ( main_loop );
-    g_main_loop_unref ( main_loop );
-    lm_message_handler_unref(handler);
-	// Remove a reference on message
-	lm_message_unref ( message );
-	lm_message_unref ( messagetoself );
-	
-	//------------------------------------------------------------------------
-	
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );		
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_send passed" ) );
-	
-	return KErrNone;
-}
-
-
-
-//-----------------------------------------------------------------------------
-// funnction_name	: connection_open_cancel_cb
-// description		: callback function called by lm_connection_open
-// Returns			: None
-//-----------------------------------------------------------------------------
-//
-static void
-connection_open_cancel_cb ( LmConnection * /*connection*/, 
-                     gboolean    success  /*success*/, 
-                     gpointer data )
-    {
-    
-    gboolean result = success ;
-    GMainLoop *main_loop = ( GMainLoop * ) data;
-	if ( main_loop )
-	    {
-		g_main_loop_quit ( main_loop );	
-	    }		
-    }
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_cancel_openL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_cancel_openL ( CStifItemParser& aItem )
- 	{
-		LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_cancel_openL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cancel_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-	
-	if(!lm_connection_is_open(connection))
-		{
-		lm_connection_cancel_open(connection);
-		//lm_connection_unref(connection);
-		}
-	
-	//g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	
-	
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_cancel_openL passed" ) );
-	
-	return KErrNone;
-	}
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_get_privacy_lists
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_get_privacy_lists ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *q_node,*item_node;
-	type = lm_message_get_sub_type (reply); 
-    /*
-    <iq type='result' id='getlist1' to='romeo@example.net/orchard'>
-		<query xmlns='jabber:iq:privacy'>
-		    <active name='private'/>
-		    <default name='public'/>
-		    <list name='public'/>
-		    <list name='private'/>
-			<list name='special'/>
-  		</query>
-	</iq>
-    */ 	
-       	
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-    			{
-				const char* list_name1,*list_name2,*list_name3,*list_name4;
-    			q_node = lm_message_node_get_child (reply->node, "query");
-    			item_node = lm_message_node_get_child (q_node, "list");
-				list_name1 = lm_message_node_get_attribute(item_node,"name");
-				
-				item_node = lm_message_node_get_child(q_node, "list");
-				list_name2 = lm_message_node_get_attribute(item_node,"name");  
-				
-				item_node = lm_message_node_get_child (q_node, "active");
-				if(item_node!=NULL)
-					list_name3 = lm_message_node_get_attribute(item_node,"name");  
-				
-				item_node = lm_message_node_get_child (q_node, "default");
-				if(item_node!=NULL)
-					list_name4 = lm_message_node_get_attribute(item_node,"name");  
-				
-    			break;
-    			}
-    	case LM_MESSAGE_SUB_TYPE_ERROR:
-    			{
-    			/*
-    			<error type='cancel'>
-    				<item-not-found	xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-    				
-  				</error>
-  				OR
-  				<error type='modify'>
-			    	<bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-  				</error>
-  				*/
-				const char* error_type;
-    			q_node = lm_message_node_get_child (reply->node, "query");
-    			item_node = lm_message_node_get_child (q_node, "error");
-				error_type = lm_message_node_get_attribute(item_node,"type");
-    			break;
-    			}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    
-   
-
-	if (!q_node) 
-    	{
-   		//return NULL;
-    	}
-    	
-   
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }   
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_get_privacy_listsL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_get_privacy_listsL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node = NULL;
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_get_privacy_listsL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_GET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_get_privacy_lists, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_get_privacy_listsL passed" ) );
-	
-	return KErrNone;
-}
-
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_set_privacy_lists
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_set_privacy_lists ( LmMessageHandler*/* handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *q_node = NULL;
-	LmMessageNode *item_node = NULL;
-	type = lm_message_get_sub_type (reply); 
-    /*
-    <iq type='result' id='edit1' to='romeo@example.net/orchard'/>
-    */ 	
-       	
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-    		{
-    		const char* reply_string;
-    		reply_string = lm_message_node_get_attribute(reply->node,"id");  
-			break;
-    		}
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		{
-    		/*
-		    <iq to='romeo@example.net/orchard' type='error' id='getlist6'>
-			    <error type='modify'>
-			    	<bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-			    </error>
-		    </iq>
-			*/ 	
-    		if (q_node) 
-		    	{
-		    	LmMessageNode* error_node = NULL;
-		    	error_node = lm_message_node_get_child(reply->node,"error");
-	    		const char* error_code;
-	    		error_code = lm_message_node_get_attribute(error_node,"code");  
-				const char* error_type;
-	    		error_type = lm_message_node_get_attribute(error_node,"type");  
-				item_node = lm_message_node_get_child (q_node, "feature-not-implemented");
-		    	}
-			break;
-			}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    	
-    
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }   
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_privacy_listsL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_set_privacy_listsL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node, *item_node1, *item_node2 = NULL;
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_set_privacy_listsL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop ); 
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='set' id='edit1'>
-		<query xmlns='jabber:iq:privacy'>
-		    <list name='public'>
-		      <item type='jid'
-		            value='tybalt@example.com'
-		            action='deny'
-		            order='3'/>
-		      <item type='jid'
-		            value='paris@example.org'
-		            action='deny'
-		            order='5'/>
-		      <item action='allow' order='68'/>
-		    </list>
-		    <list name='active'>
-		      <item type='jid'
-		            value='tybalt@example.com'
-		            action='deny'
-		            order='3'/>
-		      <item type='jid'
-		            value='paris@example.org'
-		            action='deny'
-		            order='5'/>
-		      <item action='allow' order='68'/>
-		    </list>
-  		</query>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "public" );
-    item_node2 = lm_message_node_add_child ( item_node1, "item", NULL );
-    lm_message_node_set_attribute ( item_node2, "type", "jid" );
-    lm_message_node_set_attribute ( item_node2, "value", "rakesh_harsh@chat.gizmoproject.com" );
-    lm_message_node_set_attribute ( item_node2, "action", "deny" );
-    lm_message_node_set_attribute ( item_node2, "order", "3" );
-    
-    item_node1 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "active" );
-    item_node2 = lm_message_node_add_child ( item_node1, "item", NULL );
-    lm_message_node_set_attribute ( item_node2, "type", "jid" );
-    lm_message_node_set_attribute ( item_node2, "value", "rakesh_harsh@chat.gizmoproject.com" );
-    lm_message_node_set_attribute ( item_node2, "action", "deny" );
-    lm_message_node_set_attribute ( item_node2, "order", "4" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_set_privacy_lists, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_set_privacy_listsL passed" ) );
-	
-	return KErrNone;
-}
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_send_image_cb
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_send_image_cb ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    SendStreamData *stream_data = ( SendStreamData * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *q_node,*item_node;
-	type = lm_message_get_sub_type (reply); 
-        	
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-			{
-			const char* reply_string;
-			reply_string = lm_message_node_get_attribute(reply->node,"id");  
-			break;
-			}
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		{
-    		/*<message from='juliet@capulet.com/balcony' to='romeo@montague.net/orchard' 
-    						id='msg1' type='error'>
-    			...
-			    <error code='504' type='cancel'>
-			         <remote-server-timeout xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-			    </error>
-			</message>*/
-
-    		const char* reply_string;
-    		reply_string = lm_message_node_get_attribute(reply->node,"id");  
-			q_node = lm_message_node_get_child (reply->node, "error");
-			if (q_node) 
-		    	{
-		   		const char* error_code;
-		   		error_code = lm_message_node_get_attribute(q_node,"code");  
-		   		item_node = lm_message_node_get_child (q_node, "feature-not-implemented");
-		   		if(item_node==NULL)
-		   			{
-		   			item_node = lm_message_node_get_child (q_node, "remote-server-timeout");
-		   			}
-		    	}
-		    	
-			break;
-    		}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    	
-    
-	if ( stream_data->main_loop )
-		{
-		g_main_loop_quit ( stream_data->main_loop );
-		}	
-	lm_message_unref(stream_data->message);
-	lm_message_handler_unref(stream_data->handler);
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-//--------------------------------------------------------------------------------
-// function_name    : handle_send_image_stream_msg_open_cb
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_send_image_stream_msg_open_cb ( LmMessageHandler* /*handler*/,
-                  LmConnection*     connection,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    SendStreamData *stream_data = ( SendStreamData * )user_data;	
-    LmMessageSubType  type;
-	LmMessageNode *q_node = NULL;
-	LmMessageNode *item_node1 = NULL;
-	LmMessageNode *item_node2 = NULL;
-	LmMessageNode* item_node = NULL;
-	LmMessage * message = NULL;
-	LmMessageHandler* handler = NULL;
-	type = lm_message_get_sub_type (reply); 
-    /*
-    //success response
-    <iq type='result' from='juliet@capulet.com/balcony' to='romeo@montague.net/orchard'
-    	id='inband_1'/>
-    	
-    //error response
-    <iq type='error' from='juliet@capulet.com/balcony' to='romeo@montague.net/orchard'
-    	id='inband_1'/>
-  			<error code='501' type='cancel'>
-    			<feature-not-implemented xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-  			</error>
-	</iq>
-	*/ 	
-   
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:
-    		{
-    		const char* reply_string;
-    		reply_string = lm_message_node_get_attribute(q_node,"id");  
-    			
-			/****************************************************/
-			// send bytes in message
-			/*
-			<message from='romeo@montague.net/orchard' to='juliet@capulet.com/balcony' id='msg1'>
-				  <data xmlns='http://jabber.org/protocol/ibb' sid='mySID' seq='0'>
-				    qANQR1DBwU4DX7jmYZnncmUQB/9KuKBddzQH+tZ1ZywKK0yHKnq57kWq+RFtQdCJ
-				    WpdWpR0uQsuJe7+vh3NWn59/gTc5MDlX8dS9p0ovStmNcyLhxVgmqS8ZKhsblVeu
-				    IpQ0JgavABqibJolc3BKrVtVV1igKiX/N7Pi8RtY1K18toaMDhdEfhBRzO/XB0+P
-				    AQhYlRjNacGcslkhXqNjK5Va4tuOAPy2n1Q8UUrHbUd0g+xJ9Bm0G0LZXyvCWyKH
-				    kuNEHFQiLuCY6Iv0myq6iX6tjuHehZlFSh80b5BVV9tNLwNR5Eqz1klxMhoghJOA
-				  </data>
-				  <amp xmlns='http://jabber.org/protocol/amp'>
-				    <rule condition='deliver' value='stored' action='error'/>
-				    <rule condition='match-resource' value='exact' action='error'/>
-				  </amp>
-			</message>
-			*/
-			message = lm_message_new ( NULL, LM_MESSAGE_TYPE_MESSAGE );
-			lm_message_node_set_attribute ( message->node, "to", "donna.prima@gmail.com" );
-		    q_node = lm_message_node_add_child ( message->node, "data", 
-		    		"qANQR1DBwU4DX7jmYZnncmUQB/9KuKBddzQH+tZ1ZywKK0yHKnq57kWq+RFtQdCJ \
-				    WpdWpR0uQsuJe7+vh3NWn59/gTc5MDlX8dS9p0ovStmNcyLhxVgmqS8ZKhsblVeu \
-				    IpQ0JgavABqibJolc3BKrVtVV1igKiX/N7Pi8RtY1K18toaMDhdEfhBRzO/XB0+P \
-				    AQhYlRjNacGcslkhXqNjK5Va4tuOAPy2n1Q8UUrHbUd0g+xJ9Bm0G0LZXyvCWyKH \
-				    kuNEHFQiLuCY6Iv0myq6iX6tjuHehZlFSh80b5BVV9tNLwNR5Eqz1klxMhoghJOA" );
-		    lm_message_node_set_attribute ( q_node, "xmlns", "http://jabber.org/protocol/ibb" );
-		    lm_message_node_set_attribute ( q_node, "sid", "mySID" );
-		    lm_message_node_set_attribute ( q_node, "seq", "0" );
-		    
-		    q_node = lm_message_node_add_child ( message->node, "amp", NULL );
-		    lm_message_node_set_attribute ( q_node, "xmlns", "http://jabber.org/protocol/amp" );
-		    item_node1 = lm_message_node_add_child ( q_node, "rule", NULL );
-		    lm_message_node_set_attribute ( item_node1, "condition", "deliver" );
-		    lm_message_node_set_attribute ( item_node1, "value", "stored" );
-		    lm_message_node_set_attribute ( item_node1, "action", "error" );
-		    item_node2 = lm_message_node_add_child ( q_node, "rule", NULL );
-		    lm_message_node_set_attribute ( item_node1, "condition", "match-resource" );
-		    lm_message_node_set_attribute ( item_node1, "value", "exact" );
-		    lm_message_node_set_attribute ( item_node1, "action", "error" );
-		    
-		    stream_data->message = message;
-		    
-		    // Send message to the server
-			handler = lm_message_handler_new ( handle_send_image_cb, stream_data, NULL );	
-			
-			stream_data->handler = handler;
-			if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-			    {
-				//lm_connection_close ( connection, NULL );
-				//lm_connection_unref ( connection );
-				lm_message_unref ( stream_data->message );
-				lm_message_handler_unref(stream_data->handler);
-				if ( stream_data->main_loop)
-					{
-					g_main_loop_quit ( stream_data->main_loop );
-					}
-				return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-			    }
-			/****************************************************/
-			break;
-    		}        		        		
-    		
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		{
-    		const char* reply_string;
-    		reply_string = lm_message_node_get_attribute(reply->node,"id");  
-			q_node = lm_message_node_get_child (reply->node, "error");
-			if (q_node) 
-		    	{
-		   		const char* error_code;
-		   		error_code = lm_message_node_get_attribute(q_node,"code");  
-		   		item_node = lm_message_node_get_child (q_node, "feature-not-implemented");
-		    	}
-		    if ( stream_data->main_loop)
-				{
-				g_main_loop_quit ( stream_data->main_loop );
-				}
-			break;
-    		}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    	
-  
-		
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }  
-   
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_send_image_bytestream_msgL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_send_image_bytestream_msgL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node, *item_node1, *item_node2 = NULL;
-	LmMessageHandler *handler = NULL;
-	SendStreamData* stream_data = NULL;
-	iLog->Log ( _L ( "In lm_connection_send_imageL" ) );
-	
-	stream_data = g_new0 ( SendStreamData, 1 );
-	if (! stream_data )
-		{
-		return KErrGeneral;
-		}			
-	if ( read_data ( stream_data->connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );		
-		free_data ( stream_data->connect_data );		
-		g_free ( stream_data );
-		return KErrGeneral;
-		}
-	stream_data->main_loop    = g_main_loop_new ( NULL, FALSE );	
-	stream_data->rCode        = RC_ERROR;
-	
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( stream_data->connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( stream_data->connect_data );
-		g_free(stream_data);
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, stream_data->connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, stream_data->connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	stream_data->main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           stream_data->main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( stream_data->main_loop );
-		free_data ( stream_data->connect_data );
-		g_free(stream_data);		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( stream_data->main_loop );
-	g_main_loop_unref ( stream_data->main_loop );    
-
-	
-	stream_data->main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( stream_data->connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     stream_data->connect_data->password,
-                                     stream_data->connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     stream_data->main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( stream_data->connect_data );
-		g_main_loop_unref ( stream_data->main_loop );
-		g_free(stream_data);
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( stream_data->main_loop );
-	g_main_loop_unref ( stream_data->main_loop );
-	g_free ( username );
-	
-	/**************************************/
-	//Opening a byte stream
-	/*
-	<iq type='set' from='romeo@montague.net/orchard'
-	    			to='juliet@capulet.com/balcony'	id='inband_1'>
-	  	<open sid='mySID' block-size='4096' xmlns='http://jabber.org/protocol/ibb'/>
-	</iq>
-	*/
-	stream_data->main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-	lm_message_node_set_attribute ( message->node, "to", "donna.prima@gmail.com" );
-    q_node = lm_message_node_add_child ( message->node, "open", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "http://jabber.org/protocol/ibb" );
-    lm_message_node_set_attribute ( q_node, "sid", "mySID" );
-    lm_message_node_set_attribute ( q_node, "block-size", "4096" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_send_image_stream_msg_open_cb, stream_data, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( stream_data->connect_data );
-		g_main_loop_unref ( stream_data->main_loop );
-		g_free(stream_data);
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( stream_data->main_loop );
-	g_main_loop_unref ( stream_data->main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	/***************************************/
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_send_imageL passed" ) );
-	
-	return KErrNone;
-}
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_send_image_iq_cb
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_send_image_iq_cb ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    SendStreamData* stream_data = ( SendStreamData * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *q_node,*item_node;
-	type = lm_message_get_sub_type (reply); 
-        	
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-			{
-			const char* reply_string;
-			reply_string = lm_message_node_get_attribute(reply->node,"id");  
-			break;
-			}
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		{
-    		/*<iq from='juliet@capulet.com/balcony' to='romeo@montague.net/orchard' id='ibb1' type='error'>
-				  ...
-				  <error code='504' type='cancel'>
-				    <remote-server-timeout xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-				  </error>
-			  </iq>
-			*/
-
-    		const char* reply_string;
-    		reply_string = lm_message_node_get_attribute(reply->node,"id");  
-			q_node = lm_message_node_get_child (reply->node, "error");
-			if (q_node) 
-		    	{
-		   		const char* error_code;
-		   		error_code = lm_message_node_get_attribute(q_node,"code");  
-		   		item_node = lm_message_node_get_child (q_node, "feature-not-implemented");
-		   		if(item_node==NULL)
-		   			{
-		   			item_node = lm_message_node_get_child (q_node, "remote-server-timeout");
-		   			}
-		    	}
-		    	
-			break;
-    		}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    	
-    
-	if ( stream_data->main_loop )
-		{
-		g_main_loop_quit ( stream_data->main_loop );
-		}	
-	lm_message_unref(stream_data->message);
-	lm_message_handler_unref(stream_data->handler);
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    } 
-    
-//--------------------------------------------------------------------------------
-// function_name    : handle_send_image_stream_iq_open_cb
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_send_image_stream_iq_open_cb ( LmMessageHandler* /*handler*/,
-                  LmConnection*     connection,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    SendStreamData *stream_data = ( SendStreamData * )user_data;	
-    LmMessageSubType  type;
-	LmMessageNode *q_node = NULL;
-	LmMessageNode* item_node = NULL;
-	LmMessage * message = NULL;
-	LmMessageHandler* handler = NULL;
-	type = lm_message_get_sub_type (reply); 
-    /*
-    //success response
-    <iq type='result' from='juliet@capulet.com/balcony' to='romeo@montague.net/orchard'
-    	id='inband_1'/>
-    	
-    //error response
-    <iq type='error' from='juliet@capulet.com/balcony' to='romeo@montague.net/orchard'
-    	id='inband_1'/>
-  			<error code='501' type='cancel'>
-    			<feature-not-implemented xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-  			</error>
-	</iq>
-	*/ 	
- 
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:
-    		{
-    		const char* reply_string;
-    		reply_string = lm_message_node_get_attribute(q_node,"id");  
-    			
-			/****************************************************/
-			// send bytes in message
-			/*
-			<iq from='romeo@montague.net/orchard' to='juliet@capulet.com/balcony' type='set' id='ibb1'>
-			  <data xmlns='http://jabber.org/protocol/ibb' sid='mySID' seq='0'>
-			    qANQR1DBwU4DX7jmYZnncmUQB/9KuKBddzQH+tZ1ZywKK0yHKnq57kWq+RFtQdCJ
-			    WpdWpR0uQsuJe7+vh3NWn59/gTc5MDlX8dS9p0ovStmNcyLhxVgmqS8ZKhsblVeu
-			    IpQ0JgavABqibJolc3BKrVtVV1igKiX/N7Pi8RtY1K18toaMDhdEfhBRzO/XB0+P
-			    AQhYlRjNacGcslkhXqNjK5Va4tuOAPy2n1Q8UUrHbUd0g+xJ9Bm0G0LZXyvCWyKH
-			    kuNEHFQiLuCY6Iv0myq6iX6tjuHehZlFSh80b5BVV9tNLwNR5Eqz1klxMhoghJOA
-			  </data>
-			</iq>
-			*/
-			message = lm_message_new_with_sub_type( NULL, LM_MESSAGE_TYPE_IQ, 
-													LM_MESSAGE_SUB_TYPE_SET);
-			lm_message_node_set_attribute ( message->node, "to", "donna.prima@gmail.com" );
-		    q_node = lm_message_node_add_child ( message->node, "data", 
-		    		"qANQR1DBwU4DX7jmYZnncmUQB/9KuKBddzQH+tZ1ZywKK0yHKnq57kWq+RFtQdCJ \
-				    WpdWpR0uQsuJe7+vh3NWn59/gTc5MDlX8dS9p0ovStmNcyLhxVgmqS8ZKhsblVeu \
-				    IpQ0JgavABqibJolc3BKrVtVV1igKiX/N7Pi8RtY1K18toaMDhdEfhBRzO/XB0+P \
-				    AQhYlRjNacGcslkhXqNjK5Va4tuOAPy2n1Q8UUrHbUd0g+xJ9Bm0G0LZXyvCWyKH \
-				    kuNEHFQiLuCY6Iv0myq6iX6tjuHehZlFSh80b5BVV9tNLwNR5Eqz1klxMhoghJOA" );
-		    lm_message_node_set_attribute ( q_node, "xmlns", "http://jabber.org/protocol/ibb" );
-		    lm_message_node_set_attribute ( q_node, "sid", "mySID" );
-		    lm_message_node_set_attribute ( q_node, "seq", "0" );
-		    stream_data->message = message;
-		   
-		    // Send message to the server
-			handler = lm_message_handler_new ( handle_send_image_iq_cb, stream_data, NULL );	
-			stream_data->handler = handler;
-			if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-			    {
-				lm_message_unref ( stream_data->message );
-				lm_message_handler_unref(stream_data->handler);
-				if ( stream_data->main_loop)
-				{
-				g_main_loop_quit ( stream_data->main_loop );
-				}				
-				return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-			    }
-			/****************************************************/
-			break;
-    		}        		        		
-    		
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		{
-    		const char* reply_string;
-    		reply_string = lm_message_node_get_attribute(reply->node,"id");  
-			q_node = lm_message_node_get_child (reply->node, "error");
-			if (q_node) 
-		    	{
-		   		const char* error_code;
-		   		error_code = lm_message_node_get_attribute(q_node,"code");  
-		   		item_node = lm_message_node_get_child (q_node, "feature-not-implemented");
-		    	}
-		    if ( stream_data->main_loop)
-				{
-				g_main_loop_quit ( stream_data->main_loop );
-				}
-			break;
-    		}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }        
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_send_image_bytestream_iqL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_send_image_bytestream_iqL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node= NULL;
-	LmMessageHandler *handler = NULL;
-	SendStreamData* stream_data = NULL;
-	iLog->Log ( _L ( "In lm_connection_send_imageL" ) );
-	
-	stream_data = g_new0 ( SendStreamData, 1 );
-	if (! stream_data )
-		{
-		return KErrGeneral;
-		}			
-	if ( read_data ( stream_data->connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );		
-		free_data ( stream_data->connect_data );		
-		g_free ( stream_data );
-		return KErrGeneral;
-		}
-	stream_data->main_loop    = g_main_loop_new ( NULL, FALSE );	
-	stream_data->rCode        = RC_ERROR;
-	
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( stream_data->connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( stream_data->connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, stream_data->connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, stream_data->connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	stream_data->main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           stream_data->main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( stream_data->main_loop );
-		free_data ( stream_data->connect_data );
-		g_free(stream_data);		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( stream_data->main_loop );
-	g_main_loop_unref ( stream_data->main_loop );   
-	
-	stream_data->main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( stream_data->connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     stream_data->connect_data->password,
-                                     stream_data->connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     stream_data->main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( stream_data->connect_data );
-		g_main_loop_unref ( stream_data->main_loop );
-		g_free(stream_data);
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( stream_data->main_loop );
-	g_main_loop_unref ( stream_data->main_loop );
-	g_free ( username );
-	/**************************************/
-	//Opening a byte stream
-	/*
-	<iq type='set' from='romeo@montague.net/orchard'
-	    			to='juliet@capulet.com/balcony'	id='inband_1'>
-	  	<open sid='mySID' block-size='4096' xmlns='http://jabber.org/protocol/ibb'/>
-	</iq>
-	*/
-	stream_data->main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-	lm_message_node_set_attribute ( message->node, "to", "donna.prima@gmail.com" );
-    q_node = lm_message_node_add_child ( message->node, "open", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "http://jabber.org/protocol/ibb" );
-    lm_message_node_set_attribute ( q_node, "sid", "mySID" );
-    lm_message_node_set_attribute ( q_node, "block-size", "4096" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_send_image_stream_iq_open_cb, stream_data, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( stream_data->connect_data );
-		g_free(stream_data);
-		g_main_loop_unref ( stream_data->main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( stream_data->main_loop );
-	g_main_loop_unref ( stream_data->main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	/****************************************************/
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	free_data ( stream_data->connect_data );
-	g_free(stream_data);
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_send_imageL passed" ) );
-	
-	return KErrNone;
-}
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_send_multiple_connL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_send_multiple_connL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection1   = NULL;
-	LmConnection *connection2   = NULL;
-	ConnectData  *connect_data1 = NULL;
-	LmMessage    *message;
-	iLog->Log ( _L ( "In lm_connection_send_multiple_connL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data1, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data1 );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection1 = lm_connection_new ( connect_data1->server );	
-	connection2 = lm_connection_new ( connect_data1->server );
-	
-	
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection1 || !connection2 )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data1 );
-		//free_data ( connect_data2 );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port and Set the JID
-	lm_connection_set_port ( connection1, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection1, connect_data1->username );
-	
-	// Set the gtalk's SSL port and Set the JID
-	lm_connection_set_port ( connection2, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection2, connect_data1->username );
-
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection1, connect_data1->proxy_data );
-	SetProxy ( connection2, connect_data1->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection1 );
-	SSLInit ( connection2 );
-	/********************************************************/
-	//CONNECTION1
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	if ( !lm_connection_open ( connection1, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection1 );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data1 );		
-		return KErrGeneral;
-	    }
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-    main_loop = g_main_loop_new ( NULL, FALSE );
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data1->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection1,
-                                     username,
-                                     connect_data1->password,
-                                     connect_data1->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection1, NULL );
-		lm_connection_unref ( connection1 );
-		free_data ( connect_data1 );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	/****************************************************/
-	//CONNECTION1 MSG
-	// Construct a message
-	message = lm_message_new ( connect_data1->msg_data->recipient,               
-	                           LM_MESSAGE_TYPE_MESSAGE );
-	lm_message_node_add_child ( message->node, "body", 
-	                            connect_data1->msg_data->message);
-	// Send message to the server
-	if ( !lm_connection_send ( connection1, message, NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_send failed" ) );
-		lm_connection_close ( connection1, NULL );
-		lm_connection_unref ( connection1 );
-		lm_connection_unref ( connection2 );
-		lm_message_unref ( message );
-		free_data ( connect_data1 );		
-		return KErrGeneral;
-	    }	
-	// Remove a reference on message
-	lm_message_unref ( message );	
-	
-	/***********************************************/
-	//CONNECTION2
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	if ( !lm_connection_open ( connection2, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_close ( connection1, NULL );
-		lm_connection_unref ( connection1 );
-		lm_connection_unref ( connection2 );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data1 );		
-		return KErrGeneral;
-	    }
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-    main_loop = g_main_loop_new ( NULL, FALSE );
-	// Get the username from the JID
-	username = get_user_name ( connect_data1->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection2,
-                                     username,
-                                     connect_data1->password,
-                                     /*connect_data2->resource*/
-                                     "RSC1234",
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection1, NULL );
-		lm_connection_unref ( connection1 );
-		lm_connection_close ( connection2, NULL );
-		lm_connection_unref ( connection2 );
-		free_data ( connect_data1 );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	/***********************************************/
-	// CONNECTION2 MSG
-	// Construct a message
-	message = lm_message_new ( connect_data1->msg_data->recipient,               
-	                           LM_MESSAGE_TYPE_MESSAGE );
-	lm_message_node_add_child ( message->node, "body", 
-	                            connect_data1->msg_data->message);
-	// Send message to the server
-	if ( !lm_connection_send ( connection2, message, NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_send failed" ) );
-		lm_connection_close ( connection2, NULL );
-		lm_connection_unref ( connection2 );
-		lm_message_unref ( message );
-		free_data ( connect_data1);		
-		return KErrGeneral;
-	    }	
-	// Remove a reference on message
-	lm_message_unref ( message );
-	
-	/**********************************************/
-	// Close the connection
-	lm_connection_close ( connection1, NULL );
-	// Remove a reference on connection
-	lm_connection_unref ( connection1 );
-	free_data ( connect_data1 );
-	
-	// Close the connection
-	lm_connection_close ( connection2, NULL );
-	// Remove a reference on connection
-	lm_connection_unref ( connection2 );
-	
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_send_multiple_connL passed" ) );
-	
-	return KErrNone;
-}
-//--------------------------------------------------------------------------------
-// function_name    : handle_block_contact
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_block_contact ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *q_node,*item_node;
-	type = lm_message_get_sub_type (reply); 
-    /*
-    <iq type='result' id='edit1' to='romeo@example.net/orchard'/>
-    */ 	
-    /*
-    <iq to='romeo@example.net/orchard' type='set' id='push1'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <list name='public'/>
-		  </query>
-	</iq>
-
-	<iq to='romeo@example.net/home' type='set' id='push2'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <list name='public'/>
-		  </query>
-	</iq>
-	*/
-       	
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-    		break;
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		//return NULL;
-    		break;
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    
-   //	q_node = lm_message_node_get_child (reply->node, "query");
-
-	if (!q_node) 
-    	{
-   		//return NULL;
-    	}
-    	
-    //item_node = lm_message_node_get_child (q_node, "id");
-	const char* reply_string;
-    reply_string = lm_message_node_get_attribute(reply->node,"id");  
-	
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }  
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_block_contactL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_block_contactL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node = NULL;
-	LmMessageNode* item_node1 = NULL;
-	LmMessageNode* item_node2 = NULL;
-	LmMessageNode* item_node3 = NULL;
-	
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_block_contactL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	/**********************************/	
-  	/*<iq>
-  		<query xmlns='jabber:iq:privacy'>
-    		<list name='foo'>
-			    <item
-			          type='[jid|group|subscription]'
-			          value='bar'
-			          action='[allow|deny]'
-			          order='unsignedInt'>
-			        [<message/>]
-			        [<presence-in/>]
-			        [<presence-out/>]
-			        [<iq/>]
-      			</item>
-    		</list>
-  		</query>
-	</iq>*/
-
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "public" );
-    item_node2 = lm_message_node_add_child ( item_node1, "item", NULL );
-    lm_message_node_set_attribute ( item_node2, "type", "jid" );
-    lm_message_node_set_attribute ( item_node2, "value", "rakesh_harsh@chat.gizmoproject.com" );
-    lm_message_node_set_attribute ( item_node2, "action", "deny" );
-    lm_message_node_set_attribute ( item_node2, "order", "1" );
-    item_node3 = lm_message_node_add_child ( item_node2, "presence-in", NULL );
-    item_node3 = lm_message_node_add_child ( item_node2, "message", NULL );
-    
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_block_contact, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-
-	/**********************************/	
-   // Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='get' id='getlist2'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <list name='public'/>
-		  </query>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_GET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "public" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_get_privacy_lists, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_get_one_privacy_listL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	/************************************/
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	
-	
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_block_contactL passed" ) );
-	
-	return KErrNone;
-}
-//--------------------------------------------------------------------------------
-// function_name    : handle_unblock_contact
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_unblock_contact ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *q_node,*item_node;
-	type = lm_message_get_sub_type (reply); 
-    /*
-    <iq type='result' id='edit1' to='romeo@example.net/orchard'/>
-    */ 	
-    /*
-    <iq to='romeo@example.net/orchard' type='set' id='push1'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <list name='public'/>
-		  </query>
-	</iq>
-
-	<iq to='romeo@example.net/home' type='set' id='push2'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <list name='public'/>
-		  </query>
-	</iq>
-	*/
-       	
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-    		break;
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		//return NULL;
-    		break;
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    
-   //	q_node = lm_message_node_get_child (reply->node, "query");
-
-	if (!q_node) 
-    	{
-   		//return NULL;
-    	}
-    	
-    //item_node = lm_message_node_get_child (q_node, "id");
-	const char* reply_string;
-    reply_string = lm_message_node_get_attribute(reply->node,"id");  
-	
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    } 
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_unblock_contactL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_unblock_contactL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node = NULL;
-	LmMessageNode* item_node1 = NULL;
-	LmMessageNode* item_node2 = NULL;
-	LmMessageNode* item_node3 = NULL;	
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_unblock_contactL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop ); 
-	g_free ( username );
-	
-	/**********************************/	
-    // Construct a message with type=LM_MESSAGE_TYPE_IQ
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	/*<iq>
-  		<query xmlns='jabber:iq:privacy'>
-    		<list name='foo'>
-			    <item
-			          type='[jid|group|subscription]'
-			          value='bar'
-			          action='[allow|deny]'
-			          order='unsignedInt'>
-			        [<message/>]
-			        [<presence-in/>]
-			        [<presence-out/>]
-			        [<iq/>]
-      			</item>
-    		</list>
-  		</query>
-	</iq>*/
-
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "public" );
-    item_node2 = lm_message_node_add_child ( item_node1, "item", NULL );
-    lm_message_node_set_attribute ( item_node2, "type", "jid" );
-    lm_message_node_set_attribute ( item_node2, "value", "rakesh_harsh@chat.gizmoproject.com" );
-    lm_message_node_set_attribute ( item_node2, "action", "allow" );
-    lm_message_node_set_attribute ( item_node2, "order", "1" );
-    item_node3 = lm_message_node_add_child ( item_node2, "presence-in", NULL );
-    item_node3 = lm_message_node_add_child ( item_node2, "message", NULL );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_unblock_contact, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_connection_unblock_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	/**********************************/	
-   // Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='get' id='getlist2'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <list name='public'/>
-		  </query>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_GET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "public" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_get_privacy_lists, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_get_one_privacy_listL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	/************************************/
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_unblock_contactL passed" ) );
-	
-	return KErrNone;
-}
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_set_active_list
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_set_active_list ( LmMessageHandler*/* handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *error_node = NULL;
-	LmMessageNode *item_node = NULL;
-	type = lm_message_get_sub_type (reply); 
-    /*
-    <iq type='result' id='edit1' to='romeo@example.net/orchard'/>
-    */ 	
-       	
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-    		{
-    		const char* id;
-    		id = lm_message_node_get_attribute(reply->node,"id");  
-    		break;
-    		}
-    	case LM_MESSAGE_SUB_TYPE_ERROR:
-    		{
-    		/*<iq to='romeo@example.net/orchard' type='error' id='active2'>
-			  <query xmlns='jabber:iq:privacy'>
-			    <active name='The Empty Set'/>
-			  </query>
-			  <error code='404' type='cancel'>
-			    <item-not-found
-			        xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-			  </error>
-			</iq>*/
-    		error_node = lm_message_node_get_child(reply->node,"error");
-    		const char* error_code;
-    		error_code = lm_message_node_get_attribute(error_node,"code");  
-			break;
-    		}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    } 
-    
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_active_listL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_set_active_listL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node, *item_node1, *item_node2 = NULL;
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_set_active_listL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='set' id='active1'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <active name='special'/>
-		  </query>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "active", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "public" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_set_active_list, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_set_active_listL passed" ) );	
-	return KErrNone;
-}
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_unexist_active_listL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_set_unexist_active_listL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node, *item_node1, *item_node2 = NULL;
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_set_unexist_active_listL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='set' id='active1'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <active name='special'/>
-		  </query>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "active", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "publicunexist" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_set_active_list, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_set_unexist_active_listL passed" ) );	
-	return KErrNone;
-}
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_decline_active_listL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_set_decline_active_listL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node, *item_node1, *item_node2 = NULL;
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_set_decline_active_listL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop);
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='set' id='active3'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <active/>
-		  </query>
-	</iq>
-
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "active", NULL );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_set_active_list, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_connection_set_decline_active_listL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_set_decline_active_listL passed" ) );	
-	return KErrNone;
-}
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_get_one_privacy_listL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_get_one_privacy_listL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node, *item_node1 = NULL;
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_get_one_privacy_listL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='get' id='getlist2'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <list name='public'/>
-		  </query>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_GET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "public" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_get_privacy_lists, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_get_one_privacy_listL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_get_one_privacy_listL passed" ) );	
-	return KErrNone;
-}
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_one_privacy_listL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_set_one_privacy_listL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node, *item_node1, *item_node2 = NULL;
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_set_one_privacy_listL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='set' id='edit1'>
-		<query xmlns='jabber:iq:privacy'>
-		    <list name='public'>
-		      <item type='jid'
-		            value='tybalt@example.com'
-		            action='deny'
-		            order='3'/>
-		      <item type='jid'
-		            value='paris@example.org'
-		            action='deny'
-		            order='5'/>
-		      <item action='allow' order='68'/>
-		    </list>		    
-  		</query>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "public" );
-    item_node2 = lm_message_node_add_child ( item_node1, "item", NULL );
-    lm_message_node_set_attribute ( item_node2, "type", "jid" );
-    lm_message_node_set_attribute ( item_node2, "value", "rakesh_harsh@chat.gizmoproject.com" );
-    lm_message_node_set_attribute ( item_node2, "action", "deny" );
-    lm_message_node_set_attribute ( item_node2, "order", "3" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_set_privacy_lists, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_connection_set_one_privacy_listL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_set_one_privacy_listL passed" ) );
-	
-	return KErrNone;
-}
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_create_one_privacy_listL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_create_one_privacy_listL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node, *item_node1, *item_node2 = NULL;
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_create_one_privacy_listL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );	    
-	g_free ( username );
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='set' id='edit1'>
-		<query xmlns='jabber:iq:privacy'>
-		    <list name='public'>
-		      <item type='jid'
-		            value='tybalt@example.com'
-		            action='deny'
-		            order='3'/>
-		      <item type='jid'
-		            value='paris@example.org'
-		            action='deny'
-		            order='5'/>
-		      <item action='allow' order='68'/>
-		    </list>		    
-  		</query>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "publicnewlist" );
-    item_node2 = lm_message_node_add_child ( item_node1, "item", NULL );
-    lm_message_node_set_attribute ( item_node2, "type", "jid" );
-    lm_message_node_set_attribute ( item_node2, "value", "rakesh_harsh@chat.gizmoproject.com" );
-    lm_message_node_set_attribute ( item_node2, "action", "allow" );
-    lm_message_node_set_attribute ( item_node2, "order", "10" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_set_privacy_lists, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_connection_create_one_privacy_listL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	g_main_loop_unref ( main_loop );
-	/*****************************/
-	//Now retrieve all the privacy lists and see if it is created
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_GET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_get_privacy_lists, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	g_main_loop_unref ( main_loop );
-	/*******************************/
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_create_one_privacy_listL passed" ) );
-	
-	return KErrNone;
-}
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_get_many_privacy_lists
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_get_many_privacy_lists ( LmMessageHandler*/* handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *error_node = NULL;
-	LmMessageNode *item_node = NULL;
-	type = lm_message_get_sub_type (reply); 
-    
-    /*<iq to='romeo@example.net/orchard' type='error/result' id='getlist6'>   	*/
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-    		{
-    		const char* id;
-    		id = lm_message_node_get_attribute(reply->node,"id");  
-    		break;
-    		}
-    	case LM_MESSAGE_SUB_TYPE_ERROR:
-    		{
-    		/*
-		    <iq to='romeo@example.net/orchard' type='error' id='getlist6'>
-			    <error type='modify'>
-			    	<bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-			    </error>
-		    </iq>
-			*/ 	
-    		error_node = lm_message_node_get_child(reply->node,"error");
-    		const char* error_code;
-    		error_code = lm_message_node_get_attribute(error_node,"code");  
-			const char* error_type;
-    		error_type = lm_message_node_get_attribute(error_node,"type");  
-			break;
-    		}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    } 
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_get_many_privacy_list_from_listnameL
-// Description  : Asynchronous call to get more than one privacy list details by 
-//				  specifying the name. The server should return error, since we 
-//  			  can only retrieve info of one list at a time
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_get_many_privacy_list_from_listnameL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node, *item_node1, *item_node2, *item_node3 = NULL;
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_get_many_privacy_list_from_listname" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='get' id='getlist2'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <list name='public'/>
-		    <list name='active'/>
-		    <list name='default'/>		    
-		  </query>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_GET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "public" );
-    item_node2 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node2, "name", "private" );
-    item_node3 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node3, "name", "default" );
-    
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_get_many_privacy_lists, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_get_many_privacy_list_from_listname failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_get_many_privacy_list_from_listname passed" ) );	
-	return KErrNone;
-}
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_get_one_unexist_privacy_listL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_get_one_unexist_privacy_listL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node, *item_node = NULL;
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_get_one_unexist_privacy_list" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='get' id='getlist2'>
-		  <query xmlns='jabber:iq:privacy'>
-		    <list name='publicunexist'/>
-		  </query>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_GET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node, "name", "publicunexist" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_get_privacy_lists, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_get_one_unexist_privacy_list failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_get_one_unexist_privacy_list passed" ) );	
-	return KErrNone;
-}
-
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_connection_set_one_unexist_privacy_listL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_connection_set_one_unexist_privacy_listL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode* q_node, *item_node1, *item_node2 = NULL;
-	LmMessageHandler *handler = NULL;
-	
-	iLog->Log ( _L ( "In lm_connection_set_one_unexist_privacy_list" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-// Construct a message with type=LM_MESSAGE_TYPE_IQ
-	/*
-	<iq from='romeo@example.net/orchard' type='set' id='edit1'>
-		<query xmlns='jabber:iq:privacy'>
-		    <list name='publicunexist'>
-		      <item type='jid'
-		            value='tybalt@example.com'
-		            action='deny'
-		            order='3'/>
-		      <item type='jid'
-		            value='paris@example.org'
-		            action='deny'
-		            order='5'/>
-		      <item action='allow' order='68'/>
-		    </list>
-  		</query>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_SET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "jabber:iq:privacy" );
-    item_node1 = lm_message_node_add_child ( q_node, "list", NULL );
-    lm_message_node_set_attribute ( item_node1, "name", "publicunexist" );
-    item_node2 = lm_message_node_add_child ( item_node1, "item", NULL );
-    lm_message_node_set_attribute ( item_node2, "type", "jid" );
-    lm_message_node_set_attribute ( item_node2, "value", "rakesh_harsh@chat.gizmoproject.com" );
-    lm_message_node_set_attribute ( item_node2, "action", "deny" );
-    lm_message_node_set_attribute ( item_node2, "order", "3" );
-    
-    // Send message to the server
-	handler = lm_message_handler_new ( handle_set_privacy_lists, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-
-   
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_set_one_unexist_privacy_list passed" ) );	
-	return KErrNone;
-}
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_service_discovery
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_service_discovery ( LmMessageHandler*/* handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *q_node = NULL;
-	LmMessageNode *item_node = NULL;
-	type = lm_message_get_sub_type (reply); 
-    /*
-    <iq from='capulet.com' to='juliet@capulet.com/chamber' 
-		    type='result' id='disco1'>
-		<query xmlns='http://jabber.org/protocol/disco#info'>
-		    ...
-		    <feature var='urn:xmpp:blocking'/>
-		    ...
-  		</query>
-	</iq>
-    */ 	
-       	
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-    		{
-    		const char* reply_string;
-    		reply_string = lm_message_node_get_attribute(reply->node,"id");  
-			break;
-    		}
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		{
-    		/*
-		    <iq to='romeo@example.net/orchard' type='error' id='getlist6'>
-			    <error type='modify'>
-			    	<bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-			    </error>
-		    </iq>
-			*/ 	
-    		if (reply->node) 
-		    	{
-		    	LmMessageNode* error_node = NULL;
-		    	error_node = lm_message_node_get_child(reply->node,"error");
-	    		const char* error_code;
-	    		error_code = lm_message_node_get_attribute(error_node,"code");  
-				const char* error_type;
-	    		error_type = lm_message_node_get_attribute(error_node,"type");  
-				item_node = lm_message_node_get_child (reply->node, "feature-not-implemented");
-		    	}
-			break;
-			}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    	
-    
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }   
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_service_discoveryL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_service_discoveryL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	LmMessageNode * q_node = NULL;
-	LmMessageHandler *handler = NULL;
-	iLog->Log ( _L ( "In lm_service_discoveryL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );	    
-	g_free ( username );
-	
-	// Construct a message
-	/*
-	<iq from='juliet@capulet.com/chamber' to='capulet.com' type='get' id='disco1'>
-  		<query xmlns='http://jabber.org/protocol/disco#info'/>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type (connect_data->server,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_GET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "http://jabber.org/protocol/disco#info" );
-    
-	// Send message to the server
-	handler = lm_message_handler_new ( handle_service_discovery, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_service_discoveryL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	
-	
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_service_discoveryL passed" ) );
-	
-	return KErrNone;
-}
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_service_discovery_connected_resourceL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_service_discovery_connected_resourceL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	LmMessageNode * q_node = NULL;
-	LmMessageHandler *handler = NULL;
-	iLog->Log ( _L ( "In lm_service_discovery_connected_resourceL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	
-	g_main_loop_run ( main_loop );
-
-	g_main_loop_unref ( main_loop );    
-
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );	    
-	g_free ( username );
-	
-	// Construct a message
-	/*
-	<iq from='juliet@capulet.com/chamber' to='capulet.com' type='get' id='disco1'>
-  		<query xmlns='http://jabber.org/protocol/disco#info'/>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type ("testlmnokia@chat.gizmoproject.com/mytest12345rt17",
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_GET );
-    q_node = lm_message_node_add_child ( message->node, "query", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "http://jabber.org/protocol/disco#info" );
-    
-	// Send message to the server
-	handler = lm_message_handler_new ( handle_service_discovery, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_add_contactL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	
-	
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_service_discovery_connected_resourceL passed" ) );
-	
-	return KErrNone;
-}
-
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_simple_communications_blocking
-// description      : callback function to handle messages
-//					  XEP-0191: Simple Communications Blocking
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_simple_communications_blocking ( LmMessageHandler*/* handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *q_node = NULL;
-	LmMessageNode *item_node = NULL;
-	type = lm_message_get_sub_type (reply); 
-    /*
-    <iq from='capulet.com' to='juliet@capulet.com/chamber' 
-		    type='result' id='disco1'>
-		<query xmlns='http://jabber.org/protocol/disco#info'>
-		    ...
-		    <feature var='urn:xmpp:blocking'/>
-		    ...
-  		</query>
-	</iq>
-    */ 	
-       	
-	switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-    		{
-    		const char* reply_string;
-    		reply_string = lm_message_node_get_attribute(reply->node,"id");  
-			break;
-    		}
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		{
-    		/*
-		    <iq to='romeo@example.net/orchard' type='error' id='getlist6'>
-			    <error type='modify'>
-			    	<bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-			    </error>
-		    </iq>
-			*/ 	
-    		if (reply->node) 
-		    	{
-		    	LmMessageNode* error_node = NULL;
-		    	error_node = lm_message_node_get_child(reply->node,"error");
-	    		const char* error_code;
-	    		error_code = lm_message_node_get_attribute(error_node,"code");  
-				const char* error_type;
-	    		error_type = lm_message_node_get_attribute(error_node,"type");  
-				item_node = lm_message_node_get_child (error_node, "feature-not-implemented");
-		    	}
-			break;
-			}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    	
-    
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }   
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_simple_communications_blockingL
-// Description  : Asynchronous call to send a message
-//				  XEP-0191: Simple Communications Blocking
-//				  Not implemented by Gizmo
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_simple_communications_blockingL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	LmMessageNode * q_node = NULL;
-	LmMessageHandler *handler = NULL;
-	iLog->Log ( _L ( "In lm_simple_communications_blockingL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );	    
-	g_free ( username );
-	
-	// Construct a message
-	/*
-	<iq type='get' id='blocklist1'>
-  		<blocklist xmlns='urn:xmpp:blocking'/>
-	</iq>
-	*/
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new_with_sub_type (NULL,
-                                         LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_GET );
-    q_node = lm_message_node_add_child ( message->node, "blocklist", NULL );
-    lm_message_node_set_attribute ( q_node, "xmlns", "urn:xmpp:blocking" );
-    
-	// Send message to the server
-	handler = lm_message_handler_new ( handle_simple_communications_blocking, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_send_with_reply in lm_simple_communications_blockingL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref ( message );    
-	lm_message_handler_unref(handler);
-	
-	
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_simple_communications_blockingL passed" ) );
-	
-	return KErrNone;
-}
-//--------------------------------------------------------------------------------
-// function_name    : handle_send_im
-// description      : callback function to handle messages
-//					  XEP-0191: Simple Communications Blocking
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_send_im ( LmMessageHandler*/* handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    GMainLoop *main_loop = ( GMainLoop * )user_data;	
-	LmMessageSubType  type;
-	LmMessageNode *item_node = NULL;
-	type = lm_message_get_sub_type (reply); 
-   
-    switch (type) 
-    	{
-    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-    		{
-    		const char* reply_string;
-    		reply_string = lm_message_node_get_attribute(reply->node,"id");  
-			break;
-    		}
-    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-    		{
-    		/* //with gizmo
-		    <message from='testlmnokia1111@chat.gizmoproject.com' 
-		    	to='prima@chat.gizmoproject.com/mytest12345rt' 
-				type='error' id='98332763125'>
-				 <body>Hello</body>
-				<error code='503' type='cancel'>
-				<service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
-				</error>
-			</message>
-			*/ 	
-    		if (reply->node) 
-		    	{
-		    	LmMessageNode* error_node = NULL;
-		    	const char* msg_error_type;
-	    		msg_error_type = lm_message_node_get_attribute(reply->node,"type");  
-				error_node = lm_message_node_get_child(reply->node,"error");
-	    		const char* error_code;
-	    		error_code = lm_message_node_get_attribute(error_node,"code");  
-				const char* error_type;
-	    		error_type = lm_message_node_get_attribute(error_node,"type");  
-				item_node = lm_message_node_get_child (error_node, "feature-not-implemented");
-				if(item_node == NULL)
-					{
-					item_node = lm_message_node_get_child (error_node, "service-unavailable");
-					}
-		    	}
-			break;
-			}
-    //	default:
-    	//	g_assert_not_reached ();
-    	//	break;
-    	} 
-    	
-    
-	if ( main_loop )
-		{
-		g_main_loop_quit ( main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    } 
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_send_im_with_replyL
-// Description  : Asynchronous call to send a message. Needs a response
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_send_im_with_replyL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message;
-	LmMessageHandler *handler = NULL;
-	iLog->Log ( _L ( "In lm_send_im_with_replyL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-	
-	//------------------------------------------------------------------------
-	//Send own presence
-//	message = lm_message_new_with_sub_type ( NULL,
-//	                                     LM_MESSAGE_TYPE_PRESENCE,
-//	                                     LM_MESSAGE_SUB_TYPE_AVAILABLE );
-	
-   // gboolean result = lm_connection_send ( connection, message, NULL );	
-   	//	lm_message_unref ( message );
-	//------------------------------------------------------------------------
-	//
-	// Register a handler to recieve msgs
-	//
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	
-	// Construct a message
-	message = lm_message_new ( connect_data->msg_data->recipient,               
-	                           LM_MESSAGE_TYPE_MESSAGE );
-	lm_message_node_add_child ( message->node, "body", 
-	                            connect_data->msg_data->message);	
-	// Send message to the server
-	if ( !lm_connection_send ( connection, message, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_send_im_with_replyL failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		lm_message_unref ( message );
-		lm_message_handler_unref(handler);
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }	
-	
-	handler = lm_message_handler_new ( 
-	                     (LmHandleMessageFunction)handle_send_im,
-	                     main_loop,
-	                     NULL );
-	
-	lm_connection_register_message_handler ( connection,
-	                                         handler,
-	                                         LM_MESSAGE_TYPE_IQ,
-	                                         LM_HANDLER_PRIORITY_FIRST );
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	
-	
-	
-	// Remove a reference on message
-	lm_message_unref ( message );
-	lm_message_handler_unref(handler);
-	// Close the connection
-	lm_connection_close ( connection, NULL );
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_send_im_with_replyL passed" ) );
-	
-	return KErrNone;
-}
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_receive_any_messageL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send and receive
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_receive_any_messageL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageHandler *handler = NULL;
-	HandleData *handle_data = NULL;
-	
-	iLog->Log ( _L ( "In lm_receive_any_message" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	g_free ( username );
-
-	//------------------------------------------------------------------------
-	//Send own presence
-	message = lm_message_new_with_sub_type ( NULL,
-	                                     LM_MESSAGE_TYPE_PRESENCE,
-	                                     LM_MESSAGE_SUB_TYPE_AVAILABLE );
-	
-    gboolean result = lm_connection_send ( connection, message, NULL );	
-   	
-	//------------------------------------------------------------------------
-	//
-	// Register a handler to recieve msgs
-	//
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	handler = lm_message_handler_new ( 
-	                     (LmHandleMessageFunction)handle_messages,
-	                     main_loop,
-	                     NULL );
-	
-	lm_connection_register_message_handler ( connection,
-	                                         handler,
-	                                         LM_MESSAGE_TYPE_MESSAGE,
-	                                         LM_HANDLER_PRIORITY_FIRST );
-	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	//------------------------------------------------------------------------
-	lm_message_unref(message);
-	lm_message_handler_unref(handler);
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );		
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_send passed" ) );
-	
-	return KErrNone;
-}
-
-//--------------------------------------------------------------------------------
-// function_name    : handle_multiple_session_messages
-// description      : callback function to handle messages
-// Returns          : LmHandlerResult
-//--------------------------------------------------------------------------------
-static LmHandlerResult
-handle_multiple_session_messages ( LmMessageHandler* /*handler*/,
-                  LmConnection*     /*connection*/,
-                  LmMessage*        reply,
-                  gpointer          user_data )
-    {
-    HandleData *handle_data = ( HandleData * )user_data;	
-	
-	if ( handle_data )
-		{
-		handle_data->Test_Success = RC_OK;
-		LmMessageSubType  type;
-		LmMessageNode *q_node = NULL;
-		LmMessageNode *item_node = NULL;
-		type = lm_message_get_sub_type (reply); 
-	       	
-		switch (type) 
-	    	{
-	    	case LM_MESSAGE_SUB_TYPE_RESULT:        		        		
-	    		{
-	    		const char* reply_string;
-	    		reply_string = lm_message_node_get_attribute(reply->node,"id");  
-				break;
-	    		}
-	    	case LM_MESSAGE_SUB_TYPE_ERROR:          	          		
-	    		{
-	    		if (q_node) 
-			    	{
-			    	LmMessageNode* error_node = NULL;
-			    	error_node = lm_message_node_get_child(reply->node,"error");
-		    		const char* error_code;
-		    		error_code = lm_message_node_get_attribute(error_node,"code");  
-					const char* error_type;
-		    		error_type = lm_message_node_get_attribute(error_node,"type");  
-					item_node = lm_message_node_get_child (q_node, "feature-not-implemented");
-			    	}
-				break;
-				}
-	    //	default:
-	    	//	g_assert_not_reached ();
-	    	//	break;
-	    	} 
-    	
-	
-	    g_main_loop_quit ( handle_data->main_loop );
-		}	
-	
-	return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_login_multiple_sessionsL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send and receive
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_login_multiple_sessionsL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection1  = NULL;
-	LmConnection *connection2  = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageHandler *handler1 = NULL;
-	LmMessageHandler *handler2 = NULL;
-	HandleData *handle_data = NULL;
-	
-	iLog->Log ( _L ( "In lm_receive_any_message" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection1 = lm_connection_new ( connect_data->server );
-	connection2 = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection1 || !connection2 )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port and Set the JID
-	lm_connection_set_port ( connection1, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection1, connect_data->username );
-	lm_connection_set_port ( connection2, GTALK_SSL_PORT );
-	lm_connection_set_jid ( connection2, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection1, connect_data->proxy_data );
-	SetProxy ( connection2, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection1 );
-	SSLInit ( connection2 );
-	/*********************************************************/
-	//Login with connection1	
-	GMainLoop	*main_loop = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );	
-	if ( !lm_connection_open ( connection1, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection1 );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    	
-	main_loop = g_main_loop_new ( NULL, FALSE );	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection1,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection1, NULL );
-		lm_connection_unref ( connection1 );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	//Send own presence
-	message = lm_message_new_with_sub_type ( NULL,
-	                                     LM_MESSAGE_TYPE_PRESENCE,
-	                                     LM_MESSAGE_SUB_TYPE_AVAILABLE );
-    gboolean result = lm_connection_send ( connection1, message, NULL );	
-	
-	//Dont unref message here. It will be used to send agn .
-	//lm_message_unref(message);
-
-
-	// Register a handler to recieve msgs
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	handler1 = lm_message_handler_new ( 
-	                     (LmHandleMessageFunction)handle_multiple_session_messages,
-	                     main_loop,
-	                     NULL );
-	lm_connection_register_message_handler ( connection1,
-	                                         handler1,
-	                                         LM_MESSAGE_TYPE_MESSAGE,
-	                                         LM_HANDLER_PRIORITY_FIRST );	
-	/*********************************************************/
-	//Login with CONNECTION2
-	GMainLoop* main_loop1 = g_main_loop_new ( NULL, FALSE );
-	iLog->Log ( _L ( "before lm_connection_open" ) );	
-	if ( !lm_connection_open ( connection2, ( LmResultFunction ) connection_open_cb,
-	                           main_loop1, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection2 );
-		g_main_loop_unref ( main_loop1 );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-	iLog->Log ( _L ( "after lm_connection_open" ) );	
-	g_main_loop_run ( main_loop1 );
-	g_main_loop_unref ( main_loop1 );    	
-	main_loop1 = g_main_loop_new ( NULL, FALSE );	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection2,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop1,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection2, NULL );
-		lm_connection_unref ( connection2 );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop1 );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop1 );
-	g_main_loop_unref ( main_loop1 );
-	g_free ( username );
-	//Send own presence
-	result = lm_connection_send ( connection2, message, NULL );	
-	lm_message_unref(message);
-	/*********************************************************/
-	// Conn2 should have logged out. Send message should not work.	
-	// Construct a message
-//	main_loop1 = g_main_loop_new ( NULL, FALSE );
-	message = lm_message_new ( connect_data->msg_data->recipient,               
-	                           LM_MESSAGE_TYPE_MESSAGE );
-	lm_message_node_add_child ( message->node, "body", 
-	                            connect_data->msg_data->message);	
-	// Send message to the server
-	handler2 = lm_message_handler_new ( handle_send_im, main_loop, NULL );	
-	if ( !lm_connection_send_with_reply ( connection1, message, handler2, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_send_im_with_replyL failed" ) );
-		lm_connection_close ( connection1, NULL );
-		lm_connection_unref ( connection1 );
-		g_main_loop_unref ( main_loop );
-		lm_message_unref ( message );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }	
-	
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	lm_message_unref(message);
-	lm_message_handler_unref(handler2);
-
-	/***********************************************************/
-	//Run the registered main loop for logout callbacks
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );
-	
-
-	// Close the connection
-	lm_connection_close ( connection1, NULL );
-	// Remove a reference on connection
-	lm_connection_unref ( connection1 );
-	
-	// Close the connection
-	lm_connection_close ( connection2, NULL );
-	// Remove a reference on connection
-	lm_connection_unref ( connection2 );
-		
-	free_data ( connect_data );
-	
-	// Message sending passed
-	iLog->Log ( _L ( "lm_connection_send passed" ) );
-	
-	return KErrNone;
-}
-
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_change_own_presenceL
-// Description  : Changing own presence information
-// Arguements   :
-//   connection	: 
-//   message    : 
-//   error      : 
-// Returns      : 
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_change_own_presenceL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	LmMessage    *message = NULL;
-	LmMessageNode *show_node = NULL;
-    LmMessageNode *status_node = NULL;
-    LmMessageHandler *handler = NULL;
-    GMainLoop    *main_loop    = NULL;
-	
-	iLog->Log ( _L ( "In lm_change_own_presenceL" ) );
-	
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	
-	g_main_loop_run ( main_loop );
-
-	g_main_loop_unref ( main_loop );    
-
-	main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( connect_data );
-		g_main_loop_unref ( main_loop );
-		g_free ( username );
-		return KErrGeneral;
-	    }
-	g_main_loop_run ( main_loop );
-	g_main_loop_unref ( main_loop );    
-	g_free ( username );
-	
-	/*
-	<presence xml:lang='en'>
-  		<show>dnd</show>
-  		<status>Wooing Juliet</status>
-  		<status xml:lang='cz'>Ja dvo&#x0159;&#x00ED;m Juliet</status>
-	</presence>
-	*/
-
-	//publish own presence
-	message = lm_message_new_with_sub_type ( NULL,
-	                                     LM_MESSAGE_TYPE_PRESENCE,
-	                                     LM_MESSAGE_SUB_TYPE_AVAILABLE );
-	gboolean result = lm_connection_send ( connection, message, NULL );	
-	//lm_connection_send_with_reply(
-	// Remove a reference on message
-	lm_message_unref ( message );	
-
-	//------------------------------------------------------------------------
-	//
-	// Register a handler to recieve and update presence information
-	//
-	main_loop = g_main_loop_new ( NULL, FALSE );
-		
-	handler = lm_message_handler_new ( 
-	                     (LmHandleMessageFunction)jabber_presence_handler_cb,
-	                     main_loop,
-	                     NULL );
-	
-	lm_connection_register_message_handler ( connection,
-	                                         handler,
-	                                         LM_MESSAGE_TYPE_PRESENCE,
-	                                         LM_HANDLER_PRIORITY_NORMAL );
-	
-	g_main_loop_run ( main_loop );	
-	g_main_loop_unref ( main_loop );
-	lm_message_handler_unref(handler);
-	//------------------------------------------------------------------------
-	
-	
- 	
-   	//Change presence again
-   	message = lm_message_new_with_sub_type ( NULL,
-	                                     LM_MESSAGE_TYPE_PRESENCE,
-	                                     LM_MESSAGE_SUB_TYPE_AVAILABLE );
-	lm_message_node_set_attributes ( message->node, "xml:lang", "en", NULL ); 
-	show_node = lm_message_node_add_child ( message->node, "show", "busy" );
-	status_node = lm_message_node_add_child ( message->node, "status", "goal goal goal" );
-	result = lm_connection_send ( connection, message, NULL );	
-	// Remove a reference on message
-	lm_message_unref ( message );	
-   	
-   	//Change presence again
-   	message = lm_message_new_with_sub_type ( NULL,
-	                                     LM_MESSAGE_TYPE_PRESENCE,
-	                                     LM_MESSAGE_SUB_TYPE_AVAILABLE );
-	lm_message_node_set_attributes ( message->node, "xml:lang", "en", NULL ); 
-	show_node = lm_message_node_add_child ( message->node, "show", "away" );
-	status_node = lm_message_node_add_child ( message->node, "status", "imagine a world without nokia!" );
-	result = lm_connection_send ( connection, message, NULL );	
-	// Remove a reference on message
-	lm_message_unref ( message );	
-   	
-   	//Change presence again
-   	message = lm_message_new_with_sub_type ( NULL,
-	                                     LM_MESSAGE_TYPE_PRESENCE,
-	                                     LM_MESSAGE_SUB_TYPE_AVAILABLE );
-	lm_message_node_set_attributes ( message->node, "xml:lang", "en", NULL ); 
-	show_node = lm_message_node_add_child ( message->node, "show", "available" );
-	status_node = lm_message_node_add_child ( message->node, "status", "there comes a time..." );
-	result = lm_connection_send ( connection, message, NULL );	
-	// Remove a reference on message
-	lm_message_unref ( message );
-	
-	
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );	
-	free_data ( connect_data );
-	// Message sending passed
-	iLog->Log ( _L ( "lm_fetching_presenceL passed" ) );
-	
-	return KErrNone;
-    }
-    
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_login_test_invalid_settingsL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_login_test_invalid_portL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	
-	
-	iLog->Log ( _L ( "In lm_login_test_invalid_portL" ) );
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, SSL_INVALID_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop* main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	
-	g_main_loop_run ( main_loop );
-
-	g_main_loop_unref ( main_loop );    
-
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	iLog->Log ( _L ( "lm_login_test_invalid_port: Invalid settings is handled correctly" ) );
-	return KErrNone;
-}   
-  
-//-----------------------------------------------------------------------------
-// Ctstlm:: lm_login_test_invalid_serverL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm:: lm_login_test_invalid_serverL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	ConnectData  *connect_data = NULL;
-	
-	
-	iLog->Log ( _L ( "In  lm_login_test_invalid_serverL" ) );
-	// Read a data from the CFG file
-	if ( read_data ( connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, SSL_INVALID_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	GMainLoop* main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( main_loop );
-		free_data ( connect_data );		
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	
-	g_main_loop_run ( main_loop );
-
-	g_main_loop_unref ( main_loop );    
-
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	free_data ( connect_data );
-	iLog->Log ( _L ( " lm_login_test_invalid_server: Invalid settings is handled correctly" ) );
-	return KErrNone;
-}    
-   
-    
-//-----------------------------------------------------------------------------
-// Ctstlm::lm_memory_leak_testL
-// Description  : Asynchronous call to send a message
-// Arguements   :
-//   connection	: an LmConnection used to send message
-//   message    : LmMessage to send
-//   error      : location to store error, or NULL
-// Returns      : Returns TRUE if no errors were detected while sending,
-//                FALSE otherwise
-//-----------------------------------------------------------------------------
-// 
-TInt Ctstlm::lm_memory_leak_testL ( CStifItemParser& aItem )
-    {
-	LmConnection *connection   = NULL;
-	//ConnectData  *connect_data = NULL;
-	AuthData     *auth_data    = NULL;
-	
-	
-	iLog->Log ( _L ( "In lm_memory_leak_testL" ) );
-	
-	auth_data = g_new0 ( AuthData, 1 );
-	if ( !auth_data )
-		{
-		iLog->Log ( _L ( "memory allocation failed for auth_data" ) );
-		return KErrGeneral;
-		}	
-	
-	// Read a data from the CFG file
-	if ( read_data ( auth_data->connect_data, aItem ) != RC_OK )
-		{
-		iLog->Log ( _L ( "read_data failed" ) );
-		free_data ( auth_data->connect_data );
-		return KErrGeneral;
-		}
-	iLog->Log ( _L ( "after read_data" ) );
-	
-	// Open a new closed connection
-	connection = lm_connection_new ( auth_data->connect_data->server );
-	iLog->Log ( _L ( "after lm_connection_new " ) );
-	if ( !connection )
-		{
-		iLog->Log ( _L ( "lm_connection_new failed" ) );
-		free_data ( auth_data->connect_data );
-		return KErrGeneral;
-		}
-	
-	// Set the gtalk's SSL port
-	lm_connection_set_port ( connection, GTALK_SSL_PORT );
-	
-	// Set the JID
-	lm_connection_set_jid ( connection, auth_data->connect_data->username );
-	
-	// Proxy settings for Emulator
-#ifdef __WINSCW__
-	SetProxy ( connection, auth_data->connect_data->proxy_data );
-#endif
-	
-	// Set the connection to use SSL
-	SSLInit ( connection );
-	
-	auth_data->main_loop = g_main_loop_new ( NULL, FALSE );
-
-	iLog->Log ( _L ( "before lm_connection_open" ) );
-	
-	if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-	                           auth_data->main_loop, NULL, NULL ) ) 
-	    {
-		iLog->Log ( _L ( "lm_connection_open failed" ));
-		lm_connection_unref ( connection );
-		g_main_loop_unref ( auth_data->main_loop );
-		free_data ( auth_data->connect_data );		
-		g_free(auth_data);
-		return KErrGeneral;
-	    }
-		
-	iLog->Log ( _L ( "after lm_connection_open" ) );
-	
-	g_main_loop_run ( auth_data->main_loop );
-
-	g_main_loop_unref ( auth_data->main_loop );    
-
-	
-	auth_data->main_loop = g_main_loop_new ( NULL, FALSE );
-	
-	// Get the username from the JID
-	gchar *username = get_user_name ( auth_data->connect_data->username );
-	
-	// Authenticate with the server
-	if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     auth_data->connect_data->password,
-                                     auth_data->connect_data->resource,
-                                      ( LmResultFunction ) lm_login_cb,
-                                     auth_data,NULL,NULL ) )
-	    {
-		iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-		lm_connection_close ( connection, NULL );
-		lm_connection_unref ( connection );
-		free_data ( auth_data->connect_data );
-		g_main_loop_unref ( auth_data->main_loop );
-		g_free ( username );
-		g_free ( auth_data );
-		return KErrGeneral;
-	    }
-
-	g_main_loop_run ( auth_data->main_loop );
-	g_main_loop_unref ( auth_data->main_loop ); 
-	g_free ( username );
-	
-	// Close the connection
-	lm_connection_close ( connection, NULL );	
-	// Remove a reference on connection
-	lm_connection_unref ( connection );
-	free_data ( auth_data->connect_data );
-	
-	if ( auth_data->rCode == RC_ERROR )
-	    {
-	    iLog->Log ( _L ( "lm_memory_leak_testL failed" ) );
-	    g_free ( auth_data );
-	    return KErrGeneral;
-	    }	
-	g_free ( auth_data );
-    
-
-	
-	return KErrNone;
-}
-// NFT test cases
-
-TInt Ctstlm::lm_nft_updating_presenceL(CStifItemParser& aItem)	    
-    {
-
-    LmConnection *connection   = NULL;
-    ConnectData  *connect_data = NULL;
-    LmMessage    *message = NULL;
-    LmMessageNode *show_node = NULL;
-    LmMessageNode *status_node = NULL;
-    LmMessageHandler *handler = NULL;
-    GMainLoop    *main_loop    = NULL;
-    
-    iLog->Log ( _L ( "In lm_nft_updating_presenceL" ) );
-    
-    // Read a data from the CFG file
-    if ( read_data ( connect_data, aItem ) != RC_OK )
-        {
-        iLog->Log ( _L ( "read_data failed" ) );
-        free_data ( connect_data );
-        return KErrGeneral;
-        }
-    
-    // Open a new closed connection
-    connection = lm_connection_new ( connect_data->server );
-    if ( !connection )
-        {
-        iLog->Log ( _L ( "lm_connection_new failed" ) );
-        free_data ( connect_data );
-        return KErrGeneral;
-        }
-    
-    // Set the gtalk's SSL port
-    lm_connection_set_port ( connection, GTALK_SSL_PORT );
-    
-    // Set the JID
-    lm_connection_set_jid ( connection, connect_data->username );
-    
-    // Proxy settings for Emulator
-#ifdef __WINSCW__
-    SetProxy ( connection, connect_data->proxy_data );
-#endif
-    
-    // Set the connection to use SSL
-    SSLInit ( connection );
-    
-    
-    main_loop = g_main_loop_new ( NULL, FALSE );
-    
-    if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                               main_loop, NULL, NULL ) ) 
-        {
-        iLog->Log ( _L ( "lm_connection_open failed" ));
-        lm_connection_unref ( connection );
-        g_main_loop_unref ( main_loop );
-        free_data ( connect_data );     
-        return KErrGeneral;
-        }
-        
-    
-    g_main_loop_run ( main_loop );
-
-    g_main_loop_unref ( main_loop );    
-
-    main_loop = g_main_loop_new ( NULL, FALSE );
-    
-    // Get the username from the JID
-    gchar *username = get_user_name ( connect_data->username );
-    
-    // Authenticate with the server
-    if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-        {
-        iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-        lm_connection_close ( connection, NULL );
-        lm_connection_unref ( connection );
-        free_data ( connect_data );
-        g_main_loop_unref ( main_loop );
-        g_free ( username );
-        return KErrGeneral;
-        }
-    g_main_loop_run ( main_loop );
-    g_main_loop_unref ( main_loop );    
-    g_free ( username );
-    
-    /*
-    <presence xml:lang='en'>
-        <show>dnd</show>
-        <status>Wooing Juliet</status>
-        <status xml:lang='cz'>Ja dvo&#x0159;&#x00ED;m Juliet</status>
-    </presence>
-    */
-
-    //publish own presence
-    //updating presence multiple time
-    for (TInt i =1 ;i<100 ;i++)
-        {
-    message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_PRESENCE,
-                                         LM_MESSAGE_SUB_TYPE_AVAILABLE );
-    gboolean result = lm_connection_send ( connection, message, NULL ); 
-    //lm_connection_send_with_reply(
-    // Remove a reference on message
-    lm_message_unref ( message );   
-    
-    //Change presence again
-        message = lm_message_new_with_sub_type ( NULL,
-                                             LM_MESSAGE_TYPE_PRESENCE,
-                                             LM_MESSAGE_SUB_TYPE_AVAILABLE );
-        lm_message_node_set_attributes ( message->node, "xml:lang", "en", NULL ); 
-        show_node = lm_message_node_add_child ( message->node, "show", "busy" );
-        status_node = lm_message_node_add_child ( message->node, "status", "goal goal goal" );
-        result = lm_connection_send ( connection, message, NULL );  
-        // Remove a reference on message
-        lm_message_unref ( message );   
-    
-        }
-    
-    
-    lm_connection_close ( connection, NULL );   
-    // Remove a reference on connection
-    lm_connection_unref ( connection ); 
-    free_data ( connect_data );
-    // Message sending passed
-    iLog->Log ( _L ( "lm_nft_updating_presenceL" ) );
-    
-    return KErrNone;
-    
-    }
-
-TInt Ctstlm ::lm_nft_presence_notificationL(CStifItemParser& aItem)
-    {
-
-    LmConnection *connection   = NULL;
-    ConnectData  *connect_data = NULL;
-    LmMessage    *message = NULL;
-    LmMessageNode *show_node = NULL;
-    LmMessageNode *status_node = NULL;
-    LmMessageHandler *handler = NULL;
-    GMainLoop    *main_loop    = NULL;
-    HandleData *handle_data = NULL;
-    
-    iLog->Log ( _L ( "lm_nft_presence_notificationL" ) );
-    
-    // Read a data from the CFG file
-    if ( read_data ( connect_data, aItem ) != RC_OK )
-        {
-        iLog->Log ( _L ( "read_data failed" ) );
-        free_data ( connect_data );
-        return KErrGeneral;
-        }
-    
-    // Open a new closed connection
-    connection = lm_connection_new ( connect_data->server );
-    if ( !connection )
-        {
-        iLog->Log ( _L ( "lm_connection_new failed" ) );
-        free_data ( connect_data );
-        return KErrGeneral;
-        }
-    
-    // Set the gtalk's SSL port
-    lm_connection_set_port ( connection, GTALK_SSL_PORT );
-    
-    // Set the JID
-    lm_connection_set_jid ( connection, connect_data->username );
-    
-    // Proxy settings for Emulator
-#ifdef __WINSCW__
-    SetProxy ( connection, connect_data->proxy_data );
-#endif
-    
-    // Set the connection to use SSL
-    SSLInit ( connection );
-    
-    
-    main_loop = g_main_loop_new ( NULL, FALSE );
-    
-    if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                               main_loop, NULL, NULL ) ) 
-        {
-        iLog->Log ( _L ( "lm_connection_open failed" ));
-        lm_connection_unref ( connection );
-        g_main_loop_unref ( main_loop );
-        free_data ( connect_data );     
-        return KErrGeneral;
-        }
-        
-    
-    g_main_loop_run ( main_loop );
-
-    g_main_loop_unref ( main_loop );    
-
-    main_loop = g_main_loop_new ( NULL, FALSE );
-    
-    // Get the username from the JID
-    gchar *username = get_user_name ( connect_data->username );
-    
-    // Authenticate with the server
-    if ( !lm_connection_authenticate ( connection,
-                                     username,
-                                     connect_data->password,
-                                     connect_data->resource,
-                                      ( LmResultFunction ) connection_auth_cb,
-                                     main_loop,NULL,NULL ) )
-        {
-        iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-        lm_connection_close ( connection, NULL );
-        lm_connection_unref ( connection );
-        free_data ( connect_data );
-        g_main_loop_unref ( main_loop );
-        g_free ( username );
-        return KErrGeneral;
-        }
-    g_main_loop_run ( main_loop );
-    g_main_loop_unref ( main_loop );    
-    g_free ( username );
-    
-    /*
-    <presence xml:lang='en'>
-        <show>dnd</show>
-        <status>Wooing Juliet</status>
-        <status xml:lang='cz'>Ja dvo&#x0159;&#x00ED;m Juliet</status>
-    </presence>
-    */
-
-    //publish own presence
-    message = lm_message_new_with_sub_type ( NULL,
-                                         LM_MESSAGE_TYPE_PRESENCE,
-                                         LM_MESSAGE_SUB_TYPE_AVAILABLE );
-    gboolean result = lm_connection_send ( connection, message, NULL ); 
-    //lm_connection_send_with_reply(
-    // Remove a reference on message
-    lm_message_unref ( message );   
-
-    //------------------------------------------------------------------------
-    //
-    // Register a handler to recieve and update presence information
-    //
-   
-        main_loop = g_main_loop_new ( NULL, FALSE );
-        handle_data = g_new0 ( HandleData, 1 );
-        handle_data->main_loop=main_loop;
-        handle_data->count=0;
-        handler = lm_message_handler_new ( 
-                             (LmHandleMessageFunction)handle_100_presence_notification,
-                             handle_data,
-                             NULL );
-        lm_connection_register_message_handler ( connection,
-                                                 handler,
-                                                 LM_MESSAGE_TYPE_PRESENCE,
-                                                 LM_HANDLER_PRIORITY_NORMAL );
-        g_main_loop_run ( main_loop );  
-        g_main_loop_unref ( main_loop );
-        lm_message_handler_unref(handler);
-    
-    
-    
-    lm_connection_close ( connection, NULL );   
-    // Remove a reference on connection
-    lm_connection_unref ( connection ); 
-    free_data ( connect_data );
-    // Message sending passed
-    iLog->Log ( _L ( "lm_nft_presence_notificationL" ) );
-    
-    return KErrNone;
-    
-    
-    }
-
- TInt Ctstlm::lm_nft_send_text_messageL(CStifItemParser& aItem)
-     {
-
-     LmConnection *connection   = NULL;
-     ConnectData  *connect_data = NULL;
-     LmMessage    *message;
-     
-     iLog->Log ( _L ( "In lm_nft_send_text_messageL" ) );
-     
-     // Read a data from the CFG file
-     if ( read_data ( connect_data, aItem ) != RC_OK )
-         {
-         iLog->Log ( _L ( "read_data failed" ) );
-         free_data ( connect_data );
-         return KErrGeneral;
-         }
-     iLog->Log ( _L ( "after read_data" ) );
-     
-     // Open a new closed connection
-     connection = lm_connection_new ( connect_data->server );
-     iLog->Log ( _L ( "after lm_connection_new " ) );
-     if ( !connection )
-         {
-         iLog->Log ( _L ( "lm_connection_new failed" ) );
-         free_data ( connect_data );
-         return KErrGeneral;
-         }
-     
-     // Set the gtalk's SSL port
-     lm_connection_set_port ( connection, GTALK_SSL_PORT );
-     
-     // Set the JID
-     lm_connection_set_jid ( connection, connect_data->username );
-     
-     // Proxy settings for Emulator
- #ifdef __WINSCW__
-     SetProxy ( connection, connect_data->proxy_data );
- #endif
-     
-     // Set the connection to use SSL
-     SSLInit ( connection );
-     
-     GMainLoop   *main_loop = g_main_loop_new ( NULL, FALSE );
-
-     iLog->Log ( _L ( "before lm_connection_open" ) );
-     
-     if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                main_loop, NULL, NULL ) ) 
-         {
-         iLog->Log ( _L ( "lm_connection_open failed" ));
-         lm_connection_unref ( connection );
-         g_main_loop_unref ( main_loop );
-         free_data ( connect_data );     
-         return KErrGeneral;
-         }
-         
-     iLog->Log ( _L ( "after lm_connection_open" ) );
-     g_main_loop_run ( main_loop );
-     g_main_loop_unref ( main_loop );    
-     
-     main_loop = g_main_loop_new ( NULL, FALSE );
-     
-     // Get the username from the JID
-     gchar *username = get_user_name ( connect_data->username );
-     
-     // Authenticate with the server
-     if ( !lm_connection_authenticate ( connection,
-                                      username,
-                                      connect_data->password,
-                                      connect_data->resource,
-                                       ( LmResultFunction ) connection_auth_cb,
-                                      main_loop,NULL,NULL ) )
-         {
-         iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-         lm_connection_close ( connection, NULL );
-         lm_connection_unref ( connection );
-         free_data ( connect_data );
-         g_main_loop_unref ( main_loop );
-         g_free ( username );
-         return KErrGeneral;
-         }
-     g_main_loop_run ( main_loop );
-     g_main_loop_unref ( main_loop );
-     g_free ( username );
-     
-     // Construct a message
-     message = lm_message_new ( connect_data->msg_data->recipient,               
-                                LM_MESSAGE_TYPE_MESSAGE );
-     lm_message_node_add_child ( message->node, "body", 
-                                 connect_data->msg_data->message);
-     for(TInt i =0 ; i<100 ;i++)
-         {
-     // Send message to the server
-     if ( !lm_connection_send ( connection, message, NULL ) )
-         {
-         iLog->Log ( _L ( "lm_connection_send failed" ) );
-         lm_connection_close ( connection, NULL );
-         lm_connection_unref ( connection );
-         lm_message_unref ( message );
-         free_data ( connect_data );     
-         return KErrGeneral;
-         }  
-         }
-     // Close the connection
-     lm_connection_close ( connection, NULL );
-     
-     // Remove a reference on connection
-     lm_connection_unref ( connection );
-     
-     // Remove a reference on message
-     lm_message_unref ( message );
-     
-     //free_data ( connect_data );
-     
-     // Message sending passed
-     iLog->Log ( _L ( "lm_nft_send_text_messageL" ) );
-     
-     return KErrNone;
-
-     }
- TInt Ctstlm::lm_nft_open_conversation_with_multipleL(CStifItemParser& aItem)
-     {
-
-
-     LmConnection *connection   = NULL;
-     ConnectData  *connect_data = NULL;
-     LmMessage    *message;
-     
-     iLog->Log ( _L ( "lm_nft_open_conversation_with_multipleL" ) );
-     
-     // Read a data from the CFG file
-     if ( read_data ( connect_data, aItem ) != RC_OK )
-         {
-         iLog->Log ( _L ( "read_data failed" ) );
-         free_data ( connect_data );
-         return KErrGeneral;
-         }
-     iLog->Log ( _L ( "after read_data" ) );
-     
-     // Open a new closed connection
-     connection = lm_connection_new ( connect_data->server );
-     iLog->Log ( _L ( "after lm_connection_new " ) );
-     if ( !connection )
-         {
-         iLog->Log ( _L ( "lm_connection_new failed" ) );
-         free_data ( connect_data );
-         return KErrGeneral;
-         }
-     
-     // Set the gtalk's SSL port
-     lm_connection_set_port ( connection, GTALK_SSL_PORT );
-     
-     // Set the JID
-     lm_connection_set_jid ( connection, connect_data->username );
-     
-     // Proxy settings for Emulator
- #ifdef __WINSCW__
-     SetProxy ( connection, connect_data->proxy_data );
- #endif
-     
-     // Set the connection to use SSL
-     SSLInit ( connection );
-     
-     GMainLoop   *main_loop = g_main_loop_new ( NULL, FALSE );
-
-     iLog->Log ( _L ( "before lm_connection_open" ) );
-     
-     if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                main_loop, NULL, NULL ) ) 
-         {
-         iLog->Log ( _L ( "lm_connection_open failed" ));
-         lm_connection_unref ( connection );
-         g_main_loop_unref ( main_loop );
-         free_data ( connect_data );     
-         return KErrGeneral;
-         }
-         
-     iLog->Log ( _L ( "after lm_connection_open" ) );
-     g_main_loop_run ( main_loop );
-     g_main_loop_unref ( main_loop );    
-     
-     main_loop = g_main_loop_new ( NULL, FALSE );
-     
-     // Get the username from the JID
-     gchar *username = get_user_name ( connect_data->username );
-     
-     // Authenticate with the server
-     if ( !lm_connection_authenticate ( connection,
-                                      username,
-                                      connect_data->password,
-                                      connect_data->resource,
-                                       ( LmResultFunction ) connection_auth_cb,
-                                      main_loop,NULL,NULL ) )
-         {
-         iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-         lm_connection_close ( connection, NULL );
-         lm_connection_unref ( connection );
-         free_data ( connect_data );
-         g_main_loop_unref ( main_loop );
-         g_free ( username );
-         return KErrGeneral;
-         }
-     g_main_loop_run ( main_loop );
-     g_main_loop_unref ( main_loop );
-     g_free ( username );
-     
-     // Construct a message
-     //receipient1
-     const char *receipient = "rakesh.harsh@gmail.com";
-     message = lm_message_new ( receipient,               
-                                LM_MESSAGE_TYPE_MESSAGE );
-     lm_message_node_add_child ( message->node, "body", 
-                                 connect_data->msg_data->message);
-     for(TInt i =0 ; i<20 ;i++)
-         {
-     // Send message to the server
-     if ( !lm_connection_send ( connection, message, NULL ) )
-         {
-         iLog->Log ( _L ( "lm_connection_send failed" ) );
-         lm_connection_close ( connection, NULL );
-         lm_connection_unref ( connection );
-         lm_message_unref ( message );
-         free_data ( connect_data );     
-         return KErrGeneral;
-         }  
-         }
-             const char *receipient1 = "rakesh.harsha@gmail.com";
-              message = lm_message_new ( receipient1,               
-                                         LM_MESSAGE_TYPE_MESSAGE );
-              lm_message_node_add_child ( message->node, "body", 
-                                          connect_data->msg_data->message);
-              for(TInt i =0 ; i<20 ;i++)
-                  {
-              // Send message to the server
-              if ( !lm_connection_send ( connection, message, NULL ) )
-                  {
-                  iLog->Log ( _L ( "lm_connection_send failed" ) );
-                  lm_connection_close ( connection, NULL );
-                  lm_connection_unref ( connection );
-                  lm_message_unref ( message );
-                  free_data ( connect_data );     
-                  return KErrGeneral;
-                  }  
-                  }
-               const char *receipient2 = "testlm123@gmail.com";
-               message = lm_message_new ( receipient2,               
-                                          LM_MESSAGE_TYPE_MESSAGE );
-               lm_message_node_add_child ( message->node, "body", 
-                                           connect_data->msg_data->message);
-               for(TInt i =0 ; i<20 ;i++)
-                   {
-               // Send message to the server
-               if ( !lm_connection_send ( connection, message, NULL ) )
-                   {
-                   iLog->Log ( _L ( "lm_connection_send failed" ) );
-                   lm_connection_close ( connection, NULL );
-                   lm_connection_unref ( connection );
-                   lm_message_unref ( message );
-                   free_data ( connect_data );     
-                   return KErrGeneral;
-                   }  
-                   }
-               
-                   const char *receipient3 = "nokiatestlm@gmail.com";
-                    message = lm_message_new ( receipient3,               
-                                               LM_MESSAGE_TYPE_MESSAGE );
-                    lm_message_node_add_child ( message->node, "body", 
-                                                connect_data->msg_data->message);
-                    for(TInt i =0 ; i<20 ;i++)
-                        {
-                    // Send message to the server
-                    if ( !lm_connection_send ( connection, message, NULL ) )
-                        {
-                        iLog->Log ( _L ( "lm_connection_send failed" ) );
-                        lm_connection_close ( connection, NULL );
-                        lm_connection_unref ( connection );
-                        lm_message_unref ( message );
-                        free_data ( connect_data );     
-                        return KErrGeneral;
-                        }  
-                        } 
-                                 const char *receipient4 = "testui123@gmail.com";
-                                  message = lm_message_new ( receipient4,               
-                                                             LM_MESSAGE_TYPE_MESSAGE );
-                                  lm_message_node_add_child ( message->node, "body", 
-                                                              connect_data->msg_data->message);
-                                  for(TInt i =0 ; i<20 ;i++)
-                                      {
-                                  // Send message to the server
-                                  if ( !lm_connection_send ( connection, message, NULL ) )
-                                      {
-                                      iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                      lm_connection_close ( connection, NULL );
-                                      lm_connection_unref ( connection );
-                                      lm_message_unref ( message );
-                                      free_data ( connect_data );     
-                                      return KErrGeneral;
-                                      }  
-                                      } 
-                                  const char *receipient5 = "immeco10@gmail.com";
-                                  message = lm_message_new ( receipient5,               
-                                  LM_MESSAGE_TYPE_MESSAGE );
-                                  lm_message_node_add_child ( message->node, "body", 
-                                  connect_data->msg_data->message);
-                                  for(TInt i =0 ; i<20 ;i++)
-                                  {
-                                  // Send message to the server
-                                  if ( !lm_connection_send ( connection, message, NULL ) )
-                                  {
-                                  iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                  lm_connection_close ( connection, NULL );
-                                  lm_connection_unref ( connection );
-                                  lm_message_unref ( message );
-                                  free_data ( connect_data );     
-                                  return KErrGeneral;
-                                  }  
-                                  } 
-                                  const char *receipient6 = "immeco11@gmail.com";
-                                  message = lm_message_new ( receipient6,               
-                                  LM_MESSAGE_TYPE_MESSAGE );
-                                  lm_message_node_add_child ( message->node, "body", 
-                                  connect_data->msg_data->message);
-                                  for(TInt i =0 ; i<20 ;i++)
-                                  {
-                                  // Send message to the server
-                                  if ( !lm_connection_send ( connection, message, NULL ) )
-                                  {
-                                  iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                  lm_connection_close ( connection, NULL );
-                                  lm_connection_unref ( connection );
-                                  lm_message_unref ( message );
-                                  free_data ( connect_data );     
-                                  return KErrGeneral;
-                                  }  
-                                  } 
-                                  const char *receipient7 = "immeco11@gmail.com";
-                                  message = lm_message_new ( receipient7,               
-                                  LM_MESSAGE_TYPE_MESSAGE );
-                                  lm_message_node_add_child ( message->node, "body", 
-                                  connect_data->msg_data->message);
-                                  for(TInt i =0 ; i<20 ;i++) 
-                                  {
-                                  // Send message to the server
-                                  if ( !lm_connection_send ( connection, message, NULL ) )
-                                  {
-                                  iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                  lm_connection_close ( connection, NULL );
-                                  lm_connection_unref ( connection );
-                                  lm_message_unref ( message );
-                                  free_data ( connect_data );     
-                                  return KErrGeneral;
-                                  }  
-                                  } 
-                                  const char *receipient8 = "test.isoserver@gmail.com";
-                                  message = lm_message_new ( receipient8,               
-                                  LM_MESSAGE_TYPE_MESSAGE );
-                                  lm_message_node_add_child ( message->node, "body", 
-                                  connect_data->msg_data->message);
-                                  for(TInt i =0 ; i<20 ;i++)
-                                  {
-                                  // Send message to the server
-                                  if ( !lm_connection_send ( connection, message, NULL ) )
-                                  {
-                                  iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                  lm_connection_close ( connection, NULL );
-                                  lm_connection_unref ( connection );
-                                  lm_message_unref ( message );
-                                  free_data ( connect_data );     
-                                  return KErrGeneral;
-                                  }  
-                                  }   
-                                  const char *receipient9 = "tele1236@gmail.com";
-                                  message = lm_message_new ( receipient9,               
-                                  LM_MESSAGE_TYPE_MESSAGE );
-                                  lm_message_node_add_child ( message->node, "body", 
-                                  connect_data->msg_data->message);
-                                  for(TInt i =0 ; i<20 ;i++)
-                                  {
-                                  // Send message to the server
-                                  if ( !lm_connection_send ( connection, message, NULL ) )
-                                  {
-                                  iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                  lm_connection_close ( connection, NULL );
-                                  lm_connection_unref ( connection );
-                                  lm_message_unref ( message );
-                                  free_data ( connect_data );     
-                                  return KErrGeneral;
-                                  }  
-                                  }                                   
-                                  const char *receipient10 = "meco5555@gmail.com";
-                                  message = lm_message_new ( receipient10,               
-                                  LM_MESSAGE_TYPE_MESSAGE );
-                                  lm_message_node_add_child ( message->node, "body", 
-                                  connect_data->msg_data->message);
-                                  for(TInt i =0 ; i<20 ;i++)
-                                  {
-                                  // Send message to the server
-                                  if ( !lm_connection_send ( connection, message, NULL ) )
-                                  {
-                                  iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                  lm_connection_close ( connection, NULL );
-                                  lm_connection_unref ( connection );
-                                  lm_message_unref ( message );
-                                  free_data ( connect_data );     
-                                  return KErrGeneral;
-                                  }  
-                                  }                               
-     // Close the connection
-     lm_connection_close ( connection, NULL );
-     
-     // Remove a reference on connection
-     lm_connection_unref ( connection );
-     
-     // Remove a reference on message
-     lm_message_unref ( message );
-     
-     free_data ( connect_data );
-     
-     // Message sending passed
-     iLog->Log ( _L ( "lm_nft_open_conversation_with_multipleL" ) );
-     
-     return KErrNone;
-     
-     }
- TInt Ctstlm::lm_nft_fetch300_contactL(CStifItemParser& aItem)
-      {
-
-      LmConnection *connection   = NULL;
-      ConnectData  *connect_data = NULL;
-      LmMessage    *message;
-      LmMessageNode *q_node;
-      //LmMessageSubType  type;
-      LmMessageHandler *handler = NULL;
-      
-      iLog->Log ( _L ( "lm_nft_fetch300_contactL" ) );
-      
-      // Read a data from the CFG file
-      if ( read_data ( connect_data, aItem ) != RC_OK )
-          {
-          iLog->Log ( _L ( "read_data failed" ) );
-          free_data ( connect_data );
-          return KErrGeneral;
-          }
-      
-      // Open a new closed connection
-      connection = lm_connection_new ( connect_data->server );
-      if ( !connection )
-          {
-          iLog->Log ( _L ( "lm_connection_new failed" ) );
-          free_data ( connect_data );
-          return KErrGeneral;
-          }
-      
-      // Set the gtalk's SSL port
-      lm_connection_set_port ( connection, GTALK_SSL_PORT );
-      
-      // Set the JID
-      lm_connection_set_jid ( connection, connect_data->username );
-      
-      // Proxy settings for Emulator
-  #ifdef __WINSCW__
-      SetProxy ( connection, connect_data->proxy_data );
-  #endif
-      
-      // Set the connection to use SSL
-      SSLInit ( connection );
-
-      //Open call    
-      GMainLoop   *main_loop = g_main_loop_new ( NULL, FALSE );
-      
-      if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                 main_loop, NULL, NULL ) ) 
-          {
-          iLog->Log ( _L ( "lm_connection_open failed" ));
-          lm_connection_unref ( connection );
-          free_data ( connect_data ); 
-          g_main_loop_unref ( main_loop );    
-          return KErrGeneral;
-          }
-          
-      
-      g_main_loop_run ( main_loop );
-
-      g_main_loop_unref ( main_loop );    
-      
-
-      main_loop = g_main_loop_new ( NULL, FALSE );
-      
-      // Get the username from the JID
-      gchar *username = get_user_name ( connect_data->username );
-      
-      // Authenticate with the server
-      if ( !lm_connection_authenticate ( connection,
-                                       username,
-                                       connect_data->password,
-                                       connect_data->resource,
-                                        ( LmResultFunction )connection_auth_cb,
-                                       main_loop,NULL,NULL ) )
-          {
-          iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-          lm_connection_close ( connection, NULL );
-          lm_connection_unref ( connection );
-          free_data ( connect_data );
-          g_main_loop_unref ( main_loop );
-          g_free ( username );
-          return KErrGeneral;
-          }
-      g_main_loop_run ( main_loop );
-      g_main_loop_unref ( main_loop );    
-      g_free ( username );
-      
-
-                  
-      // Construct a message
-      main_loop = g_main_loop_new ( NULL, FALSE );
-      message = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ,
-                            LM_MESSAGE_SUB_TYPE_GET);
-      q_node = lm_message_node_add_child (message->node, "query", NULL);
-      lm_message_node_set_attributes (q_node,
-                          "xmlns", "jabber:iq:roster",
-                          NULL); 
-      // Send message to the server
-      handler = lm_message_handler_new ( handle_fetch_contactlist_messages, main_loop, NULL );
-      
-      if ( !lm_connection_send_with_reply ( connection, message, handler, NULL ) ) 
-          {
-          iLog->Log ( _L ( "lm_connection_send_with_reply failed" ) );
-          lm_connection_close ( connection, NULL );
-          lm_connection_unref ( connection );
-          lm_message_unref ( message );
-          free_data ( connect_data );
-          g_main_loop_unref ( main_loop );
-          return KErrGeneral;
-          }   
-      g_main_loop_run ( main_loop );
-      g_main_loop_unref ( main_loop );                                    
-                          
-                  
-      
-      // Close the connection
-      lm_connection_close ( connection, NULL );
-      
-      // Remove a reference on connection
-      lm_connection_unref ( connection );
-      
-      // Remove a reference on message
-      lm_message_unref ( message );
-      
-      free_data ( connect_data );
-      
-      // Message sending passed
-      iLog->Log ( _L ( "lm_nft_fetch300_contactL" ) );
-      
-      return KErrNone;
-      
-      }
-     
- TInt Ctstlm::lm_nft_loginlogoutmultipletime(CStifItemParser& aItem)
-     {
-     LmConnection *connection   = NULL;
-     ConnectData  *connect_data = NULL;
-     LmMessage    *message;
-     
-     iLog->Log ( _L ( "lm_nft_loginlogoutmultipletime" ) );
-     
-     // Read a data from the CFG file
-     if ( read_data ( connect_data, aItem ) != RC_OK )
-         {
-         iLog->Log ( _L ( "read_data failed" ) );
-         free_data ( connect_data );
-         return KErrGeneral;
-         }
-     iLog->Log ( _L ( "after read_data" ) );
-     
-     // Open a new closed connection
-     connection = lm_connection_new ( connect_data->server );
-     iLog->Log ( _L ( "after lm_connection_new " ) );
-     if ( !connection )
-         {
-         iLog->Log ( _L ( "lm_connection_new failed" ) );
-         free_data ( connect_data );
-         return KErrGeneral;
-         }
-     
-     // Set the gtalk's SSL port
-     lm_connection_set_port ( connection, GTALK_SSL_PORT );
-     
-     // Set the JID
-     lm_connection_set_jid ( connection, connect_data->username );
-     
-     // Proxy settings for Emulator
- #ifdef __WINSCW__
-     SetProxy ( connection, connect_data->proxy_data );
- #endif
-     
-     // Set the connection to use SSL
-     SSLInit ( connection );
-     
-     GMainLoop   *main_loop = g_main_loop_new ( NULL, FALSE );
-
-     iLog->Log ( _L ( "before lm_connection_open" ) );
-     
-     if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                main_loop, NULL, NULL ) ) 
-         {
-         iLog->Log ( _L ( "lm_connection_open failed" ));
-         lm_connection_unref ( connection );
-         g_main_loop_unref ( main_loop );
-         free_data ( connect_data );     
-         return KErrGeneral;
-         }
-         
-     iLog->Log ( _L ( "after lm_connection_open" ) );
-     
-     g_main_loop_run ( main_loop );
-
-     g_main_loop_unref ( main_loop );    
-
-     
-     GMainLoop   *main_loop1 = g_main_loop_new ( NULL, FALSE );
-     
-     // Get the username from the JID
-     gchar *username = get_user_name ( connect_data->username );
-     
-     // Authenticate with the server
-     if ( !lm_connection_authenticate ( connection,
-                                      username,
-                                      connect_data->password,
-                                      connect_data->resource,
-                                       ( LmResultFunction ) connection_auth_cb,
-                                      main_loop1,NULL,NULL ) )
-         {
-         iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-         lm_connection_close ( connection, NULL );
-         lm_connection_unref ( connection );
-         free_data ( connect_data );
-         g_main_loop_unref ( main_loop1 );
-         g_free ( username );
-         return KErrGeneral;
-         }
-
-     g_main_loop_run ( main_loop1 );
-
-     g_main_loop_unref ( main_loop1 );
-         
-
-     g_free ( username );
-     
-     // Construct a message
-     message = lm_message_new ( connect_data->msg_data->recipient,               
-                                LM_MESSAGE_TYPE_MESSAGE );
-     lm_message_node_add_child ( message->node, "body", 
-                                 connect_data->msg_data->message);
-     
-     // Send message to the server
-     if ( !lm_connection_send ( connection, message, NULL ) )
-         {
-         iLog->Log ( _L ( "lm_connection_send failed" ) );
-         lm_connection_close ( connection, NULL );
-         lm_connection_unref ( connection );
-         lm_message_unref ( message );
-         free_data ( connect_data );     
-         return KErrGeneral;
-         }   
-     
-     // Close the connection
-     lm_connection_close ( connection, NULL );
-     
-     // Remove a reference on connection
-     lm_connection_unref ( connection );
-     
-     // Remove a reference on message
-     lm_message_unref ( message );
-     
-     free_data ( connect_data );
-     
-     // Message sending passed
-     iLog->Log ( _L ( "lm_connection_send passed" ) );
-     //second time
-     // Read a data from the CFG file
-          if ( read_data ( connect_data, aItem ) != RC_OK )
-              {
-              iLog->Log ( _L ( "read_data failed" ) );
-              free_data ( connect_data );
-              return KErrGeneral;
-              }
-          iLog->Log ( _L ( "after read_data" ) );
-          
-          // Open a new closed connection
-          connection = lm_connection_new ( connect_data->server );
-          iLog->Log ( _L ( "after lm_connection_new " ) );
-          if ( !connection )
-              {
-              iLog->Log ( _L ( "lm_connection_new failed" ) );
-              free_data ( connect_data );
-              return KErrGeneral;
-              }
-          
-          // Set the gtalk's SSL port
-          lm_connection_set_port ( connection, GTALK_SSL_PORT );
-          
-          // Set the JID
-          lm_connection_set_jid ( connection, connect_data->username );
-          
-          // Proxy settings for Emulator
-      #ifdef __WINSCW__
-          SetProxy ( connection, connect_data->proxy_data );
-      #endif
-          
-          // Set the connection to use SSL
-          SSLInit ( connection );
-          
-          //*main_loop = g_main_loop_new ( NULL, FALSE );
-
-          iLog->Log ( _L ( "before lm_connection_open" ) );
-          
-          if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                     main_loop, NULL, NULL ) ) 
-              {
-              iLog->Log ( _L ( "lm_connection_open failed" ));
-              lm_connection_unref ( connection );
-              g_main_loop_unref ( main_loop );
-              free_data ( connect_data );     
-              return KErrGeneral;
-              }
-              
-          iLog->Log ( _L ( "after lm_connection_open" ) );
-          
-          g_main_loop_run ( main_loop );
-
-          g_main_loop_unref ( main_loop );    
-
-          
-            // *main_loop1 = g_main_loop_new ( NULL, FALSE );
-          
-          // Get the username from the JID
-          //*username = get_user_name ( connect_data->username );
-          
-          // Authenticate with the server
-          if ( !lm_connection_authenticate ( connection,
-                                           username,
-                                           connect_data->password,
-                                           connect_data->resource,
-                                            ( LmResultFunction ) connection_auth_cb,
-                                           main_loop1,NULL,NULL ) )
-              {
-              iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-              lm_connection_close ( connection, NULL );
-              lm_connection_unref ( connection );
-              free_data ( connect_data );
-              g_main_loop_unref ( main_loop1 );
-              g_free ( username );
-              return KErrGeneral;
-              }
-
-          g_main_loop_run ( main_loop1 );
-
-          g_main_loop_unref ( main_loop1 );
-              
-
-          g_free ( username );
-          
-          // Construct a message
-          message = lm_message_new ( connect_data->msg_data->recipient,               
-                                     LM_MESSAGE_TYPE_MESSAGE );
-          lm_message_node_add_child ( message->node, "body", 
-                                      connect_data->msg_data->message);
-          
-          // Send message to the server
-          if ( !lm_connection_send ( connection, message, NULL ) )
-              {
-              iLog->Log ( _L ( "lm_connection_send failed" ) );
-              lm_connection_close ( connection, NULL );
-              lm_connection_unref ( connection );
-              lm_message_unref ( message );
-              free_data ( connect_data );     
-              return KErrGeneral;
-              }   
-          
-          // Close the connection
-          lm_connection_close ( connection, NULL );
-          
-          // Remove a reference on connection
-          lm_connection_unref ( connection );
-          
-          // Remove a reference on message
-          lm_message_unref ( message );
-          
-          free_data ( connect_data );
-          
-          // Message sending passed
-          iLog->Log ( _L ( "lm_connection_send passed" ) );
-          
-//third time
-          // Read a data from the CFG file
-               if ( read_data ( connect_data, aItem ) != RC_OK )
-                   {
-                   iLog->Log ( _L ( "read_data failed" ) );
-                   free_data ( connect_data );
-                   return KErrGeneral;
-                   }
-               iLog->Log ( _L ( "after read_data" ) );
-               
-               // Open a new closed connection
-               connection = lm_connection_new ( connect_data->server );
-               iLog->Log ( _L ( "after lm_connection_new " ) );
-               if ( !connection )
-                   {
-                   iLog->Log ( _L ( "lm_connection_new failed" ) );
-                   free_data ( connect_data );
-                   return KErrGeneral;
-                   }
-               
-               // Set the gtalk's SSL port
-               lm_connection_set_port ( connection, GTALK_SSL_PORT );
-               
-               // Set the JID
-               lm_connection_set_jid ( connection, connect_data->username );
-               
-               // Proxy settings for Emulator
-           #ifdef __WINSCW__
-               SetProxy ( connection, connect_data->proxy_data );
-           #endif
-               
-               // Set the connection to use SSL
-               SSLInit ( connection );
-               
-              // *main_loop = g_main_loop_new ( NULL, FALSE );
-
-               iLog->Log ( _L ( "before lm_connection_open" ) );
-               
-               if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                          main_loop, NULL, NULL ) ) 
-                   {
-                   iLog->Log ( _L ( "lm_connection_open failed" ));
-                   lm_connection_unref ( connection );
-                   g_main_loop_unref ( main_loop );
-                   free_data ( connect_data );     
-                   return KErrGeneral;
-                   }
-                   
-               iLog->Log ( _L ( "after lm_connection_open" ) );
-               
-               g_main_loop_run ( main_loop );
-
-               g_main_loop_unref ( main_loop );    
-
-               
-             // *main_loop1 = g_main_loop_new ( NULL, FALSE );
-               
-               // Get the username from the JID
-              // gchar *username = get_user_name ( connect_data->username );
-               
-               // Authenticate with the server
-               if ( !lm_connection_authenticate ( connection,
-                                                username,
-                                                connect_data->password,
-                                                connect_data->resource,
-                                                 ( LmResultFunction ) connection_auth_cb,
-                                                main_loop1,NULL,NULL ) )
-                   {
-                   iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-                   lm_connection_close ( connection, NULL );
-                   lm_connection_unref ( connection );
-                   free_data ( connect_data );
-                   g_main_loop_unref ( main_loop1 );
-                   g_free ( username );
-                   return KErrGeneral;
-                   }
-
-               g_main_loop_run ( main_loop1 );
-
-               g_main_loop_unref ( main_loop1 );
-                   
-
-               g_free ( username );
-               
-               // Construct a message
-               message = lm_message_new ( connect_data->msg_data->recipient,               
-                                          LM_MESSAGE_TYPE_MESSAGE );
-               lm_message_node_add_child ( message->node, "body", 
-                                           connect_data->msg_data->message);
-               
-               // Send message to the server
-               if ( !lm_connection_send ( connection, message, NULL ) )
-                   {
-                   iLog->Log ( _L ( "lm_connection_send failed" ) );
-                   lm_connection_close ( connection, NULL );
-                   lm_connection_unref ( connection );
-                   lm_message_unref ( message );
-                   free_data ( connect_data );     
-                   return KErrGeneral;
-                   }   
-               
-               // Close the connection
-               lm_connection_close ( connection, NULL );
-               
-               // Remove a reference on connection
-               lm_connection_unref ( connection );
-               
-               // Remove a reference on message
-               lm_message_unref ( message );
-               
-               free_data ( connect_data );
-               
-               // Message sending passed
-               iLog->Log ( _L ( "lm_connection_send passed" ) );
-               
-//fourth time
-               // Read a data from the CFG file
-                    if ( read_data ( connect_data, aItem ) != RC_OK )
-                        {
-                        iLog->Log ( _L ( "read_data failed" ) );
-                        free_data ( connect_data );
-                        return KErrGeneral;
-                        }
-                    iLog->Log ( _L ( "after read_data" ) );
-                    
-                    // Open a new closed connection
-                    connection = lm_connection_new ( connect_data->server );
-                    iLog->Log ( _L ( "after lm_connection_new " ) );
-                    if ( !connection )
-                        {
-                        iLog->Log ( _L ( "lm_connection_new failed" ) );
-                        free_data ( connect_data );
-                        return KErrGeneral;
-                        }
-                    
-                    // Set the gtalk's SSL port
-                    lm_connection_set_port ( connection, GTALK_SSL_PORT );
-                    
-                    // Set the JID
-                    lm_connection_set_jid ( connection, connect_data->username );
-                    
-                    // Proxy settings for Emulator
-                #ifdef __WINSCW__
-                    SetProxy ( connection, connect_data->proxy_data );
-                #endif
-                    
-                    // Set the connection to use SSL
-                    SSLInit ( connection );
-                    
-                   // *main_loop = g_main_loop_new ( NULL, FALSE );
-
-                    iLog->Log ( _L ( "before lm_connection_open" ) );
-                    
-                    if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                               main_loop, NULL, NULL ) ) 
-                        {
-                        iLog->Log ( _L ( "lm_connection_open failed" ));
-                        lm_connection_unref ( connection );
-                        g_main_loop_unref ( main_loop );
-                        free_data ( connect_data );     
-                        return KErrGeneral;
-                        }
-                        
-                    iLog->Log ( _L ( "after lm_connection_open" ) );
-                    
-                    g_main_loop_run ( main_loop );
-
-                    g_main_loop_unref ( main_loop );    
-
-                    
-                   // *main_loop1 = g_main_loop_new ( NULL, FALSE );
-                    
-                    // Get the username from the JID
-                   // gchar *username = get_user_name ( connect_data->username );
-                    
-                    // Authenticate with the server
-                    if ( !lm_connection_authenticate ( connection,
-                                                     username,
-                                                     connect_data->password,
-                                                     connect_data->resource,
-                                                      ( LmResultFunction ) connection_auth_cb,
-                                                     main_loop1,NULL,NULL ) )
-                        {
-                        iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-                        lm_connection_close ( connection, NULL );
-                        lm_connection_unref ( connection );
-                        free_data ( connect_data );
-                        g_main_loop_unref ( main_loop1 );
-                        g_free ( username );
-                        return KErrGeneral;
-                        }
-
-                    g_main_loop_run ( main_loop1 );
-
-                    g_main_loop_unref ( main_loop1 );
-                        
-
-                    g_free ( username );
-                    
-                    // Construct a message
-                    message = lm_message_new ( connect_data->msg_data->recipient,               
-                                               LM_MESSAGE_TYPE_MESSAGE );
-                    lm_message_node_add_child ( message->node, "body", 
-                                                connect_data->msg_data->message);
-                    
-                    // Send message to the server
-                    if ( !lm_connection_send ( connection, message, NULL ) )
-                        {
-                        iLog->Log ( _L ( "lm_connection_send failed" ) );
-                        lm_connection_close ( connection, NULL );
-                        lm_connection_unref ( connection );
-                        lm_message_unref ( message );
-                        free_data ( connect_data );     
-                        return KErrGeneral;
-                        }   
-                    
-                    // Close the connection
-                    lm_connection_close ( connection, NULL );
-                    
-                    // Remove a reference on connection
-                    lm_connection_unref ( connection );
-                    
-                    // Remove a reference on message
-                    lm_message_unref ( message );
-                    
-                    free_data ( connect_data );
-                    
-                    // Message sending passed
-                    iLog->Log ( _L ( "lm_connection_send passed" ) );
-                    
-//five time
-                    // Read a data from the CFG file
-                         if ( read_data ( connect_data, aItem ) != RC_OK )
-                             {
-                             iLog->Log ( _L ( "read_data failed" ) );
-                             free_data ( connect_data );
-                             return KErrGeneral;
-                             }
-                         iLog->Log ( _L ( "after read_data" ) );
-                         
-                         // Open a new closed connection
-                         connection = lm_connection_new ( connect_data->server );
-                         iLog->Log ( _L ( "after lm_connection_new " ) );
-                         if ( !connection )
-                             {
-                             iLog->Log ( _L ( "lm_connection_new failed" ) );
-                             free_data ( connect_data );
-                             return KErrGeneral;
-                             }
-                         
-                         // Set the gtalk's SSL port
-                         lm_connection_set_port ( connection, GTALK_SSL_PORT );
-                         
-                         // Set the JID
-                         lm_connection_set_jid ( connection, connect_data->username );
-                         
-                         // Proxy settings for Emulator
-                     #ifdef __WINSCW__
-                         SetProxy ( connection, connect_data->proxy_data );
-                     #endif
-                         
-                         // Set the connection to use SSL
-                         SSLInit ( connection );
-                         
-                     // *main_loop = g_main_loop_new ( NULL, FALSE );
-
-                          iLog->Log ( _L ( "before lm_connection_open" ) );
-                         
-                         if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                                    main_loop, NULL, NULL ) ) 
-                             {
-                             iLog->Log ( _L ( "lm_connection_open failed" ));
-                             lm_connection_unref ( connection );
-                             g_main_loop_unref ( main_loop );
-                             free_data ( connect_data );     
-                             return KErrGeneral;
-                             }
-                             
-                         iLog->Log ( _L ( "after lm_connection_open" ) );
-                         
-                         g_main_loop_run ( main_loop );
-
-                         g_main_loop_unref ( main_loop );    
-
-                         
-                       //    *main_loop1 = g_main_loop_new ( NULL, FALSE );
-                         
-                         // Get the username from the JID
-                         //gchar *username = get_user_name ( connect_data->username );
-                         
-                         // Authenticate with the server
-                         if ( !lm_connection_authenticate ( connection,
-                                                          username,
-                                                          connect_data->password,
-                                                          connect_data->resource,
-                                                           ( LmResultFunction ) connection_auth_cb,
-                                                          main_loop1,NULL,NULL ) )
-                             {
-                             iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-                             lm_connection_close ( connection, NULL );
-                             lm_connection_unref ( connection );
-                             free_data ( connect_data );
-                             g_main_loop_unref ( main_loop1 );
-                             g_free ( username );
-                             return KErrGeneral;
-                             }
-
-                         g_main_loop_run ( main_loop1 );
-
-                         g_main_loop_unref ( main_loop1 );
-                             
-
-                         g_free ( username );
-                         
-                         // Construct a message
-                         message = lm_message_new ( connect_data->msg_data->recipient,               
-                                                    LM_MESSAGE_TYPE_MESSAGE );
-                         lm_message_node_add_child ( message->node, "body", 
-                                                     connect_data->msg_data->message);
-                         
-                         // Send message to the server
-                         if ( !lm_connection_send ( connection, message, NULL ) )
-                             {
-                             iLog->Log ( _L ( "lm_connection_send failed" ) );
-                             lm_connection_close ( connection, NULL );
-                             lm_connection_unref ( connection );
-                             lm_message_unref ( message );
-                             free_data ( connect_data );     
-                             return KErrGeneral;
-                             }   
-                         
-                         // Close the connection
-                         lm_connection_close ( connection, NULL );
-                         
-                         // Remove a reference on connection
-                         lm_connection_unref ( connection );
-                         
-                         // Remove a reference on message
-                         lm_message_unref ( message );
-                         
-                         free_data ( connect_data );
-                         
-                         // Message sending passed
-                         iLog->Log ( _L ( "lm_connection_send passed" ) );
-                         
-//fifth time
-                         // Read a data from the CFG file
-                              if ( read_data ( connect_data, aItem ) != RC_OK )
-                                  {
-                                  iLog->Log ( _L ( "read_data failed" ) );
-                                  free_data ( connect_data );
-                                  return KErrGeneral;
-                                  }
-                              iLog->Log ( _L ( "after read_data" ) );
-                              
-                              // Open a new closed connection
-                              connection = lm_connection_new ( connect_data->server );
-                              iLog->Log ( _L ( "after lm_connection_new " ) );
-                              if ( !connection )
-                                  {
-                                  iLog->Log ( _L ( "lm_connection_new failed" ) );
-                                  free_data ( connect_data );
-                                  return KErrGeneral;
-                                  }
-                              
-                              // Set the gtalk's SSL port
-                              lm_connection_set_port ( connection, GTALK_SSL_PORT );
-                              
-                              // Set the JID
-                              lm_connection_set_jid ( connection, connect_data->username );
-                              
-                              // Proxy settings for Emulator
-                          #ifdef __WINSCW__
-                              SetProxy ( connection, connect_data->proxy_data );
-                          #endif
-                              
-                              // Set the connection to use SSL
-                              SSLInit ( connection );
-                              
-                          //    *main_loop = g_main_loop_new ( NULL, FALSE );
-
-                              iLog->Log ( _L ( "before lm_connection_open" ) );
-                              
-                              if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                                         main_loop, NULL, NULL ) ) 
-                                  {
-                                  iLog->Log ( _L ( "lm_connection_open failed" ));
-                                  lm_connection_unref ( connection );
-                                  g_main_loop_unref ( main_loop );
-                                  free_data ( connect_data );     
-                                  return KErrGeneral;
-                                  }
-                                  
-                              iLog->Log ( _L ( "after lm_connection_open" ) );
-                              
-                              g_main_loop_run ( main_loop );
-
-                              g_main_loop_unref ( main_loop );    
-
-                              
-                       //        *main_loop1 = g_main_loop_new ( NULL, FALSE );
-                              
-                              // Get the username from the JID
-                              //gchar *username = get_user_name ( connect_data->username );
-                              
-                              // Authenticate with the server
-                              if ( !lm_connection_authenticate ( connection,
-                                                               username,
-                                                               connect_data->password,
-                                                               connect_data->resource,
-                                                                ( LmResultFunction ) connection_auth_cb,
-                                                               main_loop1,NULL,NULL ) )
-                                  {
-                                  iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-                                  lm_connection_close ( connection, NULL );
-                                  lm_connection_unref ( connection );
-                                  free_data ( connect_data );
-                                  g_main_loop_unref ( main_loop1 );
-                                  g_free ( username );
-                                  return KErrGeneral;
-                                  }
-
-                              g_main_loop_run ( main_loop1 );
-
-                              g_main_loop_unref ( main_loop1 );
-                                  
-
-                              g_free ( username );
-                              
-                              // Construct a message
-                              message = lm_message_new ( connect_data->msg_data->recipient,               
-                                                         LM_MESSAGE_TYPE_MESSAGE );
-                              lm_message_node_add_child ( message->node, "body", 
-                                                          connect_data->msg_data->message);
-                              
-                              // Send message to the server
-                              if ( !lm_connection_send ( connection, message, NULL ) )
-                                  {
-                                  iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                  lm_connection_close ( connection, NULL );
-                                  lm_connection_unref ( connection );
-                                  lm_message_unref ( message );
-                                  free_data ( connect_data );     
-                                  return KErrGeneral;
-                                  }   
-                              
-                              // Close the connection
-                              lm_connection_close ( connection, NULL );
-                              
-                              // Remove a reference on connection
-                              lm_connection_unref ( connection );
-                              
-                              // Remove a reference on message
-                              lm_message_unref ( message );
-                              
-                              free_data ( connect_data );
-                              
-                              // Message sending passed
-                              iLog->Log ( _L ( "lm_connection_send passed" ) );
-                              
-//sixth time
-                              // Read a data from the CFG file
-                                   if ( read_data ( connect_data, aItem ) != RC_OK )
-                                       {
-                                       iLog->Log ( _L ( "read_data failed" ) );
-                                       free_data ( connect_data );
-                                       return KErrGeneral;
-                                       }
-                                   iLog->Log ( _L ( "after read_data" ) );
-                                   
-                                   // Open a new closed connection
-                                   connection = lm_connection_new ( connect_data->server );
-                                   iLog->Log ( _L ( "after lm_connection_new " ) );
-                                   if ( !connection )
-                                       {
-                                       iLog->Log ( _L ( "lm_connection_new failed" ) );
-                                       free_data ( connect_data );
-                                       return KErrGeneral;
-                                       }
-                                   
-                                   // Set the gtalk's SSL port
-                                   lm_connection_set_port ( connection, GTALK_SSL_PORT );
-                                   
-                                   // Set the JID
-                                   lm_connection_set_jid ( connection, connect_data->username );
-                                   
-                                   // Proxy settings for Emulator
-                               #ifdef __WINSCW__
-                                   SetProxy ( connection, connect_data->proxy_data );
-                               #endif
-                                   
-                                   // Set the connection to use SSL
-                                   SSLInit ( connection );
-                                   
-                        //        *main_loop = g_main_loop_new ( NULL, FALSE );
-
-                                   iLog->Log ( _L ( "before lm_connection_open" ) );
-                                   
-                                   if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                                              main_loop, NULL, NULL ) ) 
-                                       {
-                                       iLog->Log ( _L ( "lm_connection_open failed" ));
-                                       lm_connection_unref ( connection );
-                                       g_main_loop_unref ( main_loop );
-                                       free_data ( connect_data );     
-                                       return KErrGeneral;
-                                       }
-                                       
-                                   iLog->Log ( _L ( "after lm_connection_open" ) );
-                                   
-                                   g_main_loop_run ( main_loop );
-
-                                   g_main_loop_unref ( main_loop );    
-
-                                   
-                                  // GMainLoop   *main_loop1 = g_main_loop_new ( NULL, FALSE );
-                                   
-                                   // Get the username from the JID
-                                   //gchar *username = get_user_name ( connect_data->username );
-                                   
-                                   // Authenticate with the server
-                                   if ( !lm_connection_authenticate ( connection,
-                                                                    username,
-                                                                    connect_data->password,
-                                                                    connect_data->resource,
-                                                                     ( LmResultFunction ) connection_auth_cb,
-                                                                    main_loop1,NULL,NULL ) )
-                                       {
-                                       iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-                                       lm_connection_close ( connection, NULL );
-                                       lm_connection_unref ( connection );
-                                       free_data ( connect_data );
-                                       g_main_loop_unref ( main_loop1 );
-                                       g_free ( username );
-                                       return KErrGeneral;
-                                       }
-
-                                   g_main_loop_run ( main_loop1 );
-
-                                   g_main_loop_unref ( main_loop1 );
-                                       
-
-                                   g_free ( username );
-                                   
-                                   // Construct a message
-                                   message = lm_message_new ( connect_data->msg_data->recipient,               
-                                                              LM_MESSAGE_TYPE_MESSAGE );
-                                   lm_message_node_add_child ( message->node, "body", 
-                                                               connect_data->msg_data->message);
-                                   
-                                   // Send message to the server
-                                   if ( !lm_connection_send ( connection, message, NULL ) )
-                                       {
-                                       iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                       lm_connection_close ( connection, NULL );
-                                       lm_connection_unref ( connection );
-                                       lm_message_unref ( message );
-                                       free_data ( connect_data );     
-                                       return KErrGeneral;
-                                       }   
-                                   
-                                   // Close the connection
-                                   lm_connection_close ( connection, NULL );
-                                   
-                                   // Remove a reference on connection
-                                   lm_connection_unref ( connection );
-                                   
-                                   // Remove a reference on message
-                                   lm_message_unref ( message );
-                                   
-                                   free_data ( connect_data );
-                                   
-                                   // Message sending passed
-                                   iLog->Log ( _L ( "lm_connection_send passed" ) );
-                                   
-//seventh time
-                                   // Read a data from the CFG file
-                                        if ( read_data ( connect_data, aItem ) != RC_OK )
-                                            {
-                                            iLog->Log ( _L ( "read_data failed" ) );
-                                            free_data ( connect_data );
-                                            return KErrGeneral;
-                                            }
-                                        iLog->Log ( _L ( "after read_data" ) );
-                                        
-                                        // Open a new closed connection
-                                        connection = lm_connection_new ( connect_data->server );
-                                        iLog->Log ( _L ( "after lm_connection_new " ) );
-                                        if ( !connection )
-                                            {
-                                            iLog->Log ( _L ( "lm_connection_new failed" ) );
-                                            free_data ( connect_data );
-                                            return KErrGeneral;
-                                            }
-                                        
-                                        // Set the gtalk's SSL port
-                                        lm_connection_set_port ( connection, GTALK_SSL_PORT );
-                                        
-                                        // Set the JID
-                                        lm_connection_set_jid ( connection, connect_data->username );
-                                        
-                                        // Proxy settings for Emulator
-                                    #ifdef __WINSCW__
-                                        SetProxy ( connection, connect_data->proxy_data );
-                                    #endif
-                                        
-                                        // Set the connection to use SSL
-                                        SSLInit ( connection );
-                                        
-                               //          *main_loop = g_main_loop_new ( NULL, FALSE );
-
-                                        iLog->Log ( _L ( "before lm_connection_open" ) );
-                                        
-                                        if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                                                   main_loop, NULL, NULL ) ) 
-                                            {
-                                            iLog->Log ( _L ( "lm_connection_open failed" ));
-                                            lm_connection_unref ( connection );
-                                            g_main_loop_unref ( main_loop );
-                                            free_data ( connect_data );     
-                                            return KErrGeneral;
-                                            }
-                                            
-                                        iLog->Log ( _L ( "after lm_connection_open" ) );
-                                        
-                                        g_main_loop_run ( main_loop );
-
-                                        g_main_loop_unref ( main_loop );    
-
-                                        
-                                  //      GMainLoop   *main_loop1 = g_main_loop_new ( NULL, FALSE );
-                                        
-                                        // Get the username from the JID
-                                        //gchar *username = get_user_name ( connect_data->username );
-                                        
-                                        // Authenticate with the server
-                                        if ( !lm_connection_authenticate ( connection,
-                                                                         username,
-                                                                         connect_data->password,
-                                                                         connect_data->resource,
-                                                                          ( LmResultFunction ) connection_auth_cb,
-                                                                         main_loop1,NULL,NULL ) )
-                                            {
-                                            iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-                                            lm_connection_close ( connection, NULL );
-                                            lm_connection_unref ( connection );
-                                            free_data ( connect_data );
-                                            g_main_loop_unref ( main_loop1 );
-                                            g_free ( username );
-                                            return KErrGeneral;
-                                            }
-
-                                        g_main_loop_run ( main_loop1 );
-
-                                        g_main_loop_unref ( main_loop1 );
-                                            
-
-                                        g_free ( username );
-                                        
-                                        // Construct a message
-                                        message = lm_message_new ( connect_data->msg_data->recipient,               
-                                                                   LM_MESSAGE_TYPE_MESSAGE );
-                                        lm_message_node_add_child ( message->node, "body", 
-                                                                    connect_data->msg_data->message);
-                                        
-                                        // Send message to the server
-                                        if ( !lm_connection_send ( connection, message, NULL ) )
-                                            {
-                                            iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                            lm_connection_close ( connection, NULL );
-                                            lm_connection_unref ( connection );
-                                            lm_message_unref ( message );
-                                            free_data ( connect_data );     
-                                            return KErrGeneral;
-                                            }   
-                                        
-                                        // Close the connection
-                                        lm_connection_close ( connection, NULL );
-                                        
-                                        // Remove a reference on connection
-                                        lm_connection_unref ( connection );
-                                        
-                                        // Remove a reference on message
-                                        lm_message_unref ( message );
-                                        
-                                        free_data ( connect_data );
-                                        
-                                        // Message sending passed
-                                        iLog->Log ( _L ( "lm_connection_send passed" ) );
-                                        
-//eight time
-                                        // Read a data from the CFG file
-                                             if ( read_data ( connect_data, aItem ) != RC_OK )
-                                                 {
-                                                 iLog->Log ( _L ( "read_data failed" ) );
-                                                 free_data ( connect_data );
-                                                 return KErrGeneral;
-                                                 }
-                                             iLog->Log ( _L ( "after read_data" ) );
-                                             
-                                             // Open a new closed connection
-                                             connection = lm_connection_new ( connect_data->server );
-                                             iLog->Log ( _L ( "after lm_connection_new " ) );
-                                             if ( !connection )
-                                                 {
-                                                 iLog->Log ( _L ( "lm_connection_new failed" ) );
-                                                 free_data ( connect_data );
-                                                 return KErrGeneral;
-                                                 }
-                                             
-                                             // Set the gtalk's SSL port
-                                             lm_connection_set_port ( connection, GTALK_SSL_PORT );
-                                             
-                                             // Set the JID
-                                             lm_connection_set_jid ( connection, connect_data->username );
-                                             
-                                             // Proxy settings for Emulator
-                                         #ifdef __WINSCW__
-                                             SetProxy ( connection, connect_data->proxy_data );
-                                         #endif
-                                             
-                                             // Set the connection to use SSL
-                                             SSLInit ( connection );
-                                             
-                              //                *main_loop = g_main_loop_new ( NULL, FALSE );
-
-                                             iLog->Log ( _L ( "before lm_connection_open" ) );
-                                             
-                                             if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                                                        main_loop, NULL, NULL ) ) 
-                                                 {
-                                                 iLog->Log ( _L ( "lm_connection_open failed" ));
-                                                 lm_connection_unref ( connection );
-                                                 g_main_loop_unref ( main_loop );
-                                                 free_data ( connect_data );     
-                                                 return KErrGeneral;
-                                                 }
-                                                 
-                                             iLog->Log ( _L ( "after lm_connection_open" ) );
-                                             
-                                             g_main_loop_run ( main_loop );
-
-                                             g_main_loop_unref ( main_loop );    
-
-                                             
-                                    //         GMainLoop   *main_loop1 = g_main_loop_new ( NULL, FALSE );
-                                             
-                                             // Get the username from the JID
-                                             //gchar *username = get_user_name ( connect_data->username );
-                                             
-                                             // Authenticate with the server
-                                             if ( !lm_connection_authenticate ( connection,
-                                                                              username,
-                                                                              connect_data->password,
-                                                                              connect_data->resource,
-                                                                               ( LmResultFunction ) connection_auth_cb,
-                                                                              main_loop1,NULL,NULL ) )
-                                                 {
-                                                 iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-                                                 lm_connection_close ( connection, NULL );
-                                                 lm_connection_unref ( connection );
-                                                 free_data ( connect_data );
-                                                 g_main_loop_unref ( main_loop1 );
-                                                 g_free ( username );
-                                                 return KErrGeneral;
-                                                 }
-
-                                             g_main_loop_run ( main_loop1 );
-
-                                             g_main_loop_unref ( main_loop1 );
-                                                 
-
-                                             g_free ( username );
-                                             
-                                             // Construct a message
-                                             message = lm_message_new ( connect_data->msg_data->recipient,               
-                                                                        LM_MESSAGE_TYPE_MESSAGE );
-                                             lm_message_node_add_child ( message->node, "body", 
-                                                                         connect_data->msg_data->message);
-                                             
-                                             // Send message to the server
-                                             if ( !lm_connection_send ( connection, message, NULL ) )
-                                                 {
-                                                 iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                                 lm_connection_close ( connection, NULL );
-                                                 lm_connection_unref ( connection );
-                                                 lm_message_unref ( message );
-                                                 free_data ( connect_data );     
-                                                 return KErrGeneral;
-                                                 }   
-                                             
-                                             // Close the connection
-                                             lm_connection_close ( connection, NULL );
-                                             
-                                             // Remove a reference on connection
-                                             lm_connection_unref ( connection );
-                                             
-                                             // Remove a reference on message
-                                             lm_message_unref ( message );
-                                             
-                                             free_data ( connect_data );
-                                             
-                                             // Message sending passed
-                                             iLog->Log ( _L ( "lm_connection_send passed" ) );
-                                             
-//ninth time
-                                             // Read a data from the CFG file
-                                                  if ( read_data ( connect_data, aItem ) != RC_OK )
-                                                      {
-                                                      iLog->Log ( _L ( "read_data failed" ) );
-                                                      free_data ( connect_data );
-                                                      return KErrGeneral;
-                                                      }
-                                                  iLog->Log ( _L ( "after read_data" ) );
-                                                  
-                                                  // Open a new closed connection
-                                                  connection = lm_connection_new ( connect_data->server );
-                                                  iLog->Log ( _L ( "after lm_connection_new " ) );
-                                                  if ( !connection )
-                                                      {
-                                                      iLog->Log ( _L ( "lm_connection_new failed" ) );
-                                                      free_data ( connect_data );
-                                                      return KErrGeneral;
-                                                      }
-                                                  
-                                                  // Set the gtalk's SSL port
-                                                  lm_connection_set_port ( connection, GTALK_SSL_PORT );
-                                                  
-                                                  // Set the JID
-                                                  lm_connection_set_jid ( connection, connect_data->username );
-                                                  
-                                                  // Proxy settings for Emulator
-                                              #ifdef __WINSCW__
-                                                  SetProxy ( connection, connect_data->proxy_data );
-                                              #endif
-                                                  
-                                                  // Set the connection to use SSL
-                                                  SSLInit ( connection );
-                                                  
-                                       //            *main_loop = g_main_loop_new ( NULL, FALSE );
-
-                                                  iLog->Log ( _L ( "before lm_connection_open" ) );
-                                                  
-                                                  if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                                                             main_loop, NULL, NULL ) ) 
-                                                      {
-                                                      iLog->Log ( _L ( "lm_connection_open failed" ));
-                                                      lm_connection_unref ( connection );
-                                                      g_main_loop_unref ( main_loop );
-                                                      free_data ( connect_data );     
-                                                      return KErrGeneral;
-                                                      }
-                                                      
-                                                  iLog->Log ( _L ( "after lm_connection_open" ) );
-                                                  
-                                                  g_main_loop_run ( main_loop );
-
-                                                  g_main_loop_unref ( main_loop );    
-
-                                                  
-                                          //        GMainLoop   *main_loop1 = g_main_loop_new ( NULL, FALSE );
-                                                  
-                                                  // Get the username from the JID
-                                                  //gchar *username = get_user_name ( connect_data->username );
-                                                  
-                                                  // Authenticate with the server
-                                                  if ( !lm_connection_authenticate ( connection,
-                                                                                   username,
-                                                                                   connect_data->password,
-                                                                                   connect_data->resource,
-                                                                                    ( LmResultFunction ) connection_auth_cb,
-                                                                                   main_loop1,NULL,NULL ) )
-                                                      {
-                                                      iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-                                                      lm_connection_close ( connection, NULL );
-                                                      lm_connection_unref ( connection );
-                                                      free_data ( connect_data );
-                                                      g_main_loop_unref ( main_loop1 );
-                                                      g_free ( username );
-                                                      return KErrGeneral;
-                                                      }
-
-                                                  g_main_loop_run ( main_loop1 );
-
-                                                  g_main_loop_unref ( main_loop1 );
-                                                      
-
-                                                  g_free ( username );
-                                                  
-                                                  // Construct a message
-                                                  message = lm_message_new ( connect_data->msg_data->recipient,               
-                                                                             LM_MESSAGE_TYPE_MESSAGE );
-                                                  lm_message_node_add_child ( message->node, "body", 
-                                                                              connect_data->msg_data->message);
-                                                  
-                                                  // Send message to the server
-                                                  if ( !lm_connection_send ( connection, message, NULL ) )
-                                                      {
-                                                      iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                                      lm_connection_close ( connection, NULL );
-                                                      lm_connection_unref ( connection );
-                                                      lm_message_unref ( message );
-                                                      free_data ( connect_data );     
-                                                      return KErrGeneral;
-                                                      }   
-                                                  
-                                                  // Close the connection
-                                                  lm_connection_close ( connection, NULL );
-                                                  
-                                                  // Remove a reference on connection
-                                                  lm_connection_unref ( connection );
-                                                  
-                                                  // Remove a reference on message
-                                                  lm_message_unref ( message );
-                                                  
-                                                  free_data ( connect_data );
-                                                  
-                                                  // Message sending passed
-                                                  iLog->Log ( _L ( "lm_connection_send passed" ) );
-                                                  
-//tenth time
-                                                  // Read a data from the CFG file
-                                                       if ( read_data ( connect_data, aItem ) != RC_OK )
-                                                           {
-                                                           iLog->Log ( _L ( "read_data failed" ) );
-                                                           free_data ( connect_data );
-                                                           return KErrGeneral;
-                                                           }
-                                                       iLog->Log ( _L ( "after read_data" ) );
-                                                       
-                                                       // Open a new closed connection
-                                                       connection = lm_connection_new ( connect_data->server );
-                                                       iLog->Log ( _L ( "after lm_connection_new " ) );
-                                                       if ( !connection )
-                                                           {
-                                                           iLog->Log ( _L ( "lm_connection_new failed" ) );
-                                                           free_data ( connect_data );
-                                                           return KErrGeneral;
-                                                           }
-                                                       
-                                                       // Set the gtalk's SSL port
-                                                       lm_connection_set_port ( connection, GTALK_SSL_PORT );
-                                                       
-                                                       // Set the JID
-                                                       lm_connection_set_jid ( connection, connect_data->username );
-                                                       
-                                                       // Proxy settings for Emulator
-                                                   #ifdef __WINSCW__
-                                                       SetProxy ( connection, connect_data->proxy_data );
-                                                   #endif
-                                                       
-                                                       // Set the connection to use SSL
-                                                       SSLInit ( connection );
-                                                       
-                                             //           *main_loop = g_main_loop_new ( NULL, FALSE );
-
-                                                       iLog->Log ( _L ( "before lm_connection_open" ) );
-                                                       
-                                                       if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                                                                  main_loop, NULL, NULL ) ) 
-                                                           {
-                                                           iLog->Log ( _L ( "lm_connection_open failed" ));
-                                                           lm_connection_unref ( connection );
-                                                           g_main_loop_unref ( main_loop );
-                                                           free_data ( connect_data );     
-                                                           return KErrGeneral;
-                                                           }
-                                                           
-                                                       iLog->Log ( _L ( "after lm_connection_open" ) );
-                                                       
-                                                       g_main_loop_run ( main_loop );
-
-                                                       g_main_loop_unref ( main_loop );    
-
-                                                       
-                                            //           GMainLoop   *main_loop1 = g_main_loop_new ( NULL, FALSE );
-                                                       
-                                                       // Get the username from the JID
-                                                       //gchar *username = get_user_name ( connect_data->username );
-                                                       
-                                                       // Authenticate with the server
-                                                       if ( !lm_connection_authenticate ( connection,
-                                                                                        username,
-                                                                                        connect_data->password,
-                                                                                        connect_data->resource,
-                                                                                         ( LmResultFunction ) connection_auth_cb,
-                                                                                        main_loop1,NULL,NULL ) )
-                                                           {
-                                                           iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-                                                           lm_connection_close ( connection, NULL );
-                                                           lm_connection_unref ( connection );
-                                                           free_data ( connect_data );
-                                                           g_main_loop_unref ( main_loop1 );
-                                                           g_free ( username );
-                                                           return KErrGeneral;
-                                                           }
-
-                                                       g_main_loop_run ( main_loop1 );
-
-                                                       g_main_loop_unref ( main_loop1 );
-                                                           
-
-                                                       g_free ( username );
-                                                       
-                                                       // Construct a message
-                                                       message = lm_message_new ( connect_data->msg_data->recipient,               
-                                                                                  LM_MESSAGE_TYPE_MESSAGE );
-                                                       lm_message_node_add_child ( message->node, "body", 
-                                                                                   connect_data->msg_data->message);
-                                                       
-                                                       // Send message to the server
-                                                       if ( !lm_connection_send ( connection, message, NULL ) )
-                                                           {
-                                                           iLog->Log ( _L ( "lm_connection_send failed" ) );
-                                                           lm_connection_close ( connection, NULL );
-                                                           lm_connection_unref ( connection );
-                                                           lm_message_unref ( message );
-                                                           free_data ( connect_data );     
-                                                           return KErrGeneral;
-                                                           }   
-                                                       
-                                                       // Close the connection
-                                                       lm_connection_close ( connection, NULL );
-                                                       
-                                                       // Remove a reference on connection
-                                                       lm_connection_unref ( connection );
-                                                       
-                                                       // Remove a reference on message
-                                                       lm_message_unref ( message );
-                                                       
-                                                       free_data ( connect_data );
-                                                       
-                                                       // Message sending passed
-                                                       iLog->Log ( _L ( "lm_nft_loginlogoutmultipletime" ) );
-                                                       
-                                                  
-     return KErrNone;
-}
- 
- TInt Ctstlm::lm_nft_receiving100_message_L(CStifItemParser& aItem)
-     {
-     LmConnection *connection   = NULL;
-     ConnectData  *connect_data = NULL;
-     LmMessage    *message = NULL;
-     LmMessageHandler *handler = NULL;
-     HandleData *handle_data = NULL;
-     
-     iLog->Log ( _L ( "lm_nft_receiving100_message_L" ) );
-     
-     // Read a data from the CFG file
-     if ( read_data ( connect_data, aItem ) != RC_OK )
-         {
-         iLog->Log ( _L ( "read_data failed" ) );
-         free_data ( connect_data );
-         return KErrGeneral;
-         }
-     iLog->Log ( _L ( "after read_data" ) );
-     
-     // Open a new closed connection
-     connection = lm_connection_new ( connect_data->server );
-     iLog->Log ( _L ( "after lm_connection_new " ) );
-     if ( !connection )
-         {
-         iLog->Log ( _L ( "lm_connection_new failed" ) );
-         free_data ( connect_data );
-         return KErrGeneral;
-         }
-     
-     // Set the gtalk's SSL port
-     lm_connection_set_port ( connection, GTALK_SSL_PORT );
-     
-     // Set the JID
-     lm_connection_set_jid ( connection, connect_data->username );
-     
-     // Proxy settings for Emulator
- #ifdef __WINSCW__
-     SetProxy ( connection, connect_data->proxy_data );
- #endif
-     
-     // Set the connection to use SSL
-     SSLInit ( connection );
-     
-     GMainLoop   *main_loop = g_main_loop_new ( NULL, FALSE );
-     iLog->Log ( _L ( "before lm_connection_open" ) );   
-     if ( !lm_connection_open ( connection, ( LmResultFunction ) connection_open_cb,
-                                main_loop, NULL, NULL ) ) 
-         {
-         iLog->Log ( _L ( "lm_connection_open failed" ));
-         lm_connection_unref ( connection );
-         g_main_loop_unref ( main_loop );
-         free_data ( connect_data );     
-         return KErrGeneral;
-         }
-         
-     iLog->Log ( _L ( "after lm_connection_open" ) );    
-     g_main_loop_run ( main_loop );
-     g_main_loop_unref ( main_loop );    
-     
-     main_loop = g_main_loop_new ( NULL, FALSE );    
-     // Get the username from the JID
-     gchar *username = get_user_name ( connect_data->username );
-     
-     // Authenticate with the server
-     if ( !lm_connection_authenticate ( connection,
-                                      username,
-                                      connect_data->password,
-                                      connect_data->resource,
-                                       ( LmResultFunction ) connection_auth_cb,
-                                      main_loop,NULL,NULL ) )
-         {
-         iLog->Log ( _L ( "lm_connection_authenticate failed" ) );
-         lm_connection_close ( connection, NULL );
-         lm_connection_unref ( connection );
-         free_data ( connect_data );
-         g_main_loop_unref ( main_loop );
-         g_free ( username );
-         return KErrGeneral;
-         }
-
-     g_main_loop_run ( main_loop );
-     g_main_loop_unref ( main_loop );
-     g_free ( username );
-
-     //------------------------------------------------------------------------
-     //Send own presence
-     message = lm_message_new_with_sub_type ( NULL,
-                                          LM_MESSAGE_TYPE_PRESENCE,
-                                          LM_MESSAGE_SUB_TYPE_AVAILABLE );
-     
-     gboolean result = lm_connection_send ( connection, message, NULL ); 
-    // GMainLoop  *main_loop1;
-        
-     //------------------------------------------------------------------------
-     //
-     // Register a handler to recieve msgs
-     //
-     handle_data = g_new0 ( HandleData, 1 );
-     GMainLoop *main_loop1 = g_main_loop_new ( NULL, FALSE );
-     handle_data->main_loop=main_loop1;
-     handle_data->count=0;
-     handler = lm_message_handler_new ( 
-                          (LmHandleMessageFunction)handle_100_messages,
-                          handle_data,
-                          NULL );
-     
-     lm_connection_register_message_handler ( connection,
-                                              handler,
-                                              LM_MESSAGE_TYPE_MESSAGE,
-                                              LM_HANDLER_PRIORITY_FIRST );
-     
-     g_main_loop_run ( main_loop1 );
-     g_main_loop_unref ( main_loop1 );
-     //------------------------------------------------------------------------
-        
-     lm_message_unref(message);
-     lm_message_handler_unref(handler);
-     // Close the connection
-     lm_connection_close ( connection, NULL );   
-     // Remove a reference on connection
-     lm_connection_unref ( connection );     
-     free_data ( connect_data );
-     
-     // Message sending passed
-     iLog->Log ( _L ( "lm_nft_receiving100_message_L" ) );
-     
-     return KErrNone;
-}	    
-//  End of File
--- a/opensrv_plat/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  bld.inf
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-
-#include "../messagequeue_api/group/bld.inf"
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
\ No newline at end of file
--- a/opensrv_plat/messagequeue_api/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* ============================================================================
-*  Name        : msg_enums.h
-*  Part of     : message queue library
-*  Version     : %version: 2 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-../inc/msg_enums.h     	MW_LAYER_PLATFORM_EXPORT_PATH(msg_enums.h)
-../inc/msgliterals.h     	MW_LAYER_PLATFORM_EXPORT_PATH(msgliterals.h)
-../inc/msgqinternal.h     	MW_LAYER_PLATFORM_EXPORT_PATH(msgqinternal.h)
-../inc/msgqlib.h    	MW_LAYER_PLATFORM_EXPORT_PATH(msgqlib.h)
-
- 
\ No newline at end of file
--- a/opensrv_plat/messagequeue_api/inc/msg_enums.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +0,0 @@
-/*
-* ============================================================================
-*  Name        : msg_enums.h
-*  Part of     : message queue library
-*  Version     : %version: 3 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-
-#ifndef __MSG_ENUMS_H__
-#define __MSG_ENUMS_H__
-
-#include <stdio.h>
-#include <gtypes.h>
-#define MAX_PARAM_LEN 1024
-
-
-/**
-* set of resuest ids from the clients
-*/
-//enum Request_Types Request_Types;
-enum Request_Types
-	{
-	// login  
-	ELogin_Request = 1,	
-	// logout 
-	ELogout_Request,
-	EServer_DisConnect_Request,
-	//Fetch Contact : only used when there are no contacts
-	EFetch_Contacts_Error,
-	//to send a message
-	ESend_Request,
-	//For send error
-	ESend_Error,
-	//to fetch the presence
-	EPresence_Request,
-	// to add a list
-	EAdd_List_Request,
-	// to delete a list
-	EDelete_List_Request,
-	// to rename a list
-	ERename_List_Request,
-	// to add a contact
-	EAdd_Contact_Request,
-	// to delete a contact
-	EDelete_Contact_Request,
-	//accept a local pending request
-	EAccept_Contact_Request,
-	//Reject local pending request
-	EReject_Contact_Request,
-	// to rename a contact
-	ERename_Conatct_Request,
-	//to receive message
-	EText_Message_Receive,
-	//The order here should not be changed
-	//The logic in code is heavily dependant
-	//on the order of these three enums
-	// to fetch the contacts from server
-	ECurrent_Member_Contacts,
-	//local pending
-	ELocal_Pending_Contacts,
-	//remote pending
-	ERemote_Pending_Contacts,
-	
-	//user is our client and contact is othr end 
-	//user -> contact
-	//contact -> user
-	
-	//Some other contact trying to add client
-	ETrying_To_Add_Contact,
-	//User added a contact
-	EKnown_Contact_Added,
-	//User added contact and it is remote pending
-	ESubscribe_Remote_Pending,
-	//Remote pending request rejected or user removed the contact from list
-	ESubscribe_Removed_Or_Rejected,
-	//Remote pending request accepted for subscribe of contact presence
-	//So now the user can know the presence of contact
-	ESubscribe_RP_Accepted,
-	//Remote pending request accepted for publish of users presence
-	//So now the contact can know the presence of user
-	EPublish_RP_Accepted,
-	//Removed from publish list
-	EPublish_Removed_Or_Rejected,
-	//
-	ETrying_To_Add_Contact_Known,
-	//
-	ETrying_To_Add_Contact_Publish,
-	
-	//to update own presence
-	EUpdateOwnPresence,
-	//to update own avtar
-	EUpdateOwnAvtar,
-    //clear avatar
-	EClearOwnAvatar,
-	//presence notification
-	EPresenceNotification,	
-	
-	//Kill the process
-	EKill_Process,
-	//Search for contacts
-	ESearch,
-	
-	//get the search keys
-	ESearch_Get_Keys,
-	
-	//Search state changed
-	ESearch_State_During,
-	
-	//Search state changed : Done
-	ESearch_State_Finished,	
-	
-	EUserEndGprs,
-	
-	//Fetch the contacts
-	EFetchCachedContacts,
-
-	// add if  required
-	} ;
-	
-/**
-* message types send and recieve via queue
-*/	
-enum Message_Types
-	{
-	EInteger,
-	EString,
-	EChar,
-	EEnums
-	// add here if need
-	};
-/**
-* Message header for request
-*/
-typedef struct message_hdr_req message_hdr_req;
-
-struct message_hdr_req
-	{
-	gint message_type; //Type of the message
-	gchar continue_flag;
-	gint protocol_id;//from TRequestId	
-	gint session_id;//from TRequestId
-	gint request_id;//from TRequestId
-	};
-	
-/**
-* Message header for response 
-*/
-typedef struct message_hdr_resp message_hdr_resp;
-
-struct message_hdr_resp
-	{
-	//Warning : !!!!!!!!!!!!!! The order should not be changed 
-	message_hdr_req hdr_req;
-	gchar continue_flag;
-	gint response; //success or not 
-	gint error_type; //if not, error type
-	};
-	
-
-/**
-* operations state enums variables 
-*/
-
-enum Login_State
-	{
-	// default request  error
-	EGeneral_Err = -1,
-	// connected to server successfully  
-	EConnected,	
-	// connecting to server in progress 
-	EConnecting,
-	// not connected to server or logged off
-	ENotConnected
-
-	// add if  required
-	};
-	
-/**
-* error codes..
-*/
-enum error_codes 
-	{
-	INVALID_PARAMETERES = -7000,
-	DBUS_CONNECTION_ERROR,
-	TP_CONNMGR_ERROR,
-	TP_CONNECTION_ERROR,
-	TP_HASHTABLE_ERROR,
-	MEM_ALLOCATION_ERROR,
-	NOT_CONNECTED,
-	CONNECTION_STATUS_ERROR,
-	MSG_Q_SEND_FAILED,
-	TP_SEARCH_CHAN_ERROR,
-	TP_SEARCH_IFACE_ERROR,
-	TP_AVATAR_IFACE_ERROR,
-	
-	ELOGIN_AUTHENTICATION, //CASE 3 FRM SPEC 
-	ELOGIN_NONE_SPECIFIED,//CAN BE USER CANCELLING THE A/P ETC.,  CASE 0 FRM SPEC
-	ELOGIN_NETWORK_ERROR, //For the network errors
-	ELOGIN_AUTHORIZATION, //ALL SSL RELATED ERRORS OTHR CASES
-	};
-	
-#endif //__MSG_ENUMS_H__
--- a/opensrv_plat/messagequeue_api/inc/msgliterals.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
-* ============================================================================
-*  Name        : isoliterals.h
-*  Part of     : isolation server.
-*  Version     : %version: 1 %
-*
-*  Copyright © 2007-2008 Nokia.  All rights reserved.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ============================================================================
-* Template version: 1.0
-*/
-
-
-#ifndef __MSGLITERALS_H__
-#define __MSGLITERALS_H__
-
-#include <msgqlib.h>
-
-#define REQUEST_QUEUE 1
-
-#define RESPONSE_QUEUE 2
-
-#define RESPONSE_DATA_QUEUE 3
-
-#define MAX_SIZE_DATA 1024
-
-#define MAX_MSG_Q_SIZE 10
-
-#define MAX_MSG_RECEIPIENTS ( 10 + 1 )
-#define MAX_MSG_SIZE 1024
-
-#define PORTSRV 443
-
-
-#define TIME_OUT 500
-
-#define ServerAddr "talk.google.com"
-#define TestId "mytest" 
-#define ServerStr "server"
-#define ResourceStr "resource"
-#define AccountStr "account"
-#define PasswdStr "password"
-#define PortStr "port"
-#define OldsslStr "old-ssl"
-
-#define NewChannelStr "NewChannel"
-#define StatusChangedStr "StatusChanged"
-
-/**
- * Macro for isoserver implementation to suppress warnings
- * from unused formal parameters.
- */
-#define UNUSED_FORMAL_PARAM(p) (void) p
-
-#endif //__MSGLITERALS_H__
\ No newline at end of file
--- a/opensrv_plat/messagequeue_api/inc/msgqinternal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/** 
- *  @file MsgQInternal.h
- *  Description: Internal Header file for MsgQLib
- *  Copyright (c) 2007 Nokia Corporation.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef MSGQINTERNAL_H
-#define MSGQINTERNAL_H
-
-#include <msgqlib.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* data strucure used for maintaining message queues */
-
-typedef struct MsgQInfo* MSGQ_INFO_PTR;
-
-typedef struct MsgQInfo {
-	MSGQ_INFO_PTR	 next;	      /* next entry in list                  */
-	ULONG			 qName;       /* queue name                          */
-	int				 qId;		  /* queue id                 			 */
-	int				 semId ;      /* semaphore id           			 */
-	ULONG			 sendState;	  /* message can be sent                 */
-	ULONG			 numMsgs;     /* number of messages queued           */
-	ULONG			 maxNumMsgs;  /* maximum number of messages queued   */
-	struct msqid_ds* slMqInfo_p;  /* msg q info                  		 */
-}MSGQ_INFO;
-
-
-/* Linked List used for maintaining list of all message queues created */
-
-typedef struct MsgQInfoList* MSGQ_INFO_LIST_PTR;
-
-typedef struct MsgQInfoList {
-	MSGQ_INFO_LIST_PTR next;     /* next entry in list */
-	ULONG               qName;   /* queue name         */
-} MSGQ_INFO_LIST;
-
-/* Forward Declaration of Internal Functions */
-int   InstallMsqQTable(ULONG qName, int qId, int semId, int* err);
-void  AddToMsgQTable(ULONG qName);
-int   RemoveFromMsqQTable(ULONG qName, int* err);
-void  DeleteFromMsgQTable(ULONG qName);
-MSGQ_INFO* MsgQTableLookup(ULONG qName);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* MSGQINTERNAL_H */
--- a/opensrv_plat/messagequeue_api/inc/msgqlib.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-/** 
- *  @file MsgQLib.h
- *  Description: Header file for MsgQLib
- *  Copyright (c) 2007 Nokia Corporation.
-*  All rights reserved.
-*  Redistribution and use in source and binary forms, with or without modification, 
-*  are permitted provided that the following conditions are met:
-*  Redistributions of source code must retain the above copyright notice, this list 
-*  of conditions and the following disclaimer.Redistributions in binary form must 
-*  reproduce the above copyright notice, this list of conditions and the following 
-*  disclaimer in the documentation and/or other materials provided with the distribution.
-*  Neither the name of the Nokia Corporation nor the names of its contributors may be used 
-*  to endorse or promote products derived from this software without specific prior written 
-*  permission.
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-*  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-*  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
-*  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
-*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef __MSGQLIB_H__
-#define __MSGQLIB_H__
-
-#include <_ansi.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MsgQLib sizes */
-#define  MAX_MSG_LEN	   2048 
-
-/* hash table parameters - table size must be a prime number  */
-#define  MSGQ_TBL_SZ	   101
-
-/* message send states */
-#define MSG_Q_READY        0
-#define MSG_Q_CLEANING	   1
-
-
-#define NO_WAIT 			0
-#define WAIT_FOREVER 		0xFFFF
-
-#ifndef NULL
-#define NULL 				0
-#endif /* NULL */
-
-/* errors */
-#define KMsgQLibErr			 	0x100
-#define KMsgQLibNoMemoryErr 	(KMsgQLibErr | 1) /* out of memory */
-#define KMsgQLibQIdErr 			(KMsgQLibErr | 2) /* queue already in use or invalid */
-#define KMsgQLibParamErr    	(KMsgQLibErr | 3) /* illegal parm(s)/val(s) */
-#define KMsgQLibQFlushErr   	(KMsgQLibErr | 4) /* queue being flushed */
-#define KMsgQLibQShortErr   	(KMsgQLibErr | 5) /* internal error:  inconsistency between #of msgs*/
-
-#define  MSG_Q_FIFO       1
-#define  MSG_Q_PRIORITY   2
-#define  MSG_PRI_NORMAL   3
-#define  MSG_PRI_URGENT   4
-#define  SEM_Q_FIFO       5
-#define  SEM_Q_PRIORITY   6
-
-#define  OK               0
-#define  ERROR           -1  
-
-typedef  unsigned long    ULONG ;
-typedef  unsigned short   ushort_t;
-
-
-/**
- *
- * Creates a message queue with the argument passed
- *
- * @param qName   - queue name
- * @param maxMsgs - max messages in the queue
- * @param qOptions - message queue options
- *                        MSG_Q_FIFO
- *                        MSG_Q_PRIORITY
- * @param err - error code to be returned
- *
- * @return Returns status and error code
- */
-IMPORT_C int MsgQCreate (ULONG qName, ULONG maxMsgs, ULONG qOptions, int* err);
-
-/**
- *
- * This function deletes a message queue
- *
- * @param qName - queue name
- * @param err - error code to be returned
- *
- * @return Returns status and error code
- **/
-IMPORT_C int MsgQDelete (ULONG qName, int* err);
-
-/**
- *
- * This function sends a message with internal copy
- *
- * @param qName - queue name
- * @param msg - message to send
- * @param nBytes - length of message
- * @param priority - message priority
- * @param timeout - milliseconds to wait
- * @param err - error code to be returned
- *
- * @return Returns status and error code
- **/
-
-IMPORT_C int MsgQSend (ULONG qName, char* msg, ULONG nBytes, ULONG priority, int timeout, int* err);
-
-/**
- *
- * This function receives a message with internal copy
- *
- * @param qName - queue name
- * @param msg - buffer for received message
- * @param maxNBytes - length of buffer
- * @param timeout - milliseconds to wait
- * @param err - error code to be returned
- *
- * @return Returns status and error code
- **/
-
-IMPORT_C int MsgQReceive (ULONG qName, char* msg, ULONG maxNBytes, int timeout, int* err);
-
-/**
- *
- * This function checks how many messages are in a queue
- *
- * @param qName - queue name
- * @param err - error code to be returned
- *
- * @return Returns status and error code
- **/
-IMPORT_C int MsgQCheck (ULONG qName, int* err);
-
-/**
- * This function checks the maximum number of messages in a queue
- *
- * @param qName - queue name
- * @param err - error code to be returned
- *
- * @return Returns status and error code
- **/
-IMPORT_C int MsgQMaxCheck (ULONG qName, int* err);
-
-/**
- *
- * This function empties the specified queue
- *
- * @param qName - queue name
- * @param err - error code to be returned
- *
- * @return Returns status and error code
- **/
-IMPORT_C int MsgQClean (ULONG qName, int* err);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // __MSGQLIB_H__ 
--- a/opensrv_plat/messagequeue_api/tsrc/bmarm/messagequeue_apiu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
-
--- a/opensrv_plat/messagequeue_api/tsrc/bwins/messagequeue_apiu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
-
--- a/opensrv_plat/messagequeue_api/tsrc/conf/messagequeue_api.cfg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-[Test]
-title TestMessageQCreate
-create messagequeue_api messagequeue_apiobj
-messagequeue_apiobj TestMessageQCreate 
-delete messagequeue_apiobj
-[Endtest] 
-
-[Test]
-title TestMessageQSend
-create messagequeue_api messagequeue_apiobj
-messagequeue_apiobj TestMessageQSend 
-delete messagequeue_apiobj
-[Endtest] 
-
-[Test]
-title TestMessageQDelete
-create messagequeue_api messagequeue_apiobj
-messagequeue_apiobj TestMessageQDelete 
-delete messagequeue_apiobj
-[Endtest] 
-
-[Test]
-title TestMessageQReceive
-create messagequeue_api messagequeue_apiobj
-messagequeue_apiobj TestMessageQReceive 
-delete messagequeue_apiobj
-[Endtest] 
-
-[Test]
-title TestMessageQClean
-create messagequeue_api messagequeue_apiobj
-messagequeue_apiobj TestMessageQClean 
-delete messagequeue_apiobj
-[Endtest] 
-
-[Test]
-title TestMessageQCheck
-create messagequeue_api messagequeue_apiobj
-messagequeue_apiobj TestMessageQCheck 
-delete messagequeue_apiobj
-[Endtest] 
-
-[Test]
-title TestMsgQMaxCheck
-create messagequeue_api messagequeue_apiobj
-messagequeue_apiobj TestMsgQMaxCheck 
-delete messagequeue_apiobj
-[Endtest] 
\ No newline at end of file
--- a/opensrv_plat/messagequeue_api/tsrc/eabi/messagequeue_apiu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
-
--- a/opensrv_plat/messagequeue_api/tsrc/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-* 
-* Description: 
-*
-*/
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// defaults to WINS MARM so you can ignore this if you just build these
-	
-	DEFAULT
-
-PRJ_TESTEXPORTS
-// NOTE: If using ARS requirements all export operations should be done under this.
-// 'abld test export'
-
-PRJ_EXPORTS
-// Specify the source file followed by its destination here
-// copy will be used to copy the source file to its destination
-// If there's no destination then the source file will be copied
-// to the same name in 
-// Example: 
-/*
-
-*/
-../init/TestFramework.ini /epoc32/winscw/c/TestFramework/TestFramework.ini
-../conf/messagequeue_api.cfg /epoc32/winscw/c/TestFramework/messagequeue_api.cfg	 
-	
-
-
-PRJ_MMPFILES
-//messagequeue_api.mmp
-//messagequeue_api_nrm.mmp
-PRJ_TESTMMPFILES
-messagequeue_api.mmp
-	
-	
-	
-
-// Specify the .mmp files required for building the important component
-// releasables.
-//
-// Specify "tidy" if the component you need to build doesn't need to be
-// released. Specify "ignore" if the MMP file exists but should be
-// ignored.
-// Example:
-
-
-//  End of File
--- a/opensrv_plat/messagequeue_api/tsrc/group/messagequeue_api.mmp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*TYPE TESTCLASS*//*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-* 
-* Description:  MMP file for STIF Test Framework's TestScripter 
-* testclass test module.
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-TARGET          messagequeue_api.dll
-TARGETTYPE      dll
-UID             0x1000008D 0x101FB3E3
-
-CAPABILITY      ALL -TCB
-/* Remove comments and replace 0x00000000 with correct vendor id */
-// VENDORID     0x00000000
-/* Remove comments and replace 0x00000000 with correct secure id */
-// SECUREID     0x00000000
-
-//TARGETPATH      ?target_path
-DEFFILE         messagequeue_api.def
-
-USERINCLUDE     ../inc 
-
-
-
-SOURCEPATH      ../src
-
-SOURCE          messagequeue_api.cpp
-SOURCE          messagequeue_apiBlocks.cpp
-
-//RESOURCE        resource_file
-//RESOURCE        resource_file2
-
-MW_LAYER_SYSTEMINCLUDE
-OS_LAYER_LIBC_SYSTEMINCLUDE
-OS_LAYER_GLIB_SYSTEMINCLUDE
-OS_LAYER_SSL_SYSTEMINCLUDE
-OS_LAYER_STDCPP_SYSTEMINCLUDE
-OS_LAYER_BOOST_SYSTEMINCLUDE
-OS_LAYER_DBUS_SYSTEMINCLUDE
-OS_LAYER_LIBUTILITY_SYSTEMINCLUDE
-
-LIBRARY         euser.lib
-LIBRARY         stiftestinterface.lib
-LIBRARY         stiftestengine.lib
-LIBRARY         libc.lib
-LIBRARY         libglib.lib
-LIBRARY 	libm.lib
-LIBRARY			OpenCMessageQueueLibrary.lib
-LIBRARY			libdbus.lib
-
-LANG            SC
-
-/*
-START WINS      
-?wins_specific_information
-END
-
-START MARM
-?marm_specific_information
-END
-*/
-// Other possible keywords:
- 
-// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
-/*
-START BITMAP ?target
-TARGETPATH   ?emulated_path_on_target_machine
-HEADER
-SOURCE       ?color_depth ?source_bitmap
-END
-*/
-// DEFFILE ?filename
-// AIF ?filename
-
-// End of File
--- a/opensrv_plat/messagequeue_api/tsrc/group/messagequeue_api.pkg	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-; 
-; Description: 
-;
-
-; Languages
-&EN
-
-; Provide value for uid
-#{"STIF"},(0x00000000),1,1,0,TYPE=SA
-
-; Series60 product id for S60 3.0
-[0x101F7961], 0, 0, 0, {"Series60ProductID"}
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-; Logo
-; None
-
-; Package signature - Optional
-; None
-
-; Start of Package body
-
-; Condition blocks
-; None
-
-; Options list
-; None
-
-; Install files
-"\epoc32\release\armv5\udeb\messagequeue_api.dll"   -   "!:\Sys\Bin\messagequeue_api.dll"
-
-;CFG FILES
-  "..\conf\messagequeue_api.cfg"-"C:\TestFramework\messagequeue_api.cfg"
-
-
-
-"..\init\TestFramework.ini"-"C:\TestFramework\TestFramework.ini"
-
- 
-
-
-; Embedded SIS 
-; None
-
-; End of Package body
-
-; PKG dependencies
-; None
-
-; PKG capabilities
-; None
--- a/opensrv_plat/messagequeue_api/tsrc/group/messagequeue_api_DoxyFile.txt	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-# 
-# Description: MMP file for STIF Test Framework's TestScripter 
-# testclass test module.
-#
-#
-# Doxyfile 1.4.1
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = messagequeue_api
-PROJECT_NUMBER         = 
-OUTPUT_DIRECTORY       = \messagequeue_api\
-CREATE_SUBDIRS         = NO
-OUTPUT_LANGUAGE        = English
-USE_WINDOWS_ENCODING   = YES
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = 
-ALWAYS_DETAILED_SEC    = NO
-INLINE_INHERITED_MEMB  = NO
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
-STRIP_FROM_INC_PATH    = 
-SHORT_NAMES            = NO
-JAVADOC_AUTOBRIEF      = NO
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = YES
-DISTRIBUTE_GROUP_DOC   = NO
-TAB_SIZE               = 8
-ALIASES                = 
-OPTIMIZE_OUTPUT_FOR_C  = YES
-OPTIMIZE_OUTPUT_JAVA   = NO
-SUBGROUPING            = YES
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL            = YES
-EXTRACT_PRIVATE        = NO
-EXTRACT_STATIC         = NO
-EXTRACT_LOCAL_CLASSES  = NO
-EXTRACT_LOCAL_METHODS  = NO
-HIDE_UNDOC_MEMBERS     = NO
-HIDE_UNDOC_CLASSES     = NO
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-INTERNAL_DOCS          = YES
-CASE_SENSE_NAMES       = YES
-HIDE_SCOPE_NAMES       = NO
-SHOW_INCLUDE_FILES     = YES
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = YES
-SORT_BRIEF_DOCS        = NO
-SORT_BY_SCOPE_NAME     = NO
-GENERATE_TODOLIST      = NO
-GENERATE_TESTLIST      = NO
-GENERATE_BUGLIST       = NO
-GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 30
-SHOW_USED_FILES        = YES
-SHOW_DIRECTORIES       = YES
-FILE_VERSION_FILTER    = 
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_IF_DOC_ERROR      = YES
-WARN_NO_PARAMDOC       = NO
-WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = 
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = \messagequeue_api\
-FILE_PATTERNS          = *.h \
-                         *.rh \
-                         *.hrh
-RECURSIVE              = YES
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = 
-EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = 
-INPUT_FILTER           = 
-FILTER_PATTERNS        = 
-FILTER_SOURCE_FILES    = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = NO
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = YES
-REFERENCES_RELATION    = YES
-VERBATIM_HEADERS       = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = NO
-HTML_OUTPUT            = html
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = YES
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = YES
-TOC_EXPAND             = YES
-DISABLE_INDEX          = YES
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-LATEX_HIDE_INDICES     = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = YES
-RTF_OUTPUT             = Doc
-COMPACT_RTF            = YES
-RTF_HYPERLINKS         = YES
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
-XML_PROGRAMLISTING     = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = YES
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = NONSHARABLE_CLASS
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-HIDE_UNDOC_RELATIONS   = YES
-HAVE_DOT               = NO
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = YES
-GROUP_GRAPHS           = YES
-UML_LOOK               = NO
-TEMPLATE_RELATIONS     = YES
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = YES
-CALL_GRAPH             = NO
-GRAPHICAL_HIERARCHY    = YES
-DIRECTORY_GRAPH        = YES
-DOT_IMAGE_FORMAT       = png
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1024
-MAX_DOT_GRAPH_DEPTH    = 0
-DOT_TRANSPARENT        = NO
-DOT_MULTI_TARGETS      = NO
-GENERATE_LEGEND        = YES
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
--- a/opensrv_plat/messagequeue_api/tsrc/group/messagequeue_api_nrm.mmp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*TYPE TESTCLASS*//*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-* 
-* Description:  MMP file for STIF Test Framework's TestScripter 
-* testclass test module.
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-TARGET          messagequeue_api.dll
-TARGETTYPE      dll
-UID             0x1000008D 0x101FB3E3
-
-CAPABILITY      ALL -TCB
-/* Remove comments and replace 0x00000000 with correct vendor id */
-// VENDORID     0x00000000
-/* Remove comments and replace 0x00000000 with correct secure id */
-// SECUREID     0x00000000
-
-//TARGETPATH      ?target_path
-DEFFILE         messagequeue_api.def
-
-USERINCLUDE     ../inc 
-
-OS_LAYER_SYSTEMINCLUDE
-
-SOURCEPATH      ../src
-
-SOURCE          messagequeue_api.cpp
-SOURCE          messagequeue_apiBlocks.cpp
-
-//RESOURCE        resource_file
-//RESOURCE        resource_file2
-
-LIBRARY         euser.lib
-LIBRARY         stiftestinterface.lib
-LIBRARY         stiftestengine.lib
-
-LANG            SC
-
-/*
-START WINS      
-?wins_specific_information
-END
-
-START MARM
-?marm_specific_information
-END
-*/
-// Other possible keywords:
- 
-// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
-/*
-START BITMAP ?target
-TARGETPATH   ?emulated_path_on_target_machine
-HEADER
-SOURCE       ?color_depth ?source_bitmap
-END
-*/
-// DEFFILE ?filename
-// AIF ?filename
-
-// End of File
--- a/opensrv_plat/messagequeue_api/tsrc/inc/messagequeue_api.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-* 
-* Description:  STIF testclass declaration
-*
-*/
-
-
-#ifndef MESSAGEQUEUE_API_H
-#define MESSAGEQUEUE_API_H
-
-//  INCLUDES
-#include <StifLogger.h>
-#include <TestScripterInternal.h>
-#include <StifTestModule.h>
-#include <TestclassAssert.h>
-
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-#define TEST_CLASS_VERSION_MAJOR 0
-#define TEST_CLASS_VERSION_MINOR 0
-#define TEST_CLASS_VERSION_BUILD 0
-
-// Logging path
-_LIT( Kmessagequeue_apiLogPath, "\\logs\\testframework\\messagequeue_api\\" ); 
-// Log file
-_LIT( Kmessagequeue_apiLogFile, "messagequeue_api.txt" ); 
-_LIT( Kmessagequeue_apiLogFileWithTitle, "messagequeue_api_[%S].txt" );
-
-// FUNCTION PROTOTYPES
-//?type ?function_name(?arg_list);
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-class Cmessagequeue_api;
-
-// DATA TYPES
-//enum ?declaration
-//typedef ?declaration
-//extern ?data_type;
-
-// CLASS DECLARATION
-
-/**
-*  Cmessagequeue_api test class for STIF Test Framework TestScripter.
-*  ?other_description_lines
-*
-*  @lib ?library
-*  @since ?Series60_version
-*/
-NONSHARABLE_CLASS(Cmessagequeue_api) : public CScriptBase
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static Cmessagequeue_api* NewL( CTestModuleIf& aTestModuleIf );
-
-        /**
-        * Destructor.
-        */
-        virtual ~Cmessagequeue_api();
-
-    public: // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-    public: // Functions from base classes
-
-        /**
-        * From CScriptBase Runs a script line.
-        * @since ?Series60_version
-        * @param aItem Script line containing method name and parameters
-        * @return Symbian OS error code
-        */
-        virtual TInt RunMethodL( CStifItemParser& aItem );
-
-    protected:  // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-    protected:  // Functions from base classes
-
-        /**
-        * From ?base_class ?member_description
-        */
-        //?type ?member_function();
-
-    private:
-
-        /**
-        * C++ default constructor.
-        */
-        Cmessagequeue_api( CTestModuleIf& aTestModuleIf );
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-
-        // Prohibit copy constructor if not deriving from CBase.
-        // ?classname( const ?classname& );
-        // Prohibit assigment operator if not deriving from CBase.
-        // ?classname& operator=( const ?classname& );
-
-        /**
-        * Frees all resources allocated from test methods.
-        * @since ?Series60_version
-        */
-        void Delete();
-
-        /**
-        * Test methods are listed below. 
-        */
-
-        /**
-        * Example test method.
-        * @since ?Series60_version
-        * @param aItem Script line containing parameters.
-        * @return Symbian OS error code.
-        */
-        virtual TInt TestMessageQCreate( CStifItemParser& aItem );
-        virtual TInt TestMessageQSend( CStifItemParser& aItem );
-        virtual TInt TestMessageQDelete( CStifItemParser& aItem ); 
-        virtual TInt TestMessageQReceive(CStifItemParser& aItem );
-        virtual TInt TestMessageQClean(CStifItemParser& aItem );
-        virtual TInt TestMessageQCheck(CStifItemParser& aItem );
-        virtual TInt TestMsgQMaxCheck(CStifItemParser& aItem );
-
-        
-        /**
-         * Method used to log version of test class
-         */
-        void SendTestClassVersion();
-
-        //ADD NEW METHOD DEC HERE
-        //[TestMethods] - Do not remove
-
-    public:     // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    protected:  // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    private:    // Data
-        
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-        // Reserved pointer for future extension
-        //TAny* iReserved;
-
-    public:     // Friend classes
-        //?friend_class_declaration;
-    protected:  // Friend classes
-        //?friend_class_declaration;
-    private:    // Friend classes
-        //?friend_class_declaration;
-
-    };
-
-#endif      // MESSAGEQUEUE_API_H
-
-// End of File
--- a/opensrv_plat/messagequeue_api/tsrc/init/TestFramework.ini	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-#
-# This is STIFTestFramework initialization file
-# Comment lines start with '#'-character.
-# See STIF TestFramework users guide.doc for instructions
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-[Engine_Defaults]
-
-TestReportMode= FullReport		# Possible values are: 'Empty', 'Summary', 'Environment',
-                                                               'TestCases' or 'FullReport'
-
-CreateTestReport= YES			# Possible values: YES or NO
-
-TestReportFilePath= C:\LOGS\TestFramework\
-TestReportFileName= TestReport
-
-TestReportFormat= TXT			# Possible values: TXT or HTML
-TestReportOutput= FILE			# Possible values: FILE or RDEBUG
-TestReportFileCreationMode= OVERWRITE	# Possible values: OVERWRITE or APPEND
-
-DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
-
-[End_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Module configurations start
-
-[New_Module]
-ModuleName= testscripter
-TestCaseFile= C:\testframework\messagequeue_api.cfg
-[End_Module]
-
-[New_Module]
-ModuleName= testscripter
-TestCaseFile= C:\testframework\isolationserver_manual.cfg
-[End_Module]
-
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-[Logger_Defaults]
-
-[End_Logger_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# End of file
--- a/opensrv_plat/messagequeue_api/tsrc/src/messagequeue_api.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-* 
-* Description:  This file contains testclass implementation.
-*
-*/
-
-
-// INCLUDE FILES
-#include <StifTestInterface.h>
-#include "messagequeue_api.h"
-#include <SettingServerClient.h>
-
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// ?function_name ?description.
-// ?description
-// Returns: ?value_1: ?description
-//          ?value_n: ?description_line1
-//                    ?description_line2
-// -----------------------------------------------------------------------------
-//
-/*
-?type ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg)  // ?description
-    {
-
-    ?code  // ?comment
-
-    // ?comment
-    ?code
-    }
-*/
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// Cmessagequeue_api::Cmessagequeue_api
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-Cmessagequeue_api::Cmessagequeue_api( 
-    CTestModuleIf& aTestModuleIf ):
-        CScriptBase( aTestModuleIf )
-    {
-    User::After(1000000);
-    }
-
-// -----------------------------------------------------------------------------
-// Cmessagequeue_api::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void Cmessagequeue_api::ConstructL()
-    {
-    //Read logger settings to check whether test case name is to be
-    //appended to log file name.
-    RSettingServer settingServer;
-    TInt ret = settingServer.Connect();
-    if(ret != KErrNone)
-        {
-        User::Leave(ret);
-        }
-    // Struct to StifLogger settigs.
-    TLoggerSettings loggerSettings; 
-    // Parse StifLogger defaults from STIF initialization file.
-    ret = settingServer.GetLoggerSettings(loggerSettings);
-    if(ret != KErrNone)
-        {
-        User::Leave(ret);
-        } 
-    // Close Setting server session
-    settingServer.Close();
-
-    TFileName logFileName;
-    
-    if(loggerSettings.iAddTestCaseTitle)
-        {
-        TName title;
-        TestModuleIf().GetTestCaseTitleL(title);
-        logFileName.Format(Kmessagequeue_apiLogFileWithTitle, &title);
-        }
-    else
-        {
-        logFileName.Copy(Kmessagequeue_apiLogFile);
-        }
-
-    iLog = CStifLogger::NewL( Kmessagequeue_apiLogPath, 
-                          logFileName,
-                          CStifLogger::ETxt,
-                          CStifLogger::EFile,
-                          EFalse );
-    
-    SendTestClassVersion();
-    }
-
-// -----------------------------------------------------------------------------
-// Cmessagequeue_api::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-Cmessagequeue_api* Cmessagequeue_api::NewL( 
-    CTestModuleIf& aTestModuleIf )
-    {
-    Cmessagequeue_api* self = new (ELeave) Cmessagequeue_api( aTestModuleIf );
-
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-
-    }
-
-// Destructor
-Cmessagequeue_api::~Cmessagequeue_api()
-    { 
-
-    // Delete resources allocated from test methods
-    Delete();
-
-    // Delete logger
-    delete iLog; 
-
-    }
-
-//-----------------------------------------------------------------------------
-// Cmessagequeue_api::SendTestClassVersion
-// Method used to send version of test class
-//-----------------------------------------------------------------------------
-//
-void Cmessagequeue_api::SendTestClassVersion()
-	{
-	TVersion moduleVersion;
-	moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
-	moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
-	moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
-	
-	TFileName moduleName;
-	moduleName = _L("messagequeue_api.dll");
-
-	TBool newVersionOfMethod = ETrue;
-	TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
-	}
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// LibEntryL is a polymorphic Dll entry point.
-// Returns: CScriptBase: New CScriptBase derived object
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CScriptBase* LibEntryL( 
-    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
-    {
-
-    return ( CScriptBase* ) Cmessagequeue_api::NewL( aTestModuleIf );
-
-    }
-
-
-//  End of File
--- a/opensrv_plat/messagequeue_api/tsrc/src/messagequeue_apiBlocks.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,663 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-* 
-* Description:  This file contains testclass implementation.
-*
-*/
-
-
-// [INCLUDE FILES] - do not remove
-#include <e32svr.h>
-#include <StifParser.h>
-#include <StifTestInterface.h>
-#include <msgqlib.h>
-#include <msg_enums.h>
-#include <msgliterals.h>
-#include <stdlib.h>
-#include <msgqinternal.h>
-#include "messagequeue_api.h"
-
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// ?function_name ?description.
-// ?description
-// Returns: ?value_1: ?description
-//          ?value_n: ?description_line1
-//                    ?description_line2
-// -----------------------------------------------------------------------------
-//
-/*
-?type ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg)  // ?description
-    {
-
-    ?code  // ?comment
-
-    // ?comment
-    ?code
-    }
-*/
-  //-----------------------------------------------------------------------------
-// function_name    : running isolation server exe
-// description      : Deallocates all the data
-// Returns          : None
-//-----------------------------------------------------------------------------
-  int  run_isoserver()
-  {
-    // running isoserver 
-    RProcess isosrv_launcher;
-    TInt lunch_err = 0;
-    _LIT(KProcess, "isoserver.exe");
-    lunch_err = isosrv_launcher.Create( KProcess, KNullDesC );
-     if ( KErrNone != lunch_err ) 
-        {
-        return KErrGeneral;
-            
-        }
-    isosrv_launcher.Resume();
-    return KErrNone;
-  }
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// Cmessagequeue_api::Delete
-// Delete here all resources allocated and opened from test methods. 
-// Called from destructor. 
-// -----------------------------------------------------------------------------
-//
-void Cmessagequeue_api::Delete() 
-    {
-
-    }
-
-// -----------------------------------------------------------------------------
-// Cmessagequeue_api::RunMethodL
-// Run specified method. Contains also table of test mothods and their names.
-// -----------------------------------------------------------------------------
-//
-TInt Cmessagequeue_api::RunMethodL( 
-    CStifItemParser& aItem ) 
-    {
-
-    static TStifFunctionInfo const KFunctions[] =
-        {  
-        // Copy this line for every implemented function.
-        // First string is the function name used in TestScripter script file.
-        // Second is the actual implementation member function. 
-        ENTRY( "TestMessageQCreate", Cmessagequeue_api::TestMessageQCreate ),
-        ENTRY( "TestMessageQSend", Cmessagequeue_api::TestMessageQSend ),
-        ENTRY( "TestMessageQDelete", Cmessagequeue_api::TestMessageQDelete ),
-        ENTRY( "TestMessageQReceive", Cmessagequeue_api::TestMessageQReceive ),
-        ENTRY( "TestMessageQClean", Cmessagequeue_api::TestMessageQClean ),
-        ENTRY( "TestMessageQCheck", Cmessagequeue_api::TestMessageQCheck ),
-        ENTRY( "TestMsgQMaxCheck", Cmessagequeue_api::TestMsgQMaxCheck ),
-        //ADD NEW ENTRY HERE
-        // [test cases entries] - Do not remove
-
-        };
-
-    const TInt count = sizeof( KFunctions ) / 
-                        sizeof( TStifFunctionInfo );
-
-    return RunInternalL( KFunctions, count, aItem );
-
-    }
-
-// -----------------------------------------------------------------------------
-// Cmessagequeue_api::ExampleL
-// Example test method function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt Cmessagequeue_api::TestMessageQCreate( CStifItemParser& aItem )
-    {
-        char smsg[MAX_MSG_SIZE];
-        char rmsg[MAX_MSG_SIZE];
-        int index=0;
-        int timeout = 100;
-        int nBytes;
-        int result = 0;
-        int err = 0;
-        int status = 0;
-        int run_iso;
-        FILE *fp;
-        message_hdr_req *msgHdr = NULL;  
-        message_hdr_resp* msg_struct = NULL;
-        TInt return_value = 0;
-        memset( smsg, '\0', MAX_MSG_SIZE );
-        memset( rmsg, '\0', MAX_MSG_SIZE );
-        //running isoserver   
-        run_iso = run_isoserver(); 
-        if(run_iso)
-           {
-           iLog->Log ( _L ( "running isolation server is failed" ) );
-           return KErrGeneral;
-            }             
-         //create message queue for send request
-        result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-        if(err)
-           {
-           iLog->Log ( _L ( "creating requet queue is failed" ) );
-           return KErrGeneral;
-            }
-       //create message queue for response request
-        result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-        if(err)
-           {
-            iLog->Log ( _L ( "creating requet queue is failed" ) );
-            return KErrGeneral;
-            }
-            index=0;
-            memset( smsg, '\0', MAX_MSG_SIZE );
-            memset( rmsg, '\0', MAX_MSG_SIZE );
-            msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-            memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-            msgHdr->message_type = EKill_Process;
-            memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-            index += sizeof( message_hdr_req );
-            result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-            free(msgHdr);           
-           return KErrNone;
-            
-    }
-
-
-TInt Cmessagequeue_api::TestMessageQSend( CStifItemParser& aItem )
-    {
-        char smsg[MAX_MSG_SIZE];
-        char rmsg[MAX_MSG_SIZE];
-        int index=0;
-        int timeout = 100;
-        int nBytes;
-        int result = 0;
-        int err = 0;
-        int status = 0;
-        int run_iso;
-        FILE *fp;
-        message_hdr_req *msgHdr = NULL;  
-        message_hdr_resp* msg_struct = NULL;
-        TInt return_value = 0;
-        memset( smsg, '\0', MAX_MSG_SIZE );
-        memset( rmsg, '\0', MAX_MSG_SIZE );
-        //running isoserver   
-        run_iso = run_isoserver(); 
-        if(run_iso)
-           {
-           iLog->Log ( _L ( "running isolation server is failed" ) );
-           return KErrGeneral;
-            }             
-         //create message queue for send request
-        result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-        if(err)
-           {
-           iLog->Log ( _L ( "creating requet queue is failed" ) );
-           return KErrGeneral;
-            }
-       //create message queue for response request
-        result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-        if(err)
-           {
-            iLog->Log ( _L ( "creating requet queue is failed" ) );
-            return KErrGeneral;
-            }
-            index=0;
-            memset( smsg, '\0', MAX_MSG_SIZE );
-            memset( rmsg, '\0', MAX_MSG_SIZE );
-            msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-            memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-            msgHdr->message_type = EKill_Process;
-            memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-            index += sizeof( message_hdr_req );
-            result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-            free(msgHdr);           
-           return KErrNone;
-            
-    }
-
-
-TInt Cmessagequeue_api::TestMessageQDelete( CStifItemParser& aItem )
-    {
-        char smsg[MAX_MSG_SIZE];
-        char rmsg[MAX_MSG_SIZE];
-        int index=0;
-        int timeout = 100;
-        int nBytes;
-        int result = 0;
-        int err = 0;
-        int status = 0;
-        int run_iso;
-        FILE *fp;
-        message_hdr_req *msgHdr = NULL;  
-        message_hdr_resp* msg_struct = NULL;
-        TInt return_value = 0;
-        memset( smsg, '\0', MAX_MSG_SIZE );
-        memset( rmsg, '\0', MAX_MSG_SIZE );
-        //running isoserver   
-        run_iso = run_isoserver(); 
-        if(run_iso)
-           {
-           iLog->Log ( _L ( "running isolation server is failed" ) );
-           return KErrGeneral;
-            }             
-         //create message queue for send request
-        result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-        if(err)
-           {
-           iLog->Log ( _L ( "creating requet queue is failed" ) );
-           return KErrGeneral;
-            }
-       //create message queue for response request
-        result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-        if(err)
-           {
-            iLog->Log ( _L ( "creating requet queue is failed" ) );
-            return KErrGeneral;
-            }
-            index=0;
-            memset( smsg, '\0', MAX_MSG_SIZE );
-            memset( rmsg, '\0', MAX_MSG_SIZE );
-            msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-            memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-            msgHdr->message_type = EKill_Process;
-            memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-            index += sizeof( message_hdr_req );
-            result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-            free(msgHdr); 
-            result=MsgQDelete( REQUEST_QUEUE, &err );
-            if(result)
-                {
-            iLog->Log ( _L ( "failing at message queue" ) );  
-            return KErrGeneral;
-                }
-           return KErrNone;
-            
-    }
-
-TInt Cmessagequeue_api::TestMessageQReceive( CStifItemParser& aItem )
-    {
-        char smsg[MAX_MSG_SIZE];
-        char rmsg[MAX_MSG_SIZE];
-        int index=0;
-        int timeout = 100;
-        int nBytes;
-        int result = 0;
-        int err = 0;
-        int status = 0;
-        int run_iso;
-        FILE *fp;
-        message_hdr_req *msgHdr = NULL;  
-        message_hdr_resp* msg_struct = NULL;
-        TInt return_value = 0;
-        memset( smsg, '\0', MAX_MSG_SIZE );
-        memset( rmsg, '\0', MAX_MSG_SIZE );
-        
-        //running isoserver   
-        run_iso = run_isoserver(); 
-        if(run_iso)
-           {
-           iLog->Log ( _L ( "running isolation server is failed" ) );
-           return KErrGeneral;
-            }             
-         //create message queue for send request
-        result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-        if(err)
-           {
-           iLog->Log ( _L ( "creating requet queue is failed" ) );
-           return KErrGeneral;
-            }
-       //create message queue for response request
-        result = MsgQCreate(RESPONSE_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-        if(err)
-           {
-            iLog->Log ( _L ( "creating requet queue is failed" ) );
-            return KErrGeneral;
-            }
-        //request formation 
-            memset( smsg, '\0', MAX_MSG_SIZE );
-            memset( rmsg, '\0', MAX_MSG_SIZE );
-            
-            //message header use
-            msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-            memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-            
-            msgHdr->message_type = ELogin_Request;
-            
-            memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-            index += sizeof( message_hdr_req );
-            /* Send Message to queueOne */
-                
-            result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-                
-            result = MsgQReceive(RESPONSE_QUEUE, rmsg, MAX_MSG_SIZE, timeout, &err); 
-                
-                if (status < 0)
-                {
-                return  KErrGeneral;
-                  
-                }
-            
-            index=0;
-            memset( smsg, '\0', MAX_MSG_SIZE );
-            memset( rmsg, '\0', MAX_MSG_SIZE );
-            memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-            msgHdr->message_type = EKill_Process;
-            memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-            index += sizeof( message_hdr_req );
-            result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-            free(msgHdr); 
-            result=MsgQDelete( REQUEST_QUEUE, &err );
-            if(result)
-                {
-            iLog->Log ( _L ( "failing at message queue" ) );  
-            return KErrGeneral;
-                }
-           return KErrNone;
-            
-    }
-
-
-TInt Cmessagequeue_api::TestMessageQCheck( CStifItemParser& aItem )
-    {
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    int timeout = 100;
-    int nBytes;
-    int result = 0,r1=0 ,r2=0;
-    int err = 0;
-    int status = 0;
-    int run_iso;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-    //running isoserver   
-    run_iso = run_isoserver(); 
-    if(run_iso)
-       {
-       iLog->Log ( _L ( "running isolation server is failed" ) );
-       return KErrGeneral;
-        }             
-     //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    if(err)
-       {
-       iLog->Log ( _L ( "creating requet queue is failed" ) );
-       return KErrGeneral;
-        }
-   
-    //request formation 
-        memset( smsg, '\0', MAX_MSG_SIZE );
-               
-        //message header use
-        msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-        
-        msgHdr->message_type = ELogin_Request;
-        
-        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-        index += sizeof( message_hdr_req );
-        /* Send Message to queueOne */
-            
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-        
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-        
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-        
-        r1 = MsgQCheck(REQUEST_QUEUE,&err);
-        
-        result = MsgQClean(REQUEST_QUEUE,&err);
-        
-        r2 = MsgQCheck(REQUEST_QUEUE,&err);
-        
-        if(r1==r2)
-            {
-            iLog->Log ( _L ( "message q clean  is failed" ) );
-            return KErrGeneral;
-            }
-        index=0;
-        memset( smsg, '\0', MAX_MSG_SIZE );
-        memset( rmsg, '\0', MAX_MSG_SIZE );
-        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-        msgHdr->message_type = EKill_Process;
-        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-        index += sizeof( message_hdr_req );
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-        free(msgHdr); 
-        result=MsgQDelete( REQUEST_QUEUE, &err );
-        if(result)
-            {
-        iLog->Log ( _L ( "failing at message queue" ) );  
-        return KErrGeneral;
-            }
-       return KErrNone;
-        
-}
-
-TInt Cmessagequeue_api::TestMessageQClean( CStifItemParser& aItem )
-    {
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    int timeout = 100;
-    int nBytes;
-    int result = 0,r1=0 ,r2=0;
-    int err = 0;
-    int status = 0;
-    int run_iso;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-    //running isoserver   
-    run_iso = run_isoserver(); 
-    if(run_iso)
-       {
-       iLog->Log ( _L ( "running isolation server is failed" ) );
-       return KErrGeneral;
-        }             
-     //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    if(err)
-       {
-       iLog->Log ( _L ( "creating requet queue is failed" ) );
-       return KErrGeneral;
-        }
-   
-    //request formation 
-        memset( smsg, '\0', MAX_MSG_SIZE );
-               
-        //message header use
-        msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-        
-        msgHdr->message_type = ELogin_Request;
-        
-        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-        index += sizeof( message_hdr_req );
-        /* Send Message to queueOne */
-            
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-        
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-        
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-        
-        r1 = MsgQCheck(REQUEST_QUEUE,&err);
-        
-        r1 = MsgQMaxCheck(REQUEST_QUEUE,&err);
-        
-        result = MsgQClean(REQUEST_QUEUE,&err);
-        
-        r2 = MsgQCheck(REQUEST_QUEUE,&err);
-        
-        if(r1==r2)
-            {
-            iLog->Log ( _L ( "message q clean  is failed" ) );
-            return KErrGeneral;
-            }
-        index=0;
-        memset( smsg, '\0', MAX_MSG_SIZE );
-        memset( rmsg, '\0', MAX_MSG_SIZE );
-        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-        msgHdr->message_type = EKill_Process;
-        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-        index += sizeof( message_hdr_req );
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-        free(msgHdr); 
-        result=MsgQDelete( REQUEST_QUEUE, &err );
-        if(result)
-            {
-        iLog->Log ( _L ( "failing at message queue" ) );  
-        return KErrGeneral;
-            }
-       return KErrNone;
-        
-}
-
-TInt Cmessagequeue_api::TestMsgQMaxCheck( CStifItemParser& aItem )
-    {
-    char smsg[MAX_MSG_SIZE];
-    char rmsg[MAX_MSG_SIZE];
-    int index=0;
-    int timeout = 100;
-    int nBytes;
-    int result = 0,r1=0 ,r2=0;
-    int err = 0;
-    int status = 0;
-    int run_iso;
-    FILE *fp;
-    message_hdr_req *msgHdr = NULL;  
-    message_hdr_resp* msg_struct = NULL;
-    TInt return_value = 0;
-    memset( smsg, '\0', MAX_MSG_SIZE );
-    memset( rmsg, '\0', MAX_MSG_SIZE );
-    //running isoserver   
-    run_iso = run_isoserver(); 
-    if(run_iso)
-       {
-       iLog->Log ( _L ( "running isolation server is failed" ) );
-       return KErrGeneral;
-        }             
-     //create message queue for send request
-    result = MsgQCreate(REQUEST_QUEUE, MAX_MSG_Q_SIZE , MSG_Q_FIFO, &err);
-    if(err)
-       {
-       iLog->Log ( _L ( "creating requet queue is failed" ) );
-       return KErrGeneral;
-        }
-   
-    //request formation 
-        memset( smsg, '\0', MAX_MSG_SIZE );
-               
-        //message header use
-        msgHdr = ( message_hdr_req* ) malloc( sizeof( message_hdr_req ) );
-        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-        
-        msgHdr->message_type = ELogin_Request;
-        
-        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-        index += sizeof( message_hdr_req );
-        /* Send Message to queueOne */
-            
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-        
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-        
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err);
-        
-        r1 = MsgQCheck(REQUEST_QUEUE,&err);
-        
-        r1 = MsgQMaxCheck(REQUEST_QUEUE,&err);
-        
-        result = MsgQClean(REQUEST_QUEUE,&err);
-        
-        r2 = MsgQCheck(REQUEST_QUEUE,&err);
-        
-        if(r1==r2)
-            {
-            iLog->Log ( _L ( "message q clean  is failed" ) );
-            return KErrGeneral;
-            }
-        index=0;
-        memset( smsg, '\0', MAX_MSG_SIZE );
-        memset( rmsg, '\0', MAX_MSG_SIZE );
-        memset( msgHdr, '\0', sizeof( message_hdr_req ) );
-        msgHdr->message_type = EKill_Process;
-        memcpy( smsg, msgHdr, sizeof( message_hdr_req ) );
-        index += sizeof( message_hdr_req );
-        result = MsgQSend(REQUEST_QUEUE, smsg, index, MSG_PRI_NORMAL, timeout, &err); 
-        free(msgHdr); 
-        result=MsgQDelete( REQUEST_QUEUE, &err );
-        if(result)
-            {
-        iLog->Log ( _L ( "failing at message queue" ) );  
-        return KErrGeneral;
-            }
-       return KErrNone;
-        
-}
-
-// -----------------------------------------------------------------------------
-// Cmessagequeue_api::?member_function
-// ?implementation_description
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-/*
-TInt Cmessagequeue_api::?member_function(
-   CItemParser& aItem )
-   {
-
-   ?code
-
-   }
-*/
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-// None
-
-//  [End of File] - Do not remove
--- a/sysdef_1_4_0.dtd	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
- <!ELEMENT SystemDefinition (systemModel?, build?)>
- <!ATTLIST SystemDefinition
-  name CDATA #REQUIRED
-  schema CDATA #REQUIRED>
- <!ELEMENT systemModel (layer+)>
- <!ELEMENT layer (logicalset* | module*)*>
- <!ATTLIST layer
-  name CDATA #REQUIRED
-  levels CDATA #IMPLIED
-  span CDATA #IMPLIED>
- <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalset name CDATA #REQUIRED>
- <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalsubset name CDATA #REQUIRED>
- <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
- <!ATTLIST module
-  name CDATA #REQUIRED
-  level CDATA #IMPLIED>
- <!ELEMENT component (unit* | package* | prebuilt*)*>
- <!ATTLIST component name CDATA #REQUIRED>
- <!ELEMENT unit EMPTY>
- <!ATTLIST unit
-  unitID ID #REQUIRED
-  name CDATA #REQUIRED
-  mrp CDATA #REQUIRED
-  filter CDATA #IMPLIED
-  bldFile CDATA #REQUIRED
-  priority CDATA #IMPLIED
-  contract CDATA #IMPLIED>
- <!ELEMENT package EMPTY>
- <!ATTLIST package
-  name CDATA #REQUIRED
-  mrp CDATA #REQUIRED
-  filter CDATA #IMPLIED
-  contract CDATA #IMPLIED>
- <!ELEMENT prebuilt EMPTY>
- <!ATTLIST prebuilt
-  name CDATA #REQUIRED
-  version CDATA #REQUIRED
-  late (Y|N) #IMPLIED
-  filter CDATA #IMPLIED
-  contract CDATA #IMPLIED>
- <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
- <!ELEMENT unitList (unitRef+)>
- <!ATTLIST unitList
-  name ID #REQUIRED
-  description CDATA #REQUIRED>
- <!ELEMENT unitRef EMPTY>
- <!ATTLIST unitRef unit IDREF #REQUIRED>
- <!ELEMENT targetList EMPTY>
- <!ATTLIST targetList
-  name ID #REQUIRED
-  description CDATA #REQUIRED
-  target IDREFS #REQUIRED>
- <!ELEMENT target EMPTY>
- <!ATTLIST target
-  name ID #REQUIRED
-  abldTarget CDATA #REQUIRED
-  description CDATA #REQUIRED>
- <!ELEMENT option EMPTY>
- <!ATTLIST option
-  name ID #REQUIRED
-  abldOption CDATA #REQUIRED
-  description CDATA #REQUIRED
-  enable (Y | N | y | n) #REQUIRED>
- <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
- <!ATTLIST configuration
-  name ID #REQUIRED
-  description CDATA #REQUIRED
-  filter CDATA #REQUIRED>
- <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
- <!ELEMENT unitListRef EMPTY>
- <!ATTLIST unitListRef unitList IDREF #REQUIRED>
- <!ELEMENT layerRef EMPTY>
- <!ATTLIST layerRef layerName CDATA #REQUIRED>
- <!ELEMENT buildLayer EMPTY>
- <!ATTLIST buildLayer
-  command CDATA #REQUIRED
-  targetList IDREFS #IMPLIED
-  unitParallel (Y | N | y | n) #REQUIRED
-  targetParallel (Y | N | y | n) #IMPLIED>
- <!ELEMENT specialInstructions EMPTY>
- <!ATTLIST specialInstructions
-  name CDATA #REQUIRED
-  cwd CDATA #REQUIRED
-  command CDATA #REQUIRED>  
--- a/telepathygabble/bwins/libgabble-convenienceU.DEF	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-EXPORTS
-	_gabble_connection_manager_register @ 1 NONAME
-	gabble_connection_get_type @ 2 NONAME
-	gabble_connection_manager_get_type @ 3 NONAME
-	gabble_debug_set_flags @ 4 NONAME
-	gabble_debug_set_flags_from_env @ 5 NONAME
-	gabble_disco_get_type @ 6 NONAME
-	gabble_im_channel_get_type @ 7 NONAME
-	gabble_im_factory_get_type @ 8 NONAME
-	gabble_media_channel_get_type @ 9 NONAME
-	gabble_media_factory_get_type @ 10 NONAME
-	gabble_media_session_get_type @ 11 NONAME
-	gabble_media_stream_get_type @ 12 NONAME
-	gabble_muc_channel_get_type @ 13 NONAME
-	gabble_muc_factory_get_type @ 14 NONAME
-	gabble_presence_cache_get_type @ 15 NONAME
-	gabble_presence_get_type @ 16 NONAME
-	gabble_register_get_type @ 17 NONAME
-	gabble_roomlist_channel_get_type @ 18 NONAME
-	gabble_roster_channel_get_type @ 19 NONAME
-	gabble_roster_get_type @ 20 NONAME
-	gabble_search_channel_get_type @ 21 NONAME
-	gabble_search_factory_get_type @ 22 NONAME
-	gabble_vcard_manager_get_type @ 23 NONAME
-	telepathy_errors_get_type @ 24 NONAME
-	telepathy_errors_quark @ 25 NONAME
-
--- a/telepathygabble/data/jabber.service	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-[D-BUS Service]
-Name=org.freedesktop.Telepathy.ConnectionManager.gabble
-Exec=\\epoc32\\RELEASE\\winscw\\udeb\\tg.exe
--- a/telepathygabble/data/jabber.service_hw	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-[D-BUS Service]
-Name=org.freedesktop.Telepathy.ConnectionManager.gabble
-Exec=z:\\sys\\bin\\tg.exe
--- a/telepathygabble/data/org.freedesktop.Telepathy.ConnectionManager.gabble.service	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-[D-BUS Service]
-Name=org.freedesktop.Telepathy.ConnectionManager.gabble
-Exec=telepathy-gabble
--- a/telepathygabble/data/org.freedesktop.Telepathy.ConnectionManager.gabble.service.in	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-[D-BUS Service]
-Name=org.freedesktop.Telepathy.ConnectionManager.gabble
-Exec=@bindir@/telepathy-gabble
--- a/telepathygabble/eabi/libgabble-convenienceu.def	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-EXPORTS
-	_gabble_connection_manager_register @ 1 NONAME
-	gabble_connection_get_type @ 2 NONAME
-	gabble_connection_manager_get_type @ 3 NONAME
-	gabble_debug_set_flags @ 4 NONAME
-	gabble_debug_set_flags_from_env @ 5 NONAME
-	gabble_disco_get_type @ 6 NONAME
-	gabble_im_channel_get_type @ 7 NONAME
-	gabble_im_factory_get_type @ 8 NONAME
-	gabble_media_channel_get_type @ 9 NONAME
-	gabble_media_factory_get_type @ 10 NONAME
-	gabble_media_session_get_type @ 11 NONAME
-	gabble_media_stream_get_type @ 12 NONAME
-	gabble_muc_channel_get_type @ 13 NONAME
-	gabble_muc_factory_get_type @ 14 NONAME
-	gabble_presence_cache_get_type @ 15 NONAME
-	gabble_presence_get_type @ 16 NONAME
-	gabble_register_get_type @ 17 NONAME
-	gabble_roomlist_channel_get_type @ 18 NONAME
-	gabble_roster_channel_get_type @ 19 NONAME
-	gabble_roster_get_type @ 20 NONAME
-	gabble_search_channel_get_type @ 21 NONAME
-	gabble_search_factory_get_type @ 22 NONAME
-	gabble_vcard_manager_get_type @ 23 NONAME
-	telepathy_errors_get_type @ 24 NONAME
-	telepathy_errors_quark @ 25 NONAME
-
--- a/telepathygabble/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * bld.inf
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * 
- */
-// Project configuration file for dbus
-
-// Project platforms
-PRJ_PLATFORMS
-WINSCW ARMV5
-
-#include <platform_paths.hrh>
-
-// Project exports
-PRJ_EXPORTS
-../rom/telepathygabble.iby						 	CORE_MW_LAYER_IBY_EXPORT_PATH(telepathygabble.iby)
-../data/jabber.service 									/epoc32/winscw/c/data/dbus/dbus1/services/jabber.service
-../data/jabber.service_hw 							/epoc32/winscw/c/data/dbus/dbus1/services/jabber.service_hw
-
-
-// MMP files for project components
-PRJ_MMPFILES
-libgabble-convenience.mmp
-telepathy-gabble.mmp
-
-PRJ_TESTMMPFILES
--- a/telepathygabble/group/libgabble-convenience.mmp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
- * libgabble-convenience.mmp
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-// General properties
-#include<platform_paths.hrh>
-TARGET          libgabble-convenience.dll
-TARGETTYPE      DLL
-CAPABILITY      CAP_GENERAL_DLL
-UID             0x1000008d 0x2000F852
-
-VERSION      10.0
-
-#ifndef WINSCW
-// Allow global writeable static data
-EPOCALLOWDLLDATA
-#endif
-
-// Macros
-MACRO 			SYMBIAN
-MACRO 			HAVE_CONFIG_H
-MACRO			HAVE_ERRNO_H VERBOSE
-
-#ifdef WINSCW
-MACRO			EMULATOR
-#endif
-
-
-SOURCEPATH      ../src
-
-// User include paths
-USERINCLUDE     ../inc
-USERINCLUDE 	../../loudmouth/inc
-
-
-MW_LAYER_SYSTEMINCLUDE
-OS_LAYER_LIBC_SYSTEMINCLUDE
-OS_LAYER_GLIB_SYSTEMINCLUDE
-OS_LAYER_SSL_SYSTEMINCLUDE
-OS_LAYER_STDCPP_SYSTEMINCLUDE
-OS_LAYER_DBUS_SYSTEMINCLUDE
-// Source files
-SOURCEPATH          ../src
-
-SOURCE	    gabble-connection-manager-signals-marshal.c 
-SOURCE	    gabble-connection-signals-marshal.c 
-SOURCE	    gabble-register-signals-marshal.c 
-SOURCE	    gabble-im-channel-signals-marshal.c 
-SOURCE	    gabble-muc-channel-signals-marshal.c 
-SOURCE	    gabble-media-channel-signals-marshal.c 
-SOURCE	    gabble-media-session-signals-marshal.c 
-SOURCE	    gabble-media-session-enumtypes.c 
-SOURCE	    gabble-media-stream-signals-marshal.c 
-SOURCE	    gabble-presence-cache-signals-marshal.c 
-SOURCE	    gabble-roster-channel-signals-marshal.c 
-SOURCE	    gabble-roomlist-channel-signals-marshal.c 
-SOURCE	    group-mixin-signals-marshal.c 
-SOURCE	    properties-mixin-signals-marshal.c 
-SOURCE	    telepathy-errors-enumtypes.c 
-SOURCE	    text-mixin-signals-marshal.c 
-
-SOURCE	    tp-channel-factory-iface-signals-marshal.c
-SOURCE	    capabilities.c 
-SOURCE	    debug.c 
-SOURCE	    disco.c 
-SOURCE	    gabble-error.c 
-SOURCE	    gabble-connection-manager.c 
-SOURCE	    gabble-connection.c 
-SOURCE	    gabble-im-channel.c 
-SOURCE	    gabble-muc-channel.c 
-SOURCE	    gabble-media-channel.c 
-SOURCE	    gabble-media-session.c 
-SOURCE	    gabble-media-stream.c 
-SOURCE	    gabble-presence.c 
-SOURCE	    gabble-presence-cache.c 
-SOURCE	    gabble-register.c 
-SOURCE	    gabble-roster-channel.c 
-SOURCE	    gabble-roomlist-channel.c 
-SOURCE	    gheap.c 
-SOURCE	    gintset.c 
-SOURCE	    group-mixin.c 
-SOURCE	    handles.c 
-SOURCE	    handle-set.c 
-SOURCE	    jingle-info.c 
-SOURCE	    im-factory.c 
-SOURCE	    search-keys-info.c 
-
-SOURCE	    search-factory.c 
-SOURCE	    gabble-search-channel.c 
-SOURCE	    search-mixin.c 
-SOURCE	    search-mixin-signals-marshal.c 
-
-SOURCE	    media-factory.c 
-SOURCE	    muc-factory.c 
-SOURCE	    properties-mixin.c 
-SOURCE	    roster.c 
-SOURCE	    telepathy-errors.c 
-SOURCE	    telepathy-helpers.c 
-SOURCE	    text-mixin.c 
-SOURCE	    tp-channel-iface.c 
-SOURCE	    tp-channel-factory-iface.c 
-SOURCE	    util.c 
-SOURCE	    vcard-manager.c
-SOURCE 	    base64.c
-SOURCE 	    sha1.c
-
-#ifdef WINSCW
-SOURCE		libgabble_wsd.cpp
-#endif
- 
-
-// Library dependencies
-#ifdef GCCE
-STATICLIBRARY  libcrt0_gcce.lib
-#else
-STATICLIBRARY  libcrt0.lib
-#endif
-LIBRARY        libc.lib 
-LIBRARY			libglib.lib
-LIBRARY			libgobject.lib
-LIBRARY         libdbus.lib
-LIBRARY         libdbus-glib.lib
-LIBRARY			loudmouth.lib
-#ifdef WINSCW
-LIBRARY   euser.lib  // Needed in order to use Symbian services
-//wsd solution
-LIBRARY		ewsd.lib
-#endif
-
--- a/telepathygabble/group/telepathy-gabble.mmp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * telepathy-gabble.mmp
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
-
- */
-// General properties
-#include<platform_paths.hrh>
-TARGET          tg.exe
-TARGETTYPE      exe
-CAPABILITY      NetworkServices
-
-UID             0x1000008d 0x2000F853
-
-VERSION      10.0
-//EPOCHEAPSIZE 4096 4194304 // min. 4KB ja max 4MB
-#ifndef WINSCW
-EPOCHEAPSIZE 4194304 67108864 // min. 4MB ja max 64MB
-EPOCSTACKSIZE 61440
-#endif
-#ifndef WINSCW
-// Allow global writeable static data
-EPOCALLOWDLLDATA
-#endif
-
-// Macros
-MACRO 			SYMBIAN
-MACRO 			HAVE_CONFIG_H
-MACRO			HAVE_ERRNO_H VERBOSE
-
-SOURCEPATH      ../src
-
-// User include paths
-USERINCLUDE     ../inc
-USERINCLUDE	../../loudmouth/inc
-
-// System include paths
-
-MW_LAYER_SYSTEMINCLUDE
-OS_LAYER_LIBC_SYSTEMINCLUDE
-OS_LAYER_GLIB_SYSTEMINCLUDE
-OS_LAYER_SSL_SYSTEMINCLUDE
-OS_LAYER_STDCPP_SYSTEMINCLUDE
-OS_LAYER_DBUS_SYSTEMINCLUDE
-
-
-
-
-// Source files
-SOURCEPATH          ../src
-
-SOURCE gabble.c
-
-// Library dependencies
-#ifdef GCCE
-STATICLIBRARY  libcrt0_gcce.lib
-#else
-STATICLIBRARY  libcrt0.lib
-#endif
-LIBRARY        libc.lib 
-LIBRARY        euser.lib  // Needed in order to use Symbian services
-LIBRARY			libglib.lib
-LIBRARY			libgobject.lib
-LIBRARY         libdbus.lib
-LIBRARY			libgabble-convenience.lib
-LIBRARY         libdbus-glib.lib
-
-
-
--- a/telepathygabble/inc/ansi.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * ansi.h - Header for GabbleConnection
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifndef __ANSI_H__
-#define __ANSI_H__
-
-#define ANSI_RESET      "\x1b[0m"
-#define ANSI_BOLD_ON    "\x1b[1m"
-#define ANSI_INVERSE_ON "\x1b[7m"
-#define ANSI_BOLD_OFF   "\x1b[22m"
-#define ANSI_FG_BLACK   "\x1b[30m"
-#define ANSI_FG_RED     "\x1b[31m"
-#define ANSI_FG_GREEN   "\x1b[32m"
-#define ANSI_FG_YELLOW  "\x1b[33m"
-#define ANSI_FG_BLUE    "\x1b[34m"
-#define ANSI_FG_MAGENTA "\x1b[35m"
-#define ANSI_FG_CYAN    "\x1b[36m"
-#define ANSI_FG_WHITE   "\x1b[37m"
-#define ANSI_BG_RED     "\x1b[41m"
-#define ANSI_BG_GREEN   "\x1b[42m"
-#define ANSI_BG_YELLOW  "\x1b[43m"
-#define ANSI_BG_BLUE    "\x1b[44m"
-#define ANSI_BG_MAGENTA "\x1b[45m"
-#define ANSI_BG_CYAN    "\x1b[46m"
-#define ANSI_BG_WHITE   "\x1b[47m"
-
-#endif /* __ANSI_H__ */
--- a/telepathygabble/inc/base64.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * base64.h - Base 64 encoding/decoding implementation
- * Copyright (C) 2006 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __BASE64_H__
-#define __BASE64_H__
-
-#include <glib.h>
-
-gchar *base64_encode (guint len, const gchar *str);
-GString *base64_decode (const gchar *str);
-
-#endif /* __BASE64_H__ */
--- a/telepathygabble/inc/capabilities.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
- * capabilities.h - Connection.Interface.Capabilities constants and utilities
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_CAPABILITIES__H__
-#define __GABBLE_CAPABILITIES__H__
-
-#include <glib-object.h>
-
-#include "gabble-presence.h"
-
-#define BUNDLE_VOICE_V1         "voice-v1"
-#define BUNDLE_JINGLE_AUDIO     "jingle-audio"
-#define BUNDLE_JINGLE_VIDEO     "jingle-video"
-
-typedef struct _Feature Feature;
-
-struct _Feature
-{
-  const gchar *bundle;
-  const gchar *ns;
-  GabblePresenceCapabilities caps;
-};
-
-/*
- * capabilities_get_features
- *
- * Return a linked list of const Feature structs corresponding to the given
- * GabblePresenceCapabilities.
- */
-GSList *
-capabilities_get_features (GabblePresenceCapabilities caps);
-
-/*
- * capabilities_fill_cache
- *
- * Fill up the given GabblePresenceCache with known feature nodes
- */
-void
-capabilities_fill_cache (GabblePresenceCache *cache);
-
-/*
- * capabilities_get_initial_caps
- *
- * Return the GabblePresenceCapabilities we always have
- */
-GabblePresenceCapabilities
-capabilities_get_initial_caps ();
-
-typedef GabblePresenceCapabilities (*TypeFlagsToCapsFunc) (guint typeflags);
-typedef guint (*CapsToTypeFlagsFunc) (GabblePresenceCapabilities caps);
-
-typedef struct _CapabilityConversionData CapabilityConversionData;
-
-struct _CapabilityConversionData
-{
-  const gchar *iface;
-  TypeFlagsToCapsFunc tf2c_fn;
-  CapsToTypeFlagsFunc c2tf_fn;
-};
-
-extern const CapabilityConversionData capabilities_conversions[];
-
-#endif  /* __GABBLE_CAPABILITIES__H__ */
-
--- a/telepathygabble/inc/config.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
- * config.h - Source for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-/* config.h.in.  Generated from configure.ac by autoheader.  */
-
-/* DBus services directory */
-#undef DBUS_SERVICES_DIR
-
-/* Enable backtrace output on crashes */
-#undef ENABLE_BACKTRACE
-
-/* Enable debug code */
-#undef ENABLE_DEBUG
-
-/* Enable handle leak debug code */
-#undef ENABLE_HANDLE_LEAK_DEBUG
-
-/* Define to 1 if you have the `backtrace' function. */
-#undef HAVE_BACKTRACE
-
-/* Define to 1 if you have the `backtrace_symbols_fd' function. */
-#undef HAVE_BACKTRACE_SYMBOLS_FD
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the <execinfo.h> header file. */
-#undef HAVE_EXECINFO_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `signal' function. */
-#undef HAVE_SIGNAL
-
-/* Define to 1 if you have the <signal.h> header file. */
-#undef HAVE_SIGNAL_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#define  VERSION "1.0"
--- a/telepathygabble/inc/debug.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
- * debug.h - Header for GabbleConnection
- * Copyright (C) 2005 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifndef __DEBUG_H__
-#define __DEBUG_H_
-
-#include "config.h"
-
-#include <glib.h>
-
-#include "gabble_enums.h"
-
-
-/*#ifdef ENABLE_DEBUG bsr */
-
-G_BEGIN_DECLS
-
-/*Moved to gabble_enums.h
-typedef enum
-{
-  GABBLE_DEBUG_PRESENCE      = 1 << 0,
-  GABBLE_DEBUG_GROUPS        = 1 << 1,
-  GABBLE_DEBUG_ROSTER        = 1 << 2,
-  GABBLE_DEBUG_DISCO         = 1 << 3,
-  GABBLE_DEBUG_PROPERTIES    = 1 << 4,
-  GABBLE_DEBUG_ROOMLIST      = 1 << 5,
-  GABBLE_DEBUG_MEDIA         = 1 << 6,
-  GABBLE_DEBUG_MUC           = 1 << 7,
-  GABBLE_DEBUG_CONNECTION    = 1 << 8,
-  GABBLE_DEBUG_IM            = 1 << 9,
-  GABBLE_DEBUG_PERSIST       = 1 << 10,
-  GABBLE_DEBUG_VCARD         = 1 << 11,
-} GabbleDebugFlags;
-*/
-
-#ifdef SYMBIAN
-IMPORT_C
-#endif
-void gabble_debug_set_flags_from_env ();
-#ifdef SYMBIAN
-IMPORT_C
-#endif
-void gabble_debug_set_flags (GabbleDebugFlags flags);
-
-gboolean gabble_debug_flag_is_set (GabbleDebugFlags flag);
-void gabble_debug (GabbleDebugFlags flag, const gchar *format, ...);
-    /* bsr G_GNUC_PRINTF (2, 3); */
-#ifdef ENABLE_DEBUG  /* bsr */
-#ifdef DEBUG_FLAG
-
-/*#define DEBUG(format, ...) \
-  gabble_debug(DEBUG_FLAG, "%s: " format, G_STRFUNC, ##__VA_ARGS__)
-*/
-
-#define DEBUG G_DEBUG 
-  static inline void G_DEBUG (const gchar *format, ...) 
-	{
-    gabble_debug(DEBUG_FLAG, "%s: " format, G_STRFUNC, ##__VA_ARGS__)
-	}
-
-#define DEBUGGING gabble_debug_flag_is_set(DEBUG_FLAG)
-
-#define NODE_DEBUG(n, s) \
-G_STMT_START { \
-  gchar *debug_tmp = lm_message_node_to_string (n); \
-  gabble_debug (DEBUG_FLAG, "%s: " s ":\n%s", G_STRFUNC, debug_tmp); \
-  g_free (debug_tmp); \
-} G_STMT_END
-
-#else /* DEBUG_FLAG */
-#define DEBUG 0
-#define DEBUGGING  0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-#else /* ENABLE_DEBUG */
-
-#define DEBUG
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-
-#endif /* ENABLE_DEBUG */
-
-G_END_DECLS
-
-#endif
-
--- a/telepathygabble/inc/disco.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
- * disco.h - Headers for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * -- LET'S DISCO!!!  \o/ \o_ _o/ /\o/\ _/o/- -\o\_ --
- */
-
-#ifndef __GABBLE_DISCO_H__
-#define __GABBLE_DISCO_H__
-
-#include <glib-object.h>
-#include "loudmouth/loudmouth.h"
-
-#include "gabble-types.h"
-
-G_BEGIN_DECLS
-
-typedef enum
-{
-  GABBLE_DISCO_TYPE_INFO,
-  GABBLE_DISCO_TYPE_ITEMS
-} GabbleDiscoType;
-
-typedef struct _GabbleDiscoClass GabbleDiscoClass;
-typedef struct _GabbleDiscoRequest GabbleDiscoRequest;
-
-/**
- * GabbleDiscoError:
- * @GABBLE_DISCO_ERROR_CANCELLED: The DISCO request was cancelled
- * @GABBLE_DISCO_ERROR_TIMEOUT: The DISCO request timed out
- * @GABBLE_DISCO_ERROR_UNKNOWN: An unknown error occured
- */
-typedef enum
-{
-  GABBLE_DISCO_ERROR_CANCELLED,
-  GABBLE_DISCO_ERROR_TIMEOUT,
-  GABBLE_DISCO_ERROR_UNKNOWN
-} GabbleDiscoError;
-
-GQuark gabble_disco_error_quark (void);
-#define GABBLE_DISCO_ERROR gabble_disco_error_quark ()
-
-IMPORT_C GType gabble_disco_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_DISCO \
-  (gabble_disco_get_type())
-#define GABBLE_DISCO(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_DISCO, GabbleDisco))
-#define GABBLE_DISCO_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_DISCO, GabbleDiscoClass))
-#define GABBLE_IS_DISCO(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_DISCO))
-#define GABBLE_IS_DISCO_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_DISCO))
-#define GABBLE_DISCO_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_DISCO, GabbleDiscoClass))
-
-struct _GabbleDiscoClass {
-    GObjectClass parent_class;
-};
-
-struct _GabbleDisco {
-    GObject parent;
-    gpointer priv;
-};
-
-typedef void (*GabbleDiscoCb)(GabbleDisco *self, GabbleDiscoRequest *request, const gchar *jid, const gchar *node, LmMessageNode *query_result, GError* error, gpointer user_data);
-
-GabbleDisco *gabble_disco_new (GabbleConnection *);
-
-GabbleDiscoRequest *gabble_disco_request (GabbleDisco *self,
-    GabbleDiscoType type, const gchar *jid, const char *node,
-    GabbleDiscoCb callback, gpointer user_data, GObject *object,
-    GError **error);
-GabbleDiscoRequest *gabble_disco_request_with_timeout (GabbleDisco *self,
-    GabbleDiscoType type, const gchar *jid, const char *node,
-    guint timeout, GabbleDiscoCb callback, gpointer user_data,
-    GObject *object, GError **error);
-
-void gabble_disco_cancel_request (GabbleDisco *, GabbleDiscoRequest *);
-
-/* Pipelines */
-
-typedef struct _GabbleDiscoItem GabbleDiscoItem;
-
-struct _GabbleDiscoItem {
-    const gchar *jid;
-    const char *name;
-    const char *type;
-    const char *category;
-    GHashTable *features;
-};
-
-typedef void (*GabbleDiscoPipelineCb)(gpointer pipeline,
-                                      GabbleDiscoItem *item,
-                                      gpointer user_data);
-
-typedef void (*GabbleDiscoEndCb)(gpointer pipeline,
-                                 gpointer user_data);
-
-gpointer gabble_disco_pipeline_init (GabbleDisco *disco,
-                                     GabbleDiscoPipelineCb callback,
-                                     GabbleDiscoEndCb end_callback,
-                                     gpointer user_data);
-
-void gabble_disco_pipeline_run (gpointer self, const char *server);
-void gabble_disco_pipeline_destroy (gpointer self);
-
-/* Service discovery */
-
-void gabble_disco_service_discovery (GabbleDisco *disco, const char *server);
-const GabbleDiscoItem *
-gabble_disco_service_find (GabbleDisco *disco,
-                           const char *type,
-                           const char *category,
-                           const char *feature);
-
-G_END_DECLS
-
-#endif
--- a/telepathygabble/inc/gabble-connection-glue.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,697 +0,0 @@
-/*
- * gabble-connection-glue.h - 
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal_gabble_connection_MARSHAL_H__
-#define __dbus_glib_marshal_gabble_connection_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:1) */
-extern void dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                          GValue       *return_value,
-                                                                          guint         n_param_values,
-                                                                          const GValue *param_values,
-                                                                          gpointer      invocation_hint,
-                                                                          gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                              GValue       *return_value G_GNUC_UNUSED,
-                                                              guint         n_param_values,
-                                                              const GValue *param_values,
-                                                              gpointer      invocation_hint G_GNUC_UNUSED,
-                                                              gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer     data1,
-                                                             gpointer     arg_1,
-                                                             gpointer     arg_2,
-                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* NONE:STRING,UINT,UINT,BOOLEAN,POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:2) */
-extern void dbus_glib_marshal_gabble_connection_VOID__STRING_UINT_UINT_BOOLEAN_POINTER (GClosure     *closure,
-                                                                                        GValue       *return_value,
-                                                                                        guint         n_param_values,
-                                                                                        const GValue *param_values,
-                                                                                        gpointer      invocation_hint,
-                                                                                        gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_VOID__STRING_UINT_UINT_BOOLEAN_POINTER (GClosure     *closure,
-                                                                            GValue       *return_value G_GNUC_UNUSED,
-                                                                            guint         n_param_values,
-                                                                            const GValue *param_values,
-                                                                            gpointer      invocation_hint G_GNUC_UNUSED,
-                                                                            gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_UINT_UINT_BOOLEAN_POINTER) (gpointer     data1,
-                                                                       gpointer     arg_1,
-                                                                       guint        arg_2,
-                                                                       guint        arg_3,
-                                                                       gboolean     arg_4,
-                                                                       gpointer     arg_5,
-                                                                       gpointer     data2);
-  register GMarshalFunc_VOID__STRING_UINT_UINT_BOOLEAN_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 6);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_UINT_UINT_BOOLEAN_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_uint (param_values + 3),
-            g_marshal_value_peek_boolean (param_values + 4),
-            g_marshal_value_peek_pointer (param_values + 5),
-            data2);
-}
-#define dbus_glib_marshal_gabble_connection_NONE__STRING_UINT_UINT_BOOLEAN_POINTER	dbus_glib_marshal_gabble_connection_VOID__STRING_UINT_UINT_BOOLEAN_POINTER
-
-/* BOOLEAN:BOXED,BOXED,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:3) */
-extern void dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                                      GValue       *return_value,
-                                                                                      guint         n_param_values,
-                                                                                      const GValue *param_values,
-                                                                                      gpointer      invocation_hint,
-                                                                                      gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                          GValue       *return_value G_GNUC_UNUSED,
-                                                                          guint         n_param_values,
-                                                                          const GValue *param_values,
-                                                                          gpointer      invocation_hint G_GNUC_UNUSED,
-                                                                          gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_BOXED_POINTER_POINTER) (gpointer     data1,
-                                                                         gpointer     arg_1,
-                                                                         gpointer     arg_2,
-                                                                         gpointer     arg_3,
-                                                                         gpointer     arg_4,
-                                                                         gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_BOXED_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_BOXED_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_boxed (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       g_marshal_value_peek_pointer (param_values + 4),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:4) */
-extern void dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                                                        GValue       *return_value,
-                                                                        guint         n_param_values,
-                                                                        const GValue *param_values,
-                                                                        gpointer      invocation_hint,
-                                                                        gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                                            GValue       *return_value G_GNUC_UNUSED,
-                                                            guint         n_param_values,
-                                                            const GValue *param_values,
-                                                            gpointer      invocation_hint G_GNUC_UNUSED,
-                                                            gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_POINTER) (gpointer     data1,
-                                                           gpointer     arg_1,
-                                                           gpointer     arg_2,
-                                                           gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,STRING,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:5) */
-extern void dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_STRING_POINTER_POINTER (GClosure     *closure,
-                                                                                       GValue       *return_value,
-                                                                                       guint         n_param_values,
-                                                                                       const GValue *param_values,
-                                                                                       gpointer      invocation_hint,
-                                                                                       gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_STRING_POINTER_POINTER (GClosure     *closure,
-                                                                           GValue       *return_value G_GNUC_UNUSED,
-                                                                           guint         n_param_values,
-                                                                           const GValue *param_values,
-                                                                           gpointer      invocation_hint G_GNUC_UNUSED,
-                                                                           gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER_POINTER) (gpointer     data1,
-                                                                          gpointer     arg_1,
-                                                                          gpointer     arg_2,
-                                                                          gpointer     arg_3,
-                                                                          gpointer     arg_4,
-                                                                          gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_string (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       g_marshal_value_peek_pointer (param_values + 4),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:STRING,BOXED,POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:6) */
-extern void dbus_glib_marshal_gabble_connection_BOOLEAN__STRING_BOXED_POINTER (GClosure     *closure,
-                                                                               GValue       *return_value,
-                                                                               guint         n_param_values,
-                                                                               const GValue *param_values,
-                                                                               gpointer      invocation_hint,
-                                                                               gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_BOOLEAN__STRING_BOXED_POINTER (GClosure     *closure,
-                                                                   GValue       *return_value G_GNUC_UNUSED,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint G_GNUC_UNUSED,
-                                                                   gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__STRING_BOXED_POINTER) (gpointer     data1,
-                                                                  gpointer     arg_1,
-                                                                  gpointer     arg_2,
-                                                                  gpointer     arg_3,
-                                                                  gpointer     data2);
-  register GMarshalFunc_BOOLEAN__STRING_BOXED_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__STRING_BOXED_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_string (param_values + 1),
-                       g_marshal_value_peek_boxed (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:7) */
-extern void dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                                GValue       *return_value,
-                                                                                guint         n_param_values,
-                                                                                const GValue *param_values,
-                                                                                gpointer      invocation_hint,
-                                                                                gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                    GValue       *return_value G_GNUC_UNUSED,
-                                                                    guint         n_param_values,
-                                                                    const GValue *param_values,
-                                                                    gpointer      invocation_hint G_GNUC_UNUSED,
-                                                                    gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER) (gpointer     data1,
-                                                                   gpointer     arg_1,
-                                                                   gpointer     arg_2,
-                                                                   gpointer     arg_3,
-                                                                   gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:8) */
-extern void dbus_glib_marshal_gabble_connection_BOOLEAN__STRING_POINTER (GClosure     *closure,
-                                                                         GValue       *return_value,
-                                                                         guint         n_param_values,
-                                                                         const GValue *param_values,
-                                                                         gpointer      invocation_hint,
-                                                                         gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_BOOLEAN__STRING_POINTER (GClosure     *closure,
-                                                             GValue       *return_value G_GNUC_UNUSED,
-                                                             guint         n_param_values,
-                                                             const GValue *param_values,
-                                                             gpointer      invocation_hint G_GNUC_UNUSED,
-                                                             gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__STRING_POINTER) (gpointer     data1,
-                                                            gpointer     arg_1,
-                                                            gpointer     arg_2,
-                                                            gpointer     data2);
-  register GMarshalFunc_BOOLEAN__STRING_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_string (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* NONE:UINT,BOXED,POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:9) */
-extern void dbus_glib_marshal_gabble_connection_VOID__UINT_BOXED_POINTER (GClosure     *closure,
-                                                                          GValue       *return_value,
-                                                                          guint         n_param_values,
-                                                                          const GValue *param_values,
-                                                                          gpointer      invocation_hint,
-                                                                          gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_VOID__UINT_BOXED_POINTER (GClosure     *closure,
-                                                              GValue       *return_value G_GNUC_UNUSED,
-                                                              guint         n_param_values,
-                                                              const GValue *param_values,
-                                                              gpointer      invocation_hint G_GNUC_UNUSED,
-                                                              gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_BOXED_POINTER) (gpointer     data1,
-                                                         guint        arg_1,
-                                                         gpointer     arg_2,
-                                                         gpointer     arg_3,
-                                                         gpointer     data2);
-  register GMarshalFunc_VOID__UINT_BOXED_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_BOXED_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_boxed (param_values + 2),
-            g_marshal_value_peek_pointer (param_values + 3),
-            data2);
-}
-#define dbus_glib_marshal_gabble_connection_NONE__UINT_BOXED_POINTER	dbus_glib_marshal_gabble_connection_VOID__UINT_BOXED_POINTER
-
-/* NONE:BOXED,POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:10) */
-extern void dbus_glib_marshal_gabble_connection_VOID__BOXED_POINTER (GClosure     *closure,
-                                                                     GValue       *return_value,
-                                                                     guint         n_param_values,
-                                                                     const GValue *param_values,
-                                                                     gpointer      invocation_hint,
-                                                                     gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_VOID__BOXED_POINTER (GClosure     *closure,
-                                                         GValue       *return_value G_GNUC_UNUSED,
-                                                         guint         n_param_values,
-                                                         const GValue *param_values,
-                                                         gpointer      invocation_hint G_GNUC_UNUSED,
-                                                         gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__BOXED_POINTER) (gpointer     data1,
-                                                    gpointer     arg_1,
-                                                    gpointer     arg_2,
-                                                    gpointer     data2);
-  register GMarshalFunc_VOID__BOXED_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__BOXED_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_boxed (param_values + 1),
-            g_marshal_value_peek_pointer (param_values + 2),
-            data2);
-}
-#define dbus_glib_marshal_gabble_connection_NONE__BOXED_POINTER	dbus_glib_marshal_gabble_connection_VOID__BOXED_POINTER
-
-/* BOOLEAN:POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:11) */
-extern void dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER (GClosure     *closure,
-                                                                  GValue       *return_value,
-                                                                  guint         n_param_values,
-                                                                  const GValue *param_values,
-                                                                  gpointer      invocation_hint,
-                                                                  gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER (GClosure     *closure,
-                                                      GValue       *return_value G_GNUC_UNUSED,
-                                                      guint         n_param_values,
-                                                      const GValue *param_values,
-                                                      gpointer      invocation_hint G_GNUC_UNUSED,
-                                                      gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:UINT,POINTER (/tmp/dbus-binding-tool-c-marshallers.R2YJIU:12) */
-extern void dbus_glib_marshal_gabble_connection_BOOLEAN__UINT_POINTER (GClosure     *closure,
-                                                                       GValue       *return_value,
-                                                                       guint         n_param_values,
-                                                                       const GValue *param_values,
-                                                                       gpointer      invocation_hint,
-                                                                       gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_BOOLEAN__UINT_POINTER (GClosure     *closure,
-                                                           GValue       *return_value G_GNUC_UNUSED,
-                                                           guint         n_param_values,
-                                                           const GValue *param_values,
-                                                           gpointer      invocation_hint G_GNUC_UNUSED,
-                                                           gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_POINTER) (gpointer     data1,
-                                                          guint        arg_1,
-                                                          gpointer     arg_2,
-                                                          gpointer     data2);
-  register GMarshalFunc_BOOLEAN__UINT_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__UINT_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_uint (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal_gabble_connection_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib_gabble_connection_methods[] = {
-  { (GCallback) gabble_connection_connect, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER, 0 },
-  { (GCallback) gabble_connection_disconnect, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER, 48 },
-  { (GCallback) gabble_connection_get_interfaces, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER_POINTER, 99 },
-  { (GCallback) gabble_connection_get_protocol, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER_POINTER, 167 },
-  { (GCallback) gabble_connection_get_self_handle, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER_POINTER, 232 },
-  { (GCallback) gabble_connection_get_status, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER_POINTER, 299 },
-  { (GCallback) gabble_connection_hold_handles, dbus_glib_marshal_gabble_connection_NONE__UINT_BOXED_POINTER, 362 },
-  { (GCallback) gabble_connection_inspect_handles, dbus_glib_marshal_gabble_connection_NONE__UINT_BOXED_POINTER, 443 },
-  { (GCallback) gabble_connection_list_channels, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER_POINTER, 541 },
-  { (GCallback) gabble_connection_release_handles, dbus_glib_marshal_gabble_connection_NONE__UINT_BOXED_POINTER, 613 },
-  { (GCallback) gabble_connection_request_channel, dbus_glib_marshal_gabble_connection_NONE__STRING_UINT_UINT_BOOLEAN_POINTER, 697 },
-  { (GCallback) gabble_connection_request_handles, dbus_glib_marshal_gabble_connection_NONE__UINT_BOXED_POINTER, 822 },
-  { (GCallback) gabble_connection_get_alias_flags, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER_POINTER, 918 },
-  { (GCallback) gabble_connection_request_aliases, dbus_glib_marshal_gabble_connection_NONE__BOXED_POINTER, 1004 },
-  { (GCallback) gabble_connection_set_aliases, dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_POINTER, 1106 },
-  { (GCallback) gabble_connection_advertise_capabilities, dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_BOXED_POINTER_POINTER, 1192 },
-  { (GCallback) gabble_connection_get_capabilities, dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_POINTER_POINTER, 1318 },
-  { (GCallback) gabble_connection_add_status, dbus_glib_marshal_gabble_connection_BOOLEAN__STRING_BOXED_POINTER, 1429 },
-  { (GCallback) gabble_connection_clear_status, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER, 1523 },
-  { (GCallback) gabble_connection_get_presence, dbus_glib_marshal_gabble_connection_NONE__BOXED_POINTER, 1594 },
-  { (GCallback) gabble_connection_get_statuses, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER_POINTER, 1707 },
-  { (GCallback) gabble_connection_remove_status, dbus_glib_marshal_gabble_connection_BOOLEAN__STRING_POINTER, 1804 },
-  { (GCallback) gabble_connection_request_presence, dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_POINTER, 1887 },
-  { (GCallback) gabble_connection_set_last_activity_time, dbus_glib_marshal_gabble_connection_BOOLEAN__UINT_POINTER, 1976 },
-  { (GCallback) gabble_connection_set_status, dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_POINTER, 2064 },
-  { (GCallback) gabble_connection_get_properties, dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_POINTER_POINTER, 2154 },
-  { (GCallback) gabble_connection_list_properties, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER_POINTER, 2241 },
-  { (GCallback) gabble_connection_set_properties, dbus_glib_marshal_gabble_connection_NONE__BOXED_POINTER, 2315 },
-  { (GCallback) gabble_connection_set_avatar, dbus_glib_marshal_gabble_connection_BOOLEAN__BOXED_STRING_POINTER_POINTER, 2683 },
-  { (GCallback) gabble_connection_clear_avatar, dbus_glib_marshal_gabble_connection_BOOLEAN__POINTER, 2790 },
-};
-
-const DBusGObjectInfo dbus_glib_gabble_connection_object_info = {
-  0,
-  dbus_glib_gabble_connection_methods,
-  33,
-"org.freedesktop.Telepathy.Connection\0Connect\0S\0\0org.freedesktop.Telepathy.Connection\0Disconnect\0S\0\0org.freedesktop.Telepathy.Connection\0GetInterfaces\0S\0arg0\0O\0F\0N\0as\0\0org.freedesktop.Telepathy.Connection\0GetProtocol\0S\0arg0\0O\0F\0N\0s\0\0org.freedesktop.Telepathy.Connection\0GetSelfHandle\0S\0arg0\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Connection\0GetStatus\0S\0arg0\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Connection\0HoldHandles\0A\0handle_type\0I\0u\0handles\0I\0au\0\0org.freedesktop.Telepathy.Connection\0InspectHandles\0A\0handle_type\0I\0u\0handles\0I\0au\0arg2\0O\0F\0N\0as\0\0org.freedesktop.Telepathy.Connection\0ListChannels\0S\0arg0\0O\0F\0N\0a(osuu)\0\0org.freedesktop.Telepathy.Connection\0ReleaseHandles\0A\0handle_type\0I\0u\0handles\0I\0au\0\0org.freedesktop.Telepathy.Connection\0RequestChannel\0A\0type\0I\0s\0handle_type\0I\0u\0handle\0I\0u\0suppress_handler\0I\0b\0arg4\0O\0F\0N\0o\0\0org.freedesktop.Telepathy.Connection\0RequestHandles\0A\0handle_type\0I\0u\0names\0I\0as\0arg2\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Connection.Interface.Aliasing\0GetAliasFlags\0S\0arg0\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Connection.Interface.Aliasing\0RequestAliases\0A\0contacts\0I\0au\0arg1\0O\0F\0N\0as\0\0org.freedesktop.Telepathy.Connection.Interface.Aliasing\0SetAliases\0S\0aliases\0I\0a{us}\0\0org.freedesktop.Telepathy.Connection.Interface.Capabilities\0AdvertiseCapabilities\0S\0add\0I\0a(su)\0remove\0I\0as\0arg2\0O\0F\0N\0a(su)\0\0org.freedesktop.Telepathy.Connection.Interface.Capabilities\0GetCapabilities\0S\0handles\0I\0au\0arg1\0O\0F\0N\0a(usuu)\0\0org.freedesktop.Telepathy.Connection.Interface.Presence\0AddStatus\0S\0status\0I\0s\0parms\0I\0a{sv}\0\0org.freedesktop.Telepathy.Connection.Interface.Presence\0ClearStatus\0S\0\0org.freedesktop.Telepathy.Connection.Interface.Presence\0GetPresence\0A\0contacts\0I\0au\0arg1\0O\0F\0N\0a{u(ua{sa{sv}})}\0\0org.freedesktop.Telepathy.Connection.Interface.Presence\0GetStatuses\0S\0arg0\0O\0F\0N\0a{s(ubba{ss})}\0\0org.freedesktop.Telepathy.Connection.Interface.Presence\0RemoveStatus\0S\0status\0I\0s\0\0org.freedesktop.Telepathy.Connection.Interface.Presence\0RequestPresence\0S\0contacts\0I\0au\0\0org.freedesktop.Telepathy.Connection.Interface.Presence\0SetLastActivityTime\0S\0time\0I\0u\0\0org.freedesktop.Telepathy.Connection.Interface.Presence\0SetStatus\0S\0statuses\0I\0a{sa{sv}}\0\0org.freedesktop.Telepathy.Properties\0GetProperties\0S\0properties\0I\0au\0arg1\0O\0F\0N\0a(uv)\0\0org.freedesktop.Telepathy.Properties\0ListProperties\0S\0arg0\0O\0F\0N\0a(ussu)\0\0org.freedesktop.Telepathy.Properties\0SetProperties\0A\0properties\0I\0a(uv)\0\0org.freedesktop.Telepathy.Connection.Interface.Avatars\0GetAvatarRequirements\0S\0arg0\0O\0F\0N\0asqqqqu\0\0org.freedesktop.Telepathy.Connection.Interface.Avatars\0GetKnownAvatarTokens\0S\0contacts\0I\0au\0arg1\0O\0F\0N\0a{us}\0\0org.freedesktop.Telepathy.Connection.Interface.Avatars\0RequestAvatars\0S\0contact\0I\0au\0\0org.freedesktop.Telepathy.Connection.Interface.Avatars\0SetAvatar\0S\0avatar\0I\0ay\0mime_type\0I\0s\0arg2\0O\0F\0N\0s\0\0org.freedesktop.Telepathy.Connection.Interface.Avatars\0ClearAvatar\0S\0\0\0",
-"org.freedesktop.Telepathy.Connection\0NewChannel\0org.freedesktop.Telepathy.Connection\0StatusChanged\0org.freedesktop.Telepathy.Connection.Interface.Aliasing\0AliasesChanged\0org.freedesktop.Telepathy.Connection.Interface.Capabilities\0CapabilitiesChanged\0org.freedesktop.Telepathy.Connection.Interface.Presence\0PresenceUpdate\0org.freedesktop.Telepathy.Properties\0PropertiesChanged\0org.freedesktop.Telepathy.Properties\0PropertyFlagsChanged\0org.freedesktop.Telepathy.Connection.Interface.Avatars\0AvatarUpdated\0org.freedesktop.Telepathy.Connection.Interface.Avatars\0AvatarRetrieved\0\0",
-"\0"
-};
-
--- a/telepathygabble/inc/gabble-connection-manager-glue.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-/*
- * gabble-connection-manager-glue.h
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * 
- */
-
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal_gabble_connection_manager_MARSHAL_H__
-#define __dbus_glib_marshal_gabble_connection_manager_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.H9O3HT:1) */
-extern void dbus_glib_marshal_gabble_connection_manager_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                                  GValue       *return_value,
-                                                                                  guint         n_param_values,
-                                                                                  const GValue *param_values,
-                                                                                  gpointer      invocation_hint,
-                                                                                  gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_manager_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer     data1,
-                                                             gpointer     arg_1,
-                                                             gpointer     arg_2,
-                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:STRING,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.H9O3HT:2) */
-extern void dbus_glib_marshal_gabble_connection_manager_BOOLEAN__STRING_POINTER_POINTER (GClosure     *closure,
-                                                                                         GValue       *return_value,
-                                                                                         guint         n_param_values,
-                                                                                         const GValue *param_values,
-                                                                                         gpointer      invocation_hint,
-                                                                                         gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_manager_BOOLEAN__STRING_POINTER_POINTER (GClosure     *closure,
-                                                                             GValue       *return_value,
-                                                                             guint         n_param_values,
-                                                                             const GValue *param_values,
-                                                                             gpointer      invocation_hint,
-                                                                             gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__STRING_POINTER_POINTER) (gpointer     data1,
-                                                                    gpointer     arg_1,
-                                                                    gpointer     arg_2,
-                                                                    gpointer     arg_3,
-                                                                    gpointer     data2);
-  register GMarshalFunc_BOOLEAN__STRING_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__STRING_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_string (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:STRING,BOXED,POINTER,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.H9O3HT:3) */
-extern void dbus_glib_marshal_gabble_connection_manager_BOOLEAN__STRING_BOXED_POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                                       GValue       *return_value,
-                                                                                                       guint         n_param_values,
-                                                                                                       const GValue *param_values,
-                                                                                                       gpointer      invocation_hint,
-                                                                                                       gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_connection_manager_BOOLEAN__STRING_BOXED_POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                           GValue       *return_value,
-                                                                                           guint         n_param_values,
-                                                                                           const GValue *param_values,
-                                                                                           gpointer      invocation_hint,
-                                                                                           gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__STRING_BOXED_POINTER_POINTER_POINTER) (gpointer     data1,
-                                                                                  gpointer     arg_1,
-                                                                                  gpointer     arg_2,
-                                                                                  gpointer     arg_3,
-                                                                                  gpointer     arg_4,
-                                                                                  gpointer     arg_5,
-                                                                                  gpointer     data2);
-  register GMarshalFunc_BOOLEAN__STRING_BOXED_POINTER_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 6);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__STRING_BOXED_POINTER_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_string (param_values + 1),
-                       g_marshal_value_peek_boxed (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       g_marshal_value_peek_pointer (param_values + 4),
-                       g_marshal_value_peek_pointer (param_values + 5),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal_gabble_connection_manager_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib_gabble_connection_manager_methods[] = {
-  { (GCallback) gabble_connection_manager_get_parameters, dbus_glib_marshal_gabble_connection_manager_BOOLEAN__STRING_POINTER_POINTER, 0 },
-  { (GCallback) gabble_connection_manager_list_protocols, dbus_glib_marshal_gabble_connection_manager_BOOLEAN__POINTER_POINTER, 90 },
-  { (GCallback) gabble_connection_manager_request_connection, dbus_glib_marshal_gabble_connection_manager_BOOLEAN__STRING_BOXED_POINTER_POINTER_POINTER, 165 },
-};
-
-const DBusGObjectInfo dbus_glib_gabble_connection_manager_object_info = {
-  0,
-  dbus_glib_gabble_connection_manager_methods,
-  3,
-"org.freedesktop.Telepathy.ConnectionManager\0GetParameters\0S\0proto\0I\0s\0arg1\0O\0F\0N\0a(susv)\0\0org.freedesktop.Telepathy.ConnectionManager\0ListProtocols\0S\0arg0\0O\0F\0N\0as\0\0org.freedesktop.Telepathy.ConnectionManager\0RequestConnection\0S\0proto\0I\0s\0parameters\0I\0a{sv}\0arg2\0O\0F\0N\0s\0arg3\0O\0F\0N\0o\0\0\0",
-"org.freedesktop.Telepathy.ConnectionManager\0NewConnection\0\0",
-"\0"
-};
-
--- a/telepathygabble/inc/gabble-connection-manager-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * gabble-connection-manager-signals-marshal.h 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __gabble_connection_manager_marshal_MARSHAL_H__
-#define __gabble_connection_manager_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:STRING,STRING,STRING (gabble-connection-manager-signals-marshal.list:1) */
-extern void gabble_connection_manager_marshal_VOID__STRING_STRING_STRING (GClosure     *closure,
-                                                                          GValue       *return_value,
-                                                                          guint         n_param_values,
-                                                                          const GValue *param_values,
-                                                                          gpointer      invocation_hint,
-                                                                          gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __gabble_connection_manager_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/gabble-connection-manager.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-/*
- * gabble-connection-manager.h - Header for GabbleConnectionManager
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_CONNECTION_MANAGER_H__
-#define __GABBLE_CONNECTION_MANAGER_H__
-
-#include <glib-object.h>
-//vinod
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-protocol.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "gabble-connection.h"
-#include "telepathy-constants.h"
-#include "telepathy-errors.h"
-#include "telepathy-helpers.h"
-//end
-#define GABBLE_CONN_MGR_BUS_NAME        "org.freedesktop.Telepathy.ConnectionManager.gabble"
-#define GABBLE_CONN_MGR_OBJECT_PATH     "/org/freedesktop/Telepathy/ConnectionManager/gabble"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleConnectionManager GabbleConnectionManager;
-typedef struct _GabbleConnectionManagerClass GabbleConnectionManagerClass;
-
-struct _GabbleConnectionManagerClass {
-    GObjectClass parent_class;
-};
-
-struct _GabbleConnectionManager {
-    GObject parent;
-
-    gpointer priv;
-};
-
-typedef struct {
-    const gchar *name;          /* name as passed over dbus */
-    const gchar *dtype;         /* D-Bus type string */
-    const GType gtype;          /* glib type string */
-    guint flags;                /* combination of TP_CONN_MGR_PARAM_FLAG_foo */
-    const gpointer def;         /* default - gchar * or GINT_TO_POINTER */
-    const gsize offset;         /* internal use only */
-} GabbleParamSpec;
-
-typedef struct {
-    const gchar *name;
-    const GabbleParamSpec *parameters;       /* terminated by a NULL name */
-} GabbleProtocolSpec;
-
-//start: vinod
-/* private data */
-
-typedef struct _GabbleParams GabbleParams;
-
-struct _GabbleParams {
-  guint set_mask;
-
-  gchar *account;
-  gchar *password;
-  gchar *server;
-  gchar *resource;
-  gint priority;
-  guint port;
-  gboolean old_ssl;
-  gboolean do_register;
-  gboolean low_bandwidth;
-  gchar *https_proxy_server;
-  guint https_proxy_port;
-  gchar *fallback_conference_server;
-  gchar *stun_server;
-  guint stun_port;
-  gboolean ignore_ssl_errors;
-  gchar *alias;
-};
-
-//const GabbleProtocolSpec *gabble_protocols; /* terminated by a NULL name */
-static const GabbleParamSpec jabber_params[] = {
-  { "account", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_REGISTER, NULL, G_STRUCT_OFFSET(GabbleParams, account) },
-  { "password", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_REGISTER, NULL, G_STRUCT_OFFSET(GabbleParams, password) },
-  { "server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL, G_STRUCT_OFFSET(GabbleParams, server) },
-  { "resource", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GABBLE_PARAMS_DEFAULT_RESOURCE, G_STRUCT_OFFSET(GabbleParams, resource) },
-  { "priority", DBUS_TYPE_INT16_AS_STRING, G_TYPE_INT, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(0), G_STRUCT_OFFSET(GabbleParams, priority) },
-  { "port", DBUS_TYPE_UINT16_AS_STRING, G_TYPE_UINT, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(GABBLE_PARAMS_DEFAULT_PORT), G_STRUCT_OFFSET(GabbleParams, port) },
-  { "old-ssl", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE), G_STRUCT_OFFSET(GabbleParams, old_ssl) },
-  { "register", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE), G_STRUCT_OFFSET(GabbleParams, do_register) },
-  { "low-bandwidth", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE), G_STRUCT_OFFSET(GabbleParams, low_bandwidth) },
-  { "https-proxy-server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL, G_STRUCT_OFFSET(GabbleParams, https_proxy_server) },
-  { "https-proxy-port", DBUS_TYPE_UINT16_AS_STRING, G_TYPE_UINT, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(GABBLE_PARAMS_DEFAULT_HTTPS_PROXY_PORT), G_STRUCT_OFFSET(GabbleParams, https_proxy_port) },
-  { "fallback-conference-server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL, G_STRUCT_OFFSET(GabbleParams, fallback_conference_server) },
-  { "stun-server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL, G_STRUCT_OFFSET(GabbleParams, stun_server) },
-  { "stun-port", DBUS_TYPE_UINT16_AS_STRING, G_TYPE_UINT, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(GABBLE_PARAMS_DEFAULT_STUN_PORT), G_STRUCT_OFFSET(GabbleParams, stun_port) },
-  { "ignore-ssl-errors", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE), G_STRUCT_OFFSET(GabbleParams, ignore_ssl_errors) },
-  { "alias", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL, G_STRUCT_OFFSET(GabbleParams, alias) },
-  { NULL, NULL, 0, 0, NULL, 0 }
-};
-
-static const GabbleProtocolSpec _gabble_protocols[] = {
-  { "jabber", jabber_params },
-  //{ "jabber", jabber_params }
-  { NULL, NULL } //vinod
-  
-};
-
-const GabbleProtocolSpec *gabble_protocols = _gabble_protocols;
-
-//end: vinod
-
-IMPORT_C GType gabble_connection_manager_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_CONNECTION_MANAGER \
-  (gabble_connection_manager_get_type())
-#define GABBLE_CONNECTION_MANAGER(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_CONNECTION_MANAGER, GabbleConnectionManager))
-#define GABBLE_CONNECTION_MANAGER_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_CONNECTION_MANAGER, GabbleConnectionManagerClass))
-#define GABBLE_IS_CONNECTION_MANAGER(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_CONNECTION_MANAGER))
-#define GABBLE_IS_CONNECTION_MANAGER_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_CONNECTION_MANAGER))
-#define GABBLE_CONNECTION_MANAGER_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_CONNECTION_MANAGER, GabbleConnectionManagerClass))
-
-#ifdef SYMBIAN
-IMPORT_C
-#endif
-void _gabble_connection_manager_register (GabbleConnectionManager *self);
-
-gboolean
-gabble_connection_manager_get_parameters (GabbleConnectionManager *self,
-                                          const gchar *proto,
-                                          GPtrArray **ret,
-                                          GError **error);
-
-gboolean
-gabble_connection_manager_list_protocols (GabbleConnectionManager *self,
-                                          gchar ***ret,
-                                          GError **error);
-
-gboolean
-gabble_connection_manager_request_connection (GabbleConnectionManager *self,
-                                              const gchar *proto,
-                                              GHashTable *parameters,
-                                              gchar **ret,
-                                              gchar **ret1,
-                                              GError **error);
-
-
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_CONNECTION_MANAGER_H__*/
--- a/telepathygabble/inc/gabble-connection-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * gabble-connection-signals-marshal.h
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __gabble_connection_marshal_MARSHAL_H__
-#define __gabble_connection_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:STRING,STRING,UINT,UINT,BOOLEAN (gabble-connection-signals-marshal.list:1) */
-extern void gabble_connection_marshal_VOID__STRING_STRING_UINT_UINT_BOOLEAN (GClosure     *closure,
-                                                                             GValue       *return_value,
-                                                                             guint         n_param_values,
-                                                                             const GValue *param_values,
-                                                                             gpointer      invocation_hint,
-                                                                             gpointer      marshal_data);
-
-/* VOID:UINT,UINT (gabble-connection-signals-marshal.list:2) */
-extern void gabble_connection_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                                       GValue       *return_value,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint,
-                                                       gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __gabble_connection_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/gabble-connection.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,334 +0,0 @@
-/*
- * gabble-connection.h - Header for GabbleConnection
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_CONNECTION_H__
-#define __GABBLE_CONNECTION_H__
-
-#include <dbus/dbus-glib.h>
-#include <glib-object.h>
-#include "loudmouth/loudmouth.h"
-
-#include "gabble-types.h"
-#include "gabble-error.h"
-#include "properties-mixin.h"
-#include "telepathy-constants.h"
-
-G_BEGIN_DECLS
-
-/* Default parameters for optional parameters */
-#define GABBLE_PARAMS_DEFAULT_RESOURCE                   "Telepathy"
-#define GABBLE_PARAMS_DEFAULT_PORT                       5222
-#define GABBLE_PARAMS_DEFAULT_HTTPS_PROXY_PORT           443
-#define GABBLE_PARAMS_DEFAULT_STUN_PORT                  3478
-
-/* order must match array of statuses in gabble-connection.c */
-/* in increasing order of presence */
-typedef enum
-{
-  GABBLE_PRESENCE_OFFLINE = 0,
-  GABBLE_PRESENCE_HIDDEN,
-  GABBLE_PRESENCE_XA,
-  GABBLE_PRESENCE_AWAY,
-  GABBLE_PRESENCE_DND,
-  GABBLE_PRESENCE_AVAILABLE,
-  GABBLE_PRESENCE_CHAT,
-  LAST_GABBLE_PRESENCE
-} GabblePresenceId;
-
-typedef enum
-{
-  GABBLE_CONNECTION_FEATURES_NONE = 0,
-  GABBLE_CONNECTION_FEATURES_GOOGLE_JINGLE_INFO = 1 << 0,
-  GABBLE_CONNECTION_FEATURES_GOOGLE_ROSTER = 1 << 1,
-  GABBLE_CONNECTION_FEATURES_PRESENCE_INVISIBLE = 1 << 2,
-  GABBLE_CONNECTION_FEATURES_PRIVACY = 1 << 3,
-  GABBLE_CONNECTION_FEATURES_SEARCH = 1 << 4,
-} GabbleConnectionFeatures;
-
-typedef struct _GabbleConnectionClass GabbleConnectionClass;
-
-typedef LmHandlerResult (*GabbleConnectionMsgReplyFunc) (GabbleConnection *conn,
-                                                         LmMessage *sent_msg,
-                                                         LmMessage *reply_msg,
-                                                         GObject *object,
-                                                         gpointer user_data);
-
-struct _GabbleConnectionClass {
-    GObjectClass parent_class;
-
-    GabblePropertiesMixinClass properties_class;
-};
-
-struct _GabbleConnection {
-    GObject parent;
-
-    GabblePropertiesMixin properties;
-
-    /* dbus object location */
-    gchar *bus_name;
-    gchar *object_path;
-
-    /* loudmouth connection */
-    LmConnection *lmconn;
-
-    /* connection status */
-    TpConnectionStatus status;
-
-    /* handles */
-    GabbleHandleRepo *handles;
-    GabbleHandle self_handle;
-
-    /* roster */
-    GabbleRoster *roster;
-
-    /* DISCO! */
-    GabbleDisco *disco;
-
-    /* connection feature flags */
-    GabbleConnectionFeatures features;
-
-    /* presence */
-    GabblePresenceCache *presence_cache;
-
-    /* vCard lookup helper */
-    GabbleVCardManager *vcard_manager;
-	/* search related info */
-	/* jid which supports search feature */
-	gchar *search_service_jid;
-	/* key names on which search request can be made */
-	gchar **search_key_names;
-	/* maps search key "label" to "var" */
-	GHashTable *search_key_ht;
-	/* instruction by service to do search */
-	gchar  *search_instr;
-	/* gives the detailed info of search results*/
-	gchar **search_reported_fields;
-	/* needed to support search with and without data forms*/
-	gboolean search_form;
-	 /*avatar sha1*/
-	gchar* self_avatar_sha1;
-    gpointer priv;
-};
-
-typedef enum {
-    GABBLE_CONNECTION_ALIAS_NONE = 0,
-    GABBLE_CONNECTION_ALIAS_FROM_JID,
-    GABBLE_CONNECTION_ALIAS_FROM_VCARD,
-    GABBLE_CONNECTION_ALIAS_FROM_CONNMGR,
-    GABBLE_CONNECTION_ALIAS_FROM_PRESENCE,
-    GABBLE_CONNECTION_ALIAS_FROM_ROSTER
-} GabbleConnectionAliasSource;
-
-IMPORT_C GType gabble_connection_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_CONNECTION \
-  (gabble_connection_get_type())
-#define GABBLE_CONNECTION(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_CONNECTION, GabbleConnection))
-#define GABBLE_CONNECTION_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_CONNECTION, GabbleConnectionClass))
-#define GABBLE_IS_CONNECTION(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_CONNECTION))
-#define GABBLE_IS_CONNECTION_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_CONNECTION))
-#define GABBLE_CONNECTION_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_CONNECTION, GabbleConnectionClass))
-
-gboolean _gabble_connection_set_properties_from_account (GabbleConnection *conn, const gchar *account, GError **error);
-gboolean _gabble_connection_register (GabbleConnection *conn, char **bus_name, char **object_path, GError **error);
-gboolean _gabble_connection_send (GabbleConnection *conn, LmMessage *msg, GError **error);
-gboolean _gabble_connection_send_with_reply (GabbleConnection *conn, LmMessage *msg, GabbleConnectionMsgReplyFunc reply_func, GObject *object, gpointer user_data, GError **error);
-void _gabble_connection_acknowledge_set_iq (GabbleConnection *conn, LmMessage *iq);
-void _gabble_connection_send_iq_error (GabbleConnection *conn, LmMessage *message, GabbleXmppError error, const gchar *errmsg);
-
-GabbleConnectionAliasSource _gabble_connection_get_cached_alias (GabbleConnection *, GabbleHandle, gchar **);
-
-const char *_gabble_connection_find_conference_server (GabbleConnection *);
-
-gboolean
-gabble_connection_add_status (GabbleConnection *self,
-                              const gchar *status,
-                              GHashTable *parms,
-                              GError **error);
-
-gboolean
-gabble_connection_advertise_capabilities (GabbleConnection *self,
-                                          const GPtrArray *add,
-                                          const gchar **remove,
-                                          GPtrArray **ret,
-                                          GError **error);
-
-gboolean
-gabble_connection_clear_status (GabbleConnection *self,
-                                GError **error);
-
-gboolean
-gabble_connection_connect (GabbleConnection *self,
-                           GError **error);
-
-//Mukesh - start
-gboolean
-gabble_connection_connect_blocking (GabbleConnection *self,
-                           GError **error);
-//Mukesh - end
-
-gboolean
-gabble_connection_disconnect (GabbleConnection *self,
-                              GError **error);
-
-gboolean
-gabble_connection_get_alias_flags (GabbleConnection *self,
-                                   guint *ret,
-                                   GError **error);
-
-gboolean
-gabble_connection_get_capabilities (GabbleConnection *self,
-                                    const GArray *handles,
-                                    GPtrArray **ret,
-                                    GError **error);
-
-gboolean
-gabble_connection_get_interfaces (GabbleConnection *self,
-                                  gchar ***ret,
-                                  GError **error);
-
-void
-gabble_connection_get_presence (GabbleConnection *self,
-                                const GArray *contacts,
-                                DBusGMethodInvocation *context);
-
-gboolean
-gabble_connection_get_properties (GabbleConnection *self,
-                                  const GArray *properties,
-                                  GPtrArray **ret,
-                                  GError **error);
-
-gboolean
-gabble_connection_get_protocol (GabbleConnection *self,
-                                gchar **ret,
-                                GError **error);
-
-gboolean
-gabble_connection_get_self_handle (GabbleConnection *self,
-                                   guint *ret,
-                                   GError **error);
-
-gboolean
-gabble_connection_get_status (GabbleConnection *self,
-                              guint *ret,
-                              GError **error);
-
-gboolean
-gabble_connection_get_statuses (GabbleConnection *self,
-                                GHashTable **ret,
-                                GError **error);
-
-void
-gabble_connection_hold_handles (GabbleConnection *self,
-                                guint handle_type,
-                                const GArray *handles,
-                                DBusGMethodInvocation *context);
-
-void
-gabble_connection_inspect_handles (GabbleConnection *self,
-                                   guint handle_type,
-                                   const GArray *handles,
-                                   DBusGMethodInvocation *context);
-
-gboolean
-gabble_connection_list_channels (GabbleConnection *self,
-                                 GPtrArray **ret,
-                                 GError **error);
-
-gboolean
-gabble_connection_list_properties (GabbleConnection *self,
-                                   GPtrArray **ret,
-                                   GError **error);
-
-void
-gabble_connection_release_handles (GabbleConnection *self,
-                                   guint handle_type,
-                                   const GArray *handles,
-                                   DBusGMethodInvocation *context);
-
-gboolean
-gabble_connection_remove_status (GabbleConnection *self,
-                                 const gchar *status,
-                                 GError **error);
-
-void
-gabble_connection_request_aliases (GabbleConnection *self,
-                                   const GArray *contacts,
-                                   DBusGMethodInvocation *context);
-
-void
-gabble_connection_request_channel (GabbleConnection *self,
-                                   const gchar *type,
-                                   guint handle_type,
-                                   guint handle,
-                                   gboolean suppress_handler,
-                                   DBusGMethodInvocation *context);
-
-void
-gabble_connection_request_handles (GabbleConnection *self,
-                                   guint handle_type,
-                                   const gchar **names,
-                                   DBusGMethodInvocation *context);
-
-gboolean
-gabble_connection_request_presence (GabbleConnection *self,
-                                    const GArray *contacts,
-                                    GError **error);
-
-gboolean
-gabble_connection_set_aliases (GabbleConnection *self,
-                               GHashTable *aliases,
-                               GError **error);
-
-gboolean
-gabble_connection_set_last_activity_time (GabbleConnection *self,
-                                          guint time,
-                                          GError **error);
-
-void
-gabble_connection_set_properties (GabbleConnection *self,
-                                  const GPtrArray *properties,
-                                  DBusGMethodInvocation *context);
-
-gboolean
-gabble_connection_set_status (GabbleConnection *self,
-                              GHashTable *statuses,
-                              GError **error);
-
-gboolean 
-gabble_connection_set_avatar( GabbleConnection *self, const GArray* bin_image, gchar* mime, gchar**avatar_sha1, GError** err );
-
-gboolean 
-gabble_connection_clear_avatar( GabbleConnection *self,
-                              GError **error); 
-
-
-LmMessage* gabble_connection_build_avatar(GabbleConnection *self,  
-        const GArray* bin_image, gchar* mime );
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_CONNECTION_H__*/
--- a/telepathygabble/inc/gabble-error.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
- * gabble-error.h - Header for Gabble's error handling API
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_ERROR_H__
-#define __GABBLE_ERROR_H__
-
-#include <glib.h>
-#include "loudmouth/loudmouth.h"
-
-typedef enum {
-    XMPP_ERROR_REDIRECT = 0,            /* 302 */
-    XMPP_ERROR_GONE,                    /* 302 */
-
-    XMPP_ERROR_BAD_REQUEST,             /* 400 */
-    XMPP_ERROR_UNEXPECTED_REQUEST,      /* 400 */
-    XMPP_ERROR_JID_MALFORMED,           /* 400 */
-
-    XMPP_ERROR_NOT_AUTHORIZED,          /* 401 */
-
-    XMPP_ERROR_PAYMENT_REQUIRED,        /* 402 */
-
-    XMPP_ERROR_FORBIDDEN,               /* 403 */
-
-    XMPP_ERROR_ITEM_NOT_FOUND,          /* 404 */
-    XMPP_ERROR_RECIPIENT_UNAVAILABLE,   /* 404 */
-    XMPP_ERROR_REMOTE_SERVER_NOT_FOUND, /* 404 */
-
-    XMPP_ERROR_NOT_ALLOWED,             /* 405 */
-
-    XMPP_ERROR_NOT_ACCEPTABLE,          /* 406 */
-
-    XMPP_ERROR_REGISTRATION_REQUIRED,   /* 407 */
-    XMPP_ERROR_SUBSCRIPTION_REQUIRED,   /* 407 */
-
-    XMPP_ERROR_REMOTE_SERVER_TIMEOUT,   /* 408, 504 */
-
-    XMPP_ERROR_CONFLICT,                /* 409 */
-
-    XMPP_ERROR_INTERNAL_SERVER_ERROR,   /* 500 */
-    XMPP_ERROR_UNDEFINED_CONDITION,     /* 500 */
-    XMPP_ERROR_RESOURCE_CONSTRAINT,     /* 500 */
-
-    XMPP_ERROR_FEATURE_NOT_IMPLEMENTED, /* 501 */
-
-    XMPP_ERROR_SERVICE_UNAVAILABLE,     /* 502, 503, 510 */
-
-    XMPP_ERROR_JINGLE_OUT_OF_ORDER,
-    XMPP_ERROR_JINGLE_UNKOWN_SESSION,
-    XMPP_ERROR_JINGLE_UNSUPPORTED_CONTENT,
-    XMPP_ERROR_JINGLE_UNSUPPORTED_TRANSPORT,
-
-    NUM_XMPP_ERRORS,
-
-    INVALID_XMPP_ERROR,
-} GabbleXmppError;
-
-GQuark gabble_xmpp_error_quark (void);
-#define GABBLE_XMPP_ERROR gabble_xmpp_error_quark ()
-
-GabbleXmppError gabble_xmpp_error_from_node (LmMessageNode *error_node);
-GError *gabble_xmpp_error_to_g_error (GabbleXmppError error);
-LmMessageNode *gabble_xmpp_error_to_node (GabbleXmppError error, LmMessageNode *parent_node, const gchar *errmsg);
-const gchar *gabble_xmpp_error_string (GabbleXmppError error);
-const gchar *gabble_xmpp_error_description (GabbleXmppError error);
-
-#endif /* __GABBLE_ERROR_H__ */
--- a/telepathygabble/inc/gabble-im-channel-glue.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,387 +0,0 @@
-/*
- * gabble-im-channel-glue.h
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal_gabble_im_channel_MARSHAL_H__
-#define __dbus_glib_marshal_gabble_im_channel_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.8R94HT:1) */
-extern void dbus_glib_marshal_gabble_im_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                          GValue       *return_value,
-                                                                          guint         n_param_values,
-                                                                          const GValue *param_values,
-                                                                          gpointer      invocation_hint,
-                                                                          gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_im_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                              GValue       *return_value,
-                                                              guint         n_param_values,
-                                                              const GValue *param_values,
-                                                              gpointer      invocation_hint,
-                                                              gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer     data1,
-                                                             gpointer     arg_1,
-                                                             gpointer     arg_2,
-                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.8R94HT:2) */
-extern void dbus_glib_marshal_gabble_im_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                  GValue       *return_value,
-                                                                                  guint         n_param_values,
-                                                                                  const GValue *param_values,
-                                                                                  gpointer      invocation_hint,
-                                                                                  gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_im_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (gpointer     data1,
-                                                                     gpointer     arg_1,
-                                                                     gpointer     arg_2,
-                                                                     gpointer     arg_3,
-                                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,POINTER (/tmp/dbus-binding-tool-c-marshallers.8R94HT:3) */
-extern void dbus_glib_marshal_gabble_im_channel_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                                                        GValue       *return_value,
-                                                                        guint         n_param_values,
-                                                                        const GValue *param_values,
-                                                                        gpointer      invocation_hint,
-                                                                        gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_im_channel_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                                            GValue       *return_value,
-                                                            guint         n_param_values,
-                                                            const GValue *param_values,
-                                                            gpointer      invocation_hint,
-                                                            gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_POINTER) (gpointer     data1,
-                                                           gpointer     arg_1,
-                                                           gpointer     arg_2,
-                                                           gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:UINT,STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.8R94HT:4) */
-extern void dbus_glib_marshal_gabble_im_channel_BOOLEAN__UINT_STRING_POINTER (GClosure     *closure,
-                                                                              GValue       *return_value,
-                                                                              guint         n_param_values,
-                                                                              const GValue *param_values,
-                                                                              gpointer      invocation_hint,
-                                                                              gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_im_channel_BOOLEAN__UINT_STRING_POINTER (GClosure     *closure,
-                                                                  GValue       *return_value,
-                                                                  guint         n_param_values,
-                                                                  const GValue *param_values,
-                                                                  gpointer      invocation_hint,
-                                                                  gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_STRING_POINTER) (gpointer     data1,
-                                                                 guint        arg_1,
-                                                                 gpointer     arg_2,
-                                                                 gpointer     arg_3,
-                                                                 gpointer     data2);
-  register GMarshalFunc_BOOLEAN__UINT_STRING_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__UINT_STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_uint (param_values + 1),
-                       g_marshal_value_peek_string (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER (/tmp/dbus-binding-tool-c-marshallers.8R94HT:5) */
-extern void dbus_glib_marshal_gabble_im_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                                                  GValue       *return_value,
-                                                                  guint         n_param_values,
-                                                                  const GValue *param_values,
-                                                                  gpointer      invocation_hint,
-                                                                  gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_im_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                                      GValue       *return_value,
-                                                      guint         n_param_values,
-                                                      const GValue *param_values,
-                                                      gpointer      invocation_hint,
-                                                      gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOOLEAN,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.8R94HT:6) */
-extern void dbus_glib_marshal_gabble_im_channel_BOOLEAN__BOOLEAN_POINTER_POINTER (GClosure     *closure,
-                                                                                  GValue       *return_value,
-                                                                                  guint         n_param_values,
-                                                                                  const GValue *param_values,
-                                                                                  gpointer      invocation_hint,
-                                                                                  gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_im_channel_BOOLEAN__BOOLEAN_POINTER_POINTER (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOOLEAN_POINTER_POINTER) (gpointer     data1,
-                                                                     gboolean     arg_1,
-                                                                     gpointer     arg_2,
-                                                                     gpointer     arg_3,
-                                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOOLEAN_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOOLEAN_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boolean (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal_gabble_im_channel_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib_gabble_im_channel_methods[] = {
-  { (GCallback) gabble_im_channel_close, dbus_glib_marshal_gabble_im_channel_BOOLEAN__POINTER, 0 },
-  { (GCallback) gabble_im_channel_get_channel_type, dbus_glib_marshal_gabble_im_channel_BOOLEAN__POINTER_POINTER, 43 },
-  { (GCallback) gabble_im_channel_get_handle, dbus_glib_marshal_gabble_im_channel_BOOLEAN__POINTER_POINTER_POINTER, 108 },
-  { (GCallback) gabble_im_channel_get_interfaces, dbus_glib_marshal_gabble_im_channel_BOOLEAN__POINTER_POINTER, 181 },
-  { (GCallback) gabble_im_channel_acknowledge_pending_messages, dbus_glib_marshal_gabble_im_channel_BOOLEAN__BOXED_POINTER, 246 },
-  { (GCallback) gabble_im_channel_get_message_types, dbus_glib_marshal_gabble_im_channel_BOOLEAN__POINTER_POINTER, 329 },
-  { (GCallback) gabble_im_channel_list_pending_messages, dbus_glib_marshal_gabble_im_channel_BOOLEAN__BOOLEAN_POINTER_POINTER, 406 },
-  { (GCallback) gabble_im_channel_send, dbus_glib_marshal_gabble_im_channel_BOOLEAN__UINT_STRING_POINTER, 504 },
-};
-
-const DBusGObjectInfo dbus_glib_gabble_im_channel_object_info = {
-  0,
-  dbus_glib_gabble_im_channel_methods,
-  8,
-"org.freedesktop.Telepathy.Channel\0Close\0S\0\0org.freedesktop.Telepathy.Channel\0GetChannelType\0S\0arg0\0O\0F\0N\0s\0\0org.freedesktop.Telepathy.Channel\0GetHandle\0S\0arg0\0O\0F\0N\0u\0arg1\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel\0GetInterfaces\0S\0arg0\0O\0F\0N\0as\0\0org.freedesktop.Telepathy.Channel.Type.Text\0AcknowledgePendingMessages\0S\0ids\0I\0au\0\0org.freedesktop.Telepathy.Channel.Type.Text\0GetMessageTypes\0S\0arg0\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Type.Text\0ListPendingMessages\0S\0clear\0I\0b\0arg1\0O\0F\0N\0a(uuuuus)\0\0org.freedesktop.Telepathy.Channel.Type.Text\0Send\0S\0type\0I\0u\0text\0I\0s\0\0\0",
-"org.freedesktop.Telepathy.Channel\0Closed\0org.freedesktop.Telepathy.Channel.Type.Text\0LostMessage\0org.freedesktop.Telepathy.Channel.Type.Text\0Received\0org.freedesktop.Telepathy.Channel.Type.Text\0SendError\0org.freedesktop.Telepathy.Channel.Type.Text\0Sent\0\0",
-"\0"
-};
-
--- a/telepathygabble/inc/gabble-im-channel-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * gabble-im-channel-signals-marshal.h 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __gabble_im_channel_marshal_MARSHAL_H__
-#define __gabble_im_channel_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-G_END_DECLS
-
-#endif /* __gabble_im_channel_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/gabble-im-channel.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*
- * gabble-im-channel.h - Header for GabbleIMChannel
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_IM_CHANNEL_H__
-#define __GABBLE_IM_CHANNEL_H__
-
-#include <glib-object.h>
-#include <time.h>
-
-#include "handles.h"
-#include "telepathy-constants.h"
-#include "text-mixin.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleIMChannel GabbleIMChannel;
-typedef struct _GabbleIMChannelClass GabbleIMChannelClass;
-
-struct _GabbleIMChannelClass {
-    GObjectClass parent_class;
-
-    GabbleTextMixinClass text_class;
-};
-
-struct _GabbleIMChannel {
-    GObject parent;
-
-    GabbleTextMixin text;
-
-    gpointer priv;
-};
-
-IMPORT_C GType gabble_im_channel_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_IM_CHANNEL \
-  (gabble_im_channel_get_type())
-#define GABBLE_IM_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_IM_CHANNEL, GabbleIMChannel))
-#define GABBLE_IM_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_IM_CHANNEL, GabbleIMChannelClass))
-#define GABBLE_IS_IM_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_IM_CHANNEL))
-#define GABBLE_IS_IM_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_IM_CHANNEL))
-#define GABBLE_IM_CHANNEL_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_IM_CHANNEL, GabbleIMChannelClass))
-
-gboolean _gabble_im_channel_receive (GabbleIMChannel *chan, TpChannelTextMessageType type, GabbleHandle sender, const char *from, time_t timestamp, const char *text);
-
-gboolean
-gabble_im_channel_acknowledge_pending_messages (GabbleIMChannel *self,
-                                                const GArray *ids,
-                                                GError **error);
-
-gboolean
-gabble_im_channel_close (GabbleIMChannel *self,
-                         GError **error);
-
-gboolean
-gabble_im_channel_get_channel_type (GabbleIMChannel *self,
-                                    gchar **ret,
-                                    GError **error);
-
-gboolean
-gabble_im_channel_get_handle (GabbleIMChannel *self,
-                              guint *ret,
-                              guint *ret1,
-                              GError **error);
-
-gboolean
-gabble_im_channel_get_interfaces (GabbleIMChannel *self,
-                                  gchar ***ret,
-                                  GError **error);
-
-gboolean
-gabble_im_channel_get_message_types (GabbleIMChannel *self,
-                                     GArray **ret,
-                                     GError **error);
-
-gboolean
-gabble_im_channel_list_pending_messages (GabbleIMChannel *self,
-                                         gboolean clear,
-                                         GPtrArray **ret,
-                                         GError **error);
-
-gboolean
-gabble_im_channel_send (GabbleIMChannel *self,
-                        guint type,
-                        const gchar *text,
-                        GError **error);
-
-
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_IM_CHANNEL_H__*/
--- a/telepathygabble/inc/gabble-media-channel-glue.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,550 +0,0 @@
-/*
- * gabble-media-channel-glue.h 
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- 
- */
-
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal_gabble_media_channel_MARSHAL_H__
-#define __dbus_glib_marshal_gabble_media_channel_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.64D0HT:1) */
-extern void dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                             GValue       *return_value,
-                                                                             guint         n_param_values,
-                                                                             const GValue *param_values,
-                                                                             gpointer      invocation_hint,
-                                                                             gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                 GValue       *return_value,
-                                                                 guint         n_param_values,
-                                                                 const GValue *param_values,
-                                                                 gpointer      invocation_hint,
-                                                                 gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer     data1,
-                                                             gpointer     arg_1,
-                                                             gpointer     arg_2,
-                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:UINT,BOXED,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.64D0HT:2) */
-extern void dbus_glib_marshal_gabble_media_channel_BOOLEAN__UINT_BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                                        GValue       *return_value,
-                                                                                        guint         n_param_values,
-                                                                                        const GValue *param_values,
-                                                                                        gpointer      invocation_hint,
-                                                                                        gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_channel_BOOLEAN__UINT_BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                            GValue       *return_value,
-                                                                            guint         n_param_values,
-                                                                            const GValue *param_values,
-                                                                            gpointer      invocation_hint,
-                                                                            gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_BOXED_POINTER_POINTER) (gpointer     data1,
-                                                                        guint        arg_1,
-                                                                        gpointer     arg_2,
-                                                                        gpointer     arg_3,
-                                                                        gpointer     arg_4,
-                                                                        gpointer     data2);
-  register GMarshalFunc_BOOLEAN__UINT_BOXED_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__UINT_BOXED_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_uint (param_values + 1),
-                       g_marshal_value_peek_boxed (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       g_marshal_value_peek_pointer (param_values + 4),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.64D0HT:3) */
-extern void dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                     GValue       *return_value,
-                                                                                     guint         n_param_values,
-                                                                                     const GValue *param_values,
-                                                                                     gpointer      invocation_hint,
-                                                                                     gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                         GValue       *return_value,
-                                                                         guint         n_param_values,
-                                                                         const GValue *param_values,
-                                                                         gpointer      invocation_hint,
-                                                                         gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (gpointer     data1,
-                                                                     gpointer     arg_1,
-                                                                     gpointer     arg_2,
-                                                                     gpointer     arg_3,
-                                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.64D0HT:4) */
-extern void dbus_glib_marshal_gabble_media_channel_BOOLEAN__BOXED_STRING_POINTER (GClosure     *closure,
-                                                                                  GValue       *return_value,
-                                                                                  guint         n_param_values,
-                                                                                  const GValue *param_values,
-                                                                                  gpointer      invocation_hint,
-                                                                                  gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_channel_BOOLEAN__BOXED_STRING_POINTER (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER) (gpointer     data1,
-                                                                  gpointer     arg_1,
-                                                                  gpointer     arg_2,
-                                                                  gpointer     arg_3,
-                                                                  gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_string (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,POINTER (/tmp/dbus-binding-tool-c-marshallers.64D0HT:5) */
-extern void dbus_glib_marshal_gabble_media_channel_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                                                           GValue       *return_value,
-                                                                           guint         n_param_values,
-                                                                           const GValue *param_values,
-                                                                           gpointer      invocation_hint,
-                                                                           gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_channel_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                                               GValue       *return_value,
-                                                               guint         n_param_values,
-                                                               const GValue *param_values,
-                                                               gpointer      invocation_hint,
-                                                               gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_POINTER) (gpointer     data1,
-                                                           gpointer     arg_1,
-                                                           gpointer     arg_2,
-                                                           gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.64D0HT:6) */
-extern void dbus_glib_marshal_gabble_media_channel_BOOLEAN__BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                                   GValue       *return_value,
-                                                                                   guint         n_param_values,
-                                                                                   const GValue *param_values,
-                                                                                   gpointer      invocation_hint,
-                                                                                   gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_channel_BOOLEAN__BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                       GValue       *return_value,
-                                                                       guint         n_param_values,
-                                                                       const GValue *param_values,
-                                                                       gpointer      invocation_hint,
-                                                                       gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER) (gpointer     data1,
-                                                                   gpointer     arg_1,
-                                                                   gpointer     arg_2,
-                                                                   gpointer     arg_3,
-                                                                   gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:UINT,UINT,POINTER (/tmp/dbus-binding-tool-c-marshallers.64D0HT:7) */
-extern void dbus_glib_marshal_gabble_media_channel_BOOLEAN__UINT_UINT_POINTER (GClosure     *closure,
-                                                                               GValue       *return_value,
-                                                                               guint         n_param_values,
-                                                                               const GValue *param_values,
-                                                                               gpointer      invocation_hint,
-                                                                               gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_channel_BOOLEAN__UINT_UINT_POINTER (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_UINT_POINTER) (gpointer     data1,
-                                                               guint        arg_1,
-                                                               guint        arg_2,
-                                                               gpointer     arg_3,
-                                                               gpointer     data2);
-  register GMarshalFunc_BOOLEAN__UINT_UINT_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__UINT_UINT_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_uint (param_values + 1),
-                       g_marshal_value_peek_uint (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER (/tmp/dbus-binding-tool-c-marshallers.64D0HT:8) */
-extern void dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                                                     GValue       *return_value,
-                                                                     guint         n_param_values,
-                                                                     const GValue *param_values,
-                                                                     gpointer      invocation_hint,
-                                                                     gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                                         GValue       *return_value,
-                                                         guint         n_param_values,
-                                                         const GValue *param_values,
-                                                         gpointer      invocation_hint,
-                                                         gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER,POINTER,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.64D0HT:9) */
-extern void dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                             GValue       *return_value,
-                                                                                             guint         n_param_values,
-                                                                                             const GValue *param_values,
-                                                                                             gpointer      invocation_hint,
-                                                                                             gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                 GValue       *return_value,
-                                                                                 guint         n_param_values,
-                                                                                 const GValue *param_values,
-                                                                                 gpointer      invocation_hint,
-                                                                                 gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER_POINTER) (gpointer     data1,
-                                                                             gpointer     arg_1,
-                                                                             gpointer     arg_2,
-                                                                             gpointer     arg_3,
-                                                                             gpointer     arg_4,
-                                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       g_marshal_value_peek_pointer (param_values + 4),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal_gabble_media_channel_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib_gabble_media_channel_methods[] = {
-  { (GCallback) gabble_media_channel_close, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER, 0 },
-  { (GCallback) gabble_media_channel_get_channel_type, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER, 43 },
-  { (GCallback) gabble_media_channel_get_handle, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER_POINTER, 108 },
-  { (GCallback) gabble_media_channel_get_interfaces, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER, 181 },
-  { (GCallback) gabble_media_channel_add_members, dbus_glib_marshal_gabble_media_channel_BOOLEAN__BOXED_STRING_POINTER, 246 },
-  { (GCallback) gabble_media_channel_get_all_members, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER_POINTER_POINTER, 336 },
-  { (GCallback) gabble_media_channel_get_group_flags, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER, 445 },
-  { (GCallback) gabble_media_channel_get_handle_owners, dbus_glib_marshal_gabble_media_channel_BOOLEAN__BOXED_POINTER_POINTER, 525 },
-  { (GCallback) gabble_media_channel_get_local_pending_members, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER, 621 },
-  { (GCallback) gabble_media_channel_get_members, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER, 711 },
-  { (GCallback) gabble_media_channel_get_remote_pending_members, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER, 789 },
-  { (GCallback) gabble_media_channel_get_self_handle, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER, 880 },
-  { (GCallback) gabble_media_channel_remove_members, dbus_glib_marshal_gabble_media_channel_BOOLEAN__BOXED_STRING_POINTER, 960 },
-  { (GCallback) gabble_media_channel_get_session_handlers, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER, 1053 },
-  { (GCallback) gabble_media_channel_list_streams, dbus_glib_marshal_gabble_media_channel_BOOLEAN__POINTER_POINTER, 1152 },
-  { (GCallback) gabble_media_channel_remove_streams, dbus_glib_marshal_gabble_media_channel_BOOLEAN__BOXED_POINTER, 1241 },
-  { (GCallback) gabble_media_channel_request_stream_direction, dbus_glib_marshal_gabble_media_channel_BOOLEAN__UINT_UINT_POINTER, 1324 },
-  { (GCallback) gabble_media_channel_request_streams, dbus_glib_marshal_gabble_media_channel_BOOLEAN__UINT_BOXED_POINTER_POINTER, 1438 },
-};
-
-const DBusGObjectInfo dbus_glib_gabble_media_channel_object_info = {
-  0,
-  dbus_glib_gabble_media_channel_methods,
-  18,
-"org.freedesktop.Telepathy.Channel\0Close\0S\0\0org.freedesktop.Telepathy.Channel\0GetChannelType\0S\0arg0\0O\0F\0N\0s\0\0org.freedesktop.Telepathy.Channel\0GetHandle\0S\0arg0\0O\0F\0N\0u\0arg1\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel\0GetInterfaces\0S\0arg0\0O\0F\0N\0as\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0AddMembers\0S\0contacts\0I\0au\0message\0I\0s\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetAllMembers\0S\0arg0\0O\0F\0N\0au\0arg1\0O\0F\0N\0au\0arg2\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetGroupFlags\0S\0arg0\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetHandleOwners\0S\0handles\0I\0au\0arg1\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetLocalPendingMembers\0S\0arg0\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetMembers\0S\0arg0\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetRemotePendingMembers\0S\0arg0\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetSelfHandle\0S\0arg0\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0RemoveMembers\0S\0contacts\0I\0au\0message\0I\0s\0\0org.freedesktop.Telepathy.Channel.Interface.MediaSignalling\0GetSessionHandlers\0S\0arg0\0O\0F\0N\0a(os)\0\0org.freedesktop.Telepathy.Channel.Type.StreamedMedia\0ListStreams\0S\0arg0\0O\0F\0N\0a(uuuuuu)\0\0org.freedesktop.Telepathy.Channel.Type.StreamedMedia\0RemoveStreams\0S\0streams\0I\0au\0\0org.freedesktop.Telepathy.Channel.Type.StreamedMedia\0RequestStreamDirection\0S\0stream_id\0I\0u\0stream_direction\0I\0u\0\0org.freedesktop.Telepathy.Channel.Type.StreamedMedia\0RequestStreams\0S\0contact_handle\0I\0u\0types\0I\0au\0arg2\0O\0F\0N\0a(uuuuuu)\0\0\0",
-"org.freedesktop.Telepathy.Channel\0Closed\0org.freedesktop.Telepathy.Channel.Interface.Group\0GroupFlagsChanged\0org.freedesktop.Telepathy.Channel.Interface.Group\0MembersChanged\0org.freedesktop.Telepathy.Channel.Interface.MediaSignalling\0NewSessionHandler\0org.freedesktop.Telepathy.Channel.Type.StreamedMedia\0StreamAdded\0org.freedesktop.Telepathy.Channel.Type.StreamedMedia\0StreamDirectionChanged\0org.freedesktop.Telepathy.Channel.Type.StreamedMedia\0StreamError\0org.freedesktop.Telepathy.Channel.Type.StreamedMedia\0StreamRemoved\0org.freedesktop.Telepathy.Channel.Type.StreamedMedia\0StreamStateChanged\0\0",
-"\0"
-};
-
--- a/telepathygabble/inc/gabble-media-channel-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * gabble-media-channel-signals-marshal.h - Header for GabbleRoomlistChannel
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __gabble_media_channel_marshal_MARSHAL_H__
-#define __gabble_media_channel_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:UINT,UINT,STRING (gabble-media-channel-signals-marshal.list:1) */
-extern void gabble_media_channel_marshal_VOID__UINT_UINT_STRING (GClosure     *closure,
-                                                                 GValue       *return_value,
-                                                                 guint         n_param_values,
-                                                                 const GValue *param_values,
-                                                                 gpointer      invocation_hint,
-                                                                 gpointer      marshal_data);
-
-/* VOID:STRING,STRING (gabble-media-channel-signals-marshal.list:2) */
-extern void gabble_media_channel_marshal_VOID__STRING_STRING (GClosure     *closure,
-                                                              GValue       *return_value,
-                                                              guint         n_param_values,
-                                                              const GValue *param_values,
-                                                              gpointer      invocation_hint,
-                                                              gpointer      marshal_data);
-
-/* VOID:UINT,UINT (gabble-media-channel-signals-marshal.list:3) */
-extern void gabble_media_channel_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                                          GValue       *return_value,
-                                                          guint         n_param_values,
-                                                          const GValue *param_values,
-                                                          gpointer      invocation_hint,
-                                                          gpointer      marshal_data);
-
-/* VOID:UINT,UINT,UINT (gabble-media-channel-signals-marshal.list:4) */
-extern void gabble_media_channel_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
-                                                               GValue       *return_value,
-                                                               guint         n_param_values,
-                                                               const GValue *param_values,
-                                                               gpointer      invocation_hint,
-                                                               gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __gabble_media_channel_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/gabble-media-channel.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,203 +0,0 @@
-/*
- * gabble-media-channel.h - Header for GabbleMediaChannel
- * Copyright (C) 2006 Collabora Ltd.
- * Portions 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_MEDIA_CHANNEL_H__
-#define __GABBLE_MEDIA_CHANNEL_H__
-
-#include <glib-object.h>
-
-#include "gabble-media-session.h"
-#include "group-mixin.h"
-#include "handles.h"
-#include "gabble-presence.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleMediaChannel GabbleMediaChannel;
-typedef struct _GabbleMediaChannelClass GabbleMediaChannelClass;
-
-struct _GabbleMediaChannelClass {
-    GObjectClass parent_class;
-
-    GabbleGroupMixinClass group_class;
-};
-
-struct _GabbleMediaChannel {
-    GObject parent;
-
-    GabbleGroupMixin group;
-
-    gpointer priv;
-};
-
-IMPORT_C GType gabble_media_channel_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_MEDIA_CHANNEL \
-  (gabble_media_channel_get_type())
-#define GABBLE_MEDIA_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_MEDIA_CHANNEL, GabbleMediaChannel))
-#define GABBLE_MEDIA_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_MEDIA_CHANNEL, GabbleMediaChannelClass))
-#define GABBLE_IS_MEDIA_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_MEDIA_CHANNEL))
-#define GABBLE_IS_MEDIA_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_MEDIA_CHANNEL))
-#define GABBLE_MEDIA_CHANNEL_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_MEDIA_CHANNEL, GabbleMediaChannelClass))
-
-gboolean
-_gabble_media_channel_add_member (GObject *obj,
-                                  GabbleHandle handle,
-                                  const gchar *message,
-                                  GError **error);
-
-gboolean
-gabble_media_channel_add_members (GabbleMediaChannel *self,
-                                  const GArray *contacts,
-                                  const gchar *message,
-                                  GError **error);
-
-gboolean
-gabble_media_channel_close (GabbleMediaChannel *self,
-                            GError **error);
-
-gboolean
-gabble_media_channel_get_all_members (GabbleMediaChannel *self,
-                                      GArray **ret,
-                                      GArray **ret1,
-                                      GArray **ret2,
-                                      GError **error);
-
-gboolean
-gabble_media_channel_get_channel_type (GabbleMediaChannel *self,
-                                       gchar **ret,
-                                       GError **error);
-
-gboolean
-gabble_media_channel_get_group_flags (GabbleMediaChannel *self,
-                                      guint *ret,
-                                      GError **error);
-
-gboolean
-gabble_media_channel_get_handle (GabbleMediaChannel *self,
-                                 guint *ret,
-                                 guint *ret1,
-                                 GError **error);
-
-gboolean
-gabble_media_channel_get_handle_owners (GabbleMediaChannel *self,
-                                        const GArray *handles,
-                                        GArray **ret,
-                                        GError **error);
-
-gboolean
-gabble_media_channel_get_interfaces (GabbleMediaChannel *self,
-                                     gchar ***ret,
-                                     GError **error);
-
-gboolean
-gabble_media_channel_get_local_pending_members (GabbleMediaChannel *self,
-                                                GArray **ret,
-                                                GError **error);
-
-gboolean
-gabble_media_channel_get_members (GabbleMediaChannel *self,
-                                  GArray **ret,
-                                  GError **error);
-
-gboolean
-gabble_media_channel_get_remote_pending_members (GabbleMediaChannel *self,
-                                                 GArray **ret,
-                                                 GError **error);
-
-gboolean
-gabble_media_channel_get_self_handle (GabbleMediaChannel *self,
-                                      guint *ret,
-                                      GError **error);
-
-gboolean
-gabble_media_channel_get_session_handlers (GabbleMediaChannel *self,
-                                           GPtrArray **ret,
-                                           GError **error);
-
-gboolean
-gabble_media_channel_list_streams (GabbleMediaChannel *self,
-                                   GPtrArray **ret,
-                                   GError **error);
-
-gboolean
-gabble_media_channel_remove_members (GabbleMediaChannel *self,
-                                     const GArray *contacts,
-                                     const gchar *message,
-                                     GError **error);
-
-gboolean
-gabble_media_channel_remove_streams (GabbleMediaChannel *self,
-                                     const GArray *streams,
-                                     GError **error);
-
-gboolean
-gabble_media_channel_request_stream_direction (GabbleMediaChannel *self,
-                                               guint stream_id,
-                                               guint stream_direction,
-                                               GError **error);
-
-gboolean
-gabble_media_channel_request_streams (GabbleMediaChannel *self,
-                                      guint contact_handle,
-                                      const GArray *types,
-                                      GPtrArray **ret,
-                                      GError **error);
-
-gboolean
-_gabble_media_channel_dispatch_session_action (GabbleMediaChannel *chan,
-                                               GabbleHandle peer,
-                                               const gchar *peer_resource,
-                                               const gchar *sid,
-                                               LmMessage *message,
-                                               LmMessageNode *session_node,
-                                               const gchar *action,
-                                               GError **error);
-
-void
-_gabble_media_channel_stream_state (GabbleMediaChannel *chan,
-                                    guint state);
-
-guint
-_gabble_media_channel_get_stream_id (GabbleMediaChannel *chan);
-
-GabblePresenceCapabilities
-_gabble_media_channel_typeflags_to_caps (TpChannelMediaCapabilities flags);
-
-//moved definition to .c file
-GabblePresenceCapabilities
-_gabble_media_channel_typeflags_to_caps_tmp (guint flags);
-
-TpChannelMediaCapabilities
-_gabble_media_channel_caps_to_typeflags (GabblePresenceCapabilities caps);
-
-//moved definition to .c file
-guint
-_gabble_media_channel_caps_to_typeflags_tmp (GabblePresenceCapabilities caps);
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_MEDIA_CHANNEL_H__*/
--- a/telepathygabble/inc/gabble-media-session-enumtypes.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * gabble-media-session-enumtypes.h - Header for GabbleRoomlistChannel
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-/* Generated data (by glib-mkenums) */
-
-#ifndef __GABBLE_MEDIA_SESSION_ENUM_TYPES_H__
-#define __GABBLE_MEDIA_SESSION_ENUM_TYPES_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-/* enumerations from "gabble-media-session.h" */
-GType gabble_media_session_mode_get_type (void);
-#define GABBLE_TYPE_MEDIA_SESSION_MODE (gabble_media_session_mode_get_type())
-GType jingle_session_state_get_type (void);
-#define GABBLE_TYPE_SESSION_STATE (jingle_session_state_get_type())
-GType debug_message_type_get_type (void);
-#define GABBLE_TYPE_MESSAGE_TYPE (debug_message_type_get_type())
-G_END_DECLS
-
-#endif /* __GABBLE_MEDIA_SESSION_ENUM_TYPES_H__ */
-
-/* Generated data ends here */
-
--- a/telepathygabble/inc/gabble-media-session-glue.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,190 +0,0 @@
-/*
- * gabble-media-session-glue.h
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * -- LET'S DISCO!!!  \o/ \o_ _o/ /\o/\ _/o/- -\o\_ --
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal_gabble_media_session_MARSHAL_H__
-#define __dbus_glib_marshal_gabble_media_session_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:UINT,STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.C5J0HT:1) */
-extern void dbus_glib_marshal_gabble_media_session_BOOLEAN__UINT_STRING_POINTER (GClosure     *closure,
-                                                                                 GValue       *return_value,
-                                                                                 guint         n_param_values,
-                                                                                 const GValue *param_values,
-                                                                                 gpointer      invocation_hint,
-                                                                                 gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_session_BOOLEAN__UINT_STRING_POINTER (GClosure     *closure,
-                                                                     GValue       *return_value,
-                                                                     guint         n_param_values,
-                                                                     const GValue *param_values,
-                                                                     gpointer      invocation_hint,
-                                                                     gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_STRING_POINTER) (gpointer     data1,
-                                                                 guint        arg_1,
-                                                                 gpointer     arg_2,
-                                                                 gpointer     arg_3,
-                                                                 gpointer     data2);
-  register GMarshalFunc_BOOLEAN__UINT_STRING_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__UINT_STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_uint (param_values + 1),
-                       g_marshal_value_peek_string (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER (/tmp/dbus-binding-tool-c-marshallers.C5J0HT:2) */
-extern void dbus_glib_marshal_gabble_media_session_BOOLEAN__POINTER (GClosure     *closure,
-                                                                     GValue       *return_value,
-                                                                     guint         n_param_values,
-                                                                     const GValue *param_values,
-                                                                     gpointer      invocation_hint,
-                                                                     gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_session_BOOLEAN__POINTER (GClosure     *closure,
-                                                         GValue       *return_value,
-                                                         guint         n_param_values,
-                                                         const GValue *param_values,
-                                                         gpointer      invocation_hint,
-                                                         gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal_gabble_media_session_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib_gabble_media_session_methods[] = {
-  { (GCallback) gabble_media_session_error, dbus_glib_marshal_gabble_media_session_BOOLEAN__UINT_STRING_POINTER, 0 },
-  { (GCallback) gabble_media_session_ready, dbus_glib_marshal_gabble_media_session_BOOLEAN__POINTER, 78 },
-};
-
-const DBusGObjectInfo dbus_glib_gabble_media_session_object_info = {
-  0,
-  dbus_glib_gabble_media_session_methods,
-  2,
-"org.freedesktop.Telepathy.Media.SessionHandler\0Error\0S\0errno\0I\0u\0message\0I\0s\0\0org.freedesktop.Telepathy.Media.SessionHandler\0Ready\0S\0\0\0",
-"org.freedesktop.Telepathy.Media.SessionHandler\0NewStreamHandler\0\0",
-"\0"
-};
-
--- a/telepathygabble/inc/gabble-media-session-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * gabble-media-session-signals-marshal.h - Header for GabbleRoomlistChannel
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __gabble_media_session_marshal_MARSHAL_H__
-#define __gabble_media_session_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:STRING,UINT,UINT,UINT (gabble-media-session-signals-marshal.list:1) */
-extern void gabble_media_session_marshal_VOID__STRING_UINT_UINT_UINT (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data);
-
-/* VOID:UINT,UINT (gabble-media-session-signals-marshal.list:2) */
-extern void gabble_media_session_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                                          GValue       *return_value,
-                                                          guint         n_param_values,
-                                                          const GValue *param_values,
-                                                          gpointer      invocation_hint,
-                                                          gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __gabble_media_session_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/gabble-media-session.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,221 +0,0 @@
-/*
- * gabble-media-session.h - Header for GabbleMediaSession
- * Copyright (C) 2006 Collabora Ltd.
- * Portions 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_MEDIA_SESSION_H__
-#define __GABBLE_MEDIA_SESSION_H__
-
-#include <glib-object.h>
-#include "loudmouth/loudmouth.h"
-
-#include "gabble-types.h"
-#include "gabble-media-stream.h"
-#include "telepathy-constants.h"
-
-G_BEGIN_DECLS
-
-
-typedef enum
-{
-  MODE_GOOGLE,
-  MODE_JINGLE
-} GabbleMediaSessionMode;
-
-typedef enum {
-    JS_STATE_INVALID = -1,
-    JS_STATE_PENDING_CREATED = 0,
-    JS_STATE_PENDING_INITIATE_SENT,
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_PENDING_ACCEPT_SENT,
-    JS_STATE_ACTIVE,
-    JS_STATE_ENDED
-} JingleSessionState;
-
-typedef enum {
-    DEBUG_MSG_INFO = 0,
-    DEBUG_MSG_DUMP,
-    DEBUG_MSG_WARNING,
-    DEBUG_MSG_ERROR,
-    DEBUG_MSG_EVENT
-} DebugMessageType;
-
-typedef struct _GabbleMediaSession GabbleMediaSession;
-typedef struct _GabbleMediaSessionClass GabbleMediaSessionClass;
-
-struct _GabbleMediaSessionClass {
-    GObjectClass parent_class;
-};
-
-struct _GabbleMediaSession {
-    GObject parent;
-
-    JingleInitiator initiator;
-
-    gpointer priv;
-};
-
-IMPORT_C GType gabble_media_session_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_MEDIA_SESSION \
-  (gabble_media_session_get_type())
-#define GABBLE_MEDIA_SESSION(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_MEDIA_SESSION, GabbleMediaSession))
-#define GABBLE_MEDIA_SESSION_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_MEDIA_SESSION, GabbleMediaSessionClass))
-#define GABBLE_IS_MEDIA_SESSION(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_MEDIA_SESSION))
-#define GABBLE_IS_MEDIA_SESSION_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_MEDIA_SESSION))
-#define GABBLE_MEDIA_SESSION_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_MEDIA_SESSION, GabbleMediaSessionClass))
-
-#define NODE_DEBUG(n, s)
-
-/* CONVENIENCE MACROS */
-#define MSG_REPLY_CB_END_SESSION_IF_NOT_SUCCESSFUL(s, m) \
-  G_STMT_START { \
-  if (lm_message_get_sub_type (reply_msg) != LM_MESSAGE_SUB_TYPE_RESULT) \
-    { \
-      _gabble_media_session_debug (s, DEBUG_MSG_ERROR, m); \
-      NODE_DEBUG (sent_msg->node, "message sent"); \
-      NODE_DEBUG (reply_msg->node, "message reply"); \
-      _gabble_media_session_terminate (s, INITIATOR_LOCAL, TP_CHANNEL_GROUP_CHANGE_REASON_ERROR); \
-      return LM_HANDLER_RESULT_REMOVE_MESSAGE; \
-    } \
-  } G_STMT_END
-
-gboolean
-gabble_media_session_error (GabbleMediaSession *self,
-                            guint errno,
-                            const gchar *message,
-                            GError **error);
-
-gboolean
-gabble_media_session_ready (GabbleMediaSession *self,
-                            GError **error);
-
-
-gboolean
-_gabble_media_session_handle_action (GabbleMediaSession *session,
-                                     LmMessage *message,
-                                     LmMessageNode *session_node,
-                                     const gchar *action,
-                                     GError **error);
-
-LmMessage *_gabble_media_session_message_new (GabbleMediaSession *session,
-                                              const gchar *action,
-                                              LmMessageNode **session_node);
-
-void _gabble_media_session_accept (GabbleMediaSession *session);
-void _gabble_media_session_remove_streams (GabbleMediaSession *session, GabbleMediaStream **streams, guint len);
-void _gabble_media_session_terminate (GabbleMediaSession *session, JingleInitiator who, TpChannelGroupChangeReason why);
-
-gboolean _gabble_media_session_request_streams (GabbleMediaSession *session,
-                                                const GArray *types,
-                                                GPtrArray **ret,
-                                                GError **error);
-
-gboolean _gabble_media_session_request_stream_direction (GabbleMediaSession *,
-                                                         GabbleMediaStream *,
-                                                         TpMediaStreamDirection,
-                                                         GError **);
-
-#ifndef _GMS_DEBUG_LEVEL
-#define _GMS_DEBUG_LEVEL 2
-#endif
-
-#if _GMS_DEBUG_LEVEL
-#ifdef ENABLE_DEBUG
-
-//#define GMS_DEBUG_INFO(s, ...)    _gabble_media_session_debug (s, DEBUG_MSG_INFO, __VA_ARGS__)
-//vinod
-#define GMS_DEBUG_INFO G_GMS_DEBUG_INFO
-	static inline void G_GMS_DEBUG_INFO (const gchar *s, ...)
-	{
-	_gabble_media_session_debug (s, DEBUG_MSG_INFO, __VA_ARGS__)	
-	}
-
-
-#if _GMS_DEBUG_LEVEL > 1
-//#define GMS_DEBUG_DUMP(s, ...)    _gabble_media_session_debug (s, DEBUG_MSG_DUMP, __VA_ARGS__)
-//vinod
-#define GMS_DEBUG_DUMP G_GMS_DEBUG_DUMP
-	static inline void G_GMS_DEBUG_DUMP (const gchar *s, ...)
-	{
-	_gabble_media_session_debug (s, DEBUG_MSG_DUMP, __VA_ARGS__)	
-	}
-	
-#else
-#define GMS_DEBUG_DUMP(s, ...)
-#endif
-//#define GMS_DEBUG_WARNING(s, ...) _gabble_media_session_debug (s, DEBUG_MSG_WARNING, __VA_ARGS__)
-//vinod
-#define GMS_DEBUG_WARNING G_GMS_DEBUG_WARNING
-	static inline void G_GMS_DEBUG_WARNING (const gchar *s, ...)
-	{
-	_gabble_media_session_debug (s, DEBUG_MSG_WARNING, __VA_ARGS__)
-	}
-
-//#define GMS_DEBUG_ERROR(s, ...)   _gabble_media_session_debug (s, DEBUG_MSG_ERROR, __VA_ARGS__)
-//vinod
-#define GMS_DEBUG_ERROR G_GMS_DEBUG_ERROR
-	static inline void G_GMS_DEBUG_ERROR (const gchar *s, ...)
-	{
-	_gabble_media_session_debug (s, DEBUG_MSG_ERROR, __VA_ARGS__)	
-	}
-
-
-//#define GMS_DEBUG_EVENT(s, ...)   _gabble_media_session_debug (s, DEBUG_MSG_EVENT, __VA_ARGS__)
-//vinod
-#define GMS_DEBUG_EVENT G_GMS_DEBUG_EVENT
-	static inline void G_GMS_DEBUG_EVENT (const gchar *s, ...)
-	{
-	_gabble_media_session_debug (s, DEBUG_MSG_EVENT, __VA_ARGS__)	
-	}
-
-void _gabble_media_session_debug (GabbleMediaSession *session,
-                                  DebugMessageType type,
-                                  const gchar *format, ...)
-    G_GNUC_PRINTF (3, 4);
-
-#else
-
-void _gabble_media_session_debug (GabbleMediaSession *session,
-                                  DebugMessageType type,
-                                  const gchar *format, ...)
-    G_GNUC_PRINTF (3, 4);
-
-//#define GMS_DEBUG_INFO(s, ...)
-#define GMS_DEBUG_INFO
-//#define GMS_DEBUG_DUMP(s, ...)
-#define GMS_DEBUG_DUMP
-//#define GMS_DEBUG_WARNING(s, ...)
-#define GMS_DEBUG_WARNING
-//#define GMS_DEBUG_ERROR(s, ...)
-#define GMS_DEBUG_ERROR
-//#define GMS_DEBUG_EVENT(s, ...)
-#define GMS_DEBUG_EVENT
-
-#endif /* ENABLE_DEBUG */
-#endif /* _GMS_DEBUG_LEVEL */
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_MEDIA_SESSION_H__*/
--- a/telepathygabble/inc/gabble-media-stream-glue.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,389 +0,0 @@
-/*
- * gabble-media-stream-glue.h 
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * -- LET'S DISCO!!!  \o/ \o_ _o/ /\o/\ _/o/- -\o\_ --
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal_gabble_media_stream_MARSHAL_H__
-#define __dbus_glib_marshal_gabble_media_stream_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:STRING,STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.RGD2HT:1) */
-extern void dbus_glib_marshal_gabble_media_stream_BOOLEAN__STRING_STRING_POINTER (GClosure     *closure,
-                                                                                  GValue       *return_value,
-                                                                                  guint         n_param_values,
-                                                                                  const GValue *param_values,
-                                                                                  gpointer      invocation_hint,
-                                                                                  gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_stream_BOOLEAN__STRING_STRING_POINTER (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__STRING_STRING_POINTER) (gpointer     data1,
-                                                                   gpointer     arg_1,
-                                                                   gpointer     arg_2,
-                                                                   gpointer     arg_3,
-                                                                   gpointer     data2);
-  register GMarshalFunc_BOOLEAN__STRING_STRING_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__STRING_STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_string (param_values + 1),
-                       g_marshal_value_peek_string (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,POINTER (/tmp/dbus-binding-tool-c-marshallers.RGD2HT:2) */
-extern void dbus_glib_marshal_gabble_media_stream_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                                                          GValue       *return_value,
-                                                                          guint         n_param_values,
-                                                                          const GValue *param_values,
-                                                                          gpointer      invocation_hint,
-                                                                          gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_stream_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                                              GValue       *return_value,
-                                                              guint         n_param_values,
-                                                              const GValue *param_values,
-                                                              gpointer      invocation_hint,
-                                                              gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_POINTER) (gpointer     data1,
-                                                           gpointer     arg_1,
-                                                           gpointer     arg_2,
-                                                           gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:UINT,STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.RGD2HT:3) */
-extern void dbus_glib_marshal_gabble_media_stream_BOOLEAN__UINT_STRING_POINTER (GClosure     *closure,
-                                                                                GValue       *return_value,
-                                                                                guint         n_param_values,
-                                                                                const GValue *param_values,
-                                                                                gpointer      invocation_hint,
-                                                                                gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_stream_BOOLEAN__UINT_STRING_POINTER (GClosure     *closure,
-                                                                    GValue       *return_value,
-                                                                    guint         n_param_values,
-                                                                    const GValue *param_values,
-                                                                    gpointer      invocation_hint,
-                                                                    gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_STRING_POINTER) (gpointer     data1,
-                                                                 guint        arg_1,
-                                                                 gpointer     arg_2,
-                                                                 gpointer     arg_3,
-                                                                 gpointer     data2);
-  register GMarshalFunc_BOOLEAN__UINT_STRING_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__UINT_STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_uint (param_values + 1),
-                       g_marshal_value_peek_string (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:STRING,BOXED,POINTER (/tmp/dbus-binding-tool-c-marshallers.RGD2HT:4) */
-extern void dbus_glib_marshal_gabble_media_stream_BOOLEAN__STRING_BOXED_POINTER (GClosure     *closure,
-                                                                                 GValue       *return_value,
-                                                                                 guint         n_param_values,
-                                                                                 const GValue *param_values,
-                                                                                 gpointer      invocation_hint,
-                                                                                 gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_stream_BOOLEAN__STRING_BOXED_POINTER (GClosure     *closure,
-                                                                     GValue       *return_value,
-                                                                     guint         n_param_values,
-                                                                     const GValue *param_values,
-                                                                     gpointer      invocation_hint,
-                                                                     gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__STRING_BOXED_POINTER) (gpointer     data1,
-                                                                  gpointer     arg_1,
-                                                                  gpointer     arg_2,
-                                                                  gpointer     arg_3,
-                                                                  gpointer     data2);
-  register GMarshalFunc_BOOLEAN__STRING_BOXED_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__STRING_BOXED_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_string (param_values + 1),
-                       g_marshal_value_peek_boxed (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:UINT,POINTER (/tmp/dbus-binding-tool-c-marshallers.RGD2HT:5) */
-extern void dbus_glib_marshal_gabble_media_stream_BOOLEAN__UINT_POINTER (GClosure     *closure,
-                                                                         GValue       *return_value,
-                                                                         guint         n_param_values,
-                                                                         const GValue *param_values,
-                                                                         gpointer      invocation_hint,
-                                                                         gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_stream_BOOLEAN__UINT_POINTER (GClosure     *closure,
-                                                             GValue       *return_value,
-                                                             guint         n_param_values,
-                                                             const GValue *param_values,
-                                                             gpointer      invocation_hint,
-                                                             gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_POINTER) (gpointer     data1,
-                                                          guint        arg_1,
-                                                          gpointer     arg_2,
-                                                          gpointer     data2);
-  register GMarshalFunc_BOOLEAN__UINT_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__UINT_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_uint (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER (/tmp/dbus-binding-tool-c-marshallers.RGD2HT:6) */
-extern void dbus_glib_marshal_gabble_media_stream_BOOLEAN__POINTER (GClosure     *closure,
-                                                                    GValue       *return_value,
-                                                                    guint         n_param_values,
-                                                                    const GValue *param_values,
-                                                                    gpointer      invocation_hint,
-                                                                    gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_media_stream_BOOLEAN__POINTER (GClosure     *closure,
-                                                        GValue       *return_value,
-                                                        guint         n_param_values,
-                                                        const GValue *param_values,
-                                                        gpointer      invocation_hint,
-                                                        gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal_gabble_media_stream_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib_gabble_media_stream_methods[] = {
-  { (GCallback) gabble_media_stream_codec_choice, dbus_glib_marshal_gabble_media_stream_BOOLEAN__UINT_POINTER, 0 },
-  { (GCallback) gabble_media_stream_error, dbus_glib_marshal_gabble_media_stream_BOOLEAN__UINT_STRING_POINTER, 74 },
-  { (GCallback) gabble_media_stream_native_candidates_prepared, dbus_glib_marshal_gabble_media_stream_BOOLEAN__POINTER, 151 },
-  { (GCallback) gabble_media_stream_new_active_candidate_pair, dbus_glib_marshal_gabble_media_stream_BOOLEAN__STRING_STRING_POINTER, 225 },
-  { (GCallback) gabble_media_stream_new_native_candidate, dbus_glib_marshal_gabble_media_stream_BOOLEAN__STRING_BOXED_POINTER, 345 },
-  { (GCallback) gabble_media_stream_ready, dbus_glib_marshal_gabble_media_stream_BOOLEAN__BOXED_POINTER, 457 },
-  { (GCallback) gabble_media_stream_set_local_codecs, dbus_glib_marshal_gabble_media_stream_BOOLEAN__BOXED_POINTER, 535 },
-  { (GCallback) gabble_media_stream_stream_state, dbus_glib_marshal_gabble_media_stream_BOOLEAN__UINT_POINTER, 622 },
-  { (GCallback) gabble_media_stream_supported_codecs, dbus_glib_marshal_gabble_media_stream_BOOLEAN__BOXED_POINTER, 693 },
-};
-
-const DBusGObjectInfo dbus_glib_gabble_media_stream_object_info = {
-  0,
-  dbus_glib_gabble_media_stream_methods,
-  9,
-"org.freedesktop.Telepathy.Media.StreamHandler\0CodecChoice\0S\0codec_id\0I\0u\0\0org.freedesktop.Telepathy.Media.StreamHandler\0Error\0S\0errno\0I\0u\0message\0I\0s\0\0org.freedesktop.Telepathy.Media.StreamHandler\0NativeCandidatesPrepared\0S\0\0org.freedesktop.Telepathy.Media.StreamHandler\0NewActiveCandidatePair\0S\0native_candidate_id\0I\0s\0remote_candidate_id\0I\0s\0\0org.freedesktop.Telepathy.Media.StreamHandler\0NewNativeCandidate\0S\0candidate_id\0I\0s\0transports\0I\0a(usuussduss)\0\0org.freedesktop.Telepathy.Media.StreamHandler\0Ready\0S\0codecs\0I\0a(usuuua{ss})\0\0org.freedesktop.Telepathy.Media.StreamHandler\0SetLocalCodecs\0S\0codecs\0I\0a(usuuua{ss})\0\0org.freedesktop.Telepathy.Media.StreamHandler\0StreamState\0S\0state\0I\0u\0\0org.freedesktop.Telepathy.Media.StreamHandler\0SupportedCodecs\0S\0codecs\0I\0a(usuuua{ss})\0\0\0",
-"org.freedesktop.Telepathy.Media.StreamHandler\0AddRemoteCandidate\0org.freedesktop.Telepathy.Media.StreamHandler\0Close\0org.freedesktop.Telepathy.Media.StreamHandler\0RemoveRemoteCandidate\0org.freedesktop.Telepathy.Media.StreamHandler\0SetActiveCandidatePair\0org.freedesktop.Telepathy.Media.StreamHandler\0SetRemoteCandidateList\0org.freedesktop.Telepathy.Media.StreamHandler\0SetRemoteCodecs\0org.freedesktop.Telepathy.Media.StreamHandler\0SetStreamPlaying\0org.freedesktop.Telepathy.Media.StreamHandler\0SetStreamSending\0\0",
-"\0"
-};
-
--- a/telepathygabble/inc/gabble-media-stream-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
- * gabble-media-stream-signals-marshal.h
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __gabble_media_stream_marshal_MARSHAL_H__
-#define __gabble_media_stream_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:STRING,BOXED (gabble-media-stream-signals-marshal.list:1) */
-extern void gabble_media_stream_marshal_VOID__STRING_BOXED (GClosure     *closure,
-                                                            GValue       *return_value,
-                                                            guint         n_param_values,
-                                                            const GValue *param_values,
-                                                            gpointer      invocation_hint,
-                                                            gpointer      marshal_data);
-
-/* VOID:STRING,STRING (gabble-media-stream-signals-marshal.list:2) */
-extern void gabble_media_stream_marshal_VOID__STRING_STRING (GClosure     *closure,
-                                                             GValue       *return_value,
-                                                             guint         n_param_values,
-                                                             const GValue *param_values,
-                                                             gpointer      invocation_hint,
-                                                             gpointer      marshal_data);
-
-/* VOID:UINT,STRING (gabble-media-stream-signals-marshal.list:3) */
-extern void gabble_media_stream_marshal_VOID__UINT_STRING (GClosure     *closure,
-                                                           GValue       *return_value,
-                                                           guint         n_param_values,
-                                                           const GValue *param_values,
-                                                           gpointer      invocation_hint,
-                                                           gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __gabble_media_stream_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/gabble-media-stream.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-/*
- * gabble-media-stream.h - Header for GabbleMediaStream
- * Copyright (C) 2006 Collabora Ltd.
- * Portions 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_MEDIA_STREAM_H__
-#define __GABBLE_MEDIA_STREAM_H__
-
-#include <glib-object.h>
-#include "loudmouth/loudmouth.h"
-
-#include "gabble-types.h"
-#include "telepathy-constants.h"
-
-G_BEGIN_DECLS
-
-typedef enum
-{
-  STREAM_SIG_STATE_NEW,
-  STREAM_SIG_STATE_SENT,
-  STREAM_SIG_STATE_ACKNOWLEDGED,
-  STREAM_SIG_STATE_REMOVING
-} StreamSignallingState;
-
-typedef guint32 CombinedStreamDirection;
-
-typedef struct _GabbleMediaStream GabbleMediaStream;
-typedef struct _GabbleMediaStreamClass GabbleMediaStreamClass;
-
-struct _GabbleMediaStreamClass {
-    GObjectClass parent_class;
-};
-
-struct _GabbleMediaStream {
-    GObject parent;
-
-    gchar *name;
-
-    JingleInitiator initiator;
-    TpMediaStreamState connection_state;
-    StreamSignallingState signalling_state;
-
-    CombinedStreamDirection combined_direction;
-    gboolean got_local_codecs;
-    gboolean playing;
-
-    gpointer priv;
-};
-
-IMPORT_C GType gabble_media_stream_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_MEDIA_STREAM \
-  (gabble_media_stream_get_type())
-#define GABBLE_MEDIA_STREAM(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_MEDIA_STREAM, GabbleMediaStream))
-#define GABBLE_MEDIA_STREAM_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_MEDIA_STREAM, GabbleMediaStreamClass))
-#define GABBLE_IS_MEDIA_STREAM(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_MEDIA_STREAM))
-#define GABBLE_IS_MEDIA_STREAM_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_MEDIA_STREAM))
-#define GABBLE_MEDIA_STREAM_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_MEDIA_STREAM, GabbleMediaStreamClass))
-
-#define TP_TYPE_TRANSPORT_STRUCT (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, \
-      G_TYPE_STRING, \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_STRING, \
-      G_TYPE_STRING, \
-      G_TYPE_DOUBLE, \
-      G_TYPE_UINT, \
-      G_TYPE_STRING, \
-      G_TYPE_STRING, \
-      G_TYPE_INVALID))
-#define TP_TYPE_TRANSPORT_LIST (dbus_g_type_get_collection ("GPtrArray", \
-      TP_TYPE_TRANSPORT_STRUCT))
-#define TP_TYPE_CANDIDATE_STRUCT (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_STRING, \
-      TP_TYPE_TRANSPORT_LIST, \
-      G_TYPE_INVALID))
-#define TP_TYPE_CANDIDATE_LIST (dbus_g_type_get_collection ("GPtrArray", \
-      TP_TYPE_CANDIDATE_STRUCT))
-
-#define TP_TYPE_CODEC_STRUCT (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, \
-      G_TYPE_STRING, \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      DBUS_TYPE_G_STRING_STRING_HASHTABLE, \
-      G_TYPE_INVALID))
-#define TP_TYPE_CODEC_LIST (dbus_g_type_get_collection ("GPtrArray", \
-      TP_TYPE_CODEC_STRUCT))
-
-#define COMBINED_DIRECTION_GET_DIRECTION(d) \
-    ((TpMediaStreamDirection) ((d) & TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL))
-#define COMBINED_DIRECTION_GET_PENDING_SEND(d) \
-    ((TpMediaStreamPendingSend) ((d) >> 2))
-#define MAKE_COMBINED_DIRECTION(d, p) \
-    ((CombinedStreamDirection) ((d) | ((p) << 2)))
-
-gboolean
-gabble_media_stream_codec_choice (GabbleMediaStream *self,
-                                  guint codec_id,
-                                  GError **error);
-
-gboolean
-gabble_media_stream_error (GabbleMediaStream *self,
-                           guint errno,
-                           const gchar *message,
-                           GError **error);
-
-gboolean
-gabble_media_stream_native_candidates_prepared (GabbleMediaStream *self,
-                                                GError **error);
-
-gboolean
-gabble_media_stream_new_active_candidate_pair (GabbleMediaStream *self,
-                                               const gchar *native_candidate_id,
-                                               const gchar *remote_candidate_id,
-                                               GError **error);
-
-gboolean
-gabble_media_stream_new_native_candidate (GabbleMediaStream *self,
-                                          const gchar *candidate_id,
-                                          const GPtrArray *transports,
-                                          GError **error);
-
-gboolean
-gabble_media_stream_ready (GabbleMediaStream *self,
-                           const GPtrArray *codecs,
-                           GError **error);
-
-gboolean
-gabble_media_stream_set_local_codecs (GabbleMediaStream *self,
-                                      const GPtrArray *codecs,
-                                      GError **error);
-
-gboolean
-gabble_media_stream_stream_state (GabbleMediaStream *self,
-                                  guint state,
-                                  GError **error);
-
-gboolean
-gabble_media_stream_supported_codecs (GabbleMediaStream *self,
-                                      const GPtrArray *codecs,
-                                      GError **error);
-
-
-void _gabble_media_stream_close (GabbleMediaStream *close);
-gboolean _gabble_media_stream_post_remote_codecs (GabbleMediaStream *stream, LmMessage *message, LmMessageNode *desc_node, GError **error);
-gboolean _gabble_media_stream_post_remote_candidates (GabbleMediaStream *stream, LmMessage *message, LmMessageNode *transport_node, GError **error);
-LmMessageNode *_gabble_media_stream_add_content_node (GabbleMediaStream *stream, LmMessageNode *session_node);
-void _gabble_media_stream_content_node_add_description (GabbleMediaStream *stream, LmMessageNode *content_node);
-LmMessageNode *_gabble_media_stream_content_node_add_transport (GabbleMediaStream *stream, LmMessageNode *content_node);
-void _gabble_media_stream_update_sending (GabbleMediaStream *stream, gboolean start_sending);
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_MEDIA_STREAM_H__*/
--- a/telepathygabble/inc/gabble-muc-channel-glue.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,639 +0,0 @@
-/*
- * gabble-muc-channel-glue.h
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * 
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal_gabble_muc_channel_MARSHAL_H__
-#define __dbus_glib_marshal_gabble_muc_channel_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.U374HT:1) */
-extern void dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                           GValue       *return_value,
-                                                                           guint         n_param_values,
-                                                                           const GValue *param_values,
-                                                                           gpointer      invocation_hint,
-                                                                           gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                               GValue       *return_value,
-                                                               guint         n_param_values,
-                                                               const GValue *param_values,
-                                                               gpointer      invocation_hint,
-                                                               gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer     data1,
-                                                             gpointer     arg_1,
-                                                             gpointer     arg_2,
-                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.U374HT:2) */
-extern void dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                   GValue       *return_value,
-                                                                                   guint         n_param_values,
-                                                                                   const GValue *param_values,
-                                                                                   gpointer      invocation_hint,
-                                                                                   gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                       GValue       *return_value,
-                                                                       guint         n_param_values,
-                                                                       const GValue *param_values,
-                                                                       gpointer      invocation_hint,
-                                                                       gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (gpointer     data1,
-                                                                     gpointer     arg_1,
-                                                                     gpointer     arg_2,
-                                                                     gpointer     arg_3,
-                                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.U374HT:3) */
-extern void dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOXED_STRING_POINTER (GClosure     *closure,
-                                                                                GValue       *return_value,
-                                                                                guint         n_param_values,
-                                                                                const GValue *param_values,
-                                                                                gpointer      invocation_hint,
-                                                                                gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOXED_STRING_POINTER (GClosure     *closure,
-                                                                    GValue       *return_value,
-                                                                    guint         n_param_values,
-                                                                    const GValue *param_values,
-                                                                    gpointer      invocation_hint,
-                                                                    gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER) (gpointer     data1,
-                                                                  gpointer     arg_1,
-                                                                  gpointer     arg_2,
-                                                                  gpointer     arg_3,
-                                                                  gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_string (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,POINTER (/tmp/dbus-binding-tool-c-marshallers.U374HT:4) */
-extern void dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                                                         GValue       *return_value,
-                                                                         guint         n_param_values,
-                                                                         const GValue *param_values,
-                                                                         gpointer      invocation_hint,
-                                                                         gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                                             GValue       *return_value,
-                                                             guint         n_param_values,
-                                                             const GValue *param_values,
-                                                             gpointer      invocation_hint,
-                                                             gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_POINTER) (gpointer     data1,
-                                                           gpointer     arg_1,
-                                                           gpointer     arg_2,
-                                                           gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* NONE:STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.U374HT:5) */
-extern void dbus_glib_marshal_gabble_muc_channel_VOID__STRING_POINTER (GClosure     *closure,
-                                                                       GValue       *return_value,
-                                                                       guint         n_param_values,
-                                                                       const GValue *param_values,
-                                                                       gpointer      invocation_hint,
-                                                                       gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_muc_channel_VOID__STRING_POINTER (GClosure     *closure,
-                                                           GValue       *return_value,
-                                                           guint         n_param_values,
-                                                           const GValue *param_values,
-                                                           gpointer      invocation_hint,
-                                                           gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     arg_2,
-                                                     gpointer     data2);
-  register GMarshalFunc_VOID__STRING_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_pointer (param_values + 2),
-            data2);
-}
-#define dbus_glib_marshal_gabble_muc_channel_NONE__STRING_POINTER	dbus_glib_marshal_gabble_muc_channel_VOID__STRING_POINTER
-
-/* BOOLEAN:UINT,STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.U374HT:6) */
-extern void dbus_glib_marshal_gabble_muc_channel_BOOLEAN__UINT_STRING_POINTER (GClosure     *closure,
-                                                                               GValue       *return_value,
-                                                                               guint         n_param_values,
-                                                                               const GValue *param_values,
-                                                                               gpointer      invocation_hint,
-                                                                               gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_muc_channel_BOOLEAN__UINT_STRING_POINTER (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_STRING_POINTER) (gpointer     data1,
-                                                                 guint        arg_1,
-                                                                 gpointer     arg_2,
-                                                                 gpointer     arg_3,
-                                                                 gpointer     data2);
-  register GMarshalFunc_BOOLEAN__UINT_STRING_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__UINT_STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_uint (param_values + 1),
-                       g_marshal_value_peek_string (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.U374HT:7) */
-extern void dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                                 GValue       *return_value,
-                                                                                 guint         n_param_values,
-                                                                                 const GValue *param_values,
-                                                                                 gpointer      invocation_hint,
-                                                                                 gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                     GValue       *return_value,
-                                                                     guint         n_param_values,
-                                                                     const GValue *param_values,
-                                                                     gpointer      invocation_hint,
-                                                                     gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER) (gpointer     data1,
-                                                                   gpointer     arg_1,
-                                                                   gpointer     arg_2,
-                                                                   gpointer     arg_3,
-                                                                   gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* NONE:BOXED,POINTER (/tmp/dbus-binding-tool-c-marshallers.U374HT:8) */
-extern void dbus_glib_marshal_gabble_muc_channel_VOID__BOXED_POINTER (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_muc_channel_VOID__BOXED_POINTER (GClosure     *closure,
-                                                          GValue       *return_value,
-                                                          guint         n_param_values,
-                                                          const GValue *param_values,
-                                                          gpointer      invocation_hint,
-                                                          gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__BOXED_POINTER) (gpointer     data1,
-                                                    gpointer     arg_1,
-                                                    gpointer     arg_2,
-                                                    gpointer     data2);
-  register GMarshalFunc_VOID__BOXED_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__BOXED_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_boxed (param_values + 1),
-            g_marshal_value_peek_pointer (param_values + 2),
-            data2);
-}
-#define dbus_glib_marshal_gabble_muc_channel_NONE__BOXED_POINTER	dbus_glib_marshal_gabble_muc_channel_VOID__BOXED_POINTER
-
-/* BOOLEAN:POINTER (/tmp/dbus-binding-tool-c-marshallers.U374HT:9) */
-extern void dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                                       GValue       *return_value,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint,
-                                                       gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER,POINTER,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.U374HT:10) */
-extern void dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                           GValue       *return_value,
-                                                                                           guint         n_param_values,
-                                                                                           const GValue *param_values,
-                                                                                           gpointer      invocation_hint,
-                                                                                           gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                               GValue       *return_value,
-                                                                               guint         n_param_values,
-                                                                               const GValue *param_values,
-                                                                               gpointer      invocation_hint,
-                                                                               gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER_POINTER) (gpointer     data1,
-                                                                             gpointer     arg_1,
-                                                                             gpointer     arg_2,
-                                                                             gpointer     arg_3,
-                                                                             gpointer     arg_4,
-                                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       g_marshal_value_peek_pointer (param_values + 4),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOOLEAN,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.U374HT:11) */
-extern void dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOOLEAN_POINTER_POINTER (GClosure     *closure,
-                                                                                   GValue       *return_value,
-                                                                                   guint         n_param_values,
-                                                                                   const GValue *param_values,
-                                                                                   gpointer      invocation_hint,
-                                                                                   gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOOLEAN_POINTER_POINTER (GClosure     *closure,
-                                                                       GValue       *return_value,
-                                                                       guint         n_param_values,
-                                                                       const GValue *param_values,
-                                                                       gpointer      invocation_hint,
-                                                                       gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOOLEAN_POINTER_POINTER) (gpointer     data1,
-                                                                     gboolean     arg_1,
-                                                                     gpointer     arg_2,
-                                                                     gpointer     arg_3,
-                                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOOLEAN_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOOLEAN_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boolean (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal_gabble_muc_channel_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib_gabble_muc_channel_methods[] = {
-  { (GCallback) gabble_muc_channel_close, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER, 0 },
-  { (GCallback) gabble_muc_channel_get_channel_type, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER, 43 },
-  { (GCallback) gabble_muc_channel_get_handle, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER_POINTER, 108 },
-  { (GCallback) gabble_muc_channel_get_interfaces, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER, 181 },
-  { (GCallback) gabble_muc_channel_add_members, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOXED_STRING_POINTER, 246 },
-  { (GCallback) gabble_muc_channel_get_all_members, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER_POINTER_POINTER, 336 },
-  { (GCallback) gabble_muc_channel_get_group_flags, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER, 445 },
-  { (GCallback) gabble_muc_channel_get_handle_owners, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOXED_POINTER_POINTER, 525 },
-  { (GCallback) gabble_muc_channel_get_local_pending_members, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER, 621 },
-  { (GCallback) gabble_muc_channel_get_members, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER, 711 },
-  { (GCallback) gabble_muc_channel_get_remote_pending_members, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER, 789 },
-  { (GCallback) gabble_muc_channel_get_self_handle, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER, 880 },
-  { (GCallback) gabble_muc_channel_remove_members, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOXED_STRING_POINTER, 960 },
-  { (GCallback) gabble_muc_channel_get_password_flags, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER, 1053 },
-  { (GCallback) gabble_muc_channel_provide_password, dbus_glib_marshal_gabble_muc_channel_NONE__STRING_POINTER, 1139 },
-  { (GCallback) gabble_muc_channel_acknowledge_pending_messages, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOXED_POINTER, 1237 },
-  { (GCallback) gabble_muc_channel_get_message_types, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER, 1320 },
-  { (GCallback) gabble_muc_channel_list_pending_messages, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOOLEAN_POINTER_POINTER, 1397 },
-  { (GCallback) gabble_muc_channel_send, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__UINT_STRING_POINTER, 1495 },
-  { (GCallback) gabble_muc_channel_get_properties, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__BOXED_POINTER_POINTER, 1565 },
-  { (GCallback) gabble_muc_channel_list_properties, dbus_glib_marshal_gabble_muc_channel_BOOLEAN__POINTER_POINTER, 1652 },
-  { (GCallback) gabble_muc_channel_set_properties, dbus_glib_marshal_gabble_muc_channel_NONE__BOXED_POINTER, 1726 },
-};
-
-const DBusGObjectInfo dbus_glib_gabble_muc_channel_object_info = {
-  0,
-  dbus_glib_gabble_muc_channel_methods,
-  22,
-"org.freedesktop.Telepathy.Channel\0Close\0S\0\0org.freedesktop.Telepathy.Channel\0GetChannelType\0S\0arg0\0O\0F\0N\0s\0\0org.freedesktop.Telepathy.Channel\0GetHandle\0S\0arg0\0O\0F\0N\0u\0arg1\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel\0GetInterfaces\0S\0arg0\0O\0F\0N\0as\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0AddMembers\0S\0contacts\0I\0au\0message\0I\0s\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetAllMembers\0S\0arg0\0O\0F\0N\0au\0arg1\0O\0F\0N\0au\0arg2\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetGroupFlags\0S\0arg0\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetHandleOwners\0S\0handles\0I\0au\0arg1\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetLocalPendingMembers\0S\0arg0\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetMembers\0S\0arg0\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetRemotePendingMembers\0S\0arg0\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetSelfHandle\0S\0arg0\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0RemoveMembers\0S\0contacts\0I\0au\0message\0I\0s\0\0org.freedesktop.Telepathy.Channel.Interface.Password\0GetPasswordFlags\0S\0arg0\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel.Interface.Password\0ProvidePassword\0A\0password\0I\0s\0arg1\0O\0F\0N\0b\0\0org.freedesktop.Telepathy.Channel.Type.Text\0AcknowledgePendingMessages\0S\0ids\0I\0au\0\0org.freedesktop.Telepathy.Channel.Type.Text\0GetMessageTypes\0S\0arg0\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Type.Text\0ListPendingMessages\0S\0clear\0I\0b\0arg1\0O\0F\0N\0a(uuuuus)\0\0org.freedesktop.Telepathy.Channel.Type.Text\0Send\0S\0type\0I\0u\0text\0I\0s\0\0org.freedesktop.Telepathy.Properties\0GetProperties\0S\0properties\0I\0au\0arg1\0O\0F\0N\0a(uv)\0\0org.freedesktop.Telepathy.Properties\0ListProperties\0S\0arg0\0O\0F\0N\0a(ussu)\0\0org.freedesktop.Telepathy.Properties\0SetProperties\0A\0properties\0I\0a(uv)\0\0\0",
-"org.freedesktop.Telepathy.Channel\0Closed\0org.freedesktop.Telepathy.Channel.Interface.Group\0GroupFlagsChanged\0org.freedesktop.Telepathy.Channel.Interface.Group\0MembersChanged\0org.freedesktop.Telepathy.Channel.Interface.Password\0PasswordFlagsChanged\0org.freedesktop.Telepathy.Channel.Type.Text\0LostMessage\0org.freedesktop.Telepathy.Channel.Type.Text\0Received\0org.freedesktop.Telepathy.Channel.Type.Text\0SendError\0org.freedesktop.Telepathy.Channel.Type.Text\0Sent\0org.freedesktop.Telepathy.Properties\0PropertiesChanged\0org.freedesktop.Telepathy.Properties\0PropertyFlagsChanged\0\0",
-"\0"
-};
-
--- a/telepathygabble/inc/gabble-muc-channel-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * gabble-muc-channel-signals-marshal.h 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __gabble_muc_channel_marshal_MARSHAL_H__
-#define __gabble_muc_channel_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:UINT,UINT (gabble-muc-channel-signals-marshal.list:1) */
-extern void gabble_muc_channel_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                                        GValue       *return_value,
-                                                        guint         n_param_values,
-                                                        const GValue *param_values,
-                                                        gpointer      invocation_hint,
-                                                        gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __gabble_muc_channel_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/gabble-muc-channel.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +0,0 @@
-/*
- * gabble-muc-channel.h - Header for GabbleMucChannel
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_MUC_CHANNEL_H__
-#define __GABBLE_MUC_CHANNEL_H__
-
-#include <glib-object.h>
-
-#include "group-mixin.h"
-#include "properties-mixin.h"
-#include "text-mixin.h"
-#include "handles.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleMucChannel GabbleMucChannel;
-typedef struct _GabbleMucChannelClass GabbleMucChannelClass;
-
-struct _GabbleMucChannelClass {
-    GObjectClass parent_class;
-
-    GabbleGroupMixinClass group_class;
-    GabblePropertiesMixinClass properties_class;
-    GabbleTextMixinClass text_class;
-};
-
-struct _GabbleMucChannel {
-    GObject parent;
-
-    GabbleGroupMixin group;
-    GabblePropertiesMixin properties;
-    GabbleTextMixin text;
-
-    gpointer priv;
-};
-
-IMPORT_C GType gabble_muc_channel_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_MUC_CHANNEL \
-  (gabble_muc_channel_get_type())
-#define GABBLE_MUC_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_MUC_CHANNEL, GabbleMucChannel))
-#define GABBLE_MUC_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_MUC_CHANNEL, GabbleMucChannelClass))
-#define GABBLE_IS_MUC_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_MUC_CHANNEL))
-#define GABBLE_IS_MUC_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_MUC_CHANNEL))
-#define GABBLE_MUC_CHANNEL_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_MUC_CHANNEL, GabbleMucChannelClass))
-
-gboolean _gabble_muc_channel_is_ready (GabbleMucChannel *chan);
-void _gabble_muc_channel_presence_error (GabbleMucChannel *chan, const gchar *jid, LmMessageNode *pres_node);
-void _gabble_muc_channel_member_presence_updated (GabbleMucChannel *chan, GabbleHandle handle, LmMessage *message, LmMessageNode *x_node);
-gboolean _gabble_muc_channel_receive (GabbleMucChannel *chan, TpChannelTextMessageType msg_type, TpHandleType handle_type, GabbleHandle sender, time_t timestamp, const gchar *text, LmMessage *msg);
-
-void _gabble_muc_channel_handle_invited (GabbleMucChannel *chan, GabbleHandle inviter, const gchar *message);
-
-gboolean
-gabble_muc_channel_acknowledge_pending_messages (GabbleMucChannel *self,
-                                                 const GArray *ids,
-                                                 GError **error);
-
-gboolean
-gabble_muc_channel_add_members (GabbleMucChannel *self,
-                                const GArray *contacts,
-                                const gchar *message,
-                                GError **error);
-
-gboolean
-gabble_muc_channel_close (GabbleMucChannel *self,
-                          GError **error);
-
-gboolean
-gabble_muc_channel_get_all_members (GabbleMucChannel *self,
-                                    GArray **ret,
-                                    GArray **ret1,
-                                    GArray **ret2,
-                                    GError **error);
-
-gboolean
-gabble_muc_channel_get_channel_type (GabbleMucChannel *self,
-                                     gchar **ret,
-                                     GError **error);
-
-gboolean
-gabble_muc_channel_get_group_flags (GabbleMucChannel *self,
-                                    guint *ret,
-                                    GError **error);
-
-gboolean
-gabble_muc_channel_get_handle (GabbleMucChannel *self,
-                               guint *ret,
-                               guint *ret1,
-                               GError **error);
-
-gboolean
-gabble_muc_channel_get_handle_owners (GabbleMucChannel *self,
-                                      const GArray *handles,
-                                      GArray **ret,
-                                      GError **error);
-
-gboolean
-gabble_muc_channel_get_interfaces (GabbleMucChannel *self,
-                                   gchar ***ret,
-                                   GError **error);
-
-gboolean
-gabble_muc_channel_get_local_pending_members (GabbleMucChannel *self,
-                                              GArray **ret,
-                                              GError **error);
-
-gboolean
-gabble_muc_channel_get_members (GabbleMucChannel *self,
-                                GArray **ret,
-                                GError **error);
-
-gboolean
-gabble_muc_channel_get_message_types (GabbleMucChannel *self,
-                                      GArray **ret,
-                                      GError **error);
-
-gboolean
-gabble_muc_channel_get_password_flags (GabbleMucChannel *self,
-                                       guint *ret,
-                                       GError **error);
-
-gboolean
-gabble_muc_channel_get_properties (GabbleMucChannel *self,
-                                   const GArray *properties,
-                                   GPtrArray **ret,
-                                   GError **error);
-
-gboolean
-gabble_muc_channel_get_remote_pending_members (GabbleMucChannel *self,
-                                               GArray **ret,
-                                               GError **error);
-
-gboolean
-gabble_muc_channel_get_self_handle (GabbleMucChannel *self,
-                                    guint *ret,
-                                    GError **error);
-
-gboolean
-gabble_muc_channel_list_pending_messages (GabbleMucChannel *self,
-                                          gboolean clear,
-                                          GPtrArray **ret,
-                                          GError **error);
-
-gboolean
-gabble_muc_channel_list_properties (GabbleMucChannel *self,
-                                    GPtrArray **ret,
-                                    GError **error);
-
-void
-gabble_muc_channel_provide_password (GabbleMucChannel *self,
-                                     const gchar *password,
-                                     DBusGMethodInvocation *context);
-
-gboolean
-gabble_muc_channel_remove_members (GabbleMucChannel *self,
-                                   const GArray *contacts,
-                                   const gchar *message,
-                                   GError **error);
-
-gboolean
-gabble_muc_channel_send (GabbleMucChannel *self,
-                         guint type,
-                         const gchar *text,
-                         GError **error);
-
-void
-gabble_muc_channel_set_properties (GabbleMucChannel *self,
-                                   const GPtrArray *properties,
-                                   DBusGMethodInvocation *context);
-
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_MUC_CHANNEL_H__*/
--- a/telepathygabble/inc/gabble-presence-cache-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * gabble-presence-cache-signals-marshal.h - Header for GabbleRoomlistChannel
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __gabble_presence_cache_marshal_MARSHAL_H__
-#define __gabble_presence_cache_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:UINT,UINT,UINT (gabble-presence-cache-signals-marshal.list:1) */
-extern void gabble_presence_cache_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
-                                                                GValue       *return_value,
-                                                                guint         n_param_values,
-                                                                const GValue *param_values,
-                                                                gpointer      invocation_hint,
-                                                                gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __gabble_presence_cache_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/gabble-presence-cache.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * gabble-presence-cache.h - Headers for Gabble's contact presence cache
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_PRESENCE_CACHE_H__
-#define __GABBLE_PRESENCE_CACHE_H__
-
-#include <glib-object.h>
-
-#include "gabble-presence.h"
-#include "handles.h"
-
-G_BEGIN_DECLS
-
-#define GABBLE_TYPE_PRESENCE_CACHE gabble_presence_cache_get_type()
-
-#define GABBLE_PRESENCE_CACHE(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
-  GABBLE_TYPE_PRESENCE_CACHE, GabblePresenceCache))
-
-#define GABBLE_PRESENCE_CACHE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), \
-  GABBLE_TYPE_PRESENCE_CACHE, GabblePresenceCacheClass))
-
-#define GABBLE_IS_PRESENCE_CACHE(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
-  GABBLE_TYPE_PRESENCE_CACHE))
-
-#define GABBLE_IS_PRESENCE_CACHE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
-  GABBLE_TYPE_PRESENCE_CACHE))
-
-#define GABBLE_PRESENCE_CACHE_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
-  GABBLE_TYPE_PRESENCE_CACHE, GabblePresenceCacheClass))
-
-#define JABBER_PRESENCE_SHOW_AWAY "away"
-#define JABBER_PRESENCE_SHOW_CHAT "chat"
-#define JABBER_PRESENCE_SHOW_DND "dnd"
-#define JABBER_PRESENCE_SHOW_XA "xa"
-
-struct _GabblePresenceCache {
-    GObject parent;
-    gpointer priv;
-};
-
-typedef struct _GabblePresenceCacheClass GabblePresenceCacheClass;
-
-struct _GabblePresenceCacheClass {
-    GObjectClass parent_class;
-};
-
-IMPORT_C GType gabble_presence_cache_get_type (void);
-
-GabblePresenceCache *gabble_presence_cache_new (GabbleConnection *conn);
-GabblePresence *gabble_presence_cache_get (GabblePresenceCache *cache,
-    GabbleHandle handle);
-void gabble_presence_cache_update (GabblePresenceCache *cache,
-    GabbleHandle handle, const gchar *resource, GabblePresenceId presence_id,
-    const gchar *status_message, gint8 priority);
-void gabble_presence_cache_maybe_remove (GabblePresenceCache *cache,
-    GabbleHandle handle);
-void gabble_presence_cache_add_bundle_caps (GabblePresenceCache *cache,
-    const gchar *node, GabblePresenceCapabilities caps);
-
-G_END_DECLS
-
-#endif /* __GABBLE_PRESENCE_CACHE_H__ */
-
--- a/telepathygabble/inc/gabble-presence.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
- * gabble-presence.h - Headers for Gabble's per-contact presence structure
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#ifndef __GABBLE_PRESENCE_H__
-#define __GABBLE_PRESENCE_H__
-
-#include <glib-object.h>
-
-#include "gabble-connection.h"
-#include "gabble_enums.h"
-
-G_BEGIN_DECLS
-
-#define GABBLE_TYPE_PRESENCE gabble_presence_get_type()
-
-#define GABBLE_PRESENCE(obj) \
-    (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
-                                   GABBLE_TYPE_PRESENCE, GabblePresence))
-
-#define GABBLE_PRESENCE_CLASS(klass) \
-    (G_TYPE_CHECK_CLASS_CAST ((klass), \
-                                GABBLE_TYPE_PRESENCE, GabblePresenceClass))
-
-#define GABBLE_IS_PRESENCE(obj) \
-    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
-                                   GABBLE_TYPE_PRESENCE))
-
-#define GABBLE_IS_PRESENCE_CLASS(klass) \
-    (G_TYPE_CHECK_CLASS_TYPE ((klass), \
-                                GABBLE_TYPE_PRESENCE))
-
-#define GABBLE_PRESENCE_GET_CLASS(obj) \
-    (G_TYPE_INSTANCE_GET_CLASS ((obj), \
-                                  GABBLE_TYPE_PRESENCE, GabblePresenceClass))
-/*Moved to gabble_enums.h
-typedef enum {
-    PRESENCE_CAP_NONE = 0,
-    PRESENCE_CAP_GOOGLE_TRANSPORT_P2P = 1 << 0,
-    PRESENCE_CAP_GOOGLE_VOICE = 1 << 1,
-    PRESENCE_CAP_JINGLE = 1 << 2,
-    PRESENCE_CAP_JINGLE_DESCRIPTION_AUDIO = 1 << 3,
-    PRESENCE_CAP_JINGLE_DESCRIPTION_VIDEO = 1 << 4,
-} GabblePresenceCapabilities;*/
-
-typedef struct _GabblePresence GabblePresence;
-
-struct _GabblePresence {
-    GObject parent;
-    GabblePresenceCapabilities caps;
-    GabblePresenceId status;
-    gchar *status_message;
-    gchar *nickname;
-    gchar *avatar_sha1;
-    gboolean keep_unavailable;
-    gpointer priv;
-};
-
-typedef struct _GabblePresenceClass GabblePresenceClass;
-
-struct _GabblePresenceClass {
-    GObjectClass parent_class;
-};
-
-IMPORT_C GType gabble_presence_get_type (void);
-
-GabblePresence* gabble_presence_new (void);
-
-gboolean gabble_presence_update (GabblePresence *presence, const gchar *resource, GabblePresenceId status, const gchar *status_message, gint8 priority);
-
-void gabble_presence_set_capabilities (GabblePresence *presence, const gchar *resource, GabblePresenceCapabilities caps, guint serial);
-
-const gchar *gabble_presence_pick_resource_by_caps (GabblePresence *presence, GabblePresenceCapabilities caps);
-
-gboolean
-gabble_presence_resource_has_caps (GabblePresence *presence,
-                                   const gchar *resource,
-                                   GabblePresenceCapabilities caps);
-
-LmMessage *gabble_presence_as_message (GabblePresence *presence, const gchar *resource);
-gchar *
-gabble_presence_dump (GabblePresence *presence);
-
-G_END_DECLS
-
-#endif /* __GABBLE_PRESENCE_H__ */
-
--- a/telepathygabble/inc/gabble-register-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * gabble-register-signals-marshal.h
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __gabble_register_marshal_MARSHAL_H__
-#define __gabble_register_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:BOOLEAN,INT,STRING (gabble-register-signals-marshal.list:1) */
-extern void gabble_register_marshal_VOID__BOOLEAN_INT_STRING (GClosure     *closure,
-                                                              GValue       *return_value,
-                                                              guint         n_param_values,
-                                                              const GValue *param_values,
-                                                              gpointer      invocation_hint,
-                                                              gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __gabble_register_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/gabble-register.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
- * gabble-register.h - Headers for Gabble account registration
- *
- * Copyright (C) 2006 Collabora Ltd.
- 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_REGISTER_H__
-#define __GABBLE_REGISTER_H__
-
-#include <glib-object.h>
-#include "loudmouth/loudmouth.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleRegister GabbleRegister;
-typedef struct _GabbleRegisterClass GabbleRegisterClass;
-
-IMPORT_C GType gabble_register_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_REGISTER \
-  (gabble_register_get_type())
-#define GABBLE_REGISTER(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_REGISTER, GabbleRegister))
-#define GABBLE_REGISTER_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_REGISTER, GabbleRegisterClass))
-#define GABBLE_IS_REGISTER(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_REGISTER))
-#define GABBLE_IS_REGISTER_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_REGISTER))
-#define GABBLE_REGISTER_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_REGISTER, GabbleRegisterClass))
-
-struct _GabbleRegisterClass {
-    GObjectClass parent_class;
-};
-
-struct _GabbleRegister {
-    GObject parent;
-};
-
-GabbleRegister *gabble_register_new (GabbleConnection *conn);
-void gabble_register_start (GabbleRegister *reg);
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_REGISTER_H__ */
--- a/telepathygabble/inc/gabble-roomlist-channel-glue.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,240 +0,0 @@
-/*
- * gabble-roomlist-channel-glue.h
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal_gabble_roomlist_channel_MARSHAL_H__
-#define __dbus_glib_marshal_gabble_roomlist_channel_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.Q5SKIT:1) */
-extern void dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                                GValue       *return_value,
-                                                                                guint         n_param_values,
-                                                                                const GValue *param_values,
-                                                                                gpointer      invocation_hint,
-                                                                                gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                    GValue       *return_value,
-                                                                    guint         n_param_values,
-                                                                    const GValue *param_values,
-                                                                    gpointer      invocation_hint,
-                                                                    gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer     data1,
-                                                             gpointer     arg_1,
-                                                             gpointer     arg_2,
-                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.Q5SKIT:2) */
-extern void dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                        GValue       *return_value,
-                                                                                        guint         n_param_values,
-                                                                                        const GValue *param_values,
-                                                                                        gpointer      invocation_hint,
-                                                                                        gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                            GValue       *return_value,
-                                                                            guint         n_param_values,
-                                                                            const GValue *param_values,
-                                                                            gpointer      invocation_hint,
-                                                                            gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (gpointer     data1,
-                                                                     gpointer     arg_1,
-                                                                     gpointer     arg_2,
-                                                                     gpointer     arg_3,
-                                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER (/tmp/dbus-binding-tool-c-marshallers.Q5SKIT:3) */
-extern void dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                                                        GValue       *return_value,
-                                                                        guint         n_param_values,
-                                                                        const GValue *param_values,
-                                                                        gpointer      invocation_hint,
-                                                                        gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                                            GValue       *return_value,
-                                                            guint         n_param_values,
-                                                            const GValue *param_values,
-                                                            gpointer      invocation_hint,
-                                                            gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal_gabble_roomlist_channel_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib_gabble_roomlist_channel_methods[] = {
-  { (GCallback) gabble_roomlist_channel_close, dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER, 0 },
-  { (GCallback) gabble_roomlist_channel_get_channel_type, dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER_POINTER, 43 },
-  { (GCallback) gabble_roomlist_channel_get_handle, dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER_POINTER_POINTER, 108 },
-  { (GCallback) gabble_roomlist_channel_get_interfaces, dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER_POINTER, 181 },
-  { (GCallback) gabble_roomlist_channel_get_listing_rooms, dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER_POINTER, 246 },
-  { (GCallback) gabble_roomlist_channel_list_rooms, dbus_glib_marshal_gabble_roomlist_channel_BOOLEAN__POINTER, 326 },
-};
-
-const DBusGObjectInfo dbus_glib_gabble_roomlist_channel_object_info = {
-  0,
-  dbus_glib_gabble_roomlist_channel_methods,
-  6,
-"org.freedesktop.Telepathy.Channel\0Close\0S\0\0org.freedesktop.Telepathy.Channel\0GetChannelType\0S\0arg0\0O\0F\0N\0s\0\0org.freedesktop.Telepathy.Channel\0GetHandle\0S\0arg0\0O\0F\0N\0u\0arg1\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel\0GetInterfaces\0S\0arg0\0O\0F\0N\0as\0\0org.freedesktop.Telepathy.Channel.Type.RoomList\0GetListingRooms\0S\0arg0\0O\0F\0N\0b\0\0org.freedesktop.Telepathy.Channel.Type.RoomList\0ListRooms\0S\0\0\0",
-"org.freedesktop.Telepathy.Channel\0Closed\0org.freedesktop.Telepathy.Channel.Type.RoomList\0GotRooms\0org.freedesktop.Telepathy.Channel.Type.RoomList\0ListingRooms\0\0",
-"\0"
-};
-
--- a/telepathygabble/inc/gabble-roomlist-channel-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * gabble-roomlist-channel-signals-marshal.h
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifndef __gabble_roomlist_channel_marshal_MARSHAL_H__
-#define __gabble_roomlist_channel_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-G_END_DECLS
-
-#endif /* __gabble_roomlist_channel_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/gabble-roomlist-channel.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
- * gabble-roomlist-channel.h - Header for GabbleRoomlistChannel
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_ROOMLIST_CHANNEL_H__
-#define __GABBLE_ROOMLIST_CHANNEL_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleRoomlistChannel GabbleRoomlistChannel;
-typedef struct _GabbleRoomlistChannelClass GabbleRoomlistChannelClass;
-
-struct _GabbleRoomlistChannelClass {
-    GObjectClass parent_class;
-};
-
-struct _GabbleRoomlistChannel {
-    GObject parent;
-
-    gpointer priv;
-};
-
-IMPORT_C GType gabble_roomlist_channel_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_ROOMLIST_CHANNEL \
-  (gabble_roomlist_channel_get_type())
-#define GABBLE_ROOMLIST_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_ROOMLIST_CHANNEL, GabbleRoomlistChannel))
-#define GABBLE_ROOMLIST_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_ROOMLIST_CHANNEL, GabbleRoomlistChannelClass))
-#define GABBLE_IS_ROOMLIST_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_ROOMLIST_CHANNEL))
-#define GABBLE_IS_ROOMLIST_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_ROOMLIST_CHANNEL))
-#define GABBLE_ROOMLIST_CHANNEL_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_ROOMLIST_CHANNEL, GabbleRoomlistChannelClass))
-
-
-GabbleRoomlistChannel *_gabble_roomlist_channel_new (GabbleConnection *conn, const gchar *object_path, const gchar *conference_server);
-
-gboolean
-gabble_roomlist_channel_close (GabbleRoomlistChannel *self,
-                               GError **error);
-
-gboolean
-gabble_roomlist_channel_get_channel_type (GabbleRoomlistChannel *self,
-                                          gchar **ret,
-                                          GError **error);
-
-gboolean
-gabble_roomlist_channel_get_handle (GabbleRoomlistChannel *self,
-                                    guint *ret,
-                                    guint *ret1,
-                                    GError **error);
-
-gboolean
-gabble_roomlist_channel_get_interfaces (GabbleRoomlistChannel *self,
-                                        gchar ***ret,
-                                        GError **error);
-
-gboolean
-gabble_roomlist_channel_get_listing_rooms (GabbleRoomlistChannel *self,
-                                           gboolean *ret,
-                                           GError **error);
-
-gboolean
-gabble_roomlist_channel_list_rooms (GabbleRoomlistChannel *self,
-                                    GError **error);
-
-
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_ROOMLIST_CHANNEL_H__*/
--- a/telepathygabble/inc/gabble-roster-channel-glue.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,396 +0,0 @@
-/*
- * gabble-roster-channel-glue.h
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal_gabble_roster_channel_MARSHAL_H__
-#define __dbus_glib_marshal_gabble_roster_channel_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.KKEKIT:1) */
-extern void dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                              GValue       *return_value,
-                                                                              guint         n_param_values,
-                                                                              const GValue *param_values,
-                                                                              gpointer      invocation_hint,
-                                                                              gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                  GValue       *return_value,
-                                                                  guint         n_param_values,
-                                                                  const GValue *param_values,
-                                                                  gpointer      invocation_hint,
-                                                                  gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer     data1,
-                                                             gpointer     arg_1,
-                                                             gpointer     arg_2,
-                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.KKEKIT:2) */
-extern void dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                      GValue       *return_value,
-                                                                                      guint         n_param_values,
-                                                                                      const GValue *param_values,
-                                                                                      gpointer      invocation_hint,
-                                                                                      gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                          GValue       *return_value,
-                                                                          guint         n_param_values,
-                                                                          const GValue *param_values,
-                                                                          gpointer      invocation_hint,
-                                                                          gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (gpointer     data1,
-                                                                     gpointer     arg_1,
-                                                                     gpointer     arg_2,
-                                                                     gpointer     arg_3,
-                                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.KKEKIT:3) */
-extern void dbus_glib_marshal_gabble_roster_channel_BOOLEAN__BOXED_STRING_POINTER (GClosure     *closure,
-                                                                                   GValue       *return_value,
-                                                                                   guint         n_param_values,
-                                                                                   const GValue *param_values,
-                                                                                   gpointer      invocation_hint,
-                                                                                   gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_roster_channel_BOOLEAN__BOXED_STRING_POINTER (GClosure     *closure,
-                                                                       GValue       *return_value,
-                                                                       guint         n_param_values,
-                                                                       const GValue *param_values,
-                                                                       gpointer      invocation_hint,
-                                                                       gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER) (gpointer     data1,
-                                                                  gpointer     arg_1,
-                                                                  gpointer     arg_2,
-                                                                  gpointer     arg_3,
-                                                                  gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_string (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.KKEKIT:4) */
-extern void dbus_glib_marshal_gabble_roster_channel_BOOLEAN__BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                                    GValue       *return_value,
-                                                                                    guint         n_param_values,
-                                                                                    const GValue *param_values,
-                                                                                    gpointer      invocation_hint,
-                                                                                    gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_roster_channel_BOOLEAN__BOXED_POINTER_POINTER (GClosure     *closure,
-                                                                        GValue       *return_value,
-                                                                        guint         n_param_values,
-                                                                        const GValue *param_values,
-                                                                        gpointer      invocation_hint,
-                                                                        gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER) (gpointer     data1,
-                                                                   gpointer     arg_1,
-                                                                   gpointer     arg_2,
-                                                                   gpointer     arg_3,
-                                                                   gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER (/tmp/dbus-binding-tool-c-marshallers.KKEKIT:5) */
-extern void dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                                          GValue       *return_value,
-                                                          guint         n_param_values,
-                                                          const GValue *param_values,
-                                                          gpointer      invocation_hint,
-                                                          gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER,POINTER,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.KKEKIT:6) */
-extern void dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                              GValue       *return_value,
-                                                                                              guint         n_param_values,
-                                                                                              const GValue *param_values,
-                                                                                              gpointer      invocation_hint,
-                                                                                              gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                                  GValue       *return_value,
-                                                                                  guint         n_param_values,
-                                                                                  const GValue *param_values,
-                                                                                  gpointer      invocation_hint,
-                                                                                  gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER_POINTER) (gpointer     data1,
-                                                                             gpointer     arg_1,
-                                                                             gpointer     arg_2,
-                                                                             gpointer     arg_3,
-                                                                             gpointer     arg_4,
-                                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       g_marshal_value_peek_pointer (param_values + 4),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal_gabble_roster_channel_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib_gabble_roster_channel_methods[] = {
-  { (GCallback) gabble_roster_channel_close, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER, 0 },
-  { (GCallback) gabble_roster_channel_get_channel_type, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER, 43 },
-  { (GCallback) gabble_roster_channel_get_handle, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER_POINTER, 108 },
-  { (GCallback) gabble_roster_channel_get_interfaces, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER, 181 },
-  { (GCallback) gabble_roster_channel_add_members, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__BOXED_STRING_POINTER, 246 },
-  { (GCallback) gabble_roster_channel_get_all_members, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER_POINTER_POINTER, 336 },
-  { (GCallback) gabble_roster_channel_get_group_flags, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER, 445 },
-  { (GCallback) gabble_roster_channel_get_handle_owners, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__BOXED_POINTER_POINTER, 525 },
-  { (GCallback) gabble_roster_channel_get_local_pending_members, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER, 621 },
-  { (GCallback) gabble_roster_channel_get_members, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER, 711 },
-  { (GCallback) gabble_roster_channel_get_remote_pending_members, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER, 789 },
-  { (GCallback) gabble_roster_channel_get_self_handle, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__POINTER_POINTER, 880 },
-  { (GCallback) gabble_roster_channel_remove_members, dbus_glib_marshal_gabble_roster_channel_BOOLEAN__BOXED_STRING_POINTER, 960 },
-};
-
-const DBusGObjectInfo dbus_glib_gabble_roster_channel_object_info = {
-  0,
-  dbus_glib_gabble_roster_channel_methods,
-  13,
-"org.freedesktop.Telepathy.Channel\0Close\0S\0\0org.freedesktop.Telepathy.Channel\0GetChannelType\0S\0arg0\0O\0F\0N\0s\0\0org.freedesktop.Telepathy.Channel\0GetHandle\0S\0arg0\0O\0F\0N\0u\0arg1\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel\0GetInterfaces\0S\0arg0\0O\0F\0N\0as\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0AddMembers\0S\0contacts\0I\0au\0message\0I\0s\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetAllMembers\0S\0arg0\0O\0F\0N\0au\0arg1\0O\0F\0N\0au\0arg2\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetGroupFlags\0S\0arg0\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetHandleOwners\0S\0handles\0I\0au\0arg1\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetLocalPendingMembers\0S\0arg0\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetMembers\0S\0arg0\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetRemotePendingMembers\0S\0arg0\0O\0F\0N\0au\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0GetSelfHandle\0S\0arg0\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel.Interface.Group\0RemoveMembers\0S\0contacts\0I\0au\0message\0I\0s\0\0\0",
-"org.freedesktop.Telepathy.Channel\0Closed\0org.freedesktop.Telepathy.Channel.Interface.Group\0GroupFlagsChanged\0org.freedesktop.Telepathy.Channel.Interface.Group\0MembersChanged\0\0",
-"\0"
-};
-
--- a/telepathygabble/inc/gabble-roster-channel-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * gabble-roster-channel-signals-marshal.h 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifndef __gabble_roster_channel_marshal_MARSHAL_H__
-#define __gabble_roster_channel_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-G_END_DECLS
-
-#endif /* __gabble_roster_channel_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/gabble-roster-channel.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
- * gabble-roster-channel.h - Header for GabbleRosterChannel
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_ROSTER_CHANNEL_H__
-#define __GABBLE_ROSTER_CHANNEL_H__
-
-#include <glib-object.h>
-#include "gintset.h"
-
-#include "gabble-types.h"
-#include "group-mixin.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleRosterChannelClass GabbleRosterChannelClass;
-
-struct _GabbleRosterChannelClass {
-    GObjectClass parent_class;
-
-    GabbleGroupMixinClass group_class;
-};
-
-struct _GabbleRosterChannel {
-    GObject parent;
-
-    GabbleGroupMixin group;
-
-    gpointer priv;
-};
-
-IMPORT_C GType gabble_roster_channel_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_ROSTER_CHANNEL \
-  (gabble_roster_channel_get_type())
-#define GABBLE_ROSTER_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_ROSTER_CHANNEL, GabbleRosterChannel))
-#define GABBLE_ROSTER_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_ROSTER_CHANNEL, GabbleRosterChannelClass))
-#define GABBLE_IS_ROSTER_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_ROSTER_CHANNEL))
-#define GABBLE_IS_ROSTER_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_ROSTER_CHANNEL))
-#define GABBLE_ROSTER_CHANNEL_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_ROSTER_CHANNEL, GabbleRosterChannelClass))
-
-
-gboolean
-gabble_roster_channel_add_members (GabbleRosterChannel *self,
-                                   const GArray *contacts,
-                                   const gchar *message,
-                                   GError **error);
-
-gboolean
-gabble_roster_channel_close (GabbleRosterChannel *self,
-                             GError **error);
-
-gboolean
-gabble_roster_channel_get_all_members (GabbleRosterChannel *self,
-                                       GArray **ret,
-                                       GArray **ret1,
-                                       GArray **ret2,
-                                       GError **error);
-
-gboolean
-gabble_roster_channel_get_channel_type (GabbleRosterChannel *self,
-                                        gchar **ret,
-                                        GError **error);
-
-gboolean
-gabble_roster_channel_get_group_flags (GabbleRosterChannel *self,
-                                       guint *ret,
-                                       GError **error);
-
-gboolean
-gabble_roster_channel_get_handle (GabbleRosterChannel *self,
-                                  guint *ret,
-                                  guint *ret1,
-                                  GError **error);
-
-gboolean
-gabble_roster_channel_get_handle_owners (GabbleRosterChannel *self,
-                                         const GArray *handles,
-                                         GArray **ret,
-                                         GError **error);
-
-gboolean
-gabble_roster_channel_get_interfaces (GabbleRosterChannel *self,
-                                      gchar ***ret,
-                                      GError **error);
-
-gboolean
-gabble_roster_channel_get_local_pending_members (GabbleRosterChannel *self,
-                                                 GArray **ret,
-                                                 GError **error);
-
-gboolean
-gabble_roster_channel_get_members (GabbleRosterChannel *self,
-                                   GArray **ret,
-                                   GError **error);
-
-gboolean
-gabble_roster_channel_get_remote_pending_members (GabbleRosterChannel *self,
-                                                  GArray **ret,
-                                                  GError **error);
-
-gboolean
-gabble_roster_channel_get_self_handle (GabbleRosterChannel *self,
-                                       guint *ret,
-                                       GError **error);
-
-gboolean
-gabble_roster_channel_remove_members (GabbleRosterChannel *self,
-                                      const GArray *contacts,
-                                      const gchar *message,
-                                      GError **error);
-
-
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_ROSTER_CHANNEL_H__*/
--- a/telepathygabble/inc/gabble-search-channel-glue.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,289 +0,0 @@
-/*
- * gabble-search-channel-glue.h 
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * -- LET'S DISCO!!!  \o/ \o_ _o/ /\o/\ _/o/- -\o\_ --
- */
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal_gabble_search_channel_MARSHAL_H__
-#define __dbus_glib_marshal_gabble_search_channel_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.69O99T:1) */
-extern void dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                           GValue       *return_value,
-                                                           guint         n_param_values,
-                                                           const GValue *param_values,
-                                                           gpointer      invocation_hint,
-                                                           gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                               GValue       *return_value,
-                                               guint         n_param_values,
-                                               const GValue *param_values,
-                                               gpointer      invocation_hint,
-                                               gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer     data1,
-                                                             gpointer     arg_1,
-                                                             gpointer     arg_2,
-                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.69O99T:2) */
-extern void dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER_POINTER_POINTER (GClosure     *closure,
-                                                       GValue       *return_value,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint,
-                                                       gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (gpointer     data1,
-                                                                     gpointer     arg_1,
-                                                                     gpointer     arg_2,
-                                                                     gpointer     arg_3,
-                                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       g_marshal_value_peek_pointer (param_values + 3),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,POINTER (/tmp/dbus-binding-tool-c-marshallers.69O99T:3) */
-extern void dbus_glib_marshal_gabble_search_channel_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                                         GValue       *return_value,
-                                                         guint         n_param_values,
-                                                         const GValue *param_values,
-                                                         gpointer      invocation_hint,
-                                                         gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_search_channel_BOOLEAN__BOXED_POINTER (GClosure     *closure,
-                                             GValue       *return_value,
-                                             guint         n_param_values,
-                                             const GValue *param_values,
-                                             gpointer      invocation_hint,
-                                             gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_POINTER) (gpointer     data1,
-                                                           gpointer     arg_1,
-                                                           gpointer     arg_2,
-                                                           gpointer     data2);
-  register GMarshalFunc_BOOLEAN__BOXED_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__BOXED_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER (/tmp/dbus-binding-tool-c-marshallers.69O99T:4) */
-extern void dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                                   GValue       *return_value,
-                                                   guint         n_param_values,
-                                                   const GValue *param_values,
-                                                   gpointer      invocation_hint,
-                                                   gpointer      marshal_data);
-void
-dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER (GClosure     *closure,
-                                       GValue       *return_value,
-                                       guint         n_param_values,
-                                       const GValue *param_values,
-                                       gpointer      invocation_hint,
-                                       gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal_gabble_search_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib_gabble_search_channel_methods[] = {
-  { (GCallback) gabble_search_channel_close, dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER, 0 },
-  { (GCallback) gabble_search_channel_get_channel_type, dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER_POINTER, 43 },
-  { (GCallback) gabble_search_channel_get_handle, dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER_POINTER_POINTER, 108 },
-  { (GCallback) gabble_search_channel_get_interfaces, dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER_POINTER, 181 },
-  { (GCallback) gabble_search_channel_get_search_keys, dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER_POINTER_POINTER, 246 },
-  { (GCallback) gabble_search_channel_get_search_state, dbus_glib_marshal_gabble_search_channel_BOOLEAN__POINTER_POINTER, 343 },
-  { (GCallback) gabble_search_channel_search, dbus_glib_marshal_gabble_search_channel_BOOLEAN__BOXED_POINTER, 427 },
-};
-
-const DBusGObjectInfo dbus_glib_gabble_search_channel_object_info = {
-  0,
-  dbus_glib_gabble_search_channel_methods,
-  7,
-"org.freedesktop.Telepathy.Channel\0Close\0S\0\0org.freedesktop.Telepathy.Channel\0GetChannelType\0S\0arg0\0O\0F\0N\0s\0\0org.freedesktop.Telepathy.Channel\0GetHandle\0S\0arg0\0O\0F\0N\0u\0arg1\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel\0GetInterfaces\0S\0arg0\0O\0F\0N\0as\0\0org.freedesktop.Telepathy.Channel.Type.ContactSearch\0GetSearchKeys\0S\0arg0\0O\0F\0N\0s\0arg1\0O\0F\0N\0as\0\0org.freedesktop.Telepathy.Channel.Type.ContactSearch\0GetSearchState\0S\0arg0\0O\0F\0N\0u\0\0org.freedesktop.Telepathy.Channel.Type.ContactSearch\0Search\0S\0terms\0I\0a{sv}\0\0\0",
-"org.freedesktop.Telepathy.Channel\0Closed\0org.freedesktop.Telepathy.Channel.Type.ContactSearch\0SearchResultReceived\0org.freedesktop.Telepathy.Channel.Type.ContactSearch\0SearchStateChanged\0\0",
-"\0"
-};
-
--- a/telepathygabble/inc/gabble-search-channel.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
- * gabble-im-channel.h - Header for GabbleSearchChannel
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_SEARCH_CHANNEL_H__
-#define __GABBLE_SEARCH_CHANNEL_H__
-
-#include <glib-object.h>
-#include <time.h>
-
-#include "loudmouth/loudmouth.h"
-
-
-#include "handles.h"
-#include "telepathy-constants.h"
-#include "search-mixin.h"
-
-G_BEGIN_DECLS
-
-
-                                             	                   	  			                        	  		   
-extern LmHandlerResult
-search_channel_iq_cb (LmMessageHandler *handler,
-					  LmConnection *lmconn,
-					  LmMessage *message,
-					  gpointer user_data);
-
-typedef struct _GabbleSearchChannel GabbleSearchChannel;
-typedef struct _GabbleSearchChannelClass GabbleSearchChannelClass;
-
-struct _GabbleSearchChannelClass {
-    GObjectClass parent_class;
-
-    GabbleSearchMixinClass mixin_class;
-};
-
-struct _GabbleSearchChannel {
-    GObject parent;
-	LmMessageHandler *iq_cb;
-    GabbleSearchMixin search_mixin;
-	//todo: channel_index used for closing/removing the channel..
-	//can this be done without index?
-	guint channel_index;
-    gpointer priv;
-};
-
-IMPORT_C GType gabble_search_channel_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_SEARCH_CHANNEL \
-  (gabble_search_channel_get_type())
-#define GABBLE_SEARCH_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_SEARCH_CHANNEL, GabbleSearchChannel))
-#define GABBLE_SEARCH_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_SEARCH_CHANNEL, GabbleSearchChannelClass))
-#define GABBLE_IS_SEARCH_CHANNEL(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_SEARCH_CHANNEL))
-#define GABBLE_IS_SEARCH_CHANNEL_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_SEARCH_CHANNEL))
-#define GABBLE_SEARCH_CHANNEL_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_SEARCH_CHANNEL, GabbleSearchChannelClass))
-
-
-
-gboolean
-gabble_search_channel_close (GabbleSearchChannel *self,
-                         		GError **error);
-
-gboolean
-gabble_search_channel_get_channel_type (GabbleSearchChannel *self,
-	                                    gchar **ret,
-	                                    GError **error);
-
-
-gboolean
-gabble_search_channel_get_interfaces (GabbleSearchChannel *self,
-                                  		gchar ***ret,
-                                  		GError **error);
-
-
-gboolean
-gabble_search_channel_get_search_keys (	GabbleSearchChannel *self,
-										gchar **instruction, 
-										gchar ***key_names,
-		                        		GError **error
-                        	  		   );
-
-gboolean
-gabble_search_channel_get_search_state (	GabbleSearchChannel *self,
-                                  			guint *ret,
-                        					GError **error
-                        	  			);
-
-gboolean
-gabble_search_channel_search (	GabbleSearchChannel *self,
-                                  GHashTable *params,
-                        			GError **error
-                        	  );       
-                        	  
-
-gboolean
-gabble_search_channel_get_handle (GabbleSearchChannel *self,
-                              guint *ret,
-                              guint *ret1,
-                              GError **error);       
-                              
-                              
-  
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_SEARCH_CHANNEL_H__*/
--- a/telepathygabble/inc/gabble-types.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * gabble-types.h - Header for Gabble type definitions
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_TYPES_H__
-#define __GABBLE_TYPES_H__
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleConnection GabbleConnection;
-typedef struct _GabbleDisco GabbleDisco;
-typedef struct _GabbleHandleRepo GabbleHandleRepo;
-typedef struct _GabblePresenceCache GabblePresenceCache;
-typedef struct _GabbleRoster GabbleRoster;
-typedef struct _GabbleRosterChannel GabbleRosterChannel;
-typedef struct _GabbleVCardManager GabbleVCardManager;
-typedef guint32 GabbleHandle;
-
-typedef enum {
-    INITIATOR_INVALID = -1,
-    INITIATOR_LOCAL = 0,
-    INITIATOR_REMOTE,
-} JingleInitiator;
-
-G_END_DECLS
-
-#endif
--- a/telepathygabble/inc/gabble.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * gabble.h - entry point and utility functions for telepathy-gabble
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_H__
-#define __GABBLE_H__
-
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_H__*/
-
--- a/telepathygabble/inc/gabble_enums.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
- * gabble_enums.h - Header for GabbleConnection
- * Copyright (C) 2005 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
- 
-#ifndef enum_gabble
-#define enum_gabble
-
-/* signal enum */
-#define LAST_SIGNAL_CON_MGR 2
-#define LAST_SIGNAL_CON 6
-#define LAST_SIGNAL_IM 1
-#define LAST_SIGNAL_MUC 4
-#define LAST_SIGNAL_MED_CHANNEL 7
-#define LAST_SIGNAL_MED_SESSION 3
-#define LAST_SIGNAL_MED_STREAM 13
-#define MAX_STREAM_NAME_LEN 8
-#define LAST_SIGNAL_PRE_CACHE 3
-#define LAST_SIGNAL_REGISTER 2
-#define LAST_SIGNAL_ROS_CHNL 3
-#define LAST_SIGNAL_ROOM_CHNL 3
-#define LAST_SIGNAL_ROSTER 1
-#define LAST_SIGNAL_VCARD_MGR 1
-
-//todo: what it should be 
-#define LAST_SIGNAL_SEARCH 1
-typedef struct _GabbleAllocator GabbleAllocator;
-struct _GabbleAllocator
-{
-  gulong size;
-  guint limit;
-  guint count;
-};
-
-typedef enum
-{
-  GABBLE_DEBUG_PRESENCE      = 1 << 0,
-  GABBLE_DEBUG_GROUPS        = 1 << 1,
-  GABBLE_DEBUG_ROSTER        = 1 << 2,
-  GABBLE_DEBUG_DISCO         = 1 << 3,
-  GABBLE_DEBUG_PROPERTIES    = 1 << 4,
-  GABBLE_DEBUG_ROOMLIST      = 1 << 5,
-  GABBLE_DEBUG_MEDIA         = 1 << 6,
-  GABBLE_DEBUG_MUC           = 1 << 7,
-  GABBLE_DEBUG_CONNECTION    = 1 << 8,
-  GABBLE_DEBUG_IM            = 1 << 9,
-  GABBLE_DEBUG_PERSIST       = 1 << 10,
-  GABBLE_DEBUG_VCARD         = 1 << 11,
-  GABBLE_DEBUG_SEARCH		 = 1 << 12,	
-} GabbleDebugFlags;
-
-
-typedef enum {
-    PRESENCE_CAP_NONE = 0,
-    PRESENCE_CAP_GOOGLE_TRANSPORT_P2P = 1 << 0,
-    PRESENCE_CAP_GOOGLE_VOICE = 1 << 1,
-    PRESENCE_CAP_JINGLE = 1 << 2,
-    PRESENCE_CAP_JINGLE_DESCRIPTION_AUDIO = 1 << 3,
-    PRESENCE_CAP_JINGLE_DESCRIPTION_VIDEO = 1 << 4,
-} GabblePresenceCapabilities;
-
-#endif
--- a/telepathygabble/inc/gheap.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Header file for GHeap
- *
- * 
- * Copyright (C) 2006 Nokia Corporation.
- * Contact: Olli Salli (Nokia-M/Helsinki) <olli.salli@nokia.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __G_HEAP_H__
-#define __G_HEAP_H__
-
-#include <glib.h>
-
-typedef struct _GHeap GHeap;
-
-GHeap *g_heap_new (GCompareFunc comparator);
-void g_heap_destroy (GHeap *);
-void g_heap_clear (GHeap *);
-
-void g_heap_add (GHeap *heap, gpointer element);
-gpointer g_heap_peek_first (GHeap *heap);
-gpointer g_heap_extract_first (GHeap *heap);
-
-guint g_heap_size (GHeap *heap);
-
-#endif
--- a/telepathygabble/inc/gintset.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/* gintset.h - Headers for a Glib-link set of integers
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
- */
-
-#ifndef __G_INTSET_H__
-#define __G_INTSET_H__
-
-#include <glib-object.h>
-
-typedef struct _GIntSet GIntSet;
-typedef void (*GIntFunc) (guint i, gpointer userdata);
-
-GIntSet *g_intset_new ();
-void g_intset_destroy (GIntSet *);
-void g_intset_clear (GIntSet *);
-
-void g_intset_add (GIntSet *set, guint element);
-gboolean g_intset_remove (GIntSet *set, guint element);
-gboolean g_intset_is_member (const GIntSet *set, guint element);
-
-void g_intset_foreach (const GIntSet *set, GIntFunc func, gpointer userdata);
-GArray *g_intset_to_array (GIntSet *set);
-GIntSet *g_intset_from_array (GArray *array);
-
-guint g_intset_size (const GIntSet *set);
-
-gboolean g_intset_is_equal (const GIntSet *left, const GIntSet *right);
-
-GIntSet *g_intset_copy (const GIntSet *orig);
-GIntSet *g_intset_intersection (const GIntSet *left, const GIntSet *right);
-GIntSet *g_intset_union (const GIntSet *left, const GIntSet *right);
-GIntSet *g_intset_difference (const GIntSet *left, const GIntSet *right);
-GIntSet *g_intset_symmetric_difference (const GIntSet *left, const GIntSet *right);
-
-gchar *g_intset_dump (const GIntSet *set);
-
-#endif /*__G_INTSET_H__*/
--- a/telepathygabble/inc/group-mixin-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * group-mixin-signals-marshal.h 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __group_mixin_marshal_MARSHAL_H__
-#define __group_mixin_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:UINT,UINT (group-mixin-signals-marshal.list:1) */
-extern void group_mixin_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                                 GValue       *return_value,
-                                                 guint         n_param_values,
-                                                 const GValue *param_values,
-                                                 gpointer      invocation_hint,
-                                                 gpointer      marshal_data);
-
-/* VOID:STRING,BOXED,BOXED,BOXED,BOXED,UINT,UINT (group-mixin-signals-marshal.list:2) */
-extern void group_mixin_marshal_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT (GClosure     *closure,
-                                                                                GValue       *return_value,
-                                                                                guint         n_param_values,
-                                                                                const GValue *param_values,
-                                                                                gpointer      invocation_hint,
-                                                                                gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __group_mixin_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/group-mixin.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
- * group-mixin.h - Header for GabbleGroupMixin
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *   @author Robert McQueen <robert.mcqueen@collabora.co.uk>
- *
- * Portions 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_GROUP_MIXIN_H__
-#define __GABBLE_GROUP_MIXIN_H__
-
-#include "handles.h"
-#include "handle-set.h"
-#include "util.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleGroupMixinClass GabbleGroupMixinClass;
-typedef struct _GabbleGroupMixin GabbleGroupMixin;
-typedef struct _GabbleGroupMixinPrivate GabbleGroupMixinPrivate;
-
-typedef gboolean (*GabbleGroupMixinAddMemberFunc) (GObject *obj, GabbleHandle handle, const gchar *message, GError **error);
-typedef gboolean (*GabbleGroupMixinRemMemberFunc) (GObject *obj, GabbleHandle handle, const gchar *message, GError **error);
-
-struct _GabbleGroupMixinClass {
-  GabbleGroupMixinAddMemberFunc add_member;
-  GabbleGroupMixinRemMemberFunc remove_member;
-
-  guint group_flags_changed_signal_id;
-  guint members_changed_signal_id;
-};
-
-struct _GabbleGroupMixin {
-  GabbleHandleRepo *handle_repo;
-  GabbleHandle self_handle;
-
-  TpChannelGroupFlags group_flags;
-
-  GabbleHandleSet *members;
-  GabbleHandleSet *local_pending;
-  GabbleHandleSet *remote_pending;
-
-  GabbleGroupMixinPrivate *priv;
-};
-
-/* TYPE MACROS */
-#define GABBLE_GROUP_MIXIN_CLASS_OFFSET_QUARK (gabble_group_mixin_class_get_offset_quark())
-#define GABBLE_GROUP_MIXIN_CLASS_OFFSET(o) (GPOINTER_TO_UINT (g_type_get_qdata (G_OBJECT_CLASS_TYPE (o), GABBLE_GROUP_MIXIN_CLASS_OFFSET_QUARK)))
-#define GABBLE_GROUP_MIXIN_CLASS(o) ((GabbleGroupMixinClass *) gabble_mixin_offset_cast (o, GABBLE_GROUP_MIXIN_CLASS_OFFSET (o)))
-
-#define GABBLE_GROUP_MIXIN_OFFSET_QUARK (gabble_group_mixin_get_offset_quark())
-#define GABBLE_GROUP_MIXIN_OFFSET(o) (GPOINTER_TO_UINT (g_type_get_qdata (G_OBJECT_TYPE (o), GABBLE_GROUP_MIXIN_OFFSET_QUARK)))
-#define GABBLE_GROUP_MIXIN(o) ((GabbleGroupMixin *) gabble_mixin_offset_cast (o, GABBLE_GROUP_MIXIN_OFFSET(o)))
-
-GQuark gabble_group_mixin_class_get_offset_quark (void);
-GQuark gabble_group_mixin_get_offset_quark (void);
-
-void gabble_group_mixin_class_init (GObjectClass *obj_cls, glong offset, GabbleGroupMixinAddMemberFunc add_func, GabbleGroupMixinRemMemberFunc rem_func);
-
-void gabble_group_mixin_init (GObject *obj, glong offset, GabbleHandleRepo *handle_repo, GabbleHandle self_handle);
-void gabble_group_mixin_finalize (GObject *obj);
-
-gboolean gabble_group_mixin_get_self_handle (GObject *obj, guint *ret, GError **error);
-gboolean gabble_group_mixin_get_group_flags (GObject *obj, guint *ret, GError **error);
-
-gboolean gabble_group_mixin_add_members (GObject *obj, const GArray *contacts, const gchar *message, GError **error);
-gboolean gabble_group_mixin_remove_members (GObject *obj, const GArray *contacts, const gchar *message, GError **error);
-
-gboolean gabble_group_mixin_get_members (GObject *obj, GArray **ret, GError **error);
-gboolean gabble_group_mixin_get_local_pending_members (GObject *obj, GArray **ret, GError **error);
-gboolean gabble_group_mixin_get_remote_pending_members (GObject *obj, GArray **ret, GError **error);
-gboolean gabble_group_mixin_get_all_members (GObject *obj, GArray **ret, GArray **ret1, GArray **ret2, GError **error);
-
-gboolean gabble_group_mixin_get_handle_owners (GObject *obj, const GArray *handles, GArray **ret, GError **error);
-
-void gabble_group_mixin_change_flags (GObject *obj, TpChannelGroupFlags add, TpChannelGroupFlags remove);
-gboolean gabble_group_mixin_change_members (GObject *obj, const gchar *message, GIntSet *add, GIntSet *remove, GIntSet *local_pending, GIntSet *remote_pending, GabbleHandle actor, guint reason);
-
-void gabble_group_mixin_add_handle_owner (GObject *obj, GabbleHandle local_handle, GabbleHandle owner_handle);
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_GROUP_MIXIN_H__ */
--- a/telepathygabble/inc/handle-set.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * handle-set.h - a set which refs a handle when inserted
- *
- * Copyright (C) 2005,2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
- */
-
-#ifndef __HANDLE_SET_H__
-#define __HANDLE_SET_H__
-
-#include "gintset.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleHandleSet GabbleHandleSet;
-typedef void (*GabbleHandleFunc)(GabbleHandleSet *set, GabbleHandle handle, gpointer userdata);
-
-GabbleHandleSet * handle_set_new (GabbleHandleRepo *, TpHandleType type);
-void handle_set_destroy (GabbleHandleSet *);
-
-GIntSet *handle_set_peek (GabbleHandleSet *set);
-
-void handle_set_add (GabbleHandleSet *set, GabbleHandle handle);
-gboolean handle_set_remove (GabbleHandleSet *set, GabbleHandle handle);
-gboolean handle_set_is_member (GabbleHandleSet *set, GabbleHandle handle);
-
-void handle_set_foreach (GabbleHandleSet *set, GabbleHandleFunc func, gpointer userdata);
-
-int handle_set_size (GabbleHandleSet *set);
-GArray *handle_set_to_array (GabbleHandleSet *set);
-
-GIntSet *handle_set_update (GabbleHandleSet *set, const GIntSet *add);
-GIntSet *handle_set_difference_update (GabbleHandleSet *set, const GIntSet *remove);
-
-G_END_DECLS
-
-#endif /*__HANDLE_SET_H__*/
--- a/telepathygabble/inc/handles.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * handles.h - mechanism to store and retrieve handles on a connection
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __HANDLES_H__
-#define __HANDLES_H__
-
-#include <glib.h>
-
-
-#include "gabble-types.h"
-#include "telepathy-constants.h"
-
-G_BEGIN_DECLS
-
-typedef enum
-{
-  GABBLE_LIST_HANDLE_PUBLISH = 1,
-  GABBLE_LIST_HANDLE_SUBSCRIBE,
-  GABBLE_LIST_HANDLE_KNOWN,
-  GABBLE_LIST_HANDLE_DENY
-} GabbleListHandle;
-
-gboolean gabble_handle_jid_is_valid (TpHandleType type, const gchar *jid, GError **error);
-gboolean gabble_handle_type_is_valid (TpHandleType type, GError **error);
-
-GabbleHandleRepo *gabble_handle_repo_new ();
-void gabble_handle_repo_destroy (GabbleHandleRepo *repo);
-
-gboolean gabble_handle_is_valid (GabbleHandleRepo *repo, TpHandleType type, GabbleHandle handle, GError **error);
-gboolean gabble_handles_are_valid (GabbleHandleRepo *repo, TpHandleType type, const GArray *array, gboolean allow_zero, GError **error);
-
-gboolean gabble_handle_ref (GabbleHandleRepo *repo, TpHandleType type, GabbleHandle handle);
-gboolean gabble_handle_unref (GabbleHandleRepo *repo, TpHandleType type, GabbleHandle handle);
-const char *gabble_handle_inspect (GabbleHandleRepo *repo, TpHandleType type, GabbleHandle handle);
-
-GabbleHandle gabble_handle_for_contact (GabbleHandleRepo *repo, const char *jid, gboolean with_resource);
-gboolean gabble_handle_for_room_exists (GabbleHandleRepo *repo, const gchar *jid, gboolean ignore_nick);
-GabbleHandle gabble_handle_for_room (GabbleHandleRepo *repo, const gchar *jid);
-GabbleHandle gabble_handle_for_list (GabbleHandleRepo *repo, const gchar *list);
-
-gboolean gabble_handle_set_qdata (GabbleHandleRepo *repo, TpHandleType type,
-    GabbleHandle handle, GQuark key_id, gpointer data, GDestroyNotify destroy);
-
-gpointer gabble_handle_get_qdata (GabbleHandleRepo *repo, TpHandleType type,
-    GabbleHandle handle, GQuark key_id);
-
-gboolean gabble_handle_client_hold (GabbleHandleRepo *repo, const gchar *client_name, GabbleHandle handle, TpHandleType type, GError **error);
-
-gboolean gabble_handle_client_release (GabbleHandleRepo *repo, const gchar *client_name, GabbleHandle handle, TpHandleType type, GError **error);
-
-G_END_DECLS
-
-#endif /* #ifndef __HANDLES_H__ */
--- a/telepathygabble/inc/im-factory.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
- * im-factory.h - Header for GabbleImFactory
- * Copyright (C) 2006 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __IM_FACTORY_H__
-#define __IM_FACTORY_H__
-
-#include <glib-object.h>
-
-#include "gabble-im-channel.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleImFactory GabbleImFactory;
-typedef struct _GabbleImFactoryClass GabbleImFactoryClass;
-
-struct _GabbleImFactoryClass {
-  GObjectClass parent_class;
-};
-
-struct _GabbleImFactory {
-  GObject parent;
-};
-
-IMPORT_C GType gabble_im_factory_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_IM_FACTORY \
-  (gabble_im_factory_get_type())
-#define GABBLE_IM_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_IM_FACTORY, GabbleImFactory))
-#define GABBLE_IM_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_IM_FACTORY, GabbleImFactoryClass))
-#define GABBLE_IS_IM_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_IM_FACTORY))
-#define GABBLE_IS_IM_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_IM_FACTORY))
-#define GABBLE_IM_FACTORY_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_IM_FACTORY, GabbleImFactoryClass))
-
-
-G_END_DECLS
-
-#endif /* #ifndef __IM_FACTORY_H__ */
-
--- a/telepathygabble/inc/jingle-info.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * jingle-info.h - Header for Jingle info discovery
- * Copyright (C) 2006 Collabora Ltd.
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __JINGLE_INFO_H__
-#define __JINGLE_INFO_H__
-
-#include "gabble-connection.h"
-
-G_BEGIN_DECLS
-
-void jingle_info_discover_servers (GabbleConnection *conn);
-LmHandlerResult jingle_info_iq_callback (LmMessageHandler *handler, LmConnection *lmconn, LmMessage *message, gpointer user_data);
-
-G_END_DECLS
-
-#endif /* __JINGLE_INFO_H__ */
--- a/telepathygabble/inc/libgabble_wsd_macros.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * libgabble_wsd_macros.h - Header 
- * Copyright (C) 2006 Collabora Ltd.
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- * 
-
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef _LIBGABBLEMACROS_WSD_DEFS_H_
-#define _LIBGABBLEMACROS_WSD_DEFS_H_
-
-#if (defined(SYMBIAN) && (defined(__WINSCW__) || defined(__WINS__)))
-#if EMULATOR
-#undef EMULATOR
-#endif
-#ifdef GET_WSD_VAR_NAME
-#undef GET_WSD_VAR_NAME
-#endif
-
-#define EMULATOR (defined(SYMBIAN) && (defined(__WINSCW__) || defined(__WINS__)))
-#define GET_WSD_VAR_NAME(var,filename,prefix) 	_##prefix##_##filename##_##var
-
-#define RETURN_WSD_VAR(var,filename,prefix) (libgabble_ImpurePtr()->GET_WSD_VAR_NAME(var,filename,prefix))
-
-#define GET_WSD_VAR_FROM_TLS(var,filename,type,prefix)\
-type *_##prefix##_##filename##_##var()\
-{\
-	return (&RETURN_WSD_VAR(var,filename,prefix));\
-}
-
-#define GET_WSD_ARRAY_FROM_TLS(var,filename,type,prefix)\
-type *_##prefix##_##filename##_##var()\
-{\
-	return (RETURN_WSD_VAR(var,filename,prefix));\
-}
-
-#define VARIABLE_DECL(var,varprefix,filename,datatype)\
-datatype GET_WSD_VAR_NAME(var,filename,varprefix);
-
-#define VARIABLE_DECL_ARRAY(var,prefix,filename,datatype,size) \
-datatype GET_WSD_VAR_NAME(var,filename,prefix)[size];
-
-#define VARIABLE_DECL_2DARRAY(var,prefix,filename,datatype,size,size1) \
-datatype GET_WSD_VAR_NAME(var,filename,prefix)[size][size1];
-
-
-#define GET_STATIC_VAR_FROM_TLS(var,filename,type) 		GET_WSD_VAR_FROM_TLS(var,filename,type,s)
-
-#define GET_GLOBAL_VAR_FROM_TLS(var,filename,type) 	GET_WSD_VAR_FROM_TLS(var,filename,type,g)
-
-#define GET_STATIC_ARRAY_FROM_TLS(var,filename,type) 	GET_WSD_ARRAY_FROM_TLS(var,filename,type,s)
-
-#define GET_GLOBAL_ARRAY_FROM_TLS(var,filename,type) 	GET_WSD_ARRAY_FROM_TLS(var,filename,type,g)
-
-#endif
-#endif		//_LIBGABBLEMACROS_WSD_DEFS_H_
\ No newline at end of file
--- a/telepathygabble/inc/libgabble_wsd_solution.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,236 +0,0 @@
-/*
- * libgabble_wsd_solution.h - Header 
- * Copyright (C) 2006 Collabora Ltd.
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef _LIBGABBLE_WSD_H
-#define _LIBGABBLE_WSD_H
-#include "libgabble_wsd_macros.h"
-//#include "debug.h"
-#include "telepathy-errors.h"
-#include "disco.h"
-#include "gabble_enums.h"
-#include "ghash.h"
-#include "gabble-presence.h"
-#include "gabble-media-session.h"
-
-#define MAX_GABBLE_UTILS_GCHAR_ARRAY_LEN 5
-
-
-#if EMULATOR
-#ifdef __cplusplus
-extern "C" 
-{
-#endif
-
-typedef gboolean (*StreamHandlerFunc)(GabbleMediaSession *session,
-                                      LmMessage *message,
-                                      LmMessageNode *content_node,
-                                      const gchar *stream_name,
-                                      GabbleMediaStream *stream,
-                                      LmMessageNode *desc_node,
-                                      LmMessageNode *trans_node,
-                                      GError **error);
-                                      
-
-
-                                   
-typedef struct _Handler Handler;
-
-struct _Handler {
-  gchar actions[3][50];
-  JingleSessionState min_allowed_state;
-  JingleSessionState max_allowed_state;
-  StreamHandlerFunc stream_handlers[4];
-  JingleSessionState new_state;
-};
-
-struct libgabble_global_struct
-{
-	
-	VARIABLE_DECL(flags,s,gabble_debug,GabbleDebugFlags)	
-	VARIABLE_DECL(log_handler,s,gabble_debug,guint)	
-	VARIABLE_DECL(etype,s,gabble_enum_types,GType)
-	
-	VARIABLE_DECL(etype,s,gabble_media_session_enum_types,GType)
-	VARIABLE_DECL(etype1,s,gabble_media_session_enum_types,GType)
-	VARIABLE_DECL(etype2,s,gabble_media_session_enum_types,GType)
-	
-	VARIABLE_DECL(quark,s,gabble_disco,GQuark)
-	VARIABLE_DECL(quark,s,gabble_error,GQuark)
-	
-	
-	VARIABLE_DECL(ssl,s,gabble_conmgr,gboolean)
-	VARIABLE_DECL(httpport,s,gabble_conmgr,guint)
-	VARIABLE_DECL(httpproxyport,s,gabble_conmgr,guint)
-	VARIABLE_DECL_ARRAY(signals,s,gabble_conmgr,guint,LAST_SIGNAL_CON_MGR)
-	VARIABLE_DECL_ARRAY(signals,s,gabble_con,guint,LAST_SIGNAL_CON)
-	VARIABLE_DECL(arguments,s,gabble_con,GHashTable*)
-	VARIABLE_DECL_ARRAY(signals,s,gabble_im,guint,LAST_SIGNAL_IM)
-	
-	//todo: later ..see what it should be in search
-	VARIABLE_DECL_ARRAY(signals,s,gabble_search,guint,LAST_SIGNAL_SEARCH)
-	
-	VARIABLE_DECL_ARRAY(signals,s,gabble_muc,guint,LAST_SIGNAL_MUC)
-	VARIABLE_DECL_ARRAY(signals,s,gabble_med_chnl,guint,LAST_SIGNAL_MED_CHANNEL)
-	
-	VARIABLE_DECL_ARRAY(signals,s,gabble_med_sess,guint,LAST_SIGNAL_MED_SESSION)
-	
-
-
-
-	VARIABLE_DECL(google_audio_caps,s,gabble_med_sess,GabblePresenceCapabilities)
-	VARIABLE_DECL(jingle_audio_caps,s,gabble_med_sess,GabblePresenceCapabilities)
-	VARIABLE_DECL(jingle_video_caps,s,gabble_med_sess,GabblePresenceCapabilities)
-	
-	VARIABLE_DECL_ARRAY(ret_sess,s,gabble_med_sess,gchar,MAX_STREAM_NAME_LEN)
-	
-	VARIABLE_DECL_ARRAY(signals,s,gabble_med_stream,guint,LAST_SIGNAL_MED_STREAM)
-	
-	VARIABLE_DECL_ARRAY(signals,s,gabble_pre_cache,guint,LAST_SIGNAL_PRE_CACHE)
-	
-	VARIABLE_DECL_ARRAY(signals,s,gabble_register,guint,LAST_SIGNAL_REGISTER)
-	
-	VARIABLE_DECL_ARRAY(signals,s,gabble_ros_chnl,guint,LAST_SIGNAL_ROS_CHNL)
-	
-	VARIABLE_DECL_ARRAY(signals,s,gabble_room_chnl,guint,LAST_SIGNAL_ROOM_CHNL)
-	
-	VARIABLE_DECL(offset_quark1,s,gabble_mixin,GQuark)
-	VARIABLE_DECL(offset_quark,s,gabble_mixin,GQuark)
-	
-	VARIABLE_DECL_ARRAY(signals,s,gabble_roster,guint,LAST_SIGNAL_ROSTER)
-
-	VARIABLE_DECL(quark,s,gabble_errors,GQuark)
-	
-	VARIABLE_DECL(busCon,s,gabble_helpers,DBusGConnection*)
-	VARIABLE_DECL(bus_proxy,s,gabble_helpers,DBusGProxy*)
-
-	VARIABLE_DECL(offset_quark1,s,gabble_txt_mixin,GQuark)
-	VARIABLE_DECL(offset_quark,s,gabble_txt_mixin,GQuark)
-	VARIABLE_DECL(alloc1,s,gabble_txt_mixin,GabbleAllocator)
-	
-	VARIABLE_DECL(offset_quark1,s,gabble_search_mixin,GQuark)
-	VARIABLE_DECL(offset_quark,s,gabble_search_mixin,GQuark)
-	//todo: check if this required for search
-	VARIABLE_DECL(alloc1,s,gabble_search_mixin,GabbleAllocator)
-	
-	VARIABLE_DECL(type,s,gabble_chnl_iface,GType)
-	VARIABLE_DECL(initialized,s,gabble_chnl_iface,gboolean)
-	
-	VARIABLE_DECL(type,s,gabble_fac_iface,GType)
-	VARIABLE_DECL(initialized,s,gabble_fac_iface,gboolean)
-	
-	VARIABLE_DECL_ARRAY(signals,s,gabble_vcard_mgr,guint,LAST_SIGNAL_VCARD_MGR)
-	VARIABLE_DECL(quark1,s,gabble_vcard_mgr,GQuark)
-	VARIABLE_DECL(quark2,s,gabble_vcard_mgr,GQuark)
-	
-	
-	VARIABLE_DECL(offset_quark1,s,gabble_grp_mixin,GQuark)
-	VARIABLE_DECL(offset_quark,s,gabble_grp_mixin,GQuark)
-	
-	
-	VARIABLE_DECL(gabble_disco_parent_class,s,gabble_disco,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_disco,GType)
-	
-	VARIABLE_DECL(gabble_connection_manager_parent_class,s,gabble_conmgr,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_conmgr,GType)
-
-    VARIABLE_DECL(gabble_connection_parent_class,s,gabble_con,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_con,GType)
-	
-	VARIABLE_DECL(gabble_im_channel_parent_class,s,gabble_im,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_im,GType)
-	
-	VARIABLE_DECL(gabble_search_channel_parent_class,s,gabble_search,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_search,GType)
-
-	VARIABLE_DECL(gabble_muc_channel_parent_class,s,gabble_muc,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_muc,GType)
-
-    VARIABLE_DECL(gabble_media_channel_parent_class,s,gabble_med_chnl,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_med_chnl,GType)
-
-    VARIABLE_DECL(gabble_media_stream_parent_class,s,gabble_med_stream,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_med_stream,GType)
-    
-    VARIABLE_DECL(gabble_presence_parent_class,s,gabble_presence,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_presence,GType)
-    
-    VARIABLE_DECL(gabble_presence_cache_parent_class,s,gabble_pre_cache,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_pre_cache,GType)
-
-    VARIABLE_DECL(gabble_register_parent_class,s,gabble_register,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_register,GType)
-
-    VARIABLE_DECL(gabble_roster_channel_parent_class,s,gabble_ros_chnl,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_ros_chnl,GType)
-    
-    VARIABLE_DECL(gabble_roomlist_channel_parent_class,s,gabble_room_chnl,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_room_chnl,GType)
-
-    VARIABLE_DECL(gabble_im_factory_parent_class ,s,im_factory,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,im_factory,GType)
-	
-	VARIABLE_DECL(gabble_search_factory_parent_class ,s,search_factory,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,search_factory,GType)
-
-    VARIABLE_DECL(gabble_media_factory_parent_class ,s,media_factory,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,media_factory,GType)
-
-	VARIABLE_DECL(gabble_muc_factory_parent_class ,s,muc_factory,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,muc_factory,GType)
-
-	VARIABLE_DECL(gabble_vcard_manager_parent_class ,s,gabble_vcard_mgr,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_vcard_mgr,GType)
-	
-	VARIABLE_DECL_ARRAY(keys,s,gabble_debug,GDebugKey,12)
-	
-	VARIABLE_DECL_ARRAY(NO_ALIAS,s,gabble_vcard_mgr,gchar,MAX_GABBLE_UTILS_GCHAR_ARRAY_LEN)
-
-
-	VARIABLE_DECL_2DARRAY(assumed_caps,s,gabble_con,gchar,3,150)
-	
-	VARIABLE_DECL_2DARRAY(muc_roles,s,gabble_muc,gchar,4,20)
-	VARIABLE_DECL_2DARRAY(muc_affiliations,s,gabble_muc,gchar,4,20)
-	
-	VARIABLE_DECL_2DARRAY(video_codec_params,s,gabble_med_stream,gchar,6,20)
-	
-	VARIABLE_DECL_2DARRAY(list_handle_strings,s,handles,char,4,20)
-	
-	VARIABLE_DECL_ARRAY(handlers,s,gabble_med_sess,Handler,10)
-	
-	VARIABLE_DECL(gabble_media_session_parent_class ,s,gabble_med_sess,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_med_sess,GType)
-	
-	VARIABLE_DECL(gabble_roster_parent_class ,s,gabble_roster,gpointer)	
-	VARIABLE_DECL(g_define_type_id,s,gabble_roster,GType)
-	
-	
-      /*END-global vars*/
- 
-    };
-
-struct libgabble_global_struct * libgabble_ImpurePtr();
-int libgabble_Init(struct libgabble_global_struct *);
-#ifdef __cplusplus
-}
-#endif
-#endif //EMULATOR
-#endif //header guard ifdef _LIBGABBLE_WSD_H
-
--- a/telepathygabble/inc/media-factory.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * media-factory.h - Header for GabbleMediaFactory
- * Copyright (C) 2006 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __MEDIA_FACTORY_H__
-#define __MEDIA_FACTORY_H__
-
-#include <glib-object.h>
-
-#include "gabble-media-channel.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleMediaFactory GabbleMediaFactory;
-typedef struct _GabbleMediaFactoryClass GabbleMediaFactoryClass;
-
-struct _GabbleMediaFactoryClass {
-  GObjectClass parent_class;
-};
-
-struct _GabbleMediaFactory {
-  GObject parent;
-};
-
-IMPORT_C GType gabble_media_factory_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_MEDIA_FACTORY \
-  (gabble_media_factory_get_type())
-#define GABBLE_MEDIA_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_MEDIA_FACTORY, GabbleMediaFactory))
-#define GABBLE_MEDIA_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_MEDIA_FACTORY, GabbleMediaFactoryClass))
-#define GABBLE_IS_MEDIA_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_MEDIA_FACTORY))
-#define GABBLE_IS_MEDIA_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_MEDIA_FACTORY))
-#define GABBLE_MEDIA_FACTORY_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_MEDIA_FACTORY, GabbleMediaFactoryClass))
-
-const gchar * _gabble_media_factory_allocate_sid (GabbleMediaFactory *fac, GabbleMediaChannel *chan);
-const gchar * _gabble_media_factory_register_sid (GabbleMediaFactory *fac, const gchar *sid, GabbleMediaChannel *chan);
-void _gabble_media_factory_free_sid (GabbleMediaFactory *fac, const gchar *sid);
-
-G_END_DECLS
-
-#endif /* #ifndef __MEDIA_FACTORY_H__ */
-
--- a/telepathygabble/inc/muc-factory.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * muc-factory.h - Header for GabbleMucFactory
- * Copyright (C) 2006 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __MUC_FACTORY_H__
-#define __MUC_FACTORY_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleMucFactory GabbleMucFactory;
-typedef struct _GabbleMucFactoryClass GabbleMucFactoryClass;
-
-struct _GabbleMucFactoryClass {
-  GObjectClass parent_class;
-};
-
-struct _GabbleMucFactory {
-  GObject parent;
-};
-
-IMPORT_C GType gabble_muc_factory_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_MUC_FACTORY \
-  (gabble_muc_factory_get_type())
-#define GABBLE_MUC_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_MUC_FACTORY, GabbleMucFactory))
-#define GABBLE_MUC_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_MUC_FACTORY, GabbleMucFactoryClass))
-#define GABBLE_IS_MUC_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_MUC_FACTORY))
-#define GABBLE_IS_MUC_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_MUC_FACTORY))
-#define GABBLE_MUC_FACTORY_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_MUC_FACTORY, GabbleMucFactoryClass))
-
-G_END_DECLS
-
-#endif /* #ifndef __MUC_FACTORY_H__ */
--- a/telepathygabble/inc/namespaces.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * namespaces.h - XMPP namespace constants
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_NAMESPACES__H__
-#define __GABBLE_NAMESPACES__H__
-
-#define NS_CAPS                 "http://jabber.org/protocol/caps"
-#define NS_DISCO_INFO           "http://jabber.org/protocol/disco#info"
-#define NS_DISCO_ITEMS          "http://jabber.org/protocol/disco#items"
-#define NS_GABBLE_CAPS          "http://telepathy.freedesktop.org/caps"
-#define NS_GOOGLE_CAPS          "http://www.google.com/xmpp/client/caps"
-#define NS_GOOGLE_FEAT_SESSION  "http://www.google.com/xmpp/protocol/session"
-#define NS_GOOGLE_FEAT_VOICE    "http://www.google.com/xmpp/protocol/voice/v1"
-#define NS_GOOGLE_JINGLE_INFO   "google:jingleinfo"
-#define NS_GOOGLE_ROSTER        "google:roster"
-#define NS_GOOGLE_SESSION       "http://www.google.com/session"
-#define NS_GOOGLE_SESSION_PHONE "http://www.google.com/session/phone"
-#define NS_GOOGLE_TRANSPORT_P2P "http://www.google.com/transport/p2p"
-#define NS_JINGLE               "http://jabber.org/protocol/jingle"
-#define NS_JINGLE_DESCRIPTION_AUDIO "http://jabber.org/protocol/jingle/description/audio"
-#define NS_JINGLE_DESCRIPTION_VIDEO "http://jabber.org/protocol/jingle/description/video"
-#define NS_JINGLE_ERRORS            "http://jabber.org/protocol/jingle#errors"
-#define NS_JINGLE_TRANSPORT_ICE     "http://jabber.org/protocol/jingle/transport/ice"
-#define NS_MUC                  "http://jabber.org/protocol/muc"
-#define NS_MUC_USER             "http://jabber.org/protocol/muc#user"
-#define NS_MUC_ADMIN            "http://jabber.org/protocol/muc#admin"
-#define NS_MUC_OWNER            "http://jabber.org/protocol/muc#owner"
-#define NS_NICK                 "http://jabber.org/protocol/nick"
-#define NS_PRESENCE_INVISIBLE   "presence-invisible"
-#define NS_PRIVACY              "jabber:iq:privacy"
-#define NS_REGISTER             "jabber:iq:register"
-#define NS_ROSTER               "jabber:iq:roster"
-#define NS_VCARD_TEMP           "vcard-temp"
-#define NS_X_DATA               "jabber:x:data"
-#define NS_X_DELAY              "jabber:x:delay"
-#define NS_X_CONFERENCE         "jabber:x:conference"
-#define NS_XMPP_STANZAS         "urn:ietf:params:xml:ns:xmpp-stanzas"
-#define NS_SEARCH               "jabber:iq:search"
-#define NS_VCARD_TEMP           "vcard-temp"
-#define NS_VCARD_TEMP_UPDATE    "vcard-temp:x:update"
-
-#endif /* __GABBLE_NAMESPACES__H__ */
--- a/telepathygabble/inc/properties-mixin-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * properties-mixin-signals-marshal.h - Headers for Gabble roster helper
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifndef __properties_mixin_marshal_MARSHAL_H__
-#define __properties_mixin_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-G_END_DECLS
-
-#endif /* __properties_mixin_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/properties-mixin.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/*
- * properties-mixin.h - Header for GabblePropertiesMixin
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *   @author Robert McQueen <robert.mcqueen@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_PROPERTIES_MIXIN_H__
-#define __GABBLE_PROPERTIES_MIXIN_H__
-
-#include "handles.h"
-#include "handle-set.h"
-#include "util.h"
-
-G_BEGIN_DECLS
-
-struct _GabblePropertySignature {
-    gchar *name;
-    GType type;
-};
-
-typedef struct _GabblePropertySignature GabblePropertySignature;
-
-struct _GabbleProperty {
-    GValue *value;
-    guint flags;
-};
-
-typedef struct _GabbleProperty GabbleProperty;
-
-typedef struct _GabblePropertiesContext GabblePropertiesContext;
-typedef gboolean (*GabblePropertiesSetFunc) (GObject *obj, GabblePropertiesContext *ctx, GError **error);
-
-struct _GabblePropertiesMixinClass {
-  const GabblePropertySignature *signatures;
-  guint num_props;
-
-  GabblePropertiesSetFunc set_properties;
-
-  guint property_flags_changed_signal_id;
-  guint properties_changed_signal_id;
-};
-
-typedef struct _GabblePropertiesMixinClass GabblePropertiesMixinClass;
-
-typedef struct _GabblePropertiesMixinPrivate GabblePropertiesMixinPrivate;
-
-struct _GabblePropertiesMixin {
-    GabbleProperty *properties;
-
-    GabblePropertiesMixinPrivate *priv;
-};
-
-typedef struct _GabblePropertiesMixin GabblePropertiesMixin;
-
-/* TYPE MACROS */
-#define GABBLE_PROPERTIES_MIXIN_CLASS_OFFSET_QUARK (gabble_properties_mixin_class_get_offset_quark())
-#define GABBLE_PROPERTIES_MIXIN_CLASS_OFFSET(o) (GPOINTER_TO_UINT (g_type_get_qdata (G_OBJECT_CLASS_TYPE (o), GABBLE_PROPERTIES_MIXIN_CLASS_OFFSET_QUARK)))
-#define GABBLE_PROPERTIES_MIXIN_CLASS(o) ((GabblePropertiesMixinClass *) gabble_mixin_offset_cast (o, GABBLE_PROPERTIES_MIXIN_CLASS_OFFSET (o)))
-
-#define GABBLE_PROPERTIES_MIXIN_OFFSET_QUARK (gabble_properties_mixin_get_offset_quark())
-#define GABBLE_PROPERTIES_MIXIN_OFFSET(o) (GPOINTER_TO_UINT (g_type_get_qdata (G_OBJECT_TYPE (o), GABBLE_PROPERTIES_MIXIN_OFFSET_QUARK)))
-#define GABBLE_PROPERTIES_MIXIN(o) ((GabblePropertiesMixin *) gabble_mixin_offset_cast (o, GABBLE_PROPERTIES_MIXIN_OFFSET (o)))
-
-#define TP_TYPE_PROPERTY_INFO_STRUCT (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, \
-      G_TYPE_STRING, \
-      G_TYPE_STRING, \
-      G_TYPE_UINT, \
-      G_TYPE_INVALID))
-#define TP_TYPE_PROPERTY_INFO_LIST (dbus_g_type_get_collection ("GPtrArray", \
-      TP_TYPE_PROPERTY_INFO_STRUCT))
-
-#define TP_TYPE_PROPERTY_VALUE_STRUCT (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, \
-      G_TYPE_VALUE, \
-      G_TYPE_INVALID))
-#define TP_TYPE_PROPERTY_VALUE_LIST (dbus_g_type_get_collection ("GPtrArray", \
-      TP_TYPE_PROPERTY_VALUE_STRUCT))
-
-#define TP_TYPE_PROPERTY_FLAGS_STRUCT (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_INVALID))
-#define TP_TYPE_PROPERTY_FLAGS_LIST (dbus_g_type_get_collection ("GPtrArray", \
-      TP_TYPE_PROPERTY_FLAGS_STRUCT))
-
-GQuark gabble_properties_mixin_class_get_offset_quark (void);
-GQuark gabble_properties_mixin_get_offset_quark (void);
-
-void gabble_properties_mixin_class_init (GObjectClass *obj_cls, glong offset, const GabblePropertySignature *signatures, guint num_properties, GabblePropertiesSetFunc set_func);
-
-void gabble_properties_mixin_init (GObject *obj, glong offset);
-void gabble_properties_mixin_finalize (GObject *obj);
-
-gboolean gabble_properties_mixin_list_properties (GObject *obj, GPtrArray **ret, GError **error);
-gboolean gabble_properties_mixin_get_properties (GObject *obj, const GArray *properties, GPtrArray **ret, GError **error);
-void gabble_properties_mixin_set_properties (GObject *obj, const GPtrArray *properties, DBusGMethodInvocation *context);
-
-gboolean gabble_properties_mixin_has_property (GObject *obj, const gchar *name, guint *property);
-
-gboolean gabble_properties_context_has (GabblePropertiesContext *ctx, guint property);
-gboolean gabble_properties_context_has_other_than (GabblePropertiesContext *ctx, guint property);
-const GValue *gabble_properties_context_get (GabblePropertiesContext *ctx, guint property);
-guint gabble_properties_context_get_value_count (GabblePropertiesContext *ctx);
-void gabble_properties_context_remove (GabblePropertiesContext *ctx, guint property);
-void gabble_properties_context_return (GabblePropertiesContext *ctx, GError *error);
-gboolean gabble_properties_context_return_if_done (GabblePropertiesContext *ctx);
-
-void gabble_properties_mixin_change_value (GObject *obj, guint prop_id, const GValue *new_value, GArray **props);
-void gabble_properties_mixin_change_flags (GObject *obj, guint prop_id, TpPropertyFlags add, TpPropertyFlags remove, GArray **props);
-void gabble_properties_mixin_emit_changed (GObject *obj, GArray **props);
-void gabble_properties_mixin_emit_flags (GObject *obj, GArray **props);
-
-gboolean gabble_properties_mixin_is_readable (GObject *obj, guint prop_id);
-gboolean gabble_properties_mixin_is_writable (GObject *obj, guint prop_id);
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_PROPERTIES_MIXIN_H__ */
--- a/telepathygabble/inc/roster.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
- * roster.h - Headers for Gabble roster helper
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __ROSTER_H__
-#define __ROSTER_H__
-
-#include <glib-object.h>
-
-#include "gabble-types.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleRosterClass GabbleRosterClass;
-
-IMPORT_C GType gabble_roster_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_ROSTER \
-  (gabble_roster_get_type())
-#define GABBLE_ROSTER(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_ROSTER, GabbleRoster))
-#define GABBLE_ROSTER_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_ROSTER, GabbleRosterClass))
-#define GABBLE_IS_ROSTER(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_ROSTER))
-#define GABBLE_IS_ROSTER_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_ROSTER))
-#define GABBLE_ROSTER_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_ROSTER, GabbleRosterClass))
-
-struct _GabbleRosterClass {
-    GObjectClass parent_class;
-};
-
-struct _GabbleRoster {
-    GObject parent;
-    gpointer priv;
-};
-
-typedef enum
-{
-  GABBLE_ROSTER_SUBSCRIPTION_NONE = 0,
-  GABBLE_ROSTER_SUBSCRIPTION_FROM = 1 << 0,
-  GABBLE_ROSTER_SUBSCRIPTION_TO = 1 << 1,
-  GABBLE_ROSTER_SUBSCRIPTION_BOTH = GABBLE_ROSTER_SUBSCRIPTION_FROM |
-      GABBLE_ROSTER_SUBSCRIPTION_TO,
-  GABBLE_ROSTER_SUBSCRIPTION_REMOVE = 1 << 2,
-} GabbleRosterSubscription;
-
-GabbleRoster *gabble_roster_new (GabbleConnection *);
-
-GabbleRosterSubscription gabble_roster_handle_get_subscription (GabbleRoster *, GabbleHandle);
-gboolean gabble_roster_handle_set_blocked (GabbleRoster *, GabbleHandle, gboolean, GError **);
-const gchar *gabble_roster_handle_get_name (GabbleRoster *, GabbleHandle);
-gboolean gabble_roster_handle_set_name (GabbleRoster *, GabbleHandle, const gchar *, GError **);
-gboolean gabble_roster_handle_remove (GabbleRoster *, GabbleHandle, GError **);
-gboolean gabble_roster_handle_add (GabbleRoster *, GabbleHandle, GError **);
-gboolean gabble_roster_handle_has_entry (GabbleRoster *, GabbleHandle);
-
-G_END_DECLS
-
-#endif /* __ROSTER_H__ */
--- a/telepathygabble/inc/search-factory.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
- * search-factory.h - Header for GabbleSearchFactory
- * Copyright (C) 2006 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __SEARCH_FACTORY_H__
-#define __SEARCH_FACTORY_H__
-
-#include <glib-object.h>
-
-#include "gabble-search-channel.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleSearchFactory GabbleSearchFactory;
-typedef struct _GabbleSearchFactoryClass GabbleSearchFactoryClass;
-
-struct _GabbleSearchFactoryClass {
-  GObjectClass parent_class;
-};
-
-struct _GabbleSearchFactory {
-  GObject parent;
-};
-
-IMPORT_C GType gabble_search_factory_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_SEARCH_FACTORY \
-  (gabble_search_factory_get_type())
-#define GABBLE_SEARCH_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_SEARCH_FACTORY, GabbleSearchFactory))
-#define GABBLE_SEARCH_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_SEARCH_FACTORY, GabbleSearchFactoryClass))
-#define GABBLE_IS_SEARCH_FACTORY(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_SEARCH_FACTORY))
-#define GABBLE_IS_SEARCH_FACTORY_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_SEARCH_FACTORY))
-#define GABBLE_SEARCH_FACTORY_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_SEARCH_FACTORY, GabbleSearchFactoryClass))
-
-
-G_END_DECLS
-
-#endif /* #ifndef __IM_FACTORY_H__ */
-
--- a/telepathygabble/inc/search-keys-info.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * search-keys-info.h - Header for Search Keys and reported fields
- * Copyright (C) 2008 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __SEARCH_KEYS_INFO_H__
-#define __SEARCH_KEYS_INFO_H__
-
-#include "gabble-connection.h"
-
-G_BEGIN_DECLS
-
-void search_keys_info_discover (GabbleConnection *conn);
-gboolean _gabble_submit_search_form (GabbleConnection *conn);
-LmHandlerResult search_keys_iq_cb (LmMessageHandler *handler, LmConnection *lmconn, LmMessage *message, gpointer user_data);
-void
-get_search_keys_info (GabbleConnection *conn,  const gchar *jid );
-
-G_END_DECLS
-
-#endif /* __SEARCH_KEYS_INFO_H__ */
--- a/telepathygabble/inc/search-mixin-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * search-mixin-signals-marshal.h - Headers for Telepathy Channel Factory interface
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __search_mixin_marshal_MARSHAL_H__
-#define __search_mixin_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:UINT,UINT,UINT,UINT,UINT,STRING (search-mixin-signals-marshal.list:1) */
-extern void search_mixin_marshal_VOID__UINT_BOXED (GClosure     *closure,
-                                                  GValue       *return_value,
-                                                  guint         n_param_values,
-                                                  const GValue *param_values,
-                                                  gpointer      invocation_hint,
-                                                  gpointer      marshal_data);
-
-
-
-
-G_END_DECLS
-
-#endif /* __search_mixin_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/search-mixin.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
- * text-mixin.h - Header for GabbleSearchMixin
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_SEARCH_MIXIN_H__
-#define __GABBLE_SEARCH_MIXIN_H__
-
-#include "handles.h"
-#include "handle-set.h"
-#include "util.h"
-
-
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleSearchMixinClass GabbleSearchMixinClass;
-typedef struct _GabbleSearchMixin GabbleSearchMixin;
-
-struct _GabbleSearchMixinClass {
-  guint search_result_received_signal_id;
-  guint search_state_changed_signal_id;
-};
-
-struct _GabbleSearchMixin {
-  
-  //todo: any data if required 
-  guint search_state;
-  
-};
-
-GType gabble_search_mixin_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_SEARCH_MIXIN_CLASS_OFFSET_QUARK (gabble_search_mixin_class_get_offset_quark())
-#define GABBLE_SEARCH_MIXIN_CLASS_OFFSET(o) (GPOINTER_TO_UINT (g_type_get_qdata (G_OBJECT_CLASS_TYPE (o), GABBLE_SEARCH_MIXIN_CLASS_OFFSET_QUARK)))
-#define GABBLE_SEARCH_MIXIN_CLASS(o) ((GabbleSearchMixinClass *) gabble_mixin_offset_cast (o, GABBLE_SEARCH_MIXIN_CLASS_OFFSET (o)))
-
-#define GABBLE_SEARCH_MIXIN_OFFSET_QUARK (gabble_search_mixin_get_offset_quark())
-#define GABBLE_SEARCH_MIXIN_OFFSET(o) (GPOINTER_TO_UINT (g_type_get_qdata (G_OBJECT_TYPE (o), GABBLE_SEARCH_MIXIN_OFFSET_QUARK)))
-#define GABBLE_SEARCH_MIXIN(o) ((GabbleSearchMixin *) gabble_mixin_offset_cast (o, GABBLE_SEARCH_MIXIN_OFFSET (o)))
-
-GQuark gabble_search_mixin_class_get_offset_quark (void);
-GQuark gabble_search_mixin_get_offset_quark (void);
-
-void gabble_search_mixin_class_init (GObjectClass *obj_cls, glong offset);
-void gabble_search_mixin_init (GObject *obj, glong offset );
-
-void gabble_search_mixin_finalize (GObject *obj);
-
-gboolean gabble_search_mixin_search (GObject *obj,GHashTable *params,
-									 GabbleConnection *conn,
-									 GError **error);
-
-gboolean gabble_search_mixin_get_search_state (	GObject *obj, guint *ret,
-                        					GError **error );
-                                	 
-void
-_gabble_search_mixin_emit_search_result_received (GObject *obj,
-                                                 guint contact_handle,
-                             				     GHashTable *values );
-
-void
-_gabble_search_mixin_emit_search_state_changed (GObject *obj,
-                                                 guint search_state );
-                                                 
-
-void
-_gabble_search_mixin_set_search_state (GObject *obj, guint state );
-
-gboolean
-gabble_search_mixin_get_search_keys (	GObject *obj,
-										gchar **ret_instruction, 
-										gchar ***ret_searchkeys,
-										GabbleConnection *conn,
-		                        		GError **error
-                        	  		   );                                                 
-
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_SEARCH_MIXIN_H__ */
-
--- a/telepathygabble/inc/sha1.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*-
- * Copyright (c) 2001-2003 Allan Saddi <allan@saddi.com>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY ALLAN SADDI AND HIS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL ALLAN SADDI OR HIS CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * $Id: sha1.h 347 2003-02-23 22:11:49Z asaddi $
- */
-
-#ifndef _SHA1_H
-#define _SHA1_H
-
-# include <inttypes.h>
-
-#define SHA1_HASH_SIZE 20
-
-/* Hash size in 32-bit words */
-#define SHA1_HASH_WORDS 5
-
-struct _SHA1Context {
-  uint64_t totalLength;
-  uint32_t hash[SHA1_HASH_WORDS];
-  uint32_t bufferLength;
-  union {
-    uint32_t words[16];
-    uint8_t bytes[64];
-  } buffer;
-#ifdef RUNTIME_ENDIAN
-  int littleEndian;
-#endif /* RUNTIME_ENDIAN */
-};
-
-typedef struct _SHA1Context SHA1Context;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void SHA1Init (SHA1Context *sc);
-void SHA1Update (SHA1Context *sc, const void *data, uint32_t len);
-void SHA1Final (SHA1Context *sc, uint8_t hash[SHA1_HASH_SIZE]);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SHA1_H */
--- a/telepathygabble/inc/telepathy-constants.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-/*
- * telepathy-constants.h - constants used in telepathy
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __TELEPATHY_CONSTANTS_H__
-#define __TELEPATHY_CONSTANTS_H__
-
-#include <glib.h>
-G_BEGIN_DECLS
-
-typedef enum {
-TP_CHANNEL_GROUP_CHANGE_REASON_NONE = 0,
-TP_CHANNEL_GROUP_CHANGE_REASON_OFFLINE = 1,
-TP_CHANNEL_GROUP_CHANGE_REASON_KICKED = 2,
-TP_CHANNEL_GROUP_CHANGE_REASON_BUSY = 3,
-TP_CHANNEL_GROUP_CHANGE_REASON_INVITED = 4,
-TP_CHANNEL_GROUP_CHANGE_REASON_BANNED = 5,
-TP_CHANNEL_GROUP_CHANGE_REASON_ERROR = 6,
-} TpChannelGroupChangeReason;
-
-typedef enum {
-TP_CHANNEL_MEDIA_CAPABILITY_AUDIO = 1,
-TP_CHANNEL_MEDIA_CAPABILITY_VIDEO = 2
-} TpChannelMediaCapabilities;
-
-typedef enum {
-TP_CONN_ALIAS_FLAG_USER_SET = 1
-} TpConnAliasFlags;
-
-typedef enum {
-TP_CONN_CAPABILITY_FLAG_CREATE = 1,
-TP_CONN_CAPABILITY_FLAG_INVITE = 2
-} TpConnectionCapabilityFlags;
-
-typedef enum {
-TP_HANDLE_TYPE_NONE = 0,
-TP_HANDLE_TYPE_CONTACT = 1,
-TP_HANDLE_TYPE_ROOM = 2,
-TP_HANDLE_TYPE_LIST = 3
-} TpHandleType;
-
-typedef enum {
-TP_CONN_MGR_PARAM_FLAG_REQUIRED = 1,
-TP_CONN_MGR_PARAM_FLAG_REGISTER = 2,
-TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT = 4
-} TpConnectionManagerParamFlags;
-
-typedef enum {
-TP_CONN_PRESENCE_TYPE_UNSET = 0,
-TP_CONN_PRESENCE_TYPE_OFFLINE = 1,
-TP_CONN_PRESENCE_TYPE_AVAILABLE = 2,
-TP_CONN_PRESENCE_TYPE_AWAY = 3,
-TP_CONN_PRESENCE_TYPE_EXTENDED_AWAY = 4,
-TP_CONN_PRESENCE_TYPE_HIDDEN = 5
-} TpConnectionPresenceType;
-
-typedef enum {
-TP_CONN_STATUS_CONNECTED = 0,
-TP_CONN_STATUS_CONNECTING = 1,
-TP_CONN_STATUS_DISCONNECTED = 2,
-TP_CONN_STATUS_NEW = 10000
-} TpConnectionStatus;
-
-typedef enum {
-TP_CONN_STATUS_REASON_NONE_SPECIFIED = 0,
-TP_CONN_STATUS_REASON_REQUESTED = 1,
-TP_CONN_STATUS_REASON_NETWORK_ERROR = 2,
-TP_CONN_STATUS_REASON_AUTHENTICATION_FAILED = 3,
-TP_CONN_STATUS_REASON_ENCRYPTION_ERROR = 4,
-TP_CONN_STATUS_REASON_NAME_IN_USE = 5,
-TP_CONN_STATUS_REASON_CERT_NOT_PROVIDED = 6,
-TP_CONN_STATUS_REASON_CERT_UNTRUSTED = 7,
-TP_CONN_STATUS_REASON_CERT_EXPIRED = 8,
-TP_CONN_STATUS_REASON_CERT_NOT_ACTIVATED = 9,
-TP_CONN_STATUS_REASON_CERT_HOSTNAME_MISMATCH = 10,
-TP_CONN_STATUS_REASON_CERT_FINGERPRINT_MISMATCH = 11,
-TP_CONN_STATUS_REASON_CERT_SELF_SIGNED = 12,
-TP_CONN_STATUS_REASON_CERT_OTHER_ERROR = 13
-} TpConnectionStatusReason;
-
-typedef enum {
-TP_CHANNEL_CONTACT_SEARCH_STATE_BEFORE = 0,
-TP_CHANNEL_CONTACT_SEARCH_STATE_DURING = 1,
-TP_CHANNEL_CONTACT_SEARCH_STATE_AFTER = 2
-} TpChannelContactSearchState;
-
-typedef enum {
-TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL = 0,
-TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION = 1,
-TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE = 2
-} TpChannelTextMessageType;
-
-typedef enum {
-TP_CHANNEL_GROUP_FLAG_CAN_ADD = 1,
-TP_CHANNEL_GROUP_FLAG_CAN_REMOVE = 2,
-TP_CHANNEL_GROUP_FLAG_CAN_RESCIND = 4,
-TP_CHANNEL_GROUP_FLAG_MESSAGE_ADD = 8,
-TP_CHANNEL_GROUP_FLAG_MESSAGE_REMOVE = 16,
-TP_CHANNEL_GROUP_FLAG_MESSAGE_ACCEPT = 32,
-TP_CHANNEL_GROUP_FLAG_MESSAGE_REJECT = 64,
-TP_CHANNEL_GROUP_FLAG_MESSAGE_RESCIND = 128,
-TP_CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES = 256,
-} TpChannelGroupFlags;
-
-typedef enum {
-TP_CHANNEL_HOLD_STATE_NONE = 0,
-TP_CHANNEL_HOLD_STATE_SEND_ONLY = 1,
-TP_CHANNEL_HOLD_STATE_RECV_ONLY = 2,
-TP_CHANNEL_HOLD_STATE_BOTH = 3
-} TpChannelHoldState;
-
-typedef enum {
-TP_CHANNEL_PASSWORD_FLAG_PROVIDE = 8
-} TpChannelPasswordFlags;
-
-typedef enum {
-TP_CHANNEL_TEXT_MESSAGE_FLAG_TRUNCATED = 1
-} TpChannelTextMessageFlags;
-
-typedef enum {
-TP_MEDIA_STREAM_TYPE_AUDIO = 0,
-TP_MEDIA_STREAM_TYPE_VIDEO = 1
-} TpMediaStreamType;
-
-typedef enum {
-TP_MEDIA_STREAM_DIRECTION_NONE = 0,
-TP_MEDIA_STREAM_DIRECTION_SEND = 1,
-TP_MEDIA_STREAM_DIRECTION_RECEIVE = 2,
-TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL = 3
-} TpMediaStreamDirection;
-
-typedef enum {
-TP_MEDIA_STREAM_PENDING_NONE = 0,
-TP_MEDIA_STREAM_PENDING_LOCAL_SEND = 1,
-TP_MEDIA_STREAM_PENDING_REMOTE_SEND = 2
-} TpMediaStreamPendingSend;
-
-typedef enum {
-TP_MEDIA_STREAM_ERROR_UNKNOWN = 0,
-TP_MEDIA_STREAM_ERROR_EOS = 1
-} TpMediaStreamError;
-
-typedef enum {
-TP_MEDIA_STREAM_PROTO_UDP = 0,
-TP_MEDIA_STREAM_PROTO_TCP = 1
-} TpMediaStreamProto;
-
-typedef enum {
-TP_MEDIA_STREAM_TRANSPORT_TYPE_LOCAL = 0,
-TP_MEDIA_STREAM_TRANSPORT_TYPE_DERIVED = 1,
-TP_MEDIA_STREAM_TRANSPORT_TYPE_RELAY = 2
-} TpMediaStreamTransportType;
-
-typedef enum {
-TP_CODEC_MEDIA_TYPE_AUDIO = 0,
-TP_CODEC_MEDIA_TYPE_VIDEO = 1,
-} TpCodecMediaType;
-
-typedef enum {
-TP_MEDIA_STREAM_STATE_DISCONNECTED = 0,
-TP_MEDIA_STREAM_STATE_CONNECTING = 1,
-TP_MEDIA_STREAM_STATE_CONNECTED = 2
-} TpMediaStreamState;
-
-typedef enum {
-TP_PROPERTY_FLAG_READ = 1,
-TP_PROPERTY_FLAG_WRITE = 2
-} TpPropertyFlags;
-
-G_END_DECLS
-
-
-#endif
--- a/telepathygabble/inc/telepathy-errors-enumtypes.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * telepathy-errors-enumtypes.h 
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- 
- */
-/* Generated data (by glib-mkenums) */
-
-#ifndef __TELEPATHY_ERRORS_ENUM_TYPES_H__
-#define __TELEPATHY_ERRORS_ENUM_TYPES_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-/* enumerations from "telepathy-errors.h" */
-#ifdef SYMBIAN
-IMPORT_C
-#endif
-GType telepathy_errors_get_type (void);
-#define TELEPATHY_TYPE_ERRORS (telepathy_errors_get_type())
-G_END_DECLS
-
-#endif /* __TELEPATHY_ERRORS_ENUM_TYPES_H__ */
-
-/* Generated data ends here */
-
--- a/telepathygabble/inc/telepathy-errors.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
- * telepathy-errors.h - Header for Telepathy error types
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __TELEPATHY_ERRORS_H__
-#define __TELEPATHY_ERRORS_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-typedef enum
-{
-  ChannelBanned,     /** You are banned from the channel.
-                      */
-  ChannelFull,       /** The channel is full.
-                      */
-  ChannelInviteOnly, /** The requested channel is invite only.
-                      */
-  Disconnected,      /** The connection is not currently connected and cannot
-                      *  be used.
-                      */
-  InvalidArgument,   /** Raised when one of the provided arguments is invalid.
-                      */
-  InvalidHandle,     /** The contact name specified is unknown on this channel
-                      *  or connection.
-                      */
-  NetworkError,      /** Raised when there is an error reading from or writing
-                      *  to the network.
-                      */
-  NotAvailable,      /** Raised when the requested functionality is temporarily
-                      *  unavailable.
-                      */
-  NotImplemented,    /** Raised when the requested method, channel, etc is not
-                      *  available on this connection.
-                      */
-  PermissionDenied,  /** The user is not permitted to perform the requested
-                      *  operation.
-                      */
-  MemoryFull         /** Not able to allocate more memory
-                      */
-} TelepathyErrors;
-
-#ifdef SYMBIAN
-IMPORT_C
-#endif
-GQuark telepathy_errors_quark (void);
-#define TELEPATHY_ERRORS telepathy_errors_quark ()
-
-G_END_DECLS
-
-#endif /* #ifndef __TELEPATHY_ERRORS_H__*/
--- a/telepathygabble/inc/telepathy-helpers.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * telepathy-helpers.h - Header for various helper functions
- * for telepathy implementation
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __TELEPATHY_HELPERS_H__
-#define __TELEPATHY_HELPERS_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-typedef struct
-{
-  gpointer key;
-  gpointer value;
-} TpKeyValue;
-
-DBusGConnection * tp_get_bus ();
-DBusGProxy * tp_get_bus_proxy ();
-GSList *tp_hash_to_key_value_list (GHashTable *hash);
-void tp_key_value_list_free (GSList *list);
-
-G_END_DECLS
-
-#endif /* __TELEPATHY_HELPERS_H__ */
-
--- a/telepathygabble/inc/telepathy-interfaces.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
- * telepathy-interfaces.h - Header for Telepathy interface names
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __TELEPATHY_INTERFACES_H__
-#define __TELEPATHY_INTERFACES_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define TP_IFACE_CHANNEL_INTERFACE \
-        "org.freedesktop.Telepathy.Channel"
-#define TP_IFACE_CHANNEL_INTERFACE_DTMF \
-        "org.freedesktop.Telepathy.Channel.Interface.DTMF"
-#define TP_IFACE_CHANNEL_INTERFACE_GROUP \
-        "org.freedesktop.Telepathy.Channel.Interface.Group"
-#define TP_IFACE_CHANNEL_INTERFACE_HOLD \
-        "org.freedesktop.Telepathy.Channel.Interface.Hold"
-#define TP_IFACE_CHANNEL_INTERFACE_MEDIA_SIGNALLING \
-        "org.freedesktop.Telepathy.Channel.Interface.MediaSignalling"
-#define TP_IFACE_CHANNEL_INTERFACE_PASSWORD \
-        "org.freedesktop.Telepathy.Channel.Interface.Password"
-#define TP_IFACE_CHANNEL_INTERFACE_TRANSFER \
-        "org.freedesktop.Telepathy.Channel.Interface.Transfer"
-#define TP_IFACE_CHANNEL_TYPE_CONTACT_LIST \
-        "org.freedesktop.Telepathy.Channel.Type.ContactList"
-#define TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH \
-        "org.freedesktop.Telepathy.Channel.Type.ContactSearch"
-#define TP_IFACE_CHANNEL_TYPE_ROOM_LIST \
-        "org.freedesktop.Telepathy.Channel.Type.RoomList"
-#define TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA \
-        "org.freedesktop.Telepathy.Channel.Type.StreamedMedia"
-#define TP_IFACE_CHANNEL_TYPE_TEXT \
-        "org.freedesktop.Telepathy.Channel.Type.Text"
-#define TP_IFACE_CONN_INTERFACE \
-        "org.freedesktop.Telepathy.Connection"
-#define TP_IFACE_CONN_INTERFACE_ALIASING \
-        "org.freedesktop.Telepathy.Connection.Interface.Aliasing"
-#define TP_IFACE_CONN_INTERFACE_CAPABILITIES \
-        "org.freedesktop.Telepathy.Connection.Interface.Capabilities"
-#define TP_IFACE_CONN_INTERFACE_CONTACT_INFO \
-        "org.freedesktop.Telepathy.Connection.Interface.ContactInfo"
-#define TP_IFACE_CONN_INTERFACE_FORWARDING \
-        "org.freedesktop.Telepathy.Connection.Interface.Forwarding"
-#define TP_IFACE_CONN_INTERFACE_PRESENCE \
-        "org.freedesktop.Telepathy.Connection.Interface.Presence"
-#define TP_IFACE_CONN_INTERFACE_PRIVACY \
-        "org.freedesktop.Telepathy.Connection.Interface.Privacy"
-#define TP_IFACE_CONN_INTERFACE_RENAMING \
-        "org.freedesktop.Telepathy.Connection.Interface.Renaming"
-#define TP_IFACE_CONN_MGR_INTERFACE \
-        "org.freedesktop.Telepathy.ConnectionManager"
-#define TP_IFACE_MEDIA_SESSION_HANDLER \
-        "org.freedesktop.Telepathy.Media.SessionHandler"
-#define TP_IFACE_MEDIA_STREAM_HANDLER \
-        "org.freedesktop.Telepathy.Media.StreamHandler"
-#define TP_IFACE_PROPERTIES \
-        "org.freedesktop.Telepathy.Properties"
-#define TP_IFACE_CONN_INTERFACE_AVATAR \
-    "org.freedesktop.Telepathy.Connection.Interface.Avatars"
-
-G_END_DECLS
-
-#endif /* #ifndef __TELEPATHY_INTERFACES_H__*/
--- a/telepathygabble/inc/text-mixin-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
- * text-mixin-signals-marshal.h - Headers for Telepathy Channel Factory interface
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __text_mixin_marshal_MARSHAL_H__
-#define __text_mixin_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:UINT,UINT,UINT,UINT,UINT,STRING (text-mixin-signals-marshal.list:1) */
-extern void text_mixin_marshal_VOID__UINT_UINT_UINT_UINT_UINT_STRING (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data);
-
-/* VOID:UINT,UINT,UINT,STRING (text-mixin-signals-marshal.list:2) */
-extern void text_mixin_marshal_VOID__UINT_UINT_UINT_STRING (GClosure     *closure,
-                                                            GValue       *return_value,
-                                                            guint         n_param_values,
-                                                            const GValue *param_values,
-                                                            gpointer      invocation_hint,
-                                                            gpointer      marshal_data);
-
-/* VOID:UINT,UINT,STRING (text-mixin-signals-marshal.list:3) */
-extern void text_mixin_marshal_VOID__UINT_UINT_STRING (GClosure     *closure,
-                                                       GValue       *return_value,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint,
-                                                       gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __text_mixin_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/text-mixin.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
- * text-mixin.h - Header for GabbleTextMixin
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_TEXT_MIXIN_H__
-#define __GABBLE_TEXT_MIXIN_H__
-
-#include "handles.h"
-#include "handle-set.h"
-#include "util.h"
-
-typedef enum {
-    CHANNEL_TEXT_SEND_ERROR_UNKNOWN = 0,
-    CHANNEL_TEXT_SEND_ERROR_OFFLINE,
-    CHANNEL_TEXT_SEND_ERROR_INVALID_CONTACT,
-    CHANNEL_TEXT_SEND_ERROR_PERMISSION_DENIED,
-    CHANNEL_TEXT_SEND_ERROR_TOO_LONG,
-    CHANNEL_TEXT_SEND_ERROR_NOT_IMPLEMENTED,
-
-    CHANNEL_TEXT_SEND_NO_ERROR = -1
-} GabbleTextMixinSendError;
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleTextMixinClass GabbleTextMixinClass;
-typedef struct _GabbleTextMixin GabbleTextMixin;
-
-struct _GabbleTextMixinClass {
-  guint lost_message_signal_id;
-  guint received_signal_id;
-  guint send_error_signal_id;
-  guint sent_signal_id;
-};
-
-struct _GabbleTextMixin {
-  GabbleHandleRepo *handle_repo;
-  guint recv_id;
-  gboolean send_nick;
-  gboolean message_lost;
-
-  GQueue *pending;
-
-  GArray *msg_types;
-};
-
-GType gabble_text_mixin_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TEXT_MIXIN_CLASS_OFFSET_QUARK (gabble_text_mixin_class_get_offset_quark())
-#define GABBLE_TEXT_MIXIN_CLASS_OFFSET(o) (GPOINTER_TO_UINT (g_type_get_qdata (G_OBJECT_CLASS_TYPE (o), GABBLE_TEXT_MIXIN_CLASS_OFFSET_QUARK)))
-#define GABBLE_TEXT_MIXIN_CLASS(o) ((GabbleTextMixinClass *) gabble_mixin_offset_cast (o, GABBLE_TEXT_MIXIN_CLASS_OFFSET (o)))
-
-#define GABBLE_TEXT_MIXIN_OFFSET_QUARK (gabble_text_mixin_get_offset_quark())
-#define GABBLE_TEXT_MIXIN_OFFSET(o) (GPOINTER_TO_UINT (g_type_get_qdata (G_OBJECT_TYPE (o), GABBLE_TEXT_MIXIN_OFFSET_QUARK)))
-#define GABBLE_TEXT_MIXIN(o) ((GabbleTextMixin *) gabble_mixin_offset_cast (o, GABBLE_TEXT_MIXIN_OFFSET (o)))
-
-GQuark gabble_text_mixin_class_get_offset_quark (void);
-GQuark gabble_text_mixin_get_offset_quark (void);
-
-void gabble_text_mixin_class_init (GObjectClass *obj_cls, glong offset);
-void gabble_text_mixin_init (GObject *obj, glong offset, GabbleHandleRepo *handle_repo, gboolean send_nick);
-void gabble_text_mixin_set_message_types (GObject *obj, ...);
-void gabble_text_mixin_finalize (GObject *obj);
-
-gboolean gabble_text_mixin_receive (GObject *obj, TpChannelTextMessageType type, GabbleHandle sender, time_t timestamp, const char *text);
-gboolean gabble_text_mixin_acknowledge_pending_messages (GObject *obj, const GArray * ids, GError **error);
-gboolean gabble_text_mixin_list_pending_messages (GObject *obj, gboolean clear, GPtrArray ** ret, GError **error);
-gboolean gabble_text_mixin_send (GObject *obj, guint type, guint subtype, const char * recipient, const gchar * text, GabbleConnection *conn, gboolean emit_signal, GError **error);
-void gabble_text_mixin_emit_sent (GObject *obj, time_t timestamp, guint type, const char *text);
-gboolean gabble_text_mixin_get_message_types (GObject *obj, GArray **ret, GError **error);
-void gabble_text_mixin_clear (GObject *obj);
-
-gboolean gabble_text_mixin_parse_incoming_message (LmMessage *message, const gchar **from, time_t *stamp, TpChannelTextMessageType *msgtype, const gchar **body, const gchar **body_offset, GabbleTextMixinSendError *send_error);
-
-void _gabble_text_mixin_send_error_signal (GObject *obj, GabbleTextMixinSendError error, time_t timestamp, TpChannelTextMessageType type, const gchar *text);
-
-G_END_DECLS
-
-#endif /* #ifndef __GABBLE_TEXT_MIXIN_H__ */
-
--- a/telepathygabble/inc/tp-channel-factory-iface-signals-marshal.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * tp_channel_factory_iface_signals_marshal.h - Header for GabbleConnection
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifndef __tp_channel_factory_iface_marshal_MARSHAL_H__
-#define __tp_channel_factory_iface_marshal_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:OBJECT,POINTER (tp-channel-factory-iface-signals-marshal.list:1) */
-extern void tp_channel_factory_iface_marshal_VOID__OBJECT_POINTER (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data);
-
-G_END_DECLS
-
-#endif /* __tp_channel_factory_iface_marshal_MARSHAL_H__ */
-
--- a/telepathygabble/inc/tp-channel-factory-iface.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
- * tp-channel-factory-iface.h - Headers for Telepathy Channel Factory interface
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __TP_CHANNEL_FACTORY_IFACE_H__
-#define __TP_CHANNEL_FACTORY_IFACE_H__
-
-#include <glib-object.h>
-
-#include "telepathy-constants.h"
-#include "tp-channel-iface.h"
-
-G_BEGIN_DECLS
-
-#define TP_TYPE_CHANNEL_FACTORY_IFACE tp_channel_factory_iface_get_type()
-
-#define TP_CHANNEL_FACTORY_IFACE(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
-  TP_TYPE_CHANNEL_FACTORY_IFACE, TpChannelFactoryIface))
-
-#define TP_CHANNEL_FACTORY_IFACE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), \
-  TP_TYPE_CHANNEL_FACTORY_IFACE, TpChannelFactoryIfaceClass))
-
-#define TP_IS_CHANNEL_FACTORY_IFACE(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
-  TP_TYPE_CHANNEL_FACTORY_IFACE))
-
-#define TP_IS_CHANNEL_FACTORY_IFACE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
-  TP_TYPE_CHANNEL_FACTORY_IFACE))
-
-#define TP_CHANNEL_FACTORY_IFACE_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), \
-  TP_TYPE_CHANNEL_FACTORY_IFACE, TpChannelFactoryIfaceClass))
-
-typedef struct _TpChannelFactoryIface TpChannelFactoryIface;
-typedef struct _TpChannelFactoryIfaceClass TpChannelFactoryIfaceClass;
-
-typedef enum {
-  TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_IMPLEMENTED = 0,
-  TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_AVAILABLE,
-  TP_CHANNEL_FACTORY_REQUEST_STATUS_INVALID_HANDLE,
-  TP_CHANNEL_FACTORY_REQUEST_STATUS_ERROR,
-  TP_CHANNEL_FACTORY_REQUEST_STATUS_DONE,
-  TP_CHANNEL_FACTORY_REQUEST_STATUS_QUEUED
-} TpChannelFactoryRequestStatus;
-
-struct _TpChannelFactoryIfaceClass {
-  GTypeInterface parent_class;
-
-  void (*close_all) (TpChannelFactoryIface *);
-  void (*connecting) (TpChannelFactoryIface *);
-  void (*connected) (TpChannelFactoryIface *);
-  void (*disconnected) (TpChannelFactoryIface *);
-  void (*foreach) (TpChannelFactoryIface *, TpChannelFunc func, gpointer data);
-  TpChannelFactoryRequestStatus (*request) (TpChannelFactoryIface *, const gchar *chan_type, TpHandleType handle_type, guint handle, TpChannelIface **ret, GError **error);
-};
-
-GType tp_channel_factory_iface_get_type (void);
-
-void tp_channel_factory_iface_close_all (TpChannelFactoryIface *);
-void tp_channel_factory_iface_connecting (TpChannelFactoryIface *);
-void tp_channel_factory_iface_connected (TpChannelFactoryIface *);
-void tp_channel_factory_iface_disconnected (TpChannelFactoryIface *);
-void tp_channel_factory_iface_foreach (TpChannelFactoryIface *, TpChannelFunc func, gpointer data);
-TpChannelFactoryRequestStatus tp_channel_factory_iface_request (TpChannelFactoryIface *, const gchar *chan_type, TpHandleType handle_type, guint handle, TpChannelIface **ret, GError **error);
-
-G_END_DECLS
-
-#endif /* __TP_CHANNEL_FACTORY_IFACE_H__ */
--- a/telepathygabble/inc/tp-channel-iface.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * tp-channel-iface.h - Headers for Telepathy Channel interface
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __TP_CHANNEL_IFACE_H__
-#define __TP_CHANNEL_IFACE_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define TP_TYPE_CHANNEL_IFACE tp_channel_iface_get_type()
-
-#define TP_CHANNEL_IFACE(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
-  TP_TYPE_CHANNEL_IFACE, TpChannelIface))
-
-#define TP_CHANNEL_IFACE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), \
-  TP_TYPE_CHANNEL_IFACE, TpChannelIfaceClass))
-
-#define TP_IS_CHANNEL_IFACE(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
-  TP_TYPE_CHANNEL_IFACE))
-
-#define TP_IS_CHANNEL_IFACE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
-  TP_TYPE_CHANNEL_IFACE))
-
-#define TP_CHANNEL_IFACE_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), \
-  TP_TYPE_CHANNEL_IFACE, TpChannelIfaceClass))
-
-typedef struct _TpChannelIface TpChannelIface;
-typedef struct _TpChannelIfaceClass TpChannelIfaceClass;
-typedef void (* TpChannelFunc) (TpChannelIface *, gpointer);
-
-struct _TpChannelIfaceClass {
-  GTypeInterface parent_class;
-};
-
-GType tp_channel_iface_get_type (void);
-
-G_END_DECLS
-
-#endif /* __TP_CHANNEL_IFACE_H__ */
--- a/telepathygabble/inc/util.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * util.h - Headers for Gabble utility functions
- * Copyright (C) 2006 Collabora Ltd.
- *   @author Robert McQueen <robert.mcqueen@collabora.co.uk>
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <glib.h>
-#include "loudmouth/loudmouth.h"
-
-#include "gabble-types.h"
-
-#ifndef __GABBLE_UTIL_H__
-#define __GABBLE_UTIL_H__
-
-gchar *
-sha1_hex (const gchar *bytes, guint len);
-gboolean g_strdiff (const gchar *left, const gchar *right);
-void lm_message_node_add_own_nick (LmMessageNode *node, GabbleConnection *conn);
-void lm_message_node_steal_children (LmMessageNode *snatcher, LmMessageNode *mum);
-gboolean lm_message_node_has_namespace (LmMessageNode *node, const gchar *ns, const gchar *tag);
-LmMessageNode *lm_message_node_get_child_with_namespace (LmMessageNode *node, const gchar *name, const gchar *ns);
-
-/* format: a@b/c */
-void gabble_decode_jid (const gchar *jid, gchar **a, gchar **b, gchar **c);
-
-gpointer gabble_mixin_offset_cast (gpointer instance, guint offset);
-
-#endif /* __GABBLE_UTIL_H__ */
--- a/telepathygabble/inc/vcard-manager.h	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
- * vcard-manager.h - vCard lookup helper for Gabble connections
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __GABBLE_VCARD_MANAGER_H__
-#define __GABBLE_VCARD_MANAGER_H__
-
-#include <glib-object.h>
-#include "loudmouth/loudmouth.h"
-
-#include "gabble-types.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GabbleVCardManagerClass GabbleVCardManagerClass;
-typedef struct _GabbleVCardManagerRequest GabbleVCardManagerRequest;
-
-/**
- * GabbleVCardManagerError:
- * @GABBLE_VCARD_MANAGER_ERROR_CANCELLED: The vCard request was cancelled
- * @GABBLE_VCARD_MANAGER_ERROR_TIMEOUT: The vCard request timed out
- * @GABBLE_VCARD_MANAGER_ERROR_UNKNOWN: An unknown error occured
- */
-typedef enum
-{
-  GABBLE_VCARD_MANAGER_ERROR_CANCELLED,
-  GABBLE_VCARD_MANAGER_ERROR_TIMEOUT,
-  GABBLE_VCARD_MANAGER_ERROR_UNKNOWN
-} GabbleVCardManagerError;
-
-GQuark gabble_vcard_manager_error_quark (void);
-#define GABBLE_VCARD_MANAGER_ERROR gabble_vcard_manager_error_quark ()
-
-IMPORT_C GType gabble_vcard_manager_get_type(void);
-
-/* TYPE MACROS */
-#define GABBLE_TYPE_VCARD_MANAGER \
-  (gabble_vcard_manager_get_type())
-#define GABBLE_VCARD_MANAGER(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_VCARD_MANAGER, GabbleVCardManager))
-#define GABBLE_VCARD_MANAGER_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_VCARD_MANAGER, GabbleVCardManagerClass))
-#define GABBLE_IS_VCARD_MANAGER(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_VCARD_MANAGER))
-#define GABBLE_IS_VCARD_MANAGER_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_VCARD_MANAGER))
-#define GABBLE_VCARD_MANAGER_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_VCARD_MANAGER, GabbleVCardManagerClass))
-
-struct _GabbleVCardManagerClass {
-    GObjectClass parent_class;
-};
-
-struct _GabbleVCardManager {
-    GObject parent;
-    gpointer priv;
-};
-
-typedef void (*GabbleVCardManagerCb)(GabbleVCardManager *self,
-                                    GabbleVCardManagerRequest *request,
-                                    GabbleHandle handle,
-                                    LmMessageNode *vcard,
-                                    GError *error,
-                                    gpointer user_data);
-
-GabbleVCardManager *gabble_vcard_manager_new (GabbleConnection *);
-
-GQuark gabble_vcard_manager_cache_quark (void);
-
-GabbleVCardManagerRequest *gabble_vcard_manager_request (GabbleVCardManager *,
-                                                       GabbleHandle,
-                                                       guint timeout,
-                                                       GabbleVCardManagerCb,
-                                                       gpointer user_data,
-                                                       GObject *object,
-                                                       GError **error);
-
-GabbleVCardManagerRequest *gabble_vcard_manager_replace (GabbleVCardManager *,
-                                                       LmMessageNode *,
-                                                       guint timeout,
-                                                       GabbleVCardManagerCb,
-                                                       gpointer user_data,
-                                                       GObject *object,
-                                                       GError **error);
-
-GabbleVCardManagerRequest *gabble_vcard_manager_edit (GabbleVCardManager *,
-                                                    guint timeout,
-                                                    GabbleVCardManagerCb,
-                                                    gpointer user_data,
-                                                    GObject *object,
-                                                    GError **error,
-                                                    ...)
-                                                   G_GNUC_NULL_TERMINATED;
-
-void gabble_vcard_manager_cancel_request (GabbleVCardManager *manager,
-                                          GabbleVCardManagerRequest *request);
-
-const gchar *gabble_vcard_manager_get_cached_alias (GabbleVCardManager *,
-                                                   GabbleHandle);
-gboolean gabble_vcard_manager_has_cached_alias (GabbleVCardManager *manager,
-                                                GabbleHandle handle);
-
-G_END_DECLS
-
-#endif
--- a/telepathygabble/rom/telepathygabble.iby	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * telepathygabble.iby - Source for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-#ifndef __GABBLE_IBY__
-#define __GABBLE_IBY__
-
-
-//Telepathy-gabble DLLs
-file=ABI_DIR\BUILD_DIR\libgabble-convenience.dll            SHARED_LIB_DIR\libgabble-convenience.dll
-file=ABI_DIR\BUILD_DIR\tg.exe         						PROGRAMS_DIR\tg.exe
-
-data=\epoc32\winscw\c\data\dbus\dbus1\services\jabber.service_hw 		data\dbus\dbus1\services\jabber.service
-
-
-#endif
-
-
--- a/telepathygabble/src/Makefile.am	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-BUILT_SOURCES = \
-    gabble-connection-manager-glue.h \
-    gabble-connection-manager-signals-marshal.h \
-    gabble-connection-manager-signals-marshal.c \
-    gabble-connection-glue.h \
-    gabble-connection-signals-marshal.h \
-    gabble-connection-signals-marshal.c \
-    gabble-register-signals-marshal.h \
-    gabble-register-signals-marshal.c \
-    gabble-im-channel-glue.h \
-    gabble-im-channel-signals-marshal.h \
-    gabble-im-channel-signals-marshal.c \
-    gabble-muc-channel-glue.h \
-    gabble-muc-channel-signals-marshal.h \
-    gabble-muc-channel-signals-marshal.c \
-    gabble-media-channel-glue.h \
-    gabble-media-channel-signals-marshal.h \
-    gabble-media-channel-signals-marshal.c \
-    gabble-media-session-glue.h \
-    gabble-media-session-signals-marshal.h \
-    gabble-media-session-signals-marshal.c \
-    gabble-media-session-enumtypes.h \
-    gabble-media-session-enumtypes.c \
-    gabble-media-stream-glue.h \
-    gabble-media-stream-signals-marshal.h \
-    gabble-media-stream-signals-marshal.c \
-    gabble-presence-cache-signals-marshal.h \
-    gabble-presence-cache-signals-marshal.c \
-    gabble-roster-channel-glue.h \
-    gabble-roster-channel-signals-marshal.h \
-    gabble-roster-channel-signals-marshal.c \
-    gabble-roomlist-channel-glue.h \
-    gabble-roomlist-channel-signals-marshal.h \
-    gabble-roomlist-channel-signals-marshal.c \
-    group-mixin-signals-marshal.h \
-    group-mixin-signals-marshal.c \
-    properties-mixin-signals-marshal.h \
-    properties-mixin-signals-marshal.c \
-    telepathy-errors-enumtypes.h \
-    telepathy-errors-enumtypes.c \
-    text-mixin-signals-marshal.h \
-    text-mixin-signals-marshal.c \
-    tp-channel-factory-iface-signals-marshal.h \
-    tp-channel-factory-iface-signals-marshal.c
-
-# correctly clean the generated source files
-CLEANFILES = $(BUILT_SOURCES)
-
-bin_PROGRAMS=telepathy-gabble
-noinst_PROGRAMS = write-mgr-file
-
-CORE_SOURCES = \
-    ansi.h \
-    capabilities.h \
-    capabilities.c \
-    debug.h \
-    debug.c \
-    disco.h \
-    disco.c \
-    gabble-error.c \
-    gabble-error.h \
-    gabble-connection-manager.h \
-    gabble-connection-manager.c \
-    gabble-connection.h \
-    gabble-connection.c \
-    gabble-im-channel.h \
-    gabble-im-channel.c \
-    gabble-muc-channel.h \
-    gabble-muc-channel.c \
-    gabble-media-channel.h \
-    gabble-media-channel.c \
-    gabble-media-session.h \
-    gabble-media-session.c \
-    gabble-media-stream.h \
-    gabble-media-stream.c \
-    gabble-presence.h \
-    gabble-presence.c \
-    gabble-presence-cache.h \
-    gabble-presence-cache.c \
-    gabble-register.c \
-    gabble-register.h \
-    gabble-roster-channel.h \
-    gabble-roster-channel.c \
-    gabble-roomlist-channel.h \
-    gabble-roomlist-channel.c \
-    gabble-types.h \
-    gheap.h \
-    gheap.c \
-    gintset.h \
-    gintset.c \
-    group-mixin.h \
-    group-mixin.c \
-    handles.h \
-    handles.c \
-    handle-set.h \
-    handle-set.c \
-    jingle-info.c \
-    jingle-info.h \
-    im-factory.h \
-    im-factory.c \
-    media-factory.h \
-    media-factory.c \
-    muc-factory.h \
-    muc-factory.c \
-    namespaces.h \
-    properties-mixin.h \
-    properties-mixin.c \
-    roster.h \
-    roster.c \
-    telepathy-constants.h \
-    telepathy-interfaces.h \
-    telepathy-errors.h \
-    telepathy-errors.c \
-    telepathy-helpers.h \
-    telepathy-helpers.c \
-    text-mixin.h \
-    text-mixin.c \
-    tp-channel-iface.h \
-    tp-channel-iface.c \
-    tp-channel-factory-iface.h \
-    tp-channel-factory-iface.c \
-    util.h \
-    util.c \
-    vcard-manager.h \
-    vcard-manager.c \
-    $(BUILT_SOURCES)
-
-EXTRA_DIST = \
-    gabble-connection-manager-signals-marshal.list \
-    gabble-connection-signals-marshal.list \
-    gabble-im-channel-signals-marshal.list \
-    gabble-media-channel-signals-marshal.list \
-    gabble-media-session-signals-marshal.list \
-    gabble-media-stream-signals-marshal.list \
-    gabble-muc-channel-signals-marshal.list \
-    gabble-presence-cache-signals-marshal.list \
-    gabble-register-signals-marshal.list \
-    gabble-roomlist-channel-signals-marshal.list \
-    gabble-roster-channel-signals-marshal.list \
-    group-mixin-signals-marshal.list \
-    properties-mixin-signals-marshal.list \
-    text-mixin-signals-marshal.list \
-    tp-channel-factory-iface-signals-marshal.list
-
-libgabble_convenience_la_SOURCES = \
-    $(CORE_SOURCES)
-
-write_mgr_file_SOURCES = write-mgr-file.c
-
-write_mgr_file_LDADD = libgabble-convenience.la
-
-telepathy_gabble_SOURCES = \
-    gabble.h \
-    gabble.c
-
-telepathy_gabble_LDADD = libgabble-convenience.la
-
-noinst_LTLIBRARIES = libgabble-convenience.la
-
-AM_CFLAGS = $(ERROR_CFLAGS) @DBUS_CFLAGS@ @GLIB_CFLAGS@ @LOUDMOUTH_CFLAGS@ @HANDLE_LEAK_DEBUG_CFLAGS@
-AM_LDFLAGS = @DBUS_LIBS@ @GLIB_LIBS@ @LOUDMOUTH_LIBS@
-
-
-# rule to generate the binding headers
-%-glue.h: ../generate/xml-modified/%.xml
-	dbus-binding-tool --mode=glib-server --output=$@ --prefix=$(subst -,_,$*) $<
-
-%-signals-marshal.h: %-signals-marshal.list
-	glib-genmarshal --header --prefix=$(subst -,_,$*)_marshal $< > $*-signals-marshal.h
-
-%-signals-marshal.c: %-signals-marshal.list
-	glib-genmarshal --body --prefix=$(subst -,_,$*)_marshal $< > $*-signals-marshal.c
-
-%-marshal.h: %-marshal.list
-	glib-genmarshal --header --prefix=$(subst -,_,$*)_marshal $< > $*-marshal.h
-
-%-marshal.c: %-marshal.list
-	glib-genmarshal --body --prefix=$(subst -,_,$*)_marshal $< > $*-marshal.c
-
-
-# rules for making the glib enum objects
-%-enumtypes.h: %.h Makefile.in
-	glib-mkenums \
-	--fhead "#ifndef __$(shell echo $* | tr [:lower:]- [:upper:]_)_ENUM_TYPES_H__\n#define __$(shell echo $* | tr [:lower:]- [:upper:]_)_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
-	--fprod "/* enumerations from \"@filename@\" */\n" \
-	--vhead "GType @enum_name@_get_type (void);\n#define $(shell echo $* | tr [:lower:]- [:upper:]_ | sed 's/_.*//')_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
-	--ftail "G_END_DECLS\n\n#endif /* __$(shell echo $* | tr [:lower:]- [:upper:]_)_ENUM_TYPES_H__ */" \
-	$< > $@
-
-%-enumtypes.c: %.h Makefile.in
-	glib-mkenums \
-	--fhead "#include <$*.h>" \
-	--fprod "\n/* enumerations from \"@filename@\" */" \
-	--vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {"     \
-	--vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@VALUENAME@\" }," \
-	--vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
-	$< > $@
--- a/telepathygabble/src/Makefile.in	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,774 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = telepathy-gabble$(EXEEXT)
-noinst_PROGRAMS = write-mgr-file$(EXEEXT)
-subdir = src
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \
-	$(top_srcdir)/m4/as-compiler-flag.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libgabble_convenience_la_LIBADD =
-am__objects_1 = gabble-connection-manager-signals-marshal.lo \
-	gabble-connection-signals-marshal.lo \
-	gabble-register-signals-marshal.lo \
-	gabble-im-channel-signals-marshal.lo \
-	gabble-muc-channel-signals-marshal.lo \
-	gabble-media-channel-signals-marshal.lo \
-	gabble-media-session-signals-marshal.lo \
-	gabble-media-session-enumtypes.lo \
-	gabble-media-stream-signals-marshal.lo \
-	gabble-presence-cache-signals-marshal.lo \
-	gabble-roster-channel-signals-marshal.lo \
-	gabble-roomlist-channel-signals-marshal.lo \
-	group-mixin-signals-marshal.lo \
-	properties-mixin-signals-marshal.lo \
-	telepathy-errors-enumtypes.lo text-mixin-signals-marshal.lo \
-	tp-channel-factory-iface-signals-marshal.lo
-am__objects_2 = capabilities.lo debug.lo disco.lo gabble-error.lo \
-	gabble-connection-manager.lo gabble-connection.lo \
-	gabble-im-channel.lo gabble-muc-channel.lo \
-	gabble-media-channel.lo gabble-media-session.lo \
-	gabble-media-stream.lo gabble-presence.lo \
-	gabble-presence-cache.lo gabble-register.lo \
-	gabble-roster-channel.lo gabble-roomlist-channel.lo gheap.lo \
-	gintset.lo group-mixin.lo handles.lo handle-set.lo \
-	jingle-info.lo im-factory.lo media-factory.lo muc-factory.lo \
-	properties-mixin.lo roster.lo telepathy-errors.lo \
-	telepathy-helpers.lo text-mixin.lo tp-channel-iface.lo \
-	tp-channel-factory-iface.lo util.lo vcard-manager.lo \
-	$(am__objects_1)
-am_libgabble_convenience_la_OBJECTS = $(am__objects_2)
-libgabble_convenience_la_OBJECTS =  \
-	$(am_libgabble_convenience_la_OBJECTS)
-am__installdirs = "$(DESTDIR)$(bindir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
-am_telepathy_gabble_OBJECTS = gabble.$(OBJEXT)
-telepathy_gabble_OBJECTS = $(am_telepathy_gabble_OBJECTS)
-telepathy_gabble_DEPENDENCIES = libgabble-convenience.la
-am_write_mgr_file_OBJECTS = write-mgr-file.$(OBJEXT)
-write_mgr_file_OBJECTS = $(am_write_mgr_file_OBJECTS)
-write_mgr_file_DEPENDENCIES = libgabble-convenience.la
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libgabble_convenience_la_SOURCES) \
-	$(telepathy_gabble_SOURCES) $(write_mgr_file_SOURCES)
-DIST_SOURCES = $(libgabble_convenience_la_SOURCES) \
-	$(telepathy_gabble_SOURCES) $(write_mgr_file_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIR = @DATADIR@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
-DBUS_SERVICES_DIR = @DBUS_SERVICES_DIR@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@
-ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_LIBS = @GLIB_LIBS@
-GREP = @GREP@
-GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
-GTK_DOC_USE_LIBTOOL_TRUE = @GTK_DOC_USE_LIBTOOL_TRUE@
-HANDLE_LEAK_DEBUG_CFLAGS = @HANDLE_LEAK_DEBUG_CFLAGS@
-HTML_DIR = @HTML_DIR@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LOUDMOUTH_CFLAGS = @LOUDMOUTH_CFLAGS@
-LOUDMOUTH_LIBS = @LOUDMOUTH_LIBS@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-BUILT_SOURCES = \
-    gabble-connection-manager-glue.h \
-    gabble-connection-manager-signals-marshal.h \
-    gabble-connection-manager-signals-marshal.c \
-    gabble-connection-glue.h \
-    gabble-connection-signals-marshal.h \
-    gabble-connection-signals-marshal.c \
-    gabble-register-signals-marshal.h \
-    gabble-register-signals-marshal.c \
-    gabble-im-channel-glue.h \
-    gabble-im-channel-signals-marshal.h \
-    gabble-im-channel-signals-marshal.c \
-    gabble-muc-channel-glue.h \
-    gabble-muc-channel-signals-marshal.h \
-    gabble-muc-channel-signals-marshal.c \
-    gabble-media-channel-glue.h \
-    gabble-media-channel-signals-marshal.h \
-    gabble-media-channel-signals-marshal.c \
-    gabble-media-session-glue.h \
-    gabble-media-session-signals-marshal.h \
-    gabble-media-session-signals-marshal.c \
-    gabble-media-session-enumtypes.h \
-    gabble-media-session-enumtypes.c \
-    gabble-media-stream-glue.h \
-    gabble-media-stream-signals-marshal.h \
-    gabble-media-stream-signals-marshal.c \
-    gabble-presence-cache-signals-marshal.h \
-    gabble-presence-cache-signals-marshal.c \
-    gabble-roster-channel-glue.h \
-    gabble-roster-channel-signals-marshal.h \
-    gabble-roster-channel-signals-marshal.c \
-    gabble-roomlist-channel-glue.h \
-    gabble-roomlist-channel-signals-marshal.h \
-    gabble-roomlist-channel-signals-marshal.c \
-    group-mixin-signals-marshal.h \
-    group-mixin-signals-marshal.c \
-    properties-mixin-signals-marshal.h \
-    properties-mixin-signals-marshal.c \
-    telepathy-errors-enumtypes.h \
-    telepathy-errors-enumtypes.c \
-    text-mixin-signals-marshal.h \
-    text-mixin-signals-marshal.c \
-    tp-channel-factory-iface-signals-marshal.h \
-    tp-channel-factory-iface-signals-marshal.c
-
-
-# correctly clean the generated source files
-CLEANFILES = $(BUILT_SOURCES)
-CORE_SOURCES = \
-    ansi.h \
-    capabilities.h \
-    capabilities.c \
-    debug.h \
-    debug.c \
-    disco.h \
-    disco.c \
-    gabble-error.c \
-    gabble-error.h \
-    gabble-connection-manager.h \
-    gabble-connection-manager.c \
-    gabble-connection.h \
-    gabble-connection.c \
-    gabble-im-channel.h \
-    gabble-im-channel.c \
-    gabble-muc-channel.h \
-    gabble-muc-channel.c \
-    gabble-media-channel.h \
-    gabble-media-channel.c \
-    gabble-media-session.h \
-    gabble-media-session.c \
-    gabble-media-stream.h \
-    gabble-media-stream.c \
-    gabble-presence.h \
-    gabble-presence.c \
-    gabble-presence-cache.h \
-    gabble-presence-cache.c \
-    gabble-register.c \
-    gabble-register.h \
-    gabble-roster-channel.h \
-    gabble-roster-channel.c \
-    gabble-roomlist-channel.h \
-    gabble-roomlist-channel.c \
-    gabble-types.h \
-    gheap.h \
-    gheap.c \
-    gintset.h \
-    gintset.c \
-    group-mixin.h \
-    group-mixin.c \
-    handles.h \
-    handles.c \
-    handle-set.h \
-    handle-set.c \
-    jingle-info.c \
-    jingle-info.h \
-    im-factory.h \
-    im-factory.c \
-    media-factory.h \
-    media-factory.c \
-    muc-factory.h \
-    muc-factory.c \
-    namespaces.h \
-    properties-mixin.h \
-    properties-mixin.c \
-    roster.h \
-    roster.c \
-    telepathy-constants.h \
-    telepathy-interfaces.h \
-    telepathy-errors.h \
-    telepathy-errors.c \
-    telepathy-helpers.h \
-    telepathy-helpers.c \
-    text-mixin.h \
-    text-mixin.c \
-    tp-channel-iface.h \
-    tp-channel-iface.c \
-    tp-channel-factory-iface.h \
-    tp-channel-factory-iface.c \
-    util.h \
-    util.c \
-    vcard-manager.h \
-    vcard-manager.c \
-    $(BUILT_SOURCES)
-
-EXTRA_DIST = \
-    gabble-connection-manager-signals-marshal.list \
-    gabble-connection-signals-marshal.list \
-    gabble-im-channel-signals-marshal.list \
-    gabble-media-channel-signals-marshal.list \
-    gabble-media-session-signals-marshal.list \
-    gabble-media-stream-signals-marshal.list \
-    gabble-muc-channel-signals-marshal.list \
-    gabble-presence-cache-signals-marshal.list \
-    gabble-register-signals-marshal.list \
-    gabble-roomlist-channel-signals-marshal.list \
-    gabble-roster-channel-signals-marshal.list \
-    group-mixin-signals-marshal.list \
-    properties-mixin-signals-marshal.list \
-    text-mixin-signals-marshal.list \
-    tp-channel-factory-iface-signals-marshal.list
-
-libgabble_convenience_la_SOURCES = \
-    $(CORE_SOURCES)
-
-write_mgr_file_SOURCES = write-mgr-file.c
-write_mgr_file_LDADD = libgabble-convenience.la
-telepathy_gabble_SOURCES = \
-    gabble.h \
-    gabble.c
-
-telepathy_gabble_LDADD = libgabble-convenience.la
-noinst_LTLIBRARIES = libgabble-convenience.la
-AM_CFLAGS = $(ERROR_CFLAGS) @DBUS_CFLAGS@ @GLIB_CFLAGS@ @LOUDMOUTH_CFLAGS@ @HANDLE_LEAK_DEBUG_CFLAGS@
-AM_LDFLAGS = @DBUS_LIBS@ @GLIB_LIBS@ @LOUDMOUTH_LIBS@
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
-	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
-libgabble-convenience.la: $(libgabble_convenience_la_OBJECTS) $(libgabble_convenience_la_DEPENDENCIES) 
-	$(LINK)  $(libgabble_convenience_la_LDFLAGS) $(libgabble_convenience_la_OBJECTS) $(libgabble_convenience_la_LIBADD) $(LIBS)
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	     || test -f $$p1 \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
-	done
-
-clean-binPROGRAMS:
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  echo " rm -f $$p $$f"; \
-	  rm -f $$p $$f ; \
-	done
-
-clean-noinstPROGRAMS:
-	@list='$(noinst_PROGRAMS)'; for p in $$list; do \
-	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  echo " rm -f $$p $$f"; \
-	  rm -f $$p $$f ; \
-	done
-telepathy-gabble$(EXEEXT): $(telepathy_gabble_OBJECTS) $(telepathy_gabble_DEPENDENCIES) 
-	@rm -f telepathy-gabble$(EXEEXT)
-	$(LINK) $(telepathy_gabble_LDFLAGS) $(telepathy_gabble_OBJECTS) $(telepathy_gabble_LDADD) $(LIBS)
-write-mgr-file$(EXEEXT): $(write_mgr_file_OBJECTS) $(write_mgr_file_DEPENDENCIES) 
-	@rm -f write-mgr-file$(EXEEXT)
-	$(LINK) $(write_mgr_file_LDFLAGS) $(write_mgr_file_OBJECTS) $(write_mgr_file_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/capabilities.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/disco.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-connection-manager-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-connection-manager.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-connection-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-connection.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-error.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-im-channel-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-im-channel.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-media-channel-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-media-channel.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-media-session-enumtypes.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-media-session-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-media-session.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-media-stream-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-media-stream.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-muc-channel-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-muc-channel.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-presence-cache-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-presence-cache.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-presence.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-register-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-register.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-roomlist-channel-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-roomlist-channel.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-roster-channel-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble-roster-channel.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gabble.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gheap.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gintset.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/group-mixin-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/group-mixin.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/handle-set.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/handles.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im-factory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jingle-info.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/media-factory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/muc-factory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/properties-mixin-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/properties-mixin.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/roster.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/telepathy-errors-enumtypes.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/telepathy-errors.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/telepathy-helpers.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text-mixin-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text-mixin.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tp-channel-factory-iface-signals-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tp-channel-factory-iface.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tp-channel-iface.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vcard-manager.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write-mgr-file.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-distclean-libtool:
-	-rm -f libtool
-uninstall-info-am:
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-	list='$(DISTFILES)'; for file in $$list; do \
-	  case $$file in \
-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-	  esac; \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-	    dir="/$$dir"; \
-	    $(mkdir_p) "$(distdir)$$dir"; \
-	  else \
-	    dir=''; \
-	  fi; \
-	  if test -d $$d/$$file; then \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
-	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS)
-installdirs:
-	for dir in "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
-	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool \
-	clean-noinstLTLIBRARIES clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-libtool distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic clean-libtool clean-noinstLTLIBRARIES \
-	clean-noinstPROGRAMS ctags distclean distclean-compile \
-	distclean-generic distclean-libtool distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-binPROGRAMS install-data install-data-am install-exec \
-	install-exec-am install-info install-info-am install-man \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am \
-	uninstall-binPROGRAMS uninstall-info-am
-
-
-# rule to generate the binding headers
-%-glue.h: ../generate/xml-modified/%.xml
-	dbus-binding-tool --mode=glib-server --output=$@ --prefix=$(subst -,_,$*) $<
-
-%-signals-marshal.h: %-signals-marshal.list
-	glib-genmarshal --header --prefix=$(subst -,_,$*)_marshal $< > $*-signals-marshal.h
-
-%-signals-marshal.c: %-signals-marshal.list
-	glib-genmarshal --body --prefix=$(subst -,_,$*)_marshal $< > $*-signals-marshal.c
-
-%-marshal.h: %-marshal.list
-	glib-genmarshal --header --prefix=$(subst -,_,$*)_marshal $< > $*-marshal.h
-
-%-marshal.c: %-marshal.list
-	glib-genmarshal --body --prefix=$(subst -,_,$*)_marshal $< > $*-marshal.c
-
-# rules for making the glib enum objects
-%-enumtypes.h: %.h Makefile.in
-	glib-mkenums \
-	--fhead "#ifndef __$(shell echo $* | tr [:lower:]- [:upper:]_)_ENUM_TYPES_H__\n#define __$(shell echo $* | tr [:lower:]- [:upper:]_)_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
-	--fprod "/* enumerations from \"@filename@\" */\n" \
-	--vhead "GType @enum_name@_get_type (void);\n#define $(shell echo $* | tr [:lower:]- [:upper:]_ | sed 's/_.*//')_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
-	--ftail "G_END_DECLS\n\n#endif /* __$(shell echo $* | tr [:lower:]- [:upper:]_)_ENUM_TYPES_H__ */" \
-	$< > $@
-
-%-enumtypes.c: %.h Makefile.in
-	glib-mkenums \
-	--fhead "#include <$*.h>" \
-	--fprod "\n/* enumerations from \"@filename@\" */" \
-	--vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {"     \
-	--vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@VALUENAME@\" }," \
-	--vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
-	$< > $@
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
--- a/telepathygabble/src/base64.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-/*
- * base64.c - Base 64 encoding/decoding implementation
- * Copyright (C) 2006 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include "base64.h"
-
-#define DEBUG_FLAG GABBLE_DEBUG_VCARD
-#include "debug.h"
-
-#include <ctype.h>
-#include <string.h>
-
-#include <glib.h>
-
-/*
-|AAAA AABB|BBBB CCCC|CCDD DDDD|
-
-0xFC = 1111 1100
-0x03 = 0000 0011
-0xF0 = 1111 0000
-0x0F = 0000 1111
-0xC0 = 1100 0000
-0x3F = 0011 1111
-
-3 input bytes = 4 output bytes;
-2 input bytes = 2 output bytes;
-1 input byte  = 1 output byte.
-*/
-
-static const gchar *encoding =
-  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-static const guint decoding[256] =
-{
-  /* ... */
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0,
-  /* + */
-  62,
-  /* ... */
-   0, 0, 0,
-  /* / , 0-9 */
-  63,
-  52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
-  /* ... */
-   0, 0, 0, 0, 0, 0, 0,
-  /* A */
-   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12,
-  13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-  /* ... */
-   0, 0, 0, 0, 0, 0,
-  /* a */
-  26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-  39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51
-};
-
-#define GET_6_BITS_0(s) (((s)[0] & 0xFC) >> 2)
-#define GET_6_BITS_1(s) (((s)[0] & 0x03) << 4) | \
-                        (((s)[1] & 0xF0) >> 4)
-#define GET_6_BITS_2(s) (((s)[1] & 0x0F) << 2) | \
-                        (((s)[2] & 0xC0) >> 6)
-#define GET_6_BITS_3(s) (((s)[2] & 0x3F) << 0)
-
-#define GET_BYTE_0(s) (((decoding[(guchar)(s)[0]] & 0x3F) << 2) | \
-                       ((decoding[(guchar)(s)[1]] & 0x30) >> 4))
-#define GET_BYTE_1(s) (((decoding[(guchar)(s)[1]] & 0x0F) << 4) | \
-                       ((decoding[(guchar)(s)[2]] & 0x3C) >> 2))
-#define GET_BYTE_2(s) (((decoding[(guchar)(s)[2]] & 0x03) << 6) | \
-                       ((decoding[(guchar)(s)[3]] & 0xFF) << 0))
-
-gchar *base64_encode (guint len, const gchar *str)
-{
-  guint i;
-  GString *tmp;
-
-  /* TODO: calculate requisite output string length and allocate that big a
-   * GString */
-  tmp = g_string_new ("");
-
-  for (i = 0; i < len; i += 3)
-    {
-      guint c1, c2, c3, c4;
-
-      if (i > 0 && (i * 4) % 76 == 0)
-          g_string_append_c (tmp, '\n');
-
-      switch (i + 3 - len)
-        {
-        case 1:
-          c1 = encoding[GET_6_BITS_0 (str + i)];
-          c2 = encoding[GET_6_BITS_1 (str + i)];
-          /* can't use GET_6_BITS_2 because str[i+2] is out of range */
-          c3 = encoding[(str[i + 1] & 0x0f) << 2];
-          c4 = '=';
-          break;
-        case 2:
-          c1 = encoding[GET_6_BITS_0 (str + i)];
-          /* can't use GET_6_BITS_1 because str[i+1] is out of range */
-          c2 = encoding[(str[i] & 0x03) << 4];
-          c3 = '=';
-          c4 = '=';
-          break;
-        default:
-          c1 = encoding[GET_6_BITS_0 (str + i)];
-          c2 = encoding[GET_6_BITS_1 (str + i)];
-          c3 = encoding[GET_6_BITS_2 (str + i)];
-          c4 = encoding[GET_6_BITS_3 (str + i)];
-        }
-
-      g_string_append_printf (tmp, "%c%c%c%c", c1, c2, c3, c4);
-    }
-
-  return g_string_free (tmp, FALSE);
-}
-
-GString *base64_decode (const gchar *str)
-{
-  guint i;
-  GString *tmp;
-  char group[4];
-  guint filled = 0;
-
-  for (i = 0; str[i]; i++)
-    {
-      if (str[i] != 'A' &&
-          str[i] != '=' &&
-          !isspace (str[i]) &&
-          decoding[(guchar) str[i]] == 0)
-        {
-          gabble_debug (DEBUG_FLAG, "bad character %x at byte %u", (guchar)str[i], i);
-          return NULL;
-        }
-    }
-
-  tmp = g_string_new ("");
-
-  for (i = 0; str[i]; i++)
-    {
-      if (isspace (str[i]))
-        continue;
-
-      group[filled++] = str[i];
-
-      if (filled == 4)
-        {
-          if (group[3] == '=')
-            {
-              if (group[2] == '=')
-                {
-                  g_string_append_c (tmp, GET_BYTE_0(group));
-                }
-              else
-                {
-                  g_string_append_c (tmp, GET_BYTE_0(group));
-                  g_string_append_c (tmp, GET_BYTE_1(group));
-                }
-             }
-           else
-            {
-              g_string_append_c (tmp, GET_BYTE_0(group));
-              g_string_append_c (tmp, GET_BYTE_1(group));
-              g_string_append_c (tmp, GET_BYTE_2(group));
-            }
-          filled = 0;
-        }
-    }
-
-  if (filled)
-    {
-      gabble_debug (DEBUG_FLAG, "insufficient padding at end of base64 string:\n%s", str);
-      g_string_free (tmp, TRUE);
-      return NULL;
-    }
-
-  return tmp;
-}
-
-
--- a/telepathygabble/src/capabilities.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
- * capabilities.c - Connection.Interface.Capabilities constants and utilities
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include "capabilities.h"
-
-#include "namespaces.h"
-#include "config.h"
-#include "gabble-presence-cache.h"
-#include "telepathy-interfaces.h"
-#include "gabble-media-channel.h"
-
-static const Feature self_advertised_features[] =
-{
-  { VERSION, NS_GOOGLE_FEAT_SESSION, 0},
-  { VERSION, NS_GOOGLE_TRANSPORT_P2P, PRESENCE_CAP_GOOGLE_TRANSPORT_P2P},
-  { VERSION, NS_JINGLE, PRESENCE_CAP_JINGLE},
-
-  { BUNDLE_VOICE_V1, NS_GOOGLE_FEAT_VOICE, PRESENCE_CAP_GOOGLE_VOICE},
-  { BUNDLE_JINGLE_AUDIO, NS_JINGLE_DESCRIPTION_AUDIO, PRESENCE_CAP_JINGLE_DESCRIPTION_AUDIO},
-  { BUNDLE_JINGLE_VIDEO, NS_JINGLE_DESCRIPTION_VIDEO, PRESENCE_CAP_JINGLE_DESCRIPTION_VIDEO},
-  { NULL, NULL, 0}
-};
-
-
-
-
-GSList *
-capabilities_get_features (GabblePresenceCapabilities caps)
-{
-  GSList *features = NULL;
-  const Feature *i;
-
-  for (i = self_advertised_features; NULL != i->ns; i++)
-    if ((i->caps & caps) == i->caps)
-      features = g_slist_append (features, (gpointer) i);
-
-  return features;
-}
-
-void
-capabilities_fill_cache (GabblePresenceCache *cache)
-{
-  const Feature *feat;
-  for (feat = self_advertised_features; NULL != feat->ns; feat++)
-    {
-      gchar *node = g_strconcat (NS_GABBLE_CAPS "#", feat->bundle, NULL);
-      gabble_presence_cache_add_bundle_caps (cache,
-          node, feat->caps);
-      g_free (node);
-    }
-
-  gabble_presence_cache_add_bundle_caps (cache,
-    "http://www.google.com/xmpp/client/caps#voice-v1",
-    PRESENCE_CAP_GOOGLE_VOICE);
-}
-
-GabblePresenceCapabilities
-capabilities_get_initial_caps ()
-{
-  GabblePresenceCapabilities ret = 0;
-  const Feature *feat;
-
-  for (feat = self_advertised_features; NULL != feat->ns; feat++)
-    {
-      if (g_str_equal (feat->bundle, VERSION))
-          /* VERSION == bundle means a fixed feature, which we always advertise */
-            ret |= feat->caps;
-    }
-
-  return ret;
-}
-
-const CapabilityConversionData capabilities_conversions[] =
-{
-  { TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA, 
-  _gabble_media_channel_typeflags_to_caps_tmp,   /*_gabble_media_channel_typeflags_to_caps,*/ 
-  _gabble_media_channel_caps_to_typeflags_tmp    /*_gabble_media_channel_caps_to_typeflags*/ },
-  { NULL, NULL, NULL}
-};
-
--- a/telepathygabble/src/debug.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-/*
- * debug.c 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#include <stdarg.h>
-#include <stdio.h> // bsr 
-#include <glib.h>
-
-#include "debug.h"
-
-/*#ifdef ENABLE_DEBUG*/
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(flags,gabble_debug,GabbleDebugFlags)
-	#define flags (*GET_WSD_VAR_NAME(flags,gabble_debug,s)())
-
-	GET_STATIC_VAR_FROM_TLS(log_handler,gabble_debug,guint)
-	#define log_handler (*GET_WSD_VAR_NAME(log_handler,gabble_debug,s)())
-	
-	GET_STATIC_ARRAY_FROM_TLS(keys,gabble_debug,GDebugKey)
-	#define keys (GET_WSD_VAR_NAME(keys,gabble_debug, s)())	
-
-
-#else
-	static GabbleDebugFlags flags = 0;
-	static guint log_handler; // bsr
-	GDebugKey keys[] = {
-  { "presence",      GABBLE_DEBUG_PRESENCE },
-  { "groups",        GABBLE_DEBUG_GROUPS },
-  { "roster",        GABBLE_DEBUG_ROSTER },
-  { "disco",         GABBLE_DEBUG_DISCO },
-  { "properties",    GABBLE_DEBUG_PROPERTIES },
-  { "roomlist",      GABBLE_DEBUG_ROOMLIST },
-  { "media-channel", GABBLE_DEBUG_MEDIA },
-  { "muc",           GABBLE_DEBUG_MUC },
-  { "connection",    GABBLE_DEBUG_CONNECTION },
-  { "persist",       GABBLE_DEBUG_PERSIST },
-  { "vcard",         GABBLE_DEBUG_VCARD },
-  { 0, },
-};
-
-	
-#endif
-
-/* bsr added new */
-static void
-debug_log_handler1 (const gchar    *log_domain,
-		   GLogLevelFlags  log_level,
-		   const gchar    *message,
-		   gpointer        user_data)
-{
-	#ifdef _DEBUG
-	
-   FILE* fp;
-	
-			fp = fopen("c:\\gabblelogs.txt","a");
-	if(fp)
-	{
-		fprintf(fp,message);
-		fprintf(fp,"\n");
-		fclose(fp);
-	}
-	#endif //_DEBUG
-}
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-void gabble_debug_set_flags_from_env ()
-{
-  guint nkeys;
-  const gchar *flags_string;
-
-  for (nkeys = 0; keys[nkeys].value; nkeys++);
-
-  flags_string = g_getenv ("GABBLE_DEBUG");
-
-  if (flags_string)
-    gabble_debug_set_flags (g_parse_debug_string (flags_string, keys, nkeys));
-    
-  // bsr
-  	log_handler = g_log_set_handler (NULL, 0xFF, 
-			   debug_log_handler1, NULL);    
-}
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-void gabble_debug_set_flags (GabbleDebugFlags new_flags)
-{
-  flags |= new_flags;
-}
-
-
-gboolean gabble_debug_flag_is_set (GabbleDebugFlags flag)
-{
-  return flag & flags;
-}
-
-void gabble_debug (GabbleDebugFlags flag,
-                   const gchar *format,
-                   ...)
-{
-  if (flag & flags)
-    {
-      va_list args;
-      va_start (args, format);
-      g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, format, args);
-      va_end (args);
-    }
-}
-
-/*#endif /* ENABLE_DEBUG */
-
--- a/telepathygabble/src/disco.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,981 +0,0 @@
-/*
- * gabble-media-stream-glue.h
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
-
- */
-
-
-
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-#include <stdlib.h>
-#include <string.h>
-#include "loudmouth/loudmouth.h"
-
-#include "debug.h"
-#include "disco.h"
-#include "gabble-connection.h"
-#include "gabble-error.h"
-#include "namespaces.h"
-#include "telepathy-helpers.h"
-#include "util.h"
-#include "search-keys-info.h"
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(quark,gabble_disco,GQuark)
-	#define quark (*GET_WSD_VAR_NAME(quark,gabble_disco,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(gabble_disco_parent_class,gabble_disco,gpointer)
-	#define gabble_disco_parent_class (*GET_WSD_VAR_NAME(gabble_disco_parent_class,gabble_disco,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_disco,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_disco,s)())
-	
-	
-	
-static void gabble_disco_init (GabbleDisco *self); 
-static void gabble_disco_class_init (GabbleDiscoClass *klass); 
-static void gabble_disco_class_intern_init (gpointer klass) 
-{ 
-gabble_disco_parent_class = g_type_class_peek_parent (klass); 
-gabble_disco_class_init ((GabbleDiscoClass*) klass); 
-} 
-EXPORT_C GType gabble_disco_get_type (void) 
-{ 
-
-if ((g_define_type_id == 0)) 
-{ 
-static const GTypeInfo g_define_type_info = 
-	{ sizeof (GabbleDiscoClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_disco_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleDisco), 0, (GInstanceInitFunc) gabble_disco_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleDisco"), &g_define_type_info, (GTypeFlags) 0); { {} ; } } return g_define_type_id; 
-	} ;
-
-
-#endif
-
-
-#define DBUS_API_SUBJECT_TO_CHANGE
-#define DEBUG_FLAG GABBLE_DEBUG_DISCO
-#define DEFAULT_REQUEST_TIMEOUT 20000
-#define DISCO_PIPELINE_SIZE 10
-
-
-/* Properties */
-enum
-{
-  PROP_CONNECTION = 1,
-  LAST_PROPERTY
-};
-
-#ifndef EMULATOR
-G_DEFINE_TYPE(GabbleDisco, gabble_disco, G_TYPE_OBJECT);
-#endif
-
-typedef struct _GabbleDiscoPrivate GabbleDiscoPrivate;
-struct _GabbleDiscoPrivate
-{
-  GabbleConnection *connection;
-  GSList *service_cache;
-  GList *requests;
-  gboolean dispose_has_run;
-};
-
-struct _GabbleDiscoRequest
-{
-  GabbleDisco *disco;
-  guint timer_id;
-
-  GabbleDiscoType type;
-  gchar *jid;
-  gchar *node;
-  GabbleDiscoCb callback;
-  gpointer user_data;
-  GObject *bound_object;
-};
-
-GQuark
-gabble_disco_error_quark (void)
-{
-
-#ifndef EMULATOR
-  static GQuark quark = 0;
-#endif
-
-  if (!quark)
-    quark = g_quark_from_static_string ("gabble-disco-error");
-  return quark;
-}
-
-#define GABBLE_DISCO_GET_PRIVATE(o)     ((GabbleDiscoPrivate*)((o)->priv));
-
-
-
-
-
-
-static void
-gabble_disco_init (GabbleDisco *obj)
-{
-  GabbleDiscoPrivate *priv =
-     G_TYPE_INSTANCE_GET_PRIVATE (obj, GABBLE_TYPE_DISCO, GabbleDiscoPrivate);
-  obj->priv = priv;
-}
-
-
-
-
-static GObject *gabble_disco_constructor (GType type, guint n_props,
-    GObjectConstructParam *props);
-static void gabble_disco_set_property (GObject *object, guint property_id,
-    const GValue *value, GParamSpec *pspec);
-static void gabble_disco_get_property (GObject *object, guint property_id,
-    GValue *value, GParamSpec *pspec);
-static void gabble_disco_dispose (GObject *object);
-static void gabble_disco_finalize (GObject *object);
-
-static void
-gabble_disco_class_init (GabbleDiscoClass *gabble_disco_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_disco_class);
-  GParamSpec *param_spec;  
-  
-  g_type_class_add_private (gabble_disco_class, sizeof (GabbleDiscoPrivate));
-
-  object_class->constructor = gabble_disco_constructor;
-
-  object_class->get_property = gabble_disco_get_property;
-  object_class->set_property = gabble_disco_set_property;
-
-  object_class->dispose = gabble_disco_dispose;
-  object_class->finalize = gabble_disco_finalize;
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "XMPP Discovery object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-}
-
-static void
-gabble_disco_get_property (GObject    *object,
-                                guint       property_id,
-                                GValue     *value,
-                                GParamSpec *pspec)
-{
-  GabbleDisco *chan = GABBLE_DISCO (object);
-  GabbleDiscoPrivate *priv = GABBLE_DISCO_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->connection);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_disco_set_property (GObject     *object,
-                           guint        property_id,
-                           const GValue *value,
-                           GParamSpec   *pspec)
-{
-  GabbleDisco *chan = GABBLE_DISCO (object);
-  GabbleDiscoPrivate *priv = GABBLE_DISCO_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      priv->connection = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void gabble_disco_conn_status_changed_cb (GabbleConnection *conn,
-    TpConnectionStatus status, TpConnectionStatusReason reason, gpointer data);
-
-static GObject *
-gabble_disco_constructor (GType type, guint n_props,
-                          GObjectConstructParam *props)
-{
-  GObject *obj;
-  GabbleDisco *disco;
-  GabbleDiscoPrivate *priv;
-
-  obj = G_OBJECT_CLASS (gabble_disco_parent_class)-> constructor (type,
-      n_props, props);
-  disco = GABBLE_DISCO (obj);
-  priv = GABBLE_DISCO_GET_PRIVATE (disco);
-
-  g_signal_connect (priv->connection, "status-changed",
-      G_CALLBACK (gabble_disco_conn_status_changed_cb), disco);
-
-  return obj;
-}
-
-static void cancel_request (GabbleDiscoRequest *request);
-
-void
-gabble_disco_dispose (GObject *object)
-{
-  GSList *l;
-  DBusGProxy *bus_proxy;
-
-  GabbleDisco *self = GABBLE_DISCO (object);
-  GabbleDiscoPrivate *priv = GABBLE_DISCO_GET_PRIVATE (self);
-  bus_proxy = tp_get_bus_proxy ();
-
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  gabble_debug (DEBUG_FLAG, "dispose called");
-
-  /* cancel request removes the element from the list after cancelling */
-  while (priv->requests)
-    cancel_request (priv->requests->data);
-
-  for (l = priv->service_cache; l; l = g_slist_next (l))
-    {
-      GabbleDiscoItem *item = (GabbleDiscoItem *) l->data;
-      g_free ((char *) item->jid);
-      g_free ((char *) item->name);
-      g_free ((char *) item->type);
-      g_free ((char *) item->category);
-      g_hash_table_destroy (item->features);
-      g_free (item);
-    }
-
-  g_slist_free (priv->service_cache);
-  priv->service_cache = NULL;
-
-  if (G_OBJECT_CLASS (gabble_disco_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_disco_parent_class)->dispose (object);
-}
-
-void
-gabble_disco_finalize (GObject *object)
-{
-  gabble_debug (DEBUG_FLAG, "called with %p", object);
-
-  G_OBJECT_CLASS (gabble_disco_parent_class)->finalize (object);
-}
-
-/**
- * gabble_disco_new:
- * @conn: The #GabbleConnection to use for service discovery
- *
- * Creates an object to use for Jabber service discovery (DISCO)
- * There should be one of these per connection
- */
-GabbleDisco *
-gabble_disco_new (GabbleConnection *conn)
-{
-  GabbleDisco *disco;
-
-  g_return_val_if_fail (GABBLE_IS_CONNECTION (conn), NULL);
-
-  disco = GABBLE_DISCO (g_object_new (GABBLE_TYPE_DISCO,
-        "connection", conn,
-        NULL));
-
-  return disco;
-}
-
-
-static void notify_delete_request (gpointer data, GObject *obj);
-
-static void
-delete_request (GabbleDiscoRequest *request)
-{
-  GabbleDisco *disco = request->disco;
-  GabbleDiscoPrivate *priv;
-
-  g_assert (NULL != request);
-    /* fix: Application Crashed: Main */
-  if ( disco == NULL )
-      {
-      g_debug ("%s: accesing after dereferenced connection", G_STRFUNC);
-      return;
-      }
-  g_assert (GABBLE_IS_DISCO (disco));
-
-  priv = GABBLE_DISCO_GET_PRIVATE (disco);
-
-  g_assert (NULL != g_list_find (priv->requests, request));
-
-  priv->requests = g_list_remove (priv->requests, request);
-
-  if (NULL != request->bound_object)
-    {
-      g_object_weak_unref (request->bound_object, notify_delete_request, request);
-    }
-
-  if (0 != request->timer_id)
-    {
-      g_source_remove (request->timer_id);
-    }
-
-  g_free (request->jid);
-  g_free (request);
-}
-
-static gboolean
-timeout_request (gpointer data)
-{
-  GabbleDiscoRequest *request = (GabbleDiscoRequest*) data;
-  GError *err;
-  g_return_val_if_fail (data != NULL, FALSE);
-
-  err = g_error_new (GABBLE_DISCO_ERROR, GABBLE_DISCO_ERROR_TIMEOUT,
-      "Request for %s on %s timed out",
-      (request->type == GABBLE_DISCO_TYPE_INFO)?"info":"items",
-      request->jid);
-  (request->callback)(request->disco, request, request->jid, request->node,
-                      NULL, err, request->user_data);
-  g_error_free (err);
-
-  request->timer_id = 0;
-  delete_request (request);
-  return FALSE;
-}
-
-static void
-cancel_request (GabbleDiscoRequest *request)
-{
-  GError *err;
-
-  g_assert (request != NULL);
-
-  err = g_error_new (GABBLE_DISCO_ERROR, GABBLE_DISCO_ERROR_CANCELLED,
-      "Request for %s on %s cancelled",
-      (request->type == GABBLE_DISCO_TYPE_INFO)?"info":"items",
-      request->jid);
-  (request->callback)(request->disco, request, request->jid, request->node,
-                      NULL, err, request->user_data);
-  g_error_free (err);
-
-  delete_request (request);
-}
-
-static LmHandlerResult
-request_reply_cb (GabbleConnection *conn, LmMessage *sent_msg,
-                  LmMessage *reply_msg, GObject *object, gpointer user_data)
-{
-  LmMessageNode *query_node;
-  GError *err = NULL;
-
-  GabbleDiscoRequest *request = (GabbleDiscoRequest*) user_data;
-  GabbleDisco *disco = GABBLE_DISCO (object);
-  GabbleDiscoPrivate *priv = GABBLE_DISCO_GET_PRIVATE (disco);
-
-  g_assert (request);
-
-  if (!g_list_find (priv->requests, request))
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-  query_node = lm_message_node_get_child (reply_msg->node, "query");
-
-  if (lm_message_get_sub_type (reply_msg) == LM_MESSAGE_SUB_TYPE_ERROR)
-    {
-      LmMessageNode *error_node;
-
-      error_node = lm_message_node_get_child (reply_msg->node, "error");
-      if (error_node)
-        {
-          err = gabble_xmpp_error_to_g_error (
-              gabble_xmpp_error_from_node (error_node));
-        }
-
-      if (err == NULL)
-        {
-          err = g_error_new (GABBLE_DISCO_ERROR,
-                             GABBLE_DISCO_ERROR_UNKNOWN,
-                             "an unknown error occurred");
-        }
-    }
-  else if (NULL == query_node)
-    {
-      err = g_error_new (GABBLE_DISCO_ERROR, GABBLE_DISCO_ERROR_UNKNOWN,
-          "disco response contained no <query> node");
-    }
-
-  request->callback (request->disco, request, request->jid, request->node,
-                     query_node, err, request->user_data);
-  delete_request (request);
-
-  if (err)
-    g_error_free (err);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static void
-notify_delete_request (gpointer data, GObject *obj)
-{
-  GabbleDiscoRequest *request = (GabbleDiscoRequest *) data;
-  request->bound_object = NULL;
-  delete_request (request);
-}
-
-/**
- * gabble_disco_request:
- * @self: #GabbleDisco object to use for request
- * @type: type of request
- * @jid: Jabber ID to request on
- * @node: node to request on @jid, or NULL
- * @callback: #GabbleDiscoCb to call on request fullfilment
- * @object: GObject to bind request to. the callback will not be
- *          called if this object has been unrefed. NULL if not needed
- * @error: #GError to return a telepathy error in if unable to make
- *         request, NULL if unneeded.
- *
- * Make a disco request on the given jid with the default timeout.
- */
-GabbleDiscoRequest *
-gabble_disco_request (GabbleDisco *self, GabbleDiscoType type,
-                      const gchar *jid, const char *node,
-                      GabbleDiscoCb callback, gpointer user_data,
-                      GObject *object, GError **error)
-{
-  return gabble_disco_request_with_timeout (self, type, jid, node,
-                                            DEFAULT_REQUEST_TIMEOUT,
-                                            callback, user_data,
-                                            object, error);
-}
-
-/**
- * gabble_disco_request_with_timeout:
- * @self: #GabbleDisco object to use for request
- * @type: type of request
- * @jid: Jabber ID to request on
- * @node: node to request on @jid, or NULL
- * @timeout: the time until the request fails, in milliseconds (1/1000ths of a second)
- * @callback: #GabbleDiscoCb to call on request fullfilment
- * @object: GObject to bind request to. the callback will not be
- *          called if this object has been unrefed. NULL if not needed
- * @error: #GError to return a telepathy error in if unable to make
- *         request, NULL if unneeded.
- *
- * Make a disco request on the given jid, which will fail unless a reply
- * is received within the given timeout interval.
- */
-GabbleDiscoRequest *
-gabble_disco_request_with_timeout (GabbleDisco *self, GabbleDiscoType type,
-                                   const gchar *jid, const char *node,
-                                   guint timeout, GabbleDiscoCb callback,
-                                   gpointer user_data, GObject *object,
-                                   GError **error)
-{
-  const gchar *xmlns;
-
-  LmMessage *msg;
-  LmMessageNode *lm_node;
-  GabbleDiscoRequest *request;
-  GabbleDiscoPrivate *priv = GABBLE_DISCO_GET_PRIVATE (self);
-
-
-  request = g_new0 (GabbleDiscoRequest, 1);
-  request->disco = self;
-  request->type = type;
-  request->jid = g_strdup (jid);
-  if (node)
-    request->node = g_strdup (node);
-  request->callback = callback;
-  request->user_data = user_data;
-  request->bound_object = object;
-
-  if (NULL != object)
-    g_object_weak_ref (object, notify_delete_request, request);
-
-  gabble_debug (DEBUG_FLAG, "Creating disco request %p for %s",
-           request, request->jid);
-
-  priv->requests = g_list_prepend (priv->requests, request);
-  msg = lm_message_new_with_sub_type (jid, LM_MESSAGE_TYPE_IQ,
-                                           LM_MESSAGE_SUB_TYPE_GET);
-  lm_node = lm_message_node_add_child (msg->node, "query", NULL);
-
-  switch (type) {
-    case GABBLE_DISCO_TYPE_INFO:
-      xmlns = NS_DISCO_INFO;
-      break;
-    case GABBLE_DISCO_TYPE_ITEMS:
-      xmlns = NS_DISCO_ITEMS;
-      break;
-    default:
-      g_assert_not_reached ();
-      return NULL;
-  }
-
-  lm_message_node_set_attribute (lm_node, "xmlns", xmlns);
-
-  if (node)
-    {
-      lm_message_node_set_attribute (lm_node, "node", node);
-    }
-
-  if (! _gabble_connection_send_with_reply (priv->connection, msg,
-        request_reply_cb, G_OBJECT(self), request, error))
-    {
-      delete_request (request);
-      lm_message_unref (msg);
-      return NULL;
-    }
-  else
-    {
-      request->timer_id =
-          g_timeout_add (timeout, timeout_request, request);
-      lm_message_unref (msg);
-      return request;
-    }
-}
-
-void
-gabble_disco_cancel_request (GabbleDisco *disco, GabbleDiscoRequest *request)
-{
-  GabbleDiscoPrivate *priv;
-
-  g_return_if_fail (GABBLE_IS_DISCO (disco));
-  g_return_if_fail (NULL != request);
-
-  priv = GABBLE_DISCO_GET_PRIVATE (disco);
-
-  g_return_if_fail (NULL != g_list_find (priv->requests, request));
-
-  cancel_request (request);
-}
-
-/* Disco pipeline */
-
-
-typedef struct _GabbleDiscoPipeline GabbleDiscoPipeline;
-struct _GabbleDiscoPipeline {
-    GabbleDisco *disco;
-    gpointer user_data;
-    GabbleDiscoPipelineCb callback;
-    GabbleDiscoEndCb end_callback;
-    GPtrArray *disco_pipeline;
-    GHashTable *remaining_items;
-    GabbleDiscoRequest *list_request;
-    gboolean running;
-};
-
-static void
-gabble_disco_fill_pipeline (GabbleDisco *disco, GabbleDiscoPipeline *pipeline);
-
-static void
-item_info_cb (GabbleDisco *disco,
-              GabbleDiscoRequest *request,
-              const gchar *jid,
-              const gchar *node,
-              LmMessageNode *result,
-              GError *error,
-              gpointer user_data)
-{
-  LmMessageNode *identity, *feature, *field, *value_node;
-  const char *category, *type, *var, *name, *value;
-  GHashTable *keys;
-  GabbleDiscoItem item;
-
-  GabbleDiscoPipeline *pipeline = (GabbleDiscoPipeline *) user_data;
-  GabbleDiscoPrivate *priv = GABBLE_DISCO_GET_PRIVATE (disco);
-
-  g_ptr_array_remove_fast (pipeline->disco_pipeline, request);
-
-  if (error)
-    {
-      gabble_debug (DEBUG_FLAG, "got error %s", error->message);
-      goto done;
-    }
-
-  identity = lm_message_node_get_child (result, "identity");
-  if (NULL == identity)
-    goto done;
-
-  name = lm_message_node_get_attribute (identity, "name");
-  if (NULL == name)
-    goto done;
-
-  category = lm_message_node_get_attribute (identity, "category");
-  if (NULL == category)
-    goto done;
-
-  type = lm_message_node_get_attribute (identity, "type");
-  if (NULL == type)
-    goto done;
-
-  gabble_debug (DEBUG_FLAG, "got item identity, jid=%s, name=%s, category=%s, type=%s",
-      jid, name, category, type);
-
-  keys = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-
-  for (feature = result->children; feature; feature = feature->next)
-    {
-      if (0 == strcmp (feature->name, "feature"))
-        {
-          var = lm_message_node_get_attribute (feature, "var");
-          if (0 == strcmp (var, NS_SEARCH))
-	          {
-	          priv->connection->features |= GABBLE_CONNECTION_FEATURES_SEARCH;
-	          get_search_keys_info(priv->connection,jid);	
-	          }
-          if (var)
-            g_hash_table_insert (keys, g_strdup (var), NULL);
-        }
-      else if (0 == strcmp (feature->name, "x"))
-        {
-          if (lm_message_node_has_namespace (feature, NS_X_DATA, NULL))
-            {
-              for (field = feature->children;
-                   field; field = field->next)
-                {
-                  if (0 != strcmp (field->name, "field"))
-                    continue;
-
-                  var = lm_message_node_get_attribute (field, "var");
-                  if (NULL == var)
-                    continue;
-
-                  value_node = lm_message_node_get_child (field, "value");
-                  if (NULL == value_node)
-                    continue;
-
-                  value = lm_message_node_get_value (value_node);
-                  if (NULL == value)
-                    continue;
-
-                  g_hash_table_insert (keys, g_strdup (var), g_strdup (value));
-                }
-            }
-        }
-    }
-
-  item.jid = jid;
-  item.name = name;
-  item.category = category;
-  item.type = type;
-  item.features = keys;
-
-  pipeline->callback (pipeline, &item, pipeline->user_data);
-  g_hash_table_destroy (keys);
-
-done:
-  gabble_disco_fill_pipeline (disco, pipeline);
-
-  return;
-}
-
-
-static gboolean
-return_true (gpointer key, gpointer value, gpointer data)
-{
-  return TRUE;
-}
-
-static void
-gabble_disco_fill_pipeline (GabbleDisco *disco, GabbleDiscoPipeline *pipeline)
-{
-  if (!pipeline->running)
-    {
-      gabble_debug (DEBUG_FLAG, "pipeline not running, not refilling");
-    }
-  else
-    {
-      /* send disco requests for the JIDs in the remaining_items hash table
-       * until there are DISCO_PIPELINE_SIZE requests in progress */
-      while (pipeline->disco_pipeline->len < DISCO_PIPELINE_SIZE)
-        {
-          gchar *jid;
-          GabbleDiscoRequest *request;
-
-          jid = (gchar *) g_hash_table_find (pipeline->remaining_items,
-              return_true, NULL);
-          if (NULL == jid)
-            break;
-
-          request = gabble_disco_request (disco,
-              GABBLE_DISCO_TYPE_INFO, jid, NULL, item_info_cb, pipeline,
-              G_OBJECT(disco), NULL);
-
-          g_ptr_array_add (pipeline->disco_pipeline, request);
-
-          /* frees jid */
-          g_hash_table_remove (pipeline->remaining_items, jid);
-        }
-
-      if (0 == pipeline->disco_pipeline->len)
-        {
-          /* signal that the pipeline has finished */
-          pipeline->running = FALSE;
-          pipeline->end_callback (pipeline, pipeline->user_data);
-        }
-    }
-}
-
-
-static void
-disco_items_cb (GabbleDisco *disco,
-          GabbleDiscoRequest *request,
-          const gchar *jid,
-          const gchar *node,
-          LmMessageNode *result,
-          GError *error,
-          gpointer user_data)
-{
-  LmMessageNode *iter;
-  const char *item_jid;
-  gpointer key, value;
-  GabbleDiscoPipeline *pipeline = (GabbleDiscoPipeline *) user_data;
-
-  pipeline->list_request = NULL;
-
-  if (error)
-    {
-      gabble_debug (DEBUG_FLAG, "Got error on items request: %s", error->message);
-      goto out;
-    }
-
-  iter = result->children;
-
-  for (; iter; iter = iter->next)
-    {
-      if (0 != strcmp (iter->name, "item"))
-        continue;
-
-      item_jid = lm_message_node_get_attribute (iter, "jid");
-
-      if (NULL != item_jid &&
-          !g_hash_table_lookup_extended (pipeline->remaining_items, item_jid, &key, &value))
-        {
-          gchar *tmp = g_strdup (item_jid);
-          gabble_debug (DEBUG_FLAG, "discovered service item: %s", tmp);
-          g_hash_table_insert (pipeline->remaining_items, tmp, tmp);
-        }
-    }
-
-out:
-  gabble_disco_fill_pipeline (disco, pipeline);
-}
-
-/**
- * gabble_disco_pipeline_init:
- * @disco: disco object to use in the pipeline
- * @callback: GFunc to call on request fullfilment
- * @user_data: the usual
- *
- * Prepares the pipeline for making the ITEM request on the server and
- * subsequent INFO elements on returned items.
- *
- * GabbleDiscoPipeline is opaque structure for the user.
- */
-gpointer gabble_disco_pipeline_init (GabbleDisco *disco,
-                                     GabbleDiscoPipelineCb callback,
-                                     GabbleDiscoEndCb end_callback,
-                                     gpointer user_data)
-{
-  GabbleDiscoPipeline *pipeline = g_new (GabbleDiscoPipeline, 1);
-  pipeline->user_data = user_data;
-  pipeline->callback = callback;
-  pipeline->end_callback = end_callback;
-  pipeline->disco_pipeline = g_ptr_array_sized_new (DISCO_PIPELINE_SIZE);
-  pipeline->remaining_items = g_hash_table_new_full (g_str_hash, g_str_equal,
-      g_free, NULL);
-  pipeline->running = TRUE;
-  pipeline->disco = disco;
-
-  return pipeline;
-}
-
-/**
- * gabble_disco_pipeline_run:
- * @self: reference to the pipeline structure
- * @server: server to query
- *
- * Makes ITEMS request on the server, and afterwards queries for INFO
- * on each item. INFO queries are pipelined. The item properties are stored
- * in hash table parameter to the callback function. The user is responsible
- * for destroying the hash table after it's done with.
- *
- * Upon returning all the results, the end_callback is called with
- * reference to the pipeline.
- */
-void
-gabble_disco_pipeline_run (gpointer self, const char *server)
-{
-  GabbleDiscoPipeline *pipeline = (GabbleDiscoPipeline *) self;
-
-  pipeline->running = TRUE;
-
-  pipeline->list_request = gabble_disco_request (pipeline->disco,
-      GABBLE_DISCO_TYPE_ITEMS, server, NULL, disco_items_cb, pipeline,
-      G_OBJECT (pipeline->disco), NULL);
-}
-
-
-/**
- * gabble_disco_pipeline_cancel:
- * @pipeline: pipeline to cancel
- *
- * Flushes the pipeline (cancels all pending disco requests) and
- * destroys it.
- */
-void
-gabble_disco_pipeline_destroy (gpointer self)
-{
-  GabbleDiscoPipeline *pipeline = (GabbleDiscoPipeline *) self;
-
-  pipeline->running = FALSE;
-
-  if (pipeline->list_request != NULL)
-    {
-      gabble_disco_cancel_request (pipeline->disco, pipeline->list_request);
-      pipeline->list_request = NULL;
-    }
-
-  /* iterate using a while loop otherwise we're modifying
-   * the array as we iterate it, and miss things! */
-  while (pipeline->disco_pipeline->len > 0)
-    {
-      GabbleDiscoRequest *request =
-        g_ptr_array_index (pipeline->disco_pipeline, 0);
-      gabble_disco_cancel_request (pipeline->disco, request);
-    }
-
-  g_hash_table_destroy (pipeline->remaining_items);
-  g_ptr_array_free (pipeline->disco_pipeline, TRUE);
-  g_free (pipeline);
-}
-
-
-static void
-service_feature_copy_one (gpointer k, gpointer v, gpointer user_data)
-{
-  char *key = (char *) k;
-  char *value = (char *) v;
-
-  GHashTable *target = (GHashTable *) user_data;
-  g_hash_table_insert (target, g_strdup (key), g_strdup (value));
-}
-
-/* Service discovery */
-static void
-services_cb (gpointer pipeline, GabbleDiscoItem *item, gpointer user_data)
-{
-  GabbleDiscoItem *my_item = g_new0 (GabbleDiscoItem, 1);
-
-  GabbleDisco *disco = GABBLE_DISCO (user_data);
-  GabbleDiscoPrivate *priv = GABBLE_DISCO_GET_PRIVATE (disco);
-
-  my_item->jid = g_strdup (item->jid);
-  my_item->name = g_strdup (item->name);
-  my_item->type = g_strdup (item->type);
-  my_item->category = g_strdup (item->category);
-
-  my_item->features = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
-  g_hash_table_foreach  (item->features, service_feature_copy_one, my_item->features);
-
-  priv->service_cache = g_slist_prepend (priv->service_cache, my_item);
-}
-
-static void
-end_cb (gpointer pipeline, gpointer user_data)
-{
-  GabbleDisco *disco = GABBLE_DISCO (user_data);
-  GabbleDiscoPrivate *priv = GABBLE_DISCO_GET_PRIVATE (disco);
-
-  gabble_disco_pipeline_destroy (pipeline);
-  priv->service_cache = g_slist_reverse (priv->service_cache);
-
-  /* FIXME - service discovery done - signal that somehow */
-}
-
-static void
-gabble_disco_conn_status_changed_cb (GabbleConnection *conn,
-                                     TpConnectionStatus status,
-                                     TpConnectionStatusReason reason,
-                                     gpointer data)
-{
-  GabbleDisco *disco = GABBLE_DISCO (data);
-  GabbleDiscoPrivate *priv = GABBLE_DISCO_GET_PRIVATE (disco);
-
-  if (status == TP_CONN_STATUS_CONNECTED)
-    {
-      char *server;
-      gpointer pipeline = gabble_disco_pipeline_init (disco, services_cb,
-          end_cb, disco);
-
-      g_object_get (priv->connection, "stream-server", &server, NULL);
-
-      g_assert (server != NULL);
-
-      gabble_debug (DEBUG_FLAG, "connected, initiating service discovery on %s", server);
-      gabble_disco_pipeline_run (pipeline, server);
-
-      g_free (server);
-    }
-}
-
-const GabbleDiscoItem *
-gabble_disco_service_find (GabbleDisco *disco,
-                           const char *type,
-                           const char *category,
-                           const char *feature)
-{
-  GabbleDiscoPrivate *priv;
-  GSList *l;
-
-  g_assert (GABBLE_IS_DISCO (disco));
-  priv = GABBLE_DISCO_GET_PRIVATE (disco);
-
-  for (l = priv->service_cache; l; l = g_slist_next (l))
-    {
-      GabbleDiscoItem *item = (GabbleDiscoItem *) l->data;
-      gboolean selected = TRUE;
-
-      if (type != NULL && g_strdiff (type, item->type))
-        selected = FALSE;
-
-      if (category != NULL && g_strdiff (category, item->category))
-        selected = FALSE;
-
-      if (feature != NULL)
-        {
-          gpointer k, v;
-          if (!g_hash_table_lookup_extended (item->features, feature, &k, &v))
-            selected = FALSE;
-        }
-
-      if (selected)
-        return item;
-    }
-
-  return NULL;
-}
--- a/telepathygabble/src/exegabble.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-/*
- * gabble.h - entry point and utility functions for telepathy-gabble
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include "config.h"
-
-#include <dbus/dbus-glib.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#ifdef HAVE_EXECINFO_H
-#include <execinfo.h>
-#endif /* HAVE_EXECINFO_H */
-
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif /* HAVE_SIGNAL_H */
-
-#include "debug.h"
-#include "gabble-connection-manager.h"
-#include "telepathy-errors.h"
-#include "telepathy-errors-enumtypes.h"
-
-GSource *timeout = NULL;
-GMainLoop *mainloop = NULL;
-GabbleConnectionManager *manager = NULL;
-gboolean connections_exist = FALSE;
-guint timeout_id;
-
-#define DIE_TIME 5000
-
-static gboolean
-kill_connection_manager (gpointer data)
-{
-#ifdef ENABLE_DEBUG
-  if (!gabble_debug_flag_is_set (GABBLE_DEBUG_PERSIST) && !connections_exist)
-#else
-  if (!connections_exist)
-#endif
-    {
-      g_debug ("no connections, and timed out");
-      g_object_unref (manager);
-      g_main_loop_quit (mainloop);
-    }
-
-  timeout_id = 0;
-  return FALSE;
-}
-
-static void
-new_connection (GabbleConnectionManager *conn,
-                gchar *bus_name,
-                gchar *object_path,
-                gchar *proto)
-{
-  connections_exist = TRUE;
-
-  if (0 != timeout_id)
-    {
-      g_source_remove (timeout_id);
-    }
-}
-
-static void
-no_more_connections (GabbleConnectionManager *conn)
-{
-  connections_exist = FALSE;
-
-  if (0 != timeout_id)
-    {
-      g_source_remove (timeout_id);
-    }
-
-  timeout_id = g_timeout_add (DIE_TIME, kill_connection_manager, NULL);
-}
-
-#ifdef ENABLE_BACKTRACE
-static void
-print_backtrace (void)
-{
-#if defined (HAVE_BACKTRACE) && defined (HAVE_BACKTRACE_SYMBOLS_FD)
-  void *array[20];
-  size_t size;
-
-#define MSG "\n########## Backtrace (version " VERSION ") ##########\n"
-  write (STDERR_FILENO, MSG, strlen (MSG));
-#undef MSG
-
-  size = backtrace (array, 20);
-  backtrace_symbols_fd (array, size, STDERR_FILENO);
-#endif /* HAVE_BACKTRACE && HAVE_BACKTRACE_SYMBOLS_FD */
-}
-
-static void
-critical_handler (const gchar *log_domain,
-                  GLogLevelFlags log_level,
-                  const gchar *message,
-                  gpointer user_data)
-{
-  g_log_default_handler (log_domain, log_level, message, user_data);
-  print_backtrace ();
-}
-
-#ifdef HAVE_SIGNAL
-static void
-segv_handler (int sig)
-{
-#define MSG "caught SIGSEGV\n"
-  write (STDERR_FILENO, MSG, strlen (MSG));
-#undef MSG
-
-  print_backtrace ();
-  abort ();
-}
-#endif /* HAVE_SIGNAL */
-
-#endif /* ENABLE_BACKTRACE */
-
-static void
-add_signal_handlers (void)
-{
-#if defined(HAVE_SIGNAL) && defined(ENABLE_BACKTRACE)
-  signal (SIGSEGV, segv_handler);
-#endif /* HAVE_SIGNAL && ENABLE_BACKTRACE */
-}
-
-int
-main (int argc,
-      char **argv)
-{
-  add_signal_handlers ();
-
-  g_type_init();
-
-  g_set_prgname("telepathy-gabble");
-
-/* bsr #ifdef ENABLE_DEBUG*/
-  gabble_debug_set_flags_from_env ();
-
-  if (g_getenv ("GABBLE_PERSIST"))
-    gabble_debug_set_flags (0xffff);
-/*#endif bsr */
-
-    {
-      GLogLevelFlags fatal_mask;
-
-      fatal_mask = g_log_set_always_fatal (G_LOG_FATAL_MASK);
-      fatal_mask |= G_LOG_LEVEL_CRITICAL;
-      g_log_set_always_fatal (fatal_mask);
-
-#ifdef ENABLE_BACKTRACE
-      g_log_set_handler ("GLib-GObject",
-          G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_ERROR |
-          G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
-          critical_handler, NULL);
-      g_log_set_handler ("GLib",
-          G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_ERROR |
-          G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
-          critical_handler, NULL);
-      g_log_set_handler (NULL,
-          G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_ERROR |
-          G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
-          critical_handler, NULL);
-#endif /* ENABLE_BACKTRACE */
-    }
-
-  g_message("before gabble mainloop new \n");
-  getchar();
-  exit(1);
-  mainloop = g_main_loop_new (NULL, FALSE);
-
-  dbus_g_error_domain_register (TELEPATHY_ERRORS,
-      "org.freedesktop.Telepathy.Error", TELEPATHY_TYPE_ERRORS);
-
-  manager = g_object_new (GABBLE_TYPE_CONNECTION_MANAGER, NULL);
-
-  g_signal_connect (manager, "new-connection",
-      (GCallback) new_connection, NULL);
-
-  g_signal_connect (manager, "no-more-connections",
-      (GCallback) no_more_connections, NULL);
-
-  g_message("calling gabble_connection_manager_register \n");
-  _gabble_connection_manager_register (manager);
-
-  g_message("started version " VERSION);
-
-  //timeout_id = g_timeout_add (DIE_TIME, kill_connection_manager, NULL);
-
-  g_main_loop_run (mainloop);
-
-  return 0;
-}
--- a/telepathygabble/src/gabble-connection-manager-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
- * gabble-connection-manager-signals-marshal.c 
- *  Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:STRING,STRING,STRING (gabble-connection-manager-signals-marshal.list:1) */
-void
-gabble_connection_manager_marshal_VOID__STRING_STRING_STRING (GClosure     *closure,
-                                                              GValue       *return_value,
-                                                              guint         n_param_values,
-                                                              const GValue *param_values,
-                                                              gpointer      invocation_hint,
-                                                              gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_STRING_STRING) (gpointer     data1,
-                                                           gpointer     arg_1,
-                                                           gpointer     arg_2,
-                                                           gpointer     arg_3,
-                                                           gpointer     data2);
-                                                            
-  register GMarshalFunc_VOID__STRING_STRING_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_STRING_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_string (param_values + 2),
-            g_marshal_value_peek_string (param_values + 3),
-            data2);
-}
-
--- a/telepathygabble/src/gabble-connection-manager.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,705 +0,0 @@
-/*
- * gabble-connection-manager.c - Source for GabbleConnectionManager
- * Copyright (C) 2005 Collabora Ltd.
- *  and/or its subsidiary/subsidiaries. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-protocol.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "gabble-connection.h"
-#include "telepathy-constants.h"
-#include "telepathy-errors.h"
-#include "telepathy-helpers.h"
-
-#include "gabble-connection-manager.h"
-#include "gabble-connection-manager-glue.h"
-#include "gabble-connection-manager-signals-marshal.h"
-
-#include "gabble_enums.h"
-
-#define TP_TYPE_PARAM (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_STRING, \
-      G_TYPE_UINT, \
-      G_TYPE_STRING, \
-      G_TYPE_VALUE, \
-      G_TYPE_INVALID))
-
-#ifndef EMULATOR
-G_DEFINE_TYPE(GabbleConnectionManager, gabble_connection_manager, G_TYPE_OBJECT)
-#endif
-
-
-/* signal enum */
-enum
-{
-    NEW_CONNECTION,
-    NO_MORE_CONNECTIONS,
-    LAST_SIGNAL 
-#ifdef EMULATOR    
-    = LAST_SIGNAL_CON_MGR
-#endif
-    
-};
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_conmgr,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_conmgr, s)())
-	
-	GET_STATIC_VAR_FROM_TLS(ssl,gabble_conmgr,gboolean)
-	#define ssl (*GET_WSD_VAR_NAME(ssl,gabble_conmgr,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(httpport,gabble_conmgr,guint)
-	#define httpport (*GET_WSD_VAR_NAME(httpport,gabble_conmgr,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(httpproxyport,gabble_conmgr,guint)
-	#define httpproxyport (*GET_WSD_VAR_NAME(httpproxyport,gabble_conmgr,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(gabble_connection_manager_parent_class,gabble_conmgr,gpointer)
-	#define gabble_connection_manager_parent_class (*GET_WSD_VAR_NAME(gabble_connection_manager_parent_class,gabble_conmgr,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_conmgr,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_conmgr,s)())
-	
-	
-static void gabble_connection_manager_init (GabbleConnectionManager *self); 
-static void gabble_connection_manager_class_init (GabbleConnectionManagerClass *klass); 
-static void gabble_connection_manager_class_intern_init (gpointer klass) 
-{ 
-gabble_connection_manager_parent_class = g_type_class_peek_parent (klass); 
-gabble_connection_manager_class_init ((GabbleConnectionManagerClass*) klass); 
-} 
-EXPORT_C GType gabble_connection_manager_get_type (void) 
-{ 
-
-if ((g_define_type_id == 0)) 
-{ 
-static const GTypeInfo g_define_type_info = 
-	{ sizeof (GabbleConnectionManagerClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_connection_manager_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleConnectionManager), 0, (GInstanceInitFunc) gabble_connection_manager_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleConnectionManager"), &g_define_type_info, (GTypeFlags) 0); { {} ; } } return g_define_type_id; 
-	} ;
-
-
-#else
-
-static guint signals[LAST_SIGNAL] = {0};
-
-static gboolean ssl = TRUE;
-static guint httpport = 8080;
-static guint httpproxyport = 443;
-
-#endif
-
-/* private structure */
-typedef struct _GabbleConnectionManagerPrivate GabbleConnectionManagerPrivate;
-
-struct _GabbleConnectionManagerPrivate
-{
-  gboolean dispose_has_run;
-  GHashTable *connections;
-};
-
-#define GABBLE_CONNECTION_MANAGER_GET_PRIVATE(obj) \
-    ((GabbleConnectionManagerPrivate *)obj->priv)
-
-/* type definition stuff */
-
-static void
-gabble_connection_manager_init (GabbleConnectionManager *self)
-{
-  GabbleConnectionManagerPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GABBLE_TYPE_CONNECTION_MANAGER, GabbleConnectionManagerPrivate);
-
-  self->priv = priv;
-
-  priv->connections = g_hash_table_new (g_direct_hash, g_direct_equal);
-}
-
-static void gabble_connection_manager_dispose (GObject *object);
-static void gabble_connection_manager_finalize (GObject *object);
-
-static void
-gabble_connection_manager_class_init (GabbleConnectionManagerClass *gabble_connection_manager_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_connection_manager_class);
-
-  g_type_class_add_private (gabble_connection_manager_class, sizeof (GabbleConnectionManagerPrivate));
-
-  g_message("**NEW LOGS** inside gabble_connection_manager_class_init \n");
-
-  object_class->dispose = gabble_connection_manager_dispose;
-  object_class->finalize = gabble_connection_manager_finalize;
-
-  signals [NEW_CONNECTION] =
-    g_signal_new ("new-connection",
-                  G_OBJECT_CLASS_TYPE (gabble_connection_manager_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_connection_manager_marshal_VOID__STRING_STRING_STRING,
-                  G_TYPE_NONE, 3, G_TYPE_STRING, DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING);
-
-  signals [NO_MORE_CONNECTIONS] =
-    g_signal_new ("no-more-connections",
-                  G_OBJECT_CLASS_TYPE (gabble_connection_manager_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
-  dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (gabble_connection_manager_class), &dbus_glib_gabble_connection_manager_object_info);
-}
-
-void
-gabble_connection_manager_dispose (GObject *object)
-{
-  GabbleConnectionManager *self = GABBLE_CONNECTION_MANAGER (object);
-  GabbleConnectionManagerPrivate *priv = GABBLE_CONNECTION_MANAGER_GET_PRIVATE (self);
-
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  /* release any references held by the object here */
-
-  if (G_OBJECT_CLASS (gabble_connection_manager_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_connection_manager_parent_class)->dispose (object);
-}
-
-void
-gabble_connection_manager_finalize (GObject *object)
-{
-  GabbleConnectionManager *self = GABBLE_CONNECTION_MANAGER (object);
-  GabbleConnectionManagerPrivate *priv = GABBLE_CONNECTION_MANAGER_GET_PRIVATE (self);
-
-  g_hash_table_destroy(priv->connections);
-
-  G_OBJECT_CLASS (gabble_connection_manager_parent_class)->finalize (object);
-}
-
-
-enum {
-    JABBER_PARAM_ACCOUNT = 0,
-    JABBER_PARAM_PASSWORD,
-    JABBER_PARAM_SERVER,
-    JABBER_PARAM_RESOURCE,
-    JABBER_PARAM_PRIORITY,
-    JABBER_PARAM_PORT,
-    JABBER_PARAM_OLD_SSL,
-    JABBER_PARAM_REGISTER,
-    JABBER_PARAM_LOW_BANDWIDTH,
-    JABBER_PARAM_HTTPS_PROXY_SERVER,
-    JABBER_PARAM_HTTPS_PROXY_PORT,
-    JABBER_PARAM_FALLBACK_CONFERENCE_SERVER,
-    JABBER_PARAM_STUN_SERVER,
-    JABBER_PARAM_STUN_PORT,
-    JABBER_PARAM_IGNORE_SSL_ERRORS,
-    JABBER_PARAM_ALIAS,
-    LAST_JABBER_PARAM
-};
-/* private methods */
-
-static gboolean
-get_parameters (const char *proto, const GabbleParamSpec **params, GError **error)
-{
-  if (!strcmp (proto, "jabber"))
-    {
-      *params = jabber_params;
-    }
-  else
-    {
-      g_debug ("%s: unknown protocol %s", G_STRFUNC, proto);
-
-      g_set_error (error, TELEPATHY_ERRORS, NotImplemented,
-          "unknown protocol %s", proto);
-
-      return FALSE;
-    }
-
-  return TRUE;
-}
-
-static GValue *param_default_value (const GabbleParamSpec *params, int i)
-{
-  GValue *value;
-
-  value = g_new0(GValue, 1);
-  g_value_init(value, params[i].gtype);
-
-  /* TODO: this check could be stricter if we knew whether register
-  was true. In practice REQUIRED and REGISTER always go together in
-  the Gabble params, though */
-  if (params[i].flags & TP_CONN_MGR_PARAM_FLAG_REQUIRED & TP_CONN_MGR_PARAM_FLAG_REGISTER)
-    {
-      g_assert(params[i].def == NULL);
-      goto OUT;
-    }
-
-  switch (params[i].dtype[0])
-    {
-      case DBUS_TYPE_STRING:
-        g_value_set_static_string (value, (const gchar*) params[i].def);
-        break;
-      case DBUS_TYPE_INT16:
-        g_value_set_int (value, GPOINTER_TO_INT (params[i].def));
-        break;
-      case DBUS_TYPE_UINT16:
-        g_value_set_uint (value, GPOINTER_TO_INT (params[i].def));
-        break;
-      case DBUS_TYPE_BOOLEAN:
-        g_value_set_boolean (value, GPOINTER_TO_INT (params[i].def));
-        break;
-      default:
-        g_error("parameter_defaults: encountered unknown type %s on argument %s",
-                params[i].dtype, params[i].name);
-    }
-
-OUT:
-  return value;
-}
-
-static gboolean
-set_param_from_value (const GabbleParamSpec *paramspec,
-                                     GValue *value,
-                               GabbleParams *params,
-                                    GError **error)
-{
-  if (G_VALUE_TYPE (value) != paramspec->gtype)
-    {
-      g_debug ("%s: expected type %s for parameter %s, got %s",
-               G_STRFUNC,
-               g_type_name (paramspec->gtype), paramspec->name,
-               G_VALUE_TYPE_NAME (value));
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "expected type %s for account parameter %s, got %s",
-          g_type_name (paramspec->gtype), paramspec->name,
-          G_VALUE_TYPE_NAME (value));
-      return FALSE;
-    }
-
-  switch (paramspec->dtype[0])
-    {
-      case DBUS_TYPE_STRING:
-        {
-          const char *str = g_value_get_string (value);
-          if (!str || *str == '\0')
-            return FALSE;
-          else
-            *((char **) ((char *)params + paramspec->offset)) = g_value_dup_string (value);
-        }
-        break;
-      case DBUS_TYPE_INT16:
-        *((gint *) ((char *)params + paramspec->offset)) = g_value_get_int (value);
-        break;
-      case DBUS_TYPE_UINT16:
-        *((guint *) ((char *)params + paramspec->offset)) = g_value_get_uint (value);
-        break;
-      case DBUS_TYPE_BOOLEAN:
-        *((gboolean *) ((char *)params + paramspec->offset)) = g_value_get_boolean (value);
-        break;
-      default:
-        g_error ("set_param_from_value: encountered unknown type %s on argument %s",
-                 paramspec->dtype, paramspec->name);
-        return FALSE;
-    }
-
-  return TRUE;
-}
-
-static gboolean
-parse_parameters (const GabbleParamSpec *paramspec,
-                  GHashTable            *provided,
-                  GabbleParams          *params,
-                  GError               **error)
-{
-  int unhandled;
-  int i;
-  guint mandatory_flag = TP_CONN_MGR_PARAM_FLAG_REQUIRED;
-  GValue *value;
-
-  unhandled = g_hash_table_size (provided);
-
-  value = g_hash_table_lookup (provided, "register");
-  if (value != NULL && G_VALUE_TYPE(value) == G_TYPE_BOOLEAN &&
-      g_value_get_boolean(value))
-    {
-      mandatory_flag = TP_CONN_MGR_PARAM_FLAG_REGISTER;
-    }
-
-  for (i = 0; paramspec[i].name; i++)
-    {
-      value = g_hash_table_lookup (provided, paramspec[i].name);
-
-      if (value == NULL)
-        {
-          if (paramspec[i].flags & mandatory_flag)
-            {
-              g_debug ("%s: missing mandatory param %s",
-                       G_STRFUNC, paramspec[i].name);
-              g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-                  "missing mandatory account parameter %s", paramspec[i].name);
-              return FALSE;
-            }
-          else
-            {
-              g_debug ("%s: using default value for param %s",
-                       G_STRFUNC, paramspec[i].name);
-            }
-        }
-      else
-        {
-          if (!set_param_from_value (&paramspec[i], value, params, error))
-            {
-              g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-                  "invalid value for parameter %s", paramspec[i].name);
-              return FALSE;
-            }
-
-          params->set_mask |= 1 << i;
-
-          unhandled--;
-          if (paramspec[i].gtype == G_TYPE_STRING)
-            {
-              if (0 == strcmp (paramspec[i].name, "password"))
-                {
-                  g_debug ("%s: accepted value <hidden> for param password",
-                      G_STRFUNC);
-                }
-              else
-                {
-                  g_debug ("%s: accepted value %s for param %s",
-                      G_STRFUNC,
-                      *((char **) ((char *)params + paramspec[i].offset)),
-                      paramspec[i].name);
-                }
-            }
-          else
-            {
-              g_debug ("%s: accepted value %u for param %s", G_STRFUNC,
-                       *((guint *) ((char *)params + paramspec[i].offset)), paramspec[i].name);
-            }
-        }
-    }
-
-  if (unhandled)
-    {
-      g_debug ("%s: unknown argument name provided", G_STRFUNC);
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "unknown argument name provided");
-      return FALSE;
-    }
-
-  return TRUE;
-}
-
-static void
-free_params (GabbleParams *params)
-{
-  g_free (params->account);
-  g_free (params->password);
-  g_free (params->server);
-  g_free (params->resource);
-  g_free (params->https_proxy_server);
-  g_free (params->fallback_conference_server);
-  g_free (params->stun_server);
-  g_free (params->alias);
-}
-
-/**
- * connection_disconnected_cb:
- * @conn: #GabbleConnection
- * @data: data passed in callback
- *
- * Signal handler called when a connection object disconnects.
- * When they become disconnected, we can unref and discard
- * them, and they will disappear from the bus.
- */
-static void
-connection_disconnected_cb (GabbleConnection        *conn,
-                            gpointer                 data)
-{
-  GabbleConnectionManager *self = GABBLE_CONNECTION_MANAGER (data);
-  GabbleConnectionManagerPrivate *priv = GABBLE_CONNECTION_MANAGER_GET_PRIVATE (self);
-
-  g_assert (g_hash_table_lookup (priv->connections, conn));
-  
-  /* fix: this check should only be done if priv->connections is not null, and conn is not null */
-  
-  if( (priv->connections) && (conn))
-      g_hash_table_remove (priv->connections, conn);
-
-  /* end of fix */
-  
-  g_object_unref (conn);
-
-  g_debug ("%s: dereferenced connection", G_STRFUNC);
-  if(priv->connections)
-    if (g_hash_table_size (priv->connections) == 0)
-    {
-      g_signal_emit (self, signals [NO_MORE_CONNECTIONS], 0);
-      g_debug ("%s: emitting no more connections", G_STRFUNC);
-    }
-
-
-}
-
-/* public methods */
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-void
-_gabble_connection_manager_register (GabbleConnectionManager *self)
-{
-  DBusGConnection *bus;
-  DBusGProxy *bus_proxy;
-  GError *error = NULL;
-  guint request_name_result;
-
-  g_assert (GABBLE_IS_CONNECTION_MANAGER (self));
-
-  bus = tp_get_bus ();
-  bus_proxy = tp_get_bus_proxy ();
-
-  if (!dbus_g_proxy_call (bus_proxy, "RequestName", &error,
-                          G_TYPE_STRING, GABBLE_CONN_MGR_BUS_NAME,
-                          G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE,
-                          G_TYPE_INVALID,
-                          G_TYPE_UINT, &request_name_result,
-                          G_TYPE_INVALID))
-    g_error ("Failed to request bus name: %s", error->message);
-
-  if (request_name_result == DBUS_REQUEST_NAME_REPLY_EXISTS)
-    {
-      g_warning ("Failed to acquire bus name, connection manager already running?");
-      exit (1);
-    }
-
-  dbus_g_connection_register_g_object (bus, GABBLE_CONN_MGR_OBJECT_PATH, G_OBJECT (self));
-}
-
-/* dbus-exported methods */
-
-/**
- * gabble_connection_manager_get_parameters
- *
- * Implements D-Bus method GetParameters
- * on interface org.freedesktop.Telepathy.ConnectionManager
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_manager_get_parameters (GabbleConnectionManager *self,
-                                          const gchar *proto,
-                                          GPtrArray **ret,
-                                          GError **error)
-{
-  const GabbleParamSpec *params = NULL;
-  int i;
-
-  if (!get_parameters (proto, &params, error))
-    return FALSE;
-
-  *ret = g_ptr_array_new ();
-
-  for (i = 0; params[i].name; i++)
-    {
-      GValue *def_value;
-      GValue param = { 0, };
-
-      g_value_init (&param, TP_TYPE_PARAM);
-      g_value_set_static_boxed (&param,
-        dbus_g_type_specialized_construct (TP_TYPE_PARAM));
-      
-      def_value = param_default_value (params, i);
-      dbus_g_type_struct_set (&param,
-        0, params[i].name,
-        1, params[i].flags,
-        2, params[i].dtype,
-        3, def_value,
-        G_MAXUINT);
-      g_value_unset(def_value);
-      g_free(def_value);
-
-      g_ptr_array_add (*ret, g_value_get_boxed (&param));
-    }
-
-  return TRUE;
-}
-
-
-/**
- * gabble_connection_manager_list_protocols
- *
- * Implements D-Bus method ListProtocols
- * on interface org.freedesktop.Telepathy.ConnectionManager
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_manager_list_protocols (GabbleConnectionManager *self,
-                                          gchar ***ret,
-                                          GError **error)
-{
-  const char *protocols[] = { "jabber", NULL };
-  g_message("BINGO...gabble_connection_manager_list_protocols entered \n");
-
-  *ret = g_strdupv ((gchar **)protocols);
-
-  g_message("BINGO...leaving gabble_connection_manager_list_protocols \n");
-
-  return TRUE;
-}
-
-
-#define SET_PROPERTY_IF_PARAM_SET(prop, param, member) \
-  if ((params.set_mask & (1 << param)) != 0) \
-    { \
-      g_object_set (conn, prop, member, NULL); \
-    }
-
-
-/**
- * gabble_connection_manager_request_connection
- *
- * Implements D-Bus method RequestConnection
- * on interface org.freedesktop.Telepathy.ConnectionManager
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_manager_request_connection (GabbleConnectionManager *self,
-                                              const gchar *proto,
-                                              GHashTable *parameters,
-                                              gchar **bus_name,
-                                              gchar **object_path,
-                                              GError **error)
-{
-  GabbleConnectionManagerPrivate *priv;
-  GabbleConnection *conn;
-  const GabbleParamSpec *paramspec;
-  GabbleParams params = { 0, };
-
-  g_assert (GABBLE_IS_CONNECTION_MANAGER (self));
-
-  priv = GABBLE_CONNECTION_MANAGER_GET_PRIVATE (self);
-
-  if (!get_parameters (proto, &paramspec, error))
-		return FALSE;
-  
-
-  if (!parse_parameters (paramspec, parameters, &params, error))
-    {
-      free_params (&params);
-      return FALSE;
-    }
-
-  conn = g_object_new (GABBLE_TYPE_CONNECTION,
-                       "protocol",           proto,
-                       "password",           params.password,
-                       NULL);
-  
-  g_message("BINGO...after g_object_new \n");
-
-  SET_PROPERTY_IF_PARAM_SET ("connect-server", JABBER_PARAM_SERVER,
-                             params.server);
-  SET_PROPERTY_IF_PARAM_SET ("resource", JABBER_PARAM_RESOURCE,
-                             params.resource);
-  SET_PROPERTY_IF_PARAM_SET ("priority", JABBER_PARAM_PRIORITY,
-                             CLAMP (params.priority, G_MININT8, G_MAXINT8));
-  SET_PROPERTY_IF_PARAM_SET ("port", JABBER_PARAM_PORT, params.port);
-  SET_PROPERTY_IF_PARAM_SET ("old-ssl", JABBER_PARAM_OLD_SSL, params.old_ssl);
-  SET_PROPERTY_IF_PARAM_SET ("register", JABBER_PARAM_REGISTER,
-                             params.do_register);
-  SET_PROPERTY_IF_PARAM_SET ("low-bandwidth", JABBER_PARAM_LOW_BANDWIDTH,
-                             params.low_bandwidth);
-  SET_PROPERTY_IF_PARAM_SET ("https-proxy-server",
-                             JABBER_PARAM_HTTPS_PROXY_SERVER,
-                             params.https_proxy_server);
-  SET_PROPERTY_IF_PARAM_SET ("https-proxy-port", JABBER_PARAM_HTTPS_PROXY_PORT,
-                             params.https_proxy_port);
-  SET_PROPERTY_IF_PARAM_SET ("fallback-conference-server",
-                             JABBER_PARAM_FALLBACK_CONFERENCE_SERVER,
-                             params.fallback_conference_server);
-  SET_PROPERTY_IF_PARAM_SET ("stun-server", JABBER_PARAM_STUN_SERVER,
-                             params.stun_server);
-  SET_PROPERTY_IF_PARAM_SET ("stun-port", JABBER_PARAM_STUN_PORT,
-                             params.stun_port);
-  SET_PROPERTY_IF_PARAM_SET ("ignore-ssl-errors",
-                              JABBER_PARAM_IGNORE_SSL_ERRORS,
-                              params.ignore_ssl_errors);
-  SET_PROPERTY_IF_PARAM_SET ("alias", JABBER_PARAM_ALIAS, params.alias);
-
-  // split up account into username, stream-server and resource
-  if (!_gabble_connection_set_properties_from_account (conn, params.account, error))
-    {
-      goto ERROR;
-    }
-
-  // free memory allocated by param parser
-  free_params(&params);
-
-// with hash table usage - end
-
-
-  // register on bus and save bus name and object path
-  if (!_gabble_connection_register (conn, bus_name, object_path, error))
-    {
-      g_debug ("%s failed: %s", G_STRFUNC, (*error)->message);
-
-      goto ERROR;
-    }
-  
-  /* bind to status change signals from the connection object */
-  g_signal_connect (conn, "disconnected",
-                             G_CALLBACK (connection_disconnected_cb),
-                             self);
-  
-  /* store the connection, using a hash table as a set */
-  g_hash_table_insert (priv->connections, conn, GINT_TO_POINTER(TRUE));
-
-  /* emit the new connection signal */
-  g_signal_emit (self, signals [NEW_CONNECTION], 0, *bus_name, *object_path, proto);
-
-  return TRUE;
-
-ERROR:
-  if (conn)
-    g_object_unref (G_OBJECT (conn));
-
-  g_message("ERROR...returning FALSE\n");
-  return FALSE;
-}
--- a/telepathygabble/src/gabble-connection-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
- * gabble-connection-signals-marshal.c 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:STRING,STRING,UINT,UINT,BOOLEAN (gabble-connection-signals-marshal.list:1) */
-void
-gabble_connection_marshal_VOID__STRING_STRING_UINT_UINT_BOOLEAN (GClosure     *closure,
-                                                                 GValue       *return_value,
-                                                                 guint         n_param_values,
-                                                                 const GValue *param_values,
-                                                                 gpointer      invocation_hint,
-                                                                 gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_STRING_UINT_UINT_BOOLEAN) (gpointer     data1,
-                                                                      gpointer     arg_1,
-                                                                      gpointer     arg_2,
-                                                                      guint        arg_3,
-                                                                      guint        arg_4,
-                                                                      gboolean     arg_5,
-                                                                      gpointer     data2);
-  register GMarshalFunc_VOID__STRING_STRING_UINT_UINT_BOOLEAN callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 6);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_STRING_UINT_UINT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_string (param_values + 2),
-            g_marshal_value_peek_uint (param_values + 3),
-            g_marshal_value_peek_uint (param_values + 4),
-            g_marshal_value_peek_boolean (param_values + 5),
-            data2);
-}
-
-/* VOID:UINT,UINT (gabble-connection-signals-marshal.list:2) */
-void
-gabble_connection_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                           GValue       *return_value,
-                                           guint         n_param_values,
-                                           const GValue *param_values,
-                                           gpointer      invocation_hint,
-                                           gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer     data1,
-                                                guint        arg_1,
-                                                guint        arg_2,
-                                                gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            data2);
-}
-
--- a/telepathygabble/src/gabble-connection.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5227 +0,0 @@
-/*
- * gabble-connection.c - Source for GabbleConnection
- * Copyright (C) 2005 Collabora Ltd.
- *  and/or its subsidiary/subsidiaries. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include "config.h"
-
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-#include <glib-object.h>
-#include "loudmouth/loudmouth.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-
-#include "handles.h"
-#include "handle-set.h"
-#include "telepathy-constants.h"
-#include "telepathy-errors.h"
-#include "telepathy-helpers.h"
-#include "telepathy-interfaces.h"
-#include "loudmouth/lm-connection.h"
-
-#include "tp-channel-iface.h"
-#include "tp-channel-factory-iface.h"
-
-#include "gabble-connection.h"
-#include "gabble-connection-glue.h"
-#include "gabble-connection-signals-marshal.h"
-
-
-#include "capabilities.h"
-#include "debug.h"
-#include "disco.h"
-#include "gabble-presence-cache.h"
-#include "gabble-presence.h"
-#include "gabble-register.h"
-#include "im-factory.h"
-#include "search-factory.h"
-#include "jingle-info.h"
-#include "media-factory.h"
-#include "muc-factory.h"
-#include "namespaces.h"
-#include "roster.h"
-#include "util.h"
-#include "vcard-manager.h"
-#include "search-keys-info.h"
-
-#include "gabble-media-channel.h"
-#include "gabble-roomlist-channel.h"
-
-#include "gabble_enums.h"
-#include "sha1.h"
-#include "base64.h"
-
-#define DEBUG_FLAG GABBLE_DEBUG_CONNECTION
-#define DBUS_API_SUBJECT_TO_CHANGE
-#define BUS_NAME        "org.freedesktop.Telepathy.Connection.gabble"
-#define OBJECT_PATH     "/org/freedesktop/Telepathy/Connection/gabble"
-
-#define TP_ALIAS_PAIR_TYPE (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID))
-#define TP_CAPABILITY_PAIR_TYPE (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID))
-#define TP_CAPABILITIES_CHANGED_MONSTER_TYPE (dbus_g_type_get_struct \
-    ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, \
-                    G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID))
-#define TP_GET_CAPABILITIES_MONSTER_TYPE (dbus_g_type_get_struct \
-    ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, \
-                    G_TYPE_INVALID))
-#define TP_CHANNEL_LIST_ENTRY_TYPE (dbus_g_type_get_struct ("GValueArray", \
-      DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, \
-      G_TYPE_INVALID))
-
-#define ERROR_IF_NOT_CONNECTED(CONN, ERROR) \
-  if ((CONN)->status != TP_CONN_STATUS_CONNECTED) \
-    { \
-      gabble_debug (DEBUG_FLAG, "rejected request as disconnected"); \
-      g_set_error (ERROR, TELEPATHY_ERRORS, NotAvailable, \
-          "Connection is disconnected"); \
-      return FALSE; \
-    }
-
-#define ERROR_IF_NOT_CONNECTED_ASYNC(CONN, ERROR, CONTEXT) \
-  if ((CONN)->status != TP_CONN_STATUS_CONNECTED) \
-    { \
-      gabble_debug (DEBUG_FLAG, "rejected request as disconnected"); \
-      (ERROR) = g_error_new (TELEPATHY_ERRORS, NotAvailable, \
-          "Connection is disconnected"); \
-      dbus_g_method_return_error ((CONTEXT), (ERROR)); \
-      g_error_free ((ERROR)); \
-      return; \
-    }
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-#ifndef EMULATOR
-G_DEFINE_TYPE(GabbleConnection, gabble_connection, G_TYPE_OBJECT)
-#endif
-
-typedef struct _StatusInfo StatusInfo;
-
-struct _StatusInfo
-{
-  const gchar *name;
-  TpConnectionPresenceType presence_type;
-  const gboolean self;
-  const gboolean exclusive;
-};
-
-/* order must match PresenceId enum in gabble-connection.h */
-/* in increasing order of presence */
-static const StatusInfo gabble_statuses[LAST_GABBLE_PRESENCE] = {
- { "offline",   TP_CONN_PRESENCE_TYPE_OFFLINE,       TRUE, TRUE },
- { "hidden",    TP_CONN_PRESENCE_TYPE_HIDDEN,        TRUE, TRUE },
- { "xa",        TP_CONN_PRESENCE_TYPE_EXTENDED_AWAY, TRUE, TRUE },
- { "away",      TP_CONN_PRESENCE_TYPE_AWAY,          TRUE, TRUE },
- { "dnd",       TP_CONN_PRESENCE_TYPE_AWAY,          TRUE, TRUE },
- { "available", TP_CONN_PRESENCE_TYPE_AVAILABLE,     TRUE, TRUE },
- { "chat",      TP_CONN_PRESENCE_TYPE_AVAILABLE,     TRUE, TRUE }
-};
-
-/* signal enum */
-enum
-{
-    ALIASES_CHANGED,
-    CAPABILITIES_CHANGED,
-    NEW_CHANNEL,
-    PRESENCE_UPDATE,
-    STATUS_CHANGED,
-    DISCONNECTED,
-    LAST_SIGNAL 
-#ifdef EMULATOR    
-    = LAST_SIGNAL_CON
-#endif
-    
-};
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_con,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_con, s)())	
-	
-	
-	GET_STATIC_VAR_FROM_TLS(arguments,gabble_con,GHashTable*)
-	#define arguments (*GET_WSD_VAR_NAME(arguments,gabble_con, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(gabble_connection_parent_class,gabble_con,gpointer)
-	#define gabble_connection_parent_class (*GET_WSD_VAR_NAME(gabble_connection_parent_class,gabble_con,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_con,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_con,s)())
-	
-	//GET_STATIC_ARRAY_FROM_TLS(assumed_caps,gabble_con,gchar*)
-	/*gchar** _s_gabble_con_assumed_caps() { return (gchar**)((libgabble_ImpurePtr()->_s_gabble_con_assumed_caps)); }
-
-	#define assumed_caps (GET_WSD_VAR_NAME(assumed_caps,gabble_con, s)())	*/
-	
-	
-			
-static void gabble_connection_init (GabbleConnection *self); 
-static void gabble_connection_class_init (GabbleConnectionClass *klass); 
-static void gabble_connection_class_intern_init (gpointer klass) 
-{ 
-gabble_connection_parent_class = g_type_class_peek_parent (klass); 
-gabble_connection_class_init ((GabbleConnectionClass*) klass); 
-} 
-EXPORT_C GType gabble_connection_get_type (void) 
-{ 
-
-if ((g_define_type_id == 0)) 
-{ 
-static const GTypeInfo g_define_type_info = 
-	{ sizeof (GabbleConnectionClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_connection_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleConnection), 0, (GInstanceInitFunc) gabble_connection_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleConnection"), &g_define_type_info, (GTypeFlags) 0); { {} ; } } return g_define_type_id; 
-	} ;
-	
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif	
-
-/* properties */
-enum
-{
-    PROP_PROTOCOL = 1,
-    PROP_CONNECT_SERVER,
-    PROP_PORT,
-    PROP_OLD_SSL,
-    PROP_REGISTER,
-    PROP_LOW_BANDWIDTH,
-    PROP_STREAM_SERVER,
-    PROP_USERNAME,
-    PROP_PASSWORD,
-    PROP_RESOURCE,
-    PROP_PRIORITY,
-    PROP_HTTPS_PROXY_SERVER,
-    PROP_HTTPS_PROXY_PORT,
-    PROP_FALLBACK_CONFERENCE_SERVER,
-    PROP_STUN_SERVER,
-    PROP_STUN_PORT,
-    PROP_STUN_RELAY_MAGIC_COOKIE,
-    PROP_STUN_RELAY_SERVER,
-    PROP_STUN_RELAY_UDP_PORT,
-    PROP_STUN_RELAY_TCP_PORT,
-    PROP_STUN_RELAY_SSLTCP_PORT,
-    PROP_STUN_RELAY_USERNAME,
-    PROP_STUN_RELAY_PASSWORD,
-    PROP_IGNORE_SSL_ERRORS,
-    PROP_ALIAS,
-
-    LAST_PROPERTY
-};
-
-/* TP properties */
-enum
-{
-  CONN_PROP_STUN_SERVER = 0,
-  CONN_PROP_STUN_PORT,
-  CONN_PROP_STUN_RELAY_MAGIC_COOKIE,
-  CONN_PROP_STUN_RELAY_SERVER,
-  CONN_PROP_STUN_RELAY_UDP_PORT,
-  CONN_PROP_STUN_RELAY_TCP_PORT,
-  CONN_PROP_STUN_RELAY_SSLTCP_PORT,
-  CONN_PROP_STUN_RELAY_USERNAME,
-  CONN_PROP_STUN_RELAY_PASSWORD,
-
-  NUM_CONN_PROPS,
-
-  INVALID_CONN_PROP,
-};
-
-const GabblePropertySignature connection_property_signatures[NUM_CONN_PROPS] = {
-      { "stun-server",                  G_TYPE_STRING },
-      { "stun-port",                    G_TYPE_UINT   },
-      { "stun-relay-magic-cookie",      G_TYPE_STRING },
-      { "stun-relay-server",            G_TYPE_STRING },
-      { "stun-relay-udp-port",          G_TYPE_UINT   },
-      { "stun-relay-tcp-port",          G_TYPE_UINT   },
-      { "stun-relay-ssltcp-port",       G_TYPE_UINT   },
-      { "stun-relay-username",          G_TYPE_STRING },
-      { "stun-relay-password",          G_TYPE_STRING },
-};
-
-/* private structure */
-typedef struct _GabbleConnectionPrivate GabbleConnectionPrivate;
-
-struct _GabbleConnectionPrivate
-{
-  LmMessageHandler *iq_jingle_info_cb;
-  LmMessageHandler *iq_search_keys_cb;
-  LmMessageHandler *iq_disco_cb;
-  LmMessageHandler *iq_unknown_cb;
-  LmMessageHandler *stream_error_cb;
-
-  /* telepathy properties */
-  gchar *protocol;
-
-  /* connection properties */
-  gchar *connect_server;
-  guint port;
-  gboolean old_ssl;
-
-  gboolean ignore_ssl_errors;
-  TpConnectionStatusReason ssl_error;
-
-  gboolean do_register;
-
-  gboolean low_bandwidth;
-
-  gchar *https_proxy_server;
-  guint https_proxy_port;
-
-  gchar *fallback_conference_server;
-
-  /* authentication properties */
-  gchar *stream_server;
-  gchar *username;
-  gchar *password;
-  gchar *resource;
-  gint8 priority;
-  gchar *alias;
-
-  /* reference to conference server name */
-  const gchar *conference_server;
-
-  /* channel factories */
-  GPtrArray *channel_factories;
-  GPtrArray *channel_requests;
-  gboolean suppress_next_handler;
-
-  /* serial number of current advertised caps */
-  guint caps_serial;
-
-  /* gobject housekeeping */
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_CONNECTION_GET_PRIVATE(obj) \
-    ((GabbleConnectionPrivate *)obj->priv)
-
-typedef struct _ChannelRequest ChannelRequest;
-
-struct _ChannelRequest
-{
-  DBusGMethodInvocation *context;
-  gchar *channel_type;
-  guint handle_type;
-  guint handle;
-  gboolean suppress_handler;
-};
-
-static void connection_new_channel_cb (TpChannelFactoryIface *, GObject *, gpointer);
-static void connection_channel_error_cb (TpChannelFactoryIface *, GObject *, GError *, gpointer);
-static void connection_nickname_update_cb (GObject *, GabbleHandle, gpointer);
-static void connection_presence_update_cb (GabblePresenceCache *, GabbleHandle, gpointer);
-static void connection_capabilities_update_cb (GabblePresenceCache *, GabbleHandle, GabblePresenceCapabilities, GabblePresenceCapabilities, gpointer);
-
-static void
-gabble_connection_init (GabbleConnection *self)
-{
-  GabbleConnectionPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GABBLE_TYPE_CONNECTION, GabbleConnectionPrivate);
-  guint i;
-  GValue val = { 0, };
-
-  self->priv = priv;
-  self->lmconn = lm_connection_new (NULL);
-  self->status = TP_CONN_STATUS_NEW;
-  self->handles = gabble_handle_repo_new ();
-  self->disco = gabble_disco_new (self);
-  self->vcard_manager = gabble_vcard_manager_new (self);
-  self->search_instr = NULL;
-  self->search_key_names = NULL;
-  self->search_reported_fields = NULL;
-  self->search_form = FALSE;
-  self->search_service_jid = NULL;
-  self->self_avatar_sha1 = NULL;
-  self->self_handle = 0;
-  g_signal_connect (self->vcard_manager, "nickname-update", G_CALLBACK
-      (connection_nickname_update_cb), self);
-
-  self->presence_cache = gabble_presence_cache_new (self);
-  g_signal_connect (self->presence_cache, "nickname-update", G_CALLBACK
-      (connection_nickname_update_cb), self);
-  g_signal_connect (self->presence_cache, "presence-update", G_CALLBACK
-      (connection_presence_update_cb), self);
-  g_signal_connect (self->presence_cache, "capabilities-update", G_CALLBACK
-      (connection_capabilities_update_cb), self);
-
-  capabilities_fill_cache (self->presence_cache);
-
-  self->roster = gabble_roster_new (self);
-  g_signal_connect (self->roster, "nickname-update", G_CALLBACK
-      (connection_nickname_update_cb), self);
-
-  priv->channel_factories = g_ptr_array_sized_new (1);
-
-  g_ptr_array_add (priv->channel_factories, self->roster);
-
-  g_ptr_array_add (priv->channel_factories,
-                   g_object_new (GABBLE_TYPE_MUC_FACTORY,
-                                 "connection", self,
-                                 NULL));
-
-  g_ptr_array_add (priv->channel_factories,
-                   g_object_new (GABBLE_TYPE_MEDIA_FACTORY,
-                                 "connection", self,
-                                 NULL));
-
-  g_ptr_array_add (priv->channel_factories,
-                   g_object_new (GABBLE_TYPE_IM_FACTORY,
-                                 "connection", self,
-                                 NULL));
-                                 
-  //add for search here	
-  g_ptr_array_add (priv->channel_factories,
-                    g_object_new (GABBLE_TYPE_SEARCH_FACTORY,
-                                 "connection", self,
-                                 NULL));                               
-
-  for (i = 0; i < priv->channel_factories->len; i++)
-    {
-      GObject *factory = g_ptr_array_index (priv->channel_factories, i);
-      g_signal_connect (factory, "new-channel", G_CALLBACK
-          (connection_new_channel_cb), self);
-      g_signal_connect (factory, "channel-error", G_CALLBACK
-          (connection_channel_error_cb), self);
-    }
-
-  priv->channel_requests = g_ptr_array_new ();
-
-  /* Set default parameters for optional parameters */
-  priv->resource = g_strdup (GABBLE_PARAMS_DEFAULT_RESOURCE);
-  priv->port = GABBLE_PARAMS_DEFAULT_PORT;
-  priv->https_proxy_port = GABBLE_PARAMS_DEFAULT_HTTPS_PROXY_PORT;
-
-  /* initialize properties mixin */
-  gabble_properties_mixin_init (G_OBJECT (self), G_STRUCT_OFFSET (
-        GabbleConnection, properties));
-
-  g_value_init (&val, G_TYPE_UINT);
-  g_value_set_uint (&val, GABBLE_PARAMS_DEFAULT_STUN_PORT);
-
-  gabble_properties_mixin_change_value (G_OBJECT (self), CONN_PROP_STUN_PORT,
-                                        &val, NULL);
-  gabble_properties_mixin_change_flags (G_OBJECT (self), CONN_PROP_STUN_PORT,
-                                        TP_PROPERTY_FLAG_READ, 0, NULL);
-
-  g_value_unset (&val);
-
-  priv->caps_serial = 1;
-}
-
-static void
-gabble_connection_get_property (GObject    *object,
-                                guint       property_id,
-                                GValue     *value,
-                                GParamSpec *pspec)
-{
-  GabbleConnection *self = (GabbleConnection *) object;
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-  const gchar *param_name;
-  guint tp_property_id;
-
-  switch (property_id) {
-    case PROP_PROTOCOL:
-      g_value_set_string (value, priv->protocol);
-      break;
-    case PROP_CONNECT_SERVER:
-      g_value_set_string (value, priv->connect_server);
-      break;
-    case PROP_STREAM_SERVER:
-      g_value_set_string (value, priv->stream_server);
-      break;
-    case PROP_PORT:
-      g_value_set_uint (value, priv->port);
-      break;
-    case PROP_OLD_SSL:
-      g_value_set_boolean (value, priv->old_ssl);
-      break;
-    case PROP_REGISTER:
-      g_value_set_boolean (value, priv->do_register);
-      break;
-    case PROP_LOW_BANDWIDTH:
-      g_value_set_boolean (value, priv->low_bandwidth);
-      break;
-    case PROP_USERNAME:
-      g_value_set_string (value, priv->username);
-      break;
-    case PROP_PASSWORD:
-      g_value_set_string (value, priv->password);
-      break;
-    case PROP_RESOURCE:
-      g_value_set_string (value, priv->resource);
-      break;
-    case PROP_PRIORITY:
-      g_value_set_int (value, priv->priority);
-      break;
-    case PROP_HTTPS_PROXY_SERVER:
-      g_value_set_string (value, priv->https_proxy_server);
-      break;
-    case PROP_HTTPS_PROXY_PORT:
-      g_value_set_uint (value, priv->https_proxy_port);
-      break;
-    case PROP_FALLBACK_CONFERENCE_SERVER:
-      g_value_set_string (value, priv->fallback_conference_server);
-      break;
-    case PROP_IGNORE_SSL_ERRORS:
-      g_value_set_boolean (value, priv->ignore_ssl_errors);
-      break;
-    case PROP_ALIAS:
-      g_value_set_string (value, priv->alias);
-      break;
-    default:
-      param_name = g_param_spec_get_name (pspec);
-
-      if (gabble_properties_mixin_has_property (object, param_name,
-            &tp_property_id))
-        {
-          GValue *tp_property_value =
-            self->properties.properties[tp_property_id].value;
-
-          if (tp_property_value)
-            {
-              g_value_copy (tp_property_value, value);
-              return;
-            }
-        }
-
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_connection_set_property (GObject      *object,
-                                guint         property_id,
-                                const GValue *value,
-                                GParamSpec   *pspec)
-{
-  GabbleConnection *self = (GabbleConnection *) object;
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-  const gchar *param_name;
-  guint tp_property_id;
-
-  switch (property_id) {
-    case PROP_PROTOCOL:
-      g_free (priv->protocol);
-      priv->protocol = g_value_dup_string (value);
-      break;
-    case PROP_CONNECT_SERVER:
-      g_free (priv->connect_server);
-      priv->connect_server = g_value_dup_string (value);
-      break;
-    case PROP_PORT:
-      priv->port = g_value_get_uint (value);
-      break;
-    case PROP_OLD_SSL:
-      priv->old_ssl = g_value_get_boolean (value);
-      break;
-    case PROP_REGISTER:
-      priv->do_register = g_value_get_boolean (value);
-      break;
-    case PROP_LOW_BANDWIDTH:
-      priv->low_bandwidth = g_value_get_boolean (value);
-      break;
-    case PROP_STREAM_SERVER:
-      g_free (priv->stream_server);
-      priv->stream_server = g_value_dup_string (value);
-      break;
-    case PROP_USERNAME:
-      g_free (priv->username);
-      priv->username = g_value_dup_string (value);
-      break;
-   case PROP_PASSWORD:
-      g_free (priv->password);
-      priv->password = g_value_dup_string (value);
-      break;
-    case PROP_RESOURCE:
-      g_free (priv->resource);
-      priv->resource = g_value_dup_string (value);
-      break;
-    case PROP_PRIORITY:
-      priv->priority = CLAMP (g_value_get_int (value), G_MININT8, G_MAXINT8);
-      break;
-    case PROP_HTTPS_PROXY_SERVER:
-      g_free (priv->https_proxy_server);
-      priv->https_proxy_server = g_value_dup_string (value);
-      break;
-    case PROP_HTTPS_PROXY_PORT:
-      priv->https_proxy_port = g_value_get_uint (value);
-      break;
-    case PROP_FALLBACK_CONFERENCE_SERVER:
-      g_free (priv->fallback_conference_server);
-      priv->fallback_conference_server = g_value_dup_string (value);
-      break;
-    case PROP_IGNORE_SSL_ERRORS:
-      priv->ignore_ssl_errors = g_value_get_boolean (value);
-      break;
-   case PROP_ALIAS:
-      g_free (priv->alias);
-      priv->alias = g_value_dup_string (value);
-      break;
-    default:
-      param_name = g_param_spec_get_name (pspec);
-
-      if (gabble_properties_mixin_has_property (object, param_name,
-            &tp_property_id))
-        {
-          gabble_properties_mixin_change_value (object, tp_property_id, value,
-                                                NULL);
-          gabble_properties_mixin_change_flags (object, tp_property_id,
-                                                TP_PROPERTY_FLAG_READ,
-                                                0, NULL);
-
-          return;
-        }
-
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void gabble_connection_dispose (GObject *object);
-static void gabble_connection_finalize (GObject *object);
-
-static void
-gabble_connection_class_init (GabbleConnectionClass *gabble_connection_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_connection_class);
-  GParamSpec *param_spec;
-
-  object_class->get_property = gabble_connection_get_property;
-  object_class->set_property = gabble_connection_set_property;
-
-  g_type_class_add_private (gabble_connection_class, sizeof (GabbleConnectionPrivate));
-
-  object_class->dispose = gabble_connection_dispose;
-  object_class->finalize = gabble_connection_finalize;
-
-  param_spec = g_param_spec_string ("protocol", "Telepathy identifier for protocol",
-                                    "Identifier string used when the protocol "
-                                    "name is required. Unused internally.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_PROTOCOL, param_spec);
-
-  param_spec = g_param_spec_string ("connect-server", "Hostname or IP of Jabber server",
-                                    "The server used when establishing a connection.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECT_SERVER, param_spec);
-
-  param_spec = g_param_spec_uint ("port", "Jabber server port",
-                                  "The port used when establishing a connection.",
-                                  0, G_MAXUINT16, GABBLE_PARAMS_DEFAULT_PORT,
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_PORT, param_spec);
-
-  param_spec = g_param_spec_boolean ("old-ssl", "Old-style SSL tunneled connection",
-                                     "Establish the entire connection to the server "
-                                     "within an SSL-encrypted tunnel. Note that this "
-                                     "is not the same as connecting with TLS, which "
-                                     "is not yet supported.", FALSE,
-                                     G_PARAM_READWRITE |
-                                     G_PARAM_STATIC_NAME |
-                                     G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_OLD_SSL, param_spec);
-
-  param_spec = g_param_spec_boolean ("register", "Register account on server",
-                                     "Register a new account on server.", FALSE,
-                                     G_PARAM_READWRITE |
-                                     G_PARAM_STATIC_NAME |
-                                     G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_REGISTER, param_spec);
-
-  param_spec = g_param_spec_boolean ("low-bandwidth", "Low bandwidth mode",
-                                     "Determines whether we are in low "
-                                     "bandwidth mode. This influences "
-                                     "polling behaviour.", FALSE,
-                                     G_PARAM_READWRITE |
-                                     G_PARAM_STATIC_NAME |
-                                     G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_LOW_BANDWIDTH, param_spec);
-
-  param_spec = g_param_spec_string ("stream-server", "The server name used to initialise the stream.",
-                                    "The server name used when initialising the stream, "
-                                    "which is usually the part after the @ in the user's JID.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STREAM_SERVER, param_spec);
-
-  param_spec = g_param_spec_string ("username", "Jabber username",
-                                    "The username used when authenticating.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_USERNAME, param_spec);
-
-  param_spec = g_param_spec_string ("password", "Jabber password",
-                                    "The password used when authenticating.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_PASSWORD, param_spec);
-
-  param_spec = g_param_spec_string ("resource", "Jabber resource",
-                                    "The Jabber resource used when authenticating.",
-                                    "Telepathy",
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_RESOURCE, param_spec);
-
-  param_spec = g_param_spec_int ("priority", "Jabber presence priority",
-                                 "The default priority used when reporting our presence.",
-                                 G_MININT8, G_MAXINT8, 0,
-                                 G_PARAM_READWRITE |
-                                 G_PARAM_STATIC_NAME |
-                                 G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_PRIORITY, param_spec);
-
-  param_spec = g_param_spec_string ("https-proxy-server", "The server name "
-                                    "used as an HTTPS proxy server",
-                                    "The server name used as an HTTPS proxy "
-                                    "server.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_HTTPS_PROXY_SERVER, param_spec);
-
-  param_spec = g_param_spec_uint ("https-proxy-port", "The HTTP proxy server "
-                                  "port", "The HTTP proxy server port.",
-                                  0, G_MAXUINT16, 0,
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_HTTPS_PROXY_PORT, param_spec);
-
-  param_spec = g_param_spec_string ("fallback-conference-server",
-                                    "The conference server used as fallback",
-                                    "The conference server used as fallback when "
-                                    "everything else fails.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_FALLBACK_CONFERENCE_SERVER,
-                                   param_spec);
-
-  param_spec = g_param_spec_string ("stun-server",
-                                    "STUN server",
-                                    "STUN server.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STUN_SERVER, param_spec);
-
-  param_spec = g_param_spec_uint ("stun-port",
-                                  "STUN port",
-                                  "STUN port.",
-                                  0, G_MAXUINT16, 0,
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STUN_PORT, param_spec);
-
-  param_spec = g_param_spec_string ("stun-relay-magic-cookie",
-                                    "STUN relay magic cookie",
-                                    "STUN relay magic cookie.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STUN_RELAY_MAGIC_COOKIE,
-                                   param_spec);
-
-  param_spec = g_param_spec_string ("stun-relay-server",
-                                    "STUN relay server",
-                                    "STUN relay server.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STUN_RELAY_SERVER,
-                                   param_spec);
-
-  param_spec = g_param_spec_uint ("stun-relay-udp-port",
-                                  "STUN relay UDP port",
-                                  "STUN relay UDP port.",
-                                  0, G_MAXUINT16, 0,
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STUN_RELAY_UDP_PORT,
-                                   param_spec);
-
-  param_spec = g_param_spec_uint ("stun-relay-tcp-port",
-                                  "STUN relay TCP port",
-                                  "STUN relay TCP port.",
-                                  0, G_MAXUINT16, 0,
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STUN_RELAY_TCP_PORT,
-                                   param_spec);
-
-  param_spec = g_param_spec_uint ("stun-relay-ssltcp-port",
-                                  "STUN relay SSL-TCP port",
-                                  "STUN relay SSL-TCP port.",
-                                  0, G_MAXUINT16, 0,
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STUN_RELAY_SSLTCP_PORT,
-                                   param_spec);
-
-  param_spec = g_param_spec_string ("stun-relay-username",
-                                    "STUN relay username",
-                                    "STUN relay username.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STUN_RELAY_USERNAME,
-                                   param_spec);
-
-  param_spec = g_param_spec_string ("stun-relay-password",
-                                    "STUN relay password",
-                                    "STUN relay password.",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STUN_RELAY_PASSWORD,
-                                   param_spec);
-
-  param_spec = g_param_spec_boolean ("ignore-ssl-errors", "Ignore SSL errors",
-                                     "Continue connecting even if the server's "
-                                     "SSL certificate is invalid or missing.",
-                                     FALSE,
-                                     G_PARAM_READWRITE |
-                                     G_PARAM_STATIC_NAME |
-                                     G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_IGNORE_SSL_ERRORS, param_spec);
-
-  param_spec = g_param_spec_string ("alias",
-                                    "Alias/nick for local user",
-                                    "Alias/nick for local user",
-                                    NULL,
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_ALIAS, param_spec);
-
-  /* signal definitions */
-
-  signals[ALIASES_CHANGED] =
-    g_signal_new ("aliases-changed",
-                  G_OBJECT_CLASS_TYPE (gabble_connection_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOXED,
-                  G_TYPE_NONE, 1, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID)))));
-
-  signals[CAPABILITIES_CHANGED] =
-    g_signal_new ("capabilities-changed",
-                  G_OBJECT_CLASS_TYPE (gabble_connection_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOXED,
-                  G_TYPE_NONE, 1, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID)))));
-
-  signals[NEW_CHANNEL] =
-    g_signal_new ("new-channel",
-                  G_OBJECT_CLASS_TYPE (gabble_connection_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_connection_marshal_VOID__STRING_STRING_UINT_UINT_BOOLEAN,
-                  G_TYPE_NONE, 5, DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_BOOLEAN);
-
-  signals[PRESENCE_UPDATE] =
-    g_signal_new ("presence-update",
-                  G_OBJECT_CLASS_TYPE (gabble_connection_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOXED,
-                  G_TYPE_NONE, 1, (dbus_g_type_get_map ("GHashTable", G_TYPE_UINT, (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)))), G_TYPE_INVALID)))));
-
-  signals[STATUS_CHANGED] =
-    g_signal_new ("status-changed",
-                  G_OBJECT_CLASS_TYPE (gabble_connection_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_connection_marshal_VOID__UINT_UINT,
-                  G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
-
-  signals[DISCONNECTED] =
-    g_signal_new ("disconnected",
-                  G_OBJECT_CLASS_TYPE (gabble_connection_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
-  dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (gabble_connection_class), &dbus_glib_gabble_connection_object_info);
-
-  gabble_properties_mixin_class_init (G_OBJECT_CLASS (gabble_connection_class),
-                                      G_STRUCT_OFFSET (GabbleConnectionClass, properties_class),
-                                      connection_property_signatures, NUM_CONN_PROPS,
-                                      NULL);
-}
-
-static gboolean
-_unref_lm_connection (gpointer data)
-{
-  LmConnection *conn = (LmConnection *) data;
-
-  lm_connection_unref (conn);
-  return FALSE;
-}
-
-void
-gabble_connection_dispose (GObject *object)
-{
-  GabbleConnection *self = GABBLE_CONNECTION (object);
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-  DBusGProxy *bus_proxy;
-  guint i;
-  bus_proxy = tp_get_bus_proxy ();
-
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  gabble_debug (DEBUG_FLAG, "called");
-
-  g_message("1 Inside gabble_connection_dispose() method");
-  
-  //<todo> are these asserts a valid one ?
-  //As in case of lm_connection_open these will not be valid assertions ?
-  //to remove these?
-  g_assert ((self->status == TP_CONN_STATUS_DISCONNECTED) ||
-            (self->status == TP_CONN_STATUS_NEW));
-  //This is not a valid statement as the self_handle is set to a value in _gabble_connection_connect which wil call 
-  //lm_connection_open(within do_connect). If the call fails then control comes here.. in which case self_handle can be other 
-  //than 0)
-  //g_assert (self->self_handle == 0);
-
-  g_message("after assert");
-  if (priv->channel_requests)
-    {
-      g_assert (priv->channel_requests->len == 0);
-      g_ptr_array_free (priv->channel_requests, TRUE);
-      priv->channel_requests = NULL;
-    }
-
-  g_ptr_array_foreach (priv->channel_factories, (GFunc) g_object_unref, NULL);
-  g_ptr_array_free (priv->channel_factories, TRUE);
-  priv->channel_factories = NULL;
-  g_message("unrefed channel factories");
-  if(self->search_instr)
-	  {
-	    g_free( self->search_instr );
-	  	self->search_instr = NULL;
-	  }
-	 
-  if(self->search_key_names)
-	  {
-	  	for( i=0; self->search_key_names[i]; i++ )
-			{
-			g_free( self->search_key_names[i] );
-			self->search_key_names[i] = NULL;
-			}
-	  	g_free( self->search_key_names );
-	  	self->search_key_names = NULL;	
-	  }
-  g_message("freed search keys");
-  if ( self->self_avatar_sha1 )
-      {
-      g_free ( self->self_avatar_sha1 );
-      }
-  if(self->search_key_ht)
-	  {
-	   g_hash_table_destroy (self->search_key_ht);
-	   self->search_key_ht = NULL;	
-	  }	  
-  if(self->search_service_jid)
-	  {
-	   g_free(self->search_service_jid);
-	   self->search_service_jid = NULL;	
-	  }
-  /* unreffing channel factories frees the roster */
-  self->roster = NULL;
-
-  g_object_unref (self->disco);
-  self->disco = NULL;
-
-  g_object_unref (self->vcard_manager);
-  self->vcard_manager = NULL;
-
-  g_object_unref (self->presence_cache);
-  self->presence_cache = NULL;
-
-  /* if this is not already the case, we'll crash anyway */
-  g_assert (!lm_connection_is_open (self->lmconn));
-  g_assert (priv->iq_search_keys_cb == NULL);
-  g_assert (priv->iq_jingle_info_cb == NULL);
-  g_assert (priv->iq_disco_cb == NULL);
-  g_assert (priv->iq_unknown_cb == NULL);
-  g_assert (priv->stream_error_cb == NULL);
-
-  /*
-   * The Loudmouth connection can't be unref'd immediately because this
-   * function might (indirectly) return into Loudmouth code which expects the
-   * connection to always be there.
-   */
-  g_idle_add (_unref_lm_connection, self->lmconn);
-
-  if (NULL != self->bus_name)
-    {
-      dbus_g_proxy_call_no_reply (bus_proxy, "ReleaseName",
-                                  G_TYPE_STRING, self->bus_name,
-                                  G_TYPE_INVALID);
-    }
-
-  if (G_OBJECT_CLASS (gabble_connection_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_connection_parent_class)->dispose (object);
-  
-  g_message("out of the method");
-}
-
-void
-gabble_connection_finalize (GObject *object)
-{
-  GabbleConnection *self = GABBLE_CONNECTION (object);
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  gabble_debug (DEBUG_FLAG, "called with %p", object);
-
-  g_free (self->bus_name);
-  g_free (self->object_path);
-
-  g_free (priv->protocol);
-  g_free (priv->connect_server);
-  g_free (priv->stream_server);
-  g_free (priv->username);
-  g_free (priv->password);
-  g_free (priv->resource);
-
-  g_free (priv->https_proxy_server);
-  g_free (priv->fallback_conference_server);
-
-  g_free (priv->alias);
-
-  gabble_properties_mixin_finalize (object);
-
-  gabble_handle_repo_destroy (self->handles);
-
-  G_OBJECT_CLASS (gabble_connection_parent_class)->finalize (object);
-}
-
-/**
- * _gabble_connection_set_properties_from_account
- *
- * Parses an account string which may be one of the following forms:
- *  username
- *  username/resource
- *  username@server
- *  username@server/resource
- * and sets the properties for username, stream server and resource
- * appropriately. Also sets the connect server to the stream server if one has
- * not yet been specified.
- */
-
-gboolean
-_gabble_connection_set_properties_from_account (GabbleConnection *conn,
-                                                const gchar      *account,
-                                                GError          **error)
-{
-  GabbleConnectionPrivate *priv;
-  char *username, *server, *resource;
-  gboolean result;
-
-  g_assert (GABBLE_IS_CONNECTION (conn));
-  g_assert (account != NULL);
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-
-  username = server = resource = NULL;
-  result = TRUE;
-
-  gabble_decode_jid (account, &username, &server, &resource);
-
-  if (username == NULL || server == NULL ||
-      *username == '\0' || *server == '\0')
-    {
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "unable to get username and server from account");
-      result = FALSE;
-      goto OUT;
-    }
-
-  g_object_set (G_OBJECT (conn),
-                "username", username,
-                "stream-server", server,
-                NULL);
-
-  /* only override the default resource if we actually got one */
-  if (resource)
-    g_object_set (G_OBJECT (conn), "resource", resource, NULL);
-
-OUT:
-  g_free (username);
-  g_free (server);
-  g_free (resource);
-
-  return result;
-}
-
-/**
- * _gabble_connection_register
- *
- * Make the connection object appear on the bus, returning the bus
- * name and object path used.
- */
-gboolean
-_gabble_connection_register (GabbleConnection *conn,
-                             gchar           **bus_name,
-                             gchar           **object_path,
-                             GError          **error)
-{
-  DBusGConnection *bus;
-  DBusGProxy *bus_proxy;
-  GabbleConnectionPrivate *priv;
-  const char *allowed_chars = "_1234567890"
-                              "abcdefghijklmnopqrstuvwxyz"
-                              "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-  char *safe_proto;
-  char *unique_name;
-  guint request_name_result;
-  GError *request_error;
-
-  g_message("1 Inside _gabble_connection_register() method");
-  g_assert (GABBLE_IS_CONNECTION (conn));
-
-  bus = tp_get_bus ();
-  bus_proxy = tp_get_bus_proxy ();
-  priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-
-  safe_proto = g_strdup (priv->protocol);
-  g_strcanon (safe_proto, allowed_chars, '_');
-
-  unique_name = g_strdup_printf ("_%s_%s_%s",
-                                 priv->username,
-                                 priv->stream_server,
-                                 priv->resource);
-  g_strcanon (unique_name, allowed_chars, '_');
-
-  conn->bus_name = g_strdup_printf (BUS_NAME ".%s.%s",
-                                    safe_proto,
-                                    unique_name);
-  conn->object_path = g_strdup_printf (OBJECT_PATH "/%s/%s",
-                                       safe_proto,
-                                       unique_name);
-
-  g_free (safe_proto);
-  g_free (unique_name);
-
-  if (!dbus_g_proxy_call (bus_proxy, "RequestName", &request_error,
-                          G_TYPE_STRING, conn->bus_name,
-                          G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE,
-                          G_TYPE_INVALID,
-                          G_TYPE_UINT, &request_name_result,
-                          G_TYPE_INVALID))
-    {
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "Error acquiring bus name %s: %s", conn->bus_name,
-          request_error->message);
-
-      g_error_free (request_error);
-
-      g_free (conn->bus_name);
-      conn->bus_name = NULL;
-
-      return FALSE;
-    }
-
-  if (request_name_result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER)
-    {
-      gchar *msg;
-
-      switch (request_name_result)
-        {
-        case DBUS_REQUEST_NAME_REPLY_IN_QUEUE:
-          msg = "Request has been queued, though we request non-queueing.";
-          break;
-        case DBUS_REQUEST_NAME_REPLY_EXISTS:
-          msg = "A connection manger already has this busname.";
-          break;
-        case DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER:
-          msg = "Connection manager already has a connection to this account.";
-          break;
-        default:
-          msg = "Unknown error return from ReleaseName";
-        }
-
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "Error acquiring bus name %s: %s", conn->bus_name, msg);
-
-      g_free (conn->bus_name);
-      conn->bus_name = NULL;
-
-      return FALSE;
-    }
-
-  gabble_debug (DEBUG_FLAG, "bus name %s", conn->bus_name);
-
-  dbus_g_connection_register_g_object (bus, conn->object_path, G_OBJECT (conn));
-
-  gabble_debug (DEBUG_FLAG, "object path %s", conn->object_path);
-
-  *bus_name = g_strdup (conn->bus_name);
-  *object_path = g_strdup (conn->object_path);
-
-  return TRUE;
-}
-
-
-/**
- * _gabble_connection_send
- *
- * Send an LmMessage and trap network errors appropriately.
- */
-gboolean
-_gabble_connection_send (GabbleConnection *conn, LmMessage *msg, GError **error)
-{
-  GabbleConnectionPrivate *priv;
-  GError *lmerror = NULL;
-
-  g_assert (GABBLE_IS_CONNECTION (conn));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-
-  if (!lm_connection_send (conn->lmconn, msg, &lmerror))
-    {
-      gabble_debug (DEBUG_FLAG, "failed: %s", lmerror->message);
-
-      g_set_error (error, TELEPATHY_ERRORS, NetworkError,
-          "message send failed: %s", lmerror->message);
-
-      g_error_free (lmerror);
-
-      return FALSE;
-    }
-
-  return TRUE;
-}
-
-typedef struct {
-    GabbleConnectionMsgReplyFunc reply_func;
-
-    GabbleConnection *conn;
-    LmMessage *sent_msg;
-    gpointer user_data;
-
-    GObject *object;
-    gboolean object_alive;
-} GabbleMsgHandlerData;
-
-static LmHandlerResult
-message_send_reply_cb (LmMessageHandler *handler,
-                       LmConnection *connection,
-                       LmMessage *reply_msg,
-                       gpointer user_data)
-{
-  GabbleMsgHandlerData *handler_data = user_data;
-  LmMessageSubType sub_type;
-
-  sub_type = lm_message_get_sub_type (reply_msg);
-
-  /* Is it a reply to this message? If we're talking to another loudmouth,
-   * they can send us messages which have the same ID as ones we send. :-O */
-  if (sub_type != LM_MESSAGE_SUB_TYPE_RESULT &&
-      sub_type != LM_MESSAGE_SUB_TYPE_ERROR)
-    {
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  if (handler_data->object_alive)
-    {
-      return handler_data->reply_func (handler_data->conn,
-                                       handler_data->sent_msg,
-                                       reply_msg,
-                                       handler_data->object,
-                                       handler_data->user_data);
-    }
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static void
-message_send_object_destroy_notify_cb (gpointer data,
-                                       GObject *where_the_object_was)
-{
-  GabbleMsgHandlerData *handler_data = data;
-
-  handler_data->object = NULL;
-  handler_data->object_alive = FALSE;
-}
-
-static void
-message_send_handler_destroy_cb (gpointer data)
-{
-  GabbleMsgHandlerData *handler_data = data;
-
-  lm_message_unref (handler_data->sent_msg);
-
-  if (handler_data->object != NULL)
-    {
-      g_object_weak_unref (handler_data->object,
-                           message_send_object_destroy_notify_cb,
-                           handler_data);
-    }
-
-  g_free (handler_data);
-}
-
-/**
- * _gabble_connection_send_with_reply
- *
- * Send a tracked LmMessage and trap network errors appropriately.
- *
- * If object is non-NULL the handler will follow the lifetime of that object,
- * which means that if the object is destroyed the callback will not be invoked.
- */
-gboolean
-_gabble_connection_send_with_reply (GabbleConnection *conn,
-                                    LmMessage *msg,
-                                    GabbleConnectionMsgReplyFunc reply_func,
-                                    GObject *object,
-                                    gpointer user_data,
-                                    GError **error)
-{
-  GabbleConnectionPrivate *priv;
-  LmMessageHandler *handler;
-  GabbleMsgHandlerData *handler_data;
-  gboolean ret;
-  GError *lmerror = NULL;
-
-  g_assert (GABBLE_IS_CONNECTION (conn));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-
-  lm_message_ref (msg);
-
-  handler_data = g_new (GabbleMsgHandlerData, 1);
-  handler_data->reply_func = reply_func;
-  handler_data->conn = conn;
-  handler_data->sent_msg = msg;
-  handler_data->user_data = user_data;
-
-  handler_data->object = object;
-  handler_data->object_alive = TRUE;
-
-  if (object != NULL)
-    {
-      g_object_weak_ref (object, message_send_object_destroy_notify_cb,
-                         handler_data);
-    }
-
-  handler = lm_message_handler_new (message_send_reply_cb, handler_data,
-                                    message_send_handler_destroy_cb);
-
-  ret = lm_connection_send_with_reply (conn->lmconn, msg, handler, &lmerror);
-  if (!ret)
-    {
-      gabble_debug (DEBUG_FLAG, "failed: %s", lmerror->message);
-
-      if (error)
-        {
-          g_set_error (error, TELEPATHY_ERRORS, NetworkError,
-              "message send failed: %s", lmerror->message);
-        }
-
-      g_error_free (lmerror);
-    }
-
-  lm_message_handler_unref (handler);
-
-  return ret;
-}
-
-static LmHandlerResult connection_iq_disco_cb (LmMessageHandler*, LmConnection*, LmMessage*, gpointer);
-static LmHandlerResult connection_iq_unknown_cb (LmMessageHandler*, LmConnection*, LmMessage*, gpointer);
-static LmHandlerResult connection_stream_error_cb (LmMessageHandler*, LmConnection*, LmMessage*, gpointer);
-static LmSSLResponse connection_ssl_cb (LmSSL*, LmSSLStatus, gpointer);
-static void connection_open_cb (LmConnection*, gboolean, gpointer);
-static void connection_auth_cb (LmConnection*, gboolean, gpointer);
-static void connection_disco_cb (GabbleDisco *, GabbleDiscoRequest *, const gchar *, const gchar *, LmMessageNode *, GError *, gpointer);
-static void connection_disconnected_cb (LmConnection *, LmDisconnectReason, gpointer);
-static void connection_status_change (GabbleConnection *, TpConnectionStatus, TpConnectionStatusReason);
-
-static void channel_request_cancel (gpointer data, gpointer user_data);
-
-static void emit_one_presence_update (GabbleConnection *self, GabbleHandle handle);
-
-
-static gboolean
-do_connect (GabbleConnection *conn, GError **error)
-{
-  GError *lmerror = NULL;
-
-  gabble_debug (DEBUG_FLAG, "calling lm_connection_open");
-	g_message("**gabble do_connect: before calling lm_connection_open\n");	
-
-  if (!lm_connection_open (conn->lmconn, connection_open_cb,
-                           conn, NULL, &lmerror))
-    {
-      gabble_debug (DEBUG_FLAG, "lm_connection_open failed %s", lmerror->message);
-
-      g_set_error (error, TELEPATHY_ERRORS, NetworkError,
-          "lm_connection_open failed: %s", lmerror->message);
-
-      g_signal_emit (conn, signals[DISCONNECTED], 0);
-      g_error_free (lmerror);
-
-      return FALSE;
-    }
-
-	g_message("**gabble do_connect: after calling lm_connection_open and it passed\n");	
-
-  return TRUE;
-}
-
-static void
-connect_callbacks (GabbleConnection *conn)
-{
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-
-  g_message("inside connect_callbacks\n");
-  g_assert (priv->iq_search_keys_cb == NULL);
-  g_assert (priv->iq_jingle_info_cb == NULL);
-  g_assert (priv->iq_disco_cb == NULL);
-  g_assert (priv->iq_unknown_cb == NULL);
-  g_assert (priv->stream_error_cb == NULL);
-  
-  
-  
-  priv->iq_search_keys_cb = lm_message_handler_new (search_keys_iq_cb,
-                                                    conn, NULL);
-  lm_connection_register_message_handler (conn->lmconn,
-                                          priv->iq_search_keys_cb,
-                                          LM_MESSAGE_TYPE_IQ,
-                                          LM_HANDLER_PRIORITY_NORMAL);
-
-  priv->iq_jingle_info_cb = lm_message_handler_new (jingle_info_iq_callback,
-                                                    conn, NULL);
-  lm_connection_register_message_handler (conn->lmconn,
-                                          priv->iq_jingle_info_cb,
-                                          LM_MESSAGE_TYPE_IQ,
-                                          LM_HANDLER_PRIORITY_NORMAL);
-
-  priv->iq_disco_cb = lm_message_handler_new (connection_iq_disco_cb,
-                                              conn, NULL);
-  lm_connection_register_message_handler (conn->lmconn, priv->iq_disco_cb,
-                                          LM_MESSAGE_TYPE_IQ,
-                                          LM_HANDLER_PRIORITY_NORMAL);
-
-  priv->iq_unknown_cb = lm_message_handler_new (connection_iq_unknown_cb,
-                                            conn, NULL);
-  lm_connection_register_message_handler (conn->lmconn, priv->iq_unknown_cb,
-                                          LM_MESSAGE_TYPE_IQ,
-                                          LM_HANDLER_PRIORITY_LAST);
-
-  priv->stream_error_cb = lm_message_handler_new (connection_stream_error_cb,
-                                            conn, NULL);
-  lm_connection_register_message_handler (conn->lmconn, priv->stream_error_cb,
-                                          LM_MESSAGE_TYPE_STREAM_ERROR,
-                                          LM_HANDLER_PRIORITY_LAST);
-  g_message("leaving connect_callbacks\n");
-}
-
-static void
-disconnect_callbacks (GabbleConnection *conn)
-{
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-  g_message("[disconnect_callbacks]");
-  g_assert (priv->iq_search_keys_cb != NULL);
-  g_assert (priv->iq_jingle_info_cb != NULL);
-  g_assert (priv->iq_disco_cb != NULL);
-  g_assert (priv->iq_unknown_cb != NULL);
-  g_assert (priv->stream_error_cb != NULL);
-  
-  lm_connection_unregister_message_handler (conn->lmconn, priv->iq_search_keys_cb,
-                                            LM_MESSAGE_TYPE_IQ);
-  lm_message_handler_unref (priv->iq_search_keys_cb);
-  priv->iq_search_keys_cb = NULL;
-
-  lm_connection_unregister_message_handler (conn->lmconn, priv->iq_jingle_info_cb,
-                                            LM_MESSAGE_TYPE_IQ);
-  lm_message_handler_unref (priv->iq_jingle_info_cb);
-  priv->iq_jingle_info_cb = NULL;
-
-  lm_connection_unregister_message_handler (conn->lmconn, priv->iq_disco_cb,
-                                            LM_MESSAGE_TYPE_IQ);
-  lm_message_handler_unref (priv->iq_disco_cb);
-  priv->iq_disco_cb = NULL;
-
-  lm_connection_unregister_message_handler (conn->lmconn, priv->iq_unknown_cb,
-                                            LM_MESSAGE_TYPE_IQ);
-  lm_message_handler_unref (priv->iq_unknown_cb);
-  priv->iq_unknown_cb = NULL;
-
-  lm_connection_unregister_message_handler (conn->lmconn, priv->stream_error_cb,
-                                            LM_MESSAGE_TYPE_STREAM_ERROR);
-  lm_message_handler_unref (priv->stream_error_cb);
-  priv->stream_error_cb = NULL;
-}
-
-/**
- * _gabble_connection_connect
- *
- * Use the stored server & authentication details to commence
- * the stages for connecting to the server and authenticating. Will
- * re-use an existing LmConnection if it is present, or create it
- * if necessary.
- *
- * Stage 1 is _gabble_connection_connect calling lm_connection_open
- * Stage 2 is connection_open_cb calling lm_connection_authenticate
- * Stage 3 is connection_auth_cb initiating service discovery
- * Stage 4 is connection_disco_cb advertising initial presence, requesting
- *   the roster and setting the CONNECTED state
- */
-static gboolean
-_gabble_connection_connect (GabbleConnection *conn,
-                            GError          **error)
-{
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-  char *jid;
-  GabblePresence *presence;
-  g_message("[_gabble_connection_connect]");
-  g_assert (priv->port > 0 && priv->port <= G_MAXUINT16);
-  g_assert (priv->stream_server != NULL);
-  g_assert (priv->username != NULL);
-  g_assert (priv->password != NULL);
-  g_assert (priv->resource != NULL);
-  g_assert (lm_connection_is_open (conn->lmconn) == FALSE);
-
-  g_message("In _gabble_connection_connect" );
-  
-  jid = g_strdup_printf ("%s@%s", priv->username, priv->stream_server);
-  lm_connection_set_jid (conn->lmconn, jid);
-
-  conn->self_handle = gabble_handle_for_contact (conn->handles,
-                                                 jid, FALSE);
-  g_free (jid);
-
-  if (conn->self_handle == 0)
-    {
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "Invalid JID: %s@%s", priv->username, priv->stream_server);
-      return FALSE;
-    }
-  gabble_handle_ref (conn->handles, TP_HANDLE_TYPE_CONTACT, conn->self_handle);
-
-  /* set initial presence */
-  /* TODO: some way for the user to set this */
-  gabble_presence_cache_update (conn->presence_cache, conn->self_handle,
-      priv->resource, GABBLE_PRESENCE_AVAILABLE, NULL, priv->priority);
-  emit_one_presence_update (conn, conn->self_handle);
-
-  /* set initial capabilities */
-  presence = gabble_presence_cache_get (conn->presence_cache, conn->self_handle);
-
-  gabble_presence_set_capabilities (presence, priv->resource,
-      capabilities_get_initial_caps (), priv->caps_serial++);
-
-  /* always override server and port if one was forced upon us */
-  if (priv->connect_server != NULL)
-    {
-      lm_connection_set_server (conn->lmconn, priv->connect_server);
-      lm_connection_set_port (conn->lmconn, priv->port);
-      g_message("LM Server is %s \n",priv->connect_server );
-  	  g_message("LM port is %ld \n",priv->port);
-    }
-  /* otherwise set the server & port to the stream server,
-   * if one didn't appear from a SRV lookup */
-  else if (lm_connection_get_server (conn->lmconn) == NULL)
-    {
-      lm_connection_set_server (conn->lmconn, priv->stream_server);
-      lm_connection_set_port (conn->lmconn, priv->port);
-    }
-
-  
-  if (priv->https_proxy_server)
-    {
-      LmProxy *proxy;
-
-      proxy = lm_proxy_new_with_server (LM_PROXY_TYPE_HTTP,
-          priv->https_proxy_server, priv->https_proxy_port);
-
-      lm_connection_set_proxy (conn->lmconn, proxy);
-
-      lm_proxy_unref (proxy);
-    }
-
-  if (priv->old_ssl)
-    {
-      LmSSL *ssl = lm_ssl_new (NULL, connection_ssl_cb, conn, NULL);
-      lm_connection_set_ssl (conn->lmconn, ssl);
-      lm_ssl_unref (ssl);
-    }
-  else //if we want to use tls (not old ssl?) then need to set tls flags.
-    {
-      LmSSL *ssl = lm_ssl_new (NULL, connection_ssl_cb, conn, NULL);
-      lm_connection_set_ssl (conn->lmconn, ssl);
-
-      lm_ssl_use_starttls (ssl, TRUE, TRUE);
-
-	  lm_ssl_unref (ssl);
-    }
-
-  /* send whitespace to the server every 30 seconds */
-  //lm_connection_set_keep_alive_rate (conn->lmconn, 45);
-
-  lm_connection_set_disconnect_function (conn->lmconn,
-                                         connection_disconnected_cb,
-                                         conn,
-                                         NULL);
-
-  if (do_connect (conn, error))
-    {
-      gboolean valid;
-
-      connection_status_change (conn,
-          TP_CONN_STATUS_CONNECTING,
-          TP_CONN_STATUS_REASON_REQUESTED);
-
-      valid = gabble_handle_ref (conn->handles,
-                                 TP_HANDLE_TYPE_CONTACT,
-                                 conn->self_handle);
-      g_message("before after valid assert" );
-      g_assert (valid);
-      g_message("In after valid assert" );
-    }
-  else
-    {
-      return FALSE;
-    }
-  g_message("Out _gabble_connection_connect" );
-  return TRUE;
-}
-
-
-
-static void
-connection_disconnected_cb (LmConnection *lmconn,
-                            LmDisconnectReason lm_reason,
-                            gpointer user_data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (user_data);
-  g_message("[connection_disconnected_cb]\n");
-  g_assert (conn->lmconn == lmconn);
- 
-  gabble_debug (DEBUG_FLAG, "called with reason %u", lm_reason);
-
-  /* if we were expecting this disconnection, we're done so can tell
-   * the connection manager to unref us. otherwise it's a network error
-   * or some other screw up we didn't expect, so we emit the status
-   * change */
-  if (conn->status == TP_CONN_STATUS_DISCONNECTED)
-    {
-      g_message("[connection_disconnected_cb]expected; emitting DISCONNECTED");
-      g_signal_emit (conn, signals[DISCONNECTED], 0);
-    }
-  else
-    {
-      g_message("[connection_disconnected_cb]unexpected; calling connection_status_change");
-      connection_status_change (conn,
-          TP_CONN_STATUS_DISCONNECTED,
-          TP_CONN_STATUS_REASON_NETWORK_ERROR);
-    }
-}
-
-
-/**
- * connection_status_change:
- * @conn: a #GabbleConnection
- * @status: new status to advertise
- * @reason: reason for new status
- *
- * Compares status with current status. If different, emits a signal
- * for the new status, and updates it in the #GabbleConnection.
- */
-static void
-connection_status_change (GabbleConnection        *conn,
-                          TpConnectionStatus       status,
-                          TpConnectionStatusReason reason)
-{
-  GabbleConnectionPrivate *priv;
-
-  g_assert (GABBLE_IS_CONNECTION (conn));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-
-  g_message ("[connection_status_change]status %u reason %u", status, reason);
-
-  g_assert (status != TP_CONN_STATUS_NEW);
-
-  if (conn->status != status)
-    {
-      if ((status == TP_CONN_STATUS_DISCONNECTED) &&
-          (conn->status == TP_CONN_STATUS_NEW))
-        {
-          g_message("[connection_status_change] line 1721");
-          conn->status = status;
-
-          /* unref our self handle if it's set */
-          if (conn->self_handle != 0)
-            {
-              gabble_handle_unref (conn->handles, TP_HANDLE_TYPE_CONTACT,
-                  conn->self_handle);
-              conn->self_handle = 0;
-            }
-
-          g_message("[connection_status_change]new connection closed; emitting DISCONNECTED");
-          g_signal_emit (conn, signals[DISCONNECTED], 0);
-          return;
-        }
-
-      conn->status = status;
-
-      if (status == TP_CONN_STATUS_DISCONNECTED)
-        {
-          /* remove the channels so we don't get any race conditions where
-           * method calls are delivered to a channel after we've started
-           * disconnecting */
-        g_message("[connection_status_change] TP_CONN_STATUS_DISCONNECTED");
-
-          /* trigger close_all on all channel factories */
-          g_ptr_array_foreach (priv->channel_factories, (GFunc)
-              tp_channel_factory_iface_close_all, NULL);
-
-          /* cancel all queued channel requests */
-          if (priv->channel_requests->len > 0)
-            {
-              g_ptr_array_foreach (priv->channel_requests, (GFunc)
-                channel_request_cancel, NULL);
-              g_ptr_array_remove_range (priv->channel_requests, 0,
-                priv->channel_requests->len);
-            }
-
-          /* unref our self handle */
-          gabble_handle_unref (conn->handles, TP_HANDLE_TYPE_CONTACT,
-              conn->self_handle);
-          conn->self_handle = 0;
-        }
-
-      g_message("[connection_status_change]emitting status-changed with status %u reason %u",
-               status, reason);
-
-      g_signal_emit (conn, signals[STATUS_CHANGED], 0, status, reason);
-
-      if (status == TP_CONN_STATUS_CONNECTING)
-        {
-          /* add our callbacks */
-          connect_callbacks (conn);
-
-          /* trigger connecting on all channel factories */
-          g_ptr_array_foreach (priv->channel_factories, (GFunc)
-              tp_channel_factory_iface_connecting, NULL);
-        }
-      else if (status == TP_CONN_STATUS_CONNECTED)
-        {
-        /* send whitespace to the server every 30 seconds resetting to 30*/
-          lm_connection_set_keep_alive_rate (conn->lmconn, 10);
-          
-          /* trigger connected on all channel factories */
-          g_ptr_array_foreach (priv->channel_factories, (GFunc)
-              tp_channel_factory_iface_connected, NULL);
-        }
-      else if (status == TP_CONN_STATUS_DISCONNECTED)
-        {
-          /* remove our callbacks */
-          disconnect_callbacks (conn);
-
-          /* trigger disconnected on all channel factories */
-          g_ptr_array_foreach (priv->channel_factories, (GFunc)
-              tp_channel_factory_iface_disconnected, NULL);
-
-          /* if the connection is open, this function will close it for you.
-           * if it's already closed (eg network error) then we're done, so
-           * can emit DISCONNECTED and have the connection manager unref us */
-          if (lm_connection_is_open (conn->lmconn))
-            {
-              g_message ("still open; calling lm_connection_close");
-              lm_connection_close (conn->lmconn, NULL);
-            }
-          else
-            {
-              /* lm_connection_is_open() returns FALSE if LmConnection is in the
-               * middle of connecting, so call this just in case */
-              lm_connection_cancel_open (conn->lmconn);
-              g_message ("closed; emitting DISCONNECTED");
-              g_signal_emit (conn, signals[DISCONNECTED], 0);
-            }
-        }
-    }
-  else
-    {
-      g_warning ("%s: attempted to re-emit the current status %u reason %u",
-          G_STRFUNC, status, reason);
-    }
-  g_message("[connection_status_change]");
-  g_message ("out connection status changed ");
-}
-
-static ChannelRequest *
-channel_request_new (DBusGMethodInvocation *context,
-                     const char *channel_type,
-                     guint handle_type,
-                     guint handle,
-                     gboolean suppress_handler)
-{
-  ChannelRequest *ret;
-
-  g_assert (NULL != context);
-  g_assert (NULL != channel_type);
-
-  ret = g_new0 (ChannelRequest, 1);
-  ret->context = context;
-  ret->channel_type = g_strdup (channel_type);
-  ret->handle_type = handle_type;
-  ret->handle = handle;
-  ret->suppress_handler = suppress_handler;
-
-  return ret;
-}
-
-static void
-channel_request_free (ChannelRequest *request)
-{
-  g_assert (NULL == request->context);
-  g_free (request->channel_type);
-  g_free (request);
-}
-
-static void
-channel_request_cancel (gpointer data, gpointer user_data)
-{
-  ChannelRequest *request = (ChannelRequest *) data;
-  GError *error = NULL;
-
-  gabble_debug (DEBUG_FLAG, "cancelling request for %s/%d/%d", request->channel_type, request->handle_type, request->handle);
-
-  error = g_error_new (TELEPATHY_ERRORS, Disconnected, "unable to "
-      "service this channel request, we're disconnecting!");
-
-  dbus_g_method_return_error (request->context, error);
-  request->context = NULL;
-
-  g_error_free (error);
-  channel_request_free (request);
-}
-
-static GPtrArray *
-find_matching_channel_requests (GabbleConnection *conn,
-                                const gchar *channel_type,
-                                guint handle_type,
-                                guint handle,
-                                gboolean *suppress_handler)
-{
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-  GPtrArray *requests;
-  guint i;
-
-  requests = g_ptr_array_sized_new (1);
-
-  for (i = 0; i < priv->channel_requests->len; i++)
-    {
-      ChannelRequest *request = g_ptr_array_index (priv->channel_requests, i);
-
-      if (0 != strcmp (request->channel_type, channel_type))
-        continue;
-
-      if (handle_type != request->handle_type)
-        continue;
-
-      if (handle != request->handle)
-        continue;
-
-      if (request->suppress_handler && suppress_handler)
-        *suppress_handler = TRUE;
-
-      g_ptr_array_add (requests, request);
-    }
-
-  return requests;
-}
-
-static void
-connection_new_channel_cb (TpChannelFactoryIface *factory,
-                           GObject *chan,
-                           gpointer data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (data);
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-  gchar *object_path = NULL, *channel_type = NULL;
-  guint handle_type = 0, handle = 0;
-  gboolean suppress_handler = priv->suppress_next_handler;
-  GPtrArray *tmp;
-  guint i;
-
-  g_object_get (chan,
-      "object-path", &object_path,
-      "channel-type", &channel_type,
-      "handle-type", &handle_type,
-      "handle", &handle,
-      NULL);
-
-  gabble_debug (DEBUG_FLAG, "called for %s", object_path);
-
-  tmp = find_matching_channel_requests (conn, channel_type, handle_type,
-                                        handle, &suppress_handler);
-
-  g_signal_emit (conn, signals[NEW_CHANNEL], 0,
-                 object_path, channel_type,
-                 handle_type, handle,
-                 suppress_handler);
-
-  for (i = 0; i < tmp->len; i++)
-    {
-      ChannelRequest *request = g_ptr_array_index (tmp, i);
-
-      gabble_debug (DEBUG_FLAG, "completing queued request, channel_type=%s, handle_type=%u, "
-          "handle=%u, suppress_handler=%u", request->channel_type,
-          request->handle_type, request->handle, request->suppress_handler);
-
-      dbus_g_method_return (request->context, object_path);
-      request->context = NULL;
-
-      g_ptr_array_remove (priv->channel_requests, request);
-
-      channel_request_free (request);
-    }
-
-  g_ptr_array_free (tmp, TRUE);
-
-  g_free (object_path);
-  g_free (channel_type);
-}
-
-static void
-connection_channel_error_cb (TpChannelFactoryIface *factory,
-                             GObject *chan,
-                             GError *error,
-                             gpointer data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (data);
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-  gchar *channel_type = NULL;
-  guint handle_type = 0, handle = 0;
-  GPtrArray *tmp;
-  guint i;
-
-  gabble_debug (DEBUG_FLAG, "channel_type=%s, handle_type=%u, handle=%u, error_code=%u, "
-      "error_message=\"%s\"", channel_type, handle_type, handle,
-      error->code, error->message);
-
-  g_object_get (chan,
-      "channel-type", &channel_type,
-      "handle-type", &handle_type,
-      "handle", &handle,
-      NULL);
-
-  tmp = find_matching_channel_requests (conn, channel_type, handle_type,
-                                        handle, NULL);
-
-  for (i = 0; i < tmp->len; i++)
-    {
-      ChannelRequest *request = g_ptr_array_index (tmp, i);
-
-      gabble_debug (DEBUG_FLAG, "completing queued request %p, channel_type=%s, "
-          "handle_type=%u, handle=%u, suppress_handler=%u",
-          request, request->channel_type,
-          request->handle_type, request->handle, request->suppress_handler);
-
-      dbus_g_method_return_error (request->context, error);
-      request->context = NULL;
-
-      g_ptr_array_remove (priv->channel_requests, request);
-
-      channel_request_free (request);
-    }
-
-  g_ptr_array_free (tmp, TRUE);
-  g_free (channel_type);
-}
-
-static void
-connection_presence_update_cb (GabblePresenceCache *cache, GabbleHandle handle, gpointer user_data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (user_data);
-
-  emit_one_presence_update (conn, handle);
-}
-
-GabbleConnectionAliasSource
-_gabble_connection_get_cached_alias (GabbleConnection *conn,
-                                     GabbleHandle handle,
-                                     gchar **alias)
-{
-  GabbleConnectionPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (conn,
-      GABBLE_TYPE_CONNECTION, GabbleConnectionPrivate);
-  GabbleConnectionAliasSource ret = GABBLE_CONNECTION_ALIAS_NONE;
-  GabblePresence *pres;
-  const gchar *tmp;
-  gchar *user = NULL, *resource = NULL;
-
-  g_return_val_if_fail (NULL != conn, GABBLE_CONNECTION_ALIAS_NONE);
-  g_return_val_if_fail (GABBLE_IS_CONNECTION (conn), GABBLE_CONNECTION_ALIAS_NONE);
-  g_return_val_if_fail (gabble_handle_is_valid (conn->handles,
-        TP_HANDLE_TYPE_CONTACT, handle, NULL), GABBLE_CONNECTION_ALIAS_NONE);
-
-  tmp = gabble_roster_handle_get_name (conn->roster, handle);
-  if (NULL != tmp)
-    {
-      ret = GABBLE_CONNECTION_ALIAS_FROM_ROSTER;
-
-      if (NULL != alias)
-        *alias = g_strdup (tmp);
-
-      goto OUT;
-    }
-
-  pres = gabble_presence_cache_get (conn->presence_cache, handle);
-  if (NULL != pres && NULL != pres->nickname)
-    {
-      ret = GABBLE_CONNECTION_ALIAS_FROM_PRESENCE;
-
-      if (NULL != alias)
-        *alias = g_strdup (pres->nickname);
-
-      goto OUT;
-    }
-
-  /* if it's our own handle, use alias passed to the connmgr, if any */
-  if (handle == conn->self_handle && priv->alias != NULL)
-    {
-      ret = GABBLE_CONNECTION_ALIAS_FROM_CONNMGR;
-
-      if (NULL != alias)
-        *alias = g_strdup (priv->alias);
-
-      goto OUT;
-    }
-
-  /* if we've seen a nickname in their vCard, use that */
-  tmp = gabble_vcard_manager_get_cached_alias (conn->vcard_manager, handle);
-  if (NULL != tmp)
-    {
-      ret = GABBLE_CONNECTION_ALIAS_FROM_VCARD;
-
-      if (NULL != alias)
-        *alias = g_strdup (tmp);
-
-      goto OUT;
-    }
-
-  /* fallback to JID */
-  tmp = gabble_handle_inspect (conn->handles, TP_HANDLE_TYPE_CONTACT, handle);
-  g_assert (NULL != tmp);
-
-  gabble_decode_jid (tmp, &user, NULL, &resource);
-
-  /* MUC handles have the nickname in the resource */
-  if (NULL != resource)
-    {
-      ret = GABBLE_CONNECTION_ALIAS_FROM_JID;
-
-      if (NULL != alias)
-        {
-          *alias = resource;
-          resource = NULL;
-        }
-
-      goto OUT;
-    }
-
-  /* otherwise just take their local part */
-  if (NULL != user)
-    {
-      ret = GABBLE_CONNECTION_ALIAS_FROM_JID;
-
-      if (NULL != alias)
-        {
-          *alias = user;
-          user = NULL;
-        }
-
-      goto OUT;
-    }
-
-OUT:
-  g_free (user);
-  g_free (resource);
-  return ret;
-}
-
-static void
-connection_nickname_update_cb (GObject *object,
-                               GabbleHandle handle,
-                               gpointer user_data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (user_data);
-  GabbleConnectionAliasSource signal_source, real_source;
-  gchar *alias = NULL;
-  GPtrArray *aliases;
-  GValue entry = { 0, };
-
-  if (object == G_OBJECT (conn->roster))
-    {
-      signal_source = GABBLE_CONNECTION_ALIAS_FROM_ROSTER;
-    }
-  else if (object == G_OBJECT (conn->presence_cache))
-    {
-      signal_source = GABBLE_CONNECTION_ALIAS_FROM_PRESENCE;
-    }
-   else if (object == G_OBJECT (conn->vcard_manager))
-     {
-       signal_source = GABBLE_CONNECTION_ALIAS_FROM_VCARD;
-     }
-  else
-    {
-      g_assert_not_reached ();
-      return;
-    }
-
-  real_source = _gabble_connection_get_cached_alias (conn, handle, &alias);
-
-  g_assert (real_source != GABBLE_CONNECTION_ALIAS_NONE);
-
-  /* if the active alias for this handle is already known and from
-   * a higher priority, this signal is not interesting so we do
-   * nothing */
-  if (real_source > signal_source)
-    {
-      gabble_debug (DEBUG_FLAG, "ignoring boring alias change for handle %u, signal from %u "
-          "but source %u has alias \"%s\"", handle, signal_source,
-          real_source, alias);
-      goto OUT;
-    }
-
-  g_value_init (&entry, TP_ALIAS_PAIR_TYPE);
-  g_value_take_boxed (&entry, dbus_g_type_specialized_construct
-      (TP_ALIAS_PAIR_TYPE));
-
-  dbus_g_type_struct_set (&entry,
-      0, handle,
-      1, alias,
-      G_MAXUINT);
-
-  aliases = g_ptr_array_sized_new (1);
-  g_ptr_array_add (aliases, g_value_get_boxed (&entry));
-
-  g_signal_emit (conn, signals[ALIASES_CHANGED], 0, aliases);
-
-  g_value_unset (&entry);
-  g_ptr_array_free (aliases, TRUE);
-
-OUT:
-  g_free (alias);
-}
-
-/**
- * status_is_available
- *
- * Returns a boolean to indicate whether the given gabble status is
- * available on this connection.
- */
-static gboolean
-status_is_available (GabbleConnection *conn, int status)
-{
-  GabbleConnectionPrivate *priv;
-
-  g_assert (GABBLE_IS_CONNECTION (conn));
-  g_assert (status < LAST_GABBLE_PRESENCE);
-  priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-
-  if (gabble_statuses[status].presence_type == TP_CONN_PRESENCE_TYPE_HIDDEN &&
-      (conn->features & GABBLE_CONNECTION_FEATURES_PRESENCE_INVISIBLE) == 0)
-    return FALSE;
-  else
-    return TRUE;
-}
-
-/**
- * destroy_the_bastard:
- * @data: a GValue to destroy
- *
- * destroys a GValue allocated on the heap
- */
-static void
-destroy_the_bastard (GValue *value)
-{
-  g_value_unset (value);
-  g_free (value);
-}
-
-static GHashTable *
-construct_presence_hash (GabbleConnection *self,
-                         const GArray *contact_handles)
-{
-  guint i;
-  GabbleHandle handle;
-  GHashTable *presence_hash, *contact_status, *parameters;
-  GValueArray *vals;
-  GValue *message;
-  GabblePresence *presence;
-  GabblePresenceId status;
-  const gchar *status_message;
-  /* this is never set at the moment*/
-  guint timestamp = 0;
-
-  g_assert (gabble_handles_are_valid (self->handles, TP_HANDLE_TYPE_CONTACT,
-        contact_handles, FALSE, NULL));
-
-  presence_hash = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL,
-      (GDestroyNotify) g_value_array_free);
-
-  for (i = 0; i < contact_handles->len; i++)
-    {
-      handle = g_array_index (contact_handles, GabbleHandle, i);
-      presence = gabble_presence_cache_get (self->presence_cache, handle);
-
-      if (presence)
-        {
-          status = presence->status;
-          status_message = presence->status_message;
-        }
-      else
-        {
-          status = GABBLE_PRESENCE_OFFLINE;
-          status_message = NULL;
-        }
-
-      message = g_new0 (GValue, 1);
-      g_value_init (message, G_TYPE_STRING);
-      g_value_set_static_string (message, status_message);
-
-      parameters = g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
-          (GDestroyNotify) destroy_the_bastard);
-
-      g_hash_table_insert (parameters, "message", message);
-
-      contact_status = g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
-          (GDestroyNotify) g_hash_table_destroy);
-      g_hash_table_insert (contact_status,
-          (gchar *) gabble_statuses[status].name, parameters);
-
-      vals = g_value_array_new (2);
-
-      g_value_array_append (vals, NULL);
-      g_value_init (g_value_array_get_nth (vals, 0), G_TYPE_UINT);
-      g_value_set_uint (g_value_array_get_nth (vals, 0), timestamp);
-
-      g_value_array_append (vals, NULL);
-      g_value_init (g_value_array_get_nth (vals, 1),
-          dbus_g_type_get_map ("GHashTable", G_TYPE_STRING,
-            dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)));
-      g_value_take_boxed (g_value_array_get_nth (vals, 1), contact_status);
-
-      g_hash_table_insert (presence_hash, GINT_TO_POINTER (handle), vals);
-    }
-
-  return presence_hash;
-}
-
-/**
- * emit_presence_update:
- * @self: A #GabbleConnection
- * @contact_handles: A zero-terminated array of #GabbleHandle for
- *                    the contacts to emit presence for
- *
- * Emits the Telepathy PresenceUpdate signal with the current
- * stored presence information for the given contact.
- */
-static void
-emit_presence_update (GabbleConnection *self,
-                      const GArray *contact_handles)
-{
-  GHashTable *presence_hash;
-
-  presence_hash = construct_presence_hash (self, contact_handles);
-  g_signal_emit (self, signals[PRESENCE_UPDATE], 0, presence_hash);
-  g_hash_table_destroy (presence_hash);
-}
-
-/**
- * emit_one_presence_update:
- * Convenience function for calling emit_presence_update with one handle.
- */
-
-static void
-emit_one_presence_update (GabbleConnection *self,
-                          GabbleHandle handle)
-{
-  GArray *handles = g_array_sized_new (FALSE, FALSE, sizeof (GabbleHandle), 1);
-
-  g_array_insert_val (handles, 0, handle);
-  emit_presence_update (self, handles);
-  g_array_free (handles, TRUE);
-}
-
-/**
- * signal_own_presence:
- * @self: A #GabbleConnection
- * @error: pointer in which to return a GError in case of failure.
- *
- * Signal the user's stored presence to the jabber server
- *
- * Retuns: FALSE if an error occurred
- */
-static gboolean
-signal_own_presence (GabbleConnection *self, GError **error)
-{
-  
-  GabblePresence *presence;
-  LmMessage *message;
-  LmMessageNode *node;
-  gboolean ret;
-  gchar *ext_string = NULL;
-  GSList *features, *i;
-  GabbleConnectionPrivate *priv;
-  
-  if ( NULL == self )
-      {
-      g_debug ("%s: accesing after dereferenced connection", G_STRFUNC);
-      return FALSE;
-      }
-  
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  presence = gabble_presence_cache_get (self->presence_cache, self->self_handle);
-  message = gabble_presence_as_message (presence, priv->resource);
-  node = lm_message_get_node (message);
-  
-  if (presence->status == GABBLE_PRESENCE_HIDDEN)
-    {
-      if ((self->features & GABBLE_CONNECTION_FEATURES_PRESENCE_INVISIBLE) != 0)
-        lm_message_node_set_attribute (node, "type", "invisible");
-    }
-
-  features = capabilities_get_features (presence->caps);
-
-  for (i = features; NULL != i; i = i->next)
-    {
-      const Feature *feat = (const Feature *) i->data;
-
-      if ((NULL != feat->bundle) && g_strdiff (VERSION, feat->bundle))
-        {
-          if (NULL != ext_string)
-            {
-              gchar *tmp = ext_string;
-              ext_string = g_strdup_printf ("%s %s", ext_string, feat->bundle);
-              g_free (tmp);
-            }
-          else
-            {
-              ext_string = g_strdup (feat->bundle);
-            }
-        }
-    }
-
-  node = lm_message_node_add_child (node, "c", NULL);
-  lm_message_node_set_attributes (
-    node,
-    "xmlns", NS_CAPS,
-    "node",  NS_GABBLE_CAPS,
-    "ver",   VERSION,
-    NULL);
-
-  if (NULL != ext_string)
-      lm_message_node_set_attribute (node, "ext", ext_string);
-
-  ret = _gabble_connection_send (self, message, error);
-
-  lm_message_unref (message);
-
-  g_free (ext_string);
-  g_slist_free (features);
-
-  return ret;
-}
-
-static LmMessage *_lm_iq_message_make_result (LmMessage *iq_message);
-
-/**
- * _gabble_connection_send_iq_result
- *
- * Function used to acknowledge an IQ stanza.
- */
-void
-_gabble_connection_acknowledge_set_iq (GabbleConnection *conn,
-                                       LmMessage *iq)
-{
-  LmMessage *result;
-
-  g_assert (LM_MESSAGE_TYPE_IQ == lm_message_get_type (iq));
-  g_assert (LM_MESSAGE_SUB_TYPE_SET == lm_message_get_sub_type (iq));
-
-  result = _lm_iq_message_make_result (iq);
-
-  if (NULL != result)
-    {
-      _gabble_connection_send (conn, result, NULL);
-      lm_message_unref (result);
-    }
-}
-
-
-/**
- * _gabble_connection_send_iq_error
- *
- * Function used to acknowledge an IQ stanza with an error.
- */
-void
-_gabble_connection_send_iq_error (GabbleConnection *conn,
-                                  LmMessage *message,
-                                  GabbleXmppError error,
-                                  const gchar *errmsg)
-{
-  const gchar *to, *id;
-  LmMessage *msg;
-  LmMessageNode *iq_node;
-
-  iq_node = lm_message_get_node (message);
-  to = lm_message_node_get_attribute (iq_node, "from");
-  id = lm_message_node_get_attribute (iq_node, "id");
-
-  if (id == NULL)
-    {
-      NODE_DEBUG (iq_node, "can't acknowledge IQ with no id");
-      return;
-    }
-
-  msg = lm_message_new_with_sub_type (to, LM_MESSAGE_TYPE_IQ,
-                                      LM_MESSAGE_SUB_TYPE_ERROR);
-
-  lm_message_node_set_attribute (msg->node, "id", id);
-
-  lm_message_node_steal_children (msg->node, iq_node);
-
-  gabble_xmpp_error_to_node (error, msg->node, errmsg);
-
-  _gabble_connection_send (conn, msg, NULL);
-
-  lm_message_unref (msg);
-}
-
-static LmMessage *
-_lm_iq_message_make_result (LmMessage *iq_message)
-{
-  LmMessage *result;
-  LmMessageNode *iq, *result_iq;
-  const gchar *from_jid, *id;
-
-  g_assert (lm_message_get_type (iq_message) == LM_MESSAGE_TYPE_IQ);
-  g_assert (lm_message_get_sub_type (iq_message) == LM_MESSAGE_SUB_TYPE_GET ||
-            lm_message_get_sub_type (iq_message) == LM_MESSAGE_SUB_TYPE_SET);
-
-  iq = lm_message_get_node (iq_message);
-  id = lm_message_node_get_attribute (iq, "id");
-
-  if (id == NULL)
-    {
-      NODE_DEBUG (iq, "can't acknowledge IQ with no id");
-      return NULL;
-    }
-
-  from_jid = lm_message_node_get_attribute (iq, "from");
-
-  result = lm_message_new_with_sub_type (from_jid, LM_MESSAGE_TYPE_IQ,
-                                         LM_MESSAGE_SUB_TYPE_RESULT);
-  result_iq = lm_message_get_node (result);
-  lm_message_node_set_attribute (result_iq, "id", id);
-
-  return result;
-}
-
-/**
- * connection_iq_disco_cb
- *
- * Called by loudmouth when we get an incoming <iq>. This handler handles
- * disco-related IQs.
- */
-static LmHandlerResult
-connection_iq_disco_cb (LmMessageHandler *handler,
-                        LmConnection *connection,
-                        LmMessage *message,
-                        gpointer user_data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (user_data);
-  LmMessage *result;
-  LmMessageNode *iq, *result_iq, *query, *result_query;
-  const gchar *node, *suffix;
-  GSList *features;
-  GSList *i;
-  GabblePresence *pres;
-  
-  if ( NULL == conn )
-        {
-        return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-        }
-
-  if (lm_message_get_sub_type (message) != LM_MESSAGE_SUB_TYPE_GET)
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-  iq = lm_message_get_node (message);
-  query = lm_message_node_get_child_with_namespace (iq, "query",
-      NS_DISCO_INFO);
-
-  if (!query)
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-  node = lm_message_node_get_attribute (query, "node");
-
-  if (node && (
-      0 != strncmp (node, NS_GABBLE_CAPS "#", strlen (NS_GABBLE_CAPS) + 1) ||
-      strlen(node) < strlen (NS_GABBLE_CAPS) + 2))
-    {
-      NODE_DEBUG (iq, "got iq disco query with unexpected node attribute");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  if (node == NULL)
-    suffix = NULL;
-  else
-    suffix = node + strlen (NS_GABBLE_CAPS) + 1;
-
-  result = _lm_iq_message_make_result (message);
-  result_iq = lm_message_get_node (result);
-  result_query = lm_message_node_add_child (result_iq, "query", NULL);
-  lm_message_node_set_attribute (result_query, "xmlns", NS_DISCO_INFO);
-
-  pres = gabble_presence_cache_get (conn->presence_cache, conn->self_handle);
-  gabble_debug (DEBUG_FLAG, "got disco request for bundle %s, caps are %x", node, pres->caps);
-  features = capabilities_get_features (pres->caps);
-
-  g_debug("%s: caps now %u", G_STRFUNC, pres->caps);
-
-  for (i = features; NULL != i; i = i->next)
-    {
-      const Feature *feature = (const Feature *) i->data;
-
-      if (NULL == node || !g_strdiff (suffix, feature->bundle))
-        {
-          LmMessageNode *node = lm_message_node_add_child (result_query,
-              "feature", NULL);
-          lm_message_node_set_attribute (node, "var", feature->ns);
-        }
-    }
-
-  NODE_DEBUG (result_iq, "sending disco response");
-
-  if (!lm_connection_send (conn->lmconn, result, NULL))
-    gabble_debug (DEBUG_FLAG, "sending disco response failed");
-
-  g_slist_free (features);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-/**
- * connection_iq_unknown_cb
- *
- * Called by loudmouth when we get an incoming <iq>. This handler is
- * at a lower priority than the others, and should reply with an error
- * about unsupported get/set attempts.
- */
-static LmHandlerResult
-connection_iq_unknown_cb (LmMessageHandler *handler,
-                          LmConnection *connection,
-                          LmMessage *message,
-                          gpointer user_data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (user_data);
-
-  g_assert (connection == conn->lmconn);
-
-  NODE_DEBUG (message->node, "got unknown iq");
-
-  switch (lm_message_get_sub_type (message))
-    {
-    case LM_MESSAGE_SUB_TYPE_GET:
-    case LM_MESSAGE_SUB_TYPE_SET:
-      _gabble_connection_send_iq_error (conn, message,
-          XMPP_ERROR_SERVICE_UNAVAILABLE, NULL);
-      break;
-    default:
-      break;
-    }
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-/**
- * connection_stream_error_cb
- *
- * Called by loudmouth when we get stream error, which means that
- * we're about to close the connection. The message contains the reason
- * for the connection hangup.
- */
-static LmHandlerResult
-connection_stream_error_cb (LmMessageHandler *handler,
-                            LmConnection *connection,
-                            LmMessage *message,
-                            gpointer user_data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (user_data);
-  LmMessageNode *conflict_node;
-
-  g_assert (connection == conn->lmconn);
-
-  NODE_DEBUG (message->node, "got stream error");
-
-  conflict_node = lm_message_node_get_child (message->node, "conflict");
-  if (conflict_node)
-    {
-      gabble_debug (DEBUG_FLAG, "found conflict node, emiting status change");
-
-      /* Another client with the same resource just
-       * appeared, we're going down. */
-        connection_status_change (conn,
-            TP_CONN_STATUS_DISCONNECTED,
-            TP_CONN_STATUS_REASON_NAME_IN_USE);
-        return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-
-  return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-}
-
-
-/**
- * connection_ssl_cb
- *
- * If we're doing old SSL, this function gets called if the certificate
- * is dodgy.
- */
-static LmSSLResponse
-connection_ssl_cb (LmSSL      *lmssl,
-                   LmSSLStatus status,
-                   gpointer    data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (data);
-  
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-  const char *reason;
-  TpConnectionStatusReason tp_reason;
-
-  g_message("inside ssl_cb\n");
-  switch (status) {
-    case LM_SSL_STATUS_NO_CERT_FOUND:
-      reason = "The server doesn't provide a certificate.";
-      tp_reason = TP_CONN_STATUS_REASON_CERT_NOT_PROVIDED;
-      break;
-    case LM_SSL_STATUS_UNTRUSTED_CERT:
-      reason = "The certificate can not be trusted.";
-      tp_reason = TP_CONN_STATUS_REASON_CERT_UNTRUSTED;
-      break;
-    case LM_SSL_STATUS_CERT_EXPIRED:
-      reason = "The certificate has expired.";
-      tp_reason = TP_CONN_STATUS_REASON_CERT_EXPIRED;
-      break;
-    case LM_SSL_STATUS_CERT_NOT_ACTIVATED:
-      reason = "The certificate has not been activated.";
-      tp_reason = TP_CONN_STATUS_REASON_CERT_NOT_ACTIVATED;
-      break;
-    case LM_SSL_STATUS_CERT_HOSTNAME_MISMATCH:
-      reason = "The server hostname doesn't match the one in the certificate.";
-      tp_reason = TP_CONN_STATUS_REASON_CERT_HOSTNAME_MISMATCH;
-      break;
-    case LM_SSL_STATUS_CERT_FINGERPRINT_MISMATCH:
-      reason = "The fingerprint doesn't match the expected value.";
-      tp_reason = TP_CONN_STATUS_REASON_CERT_FINGERPRINT_MISMATCH;
-      break;
-    case LM_SSL_STATUS_GENERIC_ERROR:
-      reason = "An unknown SSL error occurred.";
-      tp_reason = TP_CONN_STATUS_REASON_CERT_OTHER_ERROR;
-      break;
-    default:
-      g_assert_not_reached();
-      reason = "Unknown SSL error code from Loudmouth.";
-      tp_reason = TP_CONN_STATUS_REASON_ENCRYPTION_ERROR;
-      break;
-  }
-
-  gabble_debug (DEBUG_FLAG, "called: %s", reason);
-
-  if (priv->ignore_ssl_errors)
-    {
-      return LM_SSL_RESPONSE_CONTINUE;
-    }
-  else
-    {
-      priv->ssl_error = tp_reason;
-      return LM_SSL_RESPONSE_STOP;
-    }
-}
-
-static void
-do_auth (GabbleConnection *conn)
-{
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-  GError *error = NULL;
-
-  gabble_debug (DEBUG_FLAG, "authenticating with username: %s, password: <hidden>, resource: %s",
-           priv->username, priv->resource);
-
-  if (!lm_connection_authenticate (conn->lmconn, priv->username, priv->password,
-                                   priv->resource, connection_auth_cb,
-                                   conn, NULL, &error))
-    {
-      gabble_debug (DEBUG_FLAG, "failed: %s", error->message);
-      g_error_free (error);
-
-      /* the reason this function can fail is through network errors,
-       * authentication failures are reported to our auth_cb */
-      connection_status_change (conn,
-          TP_CONN_STATUS_DISCONNECTED,
-          TP_CONN_STATUS_REASON_NETWORK_ERROR);
-    }
-}
-
-static void
-registration_finished_cb (GabbleRegister *reg,
-                          gboolean success,
-                          gint err_code,
-                          const gchar *err_msg,
-                          gpointer user_data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (user_data);
-
-  g_message("registration_finished_cb\n");
-  if (conn->status != TP_CONN_STATUS_CONNECTING)
-    {
-      g_assert (conn->status == TP_CONN_STATUS_DISCONNECTED);
-      return;
-    }
-
-  gabble_debug (DEBUG_FLAG, "%s", (success) ? "succeeded" : "failed");
-
-  g_object_unref (reg);
-
-  if (success)
-    {
-      do_auth (conn);
-    }
-  else
-    {
-      gabble_debug (DEBUG_FLAG, "err_code = %d, err_msg = '%s'",
-               err_code, err_msg);
-
-      connection_status_change (conn,
-          TP_CONN_STATUS_DISCONNECTED,
-          (err_code == InvalidArgument) ? TP_CONN_STATUS_REASON_NAME_IN_USE :
-            TP_CONN_STATUS_REASON_AUTHENTICATION_FAILED);
-    }
-}
-
-static void
-do_register (GabbleConnection *conn)
-{
-  GabbleRegister *reg;
-
-  reg = gabble_register_new (conn);
-
-  g_signal_connect (reg, "finished", (GCallback) registration_finished_cb,
-                    conn);
-
-  gabble_register_start (reg);
-}
-
-/**
- * connection_open_cb
- *
- * Stage 2 of connecting, this function is called by loudmouth after the
- * result of the non-blocking lm_connection_open call is known. It makes
- * a request to authenticate the user with the server, or optionally
- * registers user on the server first.
- */
-static void
-connection_open_cb (LmConnection *lmconn,
-                    gboolean      success,
-                    gpointer      data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (data);
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-  g_message("[connection_open_cb]");
-  if ((conn->status != TP_CONN_STATUS_CONNECTING) &&
-      (conn->status != TP_CONN_STATUS_NEW))
-    {
-      g_assert (conn->status == TP_CONN_STATUS_DISCONNECTED);
-      return;
-    }
-
-  g_assert (priv);
-  g_assert (lmconn == conn->lmconn);
-
-  if (!success)
-    {
-      if (lm_connection_get_proxy (lmconn))
-        {
-          g_message ("failed, retrying without proxy");
-
-          lm_connection_set_proxy (lmconn, NULL);
-
-          if (do_connect (conn, NULL))
-            {
-              return;
-            }
-        }
-      else
-        {
-          g_message ("failed");
-        }
-
-      if (priv->ssl_error)
-        {
-        g_message ("[connection_open_cb] priv->ssl_error");
-          connection_status_change (conn,
-            TP_CONN_STATUS_DISCONNECTED,
-            priv->ssl_error);
-        }
-      else
-        {
-        g_message ("[connection_open_cb] reached else");
-          connection_status_change (conn,
-              TP_CONN_STATUS_DISCONNECTED,
-              TP_CONN_STATUS_REASON_NETWORK_ERROR);
-        }
-
-      return;
-    }
-
-  if (!priv->do_register)
-    do_auth (conn);
-  else
-    do_register (conn);
-}
-
-/**
- * connection_auth_cb
- *
- * Stage 3 of connecting, this function is called by loudmouth after the
- * result of the non-blocking lm_connection_authenticate call is known.
- * It sends a discovery request to find the server's features.
- */
-static void
-connection_auth_cb (LmConnection *lmconn,
-                    gboolean      success,
-                    gpointer      data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (data);
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-  GError *error = NULL;
-
-  g_message("In connection_auth_cb\n");
-
-  if (conn->status != TP_CONN_STATUS_CONNECTING)
-    {
-      g_assert (conn->status == TP_CONN_STATUS_DISCONNECTED);
-      return;
-    }
-
-  g_assert (priv);
-  g_assert (lmconn == conn->lmconn);
-
-  if (!success)
-    {
-      gabble_debug (DEBUG_FLAG, "failed");
-	  g_message("Inside !success\n");
-
-      connection_status_change (conn,
-          TP_CONN_STATUS_DISCONNECTED,
-          TP_CONN_STATUS_REASON_AUTHENTICATION_FAILED);
-
-      return;
-    }
-
-  if (!gabble_disco_request_with_timeout (conn->disco, GABBLE_DISCO_TYPE_INFO,
-                                          priv->stream_server, NULL, 5000,
-                                          connection_disco_cb, conn,
-                                          G_OBJECT (conn), &error))
-    {
-      gabble_debug (DEBUG_FLAG, "sending disco request failed: %s",
-          error->message);
-	  g_message("sending disco request failed\n");
-
-      g_error_free (error);
-
-      connection_status_change (conn,
-          TP_CONN_STATUS_DISCONNECTED,
-          TP_CONN_STATUS_REASON_NETWORK_ERROR);
-    }
-}
-
-/**
- * connection_disco_cb
- *
- * Stage 4 of connecting, this function is called by GabbleDisco after the
- * result of the non-blocking server feature discovery call is known. It sends
- * the user's initial presence to the server, marking them as available,
- * and requests the roster.
- */
-static void
-connection_disco_cb (GabbleDisco *disco,
-                     GabbleDiscoRequest *request,
-                     const gchar *jid,
-                     const gchar *node,
-                     LmMessageNode *result,
-                     GError *disco_error,
-                     gpointer user_data)
-{
-  GabbleConnection *conn = user_data;
-  GabbleConnectionPrivate *priv;
-  GError *error = NULL;
-
-	g_message("Inside connection_disco_cb\n");
-	
-  if ( NULL == conn )
-      {
-      return;
-      }
-  if (conn->status != TP_CONN_STATUS_CONNECTING)
-    {
-      g_assert (conn->status == TP_CONN_STATUS_DISCONNECTED);
-      return;
-    }
-
-  g_assert (GABBLE_IS_CONNECTION (conn));
-  priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-
-  if (disco_error)
-    {
-		g_message("got disco error, setting no features\n");
-      gabble_debug (DEBUG_FLAG, "got disco error, setting no features: %s", disco_error->message);
-    }
-  else
-    {
-      LmMessageNode *iter;
-
-      NODE_DEBUG (result, "got");
-
-      for (iter = result->children; iter != NULL; iter = iter->next)
-        {
-          if (0 == strcmp (iter->name, "feature"))
-            {
-              const gchar *var = lm_message_node_get_attribute (iter, "var");
-
-              if (var == NULL)
-                continue;
-
-              if (0 == strcmp (var, NS_GOOGLE_JINGLE_INFO))
-                conn->features |= GABBLE_CONNECTION_FEATURES_GOOGLE_JINGLE_INFO;
-              else if (0 == strcmp (var, NS_GOOGLE_ROSTER))
-                conn->features |= GABBLE_CONNECTION_FEATURES_GOOGLE_ROSTER;
-              else if (0 == strcmp (var, NS_PRESENCE_INVISIBLE))
-                conn->features |= GABBLE_CONNECTION_FEATURES_PRESENCE_INVISIBLE;
-              else if (0 == strcmp (var, NS_PRIVACY))
-                conn->features |= GABBLE_CONNECTION_FEATURES_PRIVACY;
-              else if (0 == strcmp (var, NS_SEARCH))
-                conn->features |= GABBLE_CONNECTION_FEATURES_SEARCH;
-            }
-        }
-
-      gabble_debug (DEBUG_FLAG, "set features flags to %d", conn->features);
-    }
-
-		g_message("before signal_own_presence\n");
-
-  /* send presence to the server to indicate availability */
-  if (!signal_own_presence (conn, &error))
-    {
-      gabble_debug (DEBUG_FLAG, "sending initial presence failed: %s", error->message);
-		g_message("sending initial presence failed\n");
-      goto ERROR;
-    }
-
-		g_message("after signal_own_presence\n");
-
-  /* go go gadget on-line */
-  connection_status_change (conn, TP_CONN_STATUS_CONNECTED, TP_CONN_STATUS_REASON_REQUESTED);
-
-  if (conn->features & GABBLE_CONNECTION_FEATURES_GOOGLE_JINGLE_INFO)
-    {
-      jingle_info_discover_servers (conn);
-    }
-  
-  if(conn->features & GABBLE_CONNECTION_FEATURES_SEARCH)
-	{
-	get_search_keys_info(conn,jid);
-	}
-
-  return;
-
-ERROR:
-  if (error)
-    g_error_free (error);
-
-  connection_status_change (conn,
-      TP_CONN_STATUS_DISCONNECTED,
-      TP_CONN_STATUS_REASON_NETWORK_ERROR);
-
-  return;
-}
-
-
-static GHashTable *
-get_statuses_arguments()
-{
-
-#ifndef EMULATOR
-  static GHashTable *arguments = NULL;
-#endif
-  
-
-  if (arguments == NULL)
-    {
-      arguments = g_hash_table_new (g_str_hash, g_str_equal);
-
-      g_hash_table_insert (arguments, "message", "s");
-      g_hash_table_insert (arguments, "priority", "n");
-    }
-
-  return arguments;
-}
-
-/****************************************************************************
- *                          D-BUS EXPORTED METHODS                          *
- ****************************************************************************/
-
-
-/**
- * gabble_connection_add_status
- *
- * Implements D-Bus method AddStatus
- * on interface org.freedesktop.Telepathy.Connection.Interface.Presence
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_add_status (GabbleConnection *self,
-                              const gchar *status,
-                              GHashTable *parms,
-                              GError **error)
-{
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  ERROR_IF_NOT_CONNECTED (self, error);
-
-  g_set_error (error, TELEPATHY_ERRORS, NotImplemented,
-      "Only one status is possible at a time with this protocol");
-
-  return FALSE;
-}
-
-static void
-_emit_capabilities_changed (GabbleConnection *conn,
-                            GabbleHandle handle,
-                            GabblePresenceCapabilities old_caps,
-                            GabblePresenceCapabilities new_caps)
-{
-  GPtrArray *caps_arr;
-  const CapabilityConversionData *ccd;
-  guint i;
-
-  if (old_caps == new_caps)
-    return;
-
-  caps_arr = g_ptr_array_new ();
-
-  for (ccd = capabilities_conversions; NULL != ccd->iface; ccd++)
-    {
-      if (ccd->c2tf_fn (old_caps | new_caps))
-        {
-          GValue caps_monster_struct = {0, };
-          guint old_tpflags = ccd->c2tf_fn (old_caps);
-          guint old_caps = old_tpflags ?
-            TP_CONN_CAPABILITY_FLAG_CREATE |
-            TP_CONN_CAPABILITY_FLAG_INVITE : 0;
-          guint new_tpflags = ccd->c2tf_fn (new_caps);
-          guint new_caps = new_tpflags ?
-            TP_CONN_CAPABILITY_FLAG_CREATE |
-            TP_CONN_CAPABILITY_FLAG_INVITE : 0;
-
-          if (0 == (old_tpflags ^ new_tpflags))
-            continue;
-
-          g_value_init (&caps_monster_struct,
-              TP_CAPABILITIES_CHANGED_MONSTER_TYPE);
-          g_value_take_boxed (&caps_monster_struct,
-              dbus_g_type_specialized_construct
-                (TP_CAPABILITIES_CHANGED_MONSTER_TYPE));
-
-          dbus_g_type_struct_set (&caps_monster_struct,
-              0, handle,
-              1, ccd->iface,
-              2, old_caps,
-              3, new_caps,
-              4, old_tpflags,
-              5, new_tpflags,
-              G_MAXUINT);
-
-          g_ptr_array_add (caps_arr, g_value_get_boxed (&caps_monster_struct));
-        }
-    }
-
-  if (caps_arr->len)
-    g_signal_emit (conn, signals[CAPABILITIES_CHANGED], 0, caps_arr);
-
-  for (i = 0; i < caps_arr->len; i++)
-    {
-      g_boxed_free (TP_CAPABILITIES_CHANGED_MONSTER_TYPE,
-          g_ptr_array_index (caps_arr, i));
-    }
-  g_ptr_array_free (caps_arr, TRUE);
-}
-
-static void
-connection_capabilities_update_cb (GabblePresenceCache *cache,
-                                   GabbleHandle handle,
-                                   GabblePresenceCapabilities old_caps,
-                                   GabblePresenceCapabilities new_caps,
-                                   gpointer user_data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (user_data);
-
-  _emit_capabilities_changed (conn, handle, old_caps, new_caps);
-}
-
-/**
- * gabble_connection_advertise_capabilities
- *
- * Implements D-Bus method AdvertiseCapabilities
- * on interface org.freedesktop.Telepathy.Connection.Interface.Capabilities
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_advertise_capabilities (GabbleConnection *self,
-                                          const GPtrArray *add,
-                                          const gchar **remove,
-                                          GPtrArray **ret,
-                                          GError **error)
-{
-  guint i;
-  GabblePresence *pres;
-  GabblePresenceCapabilities add_caps = 0, remove_caps = 0, caps, save_caps;
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-  const CapabilityConversionData *ccd;
-
-  ERROR_IF_NOT_CONNECTED (self, error);
-
-  pres = gabble_presence_cache_get (self->presence_cache, self->self_handle);
-  gabble_debug (DEBUG_FLAG, "caps before: %x", pres->caps);
-
-  for (i = 0; i < add->len; i++)
-    {
-      GValue iface_flags_pair = {0, };
-      gchar *iface;
-      guint flags;
-
-      g_value_init (&iface_flags_pair, TP_CAPABILITY_PAIR_TYPE);
-      g_value_set_static_boxed (&iface_flags_pair, g_ptr_array_index (add, i));
-
-      dbus_g_type_struct_get (&iface_flags_pair,
-                              0, &iface,
-                              1, &flags,
-                              G_MAXUINT);
-
-      for (ccd = capabilities_conversions; NULL != ccd->iface; ccd++)
-          if (g_str_equal (iface, ccd->iface))
-            add_caps |= ccd->tf2c_fn (flags);
-    }
-
-  for (i = 0; NULL != remove[i]; i++)
-    {
-      for (ccd = capabilities_conversions; NULL != ccd->iface; ccd++)
-          if (g_str_equal (remove[i], ccd->iface))
-            remove_caps |= ccd->tf2c_fn (~0);
-    }
-
-  pres = gabble_presence_cache_get (self->presence_cache, self->self_handle);
-  save_caps = caps = pres->caps;
-
-  caps |= add_caps;
-  caps ^= (caps & remove_caps);
-
-  gabble_debug (DEBUG_FLAG, "caps to add: %x", add_caps);
-  gabble_debug (DEBUG_FLAG, "caps to remove: %x", remove_caps);
-  gabble_debug (DEBUG_FLAG, "caps after: %x", caps);
-
-  if (caps ^ save_caps)
-    {
-      gabble_debug (DEBUG_FLAG, "before != after, changing");
-      gabble_presence_set_capabilities (pres, priv->resource, caps, priv->caps_serial++);
-      gabble_debug (DEBUG_FLAG, "set caps: %x", pres->caps);
-    }
-
-  *ret = g_ptr_array_new ();
-
-  for (ccd = capabilities_conversions; NULL != ccd->iface; ccd++)
-    {
-      if (ccd->c2tf_fn (pres->caps))
-        {
-          GValue iface_flags_pair = {0, };
-
-          g_value_init (&iface_flags_pair, TP_CAPABILITY_PAIR_TYPE);
-          g_value_take_boxed (&iface_flags_pair,
-              dbus_g_type_specialized_construct (TP_CAPABILITY_PAIR_TYPE));
-
-          dbus_g_type_struct_set (&iface_flags_pair,
-                                  0, ccd->iface,
-                                  1, ccd->c2tf_fn (pres->caps),
-                                  G_MAXUINT);
-
-          g_ptr_array_add (*ret, g_value_get_boxed (&iface_flags_pair));
-        }
-    }
-
-  if (caps ^ save_caps)
-    {
-      if (!signal_own_presence (self, error))
-        return FALSE;
-
-      _emit_capabilities_changed (self, self->self_handle, save_caps, caps);
-    }
-
-  return TRUE;
-}
-
-/**
- * gabble_connection_clear_status
- *
- * Implements D-Bus method ClearStatus
- * on interface org.freedesktop.Telepathy.Connection.Interface.Presence
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_clear_status (GabbleConnection *self,
-                                GError **error)
-{
-  GabbleConnectionPrivate *priv;
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED (self, error);
-
-  gabble_presence_cache_update (self->presence_cache, self->self_handle,
-      priv->resource, GABBLE_PRESENCE_AVAILABLE, NULL, priv->priority);
-  emit_one_presence_update (self, self->self_handle);
-  return signal_own_presence (self, error);
-}
-
-
-/**
- * gabble_connection_connect
- * Implements D-Bus method Connect
- * on interface org.freedesktop.Telepathy.Connection
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-
-gboolean
-gabble_connection_connect (GabbleConnection *self,
-                           GError **error)
-{
-  g_assert(GABBLE_IS_CONNECTION (self));
-  
-  if (self->status == TP_CONN_STATUS_NEW)
-    return _gabble_connection_connect (self, error);
-  return TRUE;
-}
-
-
-/**
- * gabble_connection_disconnect
- *
- * Implements D-Bus method Disconnect
- * on interface org.freedesktop.Telepathy.Connection
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_disconnect (GabbleConnection *self,
-                              GError **error)
-{
-  GabbleConnectionPrivate *priv;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  g_message("gabble_connection_disconnect: going to change status to TP_CONN_STATUS_DISCONNECTED ")	;
-  connection_status_change (self,
-      TP_CONN_STATUS_DISCONNECTED,
-      TP_CONN_STATUS_REASON_REQUESTED);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_connection_get_alias_flags
- *
- * Implements D-Bus method GetAliasFlags
- * on interface org.freedesktop.Telepathy.Connection.Interface.Aliasing
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_get_alias_flags (GabbleConnection *self,
-                                   guint *ret,
-                                   GError **error)
-{
-  GabbleConnectionPrivate *priv;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED (self, error)
-
-  *ret = TP_CONN_ALIAS_FLAG_USER_SET;
-
-  return TRUE;
-}
-
-//#ifndef EMULATOR
-static const gchar *assumed_caps[] =
-{
-  TP_IFACE_CHANNEL_TYPE_TEXT,
-  TP_IFACE_CHANNEL_INTERFACE_GROUP,
-  NULL
-};
-//#endif
-
-
-/**
- * gabble_connection_get_capabilities
- *
- * Implements D-Bus method GetCapabilities
- * on interface org.freedesktop.Telepathy.Connection.Interface.Capabilities
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_get_capabilities (GabbleConnection *self,
-                                    const GArray *handles,
-                                    GPtrArray **ret,
-                                    GError **error)
-{
-  guint i;
-
-  ERROR_IF_NOT_CONNECTED (self, error);
-
-  if (!gabble_handles_are_valid (self->handles,
-                                 TP_HANDLE_TYPE_CONTACT,
-                                 handles,
-                                 TRUE,
-                                 error))
-    {
-      return FALSE;
-    }
-
-  *ret = g_ptr_array_new ();
-
-  for (i = 0; i < handles->len; i++)
-    {
-      GabbleHandle handle = g_array_index (handles, guint, i);
-      GabblePresence *pres;
-      const CapabilityConversionData *ccd;
-      guint typeflags;
-      //#ifndef EMULATOR
-      const gchar **assumed;
-	  //#else
-	  //gchar **assumed;
-	  //#endif
-	  
-      if (0 == handle)
-        {
-          /* FIXME report the magical channel types available on the connection itself */
-          continue;
-        }
-
-      pres = gabble_presence_cache_get (self->presence_cache, handle);
-
-      if (NULL != pres)
-        for (ccd = capabilities_conversions; NULL != ccd->iface; ccd++)
-          {
-            typeflags = ccd->c2tf_fn (pres->caps);
-
-            if (typeflags)
-              {
-                GValue monster = {0, };
-
-                g_value_init (&monster, TP_GET_CAPABILITIES_MONSTER_TYPE);
-                g_value_take_boxed (&monster,
-                    dbus_g_type_specialized_construct (
-                      TP_GET_CAPABILITIES_MONSTER_TYPE));
-
-                dbus_g_type_struct_set (&monster,
-                    0, handle,
-                    1, ccd->iface,
-                    2, TP_CONN_CAPABILITY_FLAG_CREATE |
-                        TP_CONN_CAPABILITY_FLAG_INVITE,
-                    3, typeflags,
-                    G_MAXUINT);
-
-                g_ptr_array_add (*ret, g_value_get_boxed (&monster));
-              }
-          }
-
-      for (assumed = assumed_caps; NULL != *assumed; assumed++)
-        {
-          GValue monster = {0, };
-
-          g_value_init (&monster, TP_GET_CAPABILITIES_MONSTER_TYPE);
-          g_value_take_boxed (&monster,
-              dbus_g_type_specialized_construct (TP_GET_CAPABILITIES_MONSTER_TYPE));
-
-          dbus_g_type_struct_set (&monster,
-              0, handle,
-              1, *assumed,
-              2, TP_CONN_CAPABILITY_FLAG_CREATE |
-                  TP_CONN_CAPABILITY_FLAG_INVITE,
-              3, 0,
-              G_MAXUINT);
-
-          g_ptr_array_add (*ret, g_value_get_boxed (&monster));
-        }
-    }
-
-  return TRUE;
-}
-
-
-/**
- * gabble_connection_get_interfaces
- *
- * Implements D-Bus method GetInterfaces
- * on interface org.freedesktop.Telepathy.Connection
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_get_interfaces (GabbleConnection *self,
-                                  gchar ***ret,
-                                  GError **error)
-{
-  const char *interfaces[] = {
-      TP_IFACE_CONN_INTERFACE_ALIASING,
-      TP_IFACE_CONN_INTERFACE_CAPABILITIES,
-      TP_IFACE_CONN_INTERFACE_PRESENCE,
-      TP_IFACE_PROPERTIES,
-      TP_IFACE_CONN_INTERFACE_AVATAR,
-      NULL };
-  GabbleConnectionPrivate *priv;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED (self, error)
-
-  *ret = g_strdupv ((gchar **) interfaces);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_connection_get_presence
- *
- * Implements D-Bus method GetPresence
- * on interface org.freedesktop.Telepathy.Connection.Interface.Presence
- *
- * @context: The D-Bus invocation context to use to return values
- *           or throw an error.
- */
-void
-gabble_connection_get_presence (GabbleConnection *self,
-                                const GArray *contacts,
-                                DBusGMethodInvocation *context)
-{
-  GHashTable *presence_hash;
-  GError *error = NULL;
-
-  if (!gabble_handles_are_valid (self->handles, TP_HANDLE_TYPE_CONTACT,
-        contacts, FALSE, &error))
-    {
-      dbus_g_method_return_error (context, error);
-      g_error_free (error);
-    }
-
-  presence_hash = construct_presence_hash (self, contacts);
-  dbus_g_method_return (context, presence_hash);
-  g_hash_table_destroy (presence_hash);
-}
-
-
-/**
- * gabble_connection_get_properties
- *
- * Implements D-Bus method GetProperties
- * on interface org.freedesktop.Telepathy.Properties
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_get_properties (GabbleConnection *self,
-                                  const GArray *properties,
-                                  GPtrArray **ret,
-                                  GError **error)
-{
-  return gabble_properties_mixin_get_properties (G_OBJECT (self), properties,
-      ret, error);
-}
-
-
-/**
- * gabble_connection_get_protocol
- *
- * Implements D-Bus method GetProtocol
- * on interface org.freedesktop.Telepathy.Connection
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_get_protocol (GabbleConnection *self,
-                                gchar **ret,
-                                GError **error)
-{
-  GabbleConnectionPrivate *priv;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED (self, error)
-
-  *ret = g_strdup (priv->protocol);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_connection_get_self_handle
- *
- * Implements D-Bus method GetSelfHandle
- * on interface org.freedesktop.Telepathy.Connection
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_get_self_handle (GabbleConnection *self,
-                                   guint *ret,
-                                   GError **error)
-{
-  GabbleConnectionPrivate *priv;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED (self, error)
-
-  *ret = self->self_handle;
-
-  return TRUE;
-}
-
-
-/**
- * gabble_connection_get_status
- *
- * Implements D-Bus method GetStatus
- * on interface org.freedesktop.Telepathy.Connection
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_get_status (GabbleConnection *self,
-                              guint *ret,
-                              GError **error)
-{
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  if (self->status == TP_CONN_STATUS_NEW)
-    {
-      *ret = TP_CONN_STATUS_DISCONNECTED;
-    }
-  else
-    {
-      *ret = self->status;
-    }
-
-  return TRUE;
-}
-
-
-/**
- * gabble_connection_get_statuses
- *
- * Implements D-Bus method GetStatuses
- * on interface org.freedesktop.Telepathy.Connection.Interface.Presence
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_get_statuses (GabbleConnection *self,
-                                GHashTable **ret,
-                                GError **error)
-{
-  GabbleConnectionPrivate *priv;
-  GValueArray *status;
-  int i;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED (self, error)
-
-  gabble_debug (DEBUG_FLAG, "called.");
-
-  *ret = g_hash_table_new_full (g_str_hash, g_str_equal,
-                                NULL, (GDestroyNotify) g_value_array_free);
-
-  for (i=0; i < LAST_GABBLE_PRESENCE; i++)
-    {
-      /* don't report the invisible presence if the server
-       * doesn't have the presence-invisible feature */
-      if (!status_is_available (self, i))
-        continue;
-
-      status = g_value_array_new (5);
-
-      g_value_array_append (status, NULL);
-      g_value_init (g_value_array_get_nth (status, 0), G_TYPE_UINT);
-      g_value_set_uint (g_value_array_get_nth (status, 0),
-          gabble_statuses[i].presence_type);
-
-      g_value_array_append (status, NULL);
-      g_value_init (g_value_array_get_nth (status, 1), G_TYPE_BOOLEAN);
-      g_value_set_boolean (g_value_array_get_nth (status, 1),
-          gabble_statuses[i].self);
-
-      g_value_array_append (status, NULL);
-      g_value_init (g_value_array_get_nth (status, 2), G_TYPE_BOOLEAN);
-      g_value_set_boolean (g_value_array_get_nth (status, 2),
-          gabble_statuses[i].exclusive);
-
-      g_value_array_append (status, NULL);
-      g_value_init (g_value_array_get_nth (status, 3),
-          DBUS_TYPE_G_STRING_STRING_HASHTABLE);
-      g_value_set_static_boxed (g_value_array_get_nth (status, 3),
-          get_statuses_arguments());
-
-      g_hash_table_insert (*ret, (gchar*) gabble_statuses[i].name, status);
-    }
-
-  return TRUE;
-}
-
-
-/**
- * gabble_connection_hold_handles
- *
- * Implements D-Bus method HoldHandles
- * on interface org.freedesktop.Telepathy.Connection
- *
- * @context: The D-Bus invocation context to use to return values
- *           or throw an error.
- */
-void
-gabble_connection_hold_handles (GabbleConnection *self,
-                                guint handle_type,
-                                const GArray *handles,
-                                DBusGMethodInvocation *context)
-{
-  GabbleConnectionPrivate *priv;
-  GError *error = NULL;
-  gchar *sender;
-  guint i;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED_ASYNC (self, error, context)
-
-  if (!gabble_handles_are_valid (self->handles,
-                                 handle_type,
-                                 handles,
-                                 FALSE,
-                                 &error))
-    {
-      dbus_g_method_return_error (context, error);
-      g_error_free (error);
-      return;
-    }
-
-  sender = dbus_g_method_get_sender (context);
-  for (i = 0; i < handles->len; i++)
-    {
-      GabbleHandle handle = g_array_index (handles, GabbleHandle, i);
-      if (!gabble_handle_client_hold (self->handles, sender, handle,
-            handle_type, &error))
-        {
-          dbus_g_method_return_error (context, error);
-          g_error_free (error);
-          return;
-        }
-    }
-
-  dbus_g_method_return (context);
-}
-
-
-/**
- * gabble_connection_inspect_handles
- *
- * Implements D-Bus method InspectHandles
- * on interface org.freedesktop.Telepathy.Connection
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-void
-gabble_connection_inspect_handles (GabbleConnection *self,
-                                   guint handle_type,
-                                   const GArray *handles,
-                                   DBusGMethodInvocation *context)
-{
-  GabbleConnectionPrivate *priv;
-  GError *error = NULL;
-  const gchar **ret;
-  guint i;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED_ASYNC (self, error, context);
-
-  if (!gabble_handles_are_valid (self->handles,
-                                 handle_type,
-                                 handles,
-                                 FALSE,
-                                 &error))
-    {
-      dbus_g_method_return_error (context, error);
-
-      g_error_free (error);
-
-      return;
-    }
-
-  ret = g_new (const gchar *, handles->len + 1);
-
-  for (i = 0; i < handles->len; i++)
-    {
-      GabbleHandle handle;
-      const gchar *tmp;
-
-      handle = g_array_index (handles, GabbleHandle, i);
-      tmp = gabble_handle_inspect (self->handles, handle_type, handle);
-      g_assert (tmp != NULL);
-
-      ret[i] = tmp;
-    }
-
-  ret[i] = NULL;
-
-  dbus_g_method_return (context, ret);
-
-  g_free (ret);
-}
-
-/**
- * list_channel_factory_foreach_one:
- * @key: iterated key
- * @value: iterated value
- * @data: data attached to this key/value pair
- *
- * Called by the exported ListChannels function, this should iterate over
- * the handle/channel pairs in a channel factory, and to the GPtrArray in
- * the data pointer, add a GValueArray containing the following:
- *  a D-Bus object path for the channel object on this service
- *  a D-Bus interface name representing the channel type
- *  an integer representing the handle type this channel communicates with, or zero
- *  an integer handle representing the contact, room or list this channel communicates with, or zero
- */
-static void
-list_channel_factory_foreach_one (TpChannelIface *chan,
-                                  gpointer data)
-{
-  GObject *channel = G_OBJECT (chan);
-  GPtrArray *channels = (GPtrArray *) data;
-  gchar *path, *type;
-  guint handle_type, handle;
-  GValue entry = { 0, };
-
-  g_value_init (&entry, TP_CHANNEL_LIST_ENTRY_TYPE);
-  g_value_take_boxed (&entry, dbus_g_type_specialized_construct
-      (TP_CHANNEL_LIST_ENTRY_TYPE));
-
-  g_object_get (channel,
-      "object-path", &path,
-      "channel-type", &type,
-      "handle-type", &handle_type,
-      "handle", &handle,
-      NULL);
-
-  dbus_g_type_struct_set (&entry,
-      0, path,
-      1, type,
-      2, handle_type,
-      3, handle,
-      G_MAXUINT);
-
-  g_ptr_array_add (channels, g_value_get_boxed (&entry));
-
-  g_free (path);
-  g_free (type);
-}
-
-/**
- * gabble_connection_list_channels
- *
- * Implements D-Bus method ListChannels
- * on interface org.freedesktop.Telepathy.Connection
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_list_channels (GabbleConnection *self,
-                                 GPtrArray **ret,
-                                 GError **error)
-{
-  GabbleConnectionPrivate *priv;
-  GPtrArray *channels;
-  guint i;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED (self, error)
-
-  /* I think on average, each factory will have 2 channels :D */
-  channels = g_ptr_array_sized_new (priv->channel_factories->len * 2);
-
-  for (i = 0; i < priv->channel_factories->len; i++)
-    {
-      TpChannelFactoryIface *factory = g_ptr_array_index
-        (priv->channel_factories, i);
-      tp_channel_factory_iface_foreach (factory,
-          list_channel_factory_foreach_one, channels);
-    }
-
-  *ret = channels;
-
-  return TRUE;
-}
-
-
-/**
- * gabble_connection_list_properties
- *
- * Implements D-Bus method ListProperties
- * on interface org.freedesktop.Telepathy.Properties
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_list_properties (GabbleConnection *self,
-                                   GPtrArray **ret,
-                                   GError **error)
-{
-  return gabble_properties_mixin_list_properties (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_connection_release_handles
- *
- * Implements D-Bus method ReleaseHandles
- * on interface org.freedesktop.Telepathy.Connection
- *
- * @context: The D-Bus invocation context to use to return values
- *           or throw an error.
- */
-void
-gabble_connection_release_handles (GabbleConnection *self,
-                                   guint handle_type,
-                                   const GArray * handles,
-                                   DBusGMethodInvocation *context)
-{
-  GabbleConnectionPrivate *priv;
-  char *sender;
-  GError *error = NULL;
-  guint i;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED_ASYNC (self, error, context)
-
-  if (!gabble_handles_are_valid (self->handles,
-                                 handle_type,
-                                 handles,
-                                 FALSE,
-                                 &error))
-    {
-      dbus_g_method_return_error (context, error);
-      g_error_free (error);
-      return;
-    }
-
-  sender = dbus_g_method_get_sender (context);
-  for (i = 0; i < handles->len; i++)
-    {
-      GabbleHandle handle = g_array_index (handles, GabbleHandle, i);
-      if (!gabble_handle_client_release (self->handles, sender, handle,
-            handle_type, &error))
-        {
-          dbus_g_method_return_error (context, error);
-          g_error_free (error);
-          return;
-        }
-    }
-
-  dbus_g_method_return (context);
-}
-
-
-/**
- * gabble_connection_remove_status
- *
- * Implements D-Bus method RemoveStatus
- * on interface org.freedesktop.Telepathy.Connection.Interface.Presence
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_remove_status (GabbleConnection *self,
-                                 const gchar *status,
-                                 GError **error)
-{
-  GabblePresence *presence;
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  ERROR_IF_NOT_CONNECTED (self, error)
-
-  presence = gabble_presence_cache_get (self->presence_cache,
-      self->self_handle);
-
-  if (strcmp (status, gabble_statuses[presence->status].name) == 0)
-    {
-      gabble_presence_cache_update (self->presence_cache, self->self_handle,
-          priv->resource, GABBLE_PRESENCE_AVAILABLE, NULL, priv->priority);
-      emit_one_presence_update (self, self->self_handle);
-      return signal_own_presence (self, error);
-    }
-  else
-    {
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "Attempting to remove non-existent presence.");
-      return FALSE;
-    }
-}
-
-
-typedef struct _AliasesRequest AliasesRequest;
-
-struct _AliasesRequest
-{
-  GabbleConnection *conn;
-  DBusGMethodInvocation *request_call;
-  guint pending_vcard_requests;
-  GArray *contacts;
-  GabbleVCardManagerRequest **vcard_requests;
-  gchar **aliases;
-};
-
-
-static AliasesRequest *
-aliases_request_new (GabbleConnection *conn,
-                     DBusGMethodInvocation *request_call,
-                     const GArray *contacts)
-{
-  AliasesRequest *request;
-
-  request = g_slice_new0 (AliasesRequest);
-  request->conn = conn;
-  request->request_call = request_call;
-  request->contacts = g_array_new (FALSE, FALSE, sizeof (GabbleHandle));
-  g_array_insert_vals (request->contacts, 0, contacts->data, contacts->len);
-  request->vcard_requests =
-    g_new0 (GabbleVCardManagerRequest *, contacts->len);
-  request->aliases = g_new0 (gchar *, contacts->len + 1);
-  return request;
-}
-
-
-static void
-aliases_request_free (AliasesRequest *request)
-{
-  guint i;
-
-  for (i = 0; i < request->contacts->len; i++)
-    {
-      if (request->vcard_requests[i] != NULL)
-        gabble_vcard_manager_cancel_request (request->conn->vcard_manager,
-            request->vcard_requests[i]);
-    }
-
-  g_array_free (request->contacts, TRUE);
-  g_free (request->vcard_requests);
-  g_strfreev (request->aliases);
-  g_slice_free (AliasesRequest, request);
-}
-
-
-static gboolean
-aliases_request_try_return (AliasesRequest *request)
-{
-  if (request->pending_vcard_requests == 0)
-    {
-      dbus_g_method_return (request->request_call, request->aliases);
-      return TRUE;
-    }
-
-  return FALSE;
-}
-
-
-static void
-aliases_request_vcard_cb (GabbleVCardManager *manager,
-                          GabbleVCardManagerRequest *request,
-                          GabbleHandle handle,
-                          LmMessageNode *vcard,
-                          GError *error,
-                          gpointer user_data)
-{
-  AliasesRequest *aliases_request = (AliasesRequest *) user_data;
-  GabbleConnectionAliasSource source;
-  guint i;
-  gboolean found = FALSE;
-  gchar *alias = NULL;
-
-  g_assert (aliases_request->pending_vcard_requests > 0);
-
-  /* The index of the vCard request in the vCard request array is the
-   * index of the contact/alias in their respective arrays. */
-
-  for (i = 0; i < aliases_request->contacts->len; i++)
-    if (aliases_request->vcard_requests[i] == request)
-      {
-        found = TRUE;
-        break;
-      }
-
-  g_assert (found);
-  source = _gabble_connection_get_cached_alias (aliases_request->conn,
-      g_array_index (aliases_request->contacts, GabbleHandle, i), &alias);
-  g_assert (source != GABBLE_CONNECTION_ALIAS_NONE);
-  g_assert (NULL != alias);
-
-  aliases_request->pending_vcard_requests--;
-  aliases_request->vcard_requests[i] = NULL;
-  aliases_request->aliases[i] = alias;
-
-  if (aliases_request_try_return (aliases_request))
-    aliases_request_free (aliases_request);
-}
-
-
-/**
- * gabble_connection_request_aliases
- *
- * Implements D-Bus method RequestAliases
- * on interface org.freedesktop.Telepathy.Connection.Interface.Aliasing
- *
- * @context: The D-Bus invocation context to use to return values
- *           or throw an error.
- */
-void
-gabble_connection_request_aliases (GabbleConnection *self,
-                                   const GArray *contacts,
-                                   DBusGMethodInvocation *context)
-{
-  guint i;
-  AliasesRequest *request;
-  GError *error = NULL;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  ERROR_IF_NOT_CONNECTED_ASYNC (self, error, context)
-
-  if (!gabble_handles_are_valid (self->handles, TP_HANDLE_TYPE_CONTACT,
-        contacts, FALSE, &error))
-    {
-      dbus_g_method_return_error (context, error);
-      g_error_free (error);
-      return;
-    }
-
-  request = aliases_request_new (self, context, contacts);
-
-  for (i = 0; i < contacts->len; i++)
-    {
-      GabbleHandle handle = g_array_index (contacts, GabbleHandle, i);
-      GabbleConnectionAliasSource source;
-      GabbleVCardManagerRequest *vcard_request;
-      gchar *alias;
-
-      source = _gabble_connection_get_cached_alias (self, handle, &alias);
-      g_assert (source != GABBLE_CONNECTION_ALIAS_NONE);
-      g_assert (NULL != alias);
-
-      if (source >= GABBLE_CONNECTION_ALIAS_FROM_VCARD ||
-          gabble_vcard_manager_has_cached_alias (self->vcard_manager, handle))
-        {
-          /* Either the alias we got was from a vCard or better, or we already
-           * tried getting an alias from a vcard and failed, so there's no
-           * point trying again. */
-          request->aliases[i] = alias;
-        }
-      else
-        {
-          gabble_debug (DEBUG_FLAG, "requesting vCard for alias of contact %s",
-              gabble_handle_inspect (self->handles, TP_HANDLE_TYPE_CONTACT,
-                handle));
-
-          g_free (alias);
-          vcard_request = gabble_vcard_manager_request (self->vcard_manager,
-              handle, 0, aliases_request_vcard_cb, request, G_OBJECT (self),
-              &error);
-
-          if (NULL != error)
-            {
-              dbus_g_method_return_error (context, error);
-              g_error_free (error);
-              aliases_request_free (request);
-              return;
-            }
-
-          request->vcard_requests[i] = vcard_request;
-          request->pending_vcard_requests++;
-        }
-    }
-
-  if (aliases_request_try_return (request))
-    aliases_request_free (request);
-}
-
-
-/**
- * gabble_connection_request_channel
- *
- * Implements D-Bus method RequestChannel
- * on interface org.freedesktop.Telepathy.Connection
- *
- * @context: The D-Bus invocation context to use to return values
- *           or throw an error.
- */
-void
-gabble_connection_request_channel (GabbleConnection *self,
-                                   const gchar *type,
-                                   guint handle_type,
-                                   guint handle,
-                                   gboolean suppress_handler,
-                                   DBusGMethodInvocation *context)
-{
-  GabbleConnectionPrivate *priv;
-  TpChannelFactoryRequestStatus status =
-    TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_IMPLEMENTED;
-  gchar *object_path = NULL;
-  GError *error = NULL;
-  guint i;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED_ASYNC (self, error, context);
-
-  for (i = 0; i < priv->channel_factories->len; i++)
-    {
-      TpChannelFactoryIface *factory = g_ptr_array_index
-        (priv->channel_factories, i);
-      TpChannelFactoryRequestStatus cur_status;
-      TpChannelIface *chan = NULL;
-      ChannelRequest *request = NULL;
-
-      priv->suppress_next_handler = suppress_handler;
-
-      cur_status = tp_channel_factory_iface_request (factory, type,
-          (TpHandleType) handle_type, handle, &chan, &error);
-
-      priv->suppress_next_handler = FALSE;
-
-      switch (cur_status)
-        {
-        case TP_CHANNEL_FACTORY_REQUEST_STATUS_DONE:
-          g_assert (NULL != chan);
-          g_object_get (chan, "object-path", &object_path, NULL);
-          goto OUT;
-        case TP_CHANNEL_FACTORY_REQUEST_STATUS_QUEUED:
-          gabble_debug (DEBUG_FLAG, "queueing request, channel_type=%s, handle_type=%u, "
-              "handle=%u, suppress_handler=%u", type, handle_type,
-              handle, suppress_handler);
-          request = channel_request_new (context, type, handle_type, handle,
-              suppress_handler);
-          g_ptr_array_add (priv->channel_requests, request);
-          return;
-        case TP_CHANNEL_FACTORY_REQUEST_STATUS_ERROR:
-          /* pass through error */
-          goto OUT;
-        default:
-          /* always return the most specific error */
-          if (cur_status > status)
-            status = cur_status;
-        }
-    }
-
-  switch (status)
-    {
-      case TP_CHANNEL_FACTORY_REQUEST_STATUS_INVALID_HANDLE:
-        gabble_debug (DEBUG_FLAG, "invalid handle %u", handle);
-
-        error = g_error_new (TELEPATHY_ERRORS, InvalidHandle,
-                             "invalid handle %u", handle);
-
-        break;
-
-      case TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_AVAILABLE:
-        gabble_debug (DEBUG_FLAG, "requested channel is unavailable with "
-                 "handle type %u", handle_type);
-
-        error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-                             "requested channel is not available with "
-                             "handle type %u", handle_type);
-
-        break;
-
-      case TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_IMPLEMENTED:
-        gabble_debug (DEBUG_FLAG, "unsupported channel type %s", type);
-
-        error = g_error_new (TELEPATHY_ERRORS, NotImplemented,
-                             "unsupported channel type %s", type);
-
-        break;
-
-      default:
-        g_assert_not_reached ();
-    }
-
-OUT:
-  if (NULL != error)
-    {
-      g_assert (NULL == object_path);
-      dbus_g_method_return_error (context, error);
-      g_error_free (error);
-      return;
-    }
-
-  g_assert (NULL != object_path);
-  dbus_g_method_return (context, object_path);
-  g_free (object_path);
-}
-
-
-static void
-hold_and_return_handles (DBusGMethodInvocation *context,
-                         GabbleConnection *conn,
-                         GArray *handles,
-                         guint handle_type)
-{
-  GError *error = NULL;
-  gchar *sender = dbus_g_method_get_sender(context);
-  guint i;
-
-  for (i = 0; i < handles->len; i++)
-    {
-      GabbleHandle handle = (GabbleHandle) g_array_index (handles, guint, i);
-      if (!gabble_handle_client_hold (conn->handles, sender, handle, handle_type, &error))
-        {
-          dbus_g_method_return_error (context, error);
-          g_error_free (error);
-          return;
-        }
-    }
-  dbus_g_method_return (context, handles);
-}
-
-
-const char *
-_gabble_connection_find_conference_server (GabbleConnection *conn)
-{
-  GabbleConnectionPrivate *priv;
-
-  g_assert (GABBLE_IS_CONNECTION (conn));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (conn);
-
-  if (priv->conference_server == NULL)
-    {
-      /* Find first server that has NS_MUC feature */
-      const GabbleDiscoItem *item = gabble_disco_service_find (conn->disco,
-          NULL, NULL, NS_MUC);
-      if (item != NULL)
-        priv->conference_server = item->jid;
-    }
-
-  if (priv->conference_server == NULL)
-    priv->conference_server = priv->fallback_conference_server;
-
-  return priv->conference_server;
-}
-
-
-static gchar *
-_gabble_connection_get_canonical_room_name (GabbleConnection *conn,
-                                           const gchar *name)
-{
-  const gchar *server;
-
-  g_assert (GABBLE_IS_CONNECTION (conn));
-
-  if (index (name, '@'))
-    return g_strdup (name);
-
-  server = _gabble_connection_find_conference_server (conn);
-
-  if (server == NULL)
-    return NULL;
-
-  return g_strdup_printf ("%s@%s", name, server);
-}
-
-
-typedef struct _RoomVerifyContext RoomVerifyContext;
-
-typedef struct {
-    GabbleConnection *conn;
-    DBusGMethodInvocation *invocation;
-    gboolean errored;
-    guint count;
-    GArray *handles;
-    RoomVerifyContext *contexts;
-} RoomVerifyBatch;
-
-struct _RoomVerifyContext {
-    gchar *jid;
-    guint index;
-    RoomVerifyBatch *batch;
-    GabbleDiscoRequest *request;
-};
-
-static void
-room_verify_batch_free (RoomVerifyBatch *batch)
-{
-  guint i;
-
-  g_array_free (batch->handles, TRUE);
-  for (i = 0; i < batch->count; i++)
-    {
-      g_free(batch->contexts[i].jid);
-    }
-  g_free (batch->contexts);
-  g_free (batch);
-}
-
-/* Frees the error and the batch. */
-static void
-room_verify_batch_raise_error (RoomVerifyBatch *batch,
-                               GError *error)
-{
-  guint i;
-
-  dbus_g_method_return_error (batch->invocation, error);
-  g_error_free (error);
-  batch->errored = TRUE;
-  for (i = 0; i < batch->count; i++)
-    {
-      if (batch->contexts[i].request)
-        {
-          gabble_disco_cancel_request(batch->conn->disco,
-                                      batch->contexts[i].request);
-        }
-    }
-  room_verify_batch_free (batch);
-}
-
-static RoomVerifyBatch *
-room_verify_batch_new (GabbleConnection *conn,
-                       DBusGMethodInvocation *invocation,
-                       guint count,
-                       const gchar **jids)
-{
-  RoomVerifyBatch *batch = g_new(RoomVerifyBatch, 1);
-  guint i;
-
-  batch->errored = FALSE;
-  batch->conn = conn;
-  batch->invocation = invocation;
-  batch->count = count;
-  batch->handles = g_array_sized_new(FALSE, FALSE, sizeof(GabbleHandle), count);
-  batch->contexts = g_new0(RoomVerifyContext, count);
-  for (i = 0; i < count; i++)
-    {
-      const gchar *name = jids[i];
-      gchar *qualified_name;
-      GabbleHandle handle;
-
-      batch->contexts[i].index = i;
-      batch->contexts[i].batch = batch;
-
-      qualified_name = _gabble_connection_get_canonical_room_name (conn, name);
-
-      if (!qualified_name)
-        {
-          GError *error = NULL;
-          gabble_debug (DEBUG_FLAG, "requested handle %s contains no conference server",
-                 name);
-          error = g_error_new (TELEPATHY_ERRORS, NotAvailable, "requested "
-                  "room handle %s does not specify a server, but we have not discovered "
-                  "any local conference servers and no fallback was provided", name);
-          room_verify_batch_raise_error (batch, error);
-          return NULL;
-        }
-
-      batch->contexts[i].jid = qualified_name;
-
-      /* has the handle been verified before? */
-      if (gabble_handle_for_room_exists (conn->handles, qualified_name, FALSE))
-        {
-          handle = gabble_handle_for_room (conn->handles, qualified_name);
-        }
-      else
-        {
-          handle = 0;
-        }
-      g_array_append_val (batch->handles, handle);
-    }
-
-  return batch;
-}
-
-/* If all handles in the array have been disco'd or got from cache,
-free the batch and return TRUE. Else return FALSE. */
-static gboolean
-room_verify_batch_try_return (RoomVerifyBatch *batch)
-{
-  guint i;
-
-  for (i = 0; i < batch->count; i++)
-    {
-      if (!g_array_index(batch->handles, GabbleHandle, i))
-        {
-          /* we're not ready yet */
-          return FALSE;
-        }
-    }
-
-  hold_and_return_handles (batch->invocation, batch->conn, batch->handles, TP_HANDLE_TYPE_ROOM);
-  room_verify_batch_free (batch);
-  return TRUE;
-}
-
-static void
-room_jid_disco_cb (GabbleDisco *disco,
-                   GabbleDiscoRequest *request,
-                   const gchar *jid,
-                   const gchar *node,
-                   LmMessageNode *query_result,
-                   GError *error,
-                   gpointer user_data)
-{
-  RoomVerifyContext *rvctx = user_data;
-  RoomVerifyBatch *batch = rvctx->batch;
-  LmMessageNode *lm_node;
-  gboolean found = FALSE;
-  GabbleHandle handle;
-
-  /* stop the request getting cancelled after it's already finished */
-  rvctx->request = NULL;
-
-  /* if an error is being handled already, quietly go away */
-  if (batch->errored)
-    {
-      return;
-    }
-
-  if (error != NULL)
-    {
-      gabble_debug (DEBUG_FLAG, "disco reply error %s", error->message);
-
-      /* disco will free the old error, _raise_error will free the new one */
-      error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-        "can't retrieve room info: %s", error->message);
-
-      room_verify_batch_raise_error (batch, error);
-
-      return;
-    }
-
-  for (lm_node = query_result->children; lm_node; lm_node = lm_node->next)
-    {
-      const gchar *var;
-
-      if (g_strdiff (lm_node->name, "feature"))
-        continue;
-
-      var = lm_message_node_get_attribute (lm_node, "var");
-
-      /* for servers who consider schema compliance to be an optional bonus */
-      if (var == NULL)
-        var = lm_message_node_get_attribute (lm_node, "type");
-
-      if (!g_strdiff (var, NS_MUC))
-        {
-          found = TRUE;
-          break;
-        }
-    }
-
-  if (!found)
-    {
-      gabble_debug (DEBUG_FLAG, "no MUC support for service name in jid %s", rvctx->jid);
-
-      error = g_error_new (TELEPATHY_ERRORS, NotAvailable, "specified server "
-          "doesn't support MUC");
-
-      room_verify_batch_raise_error (batch, error);
-
-      return;
-    }
-
-  handle = gabble_handle_for_room (batch->conn->handles, rvctx->jid);
-  g_assert (handle != 0);
-
-  gabble_debug (DEBUG_FLAG, "disco reported MUC support for service name in jid %s", rvctx->jid);
-  g_array_index (batch->handles, GabbleHandle, rvctx->index) = handle;
-
-  /* if this was the last callback to be run, send off the result */
-  room_verify_batch_try_return (batch);
-}
-
-/**
- * room_jid_verify:
- *
- * Utility function that verifies that the service name of
- * the specified jid exists and reports MUC support.
- */
-static gboolean
-room_jid_verify (RoomVerifyBatch *batch,
-                 guint index,
-                 DBusGMethodInvocation *context)
-{
-  gchar *room, *service;
-  gboolean ret;
-  GError *error = NULL;
-
-  room = service = NULL;
-  gabble_decode_jid (batch->contexts[index].jid, &room, &service, NULL);
-
-  g_assert (room && service);
-
-  ret = (gabble_disco_request (batch->conn->disco, GABBLE_DISCO_TYPE_INFO,
-                               service, NULL, room_jid_disco_cb,
-                               batch->contexts + index,
-                               G_OBJECT (batch->conn), &error) != NULL);
-  if (!ret)
-    {
-      room_verify_batch_raise_error (batch, error);
-    }
-
-  g_free (room);
-  g_free (service);
-
-  return ret;
-}
-
-
-/**
- * gabble_connection_request_handles
- *
- * Implements D-Bus method RequestHandles
- * on interface org.freedesktop.Telepathy.Connection
- *
- * @context: The D-Bus invocation context to use to return values
- *           or throw an error.
- */
-void
-gabble_connection_request_handles (GabbleConnection *self,
-                                   guint handle_type,
-                                   const gchar **names,
-                                   DBusGMethodInvocation *context)
-{
-  guint count = 0, i;
-  const gchar **cur_name;
-  GError *error = NULL;
-  GArray *handles = NULL;
-  RoomVerifyBatch *batch = NULL;
-
-  for (cur_name = names; *cur_name != NULL; cur_name++)
-    {
-      count++;
-    }
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  ERROR_IF_NOT_CONNECTED_ASYNC (self, error, context)
-
-  if (!gabble_handle_type_is_valid (handle_type, &error))
-    {
-      dbus_g_method_return_error (context, error);
-      g_error_free (error);
-      return;
-    }
-
-  switch (handle_type)
-    {
-    case TP_HANDLE_TYPE_CONTACT:
-      handles = g_array_sized_new(FALSE, FALSE, sizeof(GabbleHandle), count);
-
-      for (i = 0; i < count; i++)
-        {
-          GabbleHandle handle;
-          const gchar *name = names[i];
-
-          if (!gabble_handle_jid_is_valid (handle_type, name, &error))
-            {
-              dbus_g_method_return_error (context, error);
-              g_error_free (error);
-
-              g_array_free (handles, TRUE);
-              return;
-            }
-
-          handle = gabble_handle_for_contact (self->handles, name, FALSE);
-
-          if (handle == 0)
-            {
-              gabble_debug (DEBUG_FLAG, "requested handle %s was invalid", name);
-
-              error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-                                   "requested handle %s was invalid", name);
-              dbus_g_method_return_error (context, error);
-              g_error_free (error);
-
-              g_array_free (handles, TRUE);
-              return;
-            }
-
-          g_array_append_val(handles, handle);
-        }
-      hold_and_return_handles (context, self, handles, handle_type);
-      g_array_free(handles, TRUE);
-      break;
-
-    case TP_HANDLE_TYPE_ROOM:
-      batch = room_verify_batch_new (self, context, count, names);
-      if (!batch)
-        {
-          /* an error occurred while setting up the batch, and we returned error
-          to dbus */
-          return;
-        }
-
-      /* have all the handles been verified already? If so, nothing to do */
-      if (room_verify_batch_try_return (batch))
-        {
-          return;
-        }
-
-      for (i = 0; i < count; i++)
-        {
-          if (!room_jid_verify (batch, i, context))
-            {
-              return;
-            }
-        }
-
-      /* we've set the verification process going - the callback will handle
-      returning or raising error */
-      break;
-
-    case TP_HANDLE_TYPE_LIST:
-      handles = g_array_sized_new(FALSE, FALSE, sizeof(GabbleHandle), count);
-
-      for (i = 0; i < count; i++)
-        {
-          GabbleHandle handle;
-          const gchar *name = names[i];
-
-          handle = gabble_handle_for_list (self->handles, name);
-
-          if (handle == 0)
-            {
-              gabble_debug (DEBUG_FLAG, "requested list channel %s not available", name);
-
-              error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-                                   "requested list channel %s not available",
-                                   name);
-              dbus_g_method_return_error (context, error);
-              g_error_free (error);
-
-              g_array_free (handles, TRUE);
-              return;
-            }
-          g_array_append_val(handles, handle);
-        }
-      hold_and_return_handles (context, self, handles, handle_type);
-      g_array_free(handles, TRUE);
-      break;
-
-    default:
-      gabble_debug (DEBUG_FLAG, "unimplemented handle type %u", handle_type);
-
-      error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-                          "unimplemented handle type %u", handle_type);
-      dbus_g_method_return_error (context, error);
-      g_error_free (error);
-    }
-}
-
-
-/**
- * gabble_connection_request_presence
- *
- * Implements D-Bus method RequestPresence
- * on interface org.freedesktop.Telepathy.Connection.Interface.Presence
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_request_presence (GabbleConnection *self,
-                                    const GArray *contacts,
-                                    GError **error)
-{
-  GabbleConnectionPrivate *priv;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED (self, error)
-
-  if (!gabble_handles_are_valid (self->handles, TP_HANDLE_TYPE_CONTACT,
-        contacts, FALSE, error))
-    return FALSE;
-
-  if (contacts->len)
-    emit_presence_update (self, contacts);
-
-  return TRUE;
-}
-
-
-struct _i_hate_g_hash_table_foreach
-{
-  GabbleConnection *conn;
-  GError **error;
-  gboolean retval;
-};
-
-static void
-setaliases_foreach (gpointer key, gpointer value, gpointer user_data)
-{
-  struct _i_hate_g_hash_table_foreach *data =
-    (struct _i_hate_g_hash_table_foreach *) user_data;
-  GabbleHandle handle = GPOINTER_TO_INT (key);
-  gchar *alias = (gchar *) value;
-  GError *error = NULL;
-
-  if (!gabble_handle_is_valid (data->conn->handles, TP_HANDLE_TYPE_CONTACT,
-        handle, &error))
-    {
-      data->retval = FALSE;
-    }
-  else if (data->conn->self_handle == handle)
-    {
-      /* only alter the roster if we're already there, e.g. because someone
-       * added us with another client
-       */
-      if (gabble_roster_handle_has_entry (data->conn->roster, handle)
-          && !gabble_roster_handle_set_name (data->conn->roster, handle,
-                                             alias, data->error))
-        {
-          data->retval = FALSE;
-        }
-    }
-  else if (!gabble_roster_handle_set_name (data->conn->roster, handle, alias,
-        data->error))
-    {
-      data->retval = FALSE;
-    }
-
-  if (data->conn->self_handle == handle)
-    {
-      /* User has done SetAliases on themselves - patch their vCard.
-       * FIXME: because SetAliases is currently synchronous, we ignore errors
-       * here, and just let the request happen in the background
-       */
-      gabble_vcard_manager_edit (data->conn->vcard_manager,
-                                 0, NULL, NULL, G_OBJECT(data->conn), NULL,
-                                 "NICKNAME", alias, NULL);
-    }
-
-  if (NULL != error)
-    {
-      if (NULL == *(data->error))
-        {
-          *(data->error) = error;
-        }
-      else
-        {
-          g_error_free (error);
-        }
-    }
-}
-
-/**
- * gabble_connection_set_aliases
- *
- * Implements D-Bus method SetAliases
- * on interface org.freedesktop.Telepathy.Connection.Interface.Aliasing
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_set_aliases (GabbleConnection *self,
-                               GHashTable *aliases,
-                               GError **error)
-{
-  GabbleConnectionPrivate *priv;
-  struct _i_hate_g_hash_table_foreach data = { NULL, NULL, TRUE };
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED (self, error)
-
-  data.conn = self;
-  data.error = error;
-
-  g_hash_table_foreach (aliases, setaliases_foreach, &data);
-
-  return data.retval;
-}
-
-
-/**
- * gabble_connection_set_last_activity_time
- *
- * Implements D-Bus method SetLastActivityTime
- * on interface org.freedesktop.Telepathy.Connection.Interface.Presence
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_set_last_activity_time (GabbleConnection *self,
-                                          guint time,
-                                          GError **error)
-{
-  GabbleConnectionPrivate *priv;
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED (self, error)
-
-  return TRUE;
-}
-
-
-static void
-setstatuses_foreach (gpointer key, gpointer value, gpointer user_data)
-{
-  struct _i_hate_g_hash_table_foreach *data =
-    (struct _i_hate_g_hash_table_foreach*) user_data;
-  GabbleConnectionPrivate *priv = GABBLE_CONNECTION_GET_PRIVATE (data->conn);
-
-  int i;
-
-  for (i = 0; i < LAST_GABBLE_PRESENCE; i++)
-    {
-      if (0 == strcmp (gabble_statuses[i].name, (const gchar*) key))
-        break;
-    }
-
-  if (i < LAST_GABBLE_PRESENCE)
-    {
-      GHashTable *args = (GHashTable *)value;
-      GValue *message = g_hash_table_lookup (args, "message");
-      GValue *priority = g_hash_table_lookup (args, "priority");
-      const gchar *status = NULL;
-      gint8 prio = priv->priority;
-
-      if (!status_is_available (data->conn, i))
-        {
-          gabble_debug (DEBUG_FLAG, "requested status %s is not available", (const gchar *) key);
-          g_set_error (data->error, TELEPATHY_ERRORS, NotAvailable,
-              "requested status '%s' is not available on this connection",
-              (const gchar *) key);
-          data->retval = FALSE;
-          return;
-        }
-
-      if (message)
-        {
-          if (!G_VALUE_HOLDS_STRING (message))
-            {
-              gabble_debug (DEBUG_FLAG, "got a status message which was not a string");
-              g_set_error (data->error, TELEPATHY_ERRORS, InvalidArgument,
-                  "Status argument 'message' requires a string");
-              data->retval = FALSE;
-              return;
-            }
-          status = g_value_get_string (message);
-        }
-
-      if (priority)
-        {
-          if (!G_VALUE_HOLDS_INT (priority))
-            {
-              gabble_debug (DEBUG_FLAG, "got a priority value which was not a signed integer");
-              g_set_error (data->error, TELEPATHY_ERRORS, InvalidArgument,
-                   "Status argument 'priority' requires a signed integer");
-              data->retval = FALSE;
-              return;
-            }
-          prio = CLAMP (g_value_get_int (priority), G_MININT8, G_MAXINT8);
-        }
-
-      gabble_presence_cache_update (data->conn->presence_cache, data->conn->self_handle, priv->resource, i, status, prio);
-      emit_one_presence_update (data->conn, data->conn->self_handle);
-      data->retval = signal_own_presence (data->conn, data->error);
-    }
-  else
-    {
-      gabble_debug (DEBUG_FLAG, "got unknown status identifier %s", (const gchar *) key);
-      g_set_error (data->error, TELEPATHY_ERRORS, InvalidArgument,
-          "unknown status identifier: %s", (const gchar *) key);
-      data->retval = FALSE;
-    }
-}
-
-/**
- * gabble_connection_set_properties
- *
- * Implements D-Bus method SetProperties
- * on interface org.freedesktop.Telepathy.Properties
- *
- * @context: The D-Bus invocation context to use to return values
- *           or throw an error.
- */
-void
-gabble_connection_set_properties (GabbleConnection *self,
-                                  const GPtrArray *properties,
-                                  DBusGMethodInvocation *context)
-{
-  gabble_properties_mixin_set_properties (G_OBJECT (self), properties, context);
-}
-
-/**
- * gabble_connection_set_status
- *
- * Implements D-Bus method SetStatus
- * on interface org.freedesktop.Telepathy.Connection.Interface.Presence
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_connection_set_status (GabbleConnection *self,
-                              GHashTable *statuses,
-                              GError **error)
-{
-  GabbleConnectionPrivate *priv;
-  struct _i_hate_g_hash_table_foreach data = { NULL, NULL, TRUE };
-
-  g_assert (GABBLE_IS_CONNECTION (self));
-
-  priv = GABBLE_CONNECTION_GET_PRIVATE (self);
-
-  ERROR_IF_NOT_CONNECTED (self, error)
-
-  if (g_hash_table_size (statuses) != 1)
-    {
-      gabble_debug (DEBUG_FLAG, "got more than one status");
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "Only one status may be set at a time in this protocol");
-      return FALSE;
-    }
-
-  data.conn = self;
-  data.error = error;
-  g_hash_table_foreach (statuses, setstatuses_foreach, &data);
-
-  return data.retval;
-}
-
-/**
- * gabble_connection_build_avatar
- *
- * Implements D-Bus method SetAvatar
- * on interface org.freedesktop.Telepathy.Connection.Avatar
- *
- * @context: The D-Bus invocation context to use to return values
- *           or throw an error.
- */
-
-LmMessage* gabble_connection_build_avatar(GabbleConnection *self,  
-        const GArray* bin_image, gchar* mime )
-    {
-    int i = 0; 
-    LmMessage    *message;
-    LmMessageNode *lm_node,*photo_node;
-    LmMessageHandler* handler = NULL;
-    char* base64 = NULL;
-    GError* error = NULL;
-    //NULL values to be checked ? never returns NULL?
-    if ( bin_image )
-        {
-        if ( self->self_avatar_sha1 ) 
-            {
-            free( self->self_avatar_sha1 );
-            self->self_avatar_sha1 = NULL;
-            }
-        self->self_avatar_sha1 = sha1_hex( bin_image->data, bin_image->len );
-        base64 = base64_encode ( bin_image->len, bin_image->data );
-        }  
-
-    message = lm_message_new_with_sub_type ( NULL,
-            LM_MESSAGE_TYPE_IQ,
-            LM_MESSAGE_SUB_TYPE_SET );
-    lm_node = lm_message_node_add_child (message->node, "vCard", NULL);
-    lm_message_node_set_attribute (lm_node, "xmlns", NS_VCARD_TEMP);
-    photo_node = lm_message_node_add_child (lm_node, "PHOTO", NULL); 
-    lm_message_node_add_child (photo_node, "TYPE", mime);
-    lm_message_node_add_child (photo_node, "BINVAL", base64);
-    g_free(base64);
-    return message;
-    }
-
-/**
- * gabble_connection_set_avatar
- *
- * Implements D-Bus method SetAvatar
- * on interface org.freedesktop.Telepathy.Connection
- *
- */
-gboolean  
-gabble_connection_set_avatar( GabbleConnection *self, const GArray* bin_image, gchar* mime_type, gchar**avatar_sha1,
-        GError** err )
-    {
-    
-    gboolean ret = FALSE; 
-    LmMessage *message; 
-    
-
-    //There is no need to check bin_image and mime for NULL.. NULL is a valid value for those
-    message = gabble_connection_build_avatar( self, bin_image, mime_type );
-
-    ret = _gabble_connection_send ( self, message, err );
-    
-    if ( *err ) 
-            {
-            *avatar_sha1 = NULL;
-            //ret is already false.. so false returned
-            }
-        else {
-            if ( self->self_avatar_sha1 )
-                {
-                *avatar_sha1 = g_strdup( self->self_avatar_sha1 );
-                }
-            ret = TRUE;
-            }
-
-    lm_message_unref( message );
-    
-    return ret;
-    }
-
-/**
- * gabble_connection_clear_avatar
- *
- * Implements D-Bus method ClearAvatar
- * on interface org.freedesktop.Telepathy.Connection.Interface.Avatar
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean 
-gabble_connection_clear_avatar( GabbleConnection *self,
-                              GError **error)
- {
-   LmMessage *message;
-   gboolean ret = TRUE;
-
-
-   //Build the avatar xml with NULL as image data and NULL as mimetype
-   message = gabble_connection_build_avatar( self, 
-           NULL, NULL );
-
-   ret = _gabble_connection_send ( self, message, error );
-
-   if ( self->self_avatar_sha1 ) 
-       {
-       free( self->self_avatar_sha1 );
-       self->self_avatar_sha1 = NULL;
-       }
-
-   lm_message_unref( message );
-
-   return ret;
- }
--- a/telepathygabble/src/gabble-error.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,437 +0,0 @@
-/*
- * gabble-error.c - Source for Gabble's error handling API
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "gabble-error.h"
-#include "namespaces.h"
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(quark,gabble_error,GQuark)
-	#define quark (*GET_WSD_VAR_NAME(quark,gabble_error,s)())
-
-#endif
-
-#define MAX_LEGACY_ERRORS 3
-
-typedef struct {
-    const gchar *name;
-    const gchar *description;
-    const gchar *type;
-    guint specialises;
-    const gchar *namespace;
-    const guint16 legacy_errors[MAX_LEGACY_ERRORS];
-} XmppErrorSpec;
-
-static const XmppErrorSpec xmpp_errors[NUM_XMPP_ERRORS] =
-{
-    {
-      "redirect",
-      "the recipient or server is redirecting requests for this information "
-      "to another entity",
-      "modify",
-      0,
-      NULL,
-      { 302, 0, },
-    },
-
-    {
-      "gone",
-      "the recipient or server can no longer be contacted at this address",
-      "modify",
-      0,
-      NULL,
-      { 302, 0, },
-    },
-
-    {
-      "bad-request",
-      "the sender has sent XML that is malformed or that cannot be processed",
-      "modify",
-      0,
-      NULL,
-      { 400, 0, },
-    },
-    {
-      "unexpected-request",
-      "the recipient or server understood the request but was not expecting "
-      "it at this time",
-      "wait",
-      0,
-      NULL,
-      { 400, 0, },
-    },
-    {
-      "jid-malformed",
-      "the sending entity has provided or communicated an XMPP address or "
-      "aspect thereof (e.g., a resource identifier) that does not adhere "
-      "to the syntax defined in Addressing Scheme (Section 3)",
-      "modify",
-      0,
-      NULL,
-      { 400, 0, },
-    },
-
-    {
-      "not-authorized",
-      "the sender must provide proper credentials before being allowed to "
-      "perform the action, or has provided improper credentials",
-      "auth",
-      0,
-      NULL,
-      { 401, 0, },
-    },
-
-    {
-      "payment-required",
-      "the requesting entity is not authorized to access the requested "
-      "service because payment is required",
-      "auth",
-      0,
-      NULL,
-      { 402, 0, },
-    },
-
-    {
-      "forbidden",
-      "the requesting entity does not possess the required permissions to "
-      "perform the action",
-      "auth",
-      0,
-      NULL,
-      { 403, 0, },
-    },
-
-    {
-      "item-not-found",
-      "the addressed JID or item requested cannot be found",
-      "cancel",
-      0,
-      NULL,
-      { 404, 0, },
-    },
-    {
-      "recipient-unavailable",
-      "the intended recipient is temporarily unavailable",
-      "wait",
-      0,
-      NULL,
-      { 404, 0, },
-    },
-    {
-      "remote-server-not-found",
-      "a remote server or service specified as part or all of the JID of the "
-      "intended recipient (or required to fulfill a request) could not be "
-      "contacted within a reasonable amount of time",
-      "cancel",
-      0,
-      NULL,
-      { 404, 0, },
-    },
-
-    {
-      "not-allowed",
-      "the recipient or server does not allow any entity to perform the action",
-      "cancel",
-      0,
-      NULL,
-      { 405, 0, },
-    },
-
-    {
-      "not-acceptable",
-      "the recipient or server understands the request but is refusing to "
-      "process it because it does not meet criteria defined by the recipient "
-      "or server (e.g., a local policy regarding acceptable words in messages)",
-      "modify",
-      0,
-      NULL,
-      { 406, 0, },
-    },
-
-    {
-      "registration-required",
-      "the requesting entity is not authorized to access the requested service "
-      "because registration is required",
-      "auth",
-      0,
-      NULL,
-      { 407, 0, },
-    },
-    {
-      "subscription-required",
-      "the requesting entity is not authorized to access the requested service "
-      "because a subscription is required",
-      "auth",
-      0,
-      NULL,
-      { 407, 0, },
-    },
-
-    {
-      "remote-server-timeout",
-      "a remote server or service specified as part or all of the JID of the "
-      "intended recipient (or required to fulfill a request) could not be "
-      "contacted within a reasonable amount of time",
-      "wait",
-      0,
-      NULL,
-      { 408, 504, 0, },
-    },
-
-    {
-      "conflict",
-      "access cannot be granted because an existing resource or session exists "
-      "with the same name or address",
-      "cancel",
-      0,
-      NULL,
-      { 409, 0, },
-    },
-
-    {
-      "internal-server-error",
-      "the server could not process the stanza because of a misconfiguration "
-      "or an otherwise-undefined internal server error",
-      "wait",
-      0,
-      NULL,
-      { 500, 0, },
-    },
-    {
-      "undefined-condition",
-      "application-specific condition",
-      NULL,
-      0,
-      NULL,
-      { 500, 0, },
-    },
-    {
-      "resource-constraint",
-      "the server or recipient lacks the system resources necessary to service "
-      "the request",
-      "wait",
-      0,
-      NULL,
-      { 500, 0, },
-    },
-
-    {
-      "feature-not-implemented",
-      "the feature requested is not implemented by the recipient or server and "
-      "therefore cannot be processed",
-      "cancel",
-      0,
-      NULL,
-      { 501, 0, },
-    },
-
-    {
-      "service-unavailable",
-      "the server or recipient does not currently provide the requested "
-      "service",
-      "cancel",
-      0,
-      NULL,
-      { 502, 503, 510, },
-    },
-
-    {
-      "out-of-order",
-      "the request cannot occur at this point in the state machine",
-      "cancel",
-      XMPP_ERROR_UNEXPECTED_REQUEST,
-      NS_JINGLE_ERRORS,
-      { 0, },
-    },
-
-    {
-      "unknown-session",
-      "the 'sid' attribute specifies a session that is unknown to the "
-      "recipient",
-      "cancel",
-      XMPP_ERROR_BAD_REQUEST,
-      NS_JINGLE_ERRORS,
-      { 0, },
-    },
-
-    {
-      "unsupported-transports",
-      "the recipient does not support any of the desired content transport "
-      "methods",
-      "cancel",
-      XMPP_ERROR_FEATURE_NOT_IMPLEMENTED,
-      NS_JINGLE_ERRORS,
-      { 0, },
-    },
-
-    {
-      "unsupported-content",
-      "the recipient does not support any of the desired content description"
-      "formats",
-      "cancel",
-      XMPP_ERROR_FEATURE_NOT_IMPLEMENTED,
-      NS_JINGLE_ERRORS,
-      { 0, },
-    },
-};
-
-GQuark
-gabble_xmpp_error_quark (void)
-{
-
-#ifndef EMULATOR
-  static GQuark quark = 0;
-#endif
-  
-  if (!quark)
-    quark = g_quark_from_static_string ("gabble-xmpp-error");
-  return quark;
-}
-
-GabbleXmppError
-gabble_xmpp_error_from_node (LmMessageNode *error_node)
-{
-  gint i, j;
-  const gchar *error_code_str;
-
-  /* First, try to look it up the modern way */
-  if (error_node->children)
-    {
-      for (i = 0; i < NUM_XMPP_ERRORS; i++)
-        {
-          if (lm_message_node_get_child (error_node, xmpp_errors[i].name))
-            {
-              return i;
-            }
-        }
-    }
-
-  /* Ok, do it the legacy way */
-  error_code_str = lm_message_node_get_attribute (error_node, "code");
-  if (error_code_str)
-    {
-      gint error_code;
-
-      error_code = atoi (error_code_str);
-
-      for (i = 0; i < NUM_XMPP_ERRORS; i++)
-        {
-          const XmppErrorSpec *spec = &xmpp_errors[i];
-
-          for (j = 0; j < MAX_LEGACY_ERRORS; j++)
-            {
-              gint cur_code = spec->legacy_errors[j];
-              if (cur_code == 0)
-                break;
-
-              if (cur_code == error_code)
-                return i;
-            }
-        }
-    }
-
-  return INVALID_XMPP_ERROR;
-}
-
-GError *
-gabble_xmpp_error_to_g_error (GabbleXmppError error)
-{
-  if (error >= NUM_XMPP_ERRORS)
-    return NULL;
-
-  return g_error_new (GABBLE_XMPP_ERROR,
-                      error,
-                      xmpp_errors[error].description);
-}
-
-/*
- * See RFC 3920: 4.7 Stream Errors, 9.3 Stanza Errors.
- */
-LmMessageNode *
-gabble_xmpp_error_to_node (GabbleXmppError error,
-                           LmMessageNode *parent_node,
-                           const gchar *errmsg)
-{
-  const XmppErrorSpec *spec, *extra;
-  LmMessageNode *error_node, *node;
-  gchar str[6];
-
-  if (error >= NUM_XMPP_ERRORS)
-    return NULL;
-
-  if (xmpp_errors[error].specialises)
-    {
-      extra = &xmpp_errors[error];
-      spec = &xmpp_errors[extra->specialises];
-    }
-  else
-    {
-      extra = NULL;
-      spec = &xmpp_errors[error];
-    }
-
-  error_node = lm_message_node_add_child (parent_node, "error", NULL);
-
-  sprintf (str, "%d", spec->legacy_errors[0]);
-  lm_message_node_set_attribute (error_node, "code", str);
-
-  if (spec->type)
-    {
-      lm_message_node_set_attribute (error_node, "type", spec->type);
-    }
-
-  node = lm_message_node_add_child (error_node, spec->name, NULL);
-  lm_message_node_set_attribute (node, "xmlns", NS_XMPP_STANZAS);
-
-  if (extra != NULL)
-    {
-      node = lm_message_node_add_child (error_node, extra->name, NULL);
-      lm_message_node_set_attribute (node, "xmlns", extra->namespace);
-    }
-
-  if (NULL != errmsg)
-    lm_message_node_add_child (error_node, "text", errmsg);
-
-  return error_node;
-}
-
-const gchar *
-gabble_xmpp_error_string (GabbleXmppError error)
-{
-  if (error < NUM_XMPP_ERRORS)
-    return xmpp_errors[error].name;
-  else
-    return NULL;
-}
-
-const gchar *
-gabble_xmpp_error_description (GabbleXmppError error)
-{
-  if (error < NUM_XMPP_ERRORS)
-    return xmpp_errors[error].description;
-  else
-    return NULL;
-}
-
--- a/telepathygabble/src/gabble-im-channel-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * gabble-im-channel-signals-marshal.c - Source for Gabble service    discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
--- a/telepathygabble/src/gabble-im-channel.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,573 +0,0 @@
-/*
- * gabble-im-channel.c - Source for GabbleIMChannel
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include "loudmouth/loudmouth.h"
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-
-#define DEBUG_FLAG GABBLE_DEBUG_IM
-
-#include "debug.h"
-#include "disco.h"
-#include "gabble-connection.h"
-#include "gabble-presence.h"
-#include "gabble-presence-cache.h"
-#include "handles.h"
-#include "roster.h"
-#include "telepathy-constants.h"
-#include "telepathy-errors.h"
-#include "telepathy-helpers.h"
-#include "telepathy-interfaces.h"
-#include "tp-channel-iface.h"
-
-#include "gabble-im-channel.h"
-#include "gabble-im-channel-glue.h"
-#include "gabble-im-channel-signals-marshal.h"
-
-#include "gabble_enums.h"
-
-#ifndef EMULATOR
-G_DEFINE_TYPE_WITH_CODE (GabbleIMChannel, gabble_im_channel, G_TYPE_OBJECT,
-    G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_IFACE, NULL));
-    
-#endif
-
-/* signal enum */
-enum
-{
-    CLOSED,
-    LAST_SIGNAL 
-#ifdef EMULATOR    
-    = LAST_SIGNAL_IM
-#endif
-    
-};
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_im,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_im, s)())	
-    
-    GET_STATIC_VAR_FROM_TLS(gabble_im_channel_parent_class,gabble_im,gpointer)
-	#define gabble_im_channel_parent_class (*GET_WSD_VAR_NAME(gabble_im_channel_parent_class,gabble_im,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_im,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_im,s)())
-
-    
-static void gabble_im_channel_init (GabbleIMChannel *self); 
-static void gabble_im_channel_class_init (GabbleIMChannelClass *klass); 
-static void gabble_im_channel_class_intern_init (gpointer klass) 
-{
- gabble_im_channel_parent_class = g_type_class_peek_parent (klass); 
- gabble_im_channel_class_init ((GabbleIMChannelClass*) klass); 
- } 
- EXPORT_C GType gabble_im_channel_get_type (void) 
- {
-  if ((g_define_type_id == 0)) 
-  { static const GTypeInfo g_define_type_info = 
-  		{ sizeof (GabbleIMChannelClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_im_channel_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleIMChannel), 0, (GInstanceInitFunc) gabble_im_channel_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleIMChannel"), &g_define_type_info, (GTypeFlags) 0); { { static const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) ((void *)0) }; g_type_add_interface_static (g_define_type_id, tp_channel_iface_get_type(), &g_implement_interface_info); } ; } } return g_define_type_id; 
-  		};
-	
-	
-		
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif
-
-/* properties */
-enum
-{
-  PROP_OBJECT_PATH = 1,
-  PROP_CHANNEL_TYPE,
-  PROP_HANDLE_TYPE,
-  PROP_HANDLE,
-  PROP_CONNECTION,
-  LAST_PROPERTY
-};
-
-/* private structure */
-typedef struct _GabbleIMChannelPrivate GabbleIMChannelPrivate;
-
-struct _GabbleIMChannelPrivate
-{
-  GabbleConnection *conn;
-  char *object_path;
-  GabbleHandle handle;
-
-  gchar *peer_jid;
-
-  gboolean closed;
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_IM_CHANNEL_GET_PRIVATE(obj) \
-    ((GabbleIMChannelPrivate *)obj->priv)
-
-static void
-gabble_im_channel_init (GabbleIMChannel *self)
-{
-  GabbleIMChannelPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GABBLE_TYPE_IM_CHANNEL, GabbleIMChannelPrivate);
-
-  self->priv = priv;
-}
-
-static GObject *
-gabble_im_channel_constructor (GType type, guint n_props,
-                               GObjectConstructParam *props)
-{
-  GObject *obj;
-  GabbleIMChannelPrivate *priv;
-  DBusGConnection *bus;
-  gboolean valid, send_nick;
-
-  obj = G_OBJECT_CLASS (gabble_im_channel_parent_class)->
-           constructor (type, n_props, props);
-  priv = GABBLE_IM_CHANNEL_GET_PRIVATE (GABBLE_IM_CHANNEL (obj));
-
-  valid = gabble_handle_ref (priv->conn->handles, TP_HANDLE_TYPE_CONTACT, priv->handle);
-  g_assert (valid);
-
-  priv->peer_jid = g_strdup (gabble_handle_inspect (priv->conn->handles,
-        TP_HANDLE_TYPE_CONTACT, priv->handle));
-
-  bus = tp_get_bus ();
-  dbus_g_connection_register_g_object (bus, priv->object_path, obj);
-
-  if (gabble_roster_handle_get_subscription (priv->conn->roster, priv->handle)
-        & GABBLE_ROSTER_SUBSCRIPTION_FROM)
-    send_nick = FALSE;
-  else
-    send_nick = TRUE;
-
-  gabble_text_mixin_init (obj, G_STRUCT_OFFSET (GabbleIMChannel, text),
-                          priv->conn->handles, send_nick);
-
-  gabble_text_mixin_set_message_types (obj,
-      TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL,
-      TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION,
-      TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE,
-      G_MAXUINT);
-
-  return obj;
-}
-
-static void
-gabble_im_channel_get_property (GObject    *object,
-                                guint       property_id,
-                                GValue     *value,
-                                GParamSpec *pspec)
-{
-  GabbleIMChannel *chan = GABBLE_IM_CHANNEL (object);
-  GabbleIMChannelPrivate *priv = GABBLE_IM_CHANNEL_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_value_set_string (value, priv->object_path);
-      break;
-    case PROP_CHANNEL_TYPE:
-      g_value_set_static_string (value, TP_IFACE_CHANNEL_TYPE_TEXT);
-      break;
-    case PROP_HANDLE_TYPE:
-      g_value_set_uint (value, TP_HANDLE_TYPE_CONTACT);
-      break;
-    case PROP_HANDLE:
-      g_value_set_uint (value, priv->handle);
-      break;
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_im_channel_set_property (GObject     *object,
-                                guint        property_id,
-                                const GValue *value,
-                                GParamSpec   *pspec)
-{
-  GabbleIMChannel *chan = GABBLE_IM_CHANNEL (object);
-  GabbleIMChannelPrivate *priv = GABBLE_IM_CHANNEL_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_free (priv->object_path);
-      priv->object_path = g_value_dup_string (value);
-      break;
-    case PROP_HANDLE:
-      priv->handle = g_value_get_uint (value);
-      break;
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void gabble_im_channel_dispose (GObject *object);
-static void gabble_im_channel_finalize (GObject *object);
-
-static void
-gabble_im_channel_class_init (GabbleIMChannelClass *gabble_im_channel_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_im_channel_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_im_channel_class, sizeof (GabbleIMChannelPrivate));
-
-  object_class->constructor = gabble_im_channel_constructor;
-
-  object_class->get_property = gabble_im_channel_get_property;
-  object_class->set_property = gabble_im_channel_set_property;
-
-  object_class->dispose = gabble_im_channel_dispose;
-  object_class->finalize = gabble_im_channel_finalize;
-
-  g_object_class_override_property (object_class, PROP_OBJECT_PATH, "object-path");
-  g_object_class_override_property (object_class, PROP_CHANNEL_TYPE, "channel-type");
-  g_object_class_override_property (object_class, PROP_HANDLE_TYPE, "handle-type");
-  g_object_class_override_property (object_class, PROP_HANDLE, "handle");
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "IM channel object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-  signals[CLOSED] =
-    g_signal_new ("closed",
-                  G_OBJECT_CLASS_TYPE (gabble_im_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
-  gabble_text_mixin_class_init (object_class, G_STRUCT_OFFSET (GabbleIMChannelClass, text_class));
-
-  dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (gabble_im_channel_class), &dbus_glib_gabble_im_channel_object_info);
-}
-
-void
-gabble_im_channel_dispose (GObject *object)
-{
-  GabbleIMChannel *self = GABBLE_IM_CHANNEL (object);
-  GabbleIMChannelPrivate *priv = GABBLE_IM_CHANNEL_GET_PRIVATE (self);
-  GabbleRosterSubscription subscription;
-
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  subscription = gabble_roster_handle_get_subscription (priv->conn->roster,
-      priv->handle);
-
-  if ((GABBLE_ROSTER_SUBSCRIPTION_TO & subscription) == 0)
-    {
-      GabblePresence *presence;
-
-      presence = gabble_presence_cache_get (priv->conn->presence_cache,
-          priv->handle);
-
-      if (NULL != presence)
-        {
-          presence->keep_unavailable = FALSE;
-          gabble_presence_cache_maybe_remove (priv->conn->presence_cache,
-              priv->handle);
-        }
-    }
-
-  if (!priv->closed)
-    g_signal_emit(self, signals[CLOSED], 0);
-
-  if (G_OBJECT_CLASS (gabble_im_channel_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_im_channel_parent_class)->dispose (object);
-}
-
-void
-gabble_im_channel_finalize (GObject *object)
-{
-  GabbleIMChannel *self = GABBLE_IM_CHANNEL (object);
-  GabbleIMChannelPrivate *priv = GABBLE_IM_CHANNEL_GET_PRIVATE (self);
-
-  /* free any data held directly by the object here */
-
-  gabble_handle_unref (priv->conn->handles, TP_HANDLE_TYPE_CONTACT, priv->handle);
-
-  g_free (priv->object_path);
-  g_free (priv->peer_jid);
-
-  gabble_text_mixin_finalize (object);
-
-  G_OBJECT_CLASS (gabble_im_channel_parent_class)->finalize (object);
-}
-
-/**
- * _gabble_im_channel_receive
- *
- */
-gboolean _gabble_im_channel_receive (GabbleIMChannel *chan,
-                                     TpChannelTextMessageType type,
-                                     GabbleHandle sender,
-                                     const char *from,
-                                     time_t timestamp,
-                                     const char *text)
-{
-  GabbleIMChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_IM_CHANNEL (chan));
-  priv = GABBLE_IM_CHANNEL_GET_PRIVATE (chan);
-
-  /* update peer's full JID if it's changed */
-  if (0 != strcmp (from, priv->peer_jid))
-    {
-      g_free (priv->peer_jid);
-      priv->peer_jid = g_strdup (from);
-    }
-
-  if (timestamp == 0)
-      timestamp = time (NULL);
-
-  return gabble_text_mixin_receive (G_OBJECT (chan), type, sender, timestamp, text);
-}
-
-/**
- * gabble_im_channel_acknowledge_pending_messages
- *
- * Implements D-Bus method AcknowledgePendingMessages
- * on interface org.freedesktop.Telepathy.Channel.Type.Text
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_im_channel_acknowledge_pending_messages (GabbleIMChannel *self,
-                                                const GArray *ids,
-                                                GError **error)
-{
-  g_assert (GABBLE_IS_IM_CHANNEL (self));
-
-  return gabble_text_mixin_acknowledge_pending_messages (G_OBJECT (self), ids,
-      error);
-}
-
-
-/**
- * gabble_im_channel_close
- *
- * Implements D-Bus method Close
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_im_channel_close (GabbleIMChannel *self,
-                         GError **error)
-{
-  GabbleIMChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_IM_CHANNEL (self));
-
-  gabble_debug (DEBUG_FLAG, "called on %p", self);
-
-  priv = GABBLE_IM_CHANNEL_GET_PRIVATE (self);
-  priv->closed = TRUE;
-
-  g_signal_emit (self, signals[CLOSED], 0);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_im_channel_get_channel_type
- *
- * Implements D-Bus method GetChannelType
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_im_channel_get_channel_type (GabbleIMChannel *self,
-                                    gchar **ret,
-                                    GError **error)
-{
-  *ret = g_strdup (TP_IFACE_CHANNEL_TYPE_TEXT);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_im_channel_get_handle
- *
- * Implements D-Bus method GetHandle
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_im_channel_get_handle (GabbleIMChannel *self,
-                              guint *ret,
-                              guint *ret1,
-                              GError **error)
-{
-  GabbleIMChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_IM_CHANNEL (self));
-
-  priv = GABBLE_IM_CHANNEL_GET_PRIVATE (self);
-
-  *ret = TP_HANDLE_TYPE_CONTACT;
-  *ret1 = priv->handle;
-
-  return TRUE;
-}
-
-
-/**
- * gabble_im_channel_get_interfaces
- *
- * Implements D-Bus method GetInterfaces
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_im_channel_get_interfaces (GabbleIMChannel *self,
-                                  gchar ***ret,
-                                  GError **error)
-{
-  const char *interfaces[] = { NULL };
-
-  *ret = g_strdupv ((gchar **) interfaces);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_im_channel_get_message_types
- *
- * Implements D-Bus method GetMessageTypes
- * on interface org.freedesktop.Telepathy.Channel.Type.Text
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_im_channel_get_message_types (GabbleIMChannel *self,
-                                     GArray **ret,
-                                     GError **error)
-{
-  return gabble_text_mixin_get_message_types (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_im_channel_list_pending_messages
- *
- * Implements D-Bus method ListPendingMessages
- * on interface org.freedesktop.Telepathy.Channel.Type.Text
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_im_channel_list_pending_messages (GabbleIMChannel *self,
-                                         gboolean clear,
-                                         GPtrArray **ret,
-                                         GError **error)
-{
-  g_assert (GABBLE_IS_IM_CHANNEL (self));
-
-  return gabble_text_mixin_list_pending_messages (G_OBJECT (self), clear, ret,
-      error);
-}
-
-
-/**
- * gabble_im_channel_send
- *
- * Implements D-Bus method Send
- * on interface org.freedesktop.Telepathy.Channel.Type.Text
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_im_channel_send (GabbleIMChannel *self,
-                        guint type,
-                        const gchar *text,
-                        GError **error)
-{
-  GabbleIMChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_IM_CHANNEL (self));
-  priv = GABBLE_IM_CHANNEL_GET_PRIVATE (self);
-
-  return gabble_text_mixin_send (G_OBJECT (self), type, 0, priv->peer_jid,
-      text, priv->conn, TRUE /* emit_signal */, error);
-}
-
--- a/telepathygabble/src/gabble-media-channel-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
- * gabble-media-channel-signals-marshal.c - Source for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * -- LET'S DISCO!!!  \o/ \o_ _o/ /\o/\ _/o/- -\o\_ --
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:UINT,UINT,STRING (gabble-media-channel-signals-marshal.list:1) */
-void
-gabble_media_channel_marshal_VOID__UINT_UINT_STRING (GClosure     *closure,
-                                                     GValue       *return_value,
-                                                     guint         n_param_values,
-                                                     const GValue *param_values,
-                                                     gpointer      invocation_hint,
-                                                     gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT_STRING) (gpointer     data1,
-                                                       guint        arg_1,
-                                                       guint        arg_2,
-                                                       gpointer     arg_3,
-                                                       gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_string (param_values + 3),
-            data2);
-}
-
-/* VOID:STRING,STRING (gabble-media-channel-signals-marshal.list:2) */
-void
-gabble_media_channel_marshal_VOID__STRING_STRING (GClosure     *closure,
-                                                  GValue       *return_value,
-                                                  guint         n_param_values,
-                                                  const GValue *param_values,
-                                                  gpointer      invocation_hint,
-                                                  gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_STRING) (gpointer     data1,
-                                                    gpointer     arg_1,
-                                                    gpointer     arg_2,
-                                                    gpointer     data2);
-  register GMarshalFunc_VOID__STRING_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_string (param_values + 2),
-            data2);
-}
-
-/* VOID:UINT,UINT (gabble-media-channel-signals-marshal.list:3) */
-void
-gabble_media_channel_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                              GValue       *return_value,
-                                              guint         n_param_values,
-                                              const GValue *param_values,
-                                              gpointer      invocation_hint,
-                                              gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer     data1,
-                                                guint        arg_1,
-                                                guint        arg_2,
-                                                gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            data2);
-}
-
-/* VOID:UINT,UINT,UINT (gabble-media-channel-signals-marshal.list:4) */
-void
-gabble_media_channel_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
-                                                   GValue       *return_value,
-                                                   guint         n_param_values,
-                                                   const GValue *param_values,
-                                                   gpointer      invocation_hint,
-                                                   gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT) (gpointer     data1,
-                                                     guint        arg_1,
-                                                     guint        arg_2,
-                                                     guint        arg_3,
-                                                     gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_uint (param_values + 3),
-            data2);
-}
-
--- a/telepathygabble/src/gabble-media-channel.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1622 +0,0 @@
-/*
- * gabble-media-channel.c - Source for GabbleMediaChannel
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-#include "ansi.h"
-#include "debug.h"
-#include "gabble-connection.h"
-#include "gabble-media-session.h"
-#include "gabble-presence.h"
-#include "gabble-presence-cache.h"
-
-#include "telepathy-errors.h"
-#include "telepathy-helpers.h"
-#include "telepathy-interfaces.h"
-#include "tp-channel-iface.h"
-
-#include "gabble-media-channel.h"
-#include "gabble-media-channel-signals-marshal.h"
-#include "gabble-media-channel-glue.h"
-
-#include "gabble-media-session.h"
-#include "gabble-media-stream.h"
-
-#include "media-factory.h"
-
-#include "gabble_enums.h"
-
-#define DEBUG_FLAG GABBLE_DEBUG_MEDIA
-
-#define TP_SESSION_HANDLER_SET_TYPE (dbus_g_type_get_struct ("GValueArray", \
-      DBUS_TYPE_G_OBJECT_PATH, \
-      G_TYPE_STRING, \
-      G_TYPE_INVALID))
-
-#define TP_CHANNEL_STREAM_TYPE (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_INVALID))
-
-#ifndef EMULATOR
-G_DEFINE_TYPE_WITH_CODE (GabbleMediaChannel, gabble_media_channel,
-    G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_IFACE, NULL));
-#endif
-
-/* signal enum */
-enum
-{
-    CLOSED,
-    NEW_SESSION_HANDLER,
-    STREAM_ADDED,
-    STREAM_DIRECTION_CHANGED,
-    STREAM_ERROR,
-    STREAM_REMOVED,
-    STREAM_STATE_CHANGED,
-    LAST_SIGNAL 
-#ifdef EMULATOR    
-    = LAST_SIGNAL_MED_CHANNEL
-#endif
-    
-};
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_med_chnl,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_med_chnl, s)())
-	
-	GET_STATIC_VAR_FROM_TLS(gabble_media_channel_parent_class,gabble_med_chnl,gpointer)
-	#define gabble_media_channel_parent_class (*GET_WSD_VAR_NAME(gabble_media_channel_parent_class,gabble_med_chnl,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_med_chnl,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_med_chnl,s)())
-
-static void gabble_media_channel_init (GabbleMediaChannel *self); 
-static void gabble_media_channel_class_init (GabbleMediaChannelClass *klass);
-static void gabble_media_channel_class_intern_init (gpointer klass)
- { 
- gabble_media_channel_parent_class = g_type_class_peek_parent (klass); 
- gabble_media_channel_class_init ((GabbleMediaChannelClass*) klass); 
- } 
- EXPORT_C GType gabble_media_channel_get_type (void)
-  { 
-  if ((g_define_type_id == 0))
-   { static const GTypeInfo g_define_type_info = { sizeof (GabbleMediaChannelClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_media_channel_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleMediaChannel), 0, (GInstanceInitFunc) gabble_media_channel_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleMediaChannel"), &g_define_type_info, (GTypeFlags) 0); { { static const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) ((void *)0) }; g_type_add_interface_static (g_define_type_id, tp_channel_iface_get_type(), &g_implement_interface_info); } ; } } return g_define_type_id;
-   };
-		
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif
-
-
-/* properties */
-enum
-{
-  PROP_OBJECT_PATH = 1,
-  PROP_CHANNEL_TYPE,
-  PROP_HANDLE_TYPE,
-  PROP_HANDLE,
-  PROP_CONNECTION,
-  PROP_CREATOR,
-  PROP_FACTORY,
-  LAST_PROPERTY
-};
-
-/* private structure */
-typedef struct _GabbleMediaChannelPrivate GabbleMediaChannelPrivate;
-
-struct _GabbleMediaChannelPrivate
-{
-  GabbleConnection *conn;
-  gchar *object_path;
-  GabbleHandle creator;
-
-  GabbleMediaFactory *factory;
-  GabbleMediaSession *session;
-  GPtrArray *streams;
-
-  guint next_stream_id;
-
-  gboolean closed;
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_MEDIA_CHANNEL_GET_PRIVATE(obj) \
-    ((GabbleMediaChannelPrivate *)obj->priv)
-
-static void
-gabble_media_channel_init (GabbleMediaChannel *self)
-{
-  GabbleMediaChannelPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GABBLE_TYPE_MEDIA_CHANNEL, GabbleMediaChannelPrivate);
-
-  self->priv = priv;
-
-  priv->next_stream_id = 1;
-}
-
-static GObject *
-gabble_media_channel_constructor (GType type, guint n_props,
-                                  GObjectConstructParam *props)
-{
-  GObject *obj;
-  GabbleMediaChannelPrivate *priv;
-  DBusGConnection *bus;
-  GIntSet *set;
-
-  obj = G_OBJECT_CLASS (gabble_media_channel_parent_class)->
-           constructor (type, n_props, props);
-
-  priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (GABBLE_MEDIA_CHANNEL (obj));
-
-  /* register object on the bus */
-  bus = tp_get_bus ();
-  dbus_g_connection_register_g_object (bus, priv->object_path, obj);
-
-  gabble_group_mixin_init (obj, G_STRUCT_OFFSET (GabbleMediaChannel, group),
-                           priv->conn->handles, priv->conn->self_handle);
-
-  /* automatically add creator to channel */
-  set = g_intset_new ();
-  g_intset_add (set, priv->creator);
-
-  gabble_group_mixin_change_members (obj, "", set, NULL, NULL, NULL, 0, 0);
-
-  g_intset_destroy (set);
-
-  /* allow member adding */
-  gabble_group_mixin_change_flags (obj, TP_CHANNEL_GROUP_FLAG_CAN_ADD, 0);
-
-  return obj;
-}
-
-static void session_state_changed_cb (GabbleMediaSession *session, GParamSpec *arg1, GabbleMediaChannel *channel);
-static void session_stream_added_cb (GabbleMediaSession *session, GabbleMediaStream  *stream, GabbleMediaChannel *chan);
-static void session_terminated_cb (GabbleMediaSession *session, guint terminator, guint reason, gpointer user_data);
-
-/**
- * create_session
- *
- * Creates a GabbleMediaSession object for given peer.
- *
- * If sid is set to NULL a unique sid is generated and
- * the "initiator" property of the newly created
- * GabbleMediaSession is set to our own handle.
- */
-static GabbleMediaSession*
-create_session (GabbleMediaChannel *channel,
-                GabbleHandle peer,
-                const gchar *peer_resource,
-                const gchar *sid)
-{
-  GabbleMediaChannelPrivate *priv;
-  GabbleMediaSession *session;
-  gchar *object_path;
-  JingleInitiator initiator;
-
-  g_assert (GABBLE_IS_MEDIA_CHANNEL (channel));
-
-  priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (channel);
-
-  g_assert (priv->session == NULL);
-
-  object_path = g_strdup_printf ("%s/MediaSession%u", priv->object_path, peer);
-
-  if (sid == NULL)
-    {
-      initiator = INITIATOR_LOCAL;
-      sid = _gabble_media_factory_allocate_sid (priv->factory, channel);
-    }
-  else
-    {
-      initiator = INITIATOR_REMOTE;
-      _gabble_media_factory_register_sid (priv->factory, sid, channel);
-    }
-
-  session = g_object_new (GABBLE_TYPE_MEDIA_SESSION,
-                          "connection", priv->conn,
-                          "media-channel", channel,
-                          "object-path", object_path,
-                          "session-id", sid,
-                          "initiator", initiator,
-                          "peer", peer,
-                          "peer-resource", peer_resource,
-                          NULL);
-
-  g_signal_connect (session, "notify::state",
-                    (GCallback) session_state_changed_cb, channel);
-  g_signal_connect (session, "stream-added",
-                    (GCallback) session_stream_added_cb, channel);
-  g_signal_connect (session, "terminated",
-                    (GCallback) session_terminated_cb, channel);
-
-  priv->session = session;
-
-  priv->streams = g_ptr_array_sized_new (1);
-
-  g_signal_emit (channel, signals[NEW_SESSION_HANDLER], 0,
-                 object_path, "rtp");
-
-  g_free (object_path);
-
-  return session;
-}
-
-gboolean
-_gabble_media_channel_dispatch_session_action (GabbleMediaChannel *chan,
-                                               GabbleHandle peer,
-                                               const gchar *peer_resource,
-                                               const gchar *sid,
-                                               LmMessage *message,
-                                               LmMessageNode *session_node,
-                                               const gchar *action,
-                                               GError **error)
-{
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (chan);
-  GabbleMediaSession *session = priv->session;
-  gboolean session_is_new = FALSE;
-
-  if (session == NULL)
-    {
-      GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (chan);
-      GIntSet *set;
-
-      session = create_session (chan, peer, peer_resource, sid);
-      session_is_new = TRUE;
-
-      /* make us local pending */
-      set = g_intset_new ();
-      g_intset_add (set, mixin->self_handle);
-
-      gabble_group_mixin_change_members (G_OBJECT (chan), "", NULL, NULL, set,
-          NULL, 0, 0);
-
-      g_intset_destroy (set);
-
-      /* and update flags accordingly */
-      gabble_group_mixin_change_flags (G_OBJECT (chan),
-                                       TP_CHANNEL_GROUP_FLAG_CAN_ADD |
-                                       TP_CHANNEL_GROUP_FLAG_CAN_REMOVE,
-                                       0);
-    }
-
-  g_object_ref (session);
-
-  if (_gabble_media_session_handle_action (session, message, session_node,
-        action, error))
-    {
-      g_object_unref (session);
-      return TRUE;
-    }
-  else
-    {
-      if (session_is_new)
-        _gabble_media_session_terminate (session, INITIATOR_LOCAL,
-            TP_CHANNEL_GROUP_CHANGE_REASON_ERROR);
-
-      g_object_unref (session);
-      return FALSE;
-    }
-}
-
-static void
-gabble_media_channel_get_property (GObject    *object,
-                                   guint       property_id,
-                                   GValue     *value,
-                                   GParamSpec *pspec)
-{
-  GabbleMediaChannel *chan = GABBLE_MEDIA_CHANNEL (object);
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_value_set_string (value, priv->object_path);
-      break;
-    case PROP_CHANNEL_TYPE:
-      g_value_set_static_string (value, TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA);
-      break;
-    case PROP_HANDLE_TYPE:
-      g_value_set_uint (value, TP_HANDLE_TYPE_NONE);
-      break;
-    case PROP_HANDLE:
-      g_value_set_uint (value, 0);
-      break;
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    case PROP_CREATOR:
-      g_value_set_uint (value, priv->creator);
-      break;
-    case PROP_FACTORY:
-      g_value_set_object (value, priv->factory);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_media_channel_set_property (GObject     *object,
-                                   guint        property_id,
-                                   const GValue *value,
-                                   GParamSpec   *pspec)
-{
-  GabbleMediaChannel *chan = GABBLE_MEDIA_CHANNEL (object);
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_free (priv->object_path);
-      priv->object_path = g_value_dup_string (value);
-      break;
-    case PROP_HANDLE:
-      /* this property is writable in the interface, but not actually
-       * meaningfully changable on this channel, so we do nothing */
-      break;
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    case PROP_CREATOR:
-      priv->creator = g_value_get_uint (value);
-      break;
-    case PROP_FACTORY:
-      priv->factory = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void gabble_media_channel_dispose (GObject *object);
-static void gabble_media_channel_finalize (GObject *object);
-static gboolean gabble_media_channel_remove_member (GObject *obj, GabbleHandle handle, const gchar *message, GError **error);
-
-static void
-gabble_media_channel_class_init (GabbleMediaChannelClass *gabble_media_channel_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_media_channel_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_media_channel_class, sizeof (GabbleMediaChannelPrivate));
-
-  object_class->constructor = gabble_media_channel_constructor;
-
-  object_class->get_property = gabble_media_channel_get_property;
-  object_class->set_property = gabble_media_channel_set_property;
-
-  object_class->dispose = gabble_media_channel_dispose;
-  object_class->finalize = gabble_media_channel_finalize;
-
-  gabble_group_mixin_class_init (object_class,
-                                 G_STRUCT_OFFSET (GabbleMediaChannelClass, group_class),
-                                 _gabble_media_channel_add_member,
-                                 gabble_media_channel_remove_member);
-
-  g_object_class_override_property (object_class, PROP_OBJECT_PATH, "object-path");
-  g_object_class_override_property (object_class, PROP_CHANNEL_TYPE, "channel-type");
-  g_object_class_override_property (object_class, PROP_HANDLE_TYPE, "handle-type");
-  g_object_class_override_property (object_class, PROP_HANDLE, "handle");
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "media channel object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-  param_spec = g_param_spec_uint ("creator", "Channel creator",
-                                  "The GabbleHandle representing the contact "
-                                  "who created the channel.",
-                                  0, G_MAXUINT32, 0,
-                                  G_PARAM_CONSTRUCT_ONLY |
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CREATOR, param_spec);
-
-  param_spec = g_param_spec_object ("factory", "GabbleMediaFactory object",
-                                    "The factory that created this object.",
-                                    GABBLE_TYPE_MEDIA_FACTORY,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_FACTORY, param_spec);
-
-  signals[CLOSED] =
-    g_signal_new ("closed",
-                  G_OBJECT_CLASS_TYPE (gabble_media_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
-  signals[NEW_SESSION_HANDLER] =
-    g_signal_new ("new-session-handler",
-                  G_OBJECT_CLASS_TYPE (gabble_media_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_channel_marshal_VOID__STRING_STRING,
-                  G_TYPE_NONE, 2, DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING);
-
-  signals[STREAM_ADDED] =
-    g_signal_new ("stream-added",
-                  G_OBJECT_CLASS_TYPE (gabble_media_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_channel_marshal_VOID__UINT_UINT_UINT,
-                  G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
-
-  signals[STREAM_DIRECTION_CHANGED] =
-    g_signal_new ("stream-direction-changed",
-                  G_OBJECT_CLASS_TYPE (gabble_media_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_channel_marshal_VOID__UINT_UINT_UINT,
-                  G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
-
-  signals[STREAM_ERROR] =
-    g_signal_new ("stream-error",
-                  G_OBJECT_CLASS_TYPE (gabble_media_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_channel_marshal_VOID__UINT_UINT_STRING,
-                  G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING);
-
-  signals[STREAM_REMOVED] =
-    g_signal_new ("stream-removed",
-                  G_OBJECT_CLASS_TYPE (gabble_media_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__UINT,
-                  G_TYPE_NONE, 1, G_TYPE_UINT);
-
-  signals[STREAM_STATE_CHANGED] =
-    g_signal_new ("stream-state-changed",
-                  G_OBJECT_CLASS_TYPE (gabble_media_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_channel_marshal_VOID__UINT_UINT,
-                  G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
-
-  dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (gabble_media_channel_class), &dbus_glib_gabble_media_channel_object_info);
-}
-
-void
-gabble_media_channel_dispose (GObject *object)
-{
-  GabbleMediaChannel *self = GABBLE_MEDIA_CHANNEL (object);
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (self);
-
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  /** In this we set the state to ENDED, then the callback unrefs
-   * the session
-   */
-
-  if (!priv->closed)
-    gabble_media_channel_close (self, NULL);
-
-  g_assert (priv->closed);
-  g_assert (priv->session == NULL);
-  g_assert (priv->streams == NULL);
-
-  if (G_OBJECT_CLASS (gabble_media_channel_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_media_channel_parent_class)->dispose (object);
-}
-
-void
-gabble_media_channel_finalize (GObject *object)
-{
-  GabbleMediaChannel *self = GABBLE_MEDIA_CHANNEL (object);
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (self);
-
-  g_free (priv->object_path);
-
-  gabble_group_mixin_finalize (object);
-
-  G_OBJECT_CLASS (gabble_media_channel_parent_class)->finalize (object);
-}
-
-
-
-/**
- * gabble_media_channel_add_members
- *
- * Implements D-Bus method AddMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_add_members (GabbleMediaChannel *self,
-                                  const GArray *contacts,
-                                  const gchar *message,
-                                  GError **error)
-{
-  return gabble_group_mixin_add_members (G_OBJECT (self), contacts, message,
-      error);
-}
-
-
-/**
- * gabble_media_channel_close
- *
- * Implements D-Bus method Close
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_close (GabbleMediaChannel *self,
-                            GError **error)
-{
-  GabbleMediaChannelPrivate *priv;
-
-  gabble_debug (DEBUG_FLAG, "called on %p", self);
-
-  g_assert (GABBLE_IS_MEDIA_CHANNEL (self));
-
-  priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (self);
-
-  if (priv->closed)
-    return TRUE;
-
-  priv->closed = TRUE;
-
-  if (priv->session)
-    {
-      _gabble_media_session_terminate (priv->session, INITIATOR_LOCAL, TP_CHANNEL_GROUP_CHANGE_REASON_NONE);
-    }
-
-  g_signal_emit (self, signals[CLOSED], 0);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_channel_get_all_members
- *
- * Implements D-Bus method GetAllMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_get_all_members (GabbleMediaChannel *self,
-                                      GArray **ret,
-                                      GArray **ret1,
-                                      GArray **ret2,
-                                      GError **error)
-{
-  return gabble_group_mixin_get_all_members (G_OBJECT (self), ret, ret1, ret2,
-      error);
-}
-
-
-/**
- * gabble_media_channel_get_channel_type
- *
- * Implements D-Bus method GetChannelType
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_get_channel_type (GabbleMediaChannel *self,
-                                       gchar **ret,
-                                       GError **error)
-{
-  *ret = g_strdup (TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_channel_get_group_flags
- *
- * Implements D-Bus method GetGroupFlags
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_get_group_flags (GabbleMediaChannel *self,
-                                      guint *ret,
-                                      GError **error)
-{
-  return gabble_group_mixin_get_group_flags (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_media_channel_get_handle
- *
- * Implements D-Bus method GetHandle
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_get_handle (GabbleMediaChannel *self,
-                                 guint *ret,
-                                 guint *ret1,
-                                 GError **error)
-{
-  GabbleMediaChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_CHANNEL (self));
-
-  priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (self);
-
-  *ret = 0;
-  *ret1 = 0;
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_channel_get_handle_owners
- *
- * Implements D-Bus method GetHandleOwners
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_get_handle_owners (GabbleMediaChannel *self,
-                                        const GArray *handles,
-                                        GArray **ret,
-                                        GError **error)
-{
-  return gabble_group_mixin_get_handle_owners (G_OBJECT (self), handles, ret,
-      error);
-}
-
-
-/**
- * gabble_media_channel_get_interfaces
- *
- * Implements D-Bus method GetInterfaces
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_get_interfaces (GabbleMediaChannel *self,
-                                     gchar ***ret,
-                                     GError **error)
-{
-  const gchar *interfaces[] = {
-      TP_IFACE_CHANNEL_INTERFACE_GROUP,
-      TP_IFACE_CHANNEL_INTERFACE_MEDIA_SIGNALLING,
-      NULL
-  };
-
-  *ret = g_strdupv ((gchar **) interfaces);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_channel_get_local_pending_members
- *
- * Implements D-Bus method GetLocalPendingMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_get_local_pending_members (GabbleMediaChannel *self,
-                                                GArray **ret,
-                                                GError **error)
-{
-  return gabble_group_mixin_get_local_pending_members (G_OBJECT (self), ret,
-      error);
-}
-
-
-/**
- * gabble_media_channel_get_members
- *
- * Implements D-Bus method GetMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_get_members (GabbleMediaChannel *self,
-                                  GArray **ret,
-                                  GError **error)
-{
-  return gabble_group_mixin_get_members (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_media_channel_get_remote_pending_members
- *
- * Implements D-Bus method GetRemotePendingMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_get_remote_pending_members (GabbleMediaChannel *self,
-                                                 GArray **ret,
-                                                 GError **error)
-{
-  return gabble_group_mixin_get_remote_pending_members (G_OBJECT (self), ret,
-      error);
-}
-
-
-/**
- * gabble_media_channel_get_self_handle
- *
- * Implements D-Bus method GetSelfHandle
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_get_self_handle (GabbleMediaChannel *self,
-                                      guint *ret,
-                                      GError **error)
-{
-  return gabble_group_mixin_get_self_handle (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_media_channel_get_session_handlers
- *
- * Implements D-Bus method GetSessionHandlers
- * on interface org.freedesktop.Telepathy.Channel.Interface.MediaSignalling
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_get_session_handlers (GabbleMediaChannel *self,
-                                           GPtrArray **ret,
-                                           GError **error)
-{
-  GabbleMediaChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_CHANNEL (self));
-
-  priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (self);
-
-  if (priv->session)
-    {
-      GValue handler = { 0, };
-      GabbleHandle member;
-      gchar *path;
-
-      g_value_init (&handler, TP_SESSION_HANDLER_SET_TYPE);
-      g_value_take_boxed (&handler,
-          dbus_g_type_specialized_construct (TP_SESSION_HANDLER_SET_TYPE));
-
-      g_object_get (priv->session,
-                    "peer", &member,
-                    "object-path", &path,
-                    NULL);
-
-      dbus_g_type_struct_set (&handler,
-          0, path,
-          1, "rtp",
-          G_MAXUINT);
-
-      g_free (path);
-
-      *ret = g_ptr_array_sized_new (1);
-      g_ptr_array_add (*ret, g_value_get_boxed (&handler));
-    }
-  else
-    {
-      *ret = g_ptr_array_sized_new (0);
-    }
-
-  return TRUE;
-}
-
-
-static GPtrArray *
-make_stream_list (GabbleMediaChannel *self,
-                  GPtrArray *streams)
-{
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (self);
-  GPtrArray *ret;
-  guint i;
-
-  ret = g_ptr_array_sized_new (streams->len);
-
-  for (i = 0; i < streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (streams, i);
-      GValue entry = { 0, };
-      guint id;
-      GabbleHandle peer;
-      TpCodecMediaType type;
-      TpMediaStreamState connection_state;
-      CombinedStreamDirection combined_direction;
-
-      g_object_get (stream,
-          "id", &id,
-          "media-type", &type,
-          "connection-state", &connection_state,
-          "combined-direction", &combined_direction,
-          NULL);
-
-      g_object_get (priv->session, "peer", &peer, NULL);
-
-      g_value_init (&entry, TP_CHANNEL_STREAM_TYPE);
-      g_value_take_boxed (&entry,
-          dbus_g_type_specialized_construct (TP_CHANNEL_STREAM_TYPE));
-
-      dbus_g_type_struct_set (&entry,
-          0, id,
-          1, peer,
-          2, type,
-          3, connection_state,
-          4, COMBINED_DIRECTION_GET_DIRECTION (combined_direction),
-          5, COMBINED_DIRECTION_GET_PENDING_SEND (combined_direction),
-          G_MAXUINT);
-
-      g_ptr_array_add (ret, g_value_get_boxed (&entry));
-    }
-
-  return ret;
-}
-
-/**
- * gabble_media_channel_list_streams
- *
- * Implements D-Bus method ListStreams
- * on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_list_streams (GabbleMediaChannel *self,
-                                   GPtrArray **ret,
-                                   GError **error)
-{
-  GabbleMediaChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_CHANNEL (self));
-
-  priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (self);
-
-  /* no session yet? return an empty array */
-  if (priv->session == NULL)
-    {
-      *ret = g_ptr_array_new ();
-
-      return TRUE;
-    }
-
-  *ret = make_stream_list (self, priv->streams);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_channel_remove_members
- *
- * Implements D-Bus method RemoveMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_remove_members (GabbleMediaChannel *self,
-                                     const GArray *contacts,
-                                     const gchar *message,
-                                     GError **error)
-{
-  return gabble_group_mixin_remove_members (G_OBJECT (self), contacts, message,
-      error);
-}
-
-
-static GabbleMediaStream *
-_find_stream_by_id (GabbleMediaChannel *chan, guint stream_id)
-{
-  GabbleMediaChannelPrivate *priv;
-  guint i;
-
-  g_assert (GABBLE_IS_MEDIA_CHANNEL (chan));
-
-  priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (chan);
-
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-      guint id;
-
-      g_object_get (stream, "id", &id, NULL);
-      if (id == stream_id)
-        return stream;
-    }
-
-  return NULL;
-}
-
-/**
- * gabble_media_channel_remove_streams
- *
- * Implements DBus method RemoveStreams
- * on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occured, DBus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean gabble_media_channel_remove_streams (GabbleMediaChannel *obj, const GArray * streams, GError **error)
-{
-  GabbleMediaChannelPrivate *priv;
-  GPtrArray *stream_objs;
-  guint i;
-
-  g_assert (GABBLE_IS_MEDIA_CHANNEL (obj));
-
-  priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (obj);
-
-  *error = NULL;
-
-  stream_objs = g_ptr_array_sized_new (streams->len);
-
-  /* check that all stream ids are valid and at the same time build an array
-   * of stream objects so we don't have to look them up again after verifying
-   * all stream identifiers. */
-  for (i = 0; i < streams->len; i++)
-    {
-      guint id = g_array_index (streams, guint, i);
-      GabbleMediaStream *stream;
-      guint j;
-
-      stream = _find_stream_by_id (obj, id);
-      if (stream == NULL)
-        {
-          g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-              "given stream id %u does not exist", id);
-          goto OUT;
-        }
-
-      /* make sure we don't allow the client to repeatedly remove the same stream */
-      for (j = 0; j < stream_objs->len; j++)
-        {
-          GabbleMediaStream *tmp = g_ptr_array_index (stream_objs, j);
-
-          if (tmp == stream)
-            {
-              stream = NULL;
-              break;
-            }
-        }
-
-      if (stream != NULL)
-        g_ptr_array_add (stream_objs, stream);
-    }
-
-  /* groovy, it's all good dude, let's remove them */
-  if (stream_objs->len > 0)
-    _gabble_media_session_remove_streams (priv->session, (GabbleMediaStream **)
-        stream_objs->pdata, stream_objs->len);
-
-OUT:
-  g_ptr_array_free (stream_objs, TRUE);
-
-  return (*error == NULL);
-}
-
-
-/**
- * gabble_media_channel_request_stream_direction
- *
- * Implements D-Bus method RequestStreamDirection
- * on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_request_stream_direction (GabbleMediaChannel *self,
-                                               guint stream_id,
-                                               guint stream_direction,
-                                               GError **error)
-{
-  GabbleMediaChannelPrivate *priv;
-  GabbleMediaStream *stream;
-
-  g_assert (GABBLE_IS_MEDIA_CHANNEL (self));
-
-  priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (self);
-
-  if (stream_direction > TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL)
-    {
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "given stream direction %u is not valid", stream_direction);
-      return FALSE;
-    }
-
-  stream = _find_stream_by_id (self, stream_id);
-  if (stream == NULL)
-    {
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "given stream id %u does not exist", stream_id);
-      return FALSE;
-    }
-
-  /* streams with no session? I think not... */
-  g_assert (priv->session != NULL);
-
-  return _gabble_media_session_request_stream_direction (priv->session, stream,
-      stream_direction, error);
-}
-
-
-/**
- * gabble_media_channel_request_streams
- *
- * Implements D-Bus method RequestStreams
- * on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_channel_request_streams (GabbleMediaChannel *self,
-                                      guint contact_handle,
-                                      const GArray *types,
-                                      GPtrArray **ret,
-                                      GError **error)
-{
-  GabbleMediaChannelPrivate *priv;
-  GPtrArray *streams;
-
-  g_assert (GABBLE_IS_MEDIA_CHANNEL (self));
-
-  priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (self);
-
-  if (!gabble_handle_is_valid (priv->conn->handles, TP_HANDLE_TYPE_CONTACT,
-        contact_handle, error))
-    return FALSE;
-
-  if (!handle_set_is_member (self->group.members, contact_handle) &&
-      !handle_set_is_member (self->group.remote_pending, contact_handle))
-    {
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "given handle %u is not a member of the channel", contact_handle);
-      return FALSE;
-    }
-
-  /* if the person is a channel member, we should have a session */
-  g_assert (priv->session != NULL);
-
-  if (!_gabble_media_session_request_streams (priv->session, types, &streams,
-        error))
-    return FALSE;
-
-  *ret = make_stream_list (self, streams);
-
-  g_ptr_array_free (streams, TRUE);
-
-  return TRUE;
-}
-
-
-gboolean
-_gabble_media_channel_add_member (GObject *obj, GabbleHandle handle, const gchar *message, GError **error)
-{
-  GabbleMediaChannel *chan = GABBLE_MEDIA_CHANNEL (obj);
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (chan);
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-
-  /* did we create this channel? */
-  if (priv->creator == mixin->self_handle)
-    {
-      GabblePresence *presence;
-      GIntSet *set;
-
-      /* yes: check the peer's capabilities */
-
-      presence = gabble_presence_cache_get (priv->conn->presence_cache, handle);
-
-      if (presence == NULL ||
-          !(presence->caps & PRESENCE_CAP_GOOGLE_VOICE ||
-            presence->caps & PRESENCE_CAP_JINGLE_DESCRIPTION_AUDIO ||
-            presence->caps & PRESENCE_CAP_JINGLE_DESCRIPTION_VIDEO))
-        {
-          if (presence == NULL)
-            gabble_debug (DEBUG_FLAG, "failed to add contact %d (%s) to media channel: "
-                   "no presence available", handle,
-                   gabble_handle_inspect (priv->conn->handles,
-                     TP_HANDLE_TYPE_CONTACT, handle));
-          else
-            gabble_debug (DEBUG_FLAG, "failed to add contact %d (%s) to media channel: "
-                   "caps %x aren't sufficient", handle,
-                   gabble_handle_inspect (priv->conn->handles,
-                     TP_HANDLE_TYPE_CONTACT, handle),
-                   presence->caps);
-
-          g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-              "handle %u has no media capabilities", handle);
-          return FALSE;
-        }
-
-      /* yes: invite the peer */
-
-
-      /* create a new session */
-      create_session (chan, handle, NULL, NULL);
-
-      /* make the peer remote pending */
-      set = g_intset_new ();
-      g_intset_add (set, handle);
-
-      gabble_group_mixin_change_members (obj, "", NULL, NULL, NULL, set, 0, 0);
-
-      g_intset_destroy (set);
-
-      /* and update flags accordingly */
-      gabble_group_mixin_change_flags (obj,
-                                       TP_CHANNEL_GROUP_FLAG_CAN_REMOVE |
-                                       TP_CHANNEL_GROUP_FLAG_CAN_RESCIND,
-                                       TP_CHANNEL_GROUP_FLAG_CAN_ADD);
-
-      return TRUE;
-    }
-  else
-    {
-      /* no: has a session been created, is the handle being added ours,
-       *     and are we in local pending? */
-
-      if (priv->session &&
-          handle == mixin->self_handle &&
-          handle_set_is_member (mixin->local_pending, handle))
-        {
-          /* yes: accept the request */
-
-          GIntSet *set;
-
-          /* make us a member */
-          set = g_intset_new ();
-          g_intset_add (set, handle);
-
-          gabble_group_mixin_change_members (obj, "", set, NULL, NULL, NULL, 0, 0);
-
-          g_intset_destroy (set);
-
-          /* update flags */
-          gabble_group_mixin_change_flags (obj, 0, TP_CHANNEL_GROUP_FLAG_CAN_ADD);
-
-          /* signal acceptance */
-          _gabble_media_session_accept (priv->session);
-
-          return TRUE;
-        }
-    }
-
-  g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-      "handle %u cannot be added in the current state", handle);
-  return FALSE;
-}
-
-static gboolean
-gabble_media_channel_remove_member (GObject *obj, GabbleHandle handle, const gchar *message, GError **error)
-{
-  GabbleMediaChannel *chan = GABBLE_MEDIA_CHANNEL (obj);
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (chan);
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-  GIntSet *set;
-
-  if (priv->session == NULL)
-    {
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "handle %u cannot be removed in the current state", handle);
-
-      return FALSE;
-    }
-
-  if (priv->creator != mixin->self_handle &&
-      handle != mixin->self_handle)
-    {
-      g_set_error (error, TELEPATHY_ERRORS, PermissionDenied,
-          "handle %u cannot be removed because you are not the creator of the"
-          " channel", handle);
-
-      return FALSE;
-    }
-
-  _gabble_media_session_terminate (priv->session, INITIATOR_LOCAL, TP_CHANNEL_GROUP_CHANGE_REASON_NONE);
-
-  /* remove the member */
-  set = g_intset_new ();
-  g_intset_add (set, handle);
-
-  gabble_group_mixin_change_members (obj, "", NULL, set, NULL, NULL, 0, 0);
-
-  g_intset_destroy (set);
-
-  /* and update flags accordingly */
-  gabble_group_mixin_change_flags (obj, TP_CHANNEL_GROUP_FLAG_CAN_ADD,
-                                   TP_CHANNEL_GROUP_FLAG_CAN_REMOVE |
-                                   TP_CHANNEL_GROUP_FLAG_CAN_RESCIND);
-
-  return TRUE;
-}
-
-static void
-session_terminated_cb (GabbleMediaSession *session,
-                       guint terminator,
-                       guint reason,
-                       gpointer user_data)
-{
-  GabbleMediaChannel *channel = (GabbleMediaChannel *) user_data;
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (channel);
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (channel);
-  GError *error = NULL;
-  gchar *sid;
-  JingleSessionState state;
-  GabbleHandle peer;
-  GIntSet *set;
-
-  g_object_get (session,
-                "state", &state,
-                "peer", &peer,
-                NULL);
-
-  set = g_intset_new ();
-
-  /* remove us and the peer from the member list */
-  g_intset_add (set, mixin->self_handle);
-  g_intset_add (set, peer);
-
-  gabble_group_mixin_change_members (G_OBJECT (channel), "", NULL, set, NULL, NULL, terminator, reason);
-
-  /* update flags accordingly -- allow adding, deny removal */
-  gabble_group_mixin_change_flags (G_OBJECT (channel), TP_CHANNEL_GROUP_FLAG_CAN_ADD,
-                                   TP_CHANNEL_GROUP_FLAG_CAN_REMOVE);
-
-  /* free the session ID */
-  g_object_get (priv->session, "session-id", &sid, NULL);
-  _gabble_media_factory_free_sid (priv->factory, sid);
-  g_free (sid);
-
-  /* unref streams */
-  if (priv->streams != NULL)
-    {
-      GPtrArray *tmp = priv->streams;
-
-      /* move priv->streams aside so that the stream_close_cb
-       * doesn't double unref */
-      priv->streams = NULL;
-      g_ptr_array_foreach (tmp, (GFunc) g_object_unref, NULL);
-      g_ptr_array_free (tmp, TRUE);
-    }
-
-  /* remove the session */
-  g_object_unref (priv->session);
-  priv->session = NULL;
-
-  /* close the channel */
-  if (!gabble_media_channel_close (channel, &error))
-    {
-      g_warning ("%s: failed to close media channel: %s", G_STRFUNC,
-          error->message);
-    }
-}
-
-
-static void
-session_state_changed_cb (GabbleMediaSession *session,
-                          GParamSpec *arg1,
-                          GabbleMediaChannel *channel)
-{
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (channel);
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (channel);
-  JingleSessionState state;
-  GabbleHandle peer;
-  GIntSet *set;
-
-  g_object_get (session,
-                "state", &state,
-                "peer", &peer,
-                NULL);
-
-  if (state != JS_STATE_ACTIVE)
-    return;
-
-  if (priv->creator != mixin->self_handle)
-    return;
-
-  set = g_intset_new ();
-
-  /* add the peer to the member list */
-  g_intset_add (set, peer);
-
-  gabble_group_mixin_change_members (G_OBJECT (channel), "", set, NULL, NULL, NULL, 0, 0);
-
-  /* update flags accordingly -- allow removal, deny adding and rescinding */
-  gabble_group_mixin_change_flags (G_OBJECT (channel),
-      TP_CHANNEL_GROUP_FLAG_CAN_REMOVE,
-      TP_CHANNEL_GROUP_FLAG_CAN_ADD |
-      TP_CHANNEL_GROUP_FLAG_CAN_RESCIND);
-
-  g_intset_destroy (set);
-}
-
-static void
-stream_close_cb (GabbleMediaStream *stream,
-                 GabbleMediaChannel *chan)
-{
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (chan);
-  guint id;
-
-  g_object_get (stream, "id", &id, NULL);
-
-  g_signal_emit (chan, signals[STREAM_REMOVED], 0, id);
-
-  if (priv->streams != NULL)
-    {
-      g_ptr_array_remove (priv->streams, stream);
-      g_object_unref (stream);
-    }
-}
-
-static void
-stream_error_cb (GabbleMediaStream *stream,
-                 TpMediaStreamError errno,
-                 const gchar *message,
-                 GabbleMediaChannel *chan)
-{
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (chan);
-  guint id;
-
-  /* emit signal */
-  g_object_get (stream, "id", &id, NULL);
-  g_signal_emit (chan, signals[STREAM_ERROR], 0, id, errno, message);
-
-  /* remove stream from session */
-  _gabble_media_session_remove_streams (priv->session, &stream, 1);
-}
-
-static void
-stream_state_changed_cb (GabbleMediaStream *stream,
-                         GParamSpec *pspec,
-                         GabbleMediaChannel *chan)
-{
-  guint id;
-  TpMediaStreamState connection_state;
-
-  g_object_get (stream, "id", &id, "connection-state", &connection_state, NULL);
-
-  g_signal_emit (chan, signals[STREAM_STATE_CHANGED], 0, id, connection_state);
-}
-
-static void
-stream_direction_changed_cb (GabbleMediaStream *stream,
-                             GParamSpec *pspec,
-                             GabbleMediaChannel *chan)
-{
-  guint id;
-  CombinedStreamDirection combined;
-  TpMediaStreamDirection direction;
-  TpMediaStreamPendingSend pending_send;
-
-  g_object_get (stream,
-      "id", &id,
-      "combined-direction", &combined,
-      NULL);
-
-  direction = COMBINED_DIRECTION_GET_DIRECTION (combined);
-  pending_send = COMBINED_DIRECTION_GET_PENDING_SEND (combined);
-
-  g_signal_emit (chan, signals[STREAM_DIRECTION_CHANGED], 0, id, direction,
-      pending_send);
-}
-
-static void
-session_stream_added_cb (GabbleMediaSession *session,
-                         GabbleMediaStream  *stream,
-                         GabbleMediaChannel *chan)
-{
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (chan);
-
-  guint id, handle, type;
-
-  /* keep track of the stream */
-  g_object_ref (stream);
-  g_ptr_array_add (priv->streams, stream);
-
-  g_signal_connect (stream, "close",
-                    (GCallback) stream_close_cb, chan);
-  g_signal_connect (stream, "error",
-                    (GCallback) stream_error_cb, chan);
-  g_signal_connect (stream, "notify::connection-state",
-                    (GCallback) stream_state_changed_cb, chan);
-  g_signal_connect (stream, "notify::combined-direction",
-                    (GCallback) stream_direction_changed_cb, chan);
-
-  /* emit StreamAdded */
-  g_object_get (session, "peer", &handle, NULL);
-  g_object_get (stream, "id", &id, "media-type", &type, NULL);
-
-  g_signal_emit (chan, signals[STREAM_ADDED], 0, id, handle, type);
-}
-
-guint
-_gabble_media_channel_get_stream_id (GabbleMediaChannel *chan)
-{
-  GabbleMediaChannelPrivate *priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (chan);
-
-  return priv->next_stream_id++;
-}
-
-#define AUDIO_CAPS \
-  ( PRESENCE_CAP_GOOGLE_VOICE | PRESENCE_CAP_JINGLE_DESCRIPTION_AUDIO )
-
-#define VIDEO_CAPS \
-  ( PRESENCE_CAP_JINGLE_DESCRIPTION_VIDEO )
-
-GabblePresenceCapabilities
-_gabble_media_channel_typeflags_to_caps (TpChannelMediaCapabilities flags)
-{
-  GabblePresenceCapabilities caps = 0;
-
-  if (flags & TP_CHANNEL_MEDIA_CAPABILITY_AUDIO)
-    caps |= AUDIO_CAPS;
-
-  if (flags & TP_CHANNEL_MEDIA_CAPABILITY_VIDEO)
-    caps |= VIDEO_CAPS;
-
-  return caps;
-}
-
-TpChannelMediaCapabilities
-_gabble_media_channel_caps_to_typeflags (GabblePresenceCapabilities caps)
-{
-  TpChannelMediaCapabilities typeflags = 0;
-
-  if (caps & AUDIO_CAPS)
-    typeflags |= TP_CHANNEL_MEDIA_CAPABILITY_AUDIO;
-
-  if (caps & VIDEO_CAPS)
-    typeflags |= TP_CHANNEL_MEDIA_CAPABILITY_VIDEO;
-
-  return typeflags;
-}
-
-//Added to avoid type casting error in winscw
-GabblePresenceCapabilities
-_gabble_media_channel_typeflags_to_caps_tmp (guint flags) 
-{ 
-return _gabble_media_channel_typeflags_to_caps( (TpChannelMediaCapabilities) flags);
-}
-
-//Added to avoid type casting error in winscw
-guint
-_gabble_media_channel_caps_to_typeflags_tmp (GabblePresenceCapabilities caps) 
-{ 
-return (guint) _gabble_media_channel_caps_to_typeflags(caps);
-}
-
--- a/telepathygabble/src/gabble-media-session-enumtypes.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
- * gabble-media-session-enumtypes.c - Source for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * 
- */
-/* Generated data (by glib-mkenums) */
-//vinod: changed system path to local
-#include "gabble-media-session.h"
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(etype,gabble_media_session_enum_types,GType)
-	#define etype (*GET_WSD_VAR_NAME(etype,gabble_media_session_enum_types,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(etype1,gabble_media_session_enum_types,GType)
-	#define etype1 (*GET_WSD_VAR_NAME(etype1,gabble_media_session_enum_types,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(etype2,gabble_media_session_enum_types,GType)
-	#define etype2 (*GET_WSD_VAR_NAME(etype2,gabble_media_session_enum_types,s)())
-
-#endif
-
-
-/* enumerations from "gabble-media-session.h" */
-GType
-gabble_media_session_mode_get_type (void)
-{
-#ifndef EMULATOR
-  static GType etype = 0;
-#endif
-  
-  if (etype == 0) {
-    static const GEnumValue values[] = {
-      { MODE_GOOGLE, "MODE_GOOGLE", "MODE_GOOGLE" },
-      { MODE_JINGLE, "MODE_JINGLE", "MODE_JINGLE" },
-      { 0, NULL, NULL }
-    };
-    etype = g_enum_register_static ("GabbleMediaSessionMode", values);
-  }
-  return etype;
-}
-GType
-jingle_session_state_get_type (void)
-{
-#ifndef EMULATOR
-  static GType etype1 = 0;
-#endif
-  
-  if (etype1 == 0) {
-    static const GEnumValue values[] = {
-      { JS_STATE_INVALID, "JS_STATE_INVALID", "JS_STATE_INVALID" },
-      { JS_STATE_PENDING_CREATED, "JS_STATE_PENDING_CREATED", "JS_STATE_PENDING_CREATED" },
-      { JS_STATE_PENDING_INITIATE_SENT, "JS_STATE_PENDING_INITIATE_SENT", "JS_STATE_PENDING_INITIATE_SENT" },
-      { JS_STATE_PENDING_INITIATED, "JS_STATE_PENDING_INITIATED", "JS_STATE_PENDING_INITIATED" },
-      { JS_STATE_PENDING_ACCEPT_SENT, "JS_STATE_PENDING_ACCEPT_SENT", "JS_STATE_PENDING_ACCEPT_SENT" },
-      { JS_STATE_ACTIVE, "JS_STATE_ACTIVE", "JS_STATE_ACTIVE" },
-      { JS_STATE_ENDED, "JS_STATE_ENDED", "JS_STATE_ENDED" },
-      { 0, NULL, NULL }
-    };
-    etype1 = g_enum_register_static ("JingleSessionState", values);
-  }
-  return etype1;
-}
-GType
-debug_message_type_get_type (void)
-{
-#ifndef EMULATOR
-  static GType etype2 = 0;
-#endif
-  
-  if (etype2 == 0) {
-    static const GEnumValue values[] = {
-      { DEBUG_MSG_INFO, "DEBUG_MSG_INFO", "DEBUG_MSG_INFO" },
-      { DEBUG_MSG_DUMP, "DEBUG_MSG_DUMP", "DEBUG_MSG_DUMP" },
-      { DEBUG_MSG_WARNING, "DEBUG_MSG_WARNING", "DEBUG_MSG_WARNING" },
-      { DEBUG_MSG_ERROR, "DEBUG_MSG_ERROR", "DEBUG_MSG_ERROR" },
-      { DEBUG_MSG_EVENT, "DEBUG_MSG_EVENT", "DEBUG_MSG_EVENT" },
-      { 0, NULL, NULL }
-    };
-    etype2 = g_enum_register_static ("DebugMessageType", values);
-  }
-  return etype2;
-}
-
-/* Generated data ends here */
-
--- a/telepathygabble/src/gabble-media-session-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-/*
- * gabble-media-session-signals-marshal.c - Source for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * -- LET'S DISCO!!!  \o/ \o_ _o/ /\o/\ _/o/- -\o\_ --
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:STRING,UINT,UINT,UINT (gabble-media-session-signals-marshal.list:1) */
-void
-gabble_media_session_marshal_VOID__STRING_UINT_UINT_UINT (GClosure     *closure,
-                                                          GValue       *return_value,
-                                                          guint         n_param_values,
-                                                          const GValue *param_values,
-                                                          gpointer      invocation_hint,
-                                                          gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_UINT_UINT_UINT) (gpointer     data1,
-                                                            gpointer     arg_1,
-                                                            guint        arg_2,
-                                                            guint        arg_3,
-                                                            guint        arg_4,
-                                                            gpointer     data2);
-  register GMarshalFunc_VOID__STRING_UINT_UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_uint (param_values + 3),
-            g_marshal_value_peek_uint (param_values + 4),
-            data2);
-}
-
-/* VOID:UINT,UINT (gabble-media-session-signals-marshal.list:2) */
-void
-gabble_media_session_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                              GValue       *return_value,
-                                              guint         n_param_values,
-                                              const GValue *param_values,
-                                              gpointer      invocation_hint,
-                                              gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer     data1,
-                                                guint        arg_1,
-                                                guint        arg_2,
-                                                gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            data2);
-}
-
--- a/telepathygabble/src/gabble-media-session.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3026 +0,0 @@
-/*
- * gabble-media-session.c - Source for GabbleMediaSession
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#include "debug.h"
-#include "ansi.h"
-#include "handles.h"
-#include "namespaces.h"
-#include "util.h"
-
-#include "telepathy-errors.h"
-#include "telepathy-helpers.h"
-
-#include "gabble-connection.h"
-#include "gabble-media-channel.h"
-#include "gabble-media-stream.h"
-#include "gabble-presence-cache.h"
-#include "gabble-presence.h"
-
-#include "gabble-media-session.h"
-#include "gabble-media-session-signals-marshal.h"
-#include "gabble-media-session-glue.h"
-
-#include "gabble_enums.h"
-
-#ifndef EMULATOR
-G_DEFINE_TYPE(GabbleMediaSession, gabble_media_session, G_TYPE_OBJECT)
-#endif
-
-
-#define DEBUG_FLAG GABBLE_DEBUG_MEDIA
-//vinod
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-//#define NODE_DEBUG(n, s);
-#endif /* DEBUG_FLAG */
-
-#define DEFAULT_SESSION_TIMEOUT 50000
-
-#define GTALK_STREAM_NAME "gtalk"
-
-/* 99 streams gives us a max name length of 8 (videoXX\0 or audioXX\0) */
-#define MAX_STREAMS 99
-
-#ifndef EMULATOR
-#define MAX_STREAM_NAME_LEN 8
-#endif
-
-//#define DEBUGGING 0
-
-/* signal enum */
-enum
-{
-    NEW_STREAM_HANDLER,
-    STREAM_ADDED,
-    TERMINATED,
-    LAST_SIGNAL
-};
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_med_sess,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_med_sess, s)())	
-	
-	
-	GET_STATIC_VAR_FROM_TLS(google_audio_caps,gabble_med_sess,GabblePresenceCapabilities)
-	#define google_audio_caps (*GET_WSD_VAR_NAME(google_audio_caps,gabble_med_sess, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(jingle_audio_caps,gabble_med_sess,GabblePresenceCapabilities)
-	#define jingle_audio_caps (*GET_WSD_VAR_NAME(jingle_audio_caps,gabble_med_sess, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(jingle_video_caps,gabble_med_sess,GabblePresenceCapabilities)
-	#define jingle_video_caps (*GET_WSD_VAR_NAME(jingle_video_caps,gabble_med_sess, s)())	
-	
-	GET_STATIC_ARRAY_FROM_TLS(ret_sess,gabble_med_sess,gchar)
-	#define ret_sess (GET_WSD_VAR_NAME(ret_sess,gabble_med_sess, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(gabble_media_session_parent_class,gabble_med_sess,gpointer)
-	#define gabble_media_session_parent_class (*GET_WSD_VAR_NAME(gabble_media_session_parent_class,gabble_med_sess,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_med_sess,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_med_sess,s)())	
-	
-	
-	static void gabble_media_session_init (GabbleMediaSession *self); 
-	static void gabble_media_session_class_init (GabbleMediaSessionClass *klass); 
-	static void gabble_media_session_class_intern_init (gpointer klass) 
-	{ 
-	gabble_media_session_parent_class = g_type_class_peek_parent (klass); 
-	gabble_media_session_class_init ((GabbleMediaSessionClass*) klass); }
-	
-	 EXPORT_C GType gabble_media_session_get_type (void) 
-	 { 
-	 if ((g_define_type_id == 0)) { static const GTypeInfo g_define_type_info = { sizeof (GabbleMediaSessionClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_media_session_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleMediaSession), 0, (GInstanceInitFunc) gabble_media_session_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleMediaSession"), &g_define_type_info, (GTypeFlags) 0); { {} ; } } return g_define_type_id; 
-	 }
-
-	
-		
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif
-
-/* properties */
-enum
-{
-  PROP_CONNECTION = 1,
-  PROP_MEDIA_CHANNEL,
-  PROP_OBJECT_PATH,
-  PROP_SESSION_ID,
-  PROP_INITIATOR,
-  PROP_PEER,
-  PROP_PEER_RESOURCE,
-  PROP_STATE,
-  LAST_PROPERTY
-};
-
-/* private structure */
-typedef struct _GabbleMediaSessionPrivate GabbleMediaSessionPrivate;
-
-struct _GabbleMediaSessionPrivate
-{
-  GabbleConnection *conn;
-  GabbleMediaChannel *channel;
-  GabbleMediaSessionMode mode;
-  gchar *object_path;
-
-  GPtrArray *streams;
-  GPtrArray *remove_requests;
-
-  gchar *id;
-  GabbleHandle peer;
-  gchar *peer_resource;
-
-  JingleSessionState state;
-  gboolean ready;
-  gboolean locally_accepted;
-  gboolean terminated;
-
-  guint timer_id;
-
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_MEDIA_SESSION_GET_PRIVATE(obj) \
-    ((GabbleMediaSessionPrivate *)obj->priv)
-
-typedef struct {
-    gchar *name;
-    gchar *attributes;
-} SessionStateDescription;
-
-static const SessionStateDescription session_states[] =
-{
-    { "JS_STATE_PENDING_CREATED",       ANSI_BOLD_ON ANSI_FG_BLACK ANSI_BG_WHITE   },
-    { "JS_STATE_PENDING_INITIATE_SENT", ANSI_BOLD_ON               ANSI_BG_CYAN    },
-    { "JS_STATE_PENDING_INITIATED",     ANSI_BOLD_ON               ANSI_BG_MAGENTA },
-    { "JS_STATE_PENDING_ACCEPT_SENT",   ANSI_BOLD_ON               ANSI_BG_CYAN    },
-    { "JS_STATE_ACTIVE",                ANSI_BOLD_ON               ANSI_BG_BLUE    },
-    { "JS_STATE_ENDED",                                            ANSI_BG_RED     }
-};
-
-static void
-gabble_media_session_init (GabbleMediaSession *self)
-{
-  GabbleMediaSessionPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GABBLE_TYPE_MEDIA_SESSION, GabbleMediaSessionPrivate);
-
-  self->priv = priv;
-
-  priv->mode = MODE_JINGLE;
-  priv->state = JS_STATE_PENDING_CREATED;
-  priv->streams = g_ptr_array_new ();
-  priv->remove_requests = g_ptr_array_new ();
-}
-
-static void stream_connection_state_changed_cb (GabbleMediaStream *stream,
-                                                GParamSpec *param,
-                                                GabbleMediaSession *session);
-static void stream_got_local_codecs_changed_cb (GabbleMediaStream *stream,
-                                                GParamSpec *param,
-                                                GabbleMediaSession *session);
-
-static void
-_emit_new_stream (GabbleMediaSession *session,
-                  GabbleMediaStream *stream)
-{
-  gchar *object_path;
-  guint id, media_type;
-
-  g_object_get (stream,
-                "object-path", &object_path,
-                "id", &id,
-                "media-type", &media_type,
-                NULL);
-
-  /* all of the streams are bidirectional from farsight's point of view, it's
-   * just in the signalling they change */
-  g_signal_emit (session, signals[NEW_STREAM_HANDLER], 0, object_path, id,
-      media_type, TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL);
-
-  g_free (object_path);
-}
-
-
-static GabbleMediaStream *
-_lookup_stream_by_name_and_initiator (GabbleMediaSession *session,
-                                      const gchar *stream_name,
-                                      JingleInitiator stream_initiator)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  guint i;
-
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-
-      if (g_strdiff (stream->name, stream_name))
-        continue;
-
-      if (stream_initiator != INITIATOR_INVALID &&
-          stream_initiator != stream->initiator)
-        continue;
-
-      return stream;
-    }
-
-  return NULL;
-}
-
-
-static GabbleMediaStream *
-create_media_stream (GabbleMediaSession *session,
-                     const gchar *name,
-                     JingleInitiator initiator,
-                     guint media_type)
-{
-  GabbleMediaSessionPrivate *priv;
-  gchar *object_path;
-  GabbleMediaStream *stream;
-  guint id;
-
-  g_assert (GABBLE_IS_MEDIA_SESSION (session));
-  g_assert (name != NULL);
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  /* assert that if we're in google mode:
-   *  - we only try to make one stream
-   *  - it's an audio stream
-   *  - it's called GTALK_STREAM_NAME */
-  if (priv->mode == MODE_GOOGLE)
-    {
-      g_assert (priv->streams->len == 0);
-      g_assert (media_type == TP_MEDIA_STREAM_TYPE_AUDIO);
-      g_assert (!g_strdiff (name, GTALK_STREAM_NAME));
-    }
-
-  g_assert (priv->streams->len < MAX_STREAMS);
-  g_assert (_lookup_stream_by_name_and_initiator (session, name, initiator) ==
-      NULL);
-
-  id = _gabble_media_channel_get_stream_id (priv->channel);
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO,
-      "creating new %s %s stream called \"%s\" with id %u",
-      priv->mode == MODE_GOOGLE ? "google" : "jingle",
-      media_type == TP_MEDIA_STREAM_TYPE_AUDIO ? "audio" : "video",
-      name, id);
-
-  object_path = g_strdup_printf ("%s/MediaStream%u", priv->object_path, id);
-
-  stream = g_object_new (GABBLE_TYPE_MEDIA_STREAM,
-                         "connection", priv->conn,
-                         "media-session", session,
-                         "object-path", object_path,
-                         "mode", priv->mode,
-                         "name", name,
-                         "id", id,
-                         "initiator", initiator,
-                         "media-type", media_type,
-                         NULL);
-
-  g_signal_connect (stream, "notify::connection-state",
-                    (GCallback) stream_connection_state_changed_cb,
-                    session);
-  g_signal_connect (stream, "notify::got-local-codecs",
-                    (GCallback) stream_got_local_codecs_changed_cb,
-                    session);
-
-  g_ptr_array_add (priv->streams, stream);
-
-  g_free (object_path);
-
-  if (priv->ready)
-    _emit_new_stream (session, stream);
-
-  g_signal_emit (session, signals[STREAM_ADDED], 0, stream);
-
-  return stream;
-}
-
-static void
-destroy_media_stream (GabbleMediaSession *session,
-                      GabbleMediaStream *stream)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  _gabble_media_stream_close (stream);
-  g_ptr_array_remove_fast (priv->streams, stream);
-  g_object_unref (stream);
-}
-
-static GObject *
-gabble_media_session_constructor (GType type, guint n_props,
-                                  GObjectConstructParam *props)
-{
-  GObject *obj;
-  GabbleMediaSessionPrivate *priv;
-  DBusGConnection *bus;
-
-  obj = G_OBJECT_CLASS (gabble_media_session_parent_class)->
-           constructor (type, n_props, props);
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (GABBLE_MEDIA_SESSION (obj));
-
-  bus = tp_get_bus ();
-  dbus_g_connection_register_g_object (bus, priv->object_path, obj);
-
-  return obj;
-}
-
-static void
-gabble_media_session_get_property (GObject    *object,
-                                   guint       property_id,
-                                   GValue     *value,
-                                   GParamSpec *pspec)
-{
-  GabbleMediaSession *session = GABBLE_MEDIA_SESSION (object);
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    case PROP_MEDIA_CHANNEL:
-      g_value_set_object (value, priv->channel);
-      break;
-    case PROP_OBJECT_PATH:
-      g_value_set_string (value, priv->object_path);
-      break;
-    case PROP_SESSION_ID:
-      g_value_set_string (value, priv->id);
-      break;
-    case PROP_INITIATOR:
-      g_value_set_uint (value, session->initiator);
-      break;
-    case PROP_PEER:
-      g_value_set_uint (value, priv->peer);
-      break;
-    case PROP_PEER_RESOURCE:
-      g_value_set_string (value, priv->peer_resource);
-      break;
-    case PROP_STATE:
-      g_value_set_uint (value, priv->state);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void session_state_changed (GabbleMediaSession *session,
-                                   JingleSessionState prev_state,
-                                   JingleSessionState new_state);
-
-static void
-gabble_media_session_set_property (GObject      *object,
-                                   guint         property_id,
-                                   const GValue *value,
-                                   GParamSpec   *pspec)
-{
-  GabbleMediaSession *session = GABBLE_MEDIA_SESSION (object);
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  JingleSessionState prev_state;
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    case PROP_MEDIA_CHANNEL:
-      priv->channel = g_value_get_object (value);
-      break;
-    case PROP_OBJECT_PATH:
-      g_free (priv->object_path);
-      priv->object_path = g_value_dup_string (value);
-      break;
-    case PROP_SESSION_ID:
-      g_free (priv->id);
-      priv->id = g_value_dup_string (value);
-      break;
-    case PROP_INITIATOR:
-      session->initiator = g_value_get_uint (value);
-      break;
-    case PROP_PEER:
-      priv->peer = g_value_get_uint (value);
-      break;
-    case PROP_PEER_RESOURCE:
-      g_free (priv->peer_resource);
-      priv->peer_resource = g_value_dup_string (value);
-      break;
-    case PROP_STATE:
-      prev_state = priv->state;
-      priv->state = g_value_get_uint (value);
-
-      if (priv->state == JS_STATE_ENDED)
-        g_assert (priv->terminated);
-
-      if (priv->state != prev_state)
-        session_state_changed (session, prev_state, priv->state);
-
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void gabble_media_session_dispose (GObject *object);
-static void gabble_media_session_finalize (GObject *object);
-
-static void
-gabble_media_session_class_init (GabbleMediaSessionClass *gabble_media_session_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_media_session_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_media_session_class, sizeof (GabbleMediaSessionPrivate));
-
-  object_class->constructor = gabble_media_session_constructor;
-
-  object_class->get_property = gabble_media_session_get_property;
-  object_class->set_property = gabble_media_session_set_property;
-
-  object_class->dispose = gabble_media_session_dispose;
-  object_class->finalize = gabble_media_session_finalize;
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "media session's channel.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-  param_spec = g_param_spec_object ("media-channel", "GabbleMediaChannel object",
-                                    "Gabble media channel object that owns this "
-                                    "media session object.",
-                                    GABBLE_TYPE_MEDIA_CHANNEL,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_MEDIA_CHANNEL, param_spec);
-
-  param_spec = g_param_spec_string ("object-path", "D-Bus object path",
-                                    "The D-Bus object path used for this "
-                                    "object on the bus.",
-                                    NULL,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_OBJECT_PATH, param_spec);
-
-  param_spec = g_param_spec_string ("session-id", "Session ID",
-                                    "A unique session identifier used "
-                                    "throughout all communication.",
-                                    NULL,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_SESSION_ID, param_spec);
-
-  param_spec = g_param_spec_uint ("initiator", "Session initiator",
-                                  "An enum signifying which end initiated "
-                                  "the session.",
-                                  INITIATOR_LOCAL,
-                                  INITIATOR_REMOTE,
-                                  INITIATOR_LOCAL,
-                                  G_PARAM_CONSTRUCT_ONLY |
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_INITIATOR, param_spec);
-
-  param_spec = g_param_spec_uint ("peer", "Session peer",
-                                  "The GabbleHandle representing the contact "
-                                  "with whom this session communicates.",
-                                  0, G_MAXUINT32, 0,
-                                  G_PARAM_CONSTRUCT_ONLY |
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_PEER, param_spec);
-
-  param_spec = g_param_spec_string ("peer-resource",
-                                    "Session peer's resource",
-                                    "The resource of the contact "
-                                    "with whom this session communicates, "
-                                    "if applicable",
-                                    NULL,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_WRITABLE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_PEER_RESOURCE,
-                                   param_spec);
-
-  param_spec = g_param_spec_uint ("state", "Session state",
-                                  "The current state that the session is in.",
-                                  0, G_MAXUINT32, 0,
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STATE, param_spec);
-
-  signals[NEW_STREAM_HANDLER] =
-    g_signal_new ("new-stream-handler",
-                  G_OBJECT_CLASS_TYPE (gabble_media_session_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_session_marshal_VOID__STRING_UINT_UINT_UINT,
-                  G_TYPE_NONE, 4, DBUS_TYPE_G_OBJECT_PATH, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
-
-  signals[STREAM_ADDED] =
-    g_signal_new ("stream-added",
-                  G_OBJECT_CLASS_TYPE (gabble_media_session_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__OBJECT,
-                  G_TYPE_NONE, 1, G_TYPE_OBJECT);
-
-  signals[TERMINATED] =
-    g_signal_new ("terminated",
-                  G_OBJECT_CLASS_TYPE (gabble_media_session_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_session_marshal_VOID__UINT_UINT,
-                  G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
-
-  dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (gabble_media_session_class), &dbus_glib_gabble_media_session_object_info);
-}
-
-static void
-gabble_media_session_dispose (GObject *object)
-{
-  GabbleMediaSession *self = GABBLE_MEDIA_SESSION (object);
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (self);
-  guint i;
-
-  gabble_debug (DEBUG_FLAG, "called");
-
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  _gabble_media_session_terminate (self, INITIATOR_LOCAL,
-      TP_CHANNEL_GROUP_CHANGE_REASON_NONE);
-
-  if (priv->timer_id != 0)
-    g_source_remove (priv->timer_id);
-
-  if (priv->streams != NULL)
-    {
-      for (i = 0; i < priv->streams->len; i++)
-        g_object_unref (g_ptr_array_index (priv->streams, i));
-      g_ptr_array_free (priv->streams, TRUE);
-      priv->streams = NULL;
-    }
-
-  for (i = 0; i < priv->remove_requests->len; i++)
-    g_ptr_array_free (g_ptr_array_index (priv->remove_requests, i), TRUE);
-  g_ptr_array_free (priv->remove_requests, TRUE);
-  priv->remove_requests = NULL;
-
-  if (G_OBJECT_CLASS (gabble_media_session_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_media_session_parent_class)->dispose (object);
-}
-
-static void
-gabble_media_session_finalize (GObject *object)
-{
-  GabbleMediaSession *self = GABBLE_MEDIA_SESSION (object);
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (self);
-
-  g_free (priv->id);
-  g_free (priv->object_path);
-  g_free (priv->peer_resource);
-  G_OBJECT_CLASS (gabble_media_session_parent_class)->finalize (object);
-}
-
-
-/**
- * gabble_media_session_error
- *
- * Implements D-Bus method Error
- * on interface org.freedesktop.Telepathy.Media.SessionHandler
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_session_error (GabbleMediaSession *self,
-                            guint errno,
-                            const gchar *message,
-                            GError **error)
-{
-  GabbleMediaSessionPrivate *priv;
-  GPtrArray *tmp;
-  guint i;
-
-  g_assert (GABBLE_IS_MEDIA_SESSION (self));
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (self);
-
-  _gabble_media_session_debug (self, DEBUG_MSG_INFO, "Media.SessionHandler::Error called, error %u (%s) -- "
-      "emitting error on each stream", errno, message);
-
-  if (priv->state == JS_STATE_ENDED)
-    {
-      return TRUE;
-    }
-  else if (priv->state == JS_STATE_PENDING_CREATED)
-    {
-      /* shortcut to prevent sending remove actions if we haven't sent an
-       * initiate yet */
-      g_object_set (self, "state", JS_STATE_ENDED, NULL);
-      return TRUE;
-    }
-
-  g_assert (priv->streams != NULL);
-
-  tmp = priv->streams;
-  priv->streams = NULL;
-
-  for (i = 0; i < tmp->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-      //FIXME: Temporary fix to comment "errno" to resolve the mecevo integration build break, fix me when this method is being used.
-      gabble_media_stream_error (stream, /*errno*/0, message, NULL);
-    }
-
-  g_ptr_array_free (tmp, TRUE);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_session_ready
- *
- * Implements D-Bus method Ready
- * on interface org.freedesktop.Telepathy.Media.SessionHandler
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_session_ready (GabbleMediaSession *self,
-                            GError **error)
-{
-  GabbleMediaSessionPrivate *priv;
-  guint i;
-
-  g_assert (GABBLE_IS_MEDIA_SESSION (self));
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (self);
-
-  priv->ready = TRUE;
-
-  for (i = 0; i < priv->streams->len; i++)
-    _emit_new_stream (self, g_ptr_array_index (priv->streams, i));
-
-  return TRUE;
-}
-
-
-static gboolean
-_handle_create (GabbleMediaSession *session,
-                LmMessage *message,
-                LmMessageNode *content_node,
-                const gchar *stream_name,
-                GabbleMediaStream *stream,
-                LmMessageNode *desc_node,
-                LmMessageNode *trans_node,
-                GError **error)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  GabbleMediaSessionMode session_mode;
-  TpMediaStreamType stream_type;
-  gboolean override_existing = FALSE;
-
-  if ((priv->state == JS_STATE_PENDING_CREATED) &&
-      (session->initiator == INITIATOR_LOCAL))
-    {
-      gabble_debug (DEBUG_FLAG, "we're trying to call ourselves, rejecting with busy");
-      _gabble_media_session_terminate (session, INITIATOR_REMOTE,
-          TP_CHANNEL_GROUP_CHANGE_REASON_BUSY);
-          return FALSE;
-    }
-
-
-  if (stream != NULL)
-    {
-      /* streams added by the session initiator may replace similarly-named
-       * streams which we are trying to add (but havn't had acknowledged) */
-      if (stream->signalling_state < STREAM_SIG_STATE_ACKNOWLEDGED)
-        {
-          if (session->initiator == INITIATOR_REMOTE)
-            {
-              override_existing = TRUE;
-            }
-          else
-            {
-              g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_CONFLICT,
-                  "session initiator is creating a stream named \"%s\" already",
-                  stream_name);
-              return FALSE;
-            }
-        }
-      else
-        {
-          g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_CONFLICT,
-              "can't create new stream called \"%s\", it already exists, "
-              "rejecting", stream_name);
-          return FALSE;
-        }
-    }
-
-  if (desc_node == NULL)
-    {
-      g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_BAD_REQUEST,
-          "unable to create stream without a content description");
-      return FALSE;
-    }
-
-  if (lm_message_node_has_namespace (desc_node,
-        NS_GOOGLE_SESSION_PHONE, NULL))
-    {
-      session_mode = MODE_GOOGLE;
-      stream_type = TP_MEDIA_STREAM_TYPE_AUDIO;
-    }
-  else if (lm_message_node_has_namespace (desc_node,
-        NS_JINGLE_DESCRIPTION_AUDIO, NULL))
-    {
-      session_mode = MODE_JINGLE;
-      stream_type = TP_MEDIA_STREAM_TYPE_AUDIO;
-    }
-  else if (lm_message_node_has_namespace (desc_node,
-        NS_JINGLE_DESCRIPTION_VIDEO, NULL))
-    {
-      session_mode = MODE_JINGLE;
-      stream_type = TP_MEDIA_STREAM_TYPE_VIDEO;
-    }
-  else
-    {
-      g_set_error (error, GABBLE_XMPP_ERROR,
-          XMPP_ERROR_JINGLE_UNSUPPORTED_CONTENT,
-          "refusing to create stream for unsupported content description");
-      return FALSE;
-    }
-
-  /* MODE_GOOGLE is allowed to have a null transport node */
-  if (session_mode == MODE_JINGLE && trans_node == NULL)
-    {
-      g_set_error (error, GABBLE_XMPP_ERROR,
-          XMPP_ERROR_JINGLE_UNSUPPORTED_TRANSPORT,
-          "refusing to create stream for unsupported transport");
-      return FALSE;
-    }
-
-  if (session_mode != priv->mode)
-    {
-      if (priv->streams->len > 0)
-        {
-          g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_UNEXPECTED_REQUEST,
-              "refusing to change mode because streams already exist");
-          return FALSE;
-        }
-      else
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "setting session mode to %s",
-              session_mode == MODE_GOOGLE ? "google" : "jingle");
-          priv->mode = session_mode;
-        }
-    }
-
-  if (override_existing)
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "removing our unacknowledged stream \"%s\" "
-          "in favour of the session initiator's", stream_name);
-
-      /* disappear this stream */
-      destroy_media_stream (session, stream);
-
-      stream = NULL;
-    }
-
-  if (priv->streams->len == MAX_STREAMS)
-    {
-      g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_RESOURCE_CONSTRAINT,
-          "refusing to create more than " G_STRINGIFY (MAX_STREAMS)
-          " streams");
-      return FALSE;
-    }
-
-  stream = create_media_stream (session, stream_name, INITIATOR_REMOTE,
-      stream_type);
-
-  /* set the signalling state to ACKNOWLEDGED */
-  g_object_set (stream,
-      "signalling-state", STREAM_SIG_STATE_ACKNOWLEDGED,
-      NULL);
-
-  /* for jingle streams, set the direction to none, so that the
-   * direction handler adds the right flags */
-  if (priv->mode == MODE_JINGLE)
-    g_object_set (stream,
-        "combined-direction", TP_MEDIA_STREAM_DIRECTION_NONE,
-        NULL);
-
-  return TRUE;
-}
-
-
-static TpMediaStreamDirection
-_senders_to_direction (GabbleMediaSession *session,
-                       const gchar *senders)
-{
-  TpMediaStreamDirection ret = TP_MEDIA_STREAM_DIRECTION_NONE;
-
-  if (!g_strdiff (senders, "initiator"))
-    {
-      if (session->initiator == INITIATOR_LOCAL)
-        ret = TP_MEDIA_STREAM_DIRECTION_SEND;
-      else
-        ret = TP_MEDIA_STREAM_DIRECTION_RECEIVE;
-    }
-  else if (!g_strdiff (senders, "responder"))
-    {
-      if (session->initiator == INITIATOR_REMOTE)
-        ret = TP_MEDIA_STREAM_DIRECTION_SEND;
-      else
-        ret = TP_MEDIA_STREAM_DIRECTION_RECEIVE;
-    }
-  else if (!g_strdiff (senders, "both"))
-    {
-      ret = TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL;
-    }
-
-  return ret;
-}
-
-static gboolean
-_handle_direction (GabbleMediaSession *session,
-                   LmMessage *message,
-                   LmMessageNode *content_node,
-                   const gchar *stream_name,
-                   GabbleMediaStream *stream,
-                   LmMessageNode *desc_node,
-                   LmMessageNode *trans_node,
-                   GError **error)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  const gchar *senders;
-  CombinedStreamDirection new_combined_dir;
-  TpMediaStreamDirection requested_dir, current_dir;
-  TpMediaStreamPendingSend pending_send;
-
-  if (priv->mode == MODE_GOOGLE)
-    return TRUE;
-
-  requested_dir = TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL;
-
-  senders = lm_message_node_get_attribute (content_node, "senders");
-  if (senders != NULL)
-    requested_dir = _senders_to_direction (session, senders);
-
-  if (requested_dir == TP_MEDIA_STREAM_DIRECTION_NONE)
-    {
-      g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_BAD_REQUEST,
-          "received invalid content senders value \"%s\" on stream \"%s\"; "
-          "rejecting", senders, stream_name);
-      return FALSE;
-    }
-
-  current_dir = COMBINED_DIRECTION_GET_DIRECTION (stream->combined_direction);
-  pending_send = COMBINED_DIRECTION_GET_PENDING_SEND
-    (stream->combined_direction);
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "received request for senders \"%s\" on stream "
-      "\"%s\"", senders, stream_name);
-
-  /* if local sending has been added, remove it,
-   * and set the pending local send flag */
-  if (((current_dir & TP_MEDIA_STREAM_DIRECTION_SEND) == 0) &&
-    ((requested_dir & TP_MEDIA_STREAM_DIRECTION_SEND) != 0))
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "setting pending local send flag");
-      requested_dir &= ~TP_MEDIA_STREAM_DIRECTION_SEND;
-      pending_send |= TP_MEDIA_STREAM_PENDING_LOCAL_SEND;
-    }
-
-#if 0
-  /* clear any pending remote send */
-  if ((pending_send & TP_MEDIA_STREAM_PENDING_REMOTE_SEND) != 0)
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "setting pending local send flag");
-      pending_send &= ~TP_MEDIA_STREAM_PENDING_REMOTE_SEND;
-    }
-#endif
-
-  /* make any necessary changes */
-  new_combined_dir = MAKE_COMBINED_DIRECTION (requested_dir, pending_send);
-  if (new_combined_dir != stream->combined_direction)
-    {
-      g_object_set (stream, "combined-direction", new_combined_dir, NULL);
-      _gabble_media_stream_update_sending (stream, FALSE);
-    }
-
-  return TRUE;
-}
-
-
-static gboolean
-_handle_accept (GabbleMediaSession *session,
-                LmMessage *message,
-                LmMessageNode *content_node,
-                const gchar *stream_name,
-                GabbleMediaStream *stream,
-                LmMessageNode *desc_node,
-                LmMessageNode *trans_node,
-                GError **error)
-{
-  g_object_set (stream, "playing", TRUE, NULL);
-
-  _gabble_media_stream_update_sending (stream, TRUE);
-
-  return TRUE;
-}
-
-
-static gboolean
-_handle_codecs (GabbleMediaSession *session,
-                LmMessage *message,
-                LmMessageNode *content_node,
-                const gchar *stream_name,
-                GabbleMediaStream *stream,
-                LmMessageNode *desc_node,
-                LmMessageNode *trans_node,
-                GError **error)
-{
-  if (desc_node == NULL)
-    {
-      g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_BAD_REQUEST,
-          "unable to handle codecs without a content description node");
-      return FALSE;
-    }
-
-  if (!_gabble_media_stream_post_remote_codecs (stream, message, desc_node,
-        error))
-    return FALSE;
-
-  return TRUE;
-}
-
-
-static gboolean
-_handle_candidates (GabbleMediaSession *session,
-                    LmMessage *message,
-                    LmMessageNode *content_node,
-                    const gchar *stream_name,
-                    GabbleMediaStream *stream,
-                    LmMessageNode *desc_node,
-                    LmMessageNode *trans_node,
-                    GError **error)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  if (trans_node == NULL)
-    {
-      if (priv->mode == MODE_GOOGLE)
-        {
-          trans_node = content_node;
-        }
-      else
-        {
-          g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_BAD_REQUEST,
-              "unable to handle candidates without a transport node");
-          return FALSE;
-        }
-    }
-
-  if (!_gabble_media_stream_post_remote_candidates (stream, message,
-        trans_node, error))
-    return FALSE;
-
-  return TRUE;
-}
-
-static guint
-_count_non_removing_streams (GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  guint i, ret = 0;
-
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-
-      if (stream->signalling_state < STREAM_SIG_STATE_REMOVING)
-        ret++;
-    }
-
-  return ret;
-}
-
-static gboolean
-_handle_remove (GabbleMediaSession *session,
-                LmMessage *message,
-                LmMessageNode *content_node,
-                const gchar *stream_name,
-                GabbleMediaStream *stream,
-                LmMessageNode *desc_node,
-                LmMessageNode *trans_node,
-                GError **error)
-{
-  /* reducing a session to contain 0 streams is invalid; instead the peer
-   * should terminate the session. I guess we'll do it for them... */
-  if (_count_non_removing_streams (session) == 1)
-    {
-      g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_BAD_REQUEST,
-          "unable to remove the last stream in a Jingle call");
-      return FALSE;
-    }
-
-  /* close the stream */
-  destroy_media_stream (session, stream);
-
-  return TRUE;
-}
-
-
-static gboolean
-_handle_terminate (GabbleMediaSession *session,
-                   LmMessage *message,
-                   LmMessageNode *content_node,
-                   const gchar *stream_name,
-                   GabbleMediaStream *stream,
-                   LmMessageNode *desc_node,
-                   LmMessageNode *trans_node,
-                   GError **error)
-{
-  gabble_debug (DEBUG_FLAG, "called for %s", stream_name);
-
-  _gabble_media_session_terminate (session, INITIATOR_REMOTE,
-      TP_CHANNEL_GROUP_CHANGE_REASON_NONE);
-
-  return TRUE;
-}
-
-
-#ifndef EMULATOR
-
-typedef gboolean (*StreamHandlerFunc)(GabbleMediaSession *session,
-                                      LmMessage *message,
-                                      LmMessageNode *content_node,
-                                      const gchar *stream_name,
-                                      GabbleMediaStream *stream,
-                                      LmMessageNode *desc_node,
-                                      LmMessageNode *trans_node,
-                                      GError **error);
-                                      
-typedef struct _Handler Handler;
-
-struct _Handler {
-  const gchar *actions[3];
-  JingleSessionState min_allowed_state;
-  JingleSessionState max_allowed_state;
-  StreamHandlerFunc stream_handlers[4];
-  JingleSessionState new_state;
-};
-
-static Handler handlers[] = {
-  {
-    { "initiate", "session-initiate", NULL },
-    JS_STATE_PENDING_CREATED,
-    JS_STATE_PENDING_CREATED,
-    { _handle_create, _handle_direction, _handle_codecs, NULL },
-    JS_STATE_PENDING_INITIATED
-  },
-  {
-    { "accept", "session-accept", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_PENDING_INITIATED,
-    { _handle_direction, _handle_codecs, _handle_accept, NULL },
-    JS_STATE_ACTIVE
-  },
-  {
-    { "reject", NULL },
-    JS_STATE_PENDING_INITIATE_SENT,
-    JS_STATE_PENDING_INITIATED,
-    { _handle_terminate, NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { "terminate", "session-terminate", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_ENDED,
-    { _handle_terminate, NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { "candidates", "transport-info", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_ACTIVE,
-    { _handle_candidates, NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { "content-add", NULL },
-    JS_STATE_ACTIVE,
-    JS_STATE_ACTIVE,
-    { _handle_create, _handle_direction, _handle_codecs, NULL },
-    JS_STATE_INVALID,
-  },
-  {
-    { "content-modify", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_ACTIVE,
-    { _handle_direction, NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { "content-accept", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_ACTIVE,
-    { _handle_direction, _handle_codecs, _handle_accept, NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { "content-remove", "content-decline", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_ACTIVE,
-    { _handle_remove, NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { NULL },
-    JS_STATE_INVALID,
-    JS_STATE_INVALID,
-    { NULL },
-    JS_STATE_INVALID
-  }
-};
-#else
-
-Handler *_s_gabble_med_sess_handlers() 
-	{ 
-	Handler* handler = libgabble_ImpurePtr()->_s_gabble_med_sess_handlers;
-	handler[0].stream_handlers[0] = _handle_create;
-	handler[0].stream_handlers[1] = _handle_direction;
-	handler[0].stream_handlers[2] = _handle_codecs;
-	
-	handler[1].stream_handlers[0] = _handle_direction;
-	handler[1].stream_handlers[1] = _handle_codecs;
-	handler[1].stream_handlers[2] = _handle_accept;
-	
-	handler[2].stream_handlers[0] = _handle_terminate;
-	
-	handler[3].stream_handlers[0] = _handle_terminate;
-	
-	handler[4].stream_handlers[0] = _handle_candidates;
-	
-	handler[5].stream_handlers[0] = _handle_create;
-	handler[5].stream_handlers[0] = _handle_direction;
-	handler[5].stream_handlers[0] = _handle_codecs;
-	
-	handler[6].stream_handlers[0] = _handle_direction;
-	
-	handler[7].stream_handlers[0] = _handle_direction;
-	handler[7].stream_handlers[2] = _handle_codecs;
-	handler[7].stream_handlers[3] = _handle_accept;
-	
-	handler[8].stream_handlers[0] = _handle_remove;
-	
-
-	return handler;
-	
-	
-
-	
-	}
-	#define handlers (GET_WSD_VAR_NAME(handlers,gabble_med_sess, s)())	
-	
-
-
-#endif
-
-
-static gboolean
-_call_handlers_on_stream (GabbleMediaSession *session,
-                          LmMessage *message,
-                          LmMessageNode *content_node,
-                          const gchar *stream_name,
-                          JingleInitiator stream_creator,
-                          StreamHandlerFunc *func,
-                          GError **error)
-{
-  GabbleMediaStream *stream = NULL;
-  LmMessageNode *desc_node = NULL, *trans_node = NULL;
-  StreamHandlerFunc *tmp;
-  gboolean stream_created = FALSE;
-
-  if (content_node != NULL)
-    {
-      desc_node = lm_message_node_get_child (content_node, "description");
-
-      trans_node = lm_message_node_get_child_with_namespace (content_node,
-          "transport", NS_GOOGLE_TRANSPORT_P2P);
-    }
-
-  for (tmp = func; *tmp != NULL; tmp++)
-    {
-      /* handlers may create the stream */
-      if (stream == NULL && stream_name != NULL)
-        stream = _lookup_stream_by_name_and_initiator (session, stream_name,
-            stream_creator);
-
-      /* the create handler is able to check whether or not the stream
-       * exists, and act accordingly (sometimes it will replace an existing
-       * stream, sometimes it will reject). the termination handler
-       * also requires no stream to do it's job. */
-      if (*tmp != _handle_create && *tmp != _handle_terminate)
-        {
-          /* all other handlers require the stream to exist */
-          if (stream == NULL)
-            {
-              const gchar *created = "";
-
-              if (stream_creator == INITIATOR_LOCAL)
-                created = "locally-created ";
-              else if (stream_creator == INITIATOR_REMOTE)
-                created = "remotely-created ";
-
-              g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_ITEM_NOT_FOUND,
-                  "unable to handle action for unknown %sstream \"%s\" ",
-                  created, stream_name);
-
-              return FALSE;
-            }
-          else
-            {
-              /* don't do anything with actions on streams which have not been
-               * acknowledged, or that we're trying to remove, to deal with
-               * adding/removing race conditions (actions sent by the other end
-               * before they're aware that we've added or removed a stream) */
-              if (stream->signalling_state != STREAM_SIG_STATE_ACKNOWLEDGED)
-                {
-                  _gabble_media_session_debug (session, DEBUG_MSG_WARNING, "ignoring action because stream "
-                      "%s is in state %d, not ACKNOWLEDGED", stream->name,
-                      stream->signalling_state);
-                  return TRUE;
-                }
-            }
-        }
-
-      if (!(*tmp) (session, message, content_node, stream_name, stream,
-            desc_node, trans_node, error))
-        {
-          /* if we successfully created the stream but failed to do something
-           * with it later, remove it */
-          if (stream_created)
-            destroy_media_stream (session, stream);
-
-          return FALSE;
-        }
-
-      if (*tmp == _handle_create)
-        {
-          stream_created = TRUE;
-          /* force a stream lookup after the create handler, even if we
-           * already had one (it has replacement semantics in certain
-           * situations) */
-          stream = NULL;
-        }
-    }
-
-  return TRUE;
-}
-
-
-static JingleInitiator
-_creator_to_initiator (GabbleMediaSession *session, const gchar *creator)
-{
-  if (!g_strdiff (creator, "initiator"))
-    {
-      if (session->initiator == INITIATOR_LOCAL)
-        return INITIATOR_LOCAL;
-      else
-        return INITIATOR_REMOTE;
-    }
-  else if (!g_strdiff (creator, "responder"))
-    {
-      if (session->initiator == INITIATOR_LOCAL)
-        return INITIATOR_REMOTE;
-      else
-        return INITIATOR_LOCAL;
-    }
-  else
-    return INITIATOR_INVALID;
-}
-
-
-static gboolean
-_call_handlers_on_streams (GabbleMediaSession *session,
-                           LmMessage *message,
-                           LmMessageNode *session_node,
-                           StreamHandlerFunc *func,
-                           GError **error)
-{
-  LmMessageNode *content_node;
-
-  if (lm_message_node_has_namespace (session_node, NS_GOOGLE_SESSION, NULL))
-    return _call_handlers_on_stream (session, message, session_node,
-        GTALK_STREAM_NAME, INITIATOR_INVALID, func, error);
-
-  if (session_node->children == NULL)
-    return _call_handlers_on_stream (session, message, NULL, NULL,
-        INITIATOR_INVALID, func, error);
-
-  for (content_node = session_node->children;
-       NULL != content_node;
-       content_node = content_node->next)
-    {
-      const gchar *stream_name, *stream_creator;
-      JingleInitiator stream_initiator;
-
-      if (g_strdiff (content_node->name, "content"))
-        continue;
-
-      stream_name = lm_message_node_get_attribute (content_node, "name");
-
-      if (stream_name == NULL)
-        {
-          g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_BAD_REQUEST,
-              "rejecting content node with no name");
-          return FALSE;
-        }
-
-      stream_creator = lm_message_node_get_attribute (content_node, "creator");
-      stream_initiator = _creator_to_initiator (session, stream_creator);
-
-      /* we allow NULL creator to mean INITIATOR_INVALID for backwards
-       * compatibility with clients that don't put a creator attribute in */
-      if (stream_creator != NULL && stream_initiator == INITIATOR_INVALID)
-        {
-          g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_BAD_REQUEST,
-              "rejecting content node with invalid creators value");
-          return FALSE;
-        }
-
-      if (!_call_handlers_on_stream (session, message, content_node,
-            stream_name, stream_initiator, func, error))
-        return FALSE;
-    }
-
-  return TRUE;
-}
-
-
-gboolean
-_gabble_media_session_handle_action (GabbleMediaSession *session,
-                                     LmMessage *message,
-                                     LmMessageNode *session_node,
-                                     const gchar *action,
-                                     GError **error)
-{
-  GabbleMediaSessionPrivate *priv;
-  StreamHandlerFunc *funcs = NULL;
-  JingleSessionState new_state = JS_STATE_INVALID;
-  Handler *i;
-
-#ifdef EMULATOR
-	gchar **tmp;
-#else  
-  const gchar **tmp;
-#endif
-
-  g_assert (GABBLE_IS_MEDIA_SESSION (session));
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "got jingle session action \"%s\" from peer",
-      action);
-
-  /* do the state machine dance */
-
-  /* search the table of handlers for the action */
-  for (i = handlers; NULL != i->actions[0]; i++)
-    {
-      for (tmp = (char**)i->actions; NULL != *tmp; tmp++)
-        if (0 == strcmp (*tmp, action))
-          break;
-
-      if (NULL == *tmp)
-        continue;
-
-      /* if we're outside the allowable states for this action, return an error
-       * immediately */
-      if (priv->state < i->min_allowed_state ||
-          priv->state > i->max_allowed_state)
-        {
-          g_set_error (error, GABBLE_XMPP_ERROR,
-              XMPP_ERROR_JINGLE_OUT_OF_ORDER,
-              "action \"%s\" not allowed in current state", action);
-          goto ERROR;
-        }
-
-      funcs = i->stream_handlers;
-      new_state = i->new_state;
-
-      break;
-    }
-
-  /* pointer is not NULL if we found a matching action */
-  if (NULL == funcs)
-    {
-      g_set_error (error, GABBLE_XMPP_ERROR,
-          XMPP_ERROR_FEATURE_NOT_IMPLEMENTED, "action \"%s\" not implemented",
-          action);
-      goto ERROR;
-    }
-
-  /* call handlers if there are any (NULL-terminated array) */
-  if (NULL != *funcs)
-    {
-      if (!_call_handlers_on_streams (session, message, session_node, funcs,
-            error))
-        {
-          if (*error == NULL)
-            g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_BAD_REQUEST,
-                "unknown error encountered with action \"%s\"",
-                action);
-
-          goto ERROR;
-        }
-    }
-
-  /* acknowledge the IQ before changing the state because the new state
-   * could perform some actions which the other end will only accept
-   * if this action has been acknowledged */
-  _gabble_connection_acknowledge_set_iq (priv->conn, message);
-
-  /* if the action specified a new state to go to, set it */
-  if (JS_STATE_INVALID != new_state)
-    g_object_set (session, "state", new_state, NULL);
-
-  return TRUE;
-
-ERROR:
-  g_assert (error != NULL);
-  _gabble_media_session_debug (session, DEBUG_MSG_ERROR, (*error)->message);
-  return FALSE;
-}
-
-static gboolean
-timeout_session (gpointer data)
-{
-  GabbleMediaSession *session = data;
-
-  gabble_debug (DEBUG_FLAG, "session timed out");
-
-  _gabble_media_session_terminate (session, INITIATOR_LOCAL,
-      TP_CHANNEL_GROUP_CHANGE_REASON_ERROR);
-
-  return FALSE;
-}
-
-static void do_content_add (GabbleMediaSession *, GabbleMediaStream *);
-
-void
-_add_ready_new_streams (GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  guint i;
-
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-
-      _gabble_media_session_debug (session, DEBUG_MSG_DUMP, "pondering accept-time add for stream: %s, got "
-          "local codecs: %s, initiator: %s, signalling state: %d", stream->name,
-          stream->got_local_codecs ? "true" : "false",
-          stream->initiator == INITIATOR_LOCAL ? "local" : "remote",
-          stream->signalling_state);
-
-      if (stream->got_local_codecs == FALSE)
-        continue;
-
-      if (stream->initiator == INITIATOR_REMOTE)
-        continue;
-
-      if (stream->signalling_state > STREAM_SIG_STATE_NEW)
-        continue;
-
-      do_content_add (session, stream);
-    }
-}
-
-static void
-session_state_changed (GabbleMediaSession *session,
-                       JingleSessionState prev_state,
-                       JingleSessionState new_state)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  _gabble_media_session_debug (session, DEBUG_MSG_EVENT, "state changed from %s to %s",
-                   session_states[prev_state].name,
-                   session_states[new_state].name);
-
-  /*
-   * If the state goes from CREATED to INITIATED (which means the remote
-   * end initiated), set the timer. If, OTOH, we're the end which just sent an
-   * initiate, set the timer.
-   */
-  if ((prev_state == JS_STATE_PENDING_CREATED &&
-       new_state == JS_STATE_PENDING_INITIATED) ||
-      (new_state == JS_STATE_PENDING_INITIATE_SENT))
-    {
-      priv->timer_id =
-        g_timeout_add (DEFAULT_SESSION_TIMEOUT, timeout_session, session);
-    }
-  else if (new_state == JS_STATE_ACTIVE)
-    {
-      g_source_remove (priv->timer_id);
-      priv->timer_id = 0;
-
-      /* signal any streams to the remote end which were added locally & became
-       * ready before the session was accepted, so haven't been mentioned yet */
-      _add_ready_new_streams (session);
-    }
-}
-
-static void
-_mark_local_streams_sent (GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  guint i;
-
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-
-      if (stream->initiator == INITIATOR_REMOTE)
-        continue;
-
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "marking local stream %s as signalled", stream->name);
-
-      g_object_set (stream, "signalling-state", STREAM_SIG_STATE_SENT, NULL);
-    }
-}
-
-static void
-_mark_local_streams_acked (GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  guint i;
-
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-
-      if (stream->initiator == INITIATOR_REMOTE)
-        continue;
-
-      if (stream->signalling_state != STREAM_SIG_STATE_SENT)
-        continue;
-
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "marking local stream %s as acknowledged", stream->name);
-
-      g_object_set (stream,
-          "signalling-state", STREAM_SIG_STATE_ACKNOWLEDGED,
-          NULL);
-    }
-}
-
-static void
-_set_remote_streams_playing (GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  guint i;
-
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-
-      if (stream->initiator == INITIATOR_LOCAL)
-        continue;
-
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "setting remote stream %s as playing", stream->name);
-
-      g_object_set (stream, "playing", TRUE, NULL);
-    }
-}
-
-static const gchar *_direction_to_senders (GabbleMediaSession *,
-    TpMediaStreamDirection);
-
-static void
-_add_content_descriptions_one (GabbleMediaSession *session,
-                               GabbleMediaStream *stream,
-                               LmMessageNode *session_node)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  LmMessageNode *content_node;
-
-  if (priv->mode == MODE_GOOGLE)
-    {
-      content_node = session_node;
-    }
-  else
-    {
-      TpMediaStreamDirection direction;
-      TpMediaStreamPendingSend pending_send;
-
-      content_node = _gabble_media_stream_add_content_node (stream,
-          session_node);
-
-      direction = COMBINED_DIRECTION_GET_DIRECTION (stream->combined_direction);
-      pending_send = COMBINED_DIRECTION_GET_PENDING_SEND
-        (stream->combined_direction);
-
-      /* if we have a pending local send flag set, the signalled (ie understood
-       * by both ends) direction of the stream is assuming that we are actually
-       * sending, so we should OR that into the direction before deciding what
-       * to signal the stream with. we don't need to consider pending remote
-       * send because it doesn't happen in Jingle */
-
-      if ((pending_send & TP_MEDIA_STREAM_PENDING_LOCAL_SEND) != 0)
-        direction |= TP_MEDIA_STREAM_DIRECTION_SEND;
-
-      if (direction != TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL)
-        {
-          const gchar *senders;
-          senders = _direction_to_senders (session, direction);
-          lm_message_node_set_attribute (content_node, "senders", senders);
-        }
-    }
-
-  _gabble_media_stream_content_node_add_description (stream, content_node);
-
-  _gabble_media_stream_content_node_add_transport (stream, content_node);
-}
-
-static void
-_add_content_descriptions (GabbleMediaSession *session,
-                           LmMessageNode *session_node,
-                           JingleInitiator stream_initiator)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  guint i;
-
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-
-      if (stream->initiator != stream_initiator)
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO,
-              "not adding content description for %s stream %s",
-              stream->initiator == INITIATOR_LOCAL ? "local" : "remote",
-              stream->name);
-          continue;
-        }
-
-      _add_content_descriptions_one (session, stream, session_node);
-    }
-}
-
-static LmHandlerResult
-accept_msg_reply_cb (GabbleConnection *conn,
-                     LmMessage *sent_msg,
-                     LmMessage *reply_msg,
-                     GObject *object,
-                     gpointer user_data)
-{
-  GabbleMediaSession *session = GABBLE_MEDIA_SESSION (object);
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  guint i;
-
-  MSG_REPLY_CB_END_SESSION_IF_NOT_SUCCESSFUL (session, "accept failed");
-
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-
-      if (stream->initiator == INITIATOR_LOCAL)
-        continue;
-
-      _gabble_media_stream_update_sending (stream, TRUE);
-    }
-
-  g_object_set (session, "state", JS_STATE_ACTIVE, NULL);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static gboolean
-_stream_not_ready_for_accept (GabbleMediaSession *session,
-                              GabbleMediaStream *stream)
-{
-  /* locally initiated streams shouldn't delay acceptance */
-  if (stream->initiator == INITIATOR_LOCAL)
-    return FALSE;
-
-  if (!stream->got_local_codecs)
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "stream %s does not yet have local codecs",
-          stream->name);
-
-      return TRUE;
-    }
-
-  if (stream->connection_state != TP_MEDIA_STREAM_STATE_CONNECTED)
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "stream %s is not yet connected", stream->name);
-
-      return TRUE;
-    }
-
-  return FALSE;
-}
-
-static void
-try_session_accept (GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  LmMessage *msg;
-  LmMessageNode *session_node;
-  const gchar *action;
-  guint i;
-
-  if (priv->state < JS_STATE_ACTIVE && !priv->locally_accepted)
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "not sending accept yet, waiting for local "
-          "user to accept call");
-      return;
-    }
-
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-
-      if (_stream_not_ready_for_accept (session, stream))
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "not sending accept yet, found a stream "
-              "which was not yet connected or was missing local codecs");
-          return;
-        }
-    }
-
-  if (priv->mode == MODE_GOOGLE)
-    action = "accept";
-  else
-    action = "session-accept";
-
-  /* construct a session acceptance message */
-  msg = _gabble_media_session_message_new (session, action, &session_node);
-
-  /* only accept REMOTE streams; any LOCAL streams were added by the local
-   * user before accepting and should be signalled after the accept */
-  _add_content_descriptions (session, session_node, INITIATOR_REMOTE);
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "sending jingle session action \"%s\" to peer",
-      action);
-
-  /* send the final acceptance message */
-  _gabble_connection_send_with_reply (priv->conn, msg, accept_msg_reply_cb,
-                                      G_OBJECT (session), NULL, NULL);
-
-  lm_message_unref (msg);
-
-  /* set remote streams playing */
-  _set_remote_streams_playing (session);
-
-  g_object_set (session, "state", JS_STATE_PENDING_ACCEPT_SENT, NULL);
-}
-
-static LmHandlerResult
-content_accept_msg_reply_cb (GabbleConnection *conn,
-                             LmMessage *sent_msg,
-                             LmMessage *reply_msg,
-                             GObject *object,
-                             gpointer user_data)
-{
-  GabbleMediaSession *session = GABBLE_MEDIA_SESSION (user_data);
-  GabbleMediaStream *stream = GABBLE_MEDIA_STREAM (object);
-
-  if (lm_message_get_sub_type (reply_msg) != LM_MESSAGE_SUB_TYPE_RESULT)
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_ERROR, "content-accept failed; removing stream");
-      NODE_DEBUG (sent_msg->node, "message sent");
-      NODE_DEBUG (reply_msg->node, "message reply");
-
-      _gabble_media_session_remove_streams (session, &stream, 1);
-
-      return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-
-  _gabble_media_stream_update_sending (stream, TRUE);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static void
-try_content_accept (GabbleMediaSession *session,
-                    GabbleMediaStream *stream)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  LmMessage *msg;
-  LmMessageNode *session_node;
-
-  g_assert (priv->state == JS_STATE_ACTIVE);
-  g_assert (priv->mode == MODE_JINGLE);
-
-  if (_stream_not_ready_for_accept (session, stream))
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "not sending content-accept yet, stream %s "
-          "is disconnected or missing local codecs", stream->name);
-      return;
-    }
-
-  /* send a content acceptance message */
-  msg = _gabble_media_session_message_new (session, "content-accept",
-      &session_node);
-
-  _add_content_descriptions_one (session, stream, session_node);
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "sending jingle session action \"content-accept\" "
-      "to peer for stream %s", stream->name);
-
-  _gabble_connection_send_with_reply (priv->conn, msg,
-      content_accept_msg_reply_cb, G_OBJECT (stream), session, NULL);
-
-  lm_message_unref (msg);
-
-  /* set stream playing */
-  g_object_set (stream, "playing", TRUE, NULL);
-}
-
-static LmHandlerResult
-initiate_msg_reply_cb (GabbleConnection *conn,
-                       LmMessage *sent_msg,
-                       LmMessage *reply_msg,
-                       GObject *object,
-                       gpointer user_data)
-{
-  GabbleMediaSession *session = GABBLE_MEDIA_SESSION (object);
-
-  MSG_REPLY_CB_END_SESSION_IF_NOT_SUCCESSFUL (session, "initiate failed");
-
-  g_object_set (session, "state", JS_STATE_PENDING_INITIATED, NULL);
-
-  /* mark all of the streams that we sent in the initiate as acknowledged */
-  _mark_local_streams_acked (session);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static gboolean
-_stream_not_ready_for_initiate (GabbleMediaSession *session,
-                                GabbleMediaStream *stream)
-{
-  if (!stream->got_local_codecs)
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "stream %s does not yet have local codecs",
-          stream->name);
-
-      return TRUE;
-    }
-
-  return FALSE;
-}
-
-static void
-try_session_initiate (GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  LmMessage *msg;
-  LmMessageNode *session_node;
-  const gchar *action;
-  guint i;
-
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-
-      if (_stream_not_ready_for_initiate (session, stream))
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "not sending initiate yet, found a stream "
-            "which was missing local codecs");
-          return;
-        }
-    }
-
-  if (priv->mode == MODE_GOOGLE)
-      action = "initiate";
-  else
-      action = "session-initiate";
-
-  msg = _gabble_media_session_message_new (session, action, &session_node);
-
-  _add_content_descriptions (session, session_node, INITIATOR_LOCAL);
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "sending jingle action \"%s\" to peer", action);
-
-  _gabble_connection_send_with_reply (priv->conn, msg, initiate_msg_reply_cb,
-                                      G_OBJECT (session), NULL, NULL);
-
-  lm_message_unref (msg);
-
-  /* mark local streams as sent (so that eg candidates will be sent) */
-  _mark_local_streams_sent (session);
-
-  g_object_set (session, "state", JS_STATE_PENDING_INITIATE_SENT, NULL);
-}
-
-static LmHandlerResult
-content_add_msg_reply_cb (GabbleConnection *conn,
-                          LmMessage *sent_msg,
-                          LmMessage *reply_msg,
-                          GObject *object,
-                          gpointer user_data)
-{
-  GabbleMediaSession *session = GABBLE_MEDIA_SESSION (user_data);
-  GabbleMediaStream *stream = GABBLE_MEDIA_STREAM (object);
-
-  if (lm_message_get_sub_type (reply_msg) != LM_MESSAGE_SUB_TYPE_RESULT)
-    {
-      if (session->initiator == INITIATOR_REMOTE &&
-          stream->signalling_state == STREAM_SIG_STATE_ACKNOWLEDGED)
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "ignoring content-add failure, stream has "
-              "been successfully created by the session initiator");
-        }
-      else
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_ERROR, "content-add failed; removing stream");
-          NODE_DEBUG (sent_msg->node, "message sent");
-          NODE_DEBUG (reply_msg->node, "message reply");
-
-          _gabble_media_stream_close (stream);
-        }
-    }
-  else
-    {
-      if (stream->signalling_state == STREAM_SIG_STATE_SENT)
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "content-add succeeded, marking stream as "
-              "ACKNOWLEDGED");
-
-          g_object_set (stream,
-              "signalling-state", STREAM_SIG_STATE_ACKNOWLEDGED,
-              NULL);
-        }
-      else
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "content-add succeeded, but not marking"
-              "stream as ACKNOWLEDGED, it's in state %d",
-              stream->signalling_state);
-        }
-    }
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static void
-do_content_add (GabbleMediaSession *session,
-                GabbleMediaStream *stream)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  LmMessage *msg;
-  LmMessageNode *session_node;
-
-  g_assert (priv->state == JS_STATE_ACTIVE);
-  g_assert (priv->mode == MODE_JINGLE);
-
-  if (_stream_not_ready_for_initiate (session, stream))
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_ERROR, "trying to send content-add for stream %s "
-          "but we have no local codecs. what?!", stream->name);
-      g_assert_not_reached ();
-      return;
-    }
-
-  msg = _gabble_media_session_message_new (session, "content-add",
-      &session_node);
-
-  _add_content_descriptions_one (session, stream, session_node);
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "sending jingle action \"content-add\" to peer for "
-      "stream %s", stream->name);
-
-  _gabble_connection_send_with_reply (priv->conn, msg,
-      content_add_msg_reply_cb, G_OBJECT (stream), session, NULL);
-
-  lm_message_unref (msg);
-
-  /* mark stream as sent */
-  g_object_set (stream, "signalling-state", STREAM_SIG_STATE_SENT, NULL);
-}
-
-static void
-stream_connection_state_changed_cb (GabbleMediaStream *stream,
-                                    GParamSpec *param,
-                                    GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_SESSION (session));
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  if (stream->connection_state != TP_MEDIA_STREAM_STATE_CONNECTED)
-    return;
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "stream %s has gone connected", stream->name);
-
-  if (stream->playing)
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "doing nothing, stream is already playing");
-      return;
-    }
-
-  /* after session is active, we do things per-stream with content-* actions */
-  if (priv->state < JS_STATE_ACTIVE)
-    {
-      /* send a session accept if the session was initiated by the peer */
-      if (session->initiator == INITIATOR_REMOTE)
-        {
-          try_session_accept (session);
-        }
-      else
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "session initiated by us, so we're not "
-              "going to consider sending an accept");
-        }
-    }
-  else
-    {
-      /* send a content accept if the stream was added by the peer */
-      if (stream->initiator == INITIATOR_REMOTE)
-        {
-          try_content_accept (session, stream);
-        }
-      else
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "stream added by us, so we're not going "
-              "to send an accept");
-        }
-    }
-}
-
-static void
-stream_got_local_codecs_changed_cb (GabbleMediaStream *stream,
-                                    GParamSpec *param,
-                                    GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_SESSION (session));
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  if (!stream->got_local_codecs)
-    return;
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "stream %s has got local codecs", stream->name);
-
-  if (stream->playing)
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_ERROR, "stream was already playing and we got local "
-          "codecs. what?!");
-      g_assert_not_reached ();
-      return;
-    }
-
-  /* after session is active, we do things per-stream with content-* actions */
-  if (priv->state < JS_STATE_ACTIVE)
-    {
-      if (session->initiator == INITIATOR_REMOTE)
-        {
-          if (priv->state < JS_STATE_PENDING_ACCEPT_SENT)
-            {
-              try_session_accept (session);
-            }
-          else
-            {
-              _gabble_media_session_debug (session, DEBUG_MSG_INFO, "stream added after sending accept; "
-                  "not doing content-add until remote end acknowledges");
-            }
-        }
-      else
-        {
-          if (priv->state < JS_STATE_PENDING_INITIATE_SENT)
-            {
-              try_session_initiate (session);
-            }
-          else
-            {
-              _gabble_media_session_debug (session, DEBUG_MSG_INFO, "stream added after sending initiate; "
-                  "not doing content-add until remote end accepts");
-            }
-        }
-    }
-  else
-    {
-      if (stream->initiator == INITIATOR_REMOTE)
-        {
-          try_content_accept (session, stream);
-        }
-      else
-        {
-          do_content_add (session, stream);
-        }
-    }
-}
-
-static gchar *
-get_jid_for_contact (GabbleMediaSession *session,
-                     GabbleHandle handle)
-{
-  GabbleMediaSessionPrivate *priv;
-  const gchar *base_jid;
-  GabbleHandle self;
-
-  g_assert (GABBLE_IS_MEDIA_SESSION (session));
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  self = priv->conn->self_handle;
-
-  base_jid = gabble_handle_inspect (priv->conn->handles,
-      TP_HANDLE_TYPE_CONTACT, handle);
-  g_assert (base_jid != NULL);
-
-  if (handle == self)
-    {
-      gchar *resource, *ret;
-      g_object_get (priv->conn, "resource", &resource, NULL);
-      g_assert (resource != NULL);
-      ret = g_strdup_printf ("%s/%s", base_jid, resource);
-      g_free (resource);
-      return ret;
-    }
-  else
-    {
-      g_assert (priv->peer_resource != NULL);
-      return g_strdup_printf ("%s/%s", base_jid, priv->peer_resource);
-    }
-}
-
-LmMessage *
-_gabble_media_session_message_new (GabbleMediaSession *session,
-                                   const gchar *action,
-                                   LmMessageNode **session_node)
-{
-  GabbleMediaSessionPrivate *priv;
-  LmMessage *msg;
-  LmMessageNode *iq_node, *node;
-  gchar *peer_jid, *initiator_jid;
-  GabbleHandle initiator_handle;
-  const gchar *element, *xmlns;
-
-  g_assert (GABBLE_IS_MEDIA_SESSION (session));
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  peer_jid = get_jid_for_contact (session, priv->peer);
-
-  msg = lm_message_new_with_sub_type (
-      peer_jid,
-      LM_MESSAGE_TYPE_IQ,
-      LM_MESSAGE_SUB_TYPE_SET);
-
-  g_free (peer_jid);
-
-  iq_node = lm_message_get_node (msg);
-
-  if (priv->mode == MODE_GOOGLE)
-    element = "session";
-  else
-    element = "jingle";
-
-  if (session->initiator == INITIATOR_LOCAL)
-    initiator_handle = priv->conn->self_handle;
-  else
-    initiator_handle = priv->peer;
-
-  node = lm_message_node_add_child (iq_node, element, NULL);
-  initiator_jid = get_jid_for_contact (session, initiator_handle);
-
-  lm_message_node_set_attributes (node,
-      (priv->mode == MODE_GOOGLE) ? "id" : "sid", priv->id,
-      (priv->mode == MODE_GOOGLE) ? "type" : "action", action,
-      "initiator", initiator_jid,
-      NULL);
-
-  if (priv->mode == MODE_GOOGLE)
-    xmlns = NS_GOOGLE_SESSION;
-  else
-    xmlns = NS_JINGLE;
-
-  lm_message_node_set_attribute (node, "xmlns", xmlns);
-  g_free (initiator_jid);
-
-  if (session_node)
-    *session_node = node;
-
-  return msg;
-}
-
-void
-_gabble_media_session_accept (GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  guint i;
-
-  priv->locally_accepted = TRUE;
-
-  /* accept any local pending sends */
-  for (i = 0; i < priv->streams->len; i++)
-    {
-      GabbleMediaStream *stream = g_ptr_array_index (priv->streams, i);
-      CombinedStreamDirection combined_dir = stream->combined_direction;
-      TpMediaStreamDirection current_dir;
-      TpMediaStreamPendingSend pending_send;
-
-      current_dir = COMBINED_DIRECTION_GET_DIRECTION (combined_dir);
-      pending_send = COMBINED_DIRECTION_GET_PENDING_SEND (combined_dir);
-
-      if ((pending_send & TP_MEDIA_STREAM_PENDING_LOCAL_SEND) != 0)
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "accepting pending local send on stream %s",
-              stream->name);
-
-          current_dir |= TP_MEDIA_STREAM_DIRECTION_SEND;
-          pending_send &= ~TP_MEDIA_STREAM_PENDING_LOCAL_SEND;
-          combined_dir = MAKE_COMBINED_DIRECTION (current_dir, pending_send);
-          g_object_set (stream, "combined-direction", combined_dir, NULL);
-          _gabble_media_stream_update_sending (stream, FALSE);
-        }
-    }
-
-  try_session_accept (session);
-}
-
-static LmHandlerResult
-content_remove_msg_reply_cb (GabbleConnection *conn,
-                             LmMessage *sent_msg,
-                             LmMessage *reply_msg,
-                             GObject *object,
-                             gpointer user_data)
-{
-  GabbleMediaSession *session = GABBLE_MEDIA_SESSION (object);
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  GPtrArray *removing = (GPtrArray *) user_data;
-  guint i;
-
-  MSG_REPLY_CB_END_SESSION_IF_NOT_SUCCESSFUL (session, "stream removal failed");
-
-  for (i = 0; i < removing->len; i++)
-    destroy_media_stream (session,
-        GABBLE_MEDIA_STREAM (g_ptr_array_index (removing, i)));
-
-  g_ptr_array_remove_fast (priv->remove_requests, removing);
-  g_ptr_array_free (removing, TRUE);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-void
-_gabble_media_session_remove_streams (GabbleMediaSession *session,
-                                      GabbleMediaStream **streams,
-                                      guint len)
-{
-  GabbleMediaSessionPrivate *priv;
-  LmMessage *msg = NULL;
-  LmMessageNode *session_node;
-  GPtrArray *removing = NULL;
-  guint i;
-
-  g_assert (GABBLE_IS_MEDIA_SESSION (session));
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  /* end the session if there'd be no streams left after reducing it */
-  if (_count_non_removing_streams (session) == len)
-    {
-      _gabble_media_session_terminate (session, INITIATOR_LOCAL,
-          TP_CHANNEL_GROUP_CHANGE_REASON_NONE);
-      return;
-    }
-
-  /* construct a remove message if we're in a state greater than CREATED (ie
-   * something has been sent/received about this session) */
-  if (priv->state > JS_STATE_PENDING_CREATED)
-    {
-      msg = _gabble_media_session_message_new (session, "content-remove",
-          &session_node);
-      removing = g_ptr_array_sized_new (len);
-    }
-
-  /* right, remove them */
-  for (i = 0; i < len; i++)
-    {
-      GabbleMediaStream *stream = streams[i];
-
-      switch (stream->signalling_state)
-        {
-        case STREAM_SIG_STATE_NEW:
-          destroy_media_stream (session, stream);
-          break;
-        case STREAM_SIG_STATE_SENT:
-        case STREAM_SIG_STATE_ACKNOWLEDGED:
-          {
-            LmMessageNode *content_node;
-
-            g_assert (msg != NULL);
-            g_assert (removing != NULL);
-
-            content_node = _gabble_media_stream_add_content_node (stream,
-                session_node);
-
-            g_object_set (stream,
-                "playing", FALSE,
-                "signalling-state", STREAM_SIG_STATE_REMOVING,
-                NULL);
-
-            /* close the stream now, but don't forget about it until the
-             * removal message is acknowledged, since we need to be able to
-             * detect content-remove cross-talk */
-            _gabble_media_stream_close (stream);
-            g_ptr_array_add (removing, stream);
-          }
-          break;
-        case STREAM_SIG_STATE_REMOVING:
-          break;
-        }
-    }
-
-  /* send the remove message if necessary */
-  if (msg != NULL)
-    {
-      if (removing->len > 0)
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "sending jingle session action "
-              "\"content-remove\" to peer");
-
-          _gabble_connection_send_with_reply (priv->conn, msg,
-              content_remove_msg_reply_cb, G_OBJECT (session), removing, NULL);
-
-          g_ptr_array_add (priv->remove_requests, removing);
-        }
-      else
-        {
-          g_ptr_array_free (removing, TRUE);
-        }
-
-      lm_message_unref (msg);
-    }
-  else
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "not sending jingle session action "
-          "\"content-remove\" to peer, no initiates or adds sent for "
-          "these streams");
-    }
-}
-
-/* for when you want the reply to be removed from
- * the handler chain, but don't care what it is */
-static LmHandlerResult
-ignore_reply_cb (GabbleConnection *conn,
-                 LmMessage *sent_msg,
-                 LmMessage *reply_msg,
-                 GObject *object,
-                 gpointer user_data)
-{
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static void
-send_reject_message (GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  LmMessage *msg;
-  LmMessageNode *session_node;
-
-  /* this should only happen in google mode, and we should only arrive in that
-   * mode when we've ended up talking to a resource that doesn't support
-   * jingle */
-  g_assert (priv->mode == MODE_GOOGLE);
-  g_assert (priv->peer_resource != NULL);
-
-  /* construct a session terminate message */
-  msg = _gabble_media_session_message_new (session, "reject", &session_node);
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "sending jingle session action \"reject\" to peer");
-
-  /* send it */
-  _gabble_connection_send_with_reply (priv->conn, msg, ignore_reply_cb,
-                                      G_OBJECT (session), NULL, NULL);
-
-  lm_message_unref (msg);
-}
-
-static void
-send_terminate_message (GabbleMediaSession *session)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  const gchar *action;
-  LmMessage *msg;
-  LmMessageNode *session_node;
-
-  /* construct a session terminate message */
-  if (priv->mode == MODE_GOOGLE)
-    action = "terminate";
-  else
-    action = "session-terminate";
-
-  msg = _gabble_media_session_message_new (session, action, &session_node);
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "sending jingle session action \"%s\" to peer",
-      action);
-
-  /* send it */
-  _gabble_connection_send_with_reply (priv->conn, msg, ignore_reply_cb,
-                                      G_OBJECT (session), NULL, NULL);
-
-  lm_message_unref (msg);
-}
-
-void
-_gabble_media_session_terminate (GabbleMediaSession *session,
-                                 JingleInitiator who,
-                                 TpChannelGroupChangeReason why)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  GabbleHandle actor;
-
-  if (priv->state == JS_STATE_ENDED)
-    return;
-
-  if (who == INITIATOR_REMOTE)
-    {
-      actor = priv->peer;
-    }
-  else
-    {
-      actor = priv->conn->self_handle;
-
-      /* Need to tell them that it's all over. */
-
-      /* Jingle doesn't have a "reject" action; a termination before an
-       * acceptance indicates that the call has been declined */
-
-      if (session->initiator == INITIATOR_REMOTE &&
-          priv->state == JS_STATE_PENDING_INITIATED &&
-          priv->mode == MODE_GOOGLE)
-        {
-          send_reject_message (session);
-        }
-
-      /* if we're still in CREATED, then we've not sent or received any
-       * messages about this session yet, so no terminate is necessary */
-      else if (priv->state > JS_STATE_PENDING_CREATED)
-        {
-          send_terminate_message (session);
-        }
-
-      while (priv->streams->len > 0)
-        destroy_media_stream (session, g_ptr_array_index (priv->streams, 0));
-    }
-
-  priv->terminated = TRUE;
-  g_object_set (session, "state", JS_STATE_ENDED, NULL);
-  g_signal_emit (session, signals[TERMINATED], 0, actor, why);
-}
-
-#if _GMS_DEBUG_LEVEL
-void
-_gabble_media_session_debug (GabbleMediaSession *session,
-                             DebugMessageType type,
-                             const gchar *format, ...)
-{
-  if (DEBUGGING)
-    {
-      va_list list;
-      gchar buf[512];
-      GabbleMediaSessionPrivate *priv;
-      time_t curtime;
-      struct tm *loctime;
-      gchar stamp[10];
-      const gchar *type_str;
-
-      g_assert (GABBLE_IS_MEDIA_SESSION (session));
-
-      priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-      curtime = time (NULL);
-      loctime = localtime (&curtime);
-
-      strftime (stamp, sizeof (stamp), "%T", loctime);
-
-      va_start (list, format);
-
-      vsnprintf (buf, sizeof (buf), format, list);
-
-      va_end (list);
-
-      switch (type) {
-        case DEBUG_MSG_INFO:
-          type_str = ANSI_BOLD_ON ANSI_FG_WHITE;
-          break;
-        case DEBUG_MSG_DUMP:
-          type_str = ANSI_BOLD_ON ANSI_FG_GREEN;
-          break;
-        case DEBUG_MSG_WARNING:
-          type_str = ANSI_BOLD_ON ANSI_FG_YELLOW;
-          break;
-        case DEBUG_MSG_ERROR:
-          type_str = ANSI_BOLD_ON ANSI_FG_WHITE ANSI_BG_RED;
-          break;
-        case DEBUG_MSG_EVENT:
-          type_str = ANSI_BOLD_ON ANSI_FG_CYAN;
-          break;
-        default:
-          g_assert_not_reached ();
-          return;
-      }
-
-      g_message ("[%s%s%s] %s%-26s%s %s%s%s\n",
-          ANSI_BOLD_ON ANSI_FG_WHITE,
-          stamp,
-          ANSI_RESET,
-          session_states[priv->state].attributes,
-          session_states[priv->state].name,
-          ANSI_RESET,
-          type_str,
-          buf,
-          ANSI_RESET);
-
-      fflush (stdout);
-    }
-}
-
-#endif /* _GMS_DEBUG_LEVEL */
-
-static const gchar *
-_name_stream (GabbleMediaSession *session,
-              TpMediaStreamType media_type)
-{
-  GabbleMediaSessionPrivate *priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  
-#ifndef EMULATOR  
-  static gchar ret_sess[MAX_STREAM_NAME_LEN] = GTALK_STREAM_NAME;
-#endif
-
-  if (priv->mode != MODE_GOOGLE)
-    {
-      guint i = 1;
-
-      do {
-          g_snprintf (ret_sess, MAX_STREAM_NAME_LEN, "%s%u",
-              media_type == TP_MEDIA_STREAM_TYPE_AUDIO ? "audio" : "video",
-              i++);
-
-          /* even though we now have seperate namespaces for local and remote,
-           * actually check in both so that we can still support clients which
-           * have 1 namespace (such as our older selves :D) */
-          if (_lookup_stream_by_name_and_initiator (session, ret_sess,
-                INITIATOR_INVALID) != NULL)
-            {
-              ret_sess[0] = '\0';
-            }
-      } while (ret_sess[0] == '\0');
-    }
-
-  return ret_sess;
-}
-
-
-gboolean
-_gabble_media_session_request_streams (GabbleMediaSession *session,
-                                       const GArray *media_types,
-                                       GPtrArray **ret,
-                                       GError **error)
-{
-
-#ifndef EMULATOR
-  static GabblePresenceCapabilities google_audio_caps =
-    PRESENCE_CAP_GOOGLE_VOICE;
-  static GabblePresenceCapabilities jingle_audio_caps =
-    PRESENCE_CAP_JINGLE | PRESENCE_CAP_JINGLE_DESCRIPTION_AUDIO |
-    PRESENCE_CAP_GOOGLE_TRANSPORT_P2P;
-  static GabblePresenceCapabilities jingle_video_caps =
-    PRESENCE_CAP_JINGLE | PRESENCE_CAP_JINGLE_DESCRIPTION_VIDEO |
-    PRESENCE_CAP_GOOGLE_TRANSPORT_P2P;
-#endif
-
-  GabbleMediaSessionPrivate *priv;
-  GabblePresence *presence;
-  gboolean want_audio, want_video;
-  GabblePresenceCapabilities jingle_desired_caps;
-  guint idx;
-  gchar *dump;
-
-  g_assert (GABBLE_IS_MEDIA_SESSION (session));
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  presence = gabble_presence_cache_get (priv->conn->presence_cache,
-      priv->peer);
-
-  if (presence == NULL)
-    {
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "member has no audio/video capabilities");
-
-      return FALSE;
-    }
-
-  dump = gabble_presence_dump (presence);
-  _gabble_media_session_debug (session, DEBUG_MSG_DUMP, "presence for peer %d:\n%s", priv->peer, dump);
-  g_free (dump);
-
-  want_audio = want_video = FALSE;
-
-  for (idx = 0; idx < media_types->len; idx++)
-    {
-      guint media_type = g_array_index (media_types, guint, idx);
-
-      if (media_type == TP_MEDIA_STREAM_TYPE_AUDIO)
-        {
-          want_audio = TRUE;
-        }
-      else if (media_type == TP_MEDIA_STREAM_TYPE_VIDEO)
-        {
-          want_video = TRUE;
-        }
-      else
-        {
-          g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-              "given media type %u is invalid", media_type);
-          return FALSE;
-        }
-    }
-
-  /* work out what we'd need to do these streams with jingle */
-  jingle_desired_caps = 0;
-
-  if (want_audio)
-    jingle_desired_caps |= jingle_audio_caps;
-
-  if (want_video)
-    jingle_desired_caps |= jingle_video_caps;
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "want audio: %s; want video: %s",
-    want_audio ? "yes" : "no", want_video ? "yes" : "no");
-
-  /* existing call; the recipient and the mode has already been decided */
-  if (priv->peer_resource)
-    {
-      /* is a google call... we have no other option */
-      if (priv->mode == MODE_GOOGLE)
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "already in Google mode; can't add new "
-              "stream");
-
-          g_assert (priv->streams->len == 1);
-
-          g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-              "Google Talk calls may only contain one stream");
-
-          return FALSE;
-        }
-
-      if (!gabble_presence_resource_has_caps (presence, priv->peer_resource,
-            jingle_desired_caps))
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO,
-            "in Jingle mode but have insufficient caps for requested streams");
-
-          g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-              "existing call member doesn't support all requested media"
-              " types");
-
-          return FALSE;
-        }
-
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO,
-        "in Jingle mode, and have necessary caps");
-    }
-
-  /* no existing call; we should choose a recipient and a mode */
-  else
-    {
-      const gchar *resource;
-
-      g_assert (priv->streams->len == 0);
-
-      /* see if we have a fully-capable jingle resource; regardless of the
-       * desired media type it's best if we can add/remove the others later */
-      resource = gabble_presence_pick_resource_by_caps (presence,
-          jingle_audio_caps | jingle_video_caps);
-
-      if (resource == NULL)
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO, "contact is not fully jingle-capable");
-
-          /* ok, no problem. see if we can do just what's wanted with jingle */
-          resource = gabble_presence_pick_resource_by_caps (presence,
-              jingle_desired_caps);
-
-          if (resource == NULL && want_audio && !want_video)
-            {
-              _gabble_media_session_debug (session, DEBUG_MSG_INFO,
-                "contact doesn't have desired Jingle capabilities");
-
-              /* last ditch... if we want only audio and not video, we can make
-               * do with google talk */
-              resource = gabble_presence_pick_resource_by_caps (presence,
-                  google_audio_caps);
-
-              if (resource != NULL)
-                {
-                  /* only one stream possible with google */
-                  if (media_types->len == 1)
-                    {
-                      _gabble_media_session_debug (session, DEBUG_MSG_INFO,
-                        "contact has no Jingle capabilities; "
-                        "falling back to Google audio call");
-                      priv->mode = MODE_GOOGLE;
-                    }
-                  else
-                    {
-                      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-                          "Google Talk calls may only contain one stream");
-
-                      return FALSE;
-                    }
-                }
-              else
-                {
-                  _gabble_media_session_debug (session, DEBUG_MSG_INFO,
-                    "contact doesn't have desired Google capabilities");
-                }
-            }
-        }
-
-      if (resource == NULL)
-        {
-          _gabble_media_session_debug (session, DEBUG_MSG_INFO,
-            "contact doesn't have a resource with suitable capabilities");
-
-          g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-              "member does not have the desired audio/video capabilities");
-
-          return FALSE;
-        }
-
-      priv->peer_resource = g_strdup (resource);
-    }
-
-  /* check it's not a ridiculous number of streams */
-  if ((priv->streams->len + media_types->len) > MAX_STREAMS)
-    {
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "I think that's quite enough streams already");
-      return FALSE;
-    }
-
-  /* if we've got here, we're good to make the streams */
-
-  *ret = g_ptr_array_sized_new (media_types->len);
-
-  for (idx = 0; idx < media_types->len; idx++)
-    {
-      guint media_type = g_array_index (media_types, guint, idx);
-      GabbleMediaStream *stream;
-      const gchar *stream_name;
-
-      if (priv->mode == MODE_GOOGLE)
-        stream_name = GTALK_STREAM_NAME;
-      else
-        stream_name = _name_stream (session, media_type);
-
-      stream = create_media_stream (session, stream_name, INITIATOR_LOCAL,
-                                    media_type);
-
-      g_ptr_array_add (*ret, stream);
-    }
-
-  return TRUE;
-}
-
-static const gchar *
-_direction_to_senders (GabbleMediaSession *session,
-                       TpMediaStreamDirection dir)
-{
-  const gchar *ret = NULL;
-
-  switch (dir)
-    {
-      case TP_MEDIA_STREAM_DIRECTION_NONE:
-        g_assert_not_reached ();
-        break;
-      case TP_MEDIA_STREAM_DIRECTION_SEND:
-        if (session->initiator == INITIATOR_LOCAL)
-          ret = "initiator";
-        else
-          ret = "responder";
-        break;
-      case TP_MEDIA_STREAM_DIRECTION_RECEIVE:
-        if (session->initiator == INITIATOR_REMOTE)
-          ret = "initiator";
-        else
-          ret = "responder";
-        break;
-      case TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL:
-        ret = "both";
-        break;
-    }
-
-  g_assert (ret != NULL);
-
-  return ret;
-}
-
-static LmHandlerResult
-direction_msg_reply_cb (GabbleConnection *conn,
-                        LmMessage *sent_msg,
-                        LmMessage *reply_msg,
-                        GObject *object,
-                        gpointer user_data)
-{
-  GabbleMediaSession *session = GABBLE_MEDIA_SESSION (user_data);
-  GabbleMediaStream *stream = GABBLE_MEDIA_STREAM (object);
-
-  MSG_REPLY_CB_END_SESSION_IF_NOT_SUCCESSFUL (session, "direction change failed");
-
-  if (stream->playing)
-    {
-      _gabble_media_stream_update_sending (stream, TRUE);
-    }
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static gboolean
-send_direction_change (GabbleMediaSession *session,
-                       GabbleMediaStream *stream,
-                       TpMediaStreamDirection dir,
-                       GError **error)
-{
-  GabbleMediaSessionPrivate *priv;
-  const gchar *senders;
-  LmMessage *msg;
-  LmMessageNode *session_node, *content_node;
-  gboolean ret;
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-  senders = _direction_to_senders (session, dir);
-
-  if (stream->signalling_state == STREAM_SIG_STATE_NEW ||
-      stream->signalling_state == STREAM_SIG_STATE_REMOVING)
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "not sending content-modify for %s stream %s",
-          stream->signalling_state == STREAM_SIG_STATE_NEW ? "new" : "removing",
-          stream->name);
-      return TRUE;
-    }
-
-  _gabble_media_session_debug (session, DEBUG_MSG_INFO, "sending jingle session action \"content-modify\" "
-      "to peer for stream %s (senders=%s)", stream->name, senders);
-
-  msg = _gabble_media_session_message_new (session, "content-modify",
-      &session_node);
-  content_node = _gabble_media_stream_add_content_node (stream, session_node);
-
-  lm_message_node_set_attribute (content_node, "senders", senders);
-
-  ret = _gabble_connection_send_with_reply (priv->conn, msg,
-      direction_msg_reply_cb, G_OBJECT (stream), session, error);
-
-  lm_message_unref (msg);
-
-  return ret;
-}
-
-gboolean
-_gabble_media_session_request_stream_direction (GabbleMediaSession *session,
-                                                GabbleMediaStream *stream,
-                                                TpMediaStreamDirection requested_dir,
-                                                GError **error)
-{
-  GabbleMediaSessionPrivate *priv;
-  CombinedStreamDirection new_combined_dir;
-  TpMediaStreamDirection current_dir; //, new_dir;
-  TpMediaStreamPendingSend pending_send;
-
-  priv = GABBLE_MEDIA_SESSION_GET_PRIVATE (session);
-
-  current_dir = COMBINED_DIRECTION_GET_DIRECTION (stream->combined_direction);
-  pending_send = COMBINED_DIRECTION_GET_PENDING_SEND
-    (stream->combined_direction);
-
-  if (priv->mode == MODE_GOOGLE)
-    {
-      g_assert (current_dir == TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL);
-
-      if (requested_dir == TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL)
-        return TRUE;
-
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "Google Talk calls can only be bi-directional");
-      return FALSE;
-    }
-
-  if (requested_dir == TP_MEDIA_STREAM_DIRECTION_NONE)
-    {
-      _gabble_media_session_debug (session, DEBUG_MSG_INFO, "request for NONE direction; removing stream");
-
-      _gabble_media_session_remove_streams (session, &stream, 1);
-
-      return TRUE;
-    }
-
-  /* if we're awaiting a local decision on sending... */
-  if ((pending_send & TP_MEDIA_STREAM_PENDING_LOCAL_SEND) != 0)
-    {
-      /* clear the flag */
-      pending_send &= ~TP_MEDIA_STREAM_PENDING_LOCAL_SEND;
-
-      /* make our current_dir match what other end thinks (he thinks we're
-       * bidirectional) so that we send the correct transitions */
-      current_dir ^= TP_MEDIA_STREAM_DIRECTION_SEND;
-    }
-
-#if 0
-  /* if we're asking the remote end to start sending, set the pending flag and
-   * don't change our directionality just yet */
-  new_dir = requested_dir;
-  if (((current_dir & TP_MEDIA_STREAM_DIRECTION_RECEIVE) == 0) &&
-      ((new_dir & TP_MEDIA_STREAM_DIRECTION_RECEIVE) != 0))
-    {
-      pending_send ^= TP_MEDIA_STREAM_PENDING_REMOTE_SEND;
-      new_dir &= ~TP_MEDIA_STREAM_DIRECTION_RECEIVE;
-    }
-#endif
-
-  /* make any necessary changes */
-  new_combined_dir = MAKE_COMBINED_DIRECTION (requested_dir, pending_send);
-  if (new_combined_dir != stream->combined_direction)
-    {
-      g_object_set (stream, "combined-direction", new_combined_dir, NULL);
-      _gabble_media_stream_update_sending (stream, FALSE);
-    }
-
-  /* short-circuit sending a request if we're not asking for anything new */
-  if (current_dir == requested_dir)
-    return TRUE;
-
-  /* send request */
-  return send_direction_change (session, stream, requested_dir, error);
-}
-
--- a/telepathygabble/src/gabble-media-stream-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-/*
- * gabble-media-stream-signals-marshal.c - Source for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:STRING,BOXED (gabble-media-stream-signals-marshal.list:1) */
-void
-gabble_media_stream_marshal_VOID__STRING_BOXED (GClosure     *closure,
-                                                GValue       *return_value,
-                                                guint         n_param_values,
-                                                const GValue *param_values,
-                                                gpointer      invocation_hint,
-                                                gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_BOXED) (gpointer     data1,
-                                                   gpointer     arg_1,
-                                                   gpointer     arg_2,
-                                                   gpointer     data2);
-  register GMarshalFunc_VOID__STRING_BOXED callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_BOXED) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_boxed (param_values + 2),
-            data2);
-}
-
-/* VOID:STRING,STRING (gabble-media-stream-signals-marshal.list:2) */
-void
-gabble_media_stream_marshal_VOID__STRING_STRING (GClosure     *closure,
-                                                 GValue       *return_value,
-                                                 guint         n_param_values,
-                                                 const GValue *param_values,
-                                                 gpointer      invocation_hint,
-                                                 gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_STRING) (gpointer     data1,
-                                                    gpointer     arg_1,
-                                                    gpointer     arg_2,
-                                                    gpointer     data2);
-  register GMarshalFunc_VOID__STRING_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_string (param_values + 2),
-            data2);
-}
-
-/* VOID:UINT,STRING (gabble-media-stream-signals-marshal.list:3) */
-void
-gabble_media_stream_marshal_VOID__UINT_STRING (GClosure     *closure,
-                                               GValue       *return_value,
-                                               guint         n_param_values,
-                                               const GValue *param_values,
-                                               gpointer      invocation_hint,
-                                               gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_STRING) (gpointer     data1,
-                                                  guint        arg_1,
-                                                  gpointer     arg_2,
-                                                  gpointer     data2);
-  register GMarshalFunc_VOID__UINT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_string (param_values + 2),
-            data2);
-}
-
--- a/telepathygabble/src/gabble-media-stream.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1836 +0,0 @@
-/*
- * gabble-media-stream.c - Source for GabbleMediaStream
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-#include "ansi.h"
-#include "debug.h"
-#include "handles.h"
-#include "namespaces.h"
-
-#include "gabble-connection.h"
-#include "gabble-media-channel.h"
-#include "gabble-media-session.h"
-#include "gabble-media-session-enumtypes.h"
-
-#include "telepathy-helpers.h"
-#include "telepathy-constants.h"
-
-#include "gabble-media-stream.h"
-#include "gabble-media-stream-signals-marshal.h"
-#include "gabble-media-stream-glue.h"
-
-#include "gabble_enums.h"
-
-#ifndef EMULATOR
-G_DEFINE_TYPE(GabbleMediaStream, gabble_media_stream, G_TYPE_OBJECT)
-#endif
-
-#define DEBUG_FLAG GABBLE_DEBUG_MEDIA
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-//#define NODE_DEBUG(n, s) ;
-#endif /* DEBUG_FLAG */
-
-/* signal enum */
-enum
-{
-    DESTROY,
-
-    ADD_REMOTE_CANDIDATE,
-    CLOSE,
-    REMOVE_REMOTE_CANDIDATE,
-    SET_ACTIVE_CANDIDATE_PAIR,
-    SET_REMOTE_CANDIDATE_LIST,
-    SET_REMOTE_CODECS,
-    SET_STREAM_PLAYING,
-    SET_STREAM_SENDING,
-
-    NEW_ACTIVE_CANDIDATE_PAIR,
-    NEW_NATIVE_CANDIDATE,
-    SUPPORTED_CODECS,
-    ERROR,
-
-    LAST_SIGNAL 
-#ifdef EMULATOR    
-    = LAST_SIGNAL_MED_STREAM
-#endif
-    
-};
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_med_stream,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_med_stream, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(gabble_media_stream_parent_class,gabble_med_stream,gpointer)
-	#define gabble_media_stream_parent_class (*GET_WSD_VAR_NAME(gabble_media_stream_parent_class,gabble_med_stream,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_med_stream,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_med_stream,s)())
-
-	/*gchar** _s_gabble_med_stream_video_codec_params() { return (gchar**)((libgabble_ImpurePtr()->_s_gabble_med_stream_video_codec_params)); }
-
-	#define video_codec_params (GET_WSD_VAR_NAME(video_codec_params,gabble_med_stream, s)())*/	
-
-	
-static void gabble_media_stream_init (GabbleMediaStream *self); 
-static void gabble_media_stream_class_init (GabbleMediaStreamClass *klass); 
-static void gabble_media_stream_class_intern_init (gpointer klass) 
-{ 
-gabble_media_stream_parent_class = g_type_class_peek_parent (klass);
- gabble_media_stream_class_init ((GabbleMediaStreamClass*) klass);
-}
- EXPORT_C GType gabble_media_stream_get_type (void) 
- {
-  if ((g_define_type_id == 0)) 
-  {
-   static const GTypeInfo g_define_type_info = { sizeof (GabbleMediaStreamClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_media_stream_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleMediaStream), 0, (GInstanceInitFunc) gabble_media_stream_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleMediaStream"), &g_define_type_info, (GTypeFlags) 0); { {} ; } } return g_define_type_id; 
-  };
-
-		
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif
-
-
-/* properties */
-enum
-{
-  PROP_CONNECTION = 1,
-  PROP_MEDIA_SESSION,
-  PROP_OBJECT_PATH,
-  PROP_MODE,
-  PROP_NAME,
-  PROP_ID,
-  PROP_INITIATOR,
-  PROP_MEDIA_TYPE,
-  PROP_CONNECTION_STATE,
-  PROP_READY,
-  PROP_GOT_LOCAL_CODECS,
-  PROP_SIGNALLING_STATE,
-  PROP_PLAYING,
-  PROP_COMBINED_DIRECTION,
-  LAST_PROPERTY
-};
-
-/* private structure */
-typedef struct _GabbleMediaStreamPrivate GabbleMediaStreamPrivate;
-
-struct _GabbleMediaStreamPrivate
-{
-  GabbleConnection *conn;
-  GabbleMediaSession *session;
-  GabbleMediaSessionMode mode;
-  gchar *object_path;
-  guint id;
-  guint media_type;
-
-  gboolean ready;
-  gboolean sending;
-
-  GValue native_codecs;     /* intersected codec list */
-  GValue native_candidates;
-
-  GValue remote_codecs;
-  GValue remote_candidates;
-
-  guint remote_candidate_count;
-
-  gboolean closed;
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_MEDIA_STREAM_GET_PRIVATE(obj) \
-    ((GabbleMediaStreamPrivate *)obj->priv)
-//Vinod: add below definition
-#define ENABLE_DEBUG
-
-#ifdef ENABLE_DEBUG
-#if _GMS_DEBUG_LEVEL > 1
-static const char *tp_protocols[] = {
-  "TP_MEDIA_STREAM_PROTO_UDP (0)",
-  "TP_MEDIA_STREAM_PROTO_TCP (1)"
-};
-
-static const char *tp_transports[] = {
-  "TP_MEDIA_STREAM_TRANSPORT_TYPE_LOCAL (0)",
-  "TP_MEDIA_STREAM_TRANSPORT_TYPE_DERIVED (1)",
-  "TP_MEDIA_STREAM_TRANSPORT_TYPE_RELAY (2)"
-};
-#endif
-#endif
-
-static void push_native_candidates (GabbleMediaStream *stream);
-static void push_remote_codecs (GabbleMediaStream *stream);
-static void push_remote_candidates (GabbleMediaStream *stream);
-static void push_playing (GabbleMediaStream *stream);
-static void push_sending (GabbleMediaStream *stream);
-
-static void
-gabble_media_stream_init (GabbleMediaStream *self)
-{
-  GabbleMediaStreamPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GABBLE_TYPE_MEDIA_STREAM, GabbleMediaStreamPrivate);
-
-  self->priv = priv;
-
-  g_value_init (&priv->native_codecs, TP_TYPE_CODEC_LIST);
-  g_value_take_boxed (&priv->native_codecs,
-      dbus_g_type_specialized_construct (TP_TYPE_CODEC_LIST));
-
-  g_value_init (&priv->native_candidates, TP_TYPE_CANDIDATE_LIST);
-  g_value_take_boxed (&priv->native_candidates,
-      dbus_g_type_specialized_construct (TP_TYPE_CANDIDATE_LIST));
-
-  g_value_init (&priv->remote_codecs, TP_TYPE_CODEC_LIST);
-  g_value_take_boxed (&priv->remote_codecs,
-      dbus_g_type_specialized_construct (TP_TYPE_CODEC_LIST));
-
-  g_value_init (&priv->remote_candidates, TP_TYPE_CANDIDATE_LIST);
-  g_value_take_boxed (&priv->remote_candidates,
-      dbus_g_type_specialized_construct (TP_TYPE_CANDIDATE_LIST));
-}
-
-static GObject *
-gabble_media_stream_constructor (GType type, guint n_props,
-                                 GObjectConstructParam *props)
-{
-  GObject *obj;
-  GabbleMediaStreamPrivate *priv;
-  DBusGConnection *bus;
-
-  /* call base class constructor */
-  obj = G_OBJECT_CLASS (gabble_media_stream_parent_class)->
-           constructor (type, n_props, props);
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (GABBLE_MEDIA_STREAM (obj));
-
-  /* go for the bus */
-  bus = tp_get_bus ();
-  dbus_g_connection_register_g_object (bus, priv->object_path, obj);
-
-  return obj;
-}
-
-static void
-gabble_media_stream_get_property (GObject    *object,
-                                  guint       property_id,
-                                  GValue     *value,
-                                  GParamSpec *pspec)
-{
-  GabbleMediaStream *stream = GABBLE_MEDIA_STREAM (object);
-  GabbleMediaStreamPrivate *priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    case PROP_MEDIA_SESSION:
-      g_value_set_object (value, priv->session);
-      break;
-    case PROP_OBJECT_PATH:
-      g_value_set_string (value, priv->object_path);
-      break;
-    case PROP_MODE:
-      g_value_set_enum (value, priv->mode);
-      break;
-    case PROP_NAME:
-      g_value_set_string (value, stream->name);
-      break;
-    case PROP_ID:
-      g_value_set_uint (value, priv->id);
-      break;
-    case PROP_INITIATOR:
-      g_value_set_uint (value, stream->initiator);
-      break;
-    case PROP_MEDIA_TYPE:
-      g_value_set_uint (value, priv->media_type);
-      break;
-    case PROP_CONNECTION_STATE:
-      g_value_set_uint (value, stream->connection_state);
-      break;
-    case PROP_READY:
-      g_value_set_boolean (value, priv->ready);
-      break;
-    case PROP_GOT_LOCAL_CODECS:
-      g_value_set_boolean (value, stream->got_local_codecs);
-      break;
-    case PROP_SIGNALLING_STATE:
-      g_value_set_uint (value, stream->signalling_state);
-      break;
-    case PROP_PLAYING:
-      g_value_set_boolean (value, stream->playing);
-      break;
-    case PROP_COMBINED_DIRECTION:
-      g_value_set_uint (value, stream->combined_direction);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_media_stream_set_property (GObject      *object,
-                                  guint         property_id,
-                                  const GValue *value,
-                                  GParamSpec   *pspec)
-{
-  GabbleMediaStream *stream = GABBLE_MEDIA_STREAM (object);
-  GabbleMediaStreamPrivate *priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    case PROP_MEDIA_SESSION:
-      priv->session = g_value_get_object (value);
-      break;
-    case PROP_OBJECT_PATH:
-      g_free (priv->object_path);
-      priv->object_path = g_value_dup_string (value);
-      break;
-    case PROP_MODE:
-      priv->mode = g_value_get_enum (value);
-      break;
-    case PROP_NAME:
-      g_free (stream->name);
-      stream->name = g_value_dup_string (value);
-      break;
-    case PROP_ID:
-      priv->id = g_value_get_uint (value);
-      break;
-    case PROP_INITIATOR:
-      stream->initiator = g_value_get_uint (value);
-      break;
-    case PROP_MEDIA_TYPE:
-      priv->media_type = g_value_get_uint (value);
-      break;
-    case PROP_CONNECTION_STATE:
-      _gabble_media_session_debug (priv->session, DEBUG_MSG_INFO, DEBUG_MSG_INFO, "stream %s connection state %d",
-          stream->name, stream->connection_state);
-      stream->connection_state = g_value_get_uint (value);
-      break;
-    case PROP_READY:
-      priv->ready = g_value_get_boolean (value);
-      break;
-    case PROP_GOT_LOCAL_CODECS:
-      stream->got_local_codecs = g_value_get_boolean (value);
-      break;
-    case PROP_SIGNALLING_STATE:
-        {
-          StreamSignallingState old = stream->signalling_state;
-          stream->signalling_state = g_value_get_uint (value);
-          _gabble_media_session_debug (priv->session, DEBUG_MSG_INFO, DEBUG_MSG_INFO, "stream %s sig_state %d->%d",
-              stream->name, old, stream->signalling_state);
-          if (stream->signalling_state != old)
-            push_native_candidates (stream);
-        }
-      break;
-    case PROP_PLAYING:
-        {
-          gboolean old = stream->playing;
-          stream->playing = g_value_get_boolean (value);
-          if (stream->playing != old)
-            push_playing (stream);
-        }
-      break;
-    case PROP_COMBINED_DIRECTION:
-      stream->combined_direction = g_value_get_uint (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void gabble_media_stream_dispose (GObject *object);
-static void gabble_media_stream_finalize (GObject *object);
-
-static void
-gabble_media_stream_class_init (GabbleMediaStreamClass *gabble_media_stream_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_media_stream_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_media_stream_class, sizeof (GabbleMediaStreamPrivate));
-
-  object_class->constructor = gabble_media_stream_constructor;
-
-  object_class->get_property = gabble_media_stream_get_property;
-  object_class->set_property = gabble_media_stream_set_property;
-
-  object_class->dispose = gabble_media_stream_dispose;
-  object_class->finalize = gabble_media_stream_finalize;
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "media stream's channel.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-  param_spec = g_param_spec_object ("media-session", "GabbleMediaSession object",
-                                    "Gabble media session object that owns this "
-                                    "media stream object.",
-                                    GABBLE_TYPE_MEDIA_SESSION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_MEDIA_SESSION, param_spec);
-
-  param_spec = g_param_spec_string ("object-path", "D-Bus object path",
-                                    "The D-Bus object path used for this "
-                                    "object on the bus.",
-                                    NULL,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_OBJECT_PATH, param_spec);
-
-  param_spec = g_param_spec_enum ("mode", "Signalling mode",
-                                  "Which signalling mode used to control the "
-                                  "stream.",
-                                  gabble_media_session_mode_get_type(),
-                                  MODE_JINGLE,
-                                  G_PARAM_CONSTRUCT_ONLY |
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_MODE, param_spec);
-
-  param_spec = g_param_spec_string ("name", "Stream name",
-                                    "An opaque name for the stream used in the "
-                                    "signalling.",
-                                    NULL,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_NAME, param_spec);
-
-  param_spec = g_param_spec_uint ("id", "Stream ID",
-                                  "A stream number for the stream used in the "
-                                  "D-Bus API.",
-                                  0, G_MAXUINT, 0,
-                                  G_PARAM_CONSTRUCT_ONLY |
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_ID, param_spec);
-
-  param_spec = g_param_spec_uint ("initiator", "Stream initiator",
-                                  "An enum signifying which end initiated "
-                                  "the stream.",
-                                  INITIATOR_LOCAL,
-                                  INITIATOR_REMOTE,
-                                  INITIATOR_LOCAL,
-                                  G_PARAM_CONSTRUCT_ONLY |
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_INITIATOR, param_spec);
-
-  param_spec = g_param_spec_uint ("media-type", "Stream media type",
-                                  "A constant indicating which media type the "
-                                  "stream carries.",
-                                  TP_MEDIA_STREAM_TYPE_AUDIO,
-                                  TP_MEDIA_STREAM_TYPE_VIDEO,
-                                  TP_MEDIA_STREAM_TYPE_AUDIO,
-                                  G_PARAM_CONSTRUCT_ONLY |
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_MEDIA_TYPE, param_spec);
-
-  param_spec = g_param_spec_uint ("connection-state", "Stream connection state",
-                                  "An integer indicating the state of the"
-                                  "stream's connection.",
-                                  TP_MEDIA_STREAM_STATE_DISCONNECTED,
-                                  TP_MEDIA_STREAM_STATE_CONNECTED,
-                                  TP_MEDIA_STREAM_STATE_DISCONNECTED,
-                                  G_PARAM_CONSTRUCT |
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION_STATE, param_spec);
-
-  param_spec = g_param_spec_boolean ("ready", "Ready?",
-                                     "A boolean signifying whether the user "
-                                     "is ready to handle signals from this "
-                                     "object.",
-                                     FALSE,
-                                     G_PARAM_CONSTRUCT |
-                                     G_PARAM_READWRITE |
-                                     G_PARAM_STATIC_NAME |
-                                     G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_READY, param_spec);
-
-  param_spec = g_param_spec_boolean ("got-local-codecs", "Got local codecs?",
-                                     "A boolean signifying whether we've got "
-                                     "the locally supported codecs from the user.",
-                                     FALSE,
-                                     G_PARAM_CONSTRUCT |
-                                     G_PARAM_READWRITE |
-                                     G_PARAM_STATIC_NAME |
-                                     G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_GOT_LOCAL_CODECS, param_spec);
-
-  param_spec = g_param_spec_uint ("signalling-state", "Signalling state",
-                                  "Whether the stream is newly created, "
-                                  "sent to the peer, or acknowledged.",
-                                  STREAM_SIG_STATE_NEW,
-                                  STREAM_SIG_STATE_REMOVING,
-                                  STREAM_SIG_STATE_NEW,
-                                  G_PARAM_CONSTRUCT |
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_SIGNALLING_STATE, param_spec);
-
-  param_spec = g_param_spec_boolean ("playing", "Set playing",
-                                     "A boolean signifying whether the stream "
-                                     "has been set playing yet.",
-                                     FALSE,
-                                     G_PARAM_CONSTRUCT |
-                                     G_PARAM_READWRITE |
-                                     G_PARAM_STATIC_NAME |
-                                     G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_PLAYING, param_spec);
-
-  param_spec = g_param_spec_uint ("combined-direction",
-      "Combined direction",
-      "An integer indicating the directions the stream currently sends in, "
-      "and the peers who have been asked to send.",
-      TP_MEDIA_STREAM_DIRECTION_NONE,
-      MAKE_COMBINED_DIRECTION (TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL,
-        TP_MEDIA_STREAM_PENDING_LOCAL_SEND |
-        TP_MEDIA_STREAM_PENDING_REMOTE_SEND),
-      TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL,
-      G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_NAME |
-      G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_COMBINED_DIRECTION,
-      param_spec);
-
-  /* signals exported by D-Bus interface */
-  signals[DESTROY] =
-    g_signal_new ("destroy",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
-  signals[ADD_REMOTE_CANDIDATE] =
-    g_signal_new ("add-remote-candidate",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_stream_marshal_VOID__STRING_BOXED,
-                  G_TYPE_NONE, 2, G_TYPE_STRING, TP_TYPE_TRANSPORT_LIST);
-
-  signals[CLOSE] =
-    g_signal_new ("close",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
-  signals[REMOVE_REMOTE_CANDIDATE] =
-    g_signal_new ("remove-remote-candidate",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__STRING,
-                  G_TYPE_NONE, 1, G_TYPE_STRING);
-
-  signals[SET_ACTIVE_CANDIDATE_PAIR] =
-    g_signal_new ("set-active-candidate-pair",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_stream_marshal_VOID__STRING_STRING,
-                  G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
-
-  signals[SET_REMOTE_CANDIDATE_LIST] =
-    g_signal_new ("set-remote-candidate-list",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOXED,
-                  G_TYPE_NONE, 1, TP_TYPE_CANDIDATE_LIST);
-
-  signals[SET_REMOTE_CODECS] =
-    g_signal_new ("set-remote-codecs",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOXED,
-                  G_TYPE_NONE, 1, TP_TYPE_CODEC_LIST);
-
-  /* signals not exported by D-Bus interface */
-  signals[NEW_ACTIVE_CANDIDATE_PAIR] =
-    g_signal_new ("new-active-candidate-pair",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_stream_marshal_VOID__STRING_STRING,
-                  G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
-
-  signals[NEW_NATIVE_CANDIDATE] =
-    g_signal_new ("new-native-candidate",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_stream_marshal_VOID__STRING_BOXED,
-                  G_TYPE_NONE, 2, G_TYPE_STRING, TP_TYPE_TRANSPORT_LIST);
-
-  signals[SUPPORTED_CODECS] =
-    g_signal_new ("supported-codecs",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOXED,
-                  G_TYPE_NONE, 1, TP_TYPE_CODEC_LIST);
-
-  signals[SET_STREAM_PLAYING] =
-    g_signal_new ("set-stream-playing",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOOLEAN,
-                  G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
-
-  signals[SET_STREAM_SENDING] =
-    g_signal_new ("set-stream-sending",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOOLEAN,
-                  G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
-
-  signals[ERROR] =
-    g_signal_new ("error",
-                  G_OBJECT_CLASS_TYPE (gabble_media_stream_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_media_stream_marshal_VOID__UINT_STRING,
-                  G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_STRING);
-
-  dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (gabble_media_stream_class), &dbus_glib_gabble_media_stream_object_info);
-}
-
-void
-gabble_media_stream_dispose (GObject *object)
-{
-  GabbleMediaStream *self = GABBLE_MEDIA_STREAM (object);
-  GabbleMediaStreamPrivate *priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (self);
-
-  if (priv->dispose_has_run)
-    return;
-
-  _gabble_media_stream_close (self);
-
-  g_signal_emit (self, signals[DESTROY], 0);
-
-  priv->dispose_has_run = TRUE;
-
-  if (G_OBJECT_CLASS (gabble_media_stream_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_media_stream_parent_class)->dispose (object);
-}
-
-void
-gabble_media_stream_finalize (GObject *object)
-{
-  GabbleMediaStream *self = GABBLE_MEDIA_STREAM (object);
-  GabbleMediaStreamPrivate *priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (self);
-
-  g_free (priv->object_path);
-
-  g_value_unset (&priv->native_codecs);
-  g_value_unset (&priv->native_candidates);
-
-  g_value_unset (&priv->remote_codecs);
-  g_value_unset (&priv->remote_candidates);
-
-  G_OBJECT_CLASS (gabble_media_stream_parent_class)->finalize (object);
-}
-
-/**
- * gabble_media_stream_codec_choice
- *
- * Implements D-Bus method CodecChoice
- * on interface org.freedesktop.Telepathy.Media.StreamHandler
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_stream_codec_choice (GabbleMediaStream *self,
-                                  guint codec_id,
-                                  GError **error)
-{
-  GabbleMediaStreamPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (self));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (self);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_stream_error
- *
- * Implements D-Bus method Error
- * on interface org.freedesktop.Telepathy.Media.StreamHandler
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_stream_error (GabbleMediaStream *self,
-                           guint errno,
-                           const gchar *message,
-                           GError **error)
-{
-  GabbleMediaStreamPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (self));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (self);
-
- _gabble_media_session_debug (priv->session, DEBUG_MSG_WARNING, "Media.StreamHandler::Error called, error %u (%s) -- emitting signal", errno, message);
-
-  g_signal_emit (self, signals[ERROR], 0, errno, message);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_stream_native_candidates_prepared
- *
- * Implements D-Bus method NativeCandidatesPrepared
- * on interface org.freedesktop.Telepathy.Media.StreamHandler
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_stream_native_candidates_prepared (GabbleMediaStream *self,
-                                                GError **error)
-{
-  GabbleMediaStreamPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (self));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (self);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_stream_new_active_candidate_pair
- *
- * Implements D-Bus method NewActiveCandidatePair
- * on interface org.freedesktop.Telepathy.Media.StreamHandler
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_stream_new_active_candidate_pair (GabbleMediaStream *self,
-                                               const gchar *native_candidate_id,
-                                               const gchar *remote_candidate_id,
-                                               GError **error)
-{
-  GabbleMediaStreamPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (self));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (self);
-
-  g_signal_emit (self, signals[NEW_ACTIVE_CANDIDATE_PAIR], 0,
-                 native_candidate_id, remote_candidate_id);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_stream_new_native_candidate
- *
- * Implements D-Bus method NewNativeCandidate
- * on interface org.freedesktop.Telepathy.Media.StreamHandler
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_stream_new_native_candidate (GabbleMediaStream *self,
-                                          const gchar *candidate_id,
-                                          const GPtrArray *transports,
-                                          GError **error)
-{
-  GabbleMediaStreamPrivate *priv;
-  JingleSessionState state;
-  GPtrArray *candidates;
-  GValue candidate = { 0, };
-  GValueArray *transport;
-  const gchar *addr;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (self));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (self);
-
-  g_object_get (priv->session, "state", &state, NULL);
-
-  /* FIXME: maybe this should be an assertion in case the channel
-   * isn't closed early enough right now? */
-  if (state > JS_STATE_ACTIVE)
-    {
-      gabble_debug (DEBUG_FLAG, "state > JS_STATE_ACTIVE, doing nothing");
-      return TRUE;
-    }
-
-  candidates = g_value_get_boxed (&priv->native_candidates);
-
-  g_value_init (&candidate, TP_TYPE_CANDIDATE_STRUCT);
-  g_value_take_boxed (&candidate,
-      dbus_g_type_specialized_construct (TP_TYPE_CANDIDATE_STRUCT));
-
-  dbus_g_type_struct_set (&candidate,
-      0, candidate_id,
-      1, transports,
-      G_MAXUINT);
-
-  transport = g_ptr_array_index (transports, 0);
-  addr = g_value_get_string (g_value_array_get_nth (transport, 1));
-  if (!strcmp (addr, "127.0.0.1"))
-    {
-     _gabble_media_session_debug (priv->session, DEBUG_MSG_WARNING, "%s: ignoring native localhost candidate",
-                         G_STRFUNC);
-      return TRUE;
-    }
-
-  g_ptr_array_add (candidates, g_value_get_boxed (&candidate));
-
-  _gabble_media_session_debug (priv->session, DEBUG_MSG_INFO, DEBUG_MSG_INFO, "put 1 native candidate from stream-engine into cache");
-
-  push_native_candidates (self);
-
-  g_signal_emit (self, signals[NEW_NATIVE_CANDIDATE], 0,
-                 candidate_id, transports);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_stream_ready
- *
- * Implements D-Bus method Ready
- * on interface org.freedesktop.Telepathy.Media.StreamHandler
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_stream_ready (GabbleMediaStream *self,
-                           const GPtrArray *codecs,
-                           GError **error)
-{
-  GabbleMediaStreamPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (self));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (self);
-
-  _gabble_media_session_debug (priv->session, DEBUG_MSG_INFO, DEBUG_MSG_INFO, "ready called");
-
-  g_object_set (self, "ready", TRUE, NULL);
-
-  push_remote_codecs (self);
-  push_remote_candidates (self);
-  push_playing (self);
-  push_sending (self);
-
-  return gabble_media_stream_set_local_codecs (self, codecs, error);
-}
-
-
-/**
- * gabble_media_stream_set_local_codecs
- *
- * Implements D-Bus method SetLocalCodecs
- * on interface org.freedesktop.Telepathy.Media.StreamHandler
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_stream_set_local_codecs (GabbleMediaStream *self,
-                                      const GPtrArray *codecs,
-                                      GError **error)
-{
-  GabbleMediaStreamPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (self));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (self);
-
-  _gabble_media_session_debug (priv->session, DEBUG_MSG_INFO, DEBUG_MSG_INFO, "putting list of all %d locally supported "
-                  "codecs from stream-engine into cache", codecs->len);
-
-  g_value_set_boxed (&priv->native_codecs, codecs);
-
-  g_object_set (self, "got-local-codecs", TRUE, NULL);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_stream_stream_state
- *
- * Implements D-Bus method StreamState
- * on interface org.freedesktop.Telepathy.Media.StreamHandler
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_stream_stream_state (GabbleMediaStream *self,
-                                  guint connection_state,
-                                  GError **error)
-{
-  g_assert (GABBLE_IS_MEDIA_STREAM (self));
-
-  g_object_set (self, "connection-state", connection_state, NULL);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_media_stream_supported_codecs
- *
- * Implements D-Bus method SupportedCodecs
- * on interface org.freedesktop.Telepathy.Media.StreamHandler
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_media_stream_supported_codecs (GabbleMediaStream *self,
-                                      const GPtrArray *codecs,
-                                      GError **error)
-{
-  GabbleMediaStreamPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (self));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (self);
-
-  _gabble_media_session_debug (priv->session, DEBUG_MSG_INFO, DEBUG_MSG_INFO, "got codec intersection containing %d "
-                  "codecs from stream-engine", codecs->len);
-
-  /* store the intersection for later on */
-  g_value_set_boxed (&priv->native_codecs, codecs);
-
-  g_signal_emit (self, signals[SUPPORTED_CODECS], 0, codecs);
-
-  return TRUE;
-}
-
-static LmHandlerResult
-candidates_msg_reply_cb (GabbleConnection *conn,
-                         LmMessage *sent_msg,
-                         LmMessage *reply_msg,
-                         GObject *object,
-                         gpointer user_data)
-{
-  GabbleMediaStream *stream = GABBLE_MEDIA_STREAM (object);
-  GabbleMediaStreamPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  MSG_REPLY_CB_END_SESSION_IF_NOT_SUCCESSFUL (priv->session, "candidates failed");
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static void
-_add_rtp_candidate_node (GabbleMediaSession *session, LmMessageNode *parent,
-                         GValueArray *candidate)
-{
-  gchar *addr;
-  gchar *user;
-  gchar *pass;
-  gchar *port_str;
-  gchar *pref_str;
-  gchar *xml;
-  const gchar *type_str;
-  const gchar *candidate_id;
-  guint port;
-  gdouble pref;
-  TpMediaStreamProto proto;
-  TpMediaStreamTransportType type;
-  const GPtrArray *transports;
-  GValue transport = { 0, };
-  LmMessageNode *cand_node;
-
-  candidate_id = g_value_get_string (g_value_array_get_nth (candidate, 0));
-  transports = g_value_get_boxed (g_value_array_get_nth (candidate, 1));
-
-  /* jingle audio only supports the concept of one transport per candidate */
-  g_assert (transports->len == 1);
-
-  g_value_init (&transport, TP_TYPE_TRANSPORT_STRUCT);
-  g_value_set_static_boxed (&transport, g_ptr_array_index (transports, 0));
-
-  dbus_g_type_struct_get (&transport,
-      1, &addr,
-      2, &port,
-      3, &proto,
-      6, &pref,
-      7, &type,
-      8, &user,
-      9, &pass,
-      G_MAXUINT);
-
-  port_str = g_strdup_printf ("%d", port);
-  pref_str = g_strdup_printf ("%f", pref);
-
-  switch (type) {
-    case TP_MEDIA_STREAM_TRANSPORT_TYPE_LOCAL:
-      type_str = "local";
-      break;
-    case TP_MEDIA_STREAM_TRANSPORT_TYPE_DERIVED:
-      type_str = "stun";
-      break;
-    case TP_MEDIA_STREAM_TRANSPORT_TYPE_RELAY:
-      type_str = "relay";
-      break;
-    default:
-      g_error ("%s: TpMediaStreamTransportType has an invalid value",
-        G_STRFUNC);
-      return;
-  }
-
-  cand_node = lm_message_node_add_child (parent, "candidate", NULL);
-  lm_message_node_set_attributes (cand_node,
-      "name", "rtp",
-      "address", addr,
-      "port", port_str,
-      "username", user,
-      "password", pass,
-      "preference", pref_str,
-      "protocol", (proto == TP_MEDIA_STREAM_PROTO_UDP) ? "udp" : "tcp",
-      "type", type_str,
-      "network", "0",
-      "generation", "0",
-      NULL);
-
-  xml = lm_message_node_to_string (cand_node);
-  _gabble_media_session_debug (session, DEBUG_MSG_DUMP,
-    "  from Telepathy D-Bus struct: [%s\"%s\", %s[%s1, \"%s\", %d, %s, "
-    "\"%s\", \"%s\", %f, %s, \"%s\", \"%s\"%s]]",
-    ANSI_BOLD_OFF, candidate_id, ANSI_BOLD_ON, ANSI_BOLD_OFF, addr, port,
-    tp_protocols[proto], "RTP", "AVP", pref, tp_transports[type], user, pass,
-    ANSI_BOLD_ON);
-  _gabble_media_session_debug (session, DEBUG_MSG_DUMP,
-    "  to Jingle XML: [%s%s%s]", ANSI_BOLD_OFF, xml, ANSI_BOLD_ON);
-  g_free (xml);
-
-  g_free (addr);
-  g_free (user);
-  g_free (pass);
-  g_free (port_str);
-  g_free (pref_str);
-}
-
-static LmMessage *
-_gabble_media_stream_message_new (GabbleMediaStream *stream,
-                                  const gchar *action,
-                                  LmMessageNode **content_node)
-{
-  GabbleMediaStreamPrivate *priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-  LmMessage *msg;
-  LmMessageNode *session_node = NULL;
-
-  /* construct a session message */
-  msg = _gabble_media_session_message_new (priv->session, action,
-      &session_node);
-
-  /* add our content node to it if necessary */
-  *content_node = _gabble_media_stream_add_content_node (stream, session_node);
-
-  return msg;
-}
-
-
-static void
-push_candidate (GabbleMediaStream *stream, GValueArray *candidate)
-{
-  GabbleMediaStreamPrivate *priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-  LmMessage *msg;
-  LmMessageNode *content_node, *transport_node;
-  const gchar *action;
-
-  if (priv->mode == MODE_GOOGLE)
-    action = "candidates";
-  else
-    action = "transport-info";
-
-  /* construct a base message */
-  msg = _gabble_media_stream_message_new (stream, action, &content_node);
-
-  /* for jingle, add a transport */
-  transport_node = _gabble_media_stream_content_node_add_transport (stream,
-      content_node);
-
-  /* add transport info to it */
-  _add_rtp_candidate_node (priv->session, transport_node, candidate);
-
-  _gabble_media_session_debug (priv->session, DEBUG_MSG_INFO, DEBUG_MSG_INFO, "sending jingle session action \"%s\" to "
-      "peer", action);
-
-  /* send it */
-  _gabble_connection_send_with_reply (priv->conn, msg, candidates_msg_reply_cb,
-      G_OBJECT (stream), NULL, NULL);
-
-  /* clean up */
-  lm_message_unref (msg);
-}
-
-static void
-push_native_candidates (GabbleMediaStream *stream)
-{
-  GabbleMediaStreamPrivate *priv;
-  GPtrArray *candidates;
-  guint i;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  if (stream->signalling_state == STREAM_SIG_STATE_NEW ||
-      stream->signalling_state == STREAM_SIG_STATE_REMOVING)
-    return;
-
-  candidates = g_value_get_boxed (&priv->native_candidates);
-
-  for (i = 0; i < candidates->len; i++)
-    push_candidate (stream, g_ptr_array_index (candidates, i));
-
-  g_value_take_boxed (&priv->native_candidates,
-    dbus_g_type_specialized_construct (TP_TYPE_CANDIDATE_LIST));
-}
-
-void
-_gabble_media_stream_close (GabbleMediaStream *stream)
-{
-  GabbleMediaStreamPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  if (!priv->closed)
-    {
-      priv->closed = TRUE;
-      g_signal_emit (stream, signals[CLOSE], 0);
-    }
-}
-
-gboolean
-_gabble_media_stream_post_remote_codecs (GabbleMediaStream *stream,
-                                         LmMessage *message,
-                                         LmMessageNode *desc_node,
-                                         GError **error)
-{
-  GabbleMediaStreamPrivate *priv;
-  LmMessageNode *node;
-  GPtrArray *codecs;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  codecs = g_value_get_boxed (&priv->remote_codecs);
-
-  g_assert (codecs->len == 0);
-
-  for (node = desc_node->children; node; node = node->next)
-    {
-      guchar id;
-      const gchar *name, *str;
-      guint clockrate, channels;
-      GHashTable *params;
-      GValue codec = { 0, };
-
-      if (g_strdiff (node->name, "payload-type"))
-        continue;
-
-      /* id of codec */
-      str = lm_message_node_get_attribute (node, "id");
-      if (str == NULL)
-        {
-          g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_BAD_REQUEST,
-              "description has no ID");
-          return FALSE;
-        }
-
-      id = atoi(str);
-
-      /* codec name */
-      name = lm_message_node_get_attribute (node, "name");
-      if (name == NULL)
-        {
-          name = "";
-        }
-
-      /* clock rate: jingle and newer GTalk */
-      str = lm_message_node_get_attribute (node, "clockrate"); /* google */
-      if (str == NULL)
-        str = lm_message_node_get_attribute (node, "rate"); /* jingle */
-
-      if (str != NULL)
-        {
-          clockrate = atoi (str);
-        }
-      else
-        {
-          clockrate = 0;
-        }
-
-      /* number of channels: jingle only */
-      str = lm_message_node_get_attribute (node, "channels");
-      if (str != NULL)
-        {
-          channels = atoi (str);
-        }
-      else
-        {
-          channels = 1;
-        }
-
-      params = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_free);
-
-      /* bitrate: newer GTalk only */
-      str = lm_message_node_get_attribute (node, "bitrate");
-      if (str != NULL)
-        {
-          g_hash_table_insert (params, "bitrate", g_strdup (str));
-        }
-
-      g_value_init (&codec, TP_TYPE_CODEC_STRUCT);
-      g_value_take_boxed (&codec,
-          dbus_g_type_specialized_construct (TP_TYPE_CODEC_STRUCT));
-
-      dbus_g_type_struct_set (&codec,
-          0, id,
-          1, name,
-          2, TP_CODEC_MEDIA_TYPE_AUDIO,
-          3, clockrate,
-          4, channels,
-          5, params,
-          G_MAXUINT);
-
-      g_ptr_array_add (codecs, g_value_get_boxed (&codec));
-    }
-
-  _gabble_media_session_debug (priv->session, DEBUG_MSG_INFO, DEBUG_MSG_INFO, "put %d remote codecs from peer into cache",
-                  codecs->len);
-
-  push_remote_codecs (stream);
-
-  return TRUE;
-}
-
-static void
-push_remote_codecs (GabbleMediaStream *stream)
-{
-  GabbleMediaStreamPrivate *priv;
-  GPtrArray *codecs;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  if (!priv->ready)
-    return;
-
-  codecs = g_value_get_boxed (&priv->remote_codecs);
-  if (codecs->len == 0)
-    return;
-
-  _gabble_media_session_debug (priv->session, DEBUG_MSG_EVENT, "passing %d remote codecs to stream-engine",
-                   codecs->len);
-
-  g_signal_emit (stream, signals[SET_REMOTE_CODECS], 0, codecs);
-
-  g_value_take_boxed (&priv->remote_codecs,
-      dbus_g_type_specialized_construct (TP_TYPE_CODEC_LIST));
-}
-
-gboolean
-_gabble_media_stream_post_remote_candidates (GabbleMediaStream *stream,
-                                             LmMessage *message,
-                                             LmMessageNode *transport_node,
-                                             GError **error)
-{
-  GabbleMediaStreamPrivate *priv;
-  LmMessageNode *node;
-  const gchar *str;
-  GPtrArray *candidates;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  candidates = g_value_get_boxed (&priv->remote_candidates);
-
-  for (node = transport_node->children; node; node = node->next)
-    {
-      gchar *candidate_id;
-      const gchar *name, *addr;
-      guint16 port;
-      TpMediaStreamProto proto;
-      gdouble pref;
-      TpMediaStreamTransportType type;
-      const gchar *user, *pass;
-      guchar net, gen;
-      GValue candidate = { 0, };
-      GPtrArray *transports;
-      GValue transport = { 0, };
-      gchar *xml;
-
-      if (g_strdiff (node->name, "candidate"))
-        continue;
-
-      /*
-       * Candidate
-       */
-
-      /* stream name */
-      name = lm_message_node_get_attribute (node, "name");
-      if (name == NULL || strcmp (name, "rtp") != 0)
-        goto FAILURE;
-
-
-      /*
-       * Transport
-       */
-
-      /* ip address */
-      addr = lm_message_node_get_attribute (node, "address");
-      if (addr == NULL)
-        goto FAILURE;
-
-      /* port */
-      str = lm_message_node_get_attribute (node, "port");
-      if (str == NULL)
-        goto FAILURE;
-      port = atoi (str);
-
-      /* protocol */
-      str = lm_message_node_get_attribute (node, "protocol");
-      if (str == NULL)
-        goto FAILURE;
-
-      if (strcmp (str, "udp") == 0)
-        {
-          proto = TP_MEDIA_STREAM_PROTO_UDP;
-        }
-      else if (strcmp (str, "tcp") == 0)
-        {
-          proto = TP_MEDIA_STREAM_PROTO_TCP;
-        }
-      else if (strcmp (str, "ssltcp") == 0)
-        {
-         _gabble_media_session_debug (priv->session, DEBUG_MSG_WARNING, "%s: ssltcp candidates "
-                             "not yet supported", G_STRFUNC);
-          continue;
-        }
-      else
-        goto FAILURE;
-
-      /* protocol profile: hardcoded to "AVP" for now */
-
-      /* preference */
-      str = lm_message_node_get_attribute (node, "preference");
-      if (str == NULL)
-        goto FAILURE;
-      pref = g_ascii_strtod (str, NULL);
-
-      /* type */
-      str = lm_message_node_get_attribute (node, "type");
-      if (str == NULL)
-        goto FAILURE;
-
-      if (strcmp (str, "local") == 0)
-        {
-          type = TP_MEDIA_STREAM_TRANSPORT_TYPE_LOCAL;
-        }
-      else if (strcmp (str, "stun") == 0)
-        {
-          type = TP_MEDIA_STREAM_TRANSPORT_TYPE_DERIVED;
-        }
-      else if (strcmp (str, "relay") == 0)
-        {
-          type = TP_MEDIA_STREAM_TRANSPORT_TYPE_RELAY;
-        }
-      else
-        goto FAILURE;
-
-      /* username */
-      user = lm_message_node_get_attribute (node, "username");
-      if (user == NULL)
-        goto FAILURE;
-
-      /* password */
-      pass = lm_message_node_get_attribute (node, "password");
-      if (pass == NULL)
-        goto FAILURE;
-
-      /* unknown */
-      str = lm_message_node_get_attribute (node, "network");
-      if (str == NULL)
-        goto FAILURE;
-      net = atoi (str);
-
-      /* unknown */
-      str = lm_message_node_get_attribute (node, "generation");
-      if (str == NULL)
-        goto FAILURE;
-      gen = atoi (str);
-
-
-      g_value_init (&transport, TP_TYPE_TRANSPORT_STRUCT);
-      g_value_take_boxed (&transport,
-          dbus_g_type_specialized_construct (TP_TYPE_TRANSPORT_STRUCT));
-
-      dbus_g_type_struct_set (&transport,
-          0, 1,         /* component number */
-          1, addr,
-          2, port,
-          3, proto,
-          4, "RTP",
-          5, "AVP",
-          6, pref,
-          7, type,
-          8, user,
-          9, pass,
-          G_MAXUINT);
-
-      transports = g_ptr_array_sized_new (1);
-      g_ptr_array_add (transports, g_value_get_boxed (&transport));
-
-
-      g_value_init (&candidate, TP_TYPE_CANDIDATE_STRUCT);
-      g_value_take_boxed (&candidate,
-          dbus_g_type_specialized_construct (TP_TYPE_CANDIDATE_STRUCT));
-
-      /* FIXME: is this naming scheme sensible? */
-      candidate_id = g_strdup_printf ("R%d", ++priv->remote_candidate_count);
-
-      dbus_g_type_struct_set (&candidate,
-          0, candidate_id,
-          1, transports,
-          G_MAXUINT);
-
-      g_ptr_array_add (candidates, g_value_get_boxed (&candidate));
-
-      xml = lm_message_node_to_string (node);
-      _gabble_media_session_debug (priv->session, DEBUG_MSG_INFO, DEBUG_MSG_INFO, "put 1 remote candidate from peer into cache");
-      _gabble_media_session_debug (priv->session, DEBUG_MSG_DUMP, "  from Jingle XML: [%s%s%s]",
-                      ANSI_BOLD_OFF, xml, ANSI_BOLD_ON);
-      _gabble_media_session_debug (priv->session, DEBUG_MSG_DUMP, "  to Telepathy D-Bus struct: [%s\"%s\", %s[%s1, \"%s\", %d, %s, \"%s\", \"%s\", %f, %s, \"%s\", \"%s\"%s]]",
-                      ANSI_BOLD_OFF, candidate_id, ANSI_BOLD_ON,
-                      ANSI_BOLD_OFF, addr, port, tp_protocols[proto], "RTP", "AVP", pref, tp_transports[type], user, pass, ANSI_BOLD_ON);
-      g_free (xml);
-
-      g_free (candidate_id);
-    }
-
-/*SUCCESS:*/
-  push_remote_candidates (stream);
-
-  return TRUE;
-
-FAILURE:
-  g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_BAD_REQUEST,
-      "unable to parse candidate");
-
-  return FALSE;
-}
-
-static void
-push_remote_candidates (GabbleMediaStream *stream)
-{
-  GabbleMediaStreamPrivate *priv;
-  GPtrArray *candidates;
-  guint i;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  candidates = g_value_get_boxed (&priv->remote_candidates);
-
-  if (candidates->len == 0)
-    return;
-
-  if (!priv->ready)
-    return;
-
-  for (i = 0; i < candidates->len; i++)
-    {
-      GValueArray *candidate = g_ptr_array_index (candidates, i);
-      const gchar *candidate_id;
-      const GPtrArray *transports;
-
-      candidate_id = g_value_get_string (g_value_array_get_nth (candidate, 0));
-      transports = g_value_get_boxed (g_value_array_get_nth (candidate, 1));
-
-      _gabble_media_session_debug (priv->session, DEBUG_MSG_EVENT, "passing 1 remote candidate "
-                       "to stream-engine");
-
-      g_signal_emit (stream, signals[ADD_REMOTE_CANDIDATE], 0,
-                     candidate_id, transports);
-    }
-
-  g_value_take_boxed (&priv->remote_candidates,
-      dbus_g_type_specialized_construct (TP_TYPE_CANDIDATE_LIST));
-}
-
-static void
-push_playing (GabbleMediaStream *stream)
-{
-  GabbleMediaStreamPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  if (!priv->ready)
-    return;
-
-  _gabble_media_session_debug (priv->session, DEBUG_MSG_INFO, DEBUG_MSG_INFO, "stream %s emitting SetStreamPlaying(%s)",
-      stream->name, stream->playing ? "true" : "false");
-
-  g_signal_emit (stream, signals[SET_STREAM_PLAYING], 0, stream->playing);
-}
-
-static void
-push_sending (GabbleMediaStream *stream)
-{
-  GabbleMediaStreamPrivate *priv;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  if (!priv->ready)
-    return;
-
-  _gabble_media_session_debug (priv->session, DEBUG_MSG_INFO, DEBUG_MSG_INFO, "stream %s emitting SetStreamSending(%s)",
-      stream->name, priv->sending ? "true" : "false");
-
-  g_signal_emit (stream, signals[SET_STREAM_SENDING], 0, priv->sending);
-}
-
-/*
- * oh sweet g_hash_table_foreach how beautiful thou be'st
- *
- *    _\ / ^/
- *  \/ \// 7_   __
- *  ( 7 ) (__) (__)
- *  ^\\ |/__/___/
- *   \\/_/     | <-- TP-cable kindly provided by Mika N.
- *    \ /      O
- *     ||     /|\
- *     ||     / \
- *     ||
- * ____||_____________
- */
-
-typedef struct {
-    GabbleMediaStreamPrivate *priv;
-    LmMessageNode *pt_node;
-} CodecParamsFromTpContext;
-
-//#ifndef EMULATOR
-static const gchar *video_codec_params[] = {
-  "x", "y", "width", "height", "layer", "transparent",
-};
-//#endif
-
-static void
-codec_params_from_tp_foreach (gpointer key, gpointer value, gpointer user_data)
-{
-  CodecParamsFromTpContext *ctx = user_data;
-  GabbleMediaStreamPrivate *priv = ctx->priv;
-  const gchar *pname = key, *pvalue = value;
-
-  if (priv->media_type == TP_CODEC_MEDIA_TYPE_AUDIO)
-    {
-      if (priv->mode == MODE_GOOGLE && strcmp (pname, "bitrate") == 0)
-        {
-          lm_message_node_set_attribute (ctx->pt_node, pname, pvalue);
-          return;
-        }
-    }
-  else if (priv->mode == MODE_JINGLE)
-    {
-      gint i;
-
-      for (i = 0; video_codec_params[i] != NULL; i++)
-        {
-          if (strcmp (pname, video_codec_params[i]) == 0)
-            {
-              lm_message_node_set_attribute (ctx->pt_node, pname, pvalue);
-              return;
-            }
-        }
-    }
-
-  gabble_debug (DEBUG_FLAG, "ignoring %s=%s for %s %s stream", pname, pvalue,
-      (priv->mode == MODE_JINGLE) ? "jingle" : "google",
-      (priv->media_type == TP_CODEC_MEDIA_TYPE_AUDIO) ? "audio" : "video");
-}
-
-LmMessageNode *
-_gabble_media_stream_add_content_node (GabbleMediaStream *stream,
-                                       LmMessageNode *session_node)
-{
-  GabbleMediaStreamPrivate *priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-  LmMessageNode *node = session_node;
-
-  /* add our content node to it if in jingle mode */
-  if (priv->mode == MODE_JINGLE)
-    {
-      node = lm_message_node_add_child (session_node, "content", NULL);
-      lm_message_node_set_attribute (node, "name", stream->name);
-
-      if (priv->session->initiator == stream->initiator)
-        lm_message_node_set_attribute (node, "creator", "initiator");
-      else
-        lm_message_node_set_attribute (node, "creator", "responder");
-    }
-
-  return node;
-}
-
-void
-_gabble_media_stream_content_node_add_description (GabbleMediaStream *stream,
-                                                   LmMessageNode *content_node)
-{
-  GabbleMediaStreamPrivate *priv;
-  const GPtrArray *codecs;
-  LmMessageNode *desc_node;
-  guint i;
-  const gchar *xmlns;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  codecs = g_value_get_boxed (&priv->native_codecs);
-
-  desc_node = lm_message_node_add_child (content_node, "description", NULL);
-
-  if (priv->mode == MODE_GOOGLE)
-    xmlns = NS_GOOGLE_SESSION_PHONE;
-  else if (priv->media_type == TP_CODEC_MEDIA_TYPE_VIDEO)
-    xmlns = NS_JINGLE_DESCRIPTION_VIDEO;
-  else
-    xmlns = NS_JINGLE_DESCRIPTION_AUDIO;
-
-  lm_message_node_set_attribute (desc_node, "xmlns", xmlns);
-
-  for (i = 0; i < codecs->len; i++)
-    {
-      GValue codec = { 0, };
-      guint id, clock_rate, channels;
-      gchar *name, buf[16];
-      GHashTable *params;
-      LmMessageNode *pt_node;
-      CodecParamsFromTpContext ctx;
-
-      g_value_init (&codec, TP_TYPE_CODEC_STRUCT);
-      g_value_set_static_boxed (&codec, g_ptr_array_index (codecs, i));
-
-      dbus_g_type_struct_get (&codec,
-          0, &id,
-          1, &name,
-          3, &clock_rate,
-          4, &channels,
-          5, &params,
-          G_MAXUINT);
-
-      /* create a sub-node called "payload-type" and fill it */
-      pt_node = lm_message_node_add_child (desc_node, "payload-type", NULL);
-
-      /* id: required */
-      sprintf (buf, "%u", id);
-      lm_message_node_set_attribute (pt_node, "id", buf);
-
-      /* name: optional */
-      if (*name != '\0')
-        {
-          lm_message_node_set_attribute (pt_node, "name", name);
-        }
-
-      /* clock rate: optional */
-      if (clock_rate != 0)
-        {
-          sprintf (buf, "%u", clock_rate);
-          lm_message_node_set_attribute (pt_node,
-              (priv->mode == MODE_GOOGLE) ? "clockrate" : "rate", buf);
-        }
-
-      /* number of channels: optional, jingle only */
-      /* FIXME: is it? */
-      if (channels != 0 && priv->mode == MODE_JINGLE)
-        {
-          sprintf (buf, "%u", channels);
-          lm_message_node_set_attribute (pt_node, "channels", buf);
-        }
-
-      /* parse the optional params */
-      ctx.priv = priv;
-      ctx.pt_node = pt_node;
-      g_hash_table_foreach (params, codec_params_from_tp_foreach, &ctx);
-
-      /* clean up */
-      g_free (name);
-      g_hash_table_destroy (params);
-    }
-}
-
-LmMessageNode *
-_gabble_media_stream_content_node_add_transport (GabbleMediaStream *stream,
-                                                 LmMessageNode *content_node)
-{
-  GabbleMediaStreamPrivate *priv;
-  LmMessageNode *node;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  if (priv->mode != MODE_JINGLE)
-    return content_node;
-
-  node = lm_message_node_add_child (content_node, "transport", NULL);
-
-  lm_message_node_set_attribute (node, "xmlns", NS_GOOGLE_TRANSPORT_P2P);
-
-  return node;
-}
-
-void
-_gabble_media_stream_update_sending (GabbleMediaStream *stream,
-                                     gboolean start_sending)
-{
-  GabbleMediaStreamPrivate *priv;
-  gboolean new_sending;
-
-  g_assert (GABBLE_IS_MEDIA_STREAM (stream));
-
-  priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (stream);
-
-  new_sending =
-    ((stream->combined_direction & TP_MEDIA_STREAM_DIRECTION_SEND) != 0);
-
-  if (priv->sending == new_sending)
-    return;
-
-  if (new_sending && !start_sending)
-    return;
-
-  priv->sending = new_sending;
-  push_sending (stream);
-}
-
--- a/telepathygabble/src/gabble-muc-channel-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
- * gabble-muc-channel-signals-marshal.c - Source for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:UINT,UINT (gabble-muc-channel-signals-marshal.list:1) */
-void
-gabble_muc_channel_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                            GValue       *return_value,
-                                            guint         n_param_values,
-                                            const GValue *param_values,
-                                            gpointer      invocation_hint,
-                                            gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer     data1,
-                                                guint        arg_1,
-                                                guint        arg_2,
-                                                gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            data2);
-}
-
--- a/telepathygabble/src/gabble-muc-channel.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3061 +0,0 @@
-/*
- * gabble-muc-channel.c - Source for GabbleMucChannel
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-
-#include "ansi.h"
-#include "debug.h"
-#include "disco.h"
-#include "gabble-connection.h"
-#include "gabble-error.h"
-#include "namespaces.h"
-#include "util.h"
-
-#include "telepathy-errors.h"
-#include "telepathy-helpers.h"
-#include "telepathy-interfaces.h"
-#include "tp-channel-iface.h"
-
-#include "gabble-muc-channel.h"
-#include "gabble-muc-channel-signals-marshal.h"
-
-#include "gabble-muc-channel-glue.h"
-
-#include "gabble_enums.h"
-
-#define DEBUG_FLAG GABBLE_DEBUG_MUC
-#define DEFAULT_JOIN_TIMEOUT (180 * 1000)
-#define MAX_NICK_RETRIES 3
-
-#define PROPS_POLL_INTERVAL_LOW  (60 * 1000 * 5)
-#define PROPS_POLL_INTERVAL_HIGH (60 * 1000)
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-#ifndef EMULATOR
-G_DEFINE_TYPE_WITH_CODE (GabbleMucChannel, gabble_muc_channel,
-    G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_IFACE, NULL));
-#endif
-/* signal enum */
-enum
-{
-    READY,
-    JOIN_ERROR,
-    CLOSED,
-    PASSWORD_FLAGS_CHANGED,
-    LAST_SIGNAL 
-#ifdef EMULATOR    
-    = LAST_SIGNAL_MUC
-#endif
-    
-};
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_muc,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_muc, s)())	
-    
-    
-    GET_STATIC_VAR_FROM_TLS(gabble_muc_channel_parent_class,gabble_muc,gpointer)
-	#define gabble_muc_channel_parent_class (*GET_WSD_VAR_NAME(gabble_muc_channel_parent_class,gabble_muc,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_muc,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_muc,s)())
-	
-	
-	/*gchar** _s_gabble_muc_muc_roles() { return (gchar**)((libgabble_ImpurePtr()->_s_gabble_muc_muc_roles)); }
-
-	#define muc_roles (GET_WSD_VAR_NAME(muc_roles,gabble_muc, s)())	
-	
-	
-	gchar** _s_gabble_muc_muc_affiliations() { return (gchar**)((libgabble_ImpurePtr()->_s_gabble_muc_muc_affiliations)); }
-
-	#define muc_affiliations (GET_WSD_VAR_NAME(muc_affiliations,gabble_muc, s)())*/	
-
-
-static void gabble_muc_channel_init (GabbleMucChannel *self); 
-static void gabble_muc_channel_class_init (GabbleMucChannelClass *klass); 
-static void gabble_muc_channel_class_intern_init (gpointer klass) 
-{
- gabble_muc_channel_parent_class = g_type_class_peek_parent (klass);
-  gabble_muc_channel_class_init ((GabbleMucChannelClass*) klass);
-} 
-EXPORT_C GType gabble_muc_channel_get_type (void)
- { 
- if ((g_define_type_id == 0)) 
- { 
- static const GTypeInfo g_define_type_info = { sizeof (GabbleMucChannelClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_muc_channel_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleMucChannel), 0, (GInstanceInitFunc) gabble_muc_channel_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleMucChannel"), &g_define_type_info, (GTypeFlags) 0); { { static const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) ((void *)0) }; g_type_add_interface_static (g_define_type_id, tp_channel_iface_get_type(), &g_implement_interface_info); } ; } } return g_define_type_id; 
- };
-		
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif
-
-/* properties */
-enum
-{
-  PROP_OBJECT_PATH = 1,
-  PROP_CHANNEL_TYPE,
-  PROP_HANDLE_TYPE,
-  PROP_HANDLE,
-  PROP_CONNECTION,
-  PROP_STATE,
-  PROP_INVITE_SELF,
-  LAST_PROPERTY
-};
-
-typedef enum {
-    MUC_STATE_CREATED = 0,
-    MUC_STATE_INITIATED,
-    MUC_STATE_AUTH,
-    MUC_STATE_JOINED,
-    MUC_STATE_ENDED,
-} GabbleMucState;
-
-#define ENABLE_DEBUG
-#ifdef ENABLE_DEBUG
-static const gchar *muc_states[] =
-{
-  "MUC_STATE_CREATED",
-  "MUC_STATE_INITIATED",
-  "MUC_STATE_AUTH",
-  "MUC_STATE_JOINED",
-  "MUC_STATE_ENDED",
-};
-#endif
-
-/* role and affiliation enums */
-typedef enum {
-    ROLE_NONE = 0,
-    ROLE_VISITOR,
-    ROLE_PARTICIPANT,
-    ROLE_MODERATOR,
-
-    NUM_ROLES,
-
-    INVALID_ROLE,
-} GabbleMucRole;
-
-typedef enum {
-    AFFILIATION_NONE = 0,
-    AFFILIATION_MEMBER,
-    AFFILIATION_ADMIN,
-    AFFILIATION_OWNER,
-
-    NUM_AFFILIATIONS,
-
-    INVALID_AFFILIATION,
-} GabbleMucAffiliation;
-
-//#ifndef EMULATOR
-
-static const gchar *muc_roles[NUM_ROLES] =
-{
-  "none",
-  "visitor",
-  "participant",
-  "moderator",
-};
-
-static const gchar *muc_affiliations[NUM_AFFILIATIONS] =
-{
-  "none",
-  "member",
-  "admin",
-  "owner",
-};
-
-//#endif
-
-/* room properties */
-enum
-{
-  ROOM_PROP_ANONYMOUS = 0,
-  ROOM_PROP_INVITE_ONLY,
-  ROOM_PROP_MODERATED,
-  ROOM_PROP_NAME,
-  ROOM_PROP_DESCRIPTION,
-  ROOM_PROP_PASSWORD,
-  ROOM_PROP_PASSWORD_REQUIRED,
-  ROOM_PROP_PERSISTENT,
-  ROOM_PROP_PRIVATE,
-  ROOM_PROP_SUBJECT,
-  ROOM_PROP_SUBJECT_CONTACT,
-  ROOM_PROP_SUBJECT_TIMESTAMP,
-
-  NUM_ROOM_PROPS,
-
-  INVALID_ROOM_PROP,
-};
-
-const GabblePropertySignature room_property_signatures[NUM_ROOM_PROPS] = {
-      { "anonymous",         G_TYPE_BOOLEAN },  /* impl: READ, WRITE */
-      { "invite-only",       G_TYPE_BOOLEAN },  /* impl: READ, WRITE */
-      { "moderated",         G_TYPE_BOOLEAN },  /* impl: READ, WRITE */
-      { "name",              G_TYPE_STRING },   /* impl: READ, WRITE */
-      { "description",       G_TYPE_STRING },   /* impl: READ, WRITE */
-      { "password",          G_TYPE_STRING },   /* impl: WRITE */
-      { "password-required", G_TYPE_BOOLEAN },  /* impl: READ, WRITE */
-      { "persistent",        G_TYPE_BOOLEAN },  /* impl: READ, WRITE */
-      { "private",           G_TYPE_BOOLEAN },  /* impl: READ, WRITE */
-      { "subject",           G_TYPE_STRING },   /* impl: READ, WRITE */
-      { "subject-contact",   G_TYPE_UINT },     /* impl: READ */
-      { "subject-timestamp", G_TYPE_UINT },     /* impl: READ */
-};
-
-/* private structures */
-
-typedef struct _GabbleMucChannelPrivate GabbleMucChannelPrivate;
-
-struct _GabbleMucChannelPrivate
-{
-  GabbleConnection *conn;
-  gchar *object_path;
-
-  GabbleMucState state;
-
-  guint join_timer_id;
-  guint poll_timer_id;
-
-  TpChannelPasswordFlags password_flags;
-  DBusGMethodInvocation *password_ctx;
-  gchar *password;
-
-  GabbleHandle handle;
-  const gchar *jid;
-
-  guint nick_retry_count;
-  GString *self_jid;
-  GabbleMucRole self_role;
-  GabbleMucAffiliation self_affil;
-
-  guint recv_id;
-
-  GabblePropertiesContext *properties_ctx;
-
-  gboolean ready_emitted;
-
-  gboolean closed;
-  gboolean dispose_has_run;
-
-  gboolean invite_self;
-};
-
-#define GABBLE_MUC_CHANNEL_GET_PRIVATE(o)     (G_TYPE_INSTANCE_GET_PRIVATE ((o), GABBLE_TYPE_MUC_CHANNEL, GabbleMucChannelPrivate))
-
-static void
-gabble_muc_channel_init (GabbleMucChannel *obj)
-{
-  /* do nothing? */
-}
-
-static void contact_handle_to_room_identity (GabbleMucChannel *, GabbleHandle, GabbleHandle *, GString **);
-
-static GObject *
-gabble_muc_channel_constructor (GType type, guint n_props,
-                                GObjectConstructParam *props)
-{
-  GObject *obj;
-  GabbleMucChannelPrivate *priv;
-  DBusGConnection *bus;
-  GabbleHandleRepo *handles;
-  GabbleHandle self_handle;
-  gboolean valid;
-
-  obj = G_OBJECT_CLASS (gabble_muc_channel_parent_class)->
-           constructor (type, n_props, props);
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (obj);
-
-  handles = priv->conn->handles;
-
-  /* ref our room handle */
-  valid = gabble_handle_ref (handles, TP_HANDLE_TYPE_ROOM, priv->handle);
-  g_assert (valid);
-
-  /* get the room's jid */
-  priv->jid = gabble_handle_inspect (handles, TP_HANDLE_TYPE_ROOM, priv->handle);
-
-  /* get our own identity in the room */
-  contact_handle_to_room_identity (GABBLE_MUC_CHANNEL (obj), priv->conn->self_handle,
-                                   &self_handle, &priv->self_jid);
-
-  valid = gabble_handle_ref (handles, TP_HANDLE_TYPE_CONTACT, self_handle);
-  g_assert (valid);
-
-  /* initialize our own role and affiliation */
-  priv->self_role = ROLE_NONE;
-  priv->self_affil = AFFILIATION_NONE;
-
-  /* register object on the bus */
-  bus = tp_get_bus ();
-  dbus_g_connection_register_g_object (bus, priv->object_path, obj);
-
-  /* initialize group mixin */
-  gabble_group_mixin_init (obj, G_STRUCT_OFFSET (GabbleMucChannel, group),
-                           handles, self_handle);
-
-  /* set initial group flags */
-  gabble_group_mixin_change_flags (obj,
-      TP_CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES |
-      TP_CHANNEL_GROUP_FLAG_CAN_ADD,
-      0);
-
-  /* initialize properties mixin */
-  gabble_properties_mixin_init (obj, G_STRUCT_OFFSET (
-        GabbleMucChannel, properties));
-
-  /* initialize text mixin */
-  gabble_text_mixin_init (obj, G_STRUCT_OFFSET (GabbleMucChannel, text), handles, FALSE);
-
-  gabble_text_mixin_set_message_types (obj,
-      TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL,
-      TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION,
-      G_MAXUINT);
-
-  /* add ourselves to group mixin if needed */
-  if (priv->invite_self)
-    {
-      GError *error = NULL;
-      GArray *members = g_array_sized_new (FALSE, FALSE, sizeof (GabbleHandle), 1);
-      g_array_append_val (members, self_handle);
-      gabble_group_mixin_add_members (obj, members, "", &error);
-      g_assert (error == NULL);
-      g_array_free (members, TRUE);
-    }
-  return obj;
-}
-
-static void
-properties_disco_cb (GabbleDisco *disco,
-                     GabbleDiscoRequest *request,
-                     const gchar *jid,
-                     const gchar *node,
-                     LmMessageNode *query_result,
-                     GError *error,
-                     gpointer user_data)
-{
-  GabbleMucChannel *chan = user_data;
-  GabbleMucChannelPrivate *priv;
-  GArray *changed_props_val, *changed_props_flags;
-  LmMessageNode *lm_node;
-  const gchar *str;
-  GValue val = { 0, };
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (chan));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  if (error)
-    {
-      gabble_debug (DEBUG_FLAG, "got error %s", error->message);
-      return;
-    }
-
-  NODE_DEBUG (query_result, "disco query result");
-
-  changed_props_val = changed_props_flags = NULL;
-
-
-  /*
-   * Update room definition.
-   */
-
-  /* ROOM_PROP_NAME */
-  lm_node = lm_message_node_get_child (query_result, "identity");
-  if (lm_node)
-    {
-      const gchar *type, *category, *name;
-
-      type = lm_message_node_get_attribute (lm_node, "type");
-      category = lm_message_node_get_attribute (lm_node, "category");
-      name = lm_message_node_get_attribute (lm_node, "name");
-
-      if (NULL != type && 0 == strcmp (type, "text") &&
-          NULL != category && 0 == strcmp (category, "conference") &&
-          NULL != name)
-        {
-          g_value_init (&val, G_TYPE_STRING);
-          g_value_set_string (&val, name);
-
-          gabble_properties_mixin_change_value (G_OBJECT (chan), ROOM_PROP_NAME,
-                                                &val, &changed_props_val);
-
-          gabble_properties_mixin_change_flags (G_OBJECT (chan), ROOM_PROP_NAME,
-                                                TP_PROPERTY_FLAG_READ,
-                                                0, &changed_props_flags);
-
-          g_value_unset (&val);
-        }
-    }
-
-  for (lm_node = query_result->children; lm_node; lm_node = lm_node->next)
-    {
-      guint prop_id = INVALID_ROOM_PROP;
-
-      if (strcmp (lm_node->name, "feature") == 0)
-        {
-          str = lm_message_node_get_attribute (lm_node, "var");
-          if (str == NULL)
-            continue;
-
-          /* ROOM_PROP_ANONYMOUS */
-          if (strcmp (str, "muc_nonanonymous") == 0)
-            {
-              prop_id = ROOM_PROP_ANONYMOUS;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, FALSE);
-            }
-          else if (strcmp (str, "muc_semianonymous") == 0 ||
-                   strcmp (str, "muc_anonymous") == 0)
-            {
-              prop_id = ROOM_PROP_ANONYMOUS;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, TRUE);
-            }
-
-          /* ROOM_PROP_INVITE_ONLY */
-          else if (strcmp (str, "muc_open") == 0)
-            {
-              prop_id = ROOM_PROP_INVITE_ONLY;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, FALSE);
-            }
-          else if (strcmp (str, "muc_membersonly") == 0)
-            {
-              prop_id = ROOM_PROP_INVITE_ONLY;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, TRUE);
-            }
-
-          /* ROOM_PROP_MODERATED */
-          else if (strcmp (str, "muc_unmoderated") == 0)
-            {
-              prop_id = ROOM_PROP_MODERATED;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, FALSE);
-            }
-          else if (strcmp (str, "muc_moderated") == 0)
-            {
-              prop_id = ROOM_PROP_MODERATED;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, TRUE);
-            }
-
-          /* ROOM_PROP_PASSWORD_REQUIRED */
-          else if (strcmp (str, "muc_unsecure") == 0 ||
-                   strcmp (str, "muc_unsecured") == 0)
-            {
-              prop_id = ROOM_PROP_PASSWORD_REQUIRED;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, FALSE);
-            }
-          else if (strcmp (str, "muc_passwordprotected") == 0)
-            {
-              prop_id = ROOM_PROP_PASSWORD_REQUIRED;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, TRUE);
-            }
-
-          /* ROOM_PROP_PERSISTENT */
-          else if (strcmp (str, "muc_temporary") == 0)
-            {
-              prop_id = ROOM_PROP_PERSISTENT;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, FALSE);
-            }
-          else if (strcmp (str, "muc_persistent") == 0)
-            {
-              prop_id = ROOM_PROP_PERSISTENT;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, TRUE);
-            }
-
-          /* ROOM_PROP_PRIVATE */
-          else if (strcmp (str, "muc_public") == 0)
-            {
-              prop_id = ROOM_PROP_PRIVATE;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, FALSE);
-            }
-          else if (strcmp (str, "muc_hidden") == 0)
-            {
-              prop_id = ROOM_PROP_PRIVATE;
-              g_value_init (&val, G_TYPE_BOOLEAN);
-              g_value_set_boolean (&val, TRUE);
-            }
-
-          /* Ignored */
-          else if (strcmp (str, NS_MUC) == 0)
-            {
-            }
-
-          /* Unhandled */
-          else
-            {
-              g_warning ("%s: unhandled feature '%s'", G_STRFUNC, str);
-            }
-        }
-      else if (strcmp (lm_node->name, "x") == 0)
-        {
-          if (lm_message_node_has_namespace (lm_node, NS_X_DATA, NULL))
-            {
-              LmMessageNode *field, *value_node;
-
-              for (field = lm_node->children; field; field = field->next)
-                {
-                  if (strcmp (field->name, "field") != 0)
-                    continue;
-
-                  str = lm_message_node_get_attribute (field, "var");
-                  if (str == NULL)
-                    continue;
-
-                  if (strcmp (str, "muc#roominfo_description") != 0)
-                    continue;
-
-                  value_node = lm_message_node_get_child (field, "value");
-                  if (value_node == NULL)
-                    continue;
-
-                  str = lm_message_node_get_value (value_node);
-                  if (str == NULL)
-                    {
-                      str = "";
-                    }
-
-                  prop_id = ROOM_PROP_DESCRIPTION;
-                  g_value_init (&val, G_TYPE_STRING);
-                  g_value_set_string (&val, str);
-                }
-            }
-        }
-
-      if (prop_id != INVALID_ROOM_PROP)
-        {
-          gabble_properties_mixin_change_value (G_OBJECT (chan), prop_id, &val,
-                                                &changed_props_val);
-
-          gabble_properties_mixin_change_flags (G_OBJECT (chan), prop_id,
-                                                TP_PROPERTY_FLAG_READ,
-                                                0, &changed_props_flags);
-
-          g_value_unset (&val);
-        }
-    }
-
-  /*
-   * Emit signals.
-   */
-  gabble_properties_mixin_emit_changed (G_OBJECT (chan), &changed_props_val);
-  gabble_properties_mixin_emit_flags (G_OBJECT (chan), &changed_props_flags);
-}
-
-static void
-room_properties_update (GabbleMucChannel *chan)
-{
-  GabbleMucChannelPrivate *priv;
-  GError *error = NULL;
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (chan));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  if (gabble_disco_request (priv->conn->disco, GABBLE_DISCO_TYPE_INFO,
-        priv->jid, NULL, properties_disco_cb, chan, G_OBJECT (chan),
-        &error) == NULL)
-    {
-      g_warning ("%s: disco query failed: '%s'", G_STRFUNC, error->message);
-      g_error_free (error);
-    }
-}
-
-static void
-contact_handle_to_room_identity (GabbleMucChannel *chan, GabbleHandle main_handle,
-                                 GabbleHandle *room_handle, GString **room_jid)
-{
-  GabbleMucChannelPrivate *priv;
-  GabbleHandleRepo *handles;
-  const gchar *main_jid;
-  gchar *username, *server;
-  gchar *jid;
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  handles = priv->conn->handles;
-
-  main_jid = gabble_handle_inspect (handles, TP_HANDLE_TYPE_CONTACT,
-                                    main_handle);
-
-  gabble_decode_jid (main_jid, &username, &server, NULL);
-
-  jid = g_strdup_printf ("%s/%s", priv->jid, username);
-
-  g_free (username);
-  g_free (server);
-
-  if (room_handle)
-    {
-      *room_handle = gabble_handle_for_contact (handles, jid, TRUE);
-    }
-
-  if (room_jid)
-    {
-      *room_jid = g_string_new (jid);
-    }
-
-  g_free (jid);
-}
-
-static gboolean
-send_join_request (GabbleMucChannel *channel,
-                   const gchar *password,
-                   GError **error)
-{
-  GabbleMucChannelPrivate *priv;
-  LmMessage *msg;
-  LmMessageNode *x_node;
-  gboolean ret;
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (channel);
-
-  /* build the message */
-  msg = lm_message_new (priv->self_jid->str, LM_MESSAGE_TYPE_PRESENCE);
-
-  x_node = lm_message_node_add_child (msg->node, "x", NULL);
-  lm_message_node_set_attribute (x_node, "xmlns", NS_MUC);
-
-  g_free (priv->password);
-
-  if (password != NULL)
-    {
-      priv->password = g_strdup (password);
-      lm_message_node_add_child (x_node, "password", password);
-    }
-
-  /* send it */
-  ret = _gabble_connection_send (priv->conn, msg, error);
-  if (!ret)
-    {
-      g_warning ("%s: _gabble_connection_send_with_reply failed", G_STRFUNC);
-    }
-  else
-    {
-      gabble_debug (DEBUG_FLAG, "join request sent");
-    }
-
-  lm_message_unref (msg);
-
-  return ret;
-}
-
-static gboolean
-send_leave_message (GabbleMucChannel *channel,
-                    const gchar *reason)
-{
-  GabbleMucChannelPrivate *priv;
-  LmMessage *msg;
-  GError *error = NULL;
-  gboolean ret;
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (channel);
-
-  /* build the message */
-  msg = lm_message_new_with_sub_type (priv->self_jid->str,
-                                      LM_MESSAGE_TYPE_PRESENCE,
-                                      LM_MESSAGE_SUB_TYPE_UNAVAILABLE);
-
-  if (reason != NULL)
-    {
-      lm_message_node_add_child (msg->node, "status", reason);
-    }
-
-  /* send it */
-  ret = _gabble_connection_send (priv->conn, msg, &error);
-  if (!ret)
-    {
-      g_warning ("%s: _gabble_connection_send_with_reply failed", G_STRFUNC);
-      g_error_free (error);
-    }
-  else
-    {
-      gabble_debug (DEBUG_FLAG, "leave message sent");
-    }
-
-  lm_message_unref (msg);
-
-  return ret;
-}
-
-static void
-gabble_muc_channel_get_property (GObject    *object,
-                                 guint       property_id,
-                                 GValue     *value,
-                                 GParamSpec *pspec)
-{
-  GabbleMucChannel *chan = GABBLE_MUC_CHANNEL (object);
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_value_set_string (value, priv->object_path);
-      break;
-    case PROP_CHANNEL_TYPE:
-      g_value_set_static_string (value, TP_IFACE_CHANNEL_TYPE_TEXT);
-      break;
-    case PROP_HANDLE_TYPE:
-      g_value_set_uint (value, TP_HANDLE_TYPE_ROOM);
-      break;
-    case PROP_HANDLE:
-      g_value_set_uint (value, priv->handle);
-      break;
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    case PROP_STATE:
-      g_value_set_uint (value, priv->state);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void channel_state_changed (GabbleMucChannel *chan,
-                                   GabbleMucState prev_state,
-                                   GabbleMucState new_state);
-
-static void
-gabble_muc_channel_set_property (GObject     *object,
-                                 guint        property_id,
-                                 const GValue *value,
-                                 GParamSpec   *pspec)
-{
-  GabbleMucChannel *chan = GABBLE_MUC_CHANNEL (object);
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-  GabbleMucState prev_state;
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_free (priv->object_path);
-      priv->object_path = g_value_dup_string (value);
-      break;
-    case PROP_HANDLE:
-      priv->handle = g_value_get_uint (value);
-      break;
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    case PROP_STATE:
-      prev_state = priv->state;
-      priv->state = g_value_get_uint (value);
-
-      if (priv->state != prev_state)
-        channel_state_changed (chan, prev_state, priv->state);
-
-      break;
-    case PROP_INVITE_SELF:
-      priv->invite_self = g_value_get_boolean (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void gabble_muc_channel_dispose (GObject *object);
-static void gabble_muc_channel_finalize (GObject *object);
-static gboolean gabble_muc_channel_add_member (GObject *obj, GabbleHandle handle, const gchar *message, GError **error);
-static gboolean gabble_muc_channel_remove_member (GObject *obj, GabbleHandle handle, const gchar *message, GError **error);
-static gboolean gabble_muc_channel_do_set_properties (GObject *obj, GabblePropertiesContext *ctx, GError **error);
-
-static void
-gabble_muc_channel_class_init (GabbleMucChannelClass *gabble_muc_channel_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_muc_channel_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_muc_channel_class, sizeof (GabbleMucChannelPrivate));
-
-  object_class->constructor = gabble_muc_channel_constructor;
-
-  object_class->get_property = gabble_muc_channel_get_property;
-  object_class->set_property = gabble_muc_channel_set_property;
-
-  object_class->dispose = gabble_muc_channel_dispose;
-  object_class->finalize = gabble_muc_channel_finalize;
-
-  g_object_class_override_property (object_class, PROP_OBJECT_PATH, "object-path");
-  g_object_class_override_property (object_class, PROP_CHANNEL_TYPE, "channel-type");
-  g_object_class_override_property (object_class, PROP_HANDLE_TYPE, "handle-type");
-  g_object_class_override_property (object_class, PROP_HANDLE, "handle");
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "MUC channel object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-  param_spec = g_param_spec_uint ("state", "Channel state",
-                                  "The current state that the channel is in.",
-                                  0, G_MAXUINT32, 0,
-                                  G_PARAM_READWRITE |
-                                  G_PARAM_STATIC_NAME |
-                                  G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_STATE, param_spec);
-
-  param_spec = g_param_spec_boolean ("invite-self", "Invite self",
-                                     "Whether the user should be added to members list.",
-                                     FALSE,
-                                     G_PARAM_CONSTRUCT_ONLY |
-                                     G_PARAM_WRITABLE |
-                                     G_PARAM_STATIC_NAME |
-                                     G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_INVITE_SELF, param_spec);
-
-  signals[READY] =
-    g_signal_new ("ready",
-                  G_OBJECT_CLASS_TYPE (gabble_muc_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
-  signals[JOIN_ERROR] =
-    g_signal_new ("join-error",
-                  G_OBJECT_CLASS_TYPE (gabble_muc_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__POINTER,
-                  G_TYPE_NONE, 1, G_TYPE_POINTER);
-
-  signals[CLOSED] =
-    g_signal_new ("closed",
-                  G_OBJECT_CLASS_TYPE (gabble_muc_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
-  signals[PASSWORD_FLAGS_CHANGED] =
-    g_signal_new ("password-flags-changed",
-                  G_OBJECT_CLASS_TYPE (gabble_muc_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_muc_channel_marshal_VOID__UINT_UINT,
-                  G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
-
-  gabble_group_mixin_class_init (object_class,
-                                 G_STRUCT_OFFSET (GabbleMucChannelClass, group_class),
-                                 gabble_muc_channel_add_member,
-                                 gabble_muc_channel_remove_member);
-
-  gabble_properties_mixin_class_init (object_class,
-                                      G_STRUCT_OFFSET (GabbleMucChannelClass, properties_class),
-                                      room_property_signatures, NUM_ROOM_PROPS,
-                                      gabble_muc_channel_do_set_properties);
-
-  gabble_text_mixin_class_init (object_class, G_STRUCT_OFFSET (GabbleMucChannelClass, text_class));
-
-  dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (gabble_muc_channel_class), &dbus_glib_gabble_muc_channel_object_info);
-}
-
-static void clear_join_timer (GabbleMucChannel *chan);
-static void clear_poll_timer (GabbleMucChannel *chan);
-
-void
-gabble_muc_channel_dispose (GObject *object)
-{
-  GabbleMucChannel *self = GABBLE_MUC_CHANNEL (object);
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (self);
-
-  if (priv->dispose_has_run)
-    return;
-
-  gabble_debug (DEBUG_FLAG, "called");
-
-  priv->dispose_has_run = TRUE;
-
-  clear_join_timer (self);
-  clear_poll_timer (self);
-
-  if (G_OBJECT_CLASS (gabble_muc_channel_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_muc_channel_parent_class)->dispose (object);
-}
-
-void
-gabble_muc_channel_finalize (GObject *object)
-{
-  GabbleMucChannel *self = GABBLE_MUC_CHANNEL (object);
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (self);
-  GabbleHandleRepo *handles = priv->conn->handles;
-
-  gabble_debug (DEBUG_FLAG, "called");
-
-  /* free any data held directly by the object here */
-  gabble_handle_unref (handles, TP_HANDLE_TYPE_ROOM, priv->handle);
-
-  g_free (priv->object_path);
-
-  if (priv->self_jid)
-    {
-      g_string_free (priv->self_jid, TRUE);
-    }
-
-  g_free (priv->password);
-
-  gabble_properties_mixin_finalize (object);
-
-  gabble_group_mixin_finalize (object);
-
-  gabble_text_mixin_finalize (object);
-
-  G_OBJECT_CLASS (gabble_muc_channel_parent_class)->finalize (object);
-}
-
-static void clear_join_timer (GabbleMucChannel *chan)
-{
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  if (priv->join_timer_id != 0)
-    {
-      g_source_remove (priv->join_timer_id);
-      priv->join_timer_id = 0;
-    }
-}
-
-static void clear_poll_timer (GabbleMucChannel *chan)
-{
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  if (priv->poll_timer_id != 0)
-    {
-      g_source_remove (priv->poll_timer_id);
-      priv->poll_timer_id = 0;
-    }
-}
-
-static void
-change_password_flags (GabbleMucChannel *chan,
-                       TpChannelPasswordFlags add,
-                       TpChannelPasswordFlags remove)
-{
-  GabbleMucChannelPrivate *priv;
-  TpChannelPasswordFlags added, removed;
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (chan));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  added = add & ~priv->password_flags;
-  priv->password_flags |= added;
-
-  removed = remove & priv->password_flags;
-  priv->password_flags &= ~removed;
-
-  if (add != 0 || remove != 0)
-    {
-      gabble_debug (DEBUG_FLAG, "emitting password flags changed, added 0x%X, removed 0x%X",
-              added, removed);
-
-      g_signal_emit (chan, signals[PASSWORD_FLAGS_CHANGED], 0, added, removed);
-    }
-}
-
-static void
-provide_password_return_if_pending (GabbleMucChannel *chan, gboolean success)
-{
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  if (priv->password_ctx)
-    {
-      dbus_g_method_return (priv->password_ctx, success);
-      priv->password_ctx = NULL;
-    }
-
-  if (success)
-    {
-      change_password_flags (chan, 0, TP_CHANNEL_PASSWORD_FLAG_PROVIDE);
-    }
-}
-
-static void close_channel (GabbleMucChannel *chan, const gchar *reason, gboolean inform_muc, GabbleHandle actor, guint reason_code);
-
-static gboolean
-timeout_join (gpointer data)
-{
-  GabbleMucChannel *chan = data;
-
-  gabble_debug (DEBUG_FLAG, "join timed out, closing channel");
-
-  provide_password_return_if_pending (chan, FALSE);
-
-  close_channel (chan, NULL, FALSE, 0, 0);
-
-  return FALSE;
-}
-
-static gboolean
-timeout_poll (gpointer data)
-{
-  GabbleMucChannel *chan = data;
-
-  gabble_debug (DEBUG_FLAG, "polling for room properties");
-
-  room_properties_update (chan);
-
-  return TRUE;
-}
-
-static void
-channel_state_changed (GabbleMucChannel *chan,
-                       GabbleMucState prev_state,
-                       GabbleMucState new_state)
-{
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  gabble_debug (DEBUG_FLAG, "state changed from %s to %s", muc_states[prev_state], muc_states[new_state]);
-
-  if (new_state == MUC_STATE_INITIATED)
-    {
-      priv->join_timer_id =
-        g_timeout_add (DEFAULT_JOIN_TIMEOUT, timeout_join, chan);
-    }
-  else if (new_state == MUC_STATE_JOINED)
-    {
-      gboolean low_bandwidth;
-      gint interval;
-
-      provide_password_return_if_pending (chan, TRUE);
-
-      clear_join_timer (chan);
-
-      g_object_get (priv->conn, "low-bandwidth", &low_bandwidth, NULL);
-
-      if (low_bandwidth)
-        interval = PROPS_POLL_INTERVAL_LOW;
-      else
-        interval = PROPS_POLL_INTERVAL_HIGH;
-
-      priv->poll_timer_id = g_timeout_add (interval, timeout_poll, chan);
-
-      /* no need to keep this around any longer, if it's set */
-      g_free (priv->password);
-      priv->password = NULL;
-    }
-  else if (new_state == MUC_STATE_ENDED)
-    {
-      clear_poll_timer (chan);
-    }
-
-  if (new_state == MUC_STATE_JOINED || new_state == MUC_STATE_AUTH)
-    {
-      if (!priv->ready_emitted)
-        {
-          g_signal_emit (chan, signals[READY], 0);
-
-          priv->ready_emitted = TRUE;
-        }
-    }
-}
-
-
-static void
-close_channel (GabbleMucChannel *chan, const gchar *reason,
-               gboolean inform_muc, GabbleHandle actor, guint reason_code)
-{
-  GabbleMucChannelPrivate *priv;
-  GIntSet *set;
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (chan));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  if (priv->closed)
-    return;
-
-  priv->closed = TRUE;
-
-  /* Remove us from member list */
-  set = g_intset_new ();
-  g_intset_add (set, GABBLE_GROUP_MIXIN (chan)->self_handle);
-
-  gabble_group_mixin_change_members (G_OBJECT (chan),
-                                     (reason != NULL) ? reason : "",
-                                     NULL, set, NULL, NULL, actor,
-                                     reason_code);
-
-  g_intset_destroy (set);
-
-  /* Inform the MUC if requested */
-  if (inform_muc && priv->state >= MUC_STATE_INITIATED)
-    {
-      send_leave_message (chan, reason);
-    }
-
-  /* Update state and emit Closed signal */
-  g_object_set (chan, "state", MUC_STATE_ENDED, NULL);
-
-  g_signal_emit (chan, signals[CLOSED], 0);
-}
-
-gboolean
-_gabble_muc_channel_is_ready (GabbleMucChannel *chan)
-{
-  GabbleMucChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (chan));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  return priv->ready_emitted;
-}
-
-/**
- * _gabble_muc_channel_presence_error
- */
-void
-_gabble_muc_channel_presence_error (GabbleMucChannel *chan,
-                                    const gchar *jid,
-                                    LmMessageNode *pres_node)
-{
-  GabbleMucChannelPrivate *priv;
-  LmMessageNode *error_node;
-  GabbleXmppError error;
-  GabbleHandle actor = 0;
-  guint reason_code = TP_CHANNEL_GROUP_CHANGE_REASON_NONE;
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (chan));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  if (strcmp (jid, priv->self_jid->str) != 0)
-    {
-      g_warning ("%s: presence error from other jids than self not handled",
-                 G_STRFUNC);
-      return;
-    }
-
-  error_node = lm_message_node_get_child (pres_node, "error");
-  if (error_node == NULL)
-    {
-      g_warning ("%s: missing required node 'error'", G_STRFUNC);
-      return;
-    }
-
-  error = gabble_xmpp_error_from_node (error_node);
-
-  if (priv->state >= MUC_STATE_JOINED)
-    {
-      g_warning ("%s: presence error while already member of the channel -- NYI",
-                 G_STRFUNC);
-      return;
-    }
-
-  /* We're not a member, find out why the join request failed
-   * and act accordingly. */
-  if (error == XMPP_ERROR_NOT_AUTHORIZED)
-    {
-      /* channel can sit requiring a password indefinitely */
-      clear_join_timer (chan);
-
-      /* Password already provided and incorrect? */
-      if (priv->state == MUC_STATE_AUTH)
-        {
-          provide_password_return_if_pending (chan, FALSE);
-
-          return;
-        }
-
-      gabble_debug (DEBUG_FLAG, "password required to join, changing password flags");
-
-      change_password_flags (chan, TP_CHANNEL_PASSWORD_FLAG_PROVIDE, 0);
-
-      g_object_set (chan, "state", MUC_STATE_AUTH, NULL);
-    }
-  else
-    {
-      GError *tp_error;
-
-      switch (error) {
-        case XMPP_ERROR_FORBIDDEN:
-          tp_error = g_error_new (TELEPATHY_ERRORS, ChannelBanned,
-                                  "banned from room");
-          reason_code = TP_CHANNEL_GROUP_CHANGE_REASON_BANNED;
-          break;
-        case XMPP_ERROR_SERVICE_UNAVAILABLE:
-          tp_error = g_error_new (TELEPATHY_ERRORS, ChannelFull,
-                                  "room is full");
-          break;
-        case XMPP_ERROR_REGISTRATION_REQUIRED:
-          tp_error = g_error_new (TELEPATHY_ERRORS, ChannelInviteOnly,
-                                  "room is invite only");
-          break;
-        case XMPP_ERROR_CONFLICT:
-          if (priv->nick_retry_count < MAX_NICK_RETRIES)
-            {
-              g_string_append_c (priv->self_jid, '_');
-
-              if (send_join_request (chan, priv->password, &tp_error))
-                {
-                  priv->nick_retry_count++;
-                  return;
-                }
-            }
-          else
-            {
-              tp_error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-                  "nickname already in use and retry count exceeded");
-            }
-          break;
-        default:
-          if (error != INVALID_XMPP_ERROR)
-            {
-              tp_error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-                                      gabble_xmpp_error_description (error));
-            }
-          else
-            {
-              tp_error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-                                      "unknown error");
-            }
-          break;
-      }
-
-      g_signal_emit (chan, signals[JOIN_ERROR], 0, tp_error);
-
-      close_channel (chan, tp_error->message, FALSE, actor, reason_code);
-
-      g_error_free (tp_error);
-    }
-}
-
-static GabbleMucRole
-get_role_from_string (const gchar *role)
-{
-  guint i;
-
-  if (role == NULL)
-    {
-      return ROLE_VISITOR;
-    }
-
-  for (i = 0; i < NUM_ROLES; i++)
-    {
-      if (strcmp (role, muc_roles[i]) == 0)
-        {
-          return i;
-        }
-    }
-
-  g_warning ("%s: unknown role '%s' -- defaulting to ROLE_VISITOR",
-             G_STRFUNC, role);
-
-  return ROLE_VISITOR;
-}
-
-static GabbleMucAffiliation
-get_affiliation_from_string (const gchar *affil)
-{
-  guint i;
-
-  if (affil == NULL)
-    {
-      return AFFILIATION_NONE;
-    }
-
-  for (i = 0; i < NUM_AFFILIATIONS; i++)
-    {
-      if (strcmp (affil, muc_affiliations[i]) == 0)
-        {
-          return i;
-        }
-    }
-
-  g_warning ("%s: unknown affiliation '%s' -- defaulting to "
-             "AFFILIATION_NONE", G_STRFUNC, affil);
-
-  return AFFILIATION_NONE;
-}
-
-static LmHandlerResult
-room_created_submit_reply_cb (GabbleConnection *conn, LmMessage *sent_msg,
-                              LmMessage *reply_msg, GObject *object,
-                              gpointer user_data)
-{
-  if (lm_message_get_sub_type (reply_msg) != LM_MESSAGE_SUB_TYPE_RESULT)
-    {
-      g_warning ("%s: failed to submit room config", G_STRFUNC);
-    }
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static LmMessageNode *
-config_form_get_form_node (LmMessage *msg)
-{
-  LmMessageNode *node;
-
-  /* find the query node */
-  node = lm_message_node_get_child (msg->node, "query");
-  if (node == NULL)
-    return NULL;
-
-  /* then the form node */
-  for (node = node->children; node; node = node->next)
-    {
-      if (strcmp (node->name, "x") == 0)
-        {
-          if (!lm_message_node_has_namespace (node, NS_X_DATA, NULL))
-            {
-              continue;
-            }
-
-          if (strcmp (lm_message_node_get_attribute (node, "type"),
-                      "form") != 0)
-            {
-              continue;
-            }
-
-          return node;
-        }
-    }
-
-  return NULL;
-}
-
-static LmHandlerResult
-perms_config_form_reply_cb (GabbleConnection *conn, LmMessage *sent_msg,
-                            LmMessage *reply_msg, GObject *object,
-                            gpointer user_data)
-{
-  GabbleMucChannel *chan = GABBLE_MUC_CHANNEL (object);
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-  LmMessageNode *form_node, *node;
-
-  if (lm_message_get_sub_type (reply_msg) != LM_MESSAGE_SUB_TYPE_RESULT)
-    {
-      g_warning ("%s: request for config form denied, property permissions "
-                 "will be inaccurate", G_STRFUNC);
-      goto OUT;
-    }
-
-  /* just in case our affiliation has changed in the meantime */
-  if (priv->self_affil != AFFILIATION_OWNER)
-    goto OUT;
-
-  form_node = config_form_get_form_node (reply_msg);
-  if (form_node == NULL)
-    {
-      g_warning ("%s: form node node found, property permissions will be "
-                 "inaccurate", G_STRFUNC);
-      goto OUT;
-    }
-
-  for (node = form_node->children; node; node = node->next)
-    {
-      const gchar *var;
-
-      if (strcmp (node->name, "field") != 0)
-        continue;
-
-      var = lm_message_node_get_attribute (node, "var");
-      if (var == NULL)
-        continue;
-
-      if (strcmp (var, "muc#roomconfig_roomdesc") == 0 ||
-          strcmp (var, "muc#owner_roomdesc") == 0)
-        {
-          if (gabble_properties_mixin_is_readable (G_OBJECT (chan),
-                                                   ROOM_PROP_DESCRIPTION))
-            {
-              gabble_properties_mixin_change_flags (G_OBJECT (chan),
-                  ROOM_PROP_DESCRIPTION, TP_PROPERTY_FLAG_WRITE, 0,
-                  NULL);
-
-              goto OUT;
-            }
-        }
-    }
-
-OUT:
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static void
-update_permissions (GabbleMucChannel *chan)
-{
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-  TpChannelGroupFlags grp_flags_add, grp_flags_rem;
-  TpPropertyFlags prop_flags_add, prop_flags_rem;
-  GArray *changed_props_val, *changed_props_flags;
-
-  /*
-   * Update group flags.
-   */
-  grp_flags_add = TP_CHANNEL_GROUP_FLAG_CAN_ADD |
-                  TP_CHANNEL_GROUP_FLAG_MESSAGE_ADD;
-  grp_flags_rem = 0;
-
-  if (priv->self_role == ROLE_MODERATOR)
-    {
-      grp_flags_add |= TP_CHANNEL_GROUP_FLAG_CAN_REMOVE |
-                       TP_CHANNEL_GROUP_FLAG_MESSAGE_REMOVE;
-    }
-  else
-    {
-      grp_flags_rem |= TP_CHANNEL_GROUP_FLAG_CAN_REMOVE |
-                       TP_CHANNEL_GROUP_FLAG_MESSAGE_REMOVE;
-    }
-
-  gabble_group_mixin_change_flags (G_OBJECT (chan), grp_flags_add,
-                                   grp_flags_rem);
-
-
-  /*
-   * Update write capabilities based on room configuration
-   * and own role and affiliation.
-   */
-
-  changed_props_val = changed_props_flags = NULL;
-
-  /*
-   * Subject
-   *
-   * FIXME: this might be allowed for participants/moderators only,
-   *        so for now just rely on the server making that call.
-   */
-
-  if (priv->self_role >= ROLE_VISITOR)
-    {
-      prop_flags_add = TP_PROPERTY_FLAG_WRITE;
-      prop_flags_rem = 0;
-    }
-  else
-    {
-      prop_flags_add = 0;
-      prop_flags_rem = TP_PROPERTY_FLAG_WRITE;
-    }
-
-  gabble_properties_mixin_change_flags (G_OBJECT (chan),
-      ROOM_PROP_SUBJECT, prop_flags_add, prop_flags_rem,
-      &changed_props_flags);
-
-  /* Room definition */
-  if (priv->self_affil == AFFILIATION_OWNER)
-    {
-      prop_flags_add = TP_PROPERTY_FLAG_WRITE;
-      prop_flags_rem = 0;
-    }
-  else
-    {
-      prop_flags_add = 0;
-      prop_flags_rem = TP_PROPERTY_FLAG_WRITE;
-    }
-
-  gabble_properties_mixin_change_flags (G_OBJECT (chan),
-      ROOM_PROP_ANONYMOUS, prop_flags_add, prop_flags_rem,
-      &changed_props_flags);
-
-  gabble_properties_mixin_change_flags (G_OBJECT (chan),
-      ROOM_PROP_INVITE_ONLY, prop_flags_add, prop_flags_rem,
-      &changed_props_flags);
-
-  gabble_properties_mixin_change_flags (G_OBJECT (chan),
-      ROOM_PROP_MODERATED, prop_flags_add, prop_flags_rem,
-      &changed_props_flags);
-
-  gabble_properties_mixin_change_flags (G_OBJECT (chan),
-      ROOM_PROP_NAME, prop_flags_add, prop_flags_rem,
-      &changed_props_flags);
-
-  gabble_properties_mixin_change_flags (G_OBJECT (chan),
-      ROOM_PROP_PASSWORD, prop_flags_add, prop_flags_rem,
-      &changed_props_flags);
-
-  gabble_properties_mixin_change_flags (G_OBJECT (chan),
-      ROOM_PROP_PASSWORD_REQUIRED, prop_flags_add, prop_flags_rem,
-      &changed_props_flags);
-
-  gabble_properties_mixin_change_flags (G_OBJECT (chan),
-      ROOM_PROP_PERSISTENT, prop_flags_add, prop_flags_rem,
-      &changed_props_flags);
-
-  gabble_properties_mixin_change_flags (G_OBJECT (chan),
-      ROOM_PROP_PRIVATE, prop_flags_add, prop_flags_rem,
-      &changed_props_flags);
-
-  gabble_properties_mixin_change_flags (G_OBJECT (chan),
-      ROOM_PROP_SUBJECT, prop_flags_add, prop_flags_rem,
-      &changed_props_flags);
-
-  if (priv->self_affil == AFFILIATION_OWNER)
-    {
-      /* request the configuration form purely to see if the description
-       * is writable by us in this room. sigh. GO MUC!!! */
-      LmMessage *msg;
-      LmMessageNode *node;
-      GError *error = NULL;
-      gboolean success;
-
-      msg = lm_message_new_with_sub_type (priv->jid,
-          LM_MESSAGE_TYPE_IQ, LM_MESSAGE_SUB_TYPE_GET);
-      node = lm_message_node_add_child (msg->node, "query", NULL);
-      lm_message_node_set_attribute (node, "xmlns", NS_MUC_OWNER);
-
-      success = _gabble_connection_send_with_reply (priv->conn, msg,
-          perms_config_form_reply_cb, G_OBJECT (chan), NULL,
-          &error);
-
-      lm_message_unref (msg);
-
-      if (!success)
-        {
-          g_warning ("%s: failed to request config form: %s",
-              G_STRFUNC, error->message);
-          g_error_free (error);
-        }
-    }
-  else
-    {
-      /* mark description unwritable if we're no longer an owner */
-      gabble_properties_mixin_change_flags (G_OBJECT (chan),
-          ROOM_PROP_DESCRIPTION, 0, TP_PROPERTY_FLAG_WRITE,
-          &changed_props_flags);
-    }
-
-  /*
-   * Emit signals.
-   */
-  gabble_properties_mixin_emit_changed (G_OBJECT (chan), &changed_props_val);
-  gabble_properties_mixin_emit_flags (G_OBJECT (chan), &changed_props_flags);
-}
-
-/**
- * _gabble_muc_channel_member_presence_updated
- */
-void
-_gabble_muc_channel_member_presence_updated (GabbleMucChannel *chan,
-                                             GabbleHandle handle,
-                                             LmMessage *message,
-                                             LmMessageNode *x_node)
-{
-  GabbleMucChannelPrivate *priv;
-  GIntSet *set;
-  GabbleGroupMixin *mixin;
-  LmMessageNode *item_node, *node;
-  const gchar *affil, *role, *owner_jid, *status_code;
-  GabbleHandle actor = 0;
-  guint reason_code = TP_CHANNEL_GROUP_CHANGE_REASON_NONE;
-
-  gabble_debug (DEBUG_FLAG, "called");
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (chan));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  mixin = GABBLE_GROUP_MIXIN (chan);
-
-  item_node = lm_message_node_get_child (x_node, "item");
-  if (item_node == NULL)
-    {
-      g_warning ("%s: node missing 'item' child, ignoring", G_STRFUNC);
-      return;
-    }
-
-  node = lm_message_node_get_child (x_node, "status");
-  if (node)
-    {
-      status_code = lm_message_node_get_attribute (node, "code");
-    }
-  else
-    {
-      status_code = NULL;
-    }
-
-  role = lm_message_node_get_attribute (item_node, "role");
-  affil = lm_message_node_get_attribute (item_node, "affiliation");
-  owner_jid = lm_message_node_get_attribute (item_node, "jid");
-
-  /* update channel members according to presence */
-  set = g_intset_new ();
-  g_intset_add (set, handle);
-
-  if (lm_message_get_sub_type (message) != LM_MESSAGE_SUB_TYPE_UNAVAILABLE)
-    {
-      if (!handle_set_is_member (mixin->members, handle))
-        {
-          gabble_group_mixin_change_members (G_OBJECT (chan), "", set, NULL,
-                                             NULL, NULL, 0, 0);
-
-          if (owner_jid != NULL)
-            {
-              GabbleHandle owner_handle;
-
-              owner_handle = gabble_handle_for_contact (
-                  chan->group.handle_repo, owner_jid, FALSE);
-
-              gabble_group_mixin_add_handle_owner (G_OBJECT (chan), handle,
-                                                   owner_handle);
-            }
-
-          if (handle == mixin->self_handle)
-            {
-              g_object_set (chan, "state", MUC_STATE_JOINED, NULL);
-            }
-        }
-
-      if (handle == mixin->self_handle)
-        {
-          GabbleMucRole new_role;
-          GabbleMucAffiliation new_affil;
-
-          /* accept newly-created room settings before we send anything
-           * below which queryies them. */
-          if (status_code && strcmp (status_code, "201") == 0)
-            {
-              LmMessage *msg;
-              GError *error = NULL;
-
-              msg = lm_message_new_with_sub_type (priv->jid, LM_MESSAGE_TYPE_IQ,
-                                                  LM_MESSAGE_SUB_TYPE_SET);
-
-              node = lm_message_node_add_child (msg->node, "query", NULL);
-              lm_message_node_set_attribute (node, "xmlns", NS_MUC_OWNER);
-
-              node = lm_message_node_add_child (node, "x", NULL);
-              lm_message_node_set_attributes (node,
-                                              "xmlns", NS_X_DATA,
-                                              "type", "submit",
-                                              NULL);
-
-              if (!_gabble_connection_send_with_reply (priv->conn, msg,
-                    room_created_submit_reply_cb, G_OBJECT (chan), NULL, &error))
-                {
-                  g_warning ("%s: failed to send submit message: %s", G_STRFUNC,
-                             error->message);
-                  g_error_free (error);
-
-                  close_channel (chan, NULL, TRUE, actor, reason_code);
-
-                  goto OUT;
-                }
-            }
-
-          /* Update room properties */
-          room_properties_update (chan);
-
-          /* update permissions after requesting new properties so that if we
-           * become an owner, we get our configuration form reply after the
-           * discovery reply, so we know whether there is a description
-           * property before we try and decide whether we can write to it. */
-          new_role = get_role_from_string (role);
-          new_affil = get_affiliation_from_string (affil);
-
-          if (new_role != priv->self_role || new_affil != priv->self_affil)
-            {
-              priv->self_role = new_role;
-              priv->self_affil = new_affil;
-
-              update_permissions (chan);
-            }
-        }
-    }
-  else
-    {
-      LmMessageNode *reason_node, *actor_node;
-      const gchar *reason = "", *actor_jid = "";
-
-      actor_node = lm_message_node_get_child (item_node, "actor");
-      if (actor_node != NULL)
-        {
-          actor_jid = lm_message_node_get_attribute (actor_node, "jid");
-          if (actor_jid != NULL)
-            {
-              actor = gabble_handle_for_contact(chan->group.handle_repo, actor_jid, FALSE);
-            }
-        }
-
-      /* Possible reasons we could have been removed from the room:
-       * 301 banned
-       * 307 kicked
-       * 321 "because of an affiliation change" - no reason_code
-       * 322 room has become members-only and we're not a member - no reason_code
-       * 332 system (server) is being shut down - no reason code
-       */
-      if (status_code)
-        {
-          if (strcmp (status_code, "301") == 0)
-            {
-              reason_code = TP_CHANNEL_GROUP_CHANGE_REASON_BANNED;
-            }
-          else if (strcmp (status_code, "307") == 0)
-            {
-              reason_code = TP_CHANNEL_GROUP_CHANGE_REASON_KICKED;
-            }
-        }
-
-      reason_node = lm_message_node_get_child (item_node, "reason");
-      if (reason_node != NULL)
-        {
-          reason = lm_message_node_get_value (reason_node);
-        }
-
-      if (handle != mixin->self_handle)
-        {
-          gabble_group_mixin_change_members (G_OBJECT (chan), reason,
-                                             NULL, set, NULL, NULL,
-                                             actor, reason_code);
-        }
-      else
-        {
-          close_channel (chan, reason, FALSE, actor, reason_code);
-        }
-    }
-
-OUT:
-  g_intset_destroy (set);
-}
-
-
-/**
- * _gabble_muc_channel_receive
- */
-gboolean
-_gabble_muc_channel_receive (GabbleMucChannel *chan,
-                             TpChannelTextMessageType msg_type,
-                             TpHandleType handle_type,
-                             GabbleHandle sender,
-                             time_t timestamp,
-                             const gchar *text,
-                             LmMessage *msg)
-{
-  gboolean error;
-  GabbleMucChannelPrivate *priv;
-  LmMessageNode *subj_node, *node;
-  GValue val = { 0, };
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (chan));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  error = lm_message_get_sub_type (msg) == LM_MESSAGE_SUB_TYPE_ERROR;
-
-  subj_node = lm_message_node_get_child (msg->node, "subject");
-
-  if (subj_node)
-    {
-      GArray *changed_values, *changed_flags;
-
-      if (priv->properties_ctx)
-        {
-          gabble_properties_context_remove (priv->properties_ctx,
-              ROOM_PROP_SUBJECT);
-        }
-
-      if (error)
-        {
-          GabbleXmppError xmpp_error = INVALID_XMPP_ERROR;
-          const gchar *err_desc = NULL;
-
-          node = lm_message_node_get_child (msg->node, "error");
-          if (node)
-            {
-              xmpp_error = gabble_xmpp_error_from_node (node);
-            }
-
-          if (xmpp_error != INVALID_XMPP_ERROR)
-            {
-              err_desc = gabble_xmpp_error_description (xmpp_error);
-            }
-
-          if (priv->properties_ctx)
-            {
-              GError *error = NULL;
-
-              error = g_error_new (TELEPATHY_ERRORS, PermissionDenied,
-                  (err_desc) ? err_desc : "failed to change subject");
-
-              gabble_properties_context_return (priv->properties_ctx, error);
-              priv->properties_ctx = NULL;
-
-              /* Get the properties into a consistent state. */
-              room_properties_update (chan);
-            }
-
-          return TRUE;
-        }
-
-      changed_values = changed_flags = NULL;
-
-      /* ROOM_PROP_SUBJECT */
-      g_value_init (&val, G_TYPE_STRING);
-      g_value_set_string (&val, lm_message_node_get_value (subj_node));
-
-      gabble_properties_mixin_change_value (G_OBJECT (chan),
-          ROOM_PROP_SUBJECT, &val, &changed_values);
-
-      gabble_properties_mixin_change_flags (G_OBJECT (chan),
-          ROOM_PROP_SUBJECT, TP_PROPERTY_FLAG_READ, 0,
-          &changed_flags);
-
-      g_value_unset (&val);
-
-      if (handle_type == TP_HANDLE_TYPE_CONTACT)
-        {
-          /* ROOM_PROP_SUBJECT_CONTACT */
-          g_value_init (&val, G_TYPE_UINT);
-          g_value_set_uint (&val, sender);
-
-          gabble_properties_mixin_change_value (G_OBJECT (chan),
-              ROOM_PROP_SUBJECT_CONTACT, &val, &changed_values);
-
-          gabble_properties_mixin_change_flags (G_OBJECT (chan),
-              ROOM_PROP_SUBJECT_CONTACT, TP_PROPERTY_FLAG_READ, 0,
-              &changed_flags);
-
-          g_value_unset (&val);
-        }
-
-      /* ROOM_PROP_SUBJECT_TIMESTAMP */
-      g_value_init (&val, G_TYPE_UINT);
-      g_value_set_uint (&val, timestamp);
-
-      gabble_properties_mixin_change_value (G_OBJECT (chan),
-          ROOM_PROP_SUBJECT_TIMESTAMP, &val, &changed_values);
-
-      gabble_properties_mixin_change_flags (G_OBJECT (chan),
-          ROOM_PROP_SUBJECT_TIMESTAMP, TP_PROPERTY_FLAG_READ, 0,
-          &changed_flags);
-
-      g_value_unset (&val);
-
-      /* Emit signals */
-      gabble_properties_mixin_emit_changed (G_OBJECT (chan), &changed_values);
-      gabble_properties_mixin_emit_flags (G_OBJECT (chan), &changed_flags);
-
-      if (priv->properties_ctx)
-        {
-          if (gabble_properties_context_return_if_done (priv->properties_ctx))
-            {
-              priv->properties_ctx = NULL;
-            }
-        }
-
-      return TRUE;
-    }
-  else if (handle_type == TP_HANDLE_TYPE_ROOM)
-    {
-      NODE_DEBUG (msg->node, "ignoring message from channel");
-
-      return TRUE;
-    }
-  else if ((sender == chan->group.self_handle) && (timestamp == 0))
-    {
-      /* If we sent the message and it's not delayed, just emit the sent signal */
-      timestamp = time (NULL);
-      gabble_text_mixin_emit_sent (G_OBJECT (chan), timestamp, msg_type, text);
-
-      return TRUE;
-    }
-
-  /* Receive messages from other contacts and our own if they're delayed, and
-   * set the timestamp for non-delayed messages */
-  if (timestamp == 0)
-      timestamp = time (NULL);
-
-  return gabble_text_mixin_receive (G_OBJECT (chan), msg_type, sender,
-      timestamp, text);
-}
-
-void
-_gabble_muc_channel_handle_invited (GabbleMucChannel *chan,
-                                    GabbleHandle inviter,
-                                    const gchar *message)
-{
-  GabbleMucChannelPrivate *priv;
-  GabbleHandle self_handle;
-  GIntSet *set_members, *set_pending;
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (chan));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-
-  /* add ourself to local pending and the inviter to members */
-  set_members = g_intset_new ();
-  set_pending = g_intset_new ();
-
-  g_intset_add (set_members, inviter);
-
-  /* get our own identity in the room */
-  contact_handle_to_room_identity (chan, priv->conn->self_handle,
-                                   &self_handle, &priv->self_jid);
-  g_intset_add (set_pending, self_handle);
-
-  gabble_group_mixin_change_members (G_OBJECT (chan), message, set_members,
-                                     NULL, set_pending, NULL, inviter,
-                                     TP_CHANNEL_GROUP_CHANGE_REASON_INVITED);
-
-  g_intset_destroy (set_members);
-  g_intset_destroy (set_pending);
-
-  /* queue the message */
-  if (message && (message[0] != '\0'))
-    {
-      gabble_text_mixin_receive (G_OBJECT (chan), TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE, inviter,
-                                  time(NULL), message);
-    }
-
-  /* emit READY signal so NewChannel is emitted */
-  g_signal_emit (chan, signals[READY], 0);
-  priv->ready_emitted = TRUE;
-}
-
-
-/**
- * gabble_muc_channel_acknowledge_pending_messages
- *
- * Implements D-Bus method AcknowledgePendingMessages
- * on interface org.freedesktop.Telepathy.Channel.Type.Text
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_acknowledge_pending_messages (GabbleMucChannel *self,
-                                                 const GArray *ids,
-                                                 GError **error)
-{
-  g_assert (GABBLE_IS_MUC_CHANNEL (self));
-
-  return gabble_text_mixin_acknowledge_pending_messages (G_OBJECT (self), ids,
-      error);
-}
-
-
-/**
- * gabble_muc_channel_add_members
- *
- * Implements D-Bus method AddMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_add_members (GabbleMucChannel *self,
-                                const GArray *contacts,
-                                const gchar *message,
-                                GError **error)
-{
-  return gabble_group_mixin_add_members (G_OBJECT (self), contacts, message,
-      error);
-}
-
-
-/**
- * gabble_muc_channel_close
- *
- * Implements D-Bus method Close
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_close (GabbleMucChannel *self,
-                          GError **error)
-{
-  GabbleMucChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (self));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (self);
-
-  gabble_debug (DEBUG_FLAG, "called on %p", self);
-
-  if (priv->closed)
-    {
-      gabble_debug (DEBUG_FLAG, "channel already closed");
-
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "Channel already closed");
-
-      return FALSE;
-    }
-
-  close_channel (self, NULL, TRUE, 0, 0);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_muc_channel_get_all_members
- *
- * Implements D-Bus method GetAllMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_all_members (GabbleMucChannel *self,
-                                    GArray **ret,
-                                    GArray **ret1,
-                                    GArray **ret2,
-                                    GError **error)
-{
-  return gabble_group_mixin_get_all_members (G_OBJECT (self), ret, ret1, ret2,
-      error);
-}
-
-
-/**
- * gabble_muc_channel_get_channel_type
- *
- * Implements D-Bus method GetChannelType
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_channel_type (GabbleMucChannel *self,
-                                     gchar **ret,
-                                     GError **error)
-{
-  *ret = g_strdup (TP_IFACE_CHANNEL_TYPE_TEXT);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_muc_channel_get_group_flags
- *
- * Implements D-Bus method GetGroupFlags
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_group_flags (GabbleMucChannel *self,
-                                    guint *ret,
-                                    GError **error)
-{
-  return gabble_group_mixin_get_group_flags (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_muc_channel_get_handle
- *
- * Implements D-Bus method GetHandle
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_handle (GabbleMucChannel *self,
-                               guint *ret,
-                               guint *ret1,
-                               GError **error)
-{
-  GabbleMucChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (self));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (self);
-
-  *ret = TP_HANDLE_TYPE_ROOM;
-  *ret1 = priv->handle;
-
-  return TRUE;
-}
-
-
-/**
- * gabble_muc_channel_get_handle_owners
- *
- * Implements D-Bus method GetHandleOwners
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_handle_owners (GabbleMucChannel *self,
-                                      const GArray *handles,
-                                      GArray **ret,
-                                      GError **error)
-{
-  return gabble_group_mixin_get_handle_owners (G_OBJECT (self), handles, ret,
-      error);
-}
-
-
-/**
- * gabble_muc_channel_get_interfaces
- *
- * Implements D-Bus method GetInterfaces
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_interfaces (GabbleMucChannel *self,
-                                   gchar ***ret,
-                                   GError **error)
-{
-  const gchar *interfaces[] = {
-      TP_IFACE_CHANNEL_INTERFACE_GROUP,
-      TP_IFACE_CHANNEL_INTERFACE_PASSWORD,
-      TP_IFACE_PROPERTIES,
-      NULL
-  };
-
-  *ret = g_strdupv ((gchar **) interfaces);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_muc_channel_get_local_pending_members
- *
- * Implements D-Bus method GetLocalPendingMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_local_pending_members (GabbleMucChannel *self,
-                                              GArray **ret,
-                                              GError **error)
-{
-  return gabble_group_mixin_get_local_pending_members (G_OBJECT (self), ret,
-      error);
-}
-
-
-/**
- * gabble_muc_channel_get_members
- *
- * Implements D-Bus method GetMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_members (GabbleMucChannel *self,
-                                GArray **ret,
-                                GError **error)
-{
-  return gabble_group_mixin_get_members (G_OBJECT (self), ret, error);
-}
-
-
-
-
-/**
- * gabble_muc_channel_get_message_types
- *
- * Implements D-Bus method GetMessageTypes
- * on interface org.freedesktop.Telepathy.Channel.Type.Text
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_message_types (GabbleMucChannel *self,
-                                      GArray **ret,
-                                      GError **error)
-{
-  return gabble_text_mixin_get_message_types (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_muc_channel_get_password_flags
- *
- * Implements D-Bus method GetPasswordFlags
- * on interface org.freedesktop.Telepathy.Channel.Interface.Password
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_password_flags (GabbleMucChannel *self,
-                                       guint *ret,
-                                       GError **error)
-{
-  GabbleMucChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (self));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (self);
-
-  *ret = priv->password_flags;
-
-  return TRUE;
-}
-
-
-/**
- * gabble_muc_channel_get_remote_pending_members
- *
- * Implements D-Bus method GetRemotePendingMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_remote_pending_members (GabbleMucChannel *self,
-                                               GArray **ret,
-                                               GError **error)
-{
-  return gabble_group_mixin_get_remote_pending_members (G_OBJECT (self), ret,
-      error);
-}
-
-
-/**
- * gabble_muc_channel_get_self_handle
- *
- * Implements D-Bus method GetSelfHandle
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_self_handle (GabbleMucChannel *self,
-                                    guint *ret,
-                                    GError **error)
-{
-  return gabble_group_mixin_get_self_handle (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_muc_channel_list_pending_messages
- *
- * Implements D-Bus method ListPendingMessages
- * on interface org.freedesktop.Telepathy.Channel.Type.Text
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_list_pending_messages (GabbleMucChannel *self,
-                                          gboolean clear,
-                                          GPtrArray **ret,
-                                          GError **error)
-{
-  return gabble_text_mixin_list_pending_messages (G_OBJECT (self), clear, ret,
-      error);
-}
-
-
-/**
- * gabble_muc_channel_provide_password
- *
- * Implements D-Bus method ProvidePassword
- * on interface org.freedesktop.Telepathy.Channel.Interface.Password
- *
- * @context: The D-Bus invocation context to use to return values
- *           or throw an error.
- */
-void
-gabble_muc_channel_provide_password (GabbleMucChannel *self,
-                                     const gchar *password,
-                                     DBusGMethodInvocation *context)
-{
-  GError *error = NULL;
-  GabbleMucChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (self));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (self);
-
-  if ((priv->password_flags & TP_CHANNEL_PASSWORD_FLAG_PROVIDE) == 0 ||
-      priv->password_ctx != NULL)
-    {
-      error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-                           "password cannot be provided in the current state");
-      dbus_g_method_return_error (context, error);
-      g_error_free (error);
-
-      return;
-    }
-
-  if (!send_join_request (self, password, &error))
-    {
-      dbus_g_method_return_error (context, error);
-      g_error_free (error);
-
-      return;
-    }
-
-  priv->password_ctx = context;
-}
-
-
-/**
- * gabble_muc_channel_remove_members
- *
- * Implements D-Bus method RemoveMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean gabble_muc_channel_remove_members (GabbleMucChannel *obj, const GArray * contacts, const gchar * message, GError **error)
-{
-  return gabble_group_mixin_remove_members (G_OBJECT (obj), contacts, message, error);
-}
-
-/**
- * gabble_muc_channel_send
- *
- * Implements D-Bus method Send
- * on interface org.freedesktop.Telepathy.Channel.Type.Text
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_send (GabbleMucChannel *self,
-                         guint type,
-                         const gchar *text,
-                         GError **error)
-{
-  GabbleMucChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_MUC_CHANNEL (self));
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (self);
-
-  return gabble_text_mixin_send (G_OBJECT (self), type,
-      LM_MESSAGE_SUB_TYPE_GROUPCHAT, priv->jid, text, priv->conn,
-      FALSE /* emit_signal */, error);
-}
-
-
-static gboolean
-gabble_muc_channel_add_member (GObject *obj, GabbleHandle handle, const gchar *message, GError **error)
-{
-  GabbleMucChannelPrivate *priv;
-  GabbleGroupMixin *mixin;
-  const gchar *jid;
-  LmMessage *msg;
-  LmMessageNode *x_node, *invite_node;
-  gboolean result;
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (GABBLE_MUC_CHANNEL (obj));
-
-  mixin = GABBLE_GROUP_MIXIN (obj);
-
-  if (handle == mixin->self_handle)
-    {
-      GIntSet *set_empty, *set_members, *set_pending;
-      GArray *arr_members;
-
-      /* are we already a member or in remote pending? */
-      if (handle_set_is_member (mixin->members, handle) ||
-          handle_set_is_member (mixin->remote_pending, handle))
-        {
-          g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-              "already a member or in remote pending");
-
-          return FALSE;
-        }
-
-      /* add ourself to remote pending and remove the inviter's
-       * main jid from the member list */
-      set_empty = g_intset_new ();
-      set_members = g_intset_new ();
-      set_pending = g_intset_new ();
-
-      arr_members = handle_set_to_array (mixin->members);
-      if (arr_members->len > 0)
-        {
-          g_intset_add (set_members, g_array_index (arr_members, guint32, 0));
-        }
-      g_array_free (arr_members, TRUE);
-
-      g_intset_add (set_pending, handle);
-
-      gabble_group_mixin_change_members (obj, "", set_empty, set_members,
-                                         set_empty, set_pending, 0,
-                                         TP_CHANNEL_GROUP_CHANGE_REASON_INVITED);
-
-      g_intset_destroy (set_empty);
-      g_intset_destroy (set_members);
-      g_intset_destroy (set_pending);
-
-      /* seek to enter the room */
-      result = send_join_request (GABBLE_MUC_CHANNEL (obj), NULL, error);
-
-      g_object_set (obj, "state",
-                    (result) ? MUC_STATE_INITIATED : MUC_STATE_ENDED,
-                    NULL);
-
-      /* deny adding */
-      gabble_group_mixin_change_flags (obj, 0, TP_CHANNEL_GROUP_FLAG_CAN_ADD);
-
-      /* clear message queue (which might contain an invite reason) */
-      gabble_text_mixin_clear (G_OBJECT (obj));
-
-      return result;
-    }
-
-  /* check that we're indeed a member when attempting to invite others */
-  if (priv->state < MUC_STATE_JOINED)
-    {
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "channel membership is required for inviting others");
-
-      return FALSE;
-    }
-
-  msg = lm_message_new (priv->jid, LM_MESSAGE_TYPE_MESSAGE);
-
-  x_node = lm_message_node_add_child (msg->node, "x", NULL);
-  lm_message_node_set_attribute (x_node, "xmlns", NS_MUC_USER);
-
-  invite_node = lm_message_node_add_child (x_node, "invite", NULL);
-
-  jid = gabble_handle_inspect (GABBLE_GROUP_MIXIN (obj)->handle_repo,
-                               TP_HANDLE_TYPE_CONTACT, handle);
-
-  lm_message_node_set_attribute (invite_node, "to", jid);
-
-  if (*message != '\0')
-    {
-      lm_message_node_add_child (invite_node, "reason", message);
-    }
-
-  NODE_DEBUG (msg->node, "sending MUC invitation");
-
-  result = _gabble_connection_send (priv->conn, msg, error);
-  lm_message_unref (msg);
-
-  return result;
-}
-
-static LmHandlerResult
-kick_request_reply_cb (GabbleConnection *conn, LmMessage *sent_msg,
-                       LmMessage *reply_msg, GObject *object,
-                       gpointer user_data)
-{
-  const gchar *jid = user_data;
-
-  if (lm_message_get_sub_type (reply_msg) != LM_MESSAGE_SUB_TYPE_RESULT)
-    {
-      g_warning ("%s: Failed to kick user %s from room", G_STRFUNC, jid);
-    }
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static gboolean
-gabble_muc_channel_remove_member (GObject *obj, GabbleHandle handle, const gchar *message, GError **error)
-{
-  GabbleMucChannelPrivate *priv;
-  LmMessage *msg;
-  LmMessageNode *query_node, *item_node;
-  const gchar *jid;
-  gchar *nick;
-  gboolean result;
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (GABBLE_MUC_CHANNEL (obj));
-
-  msg = lm_message_new_with_sub_type (priv->jid, LM_MESSAGE_TYPE_IQ,
-                                      LM_MESSAGE_SUB_TYPE_SET);
-
-  query_node = lm_message_node_add_child (msg->node, "query", NULL);
-  lm_message_node_set_attribute (query_node, "xmlns", NS_MUC_ADMIN);
-
-  item_node = lm_message_node_add_child (query_node, "item", NULL);
-
-  jid = gabble_handle_inspect (GABBLE_GROUP_MIXIN (obj)->handle_repo,
-                               TP_HANDLE_TYPE_CONTACT, handle);
-
-  gabble_decode_jid (jid, NULL, NULL, &nick);
-
-  lm_message_node_set_attributes (item_node,
-                                  "nick", nick,
-                                  "role", "none",
-                                  NULL);
-
-  g_free (nick);
-
-  if (*message != '\0')
-    {
-      lm_message_node_add_child (item_node, "reason", message);
-    }
-
-  NODE_DEBUG (msg->node, "sending MUC kick request");
-
-  result = _gabble_connection_send_with_reply (priv->conn, msg,
-                                               kick_request_reply_cb,
-                                               obj, (gpointer) jid,
-                                               error);
-
-  lm_message_unref (msg);
-
-  return result;
-}
-
-
-/**
- * gabble_muc_channel_list_properties
- *
- * Implements D-Bus method ListProperties
- * on interface org.freedesktop.Telepathy.Properties
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_list_properties (GabbleMucChannel *self,
-                                    GPtrArray **ret,
-                                    GError **error)
-{
-  return gabble_properties_mixin_list_properties (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_muc_channel_get_properties
- *
- * Implements D-Bus method GetProperties
- * on interface org.freedesktop.Telepathy.Properties
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_muc_channel_get_properties (GabbleMucChannel *self,
-                                   const GArray *properties,
-                                   GPtrArray **ret,
-                                   GError **error)
-{
-  return gabble_properties_mixin_get_properties (G_OBJECT (self), properties,
-      ret, error);
-}
-
-/**
- * gabble_muc_channel_set_properties
- *
- * Implements D-Bus method SetProperties
- * on interface org.freedesktop.Telepathy.Properties
- *
- * @context: The D-Bus invocation context to use to return values
- *           or throw an error.
- */
-void
-gabble_muc_channel_set_properties (GabbleMucChannel *self,
-                                   const GPtrArray *properties,
-                                   DBusGMethodInvocation *context)
-{
-  gabble_properties_mixin_set_properties (G_OBJECT (self), properties,
-      context);
-}
-
-static LmHandlerResult request_config_form_reply_cb (GabbleConnection *conn, LmMessage *sent_msg, LmMessage *reply_msg, GObject *object, gpointer user_data);
-
-static gboolean
-gabble_muc_channel_do_set_properties (GObject *obj, GabblePropertiesContext *ctx, GError **error)
-{
-  GabbleMucChannelPrivate *priv;
-  LmMessage *msg;
-  LmMessageNode *node;
-  gboolean success;
-
-  priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (GABBLE_MUC_CHANNEL (obj));
-
-  g_assert (priv->properties_ctx == NULL);
-
-  /* Changing subject? */
-  if (gabble_properties_context_has (ctx, ROOM_PROP_SUBJECT))
-    {
-      const gchar *str;
-
-      str = g_value_get_string (gabble_properties_context_get (ctx, ROOM_PROP_SUBJECT));
-
-      msg = lm_message_new_with_sub_type (priv->jid,
-          LM_MESSAGE_TYPE_MESSAGE, LM_MESSAGE_SUB_TYPE_GROUPCHAT);
-      lm_message_node_add_child (msg->node, "subject", str);
-
-      success = _gabble_connection_send (priv->conn, msg, error);
-
-      lm_message_unref (msg);
-
-      if (!success)
-        return FALSE;
-    }
-
-  /* Changing any other properties? */
-  if (gabble_properties_context_has_other_than (ctx, ROOM_PROP_SUBJECT))
-    {
-      msg = lm_message_new_with_sub_type (priv->jid,
-          LM_MESSAGE_TYPE_IQ, LM_MESSAGE_SUB_TYPE_GET);
-      node = lm_message_node_add_child (msg->node, "query", NULL);
-      lm_message_node_set_attribute (node, "xmlns", NS_MUC_OWNER);
-
-      success = _gabble_connection_send_with_reply (priv->conn, msg,
-          request_config_form_reply_cb, G_OBJECT (obj), NULL,
-          error);
-
-      lm_message_unref (msg);
-
-      if (!success)
-        return FALSE;
-    }
-
-  priv->properties_ctx = ctx;
-
-  return TRUE;
-}
-
-static LmHandlerResult request_config_form_submit_reply_cb (GabbleConnection *conn, LmMessage *sent_msg, LmMessage *reply_msg, GObject *object, gpointer user_data);
-
-static LmHandlerResult
-request_config_form_reply_cb (GabbleConnection *conn, LmMessage *sent_msg,
-                              LmMessage *reply_msg, GObject *object,
-                              gpointer user_data)
-{
-  GabbleMucChannel *chan = GABBLE_MUC_CHANNEL (object);
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-  GabblePropertiesContext *ctx = priv->properties_ctx;
-  GError *error = NULL;
-  LmMessage *msg = NULL;
-  LmMessageNode *submit_node, *form_node, *node, *query_node;
-  guint i, props_left;
-
-  if (lm_message_get_sub_type (reply_msg) != LM_MESSAGE_SUB_TYPE_RESULT)
-    {
-      error = g_error_new (TELEPATHY_ERRORS, PermissionDenied,
-                           "request for configuration form denied");
-
-      goto OUT;
-    }
-
-  form_node = config_form_get_form_node (reply_msg);
-  if (form_node == NULL)
-    goto PARSE_ERROR;
-
-  /* initialize */
-  msg = lm_message_new_with_sub_type (priv->jid, LM_MESSAGE_TYPE_IQ,
-                                      LM_MESSAGE_SUB_TYPE_SET);
-
-  node = lm_message_node_add_child (msg->node, "query", NULL);
-  lm_message_node_set_attribute (node, "xmlns", NS_MUC_OWNER);
-
-  submit_node = lm_message_node_add_child (node, "x", NULL);
-  lm_message_node_set_attributes (submit_node,
-                                  "xmlns", NS_X_DATA,
-                                  "type", "submit",
-                                  NULL);
-
-  /* find the query node */
-  query_node = lm_message_node_get_child (reply_msg->node, "query");
-  if (query_node == NULL)
-    goto PARSE_ERROR;
-
-  /* then the form node */
-  form_node = NULL;
-  for (node = query_node->children; node; node = node->next)
-    {
-      if (strcmp (node->name, "x") == 0)
-        {
-          const gchar *type = lm_message_node_get_attribute (node, "type");
-
-          if (!lm_message_node_has_namespace (node, NS_X_DATA, NULL))
-            continue;
-
-          if (g_strdiff (type, "form"))
-            continue;
-
-          form_node = node;
-          break;
-        }
-    }
-
-  if (form_node == NULL)
-    goto PARSE_ERROR;
-
-  props_left = 0;
-  for (i = 0; i < NUM_ROOM_PROPS; i++)
-    {
-      if (i == ROOM_PROP_SUBJECT)
-        continue;
-
-      if (gabble_properties_context_has (ctx, i))
-        props_left |= 1 << i;
-    }
-
-  for (node = form_node->children; node; node = node->next)
-    {
-      const gchar *var, *prev_value;
-      LmMessageNode *field_node, *value_node;
-      guint id;
-      GType type;
-      gboolean invert;
-      gchar buf[16];
-      const gchar *val_str;
-      gboolean val_bool;
-
-      if (strcmp (node->name, "field") != 0)
-        {
-          gabble_debug (DEBUG_FLAG, "skipping node '%s'", node->name);
-          continue;
-        }
-
-      var = lm_message_node_get_attribute (node, "var");
-      if (var == NULL) {
-        gabble_debug (DEBUG_FLAG, "skipping node '%s' because of lacking var attribute",
-               node->name);
-        continue;
-      }
-
-      value_node = lm_message_node_get_child (node, "value");
-      if (value_node == NULL)
-        {
-          gabble_debug (DEBUG_FLAG, "skipping var '%s' because of lacking value attribute",
-                 var);
-          continue;
-        }
-
-      prev_value = lm_message_node_get_value (value_node);
-
-      /* add the corresponding field node to the reply message */
-      field_node = lm_message_node_add_child (submit_node, "field", NULL);
-
-      lm_message_node_set_attribute (field_node, "var", var);
-
-      val_str = lm_message_node_get_attribute (node, "type");
-      if (val_str)
-        {
-          lm_message_node_set_attribute (field_node, "type", val_str);
-        }
-
-      value_node = lm_message_node_add_child (field_node, "value", prev_value);
-
-      id = INVALID_ROOM_PROP;
-      type = G_TYPE_BOOLEAN;
-      invert = FALSE;
-      val_str = NULL;
-
-      if (strcmp (var, "anonymous") == 0)
-        {
-          id = ROOM_PROP_ANONYMOUS;
-        }
-      else if (strcmp (var, "muc#roomconfig_whois") == 0)
-        {
-          id = ROOM_PROP_ANONYMOUS;
-
-          if (gabble_properties_context_has (ctx, id))
-            {
-              val_bool = g_value_get_boolean (
-                  gabble_properties_context_get (ctx, id));
-              val_str = (val_bool) ? "moderators" : "anyone";
-            }
-        }
-      else if (strcmp (var, "muc#owner_whois") == 0)
-        {
-          id = ROOM_PROP_ANONYMOUS;
-
-          if (gabble_properties_context_has (ctx, id))
-            {
-              val_bool = g_value_get_boolean (
-                  gabble_properties_context_get (ctx, id));
-              val_str = (val_bool) ? "admins" : "anyone";
-            }
-        }
-      else if (strcmp (var, "members_only") == 0 ||
-               strcmp (var, "muc#roomconfig_membersonly") == 0 ||
-               strcmp (var, "muc#owner_inviteonly") == 0)
-        {
-          id = ROOM_PROP_INVITE_ONLY;
-        }
-      else if (strcmp (var, "moderated") == 0 ||
-               strcmp (var, "muc#roomconfig_moderatedroom") == 0 ||
-               strcmp (var, "muc#owner_moderatedroom") == 0)
-        {
-          id = ROOM_PROP_MODERATED;
-        }
-      else if (strcmp (var, "title") == 0 ||
-               strcmp (var, "muc#roomconfig_roomname") == 0 ||
-               strcmp (var, "muc#owner_roomname") == 0)
-        {
-          id = ROOM_PROP_NAME;
-          type = G_TYPE_STRING;
-        }
-      else if (strcmp (var, "muc#roomconfig_roomdesc") == 0 ||
-               strcmp (var, "muc#owner_roomdesc") == 0)
-        {
-          id = ROOM_PROP_DESCRIPTION;
-          type = G_TYPE_STRING;
-        }
-      else if (strcmp (var, "password") == 0 ||
-               strcmp (var, "muc#roomconfig_roomsecret") == 0 ||
-               strcmp (var, "muc#owner_roomsecret") == 0)
-        {
-          id = ROOM_PROP_PASSWORD;
-          type = G_TYPE_STRING;
-        }
-      else if (strcmp (var, "password_protected") == 0 ||
-               strcmp (var, "muc#roomconfig_passwordprotectedroom") == 0 ||
-               strcmp (var, "muc#owner_passwordprotectedroom") == 0)
-        {
-          id = ROOM_PROP_PASSWORD_REQUIRED;
-        }
-      else if (strcmp (var, "persistent") == 0 ||
-               strcmp (var, "muc#roomconfig_persistentroom") == 0 ||
-               strcmp (var, "muc#owner_persistentroom") == 0)
-        {
-          id = ROOM_PROP_PERSISTENT;
-        }
-      else if (strcmp (var, "public") == 0 ||
-               strcmp (var, "muc#roomconfig_publicroom") == 0 ||
-               strcmp (var, "muc#owner_publicroom") == 0)
-        {
-          id = ROOM_PROP_PRIVATE;
-          invert = TRUE;
-        }
-      else
-        {
-          g_warning ("%s: ignoring field '%s'", G_STRFUNC, var);
-          continue;
-        }
-
-      gabble_debug (DEBUG_FLAG, "looking up %s", room_property_signatures[id].name);
-
-      if (!gabble_properties_context_has (ctx, id))
-        continue;
-
-      if (!val_str)
-        {
-          const GValue *provided_value;
-
-          provided_value = gabble_properties_context_get (ctx, id);
-
-          switch (type) {
-            case G_TYPE_BOOLEAN:
-              val_bool = g_value_get_boolean (provided_value);
-              sprintf (buf, "%d", (invert) ? !val_bool : val_bool);
-              val_str = buf;
-              break;
-            case G_TYPE_STRING:
-              val_str = g_value_get_string (provided_value);
-              break;
-            default:
-              g_assert_not_reached ();
-          }
-        }
-
-      lm_message_node_set_value (value_node, val_str);
-
-      props_left &= ~(1 << id);
-    }
-
-  if (props_left != 0)
-    {
-      g_message (ANSI_BOLD_ON ANSI_FG_WHITE ANSI_BG_RED
-              "\n%s: the following properties were not substituted:\n",
-              G_STRFUNC);
-
-      for (i = 0; i < NUM_ROOM_PROPS; i++)
-        {
-          if ((props_left & (1 << i)) != 0)
-            {
-              g_message ("  %s\n", room_property_signatures[i].name);
-            }
-        }
-
-      g_message ("\nthis is a MUC server compatibility bug in gabble, please "
-              "report it with a full debug log attached (running gabble "
-              "with LM_DEBUG=net)" ANSI_RESET "\n\n");
-      fflush (stdout);
-
-      error = g_error_new (TELEPATHY_ERRORS, InvalidArgument,
-                           "not all properties were substituted");
-      goto OUT;
-    }
-
-  _gabble_connection_send_with_reply (priv->conn, msg,
-      request_config_form_submit_reply_cb, G_OBJECT (object),
-      NULL, &error);
-
-  goto OUT;
-
-PARSE_ERROR:
-  error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-                       "error parsing reply from server");
-
-OUT:
-  if (error)
-    {
-      gabble_properties_context_return (ctx, error);
-      priv->properties_ctx = NULL;
-    }
-
-  if (msg)
-    lm_message_unref (msg);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static LmHandlerResult
-request_config_form_submit_reply_cb (GabbleConnection *conn, LmMessage *sent_msg,
-                                     LmMessage *reply_msg, GObject *object,
-                                     gpointer user_data)
-{
-  GabbleMucChannel *chan = GABBLE_MUC_CHANNEL (object);
-  GabbleMucChannelPrivate *priv = GABBLE_MUC_CHANNEL_GET_PRIVATE (chan);
-  GabblePropertiesContext *ctx = priv->properties_ctx;
-  GError *error = NULL;
-  gboolean returned;
-
-  if (lm_message_get_sub_type (reply_msg) != LM_MESSAGE_SUB_TYPE_RESULT)
-    {
-      error = g_error_new (TELEPATHY_ERRORS, PermissionDenied,
-                           "submitted configuration form was rejected");
-    }
-
-  if (!error)
-    {
-      guint i;
-
-      for (i = 0; i < NUM_ROOM_PROPS; i++)
-        {
-          if (i != ROOM_PROP_SUBJECT)
-            gabble_properties_context_remove (ctx, i);
-        }
-
-      returned = gabble_properties_context_return_if_done (ctx);
-    }
-  else
-    {
-      gabble_properties_context_return (ctx, error);
-      returned = TRUE;
-
-      /* Get the properties into a consistent state. */
-      room_properties_update (chan);
-    }
-
-  if (returned)
-    priv->properties_ctx = NULL;
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
--- a/telepathygabble/src/gabble-presence-cache-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/*
- * gabble-presence-cache-signals-marshal.c - Source for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:UINT,UINT,UINT (gabble-presence-cache-signals-marshal.list:1) */
-void
-gabble_presence_cache_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
-                                                    GValue       *return_value,
-                                                    guint         n_param_values,
-                                                    const GValue *param_values,
-                                                    gpointer      invocation_hint,
-                                                    gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT) (gpointer     data1,
-                                                     guint        arg_1,
-                                                     guint        arg_2,
-                                                     guint        arg_3,
-                                                     gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_uint (param_values + 3),
-            data2);
-}
-
--- a/telepathygabble/src/gabble-presence-cache.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1267 +0,0 @@
-/*
- * gabble-presence-cache.c - Gabble's contact presence cache
- * Copyright (C) 2005 Collabora Ltd.
- *  and/or its subsidiaries. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "debug.h"
-#include "disco.h" /* \o\ \o/ /o/ */
-#include "gabble-presence.h"
-#include "namespaces.h"
-#include "util.h"
-#include "handle-set.h"
-#include "gintset.h"
-
-#include "gabble-presence-cache.h"
-
-#include "gabble-presence-cache-signals-marshal.h"
-
-#include "gabble_enums.h"
-
-#ifndef EMULATOR
-G_DEFINE_TYPE (GabblePresenceCache, gabble_presence_cache, G_TYPE_OBJECT);
-#endif
-
-/* when five DIFFERENT guys report the same caps for a given bundle, it'll be enough */
-#define CAPABILITY_BUNDLE_ENOUGH_TRUST 5
-#define DEBUG_FLAG GABBLE_DEBUG_PRESENCE
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-/* properties */
-enum
-{
-  PROP_CONNECTION = 1,
-  LAST_PROPERTY
-};
-
-/* signal enum */
-enum
-{
-  PRESENCE_UPDATE,
-  NICKNAME_UPDATE,
-  CAPABILITIES_UPDATE,
-  LAST_SIGNAL 
-#ifdef EMULATOR  
-  = LAST_SIGNAL_PRE_CACHE
-#endif
-  
-};
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_pre_cache,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_pre_cache, s)())
-	
-    GET_STATIC_VAR_FROM_TLS(gabble_presence_cache_parent_class,gabble_pre_cache,gpointer)
-	#define gabble_presence_cache_parent_class (*GET_WSD_VAR_NAME(gabble_presence_cache_parent_class,gabble_pre_cache,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_pre_cache,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_pre_cache,s)())
-
-		
-static void gabble_presence_cache_init (GabblePresenceCache *self); 
-static void gabble_presence_cache_class_init (GabblePresenceCacheClass *klass);
-static void gabble_presence_cache_class_intern_init (gpointer klass)
- { 
- gabble_presence_cache_parent_class = g_type_class_peek_parent (klass); 
- gabble_presence_cache_class_init ((GabblePresenceCacheClass*) klass);
- } 
- EXPORT_C GType gabble_presence_cache_get_type (void) 
- { 
- if ((g_define_type_id == 0))
- 	{ static const GTypeInfo g_define_type_info = { sizeof (GabblePresenceCacheClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_presence_cache_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabblePresenceCache), 0, (GInstanceInitFunc) gabble_presence_cache_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabblePresenceCache"), &g_define_type_info, (GTypeFlags) 0); { {} ; } } return g_define_type_id; 
- };
-	
-		
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif
-
-
-#define GABBLE_PRESENCE_CACHE_PRIV(account) ((GabblePresenceCachePrivate *)account->priv)
-
-typedef struct _GabblePresenceCachePrivate GabblePresenceCachePrivate;
-
-struct _GabblePresenceCachePrivate
-{
-  GabbleConnection *conn;
-
-  gulong status_changed_cb;
-  LmMessageHandler *lm_message_cb;
-
-  GHashTable *presence;
-  GabbleHandleSet *presence_handles;
-
-  GHashTable *capabilities;
-  GHashTable *disco_pending;
-  guint caps_serial;
-
-  gboolean dispose_has_run;
-};
-
-typedef struct _DiscoWaiter DiscoWaiter;
-
-struct _DiscoWaiter
-{
-  GabbleHandleRepo *repo;
-  GabbleHandle handle;
-  gchar *resource;
-  guint serial;
-  gboolean disco_requested;
-};
-
-/**
- * disco_waiter_new ()
- */
-static DiscoWaiter *
-disco_waiter_new (GabbleHandleRepo *repo, GabbleHandle handle, const gchar *resource, guint serial)
-{
-  DiscoWaiter *waiter;
-
-  g_assert (repo);
-  gabble_handle_ref (repo, TP_HANDLE_TYPE_CONTACT, handle);
-
-  waiter = g_new0 (DiscoWaiter, 1);
-  waiter->repo = repo;
-  waiter->handle = handle;
-  waiter->resource = g_strdup (resource);
-  waiter->serial = serial;
-
-  gabble_debug (DEBUG_FLAG, "created waiter %p for handle %u with serial %u", waiter, handle, serial);
-
-  return waiter;
-}
-
-static void
-disco_waiter_free (DiscoWaiter *waiter)
-{
-  g_assert (NULL != waiter);
-
-  gabble_debug (DEBUG_FLAG, "freeing waiter %p for handle %u with serial %u", waiter, waiter->handle, waiter->serial);
-
-  gabble_handle_unref (waiter->repo, TP_HANDLE_TYPE_CONTACT, waiter->handle);
-
-  g_free (waiter->resource);
-  g_free (waiter);
-}
-
-static void
-disco_waiter_list_free (GSList *list)
-{
-  GSList *i;
-
-  gabble_debug (DEBUG_FLAG, "list %p", list);
-
-  for (i = list; NULL != i; i = i->next)
-    disco_waiter_free ((DiscoWaiter *) i->data);
-
-  g_slist_free (list);
-}
-
-static guint
-disco_waiter_list_get_request_count (GSList *list)
-{
-  guint c = 0;
-  GSList *i;
-
-  for (i = list; i; i = i->next)
-    {
-      DiscoWaiter *waiter = (DiscoWaiter *) i->data;
-
-      if (waiter->disco_requested)
-        c++;
-    }
-
-  return c;
-}
-
-typedef struct _CapabilityInfo CapabilityInfo;
-
-struct _CapabilityInfo
-{
-  GabblePresenceCapabilities caps;
-  GIntSet *guys;
-  guint trust;
-};
-
-static CapabilityInfo *
-capability_info_get (GabblePresenceCache *cache, const gchar *node,
-    GabblePresenceCapabilities caps)
-{
-  GabblePresenceCachePrivate *priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-  CapabilityInfo *info = g_hash_table_lookup (priv->capabilities, node);
-
-  if (NULL == info)
-    {
-      info = g_new0 (CapabilityInfo, 1);
-      info->caps = caps;
-      info->guys = g_intset_new ();
-      g_hash_table_insert (priv->capabilities, g_strdup (node), info);
-    }
-
-  return info;
-}
-
-static guint
-capability_info_recvd (GabblePresenceCache *cache, const gchar *node,
-        GabbleHandle handle, GabblePresenceCapabilities caps)
-{
-  CapabilityInfo *info = capability_info_get (cache, node, caps);
-
-  /* Detect inconsistency in reported caps */
-  if (info->caps != caps)
-    {
-      g_intset_clear (info->guys);
-      info->caps = caps;
-      info->trust = 0;
-    }
-
-  if (!g_intset_is_member (info->guys, handle))
-    {
-      g_intset_add (info->guys, handle);
-      info->trust++;
-    }
-
-  return info->trust;
-}
-
-static void gabble_presence_cache_init (GabblePresenceCache *presence_cache);
-static GObject * gabble_presence_cache_constructor (GType type, guint n_props,
-    GObjectConstructParam *props);
-static void gabble_presence_cache_dispose (GObject *object);
-static void gabble_presence_cache_finalize (GObject *object);
-static void gabble_presence_cache_set_property (GObject *object, guint
-    property_id, const GValue *value, GParamSpec *pspec);
-static void gabble_presence_cache_get_property (GObject *object, guint
-    property_id, GValue *value, GParamSpec *pspec);
-static GabblePresence *_cache_insert (GabblePresenceCache *cache,
-    GabbleHandle handle);
-
-static void gabble_presence_cache_status_changed_cb (GabbleConnection *,
-    TpConnectionStatus, TpConnectionStatusReason, gpointer);
-static LmHandlerResult gabble_presence_cache_lm_message_cb (LmMessageHandler*,
-    LmConnection*, LmMessage*, gpointer);
-
-static void
-gabble_presence_cache_class_init (GabblePresenceCacheClass *klass)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (object_class, sizeof (GabblePresenceCachePrivate));
-
-  object_class->constructor = gabble_presence_cache_constructor;
-
-  object_class->dispose = gabble_presence_cache_dispose;
-  object_class->finalize = gabble_presence_cache_finalize;
-
-  object_class->get_property = gabble_presence_cache_get_property;
-  object_class->set_property = gabble_presence_cache_set_property;
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "presence cache.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class,
-                                   PROP_CONNECTION,
-                                   param_spec);
-
-  signals[PRESENCE_UPDATE] = g_signal_new (
-    "presence-update",
-    G_TYPE_FROM_CLASS (klass),
-    G_SIGNAL_RUN_LAST,
-    0,
-    NULL, NULL,
-    g_cclosure_marshal_VOID__UINT, G_TYPE_NONE, 1, G_TYPE_UINT);
-  signals[NICKNAME_UPDATE] = g_signal_new (
-    "nickname-update",
-    G_TYPE_FROM_CLASS (klass),
-    G_SIGNAL_RUN_LAST,
-    0,
-    NULL, NULL,
-    g_cclosure_marshal_VOID__UINT, G_TYPE_NONE, 1, G_TYPE_UINT);
-  signals[CAPABILITIES_UPDATE] = g_signal_new (
-    "capabilities-update",
-    G_TYPE_FROM_CLASS (klass),
-    G_SIGNAL_RUN_LAST,
-    0,
-    NULL, NULL,
-    gabble_presence_cache_marshal_VOID__UINT_UINT_UINT, G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
-}
-
-static void
-gabble_presence_cache_init (GabblePresenceCache *cache)
-{
-  GabblePresenceCachePrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (cache,
-      GABBLE_TYPE_PRESENCE_CACHE, GabblePresenceCachePrivate);
-
-  cache->priv = priv;
-
-  priv->presence = g_hash_table_new_full (NULL, NULL, NULL, g_object_unref);
-  priv->capabilities = g_hash_table_new (g_str_hash, g_str_equal);
-  priv->disco_pending = g_hash_table_new_full (g_str_hash, g_str_equal,
-    g_free, (GDestroyNotify) disco_waiter_list_free);
-  priv->caps_serial = 1;
-}
-
-static GObject *
-gabble_presence_cache_constructor (GType type, guint n_props,
-                                   GObjectConstructParam *props)
-{
-  GObject *obj;
-  GabblePresenceCachePrivate *priv;
-
-  obj = G_OBJECT_CLASS (gabble_presence_cache_parent_class)->
-           constructor (type, n_props, props);
-  priv = GABBLE_PRESENCE_CACHE_PRIV (GABBLE_PRESENCE_CACHE (obj));
-
-  priv->status_changed_cb = g_signal_connect (priv->conn, "status-changed",
-      G_CALLBACK (gabble_presence_cache_status_changed_cb), obj);
-
-  return obj;
-}
-
-static void
-gabble_presence_cache_dispose (GObject *object)
-{
-  GabblePresenceCache *self = GABBLE_PRESENCE_CACHE (object);
-  GabblePresenceCachePrivate *priv = GABBLE_PRESENCE_CACHE_PRIV (self);
-
-  if (priv->dispose_has_run)
-    return;
-
-  gabble_debug (DEBUG_FLAG, "dispose called");
-
-  priv->dispose_has_run = TRUE;
-
-  g_assert (priv->lm_message_cb == NULL);
-
-  g_signal_handler_disconnect (priv->conn, priv->status_changed_cb);
-
-  g_hash_table_destroy (priv->presence);
-  priv->presence = NULL;
-
-  handle_set_destroy (priv->presence_handles);
-  priv->presence_handles = NULL;
-
-  if (G_OBJECT_CLASS (gabble_presence_cache_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_presence_cache_parent_class)->dispose (object);
-}
-
-static void
-gabble_presence_cache_finalize (GObject *object)
-{
-  gabble_debug (DEBUG_FLAG, "called with %p", object);
-
-  G_OBJECT_CLASS (gabble_presence_cache_parent_class)->finalize (object);
-}
-
-static void
-gabble_presence_cache_get_property (GObject    *object,
-                                    guint       property_id,
-                                    GValue     *value,
-                                    GParamSpec *pspec)
-{
-  GabblePresenceCache *cache = GABBLE_PRESENCE_CACHE (object);
-  GabblePresenceCachePrivate *priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_presence_cache_set_property (GObject     *object,
-                                    guint        property_id,
-                                    const GValue *value,
-                                    GParamSpec   *pspec)
-{
-  GabblePresenceCache *cache = GABBLE_PRESENCE_CACHE (object);
-  GabblePresenceCachePrivate *priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-  GabbleHandleSet *new_presence_handles;
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      new_presence_handles = handle_set_new (priv->conn->handles, TP_HANDLE_TYPE_CONTACT);
-
-      if (priv->presence_handles)
-        {
-          const GIntSet *add;
-          GIntSet *tmp;
-          add = handle_set_peek (priv->presence_handles);
-          tmp = handle_set_update (new_presence_handles, add);
-          handle_set_destroy (priv->presence_handles);
-          g_intset_destroy (tmp);
-        }
-      priv->presence_handles = new_presence_handles;
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-#if 0
-static gboolean
-_presence_node_has_google_voice (LmMessageNode *pres_node)
-{
-  LmMessageNode *node;
-  const gchar *cap_ext;
-  gchar **features, **tmp;
-  gboolean found = FALSE;
-
-  node = lm_message_node_get_child_with_namespace (pres_node, "c", NS_CAPS);
-
-  if (node == NULL);
-    return FALSE;
-
-  cap_ext = lm_message_node_get_attribute (node, "ext");
-
-  if (cap_ext == NULL);
-    return FALSE;
-
-  features = g_strsplit (cap_ext, " ", 0);
-
-  for (tmp = features; *tmp; tmp++)
-    {
-      if (!g_strdiff (tmp, "voice-v1"))
-        {
-          found = TRUE;
-          break;
-        }
-    }
-
-  g_strfreev (features);
-
-  return found;
-}
-#endif
-
-static void
-gabble_presence_cache_status_changed_cb (GabbleConnection *conn,
-                                         TpConnectionStatus status,
-                                         TpConnectionStatusReason reason,
-                                         gpointer data)
-{
-  GabblePresenceCache *cache = GABBLE_PRESENCE_CACHE (data);
-  GabblePresenceCachePrivate *priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-
-  g_assert (conn == priv->conn);
-
-  switch (status)
-    {
-    case TP_CONN_STATUS_CONNECTING:
-      g_assert (priv->lm_message_cb == NULL);
-
-      priv->lm_message_cb = lm_message_handler_new (gabble_presence_cache_lm_message_cb,
-                                                    cache, NULL);
-      lm_connection_register_message_handler (priv->conn->lmconn,
-                                              priv->lm_message_cb,
-                                              LM_MESSAGE_TYPE_PRESENCE,
-                                              LM_HANDLER_PRIORITY_LAST);
-      lm_connection_register_message_handler (priv->conn->lmconn,
-                                              priv->lm_message_cb,
-                                              LM_MESSAGE_TYPE_MESSAGE,
-                                              LM_HANDLER_PRIORITY_FIRST);
-      break;
-    case TP_CONN_STATUS_CONNECTED:
-      /* TODO: emit self presence */
-      break;
-    case TP_CONN_STATUS_DISCONNECTED:
-      g_assert (priv->lm_message_cb != NULL);
-
-      lm_connection_unregister_message_handler (conn->lmconn,
-                                                priv->lm_message_cb,
-                                                LM_MESSAGE_TYPE_PRESENCE);
-      lm_connection_unregister_message_handler (conn->lmconn,
-                                                priv->lm_message_cb,
-                                                LM_MESSAGE_TYPE_MESSAGE);
-      lm_message_handler_unref (priv->lm_message_cb);
-      priv->lm_message_cb = NULL;
-      break;
-    default:
-      g_assert_not_reached ();
-    }
-}
-
-static GabblePresenceId
-_presence_node_get_status (LmMessageNode *pres_node)
-{
-  const gchar *presence_show;
-  LmMessageNode *child_node = lm_message_node_get_child (pres_node, "show");
-
-  if (!child_node)
-    {
-      /*
-      NODE_DEBUG (pres_node,
-        "<presence> without <show> received from server, "
-        "setting presence to available");
-      */
-      return GABBLE_PRESENCE_AVAILABLE;
-    }
-
-  presence_show = lm_message_node_get_value (child_node);
-
-  if (!presence_show)
-    {
-      /*
-      NODE_DEBUG (pres_node,
-        "empty <show> tag received from server, "
-        "setting presence to available");
-      */
-      return GABBLE_PRESENCE_AVAILABLE;
-    }
-
-  if (0 == strcmp (presence_show, JABBER_PRESENCE_SHOW_AWAY))
-    return GABBLE_PRESENCE_AWAY;
-  else if (0 == strcmp (presence_show, JABBER_PRESENCE_SHOW_CHAT))
-    return GABBLE_PRESENCE_CHAT;
-  else if (0 == strcmp (presence_show, JABBER_PRESENCE_SHOW_DND))
-    return GABBLE_PRESENCE_DND;
-  else if (0 == strcmp (presence_show, JABBER_PRESENCE_SHOW_XA))
-    return GABBLE_PRESENCE_XA;
-  else
-    {
-       NODE_DEBUG (pres_node,
-        "unrecognised <show/> value received from server, "
-        "setting presence to available");
-      return GABBLE_PRESENCE_AVAILABLE;
-    }
-}
-
-static void
-_grab_nickname (GabblePresenceCache *cache,
-                GabbleHandle handle,
-                const gchar *from,
-                LmMessageNode *node)
-{
-  const gchar *nickname;
-  GabblePresence *presence;
-
-  node = lm_message_node_get_child_with_namespace (node, "nick", NS_NICK);
-
-  if (NULL == node)
-    return;
-
-  presence = gabble_presence_cache_get (cache, handle);
-
-  if (NULL == presence)
-    return;
-
-  nickname = lm_message_node_get_value (node);
-  gabble_debug (DEBUG_FLAG, "got nickname \"%s\" for %s", nickname, from);
-
-  if (g_strdiff (presence->nickname, nickname))
-    {
-      if (NULL != presence->nickname)
-        g_free (presence->nickname);
-
-      presence->nickname = g_strdup (nickname);
-      g_signal_emit (cache, signals[NICKNAME_UPDATE], 0, handle);
-    }
-}
-
-static GSList *
-_extract_cap_bundles (LmMessageNode *lm_node)
-{
-  const gchar *node, *ver, *ext;
-  GSList *uris = NULL;
-  LmMessageNode *cap_node;
-
-  cap_node = lm_message_node_get_child_with_namespace (lm_node, "c", NS_CAPS);
-
-  if (NULL == cap_node)
-    return NULL;
-
-  node = lm_message_node_get_attribute (cap_node, "node");
-
-  if (NULL == node)
-    return NULL;
-
-  ver = lm_message_node_get_attribute (cap_node, "ver");
-
-  if (NULL != ver)
-    uris = g_slist_prepend (uris, g_strdup_printf ("%s#%s", node, ver));
-
-  ext = lm_message_node_get_attribute (cap_node, "ext");
-
-  if (NULL != ext)
-    {
-      gchar **exts, **i;
-
-      exts = g_strsplit (ext, " ", 0);
-
-      for (i = exts; NULL != *i; i++)
-        uris = g_slist_prepend (uris, g_strdup_printf ("%s#%s", node, *i));
-
-      g_strfreev (exts);
-    }
-
-  return uris;
-}
-
-static void
-_caps_disco_cb (GabbleDisco *disco,
-                GabbleDiscoRequest *request,
-                const gchar *jid,
-                const gchar *node,
-                LmMessageNode *query_result,
-                GError *error,
-                gpointer user_data)
-{
-  GSList *waiters, *i;
-  LmMessageNode *child;
-  GabblePresenceCache *cache;
-  GabblePresenceCachePrivate *priv;
-  gchar *full_jid = NULL;
-  GabblePresenceCapabilities caps = 0;
-  guint trust;
-  GabbleHandle handle;
-
-  cache = GABBLE_PRESENCE_CACHE (user_data);
-  priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-
-  if (NULL == node)
-    {
-      g_warning ("got disco response with NULL node, ignoring");
-      return;
-    }
-
-  waiters = g_hash_table_lookup (priv->disco_pending, node);
-
-  if (NULL != error)
-    {
-      DiscoWaiter *waiter = NULL;
-
-      gabble_debug (DEBUG_FLAG, "disco query failed: %s", error->message);
-
-      for (i = waiters; NULL != i; i = i->next)
-        {
-          waiter = (DiscoWaiter *) i->data;
-
-          if (!waiter->disco_requested)
-            {
-              const gchar *jid;
-
-              jid = gabble_handle_inspect (priv->conn->handles,
-                                           TP_HANDLE_TYPE_CONTACT,
-                                           waiter->handle);
-              full_jid = g_strdup_printf ("%s/%s", jid, waiter->resource);
-
-              gabble_disco_request (disco, GABBLE_DISCO_TYPE_INFO, full_jid, node,
-                                    _caps_disco_cb, cache, G_OBJECT(cache), NULL);
-              waiter->disco_requested = TRUE;
-              break;
-            }
-        }
-
-      if (NULL != i)
-        {
-          gabble_debug (DEBUG_FLAG, "sent a retry disco request to %s for URI %s", full_jid, node);
-        }
-      else
-        {
-          gabble_debug (DEBUG_FLAG, "failed to find a suitable candidate to retry disco request for URI %s", node);
-          /* FIXME do something very clever here? */
-          g_hash_table_remove (priv->disco_pending, node);
-        }
-
-      goto OUT;
-    }
-
-  for (child = query_result->children; NULL != child; child = child->next)
-    {
-      const gchar *var;
-
-      if (0 != strcmp (child->name, "feature"))
-        continue;
-
-      var = lm_message_node_get_attribute (child, "var");
-
-      if (NULL == var)
-        continue;
-
-      /* TODO: use a table that equates disco features to caps */
-      if (0 == strcmp (var, NS_GOOGLE_TRANSPORT_P2P))
-        caps |= PRESENCE_CAP_GOOGLE_TRANSPORT_P2P;
-      else if (0 == strcmp (var, NS_GOOGLE_FEAT_VOICE))
-        caps |= PRESENCE_CAP_GOOGLE_VOICE;
-      else if (0 == strcmp (var, NS_JINGLE))
-        caps |= PRESENCE_CAP_JINGLE;
-      else if (0 == strcmp (var, NS_JINGLE_DESCRIPTION_AUDIO))
-        caps |= PRESENCE_CAP_JINGLE_DESCRIPTION_AUDIO;
-      else if (0 == strcmp (var, NS_JINGLE_DESCRIPTION_VIDEO))
-        caps |= PRESENCE_CAP_JINGLE_DESCRIPTION_VIDEO;
-    }
-
-  handle = gabble_handle_for_contact (priv->conn->handles, jid, FALSE);
-  trust = capability_info_recvd (cache, node, handle, caps);
-
-  for (i = waiters; NULL != i;)
-    {
-      DiscoWaiter *waiter;
-      GabblePresence *presence;
-
-      waiter = (DiscoWaiter *) i->data;
-
-      if (trust >= CAPABILITY_BUNDLE_ENOUGH_TRUST || waiter->handle == handle)
-        {
-          GSList *tmp;
-          /* trusted reply */
-          presence = gabble_presence_cache_get (cache, waiter->handle);
-
-          if (presence)
-          {
-            GabblePresenceCapabilities save_caps = presence->caps;
-            gabble_debug (DEBUG_FLAG, "setting caps for %d (%s) to %d", handle, jid, caps);
-            gabble_presence_set_capabilities (presence, waiter->resource,caps,
-              waiter->serial);
-            gabble_debug (DEBUG_FLAG, "caps for %d (%s) now %d", handle, jid, presence->caps);
-            g_signal_emit (cache, signals[CAPABILITIES_UPDATE], 0,
-              waiter->handle, save_caps, presence->caps);
-          }
-
-          tmp = i;
-          i = i->next;
-
-          waiters = g_slist_delete_link (waiters, tmp);
-
-          g_hash_table_steal (priv->disco_pending, node);
-          g_hash_table_insert (priv->disco_pending, g_strdup (node), waiters);
-
-          disco_waiter_free (waiter);
-        }
-      else if (trust + disco_waiter_list_get_request_count (waiters) - 1
-          < CAPABILITY_BUNDLE_ENOUGH_TRUST)
-        {
-          /* if the possible trust, not counting this guy, is too low,
-           * we have been poisoned and reset our trust meters - disco
-           * anybody we still haven't to be able to get more trusted replies */
-
-          if (!waiter->disco_requested)
-            {
-              const gchar *jid;
-
-              jid = gabble_handle_inspect (priv->conn->handles,
-                TP_HANDLE_TYPE_CONTACT, waiter->handle);
-              full_jid = g_strdup_printf ("%s/%s", jid, waiter->resource);
-
-              gabble_disco_request (disco, GABBLE_DISCO_TYPE_INFO, full_jid,
-                  node, _caps_disco_cb, cache, G_OBJECT(cache), NULL);
-              waiter->disco_requested = TRUE;
-
-              g_free (full_jid);
-              full_jid = NULL;
-            }
-
-          i = i->next;
-        }
-      else
-        {
-          /* trust level still uncertain, don't do nothing */
-          i = i->next;
-        }
-    }
-
-  if (trust >= CAPABILITY_BUNDLE_ENOUGH_TRUST)
-    g_hash_table_remove (priv->disco_pending, node);
-
-OUT:
-
-  g_free (full_jid);
-}
-
-static void
-_process_caps_uri (GabblePresenceCache *cache,
-                   const gchar *from,
-                   const gchar *uri,
-                   GabbleHandle handle,
-                   const gchar *resource,
-                   guint serial)
-{
-  CapabilityInfo *info;
-  gpointer value;
-  GabblePresenceCachePrivate *priv;
-
-  priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-  info = capability_info_get (cache, uri, 0);
-
-  if (info->trust >= CAPABILITY_BUNDLE_ENOUGH_TRUST
-      || g_intset_is_member (info->guys, handle))
-    {
-      /* we already have enough trust for this node; apply the cached value to
-       * the (handle, resource) */
-
-      GabblePresence *presence = gabble_presence_cache_get (cache, handle);
-      gabble_debug (DEBUG_FLAG, "enough trust for URI %s, setting caps for %u (%s) to %u",
-          uri, handle, from, info->caps);
-
-      if (presence)
-        {
-          GabblePresenceCapabilities save_caps = presence->caps;
-          gabble_presence_set_capabilities (presence, resource, info->caps, serial);
-          g_signal_emit (cache, signals[CAPABILITIES_UPDATE], 0,
-              handle, save_caps, presence->caps);
-          gabble_debug (DEBUG_FLAG, "caps for %d (%s) now %d", handle, from, presence->caps);
-        }
-      else
-        {
-          gabble_debug (DEBUG_FLAG, "presence not found");
-        }
-    }
-  else
-    {
-      /* Append the (handle, resource) pair to the list of such pairs
-       * waiting for capabilities for this uri, and send a disco request
-       * if we don't have enough possible trust yet */
-
-      GSList *waiters;
-      DiscoWaiter *waiter;
-      guint possible_trust;
-
-      gabble_debug (DEBUG_FLAG, "not enough trust for URI %s", uri);
-      value = g_hash_table_lookup (priv->disco_pending, uri);
-
-      if (value)
-        g_hash_table_steal (priv->disco_pending, uri);
-
-      waiters = (GSList *) value;
-      waiter = disco_waiter_new (priv->conn->handles, handle, resource, serial);
-      waiters = g_slist_prepend (waiters, waiter);
-      g_hash_table_insert (priv->disco_pending, g_strdup (uri), waiters);
-
-      possible_trust = disco_waiter_list_get_request_count (waiters);
-
-      if (!value || info->trust + possible_trust < CAPABILITY_BUNDLE_ENOUGH_TRUST)
-        {
-          /* DISCO */
-          gabble_debug (DEBUG_FLAG, "only %u trust out of %u possible thus far, sending disco for URI %s",
-              info->trust + possible_trust, CAPABILITY_BUNDLE_ENOUGH_TRUST, uri);
-          gabble_disco_request (priv->conn->disco, GABBLE_DISCO_TYPE_INFO,
-              from, uri, _caps_disco_cb, cache, G_OBJECT (cache), NULL);
-          /* enough DISCO for you, buddy */
-          waiter->disco_requested = TRUE;
-        }
-    }
-}
-
-static void
-_process_caps (GabblePresenceCache *cache,
-               GabbleHandle handle,
-               const gchar *from,
-               LmMessageNode *lm_node)
-{
-  gchar *resource;
-  GSList *uris, *i;
-  GabblePresenceCachePrivate *priv;
-  guint serial;
-
-  priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-  serial = priv->caps_serial++;
-
-  gabble_decode_jid (from, NULL, NULL, &resource);
-
-  if (NULL == resource)
-    return;
-
-  uris = _extract_cap_bundles (lm_node);
-
-  for (i = uris; NULL != i; i = i->next)
-    {
-      _process_caps_uri (cache, from, (gchar *) i->data, handle, resource, serial);
-      g_free (i->data);
-    }
-
-  g_free (resource);
-  g_slist_free (uris);
-}
-
-static void
-_grab_avatar_sha1 (GabblePresenceCache *cache,
-                   GabbleHandle handle,
-                   const gchar *from,
-                   LmMessageNode *node)
-{
-  const gchar *sha1;
-  LmMessageNode *x_node, *photo_node;
-  GabblePresence *presence;
-  //LIB_TRACE( ELibTraceTypeInfo, "%s",  "Out _grab_avatar_sha1" );
-  presence = gabble_presence_cache_get (cache, handle);
-
-  if (NULL == presence)
-    return;
-
-  x_node = lm_message_node_get_child_with_namespace (node, "x",
-      NS_VCARD_TEMP_UPDATE);
-
-  if (NULL == x_node)
-    {
-#if 0
-      if (handle == priv->conn->parent.self_handle)
-        {
-          /* One of my other resources does not support XEP-0153. As per that
-           * XEP, I MUST stop advertising the image hash, at least until all
-           * instances of non-conforming resources have gone offline.
-           * However, we're going to ignore this requirement and hope that
-           * non-conforming clients won't alter the <PHOTO>, which should
-           * in practice be true.
-           */
-          presence->avatar_sha1 = NULL;
-        }
-#endif
-      return;
-    }
-
-  photo_node = lm_message_node_get_child (x_node, "photo");
-
-  /* If there is no photo node, the resource supports XEP-0153, but has
-   * nothing in particular to say about the avatar. */
-  if (NULL == photo_node)
-    return;
-
-  sha1 = lm_message_node_get_value (photo_node);
-
-  if (g_strdiff (presence->avatar_sha1, sha1))
-    {
-      g_free (presence->avatar_sha1);
-      presence->avatar_sha1 = g_strdup (sha1);
-
-#if 0
-      if (handle == priv->conn->parent.self_handle)
-        {
-          /* that would be us, then. According to XEP-0153, we MUST
-           * immediately send a presence update with an empty update child
-           * element (no photo node), then re-download our own vCard;
-           * when that arrives, we may start setting the photo node in our
-           * presence again.
-           *
-           * For the moment I'm going to ignore that requirement and
-           * trust that our other resource is getting its sha1 right!
-           */
-          /* TODO: I don't trust anyone to get XMPP right, so let's do
-           * this. :D */
-        }
-#endif
-      //LIB_TRACE( ELibTraceTypeInfo, "%s",  "AVATAR_UPDATE _grab_avatar_sha1" );
-      //g_signal_emit (cache, signals[AVATAR_UPDATE], 0, handle);
-    }
-  //LIB_TRACE( ELibTraceTypeInfo, "%s",  "Out _grab_avatar_sha1" );
-}
-
-static LmHandlerResult
-_parse_presence_message (GabblePresenceCache *cache,
-                         GabbleHandle handle,
-                         const gchar *from,
-                         LmMessage *message)
-{
-  gint8 priority = 0;
-  gchar *resource = NULL;
-  const gchar *status_message = NULL;
-  LmMessageNode *presence_node, *child_node;
-  LmHandlerResult ret = LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-  GabblePresenceId presence_id;
-  GabblePresence *presence;
-
-  presence_node = message->node;
-  g_assert (0 == strcmp (presence_node->name, "presence"));
-
-  gabble_decode_jid (from, NULL, NULL, &resource);
-
-  presence = gabble_presence_cache_get (cache, handle);
-
-  if (NULL != presence)
-      presence->keep_unavailable = FALSE;
-
-  child_node = lm_message_node_get_child (presence_node, "status");
-
-  if (child_node)
-    status_message = lm_message_node_get_value (child_node);
-
-  child_node = lm_message_node_get_child (presence_node, "priority");
-
-  if (child_node)
-    {
-      const gchar *prio = lm_message_node_get_value (child_node);
-
-      if (prio != NULL)
-        priority = CLAMP (atoi (prio), G_MININT8, G_MAXINT8);
-    }
-
-  switch (lm_message_get_sub_type (message))
-    {
-    case LM_MESSAGE_SUB_TYPE_NOT_SET:
-    case LM_MESSAGE_SUB_TYPE_AVAILABLE:
-      presence_id = _presence_node_get_status (presence_node);
-      gabble_presence_cache_update (cache, handle, resource, presence_id,
-          status_message, priority);
-
-#if 0
-      if (_presence_node_has_google_voice (presence_node))
-        {
-          presence = gabble_presence_cache_get (cache, handle);
-          g_assert (NULL != presence);
-          gabble_debug (DEBUG_FLAG, "%s has voice-v1 support", from);
-          gabble_presence_set_capabilities (presence, resource,
-              PRESENCE_CAP_GOOGLE_VOICE);
-        }
-#endif
-
-      ret = LM_HANDLER_RESULT_REMOVE_MESSAGE;
-      break;
-
-    case LM_MESSAGE_SUB_TYPE_ERROR:
-      NODE_DEBUG (presence_node, "setting contact offline due to error");
-      /* fall through */
-
-    case LM_MESSAGE_SUB_TYPE_UNAVAILABLE:
-      gabble_presence_cache_update (cache, handle, resource,
-          GABBLE_PRESENCE_OFFLINE, status_message, priority);
-
-      ret = LM_HANDLER_RESULT_REMOVE_MESSAGE;
-      break;
-
-    default:
-      break;
-    }
-
-  _grab_avatar_sha1 (cache, handle, from, presence_node);
-  _grab_nickname (cache, handle, from, presence_node);
-  _process_caps (cache, handle, from, presence_node);
-
-  g_free (resource);
-
-  return ret;
-}
-
-static LmHandlerResult
-_parse_message_message (GabblePresenceCache *cache,
-                        GabbleHandle handle,
-                        const gchar *from,
-                        LmMessage *message)
-{
-  LmMessageNode *node;
-  GabblePresence *presence;
-
-  presence = gabble_presence_cache_get (cache, handle);
-
-  if (NULL == presence)
-    {
-      presence = _cache_insert (cache, handle);
-      presence->keep_unavailable = TRUE;
-    }
-
-  node = lm_message_get_node (message);
-
-  _grab_nickname (cache, handle, from, node);
-  _process_caps (cache, handle, from, node);
-
-  return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-}
-
-
-/**
- * gabble_presence_cache_lm_message_cb:
- * @handler: #LmMessageHandler for this message
- * @connection: #LmConnection that originated the message
- * @message: the presence message
- * @user_data: callback data
- *
- * Called by loudmouth when we get an incoming <presence>.
- */
-static LmHandlerResult
-gabble_presence_cache_lm_message_cb (LmMessageHandler *handler,
-                                     LmConnection *lmconn,
-                                     LmMessage *message,
-                                     gpointer user_data)
-{
-  GabblePresenceCache *cache = GABBLE_PRESENCE_CACHE (user_data);
-  GabblePresenceCachePrivate *priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-  const char *from;
-  GabbleHandle handle;
-
-  g_assert (lmconn == priv->conn->lmconn);
-
-  from = lm_message_node_get_attribute (message->node, "from");
-
-  if (NULL == from)
-    {
-     NODE_DEBUG (message->node, "message without from attribute, ignoring");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  handle = gabble_handle_for_contact (priv->conn->handles, from, FALSE);
-
-  if (0 == handle)
-    {
-      NODE_DEBUG (message->node, "ignoring message from malformed jid");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  if (handle == priv->conn->self_handle)
-    {
-      NODE_DEBUG (message->node,
-        "ignoring message from ourselves on another resource");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  switch (lm_message_get_type (message))
-    {
-    case LM_MESSAGE_TYPE_PRESENCE:
-      return _parse_presence_message (cache, handle, from, message);
-    case LM_MESSAGE_TYPE_MESSAGE:
-      return _parse_message_message (cache, handle, from, message);
-    default:
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-}
-
-
-GabblePresenceCache *
-gabble_presence_cache_new (GabbleConnection *conn)
-{
-  return g_object_new (GABBLE_TYPE_PRESENCE_CACHE,
-                       "connection", conn,
-                       NULL);
-}
-
-GabblePresence *
-gabble_presence_cache_get (GabblePresenceCache *cache, GabbleHandle handle)
-{
-  GabblePresenceCachePrivate *priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-
-  
-//  g_assert (gabble_handle_is_valid (priv->conn->handles,
-//        TP_HANDLE_TYPE_CONTACT, handle, NULL));
-  if(priv)
-    if(priv->conn)
-      if(priv->conn->handles){
-  if ( gabble_handle_is_valid (priv->conn->handles,
-          TP_HANDLE_TYPE_CONTACT, handle, NULL) )
-      {
-        return g_hash_table_lookup (priv->presence, GINT_TO_POINTER (handle));  
-      }
-  else
-      {
-      return NULL;
-      }
-  }
-  return NULL;
-}
-
-void
-gabble_presence_cache_maybe_remove (
-    GabblePresenceCache *cache,
-    GabbleHandle handle)
-{
-  GabblePresenceCachePrivate *priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-  GabblePresence *presence;
-
-  presence = gabble_presence_cache_get (cache, handle);
-
-  if (NULL == presence)
-    return;
-
-  if (presence->status == GABBLE_PRESENCE_OFFLINE &&
-      presence->status_message == NULL &&
-      !presence->keep_unavailable)
-    {
-      const gchar *jid;
-
-      jid = gabble_handle_inspect (priv->conn->handles, TP_HANDLE_TYPE_CONTACT,
-          handle);
-      gabble_debug (DEBUG_FLAG, "discarding cached presence for unavailable jid %s", jid);
-      g_hash_table_remove (priv->presence, GINT_TO_POINTER (handle));
-      handle_set_remove (priv->presence_handles, handle);
-    }
-}
-
-static GabblePresence *
-_cache_insert (
-    GabblePresenceCache *cache,
-    GabbleHandle handle)
-{
-  GabblePresenceCachePrivate *priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-  GabblePresence *presence;
-
-  presence = gabble_presence_new ();
-  g_hash_table_insert (priv->presence, GINT_TO_POINTER (handle), presence);
-  handle_set_add (priv->presence_handles, handle);
-  return presence;
-}
-
-void
-gabble_presence_cache_update (
-    GabblePresenceCache *cache,
-    GabbleHandle handle,
-    const gchar *resource,
-    GabblePresenceId presence_id,
-    const gchar *status_message,
-    gint8 priority)
-{
-  GabblePresenceCachePrivate *priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
-  const gchar *jid;
-  GabblePresence *presence;
-
-  jid = gabble_handle_inspect (priv->conn->handles, TP_HANDLE_TYPE_CONTACT,
-      handle);
-  gabble_debug (DEBUG_FLAG, "%s (%d) resource %s prio %d presence %d message \"%s\"",
-      jid, handle, resource, priority, presence_id, status_message);
-
-  presence = gabble_presence_cache_get (cache, handle);
-
-  if (presence == NULL)
-    presence = _cache_insert (cache, handle);
-
-  if (gabble_presence_update (presence, resource, presence_id, status_message,
-        priority))
-    g_signal_emit (cache, signals[PRESENCE_UPDATE], 0, handle);
-
-  gabble_presence_cache_maybe_remove (cache, handle);
-}
-
-void gabble_presence_cache_add_bundle_caps (GabblePresenceCache *cache,
-    const gchar *node, GabblePresenceCapabilities new_caps)
-{
-  CapabilityInfo *info;
-
-  info = capability_info_get (cache, node, 0);
-  info->trust = CAPABILITY_BUNDLE_ENOUGH_TRUST;
-  info->caps |= new_caps;
-}
-
--- a/telepathygabble/src/gabble-presence.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,448 +0,0 @@
-/*
- * gabble-presence.c - Gabble's per-contact presence structure
- * Copyright (C) 2005 Collabora Ltd.
- *  and/or its subsidiaries. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <string.h>
-#include <glib.h>
-
-#include "gabble-presence-cache.h"
-#include "gabble-presence.h"
-#include "util.h"
-
-#include "config.h"
-#define DEBUG_FLAG GABBLE_DEBUG_PRESENCE
-#include "debug.h"
-
-#ifndef EMULATOR
-G_DEFINE_TYPE (GabblePresence, gabble_presence, G_TYPE_OBJECT);
-#endif
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-    GET_STATIC_VAR_FROM_TLS(gabble_presence_parent_class,gabble_presence,gpointer)
-	#define gabble_presence_parent_class (*GET_WSD_VAR_NAME(gabble_presence_parent_class,gabble_presence,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_presence,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_presence,s)())
-
-static void gabble_presence_init (GabblePresence *self);
-static void gabble_presence_class_init (GabblePresenceClass *klass);
-static void gabble_presence_class_intern_init (gpointer klass) 
-{ 
-gabble_presence_parent_class = g_type_class_peek_parent (klass); 
-gabble_presence_class_init ((GabblePresenceClass*) klass); 
-}
- EXPORT_C GType gabble_presence_get_type (void) 
- { 
- if ((g_define_type_id == 0)) 
- { static const GTypeInfo g_define_type_info = 
- 	{ sizeof (GabblePresenceClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_presence_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabblePresence), 0, (GInstanceInitFunc) gabble_presence_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabblePresence"), &g_define_type_info, (GTypeFlags) 0); { {} ; } } return g_define_type_id; 
- } ;
-
-#endif
-
-#define GABBLE_PRESENCE_PRIV(account) ((GabblePresencePrivate *)account->priv)
-
-typedef struct _Resource Resource;
-
-struct _Resource {
-    gchar *name;
-    GabblePresenceCapabilities caps;
-    guint caps_serial;
-    GabblePresenceId status;
-    gchar *status_message;
-    gint8 priority;
-};
-
-typedef struct _GabblePresencePrivate GabblePresencePrivate;
-
-struct _GabblePresencePrivate {
-    gchar *no_resource_status_message;
-    GSList *resources;
-};
-
-static Resource *
-_resource_new (gchar *name)
-{
-  Resource *new = g_new (Resource, 1);
-  new->name = name;
-  new->caps = PRESENCE_CAP_NONE;
-  new->status = GABBLE_PRESENCE_OFFLINE;
-  new->status_message = NULL;
-  new->priority = 0;
-  new->caps_serial = 0;
-  return new;
-}
-
-static void
-_resource_free (Resource *resource)
-{
-  g_free (resource->status_message);
-  g_free (resource);
-}
-
-static void
-gabble_presence_finalize (GObject *object)
-{
-  GSList *i;
-  GabblePresence *presence = GABBLE_PRESENCE (object);
-  GabblePresencePrivate *priv = GABBLE_PRESENCE_PRIV (presence);
-
-  for (i = priv->resources; NULL != i; i = i->next)
-    _resource_free (i->data);
-
-  g_slist_free (priv->resources);
-  g_free (presence->nickname);
-  g_free (priv->no_resource_status_message);
-}
-
-static void
-gabble_presence_class_init (GabblePresenceClass *klass)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  g_type_class_add_private (object_class, sizeof (GabblePresencePrivate));
-  object_class->finalize = gabble_presence_finalize;
-}
-
-static void
-gabble_presence_init (GabblePresence *self)
-{
-  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GABBLE_TYPE_PRESENCE, GabblePresencePrivate);
-  ((GabblePresencePrivate *)self->priv)->resources = NULL;
-}
-
-
-GabblePresence*
-gabble_presence_new (void)
-{
-  return g_object_new (GABBLE_TYPE_PRESENCE, NULL);
-}
-
-
-const gchar *
-gabble_presence_pick_resource_by_caps (
-    GabblePresence *presence,
-    GabblePresenceCapabilities caps)
-{
-  GabblePresencePrivate *priv = GABBLE_PRESENCE_PRIV (presence);
-  GSList *i;
-  Resource *chosen = NULL;
-
-  for (i = priv->resources; NULL != i; i = i->next)
-    {
-      Resource *res = (Resource *) i->data;
-
-      if ((res->priority >= 0) &&
-          ((res->caps & caps) == caps) &&
-          (NULL == chosen || res->priority > chosen->priority))
-        chosen = res;
-    }
-
-  if (chosen)
-    return chosen->name;
-  else
-    return NULL;
-}
-
-gboolean
-gabble_presence_resource_has_caps (GabblePresence *presence,
-                                   const gchar *resource,
-                                   GabblePresenceCapabilities caps)
-{
-  GabblePresencePrivate *priv = GABBLE_PRESENCE_PRIV (presence);
-  GSList *i;
-
-  for (i = priv->resources; NULL != i; i = i->next)
-    {
-      Resource *res = (Resource *) i->data;
-
-      if (!g_strdiff (res->name, resource) && (res->caps & caps))
-        return TRUE;
-    }
-
-  return FALSE;
-}
-
-
-void
-gabble_presence_set_capabilities (GabblePresence *presence,
-                                  const gchar *resource,
-                                  GabblePresenceCapabilities caps,
-                                  guint serial)
-{
-  GabblePresencePrivate *priv = GABBLE_PRESENCE_PRIV (presence);
-  GSList *i;
-  g_message("[gabble_presence_set_capabilities]\n");  
-  presence->caps = 0;
-
-  gabble_debug (DEBUG_FLAG, "about to add caps %u to resource %s with serial %u", caps, resource,
-    serial);
-
-  for (i = priv->resources; NULL != i; i = i->next)
-    {
-      Resource *tmp = (Resource *) i->data;
-
-      if (0 == strcmp (tmp->name, resource))
-        {
-          gabble_debug (DEBUG_FLAG, "found resource %s", resource);
-
-          if (serial > tmp->caps_serial)
-            {
-              gabble_debug (DEBUG_FLAG, "new serial %u, old %u, clearing caps", serial,
-                tmp->caps_serial);
-              tmp->caps = 0;
-              tmp->caps_serial = serial;
-            }
-
-          if (serial >= tmp->caps_serial)
-            {
-              gabble_debug (DEBUG_FLAG, "adding caps %u to resource %s", caps, resource);
-              tmp->caps |= caps;
-              gabble_debug (DEBUG_FLAG, "resource %s caps now %u", resource, tmp->caps);
-            }
-        }
-
-      presence->caps |= tmp->caps;
-    }
-  g_message("[leaving connect_callbacks\n]");
-  gabble_debug (DEBUG_FLAG, "total caps now %u", presence->caps);
-}
-
-static Resource *
-_find_resource (GabblePresence *presence, const gchar *resource)
-{
-  GSList *i;
-  GabblePresencePrivate *priv = GABBLE_PRESENCE_PRIV (presence);
-
-  for (i = priv->resources; NULL != i; i = i->next)
-    {
-      Resource *res = (Resource *) i->data;
-
-      if (0 == strcmp (res->name, resource))
-        return res;
-    }
-
-  return NULL;
-}
-
-
-gboolean
-gabble_presence_update (GabblePresence *presence,
-                        const gchar *resource,
-                        GabblePresenceId status,
-                        const gchar *status_message,
-                        gint8 priority)
-{
-  GabblePresencePrivate *priv = GABBLE_PRESENCE_PRIV (presence);
-  Resource *res;
-  GabblePresenceId old_status;
-  gchar *old_status_message;
-  GSList *i;
-  gint8 prio;
-  gboolean ret = FALSE;
-
-  /* save our current state */
-  old_status = presence->status;
-  old_status_message = g_strdup (presence->status_message);
-
-  if (NULL == resource)
-    {
-      /* presence from a JID with no resource: free all resources and set
-       * presence directly */
-
-      for (i = priv->resources; i; i = i->next)
-        _resource_free (i->data);
-
-      g_slist_free (priv->resources);
-      priv->resources = NULL;
-
-      if (g_strdiff (priv->no_resource_status_message, status_message))
-        {
-          g_free (priv->no_resource_status_message);
-          priv->no_resource_status_message = g_strdup (status_message);
-        }
-
-      presence->status = status;
-      presence->status_message = priv->no_resource_status_message;
-      goto OUT;
-    }
-
-  res = _find_resource (presence, resource);
-
-  /* remove, create or update a Resource as appropriate */
-  if (GABBLE_PRESENCE_OFFLINE == status &&
-      NULL == status_message)
-    {
-      if (NULL != res)
-        {
-          priv->resources = g_slist_remove (priv->resources, res);
-          _resource_free (res);
-          res = NULL;
-        }
-    }
-  else
-    {
-      if (NULL == res)
-        {
-          res = _resource_new (g_strdup (resource));
-          priv->resources = g_slist_append (priv->resources, res);
-        }
-
-      res->status = status;
-
-      if (g_strdiff (res->status_message, status_message))
-        {
-          g_free (res->status_message);
-          res->status_message = g_strdup (status_message);
-        }
-
-      res->priority = priority;
-    }
-
-  /* select the most preferable Resource and update presence->* based on our
-   * choice */
-  presence->caps = 0;
-  presence->status = GABBLE_PRESENCE_OFFLINE;
-
-  /* use the status message from any offline Resource we're
-   * keeping around just because it has a message on it */
-  presence->status_message = res ? res->status_message : NULL;
-
-  prio = -128;
-
-  for (i = priv->resources; NULL != i; i = i->next)
-    {
-      Resource *res = (Resource *) i->data;
-
-      presence->caps |= res->caps;
-
-      /* trump existing status & message if it's more present
-       * or has the same presence and a higher priority */
-      if (res->status > presence->status ||
-          (res->status == presence->status && res->priority > prio))
-        {
-          presence->status = res->status;
-          presence->status_message = res->status_message;
-          prio = res->priority;
-        }
-    }
-
-OUT:
-  /* detect changes */
-  if (presence->status != old_status ||
-      g_strdiff (presence->status_message, old_status_message))
-    ret = TRUE;
-
-  g_free (old_status_message);
-  return ret;
-}
-
-LmMessage *
-gabble_presence_as_message (GabblePresence *presence, const gchar *resource)
-{
-  LmMessage *message;
-  LmMessageNode *node;
-  LmMessageSubType subtype;
-  Resource *res = _find_resource (presence, resource);
-
-  g_assert (NULL != res);
-
-  if (presence->status == GABBLE_PRESENCE_OFFLINE)
-    subtype = LM_MESSAGE_SUB_TYPE_UNAVAILABLE;
-  else
-    subtype = LM_MESSAGE_SUB_TYPE_AVAILABLE;
-
-  message = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_PRESENCE,
-              subtype);
-  node = lm_message_get_node (message);
-
-  switch (presence->status)
-    {
-    case GABBLE_PRESENCE_AVAILABLE:
-    case GABBLE_PRESENCE_OFFLINE:
-    case GABBLE_PRESENCE_HIDDEN:
-      break;
-    case GABBLE_PRESENCE_AWAY:
-      lm_message_node_add_child (node, "show", JABBER_PRESENCE_SHOW_AWAY);
-      break;
-    case GABBLE_PRESENCE_CHAT:
-      lm_message_node_add_child (node, "show", JABBER_PRESENCE_SHOW_CHAT);
-      break;
-    case GABBLE_PRESENCE_DND:
-      lm_message_node_add_child (node, "show", JABBER_PRESENCE_SHOW_DND);
-      break;
-    case GABBLE_PRESENCE_XA:
-      lm_message_node_add_child (node, "show", JABBER_PRESENCE_SHOW_XA);
-      break;
-    default:
-      g_critical ("%s: Unexpected Telepathy presence type", G_STRFUNC);
-      break;
-    }
-
-  if (presence->status_message)
-      lm_message_node_add_child (node, "status", presence->status_message);
-
-  if (res->priority)
-    {
-      gchar *priority = g_strdup_printf ("%d", res->priority);
-      lm_message_node_add_child (node, "priority", priority);
-      g_free (priority);
-    }
-
-  return message;
-}
-
-
-gchar *
-gabble_presence_dump (GabblePresence *presence)
-{
-  GSList *i;
-  GString *ret = g_string_new ("");
-  GabblePresencePrivate *priv = GABBLE_PRESENCE_PRIV (presence);
-
-  g_string_append_printf (ret,
-    "nickname: %s\n"
-    "accumulated status: %d\n"
-    "accumulated status msg: %s\n"
-    "accumulated capabilities: %d\n"
-    "kept while unavailable: %d\n"
-    "resources:\n", presence->nickname, presence->status,
-    presence->status_message, presence->caps,
-    presence->keep_unavailable);
-
-  for (i = priv->resources; i; i = i->next)
-    {
-      Resource *res = (Resource *) i->data;
-
-      g_string_append_printf(ret,
-        "  %s\n"
-        "    capabilities: %d\n"
-        "    status: %d\n"
-        "    status msg: %s\n"
-        "    priority: %d\n", res->name, res->caps, res->status,
-        res->status_message, res->priority);
-    }
-
-  if (priv->resources == NULL)
-    g_string_append_printf(ret, "  (none)\n");
-
-  return g_string_free (ret, FALSE);
-}
--- a/telepathygabble/src/gabble-register-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/*
- * gabble-register-signals-marshal.c - Source for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:BOOLEAN,INT,STRING (gabble-register-signals-marshal.list:1) */
-void
-gabble_register_marshal_VOID__BOOLEAN_INT_STRING (GClosure     *closure,
-                                                  GValue       *return_value,
-                                                  guint         n_param_values,
-                                                  const GValue *param_values,
-                                                  gpointer      invocation_hint,
-                                                  gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__BOOLEAN_INT_STRING) (gpointer     data1,
-                                                         gboolean     arg_1,
-                                                         gint         arg_2,
-                                                         gpointer     arg_3,
-                                                         gpointer     data2);
-  register GMarshalFunc_VOID__BOOLEAN_INT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__BOOLEAN_INT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_boolean (param_values + 1),
-            g_marshal_value_peek_int (param_values + 2),
-            g_marshal_value_peek_string (param_values + 3),
-            data2);
-}
-
--- a/telepathygabble/src/gabble-register.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,393 +0,0 @@
-/*
- * gabble-register.c - Source for Gabble account registration
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#define DBUS_API_SUBJECT_TO_CHANGE
-
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "telepathy-helpers.h"
-#include "telepathy-errors.h"
-
-#include "gabble-connection.h"
-#include "gabble-error.h"
-#include "gabble-register.h"
-#include "gabble-register-signals-marshal.h"
-#include "namespaces.h"
-#include "util.h"
-
-
-#include "gabble_enums.h"
-
-#ifndef EMULATOR
-G_DEFINE_TYPE(GabbleRegister, gabble_register, G_TYPE_OBJECT);
-#endif
-
-/* signal enum */
-enum
-{
-  FINISHED,
-  LAST_SIGNAL 
-#ifdef EMULATOR  
-  = LAST_SIGNAL_REGISTER
-#endif
-  
-};
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_register,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_register, s)())
-	
-	GET_STATIC_VAR_FROM_TLS(gabble_register_parent_class,gabble_register,gpointer)
-	#define gabble_register_parent_class (*GET_WSD_VAR_NAME(gabble_register_parent_class,gabble_register,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_register,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_register,s)())
-	
-	
-static void gabble_register_init (GabbleRegister *self); 
-static void gabble_register_class_init (GabbleRegisterClass *klass); 
-static void gabble_register_class_intern_init (gpointer klass) 
-{
- gabble_register_parent_class = g_type_class_peek_parent (klass); 
- gabble_register_class_init ((GabbleRegisterClass*) klass); 
- } 
- EXPORT_C GType gabble_register_get_type (void) 
- { 
- if ((g_define_type_id == 0)) 
- 	{ static const GTypeInfo g_define_type_info = { sizeof (GabbleRegisterClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_register_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleRegister), 0, (GInstanceInitFunc) gabble_register_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleRegister"), &g_define_type_info, (GTypeFlags) 0); { {} ; } } return g_define_type_id; 
- } ;
-
-		
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif
-
-
-/* properties */
-enum
-{
-  PROP_CONNECTION = 1,
-  LAST_PROPERTY
-};
-
-
-/* private structure */
-typedef struct _GabbleRegisterPrivate GabbleRegisterPrivate;
-struct _GabbleRegisterPrivate
-{
-  GabbleConnection *conn;
-
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_REGISTER_GET_PRIVATE(o)     (G_TYPE_INSTANCE_GET_PRIVATE ((o), GABBLE_TYPE_REGISTER, GabbleRegisterPrivate))
-
-static void
-gabble_register_init (GabbleRegister *obj)
-{
-}
-
-static void gabble_register_set_property (GObject *object, guint property_id,
-    const GValue *value, GParamSpec *pspec);
-static void gabble_register_get_property (GObject *object, guint property_id,
-    GValue *value, GParamSpec *pspec);
-static void gabble_register_dispose (GObject *object);
-static void gabble_register_finalize (GObject *object);
-
-static void
-gabble_register_class_init (GabbleRegisterClass *gabble_register_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_register_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_register_class, sizeof (GabbleRegisterPrivate));
-
-  object_class->get_property = gabble_register_get_property;
-  object_class->set_property = gabble_register_set_property;
-
-  object_class->dispose = gabble_register_dispose;
-  object_class->finalize = gabble_register_finalize;
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "GabbleRegister object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-  signals[FINISHED] =
-    g_signal_new ("finished",
-                  G_OBJECT_CLASS_TYPE (gabble_register_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  gabble_register_marshal_VOID__BOOLEAN_INT_STRING,
-                  G_TYPE_NONE, 3, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_STRING);
-}
-
-static void
-gabble_register_get_property (GObject    *object,
-                              guint       property_id,
-                              GValue     *value,
-                              GParamSpec *pspec)
-{
-  GabbleRegister *chan = GABBLE_REGISTER (object);
-  GabbleRegisterPrivate *priv = GABBLE_REGISTER_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_register_set_property (GObject     *object,
-                              guint        property_id,
-                              const GValue *value,
-                              GParamSpec   *pspec)
-{
-  GabbleRegister *chan = GABBLE_REGISTER (object);
-  GabbleRegisterPrivate *priv = GABBLE_REGISTER_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-void
-gabble_register_dispose (GObject *object)
-{
-  GabbleRegister *self = GABBLE_REGISTER (object);
-  GabbleRegisterPrivate *priv = GABBLE_REGISTER_GET_PRIVATE (self);
-
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  g_debug ("%s: dispose called", G_STRFUNC);
-
-  if (G_OBJECT_CLASS (gabble_register_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_register_parent_class)->dispose (object);
-}
-
-void
-gabble_register_finalize (GObject *object)
-{
-  g_debug ("%s called with %p", G_STRFUNC, object);
-
-  G_OBJECT_CLASS (gabble_register_parent_class)->finalize (object);
-}
-
-/**
- * gabble_register_new:
- *
- * Creates an object to use for account registration.
- *
- * @conn: The #GabbleConnection to register an account on
- */
-GabbleRegister *
-gabble_register_new (GabbleConnection *conn)
-{
-  g_return_val_if_fail (GABBLE_IS_CONNECTION (conn), NULL);
-  return GABBLE_REGISTER (g_object_new (GABBLE_TYPE_REGISTER,
-        "connection", conn, NULL));
-}
-
-static LmHandlerResult
-set_reply_cb (GabbleConnection *conn,
-              LmMessage *sent_msg,
-              LmMessage *reply_msg,
-              GObject *object,
-              gpointer user_data)
-{
-  if (lm_message_get_sub_type (reply_msg) != LM_MESSAGE_SUB_TYPE_RESULT)
-    {
-      LmMessageNode *node;
-      gint code = NotAvailable;
-      GString *msg;
-
-      msg = g_string_sized_new (30);
-      g_string_append (msg, "Request failed");
-
-      node = lm_message_node_get_child (reply_msg->node, "error");
-      if (node)
-        {
-          GabbleXmppError error;
-
-          error = gabble_xmpp_error_from_node (node);
-          if (error == XMPP_ERROR_CONFLICT)
-            {
-              code = InvalidArgument;
-            }
-
-          if (error != INVALID_XMPP_ERROR)
-            {
-              g_string_append_printf (msg, ": %s",
-                  gabble_xmpp_error_string (error));
-            }
-        }
-
-      g_signal_emit (object, signals[FINISHED], 0, FALSE, code, msg->str);
-      g_string_free (msg, TRUE);
-    }
-  else
-    {
-      g_signal_emit (object, signals[FINISHED], 0, TRUE, -1, NULL);
-    }
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static LmHandlerResult
-get_reply_cb (GabbleConnection *conn,
-              LmMessage *sent_msg,
-              LmMessage *reply_msg,
-              GObject *object,
-              gpointer user_data)
-{
-  GabbleRegister *reg = GABBLE_REGISTER (object);
-  GabbleRegisterPrivate *priv = GABBLE_REGISTER_GET_PRIVATE (reg);
-  GError *error = NULL;
-  gint err_code = -1;
-  const gchar *err_msg = NULL;
-  LmMessage *msg = NULL;
-  LmMessageNode *query_node;
-  gchar *username, *password;
-
-  if (lm_message_get_sub_type (reply_msg) != LM_MESSAGE_SUB_TYPE_RESULT)
-    {
-      err_code = NotAvailable;
-      err_msg = "Server doesn't support " NS_REGISTER;
-
-      goto OUT;
-    }
-
-  /* sanity check the reply to some degree ... */
-  query_node = lm_message_node_get_child_with_namespace (reply_msg->node,
-      "query", NS_REGISTER);
-
-  if (query_node == NULL)
-    goto ERROR_MALFORMED_REPLY;
-
-  if (!lm_message_node_get_child (query_node, "username"))
-    goto ERROR_MALFORMED_REPLY;
-
-  if (!lm_message_node_get_child (query_node, "password"))
-    goto ERROR_MALFORMED_REPLY;
-
-  /* craft a reply */
-  msg = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ,
-                                      LM_MESSAGE_SUB_TYPE_SET);
-
-  query_node = lm_message_node_add_child (msg->node, "query", NULL);
-  lm_message_node_set_attribute (query_node, "xmlns", NS_REGISTER);
-
-  g_object_get (priv->conn,
-      "username", &username,
-      "password", &password,
-      NULL);
-
-  lm_message_node_add_child (query_node, "username", username);
-  lm_message_node_add_child (query_node, "password", password);
-
-  g_free (username);
-  g_free (password);
-
-  if (!_gabble_connection_send_with_reply (priv->conn, msg, set_reply_cb,
-                                           G_OBJECT (reg), NULL, &error))
-    {
-      err_code = error->code;
-      err_msg = error->message;
-    }
-
-  goto OUT;
-
-ERROR_MALFORMED_REPLY:
-  err_code = NotAvailable;
-  err_msg = "Malformed reply";
-
-OUT:
-  if (err_code != -1)
-    {
-      g_signal_emit (reg, signals[FINISHED], 0, FALSE, err_code, err_msg);
-    }
-
-  if (msg)
-    lm_message_unref (msg);
-
-  if (error)
-    g_error_free (error);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-/**
- * gabble_register_start:
- *
- * Start account registration.
- *
- * @reg: The #GabbleRegister object performing the registration
- */
-void gabble_register_start (GabbleRegister *reg)
-{
-  GabbleRegisterPrivate *priv = GABBLE_REGISTER_GET_PRIVATE (reg);
-  LmMessage *msg;
-  LmMessageNode *node;
-  GError *error = NULL;
-
-  msg = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ,
-                                      LM_MESSAGE_SUB_TYPE_GET);
-
-  node = lm_message_node_add_child (msg->node, "query", NULL);
-  lm_message_node_set_attribute (node, "xmlns", NS_REGISTER);
-
-  if (!_gabble_connection_send_with_reply (priv->conn, msg, get_reply_cb,
-                                           G_OBJECT (reg), NULL, &error))
-    {
-      g_signal_emit (reg, signals[FINISHED], 0, FALSE, error->code,
-                     error->message);
-      g_error_free (error);
-    }
-
-  lm_message_unref (msg);
-}
-
--- a/telepathygabble/src/gabble-roomlist-channel-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * gabble-roomlist-channel-signals-marshal.c - Source for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * -- LET'S DISCO!!!  \o/ \o_ _o/ /\o/\ _/o/- -\o\_ --
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
--- a/telepathygabble/src/gabble-roomlist-channel.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,734 +0,0 @@
-/*
- * gabble-roomlist-channel.c - Source for GabbleRoomlistChannel
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define DEBUG_FLAG GABBLE_DEBUG_ROOMLIST
-
-#include "debug.h"
-#include "disco.h"
-#include "gabble-connection.h"
-#include "handles.h"
-#include "handle-set.h"
-#include "telepathy-constants.h"
-#include "telepathy-interfaces.h"
-#include "telepathy-helpers.h"
-#include "tp-channel-iface.h"
-#include "namespaces.h"
-#include "util.h"
-
-#include "gabble-roomlist-channel.h"
-#include "gabble-roomlist-channel-glue.h"
-#include "gabble-roomlist-channel-signals-marshal.h"
-
-#include "gabble_enums.h"
-
-#define TP_TYPE_ROOM_STRUCT (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, \
-      G_TYPE_STRING, \
-      dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), \
-      G_TYPE_INVALID))
-
-#define TP_TYPE_ROOM_LIST (dbus_g_type_get_collection ("GPtrArray", \
-      TP_TYPE_ROOM_STRUCT))
-      
-#ifndef EMULATOR
-G_DEFINE_TYPE_WITH_CODE (GabbleRoomlistChannel, gabble_roomlist_channel,
-    G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_IFACE, NULL));
-#endif
-
-/* signal enum */
-enum
-{
-    CLOSED,
-    GOT_ROOMS,
-    LISTING_ROOMS,
-    LAST_SIGNAL 
-#ifdef EMULATOR    
-    = LAST_SIGNAL_ROOM_CHNL
-#endif
-    
-};
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_room_chnl,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_room_chnl, s)())
-		
-	GET_STATIC_VAR_FROM_TLS(gabble_roomlist_channel_parent_class,gabble_room_chnl,gpointer)
-	#define gabble_roomlist_channel_parent_class (*GET_WSD_VAR_NAME(gabble_roomlist_channel_parent_class,gabble_room_chnl,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_room_chnl,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_room_chnl,s)())
-
-	
-	static void gabble_roomlist_channel_init (GabbleRoomlistChannel *self);
-	 static void gabble_roomlist_channel_class_init (GabbleRoomlistChannelClass *klass); 
-	 static void gabble_roomlist_channel_class_intern_init (gpointer klass) 
-	 {
-	  gabble_roomlist_channel_parent_class = g_type_class_peek_parent (klass); 
-	  gabble_roomlist_channel_class_init ((GabbleRoomlistChannelClass*) klass);
-	   } 
-	   EXPORT_C GType gabble_roomlist_channel_get_type (void) 
-	   {
-	   if ((g_define_type_id == 0)) { static const GTypeInfo g_define_type_info = { sizeof (GabbleRoomlistChannelClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_roomlist_channel_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleRoomlistChannel), 0, (GInstanceInitFunc) gabble_roomlist_channel_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleRoomlistChannel"), &g_define_type_info, (GTypeFlags) 0); { { static const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) ((void *)0) }; g_type_add_interface_static (g_define_type_id, tp_channel_iface_get_type(), &g_implement_interface_info); } ; } } return g_define_type_id; }    ;
-
-		
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif
-
-
-/* properties */
-enum
-{
-  PROP_OBJECT_PATH = 1,
-  PROP_CHANNEL_TYPE,
-  PROP_HANDLE_TYPE,
-  PROP_HANDLE,
-  PROP_CONNECTION,
-  PROP_CONFERENCE_SERVER,
-  LAST_PROPERTY
-};
-
-/* private structure */
-typedef struct _GabbleRoomlistChannelPrivate GabbleRoomlistChannelPrivate;
-
-struct _GabbleRoomlistChannelPrivate
-{
-  GabbleConnection *conn;
-  gchar *object_path;
-  gchar *conference_server;
-
-  gboolean closed;
-  gboolean listing;
-
-  gpointer disco_pipeline;
-  GabbleHandleSet *signalled_rooms;
-
-  GPtrArray *pending_room_signals;
-  guint timer_source_id;
-
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_ROOMLIST_CHANNEL_GET_PRIVATE(obj) \
-    ((GabbleRoomlistChannelPrivate *)obj->priv)
-
-#define ROOM_SIGNAL_INTERVAL 300
-
-static gboolean emit_room_signal (gpointer data);
-
-static void
-gabble_roomlist_channel_init (GabbleRoomlistChannel *self)
-{
-  GabbleRoomlistChannelPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GABBLE_TYPE_ROOMLIST_CHANNEL, GabbleRoomlistChannelPrivate);
-
-  self->priv = priv;
-
-  priv->pending_room_signals = g_ptr_array_new ();
-}
-
-
-static GObject *
-gabble_roomlist_channel_constructor (GType type, guint n_props,
-                               GObjectConstructParam *props)
-{
-  GObject *obj;
-  GabbleRoomlistChannelPrivate *priv;
-  DBusGConnection *bus;
-
-  obj = G_OBJECT_CLASS (gabble_roomlist_channel_parent_class)->
-           constructor (type, n_props, props);
-  priv = GABBLE_ROOMLIST_CHANNEL_GET_PRIVATE (GABBLE_ROOMLIST_CHANNEL (obj));
-
-  bus = tp_get_bus ();
-  dbus_g_connection_register_g_object (bus, priv->object_path, obj);
-
-  return obj;
-}
-
-static void
-gabble_roomlist_channel_get_property (GObject    *object,
-                                guint       property_id,
-                                GValue     *value,
-                                GParamSpec *pspec)
-{
-  GabbleRoomlistChannel *chan = GABBLE_ROOMLIST_CHANNEL (object);
-  GabbleRoomlistChannelPrivate *priv = GABBLE_ROOMLIST_CHANNEL_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_value_set_string (value, priv->object_path);
-      break;
-    case PROP_CHANNEL_TYPE:
-      g_value_set_static_string (value, TP_IFACE_CHANNEL_TYPE_ROOM_LIST);
-      break;
-    case PROP_HANDLE_TYPE:
-      g_value_set_uint (value, TP_HANDLE_TYPE_NONE);
-      break;
-    case PROP_HANDLE:
-      g_value_set_uint (value, 0);
-      break;
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    case PROP_CONFERENCE_SERVER:
-      g_value_set_string (value, priv->conference_server);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_roomlist_channel_set_property (GObject     *object,
-                                guint        property_id,
-                                const GValue *value,
-                                GParamSpec   *pspec)
-{
-  GabbleRoomlistChannel *chan = GABBLE_ROOMLIST_CHANNEL (object);
-  GabbleRoomlistChannelPrivate *priv = GABBLE_ROOMLIST_CHANNEL_GET_PRIVATE (chan);
-  GabbleHandleSet *new_signalled_rooms;
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_free (priv->object_path);
-      priv->object_path = g_value_dup_string (value);
-      break;
-    case PROP_HANDLE:
-      /* this property is writable in the interface, but not actually
-       * meaningfully changable on this channel, so we do nothing */
-      break;
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      new_signalled_rooms = handle_set_new (priv->conn->handles, TP_HANDLE_TYPE_ROOM);
-      if (priv->signalled_rooms != NULL)
-        {
-          const GIntSet *add;
-          GIntSet *tmp;
-          add = handle_set_peek (priv->signalled_rooms);
-          tmp = handle_set_update (new_signalled_rooms, add);
-          handle_set_destroy (priv->signalled_rooms);
-          g_intset_destroy (tmp);
-        }
-      priv->signalled_rooms = new_signalled_rooms;
-      break;
-    case PROP_CONFERENCE_SERVER:
-      g_free (priv->conference_server);
-      priv->conference_server = g_value_dup_string (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void gabble_roomlist_channel_dispose (GObject *object);
-static void gabble_roomlist_channel_finalize (GObject *object);
-
-static void
-gabble_roomlist_channel_class_init (GabbleRoomlistChannelClass *gabble_roomlist_channel_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_roomlist_channel_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_roomlist_channel_class, sizeof (GabbleRoomlistChannelPrivate));
-
-  object_class->constructor = gabble_roomlist_channel_constructor;
-
-  object_class->get_property = gabble_roomlist_channel_get_property;
-  object_class->set_property = gabble_roomlist_channel_set_property;
-
-  object_class->dispose = gabble_roomlist_channel_dispose;
-  object_class->finalize = gabble_roomlist_channel_finalize;
-
-  g_object_class_override_property (object_class, PROP_OBJECT_PATH, "object-path");
-  g_object_class_override_property (object_class, PROP_CHANNEL_TYPE, "channel-type");
-  g_object_class_override_property (object_class, PROP_HANDLE_TYPE, "handle-type");
-  g_object_class_override_property (object_class, PROP_HANDLE, "handle");
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "room list channel object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-  param_spec = g_param_spec_string ("conference-server",
-                                    "Name of conference server to use",
-                                    "Name of the XMPP conference server "
-                                    "on which to list rooms",
-                                    "",
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_WRITABLE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONFERENCE_SERVER,
-                                   param_spec);
-
-  signals[CLOSED] =
-    g_signal_new ("closed",
-                  G_OBJECT_CLASS_TYPE (gabble_roomlist_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
-  signals[GOT_ROOMS] =
-    g_signal_new ("got-rooms",
-                  G_OBJECT_CLASS_TYPE (gabble_roomlist_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOXED,
-                  G_TYPE_NONE, 1, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)), G_TYPE_INVALID)))));
-
-  signals[LISTING_ROOMS] =
-    g_signal_new ("listing-rooms",
-                  G_OBJECT_CLASS_TYPE (gabble_roomlist_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOOLEAN,
-                  G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
-
-  dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (gabble_roomlist_channel_class), &dbus_glib_gabble_roomlist_channel_object_info);
-}
-
-void
-gabble_roomlist_channel_dispose (GObject *object)
-{
-  GabbleRoomlistChannel *self = GABBLE_ROOMLIST_CHANNEL (object);
-  GabbleRoomlistChannelPrivate *priv = GABBLE_ROOMLIST_CHANNEL_GET_PRIVATE (self);
-
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  if (priv->listing)
-    {
-      emit_room_signal (object);
-      g_signal_emit (object, signals [LISTING_ROOMS], 0, FALSE);
-      priv->listing = FALSE;
-    }
-
-  if (!priv->closed)
-    {
-      g_signal_emit (object, signals[CLOSED], 0);
-      priv->closed = TRUE;
-    }
-
-  if (priv->disco_pipeline != NULL)
-    {
-      gabble_disco_pipeline_destroy (priv->disco_pipeline);
-      priv->disco_pipeline = NULL;
-    }
-
-  if (priv->timer_source_id)
-    {
-      g_source_remove (priv->timer_source_id);
-      priv->timer_source_id = 0;
-    }
-
-  g_assert (priv->pending_room_signals != NULL);
-  g_assert (priv->pending_room_signals->len == 0);
-  g_ptr_array_free (priv->pending_room_signals, TRUE);
-  priv->pending_room_signals = NULL;
-
-  if (G_OBJECT_CLASS (gabble_roomlist_channel_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_roomlist_channel_parent_class)->dispose (object);
-}
-
-void
-gabble_roomlist_channel_finalize (GObject *object)
-{
-  GabbleRoomlistChannel *self = GABBLE_ROOMLIST_CHANNEL (object);
-  GabbleRoomlistChannelPrivate *priv = GABBLE_ROOMLIST_CHANNEL_GET_PRIVATE (self);
-
-  /* free any data held directly by the object here */
-
-  g_free (priv->object_path);
-  g_free (priv->conference_server);
-
-  if (priv->signalled_rooms != NULL)
-    handle_set_destroy (priv->signalled_rooms);
-
-  G_OBJECT_CLASS (gabble_roomlist_channel_parent_class)->finalize (object);
-}
-
-GabbleRoomlistChannel *
-_gabble_roomlist_channel_new (GabbleConnection *conn,
-                              const gchar *object_path,
-                              const gchar *conference_server)
-{
-  g_return_val_if_fail (GABBLE_IS_CONNECTION (conn), NULL);
-  g_return_val_if_fail (object_path != NULL, NULL);
-  g_return_val_if_fail (conference_server != NULL, NULL);
-
-  return GABBLE_ROOMLIST_CHANNEL (
-      g_object_new (GABBLE_TYPE_ROOMLIST_CHANNEL,
-                    "connection", conn,
-                    "object-path", object_path,
-                    "conference-server", conference_server, NULL));
-}
-
-static gboolean
-emit_room_signal (gpointer data)
-{
-  GabbleRoomlistChannel *chan = data;
-  GabbleRoomlistChannelPrivate *priv = GABBLE_ROOMLIST_CHANNEL_GET_PRIVATE (chan);
-
-  if (!priv->listing)
-      return FALSE;
-
-  if (priv->pending_room_signals->len == 0)
-      return TRUE;
-
-  g_signal_emit (chan, signals[GOT_ROOMS], 0, priv->pending_room_signals);
-
-  while (priv->pending_room_signals->len != 0)
-    {
-      gpointer boxed = g_ptr_array_index (priv->pending_room_signals, 0);
-      g_boxed_free (TP_TYPE_ROOM_STRUCT, boxed);
-      g_ptr_array_remove_index_fast (priv->pending_room_signals, 0);
-    }
-
-  return TRUE;
-}
-
-/**
- * destroy_value:
- * @data: a GValue to destroy
- *
- * destroys a GValue allocated on the heap
- */
-static void
-destroy_value (GValue *value)
-{
-  g_value_unset (value);
-  g_free (value);
-}
-
-static void
-room_info_cb (gpointer pipeline, GabbleDiscoItem *item, gpointer user_data)
-{
-  GabbleRoomlistChannel *chan = user_data;
-  GabbleRoomlistChannelPrivate *priv;
-  const char *jid, *category, *type, *var, *name;
-  GabbleHandle handle;
-  GHashTable *keys;
-  GValue room = {0,};
-  GValue *tmp;
-  gpointer k, v;
-
-  #define INSERT_KEY(hash, name, type, type2, value) \
-    do {\
-      tmp = g_new0 (GValue, 1); \
-      g_value_init (tmp, (type)); \
-      g_value_set_##type2 (tmp, (value)); \
-      g_hash_table_insert (hash, (name), tmp); \
-    } while (0)
-
-  g_assert (GABBLE_IS_ROOMLIST_CHANNEL (chan));
-  priv = GABBLE_ROOMLIST_CHANNEL_GET_PRIVATE (chan);
-
-  jid = item->jid;
-  name = item->name;
-  category = item->category;
-  type = item->type;
-
-  if (0 != strcmp (category, "conference") ||
-      0 != strcmp (type, "text"))
-    return;
-
-  if (!g_hash_table_lookup_extended (item->features, "http://jabber.org/protocol/muc", &k, &v))
-    {
-      /* not muc */
-      return;
-    }
-
-  gabble_debug (DEBUG_FLAG, "got room identity, name=%s, category=%s, type=%s", name, category, type);
-
-  keys = g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
-                                (GDestroyNotify) destroy_value);
-
-  INSERT_KEY (keys, "name", G_TYPE_STRING, string, name);
-
-  if (g_hash_table_lookup_extended (item->features, "muc_membersonly", &k, &v))
-    INSERT_KEY (keys, "invite-only", G_TYPE_BOOLEAN, boolean, TRUE);
-  if (g_hash_table_lookup_extended (item->features, "muc_open", &k, &v))
-    INSERT_KEY (keys, "invite-only", G_TYPE_BOOLEAN, boolean, FALSE);
-  if (g_hash_table_lookup_extended (item->features, "muc_passwordprotected", &k, &v))
-    INSERT_KEY (keys, "password", G_TYPE_BOOLEAN, boolean, TRUE);
-  if (g_hash_table_lookup_extended (item->features, "muc_unsecure", &k, &v))
-    INSERT_KEY (keys, "password", G_TYPE_BOOLEAN, boolean, FALSE);
-  if (g_hash_table_lookup_extended (item->features, "muc_unsecured", &k, &v))
-    INSERT_KEY (keys, "password", G_TYPE_BOOLEAN, boolean, FALSE);
-  if (g_hash_table_lookup_extended (item->features, "muc_hidden", &k, &v))
-    INSERT_KEY (keys, "hidden", G_TYPE_BOOLEAN, boolean, TRUE);
-  if (g_hash_table_lookup_extended (item->features, "muc_public", &k, &v))
-    INSERT_KEY (keys, "hidden", G_TYPE_BOOLEAN, boolean, FALSE);
-  if (g_hash_table_lookup_extended (item->features, "muc_membersonly", &k, &v))
-    INSERT_KEY (keys, "members-only", G_TYPE_BOOLEAN, boolean, TRUE);
-  if (g_hash_table_lookup_extended (item->features, "muc_open", &k, &v))
-    INSERT_KEY (keys, "members-only", G_TYPE_BOOLEAN, boolean, FALSE);
-  if (g_hash_table_lookup_extended (item->features, "muc_moderated", &k, &v))
-    INSERT_KEY (keys, "moderated", G_TYPE_BOOLEAN, boolean, TRUE);
-  if (g_hash_table_lookup_extended (item->features, "muc_unmoderated", &k, &v))
-    INSERT_KEY (keys, "moderated", G_TYPE_BOOLEAN, boolean, FALSE);
-  if (g_hash_table_lookup_extended (item->features, "muc_nonanonymous", &k, &v))
-    INSERT_KEY (keys, "anonymous", G_TYPE_BOOLEAN, boolean, FALSE);
-  if (g_hash_table_lookup_extended (item->features, "muc_anonymous", &k, &v))
-    INSERT_KEY (keys, "anonymous", G_TYPE_BOOLEAN, boolean, TRUE);
-  if (g_hash_table_lookup_extended (item->features, "muc_semianonymous", &k, &v))
-    INSERT_KEY (keys, "anonymous", G_TYPE_BOOLEAN, boolean, FALSE);
-  if (g_hash_table_lookup_extended (item->features, "muc_persistent", &k, &v))
-    INSERT_KEY (keys, "persistent", G_TYPE_BOOLEAN, boolean, TRUE);
-  if (g_hash_table_lookup_extended (item->features, "muc_temporary", &k, &v))
-    INSERT_KEY (keys, "persistent", G_TYPE_BOOLEAN, boolean, FALSE);
-
-  var = g_hash_table_lookup (item->features, "muc#roominfo_description");
-  if (var != NULL)
-    INSERT_KEY (keys, "description", G_TYPE_STRING, string, var);
-
-  var = g_hash_table_lookup (item->features, "muc#roominfo_occupants");
-  if (var != NULL)
-    INSERT_KEY (keys, "members", G_TYPE_UINT, uint,
-                (guint) g_ascii_strtoull (var, NULL, 10));
-
-  var = g_hash_table_lookup (item->features, "muc#roominfo_lang");
-  if (var != NULL)
-    INSERT_KEY (keys, "language", G_TYPE_STRING, string, var);
-
-  handle = gabble_handle_for_room (priv->conn->handles, jid);
-
-  handle_set_add (priv->signalled_rooms, handle);
-
-  g_value_init (&room, TP_TYPE_ROOM_STRUCT);
-  g_value_take_boxed (&room,
-      dbus_g_type_specialized_construct (TP_TYPE_ROOM_STRUCT));
-
-  dbus_g_type_struct_set (&room,
-      0, handle,
-      1, "org.freedesktop.Telepathy.Channel.Type.Text",
-      2, keys,
-      G_MAXUINT);
-
-  gabble_debug (DEBUG_FLAG, "adding new room signal data to pending: %s", jid);
-  g_ptr_array_add (priv->pending_room_signals, g_value_get_boxed (&room));
-  g_hash_table_destroy (keys);
-}
-
-static void
-rooms_end_cb (gpointer data, gpointer user_data)
-{
-  GabbleRoomlistChannel *chan = user_data;
-  GabbleRoomlistChannelPrivate *priv = GABBLE_ROOMLIST_CHANNEL_GET_PRIVATE (chan);
-
-  emit_room_signal (chan);
-
-  priv->listing = FALSE;
-  g_signal_emit (chan, signals[LISTING_ROOMS], 0, FALSE);
-
-  g_source_remove (priv->timer_source_id);
-  priv->timer_source_id = 0;
-}
-
-
-/************************* D-Bus Method definitions **************************/
-
-/**
- * gabble_roomlist_channel_close
- *
- * Implements D-Bus method Close
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roomlist_channel_close (GabbleRoomlistChannel *self,
-                               GError **error)
-{
-  g_assert (GABBLE_IS_ROOMLIST_CHANNEL (self));
-
-  gabble_debug (DEBUG_FLAG, "called on %p", self);
-
-  g_object_run_dispose (G_OBJECT (self));
-
-  return TRUE;
-}
-
-
-/**
- * gabble_roomlist_channel_get_channel_type
- *
- * Implements D-Bus method GetChannelType
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roomlist_channel_get_channel_type (GabbleRoomlistChannel *self,
-                                          gchar **ret,
-                                          GError **error)
-{
-  *ret = g_strdup (TP_IFACE_CHANNEL_TYPE_ROOM_LIST);
-  return TRUE;
-}
-
-
-/**
- * gabble_roomlist_channel_get_handle
- *
- * Implements D-Bus method GetHandle
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roomlist_channel_get_handle (GabbleRoomlistChannel *self,
-                                    guint *ret,
-                                    guint *ret1,
-                                    GError **error)
-{
-  g_assert (GABBLE_IS_ROOMLIST_CHANNEL (self));
-
-  *ret = 0;
-  *ret1 = 0;
-
-  return TRUE;
-}
-
-
-/**
- * gabble_roomlist_channel_get_interfaces
- *
- * Implements D-Bus method GetInterfaces
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roomlist_channel_get_interfaces (GabbleRoomlistChannel *self,
-                                        gchar ***ret,
-                                        GError **error)
-{
-  const char *interfaces[] = { NULL };
-
-  *ret = g_strdupv ((gchar **) interfaces);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_roomlist_channel_get_listing_rooms
- *
- * Implements D-Bus method GetListingRooms
- * on interface org.freedesktop.Telepathy.Channel.Type.RoomList
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roomlist_channel_get_listing_rooms (GabbleRoomlistChannel *self,
-                                           gboolean *ret,
-                                           GError **error)
-{
-  GabbleRoomlistChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_ROOMLIST_CHANNEL (self));
-
-  priv = GABBLE_ROOMLIST_CHANNEL_GET_PRIVATE (self);
-  *ret = priv->listing;
-  return TRUE;
-}
-
-
-/**
- * gabble_roomlist_channel_list_rooms
- *
- * Implements D-Bus method ListRooms
- * on interface org.freedesktop.Telepathy.Channel.Type.RoomList
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roomlist_channel_list_rooms (GabbleRoomlistChannel *self,
-                                    GError **error)
-{
-  GabbleRoomlistChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_ROOMLIST_CHANNEL (self));
-
-  priv = GABBLE_ROOMLIST_CHANNEL_GET_PRIVATE (self);
-
-  priv->listing = TRUE;
-  g_signal_emit (self, signals[LISTING_ROOMS], 0, TRUE);
-
-  if (priv->disco_pipeline == NULL)
-    priv->disco_pipeline = gabble_disco_pipeline_init (priv->conn->disco,
-        room_info_cb, rooms_end_cb, self);
-
-  gabble_disco_pipeline_run (priv->disco_pipeline, priv->conference_server);
-
-  priv->timer_source_id = g_timeout_add (ROOM_SIGNAL_INTERVAL,
-      emit_room_signal, self);
-
-  return TRUE;
-}
-
--- a/telepathygabble/src/gabble-roster-channel-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
- * gabble-roster-channel-signals-marshal.c 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
--- a/telepathygabble/src/gabble-roster-channel.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,812 +0,0 @@
-/*
- * gabble-roster-channel.c - Source for GabbleRosterChannel
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#define DEBUG_FLAG GABBLE_DEBUG_ROSTER
-
-#include "debug.h"
-#include "gabble-connection.h"
-#include "gintset.h"
-#include "group-mixin.h"
-#include "handle-set.h"
-#include "roster.h"
-#include "telepathy-errors.h"
-#include "telepathy-helpers.h"
-#include "telepathy-interfaces.h"
-#include "tp-channel-iface.h"
-#include "util.h"
-
-#include "gabble-roster-channel.h"
-#include "gabble-roster-channel-glue.h"
-#include "gabble-roster-channel-signals-marshal.h"
-
-#include "gabble_enums.h"
-
-#ifndef EMULATOR
-G_DEFINE_TYPE_WITH_CODE (GabbleRosterChannel, gabble_roster_channel,
-    G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_IFACE, NULL));
-#endif
-
-/* signal enum */
-enum
-{
-    CLOSED,
-    GROUP_FLAGS_CHANGED,
-    MEMBERS_CHANGED,
-    LAST_SIGNAL 
-#ifdef EMULATOR    
-    = LAST_SIGNAL_ROS_CHNL
-#endif
-    
-};
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_ros_chnl,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_ros_chnl, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(gabble_roster_channel_parent_class,gabble_ros_chnl,gpointer)
-	#define gabble_roster_channel_parent_class (*GET_WSD_VAR_NAME(gabble_roster_channel_parent_class,gabble_ros_chnl,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_ros_chnl,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_ros_chnl,s)())
-
-static void gabble_roster_channel_init (GabbleRosterChannel *self); 
-static void gabble_roster_channel_class_init (GabbleRosterChannelClass *klass); 
-static void gabble_roster_channel_class_intern_init (gpointer klass) 
-{
- gabble_roster_channel_parent_class = g_type_class_peek_parent (klass); 
- gabble_roster_channel_class_init ((GabbleRosterChannelClass*) klass);
-  }
-   
- EXPORT_C GType gabble_roster_channel_get_type (void) 
- {
-  if ((g_define_type_id == 0)) { static const GTypeInfo g_define_type_info = { sizeof (GabbleRosterChannelClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_roster_channel_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleRosterChannel), 0, (GInstanceInitFunc) gabble_roster_channel_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleRosterChannel"), &g_define_type_info, (GTypeFlags) 0); { { static const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) ((void *)0) }; g_type_add_interface_static (g_define_type_id, tp_channel_iface_get_type(), &g_implement_interface_info); } ; } } return g_define_type_id; }    ;
-		
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif
-
-
-
-/* properties */
-enum
-{
-  PROP_OBJECT_PATH = 1,
-  PROP_CHANNEL_TYPE,
-  PROP_HANDLE_TYPE,
-  PROP_HANDLE,
-  PROP_CONNECTION,
-  LAST_PROPERTY
-};
-
-/* private structure */
-typedef struct _GabbleRosterChannelPrivate GabbleRosterChannelPrivate;
-
-struct _GabbleRosterChannelPrivate
-{
-  GabbleConnection *conn;
-  char *object_path;
-  GabbleHandle handle;
-
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_ROSTER_CHANNEL_GET_PRIVATE(obj) \
-    ((GabbleRosterChannelPrivate *)obj->priv)
-
-static void
-gabble_roster_channel_init (GabbleRosterChannel *self)
-{
-  GabbleRosterChannelPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GABBLE_TYPE_ROSTER_CHANNEL, GabbleRosterChannelPrivate);
-
-  self->priv = priv;
-
-  /* allocate any data required by the object here */
-}
-
-static GObject *
-gabble_roster_channel_constructor (GType type, guint n_props,
-                                   GObjectConstructParam *props)
-{
-  GObject *obj;
-  GabbleRosterChannelPrivate *priv;
-  DBusGConnection *bus;
-  GabbleHandleRepo *handles;
-  gboolean valid;
-  GabbleHandle self_handle;
-
-  obj = G_OBJECT_CLASS (gabble_roster_channel_parent_class)->
-           constructor (type, n_props, props);
-  priv = GABBLE_ROSTER_CHANNEL_GET_PRIVATE (GABBLE_ROSTER_CHANNEL (obj));
-  handles = priv->conn->handles;
-  self_handle = priv->conn->self_handle;
-
-  /* register object on the bus */
-  bus = tp_get_bus ();
-  dbus_g_connection_register_g_object (bus, priv->object_path, obj);
-
-  /* ref our list handle */
-  valid = gabble_handle_ref (handles, TP_HANDLE_TYPE_LIST, priv->handle);
-  g_assert (valid);
-
-  /* initialize group mixin */
-  gabble_group_mixin_init (obj, G_STRUCT_OFFSET (GabbleRosterChannel, group),
-                           handles, self_handle);
-
-  if (GABBLE_LIST_HANDLE_PUBLISH == priv->handle)
-    {
-      gabble_group_mixin_change_flags (obj,
-          TP_CHANNEL_GROUP_FLAG_CAN_REMOVE |
-          TP_CHANNEL_GROUP_FLAG_MESSAGE_ACCEPT |
-          TP_CHANNEL_GROUP_FLAG_MESSAGE_REMOVE,
-          0);
-    }
-  else if (GABBLE_LIST_HANDLE_SUBSCRIBE == priv->handle)
-    {
-      gabble_group_mixin_change_flags (obj,
-          TP_CHANNEL_GROUP_FLAG_CAN_ADD |
-          TP_CHANNEL_GROUP_FLAG_CAN_REMOVE |
-          TP_CHANNEL_GROUP_FLAG_CAN_RESCIND |
-          TP_CHANNEL_GROUP_FLAG_MESSAGE_ADD |
-          TP_CHANNEL_GROUP_FLAG_MESSAGE_REMOVE |
-          TP_CHANNEL_GROUP_FLAG_MESSAGE_RESCIND,
-          0);
-    }
-  else if (GABBLE_LIST_HANDLE_KNOWN == priv->handle)
-    {
-      gabble_group_mixin_change_flags (obj,
-          TP_CHANNEL_GROUP_FLAG_CAN_REMOVE,
-          0);
-    }
-  else if (GABBLE_LIST_HANDLE_DENY == priv->handle)
-    {
-      gabble_group_mixin_change_flags (obj,
-          TP_CHANNEL_GROUP_FLAG_CAN_ADD |
-          TP_CHANNEL_GROUP_FLAG_CAN_REMOVE,
-          0);
-    }
-  else
-    {
-      g_assert_not_reached ();
-    }
-
-  return obj;
-}
-
-static void
-gabble_roster_channel_get_property (GObject    *object,
-                                    guint       property_id,
-                                    GValue     *value,
-                                    GParamSpec *pspec)
-{
-  GabbleRosterChannel *chan = GABBLE_ROSTER_CHANNEL (object);
-  GabbleRosterChannelPrivate *priv = GABBLE_ROSTER_CHANNEL_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_value_set_string (value, priv->object_path);
-      break;
-    case PROP_CHANNEL_TYPE:
-      g_value_set_static_string (value, TP_IFACE_CHANNEL_TYPE_CONTACT_LIST);
-      break;
-    case PROP_HANDLE_TYPE:
-      g_value_set_uint (value, TP_HANDLE_TYPE_LIST);
-      break;
-    case PROP_HANDLE:
-      g_value_set_uint (value, priv->handle);
-      break;
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_roster_channel_set_property (GObject     *object,
-                                    guint        property_id,
-                                    const GValue *value,
-                                    GParamSpec   *pspec)
-{
-  GabbleRosterChannel *chan = GABBLE_ROSTER_CHANNEL (object);
-  GabbleRosterChannelPrivate *priv = GABBLE_ROSTER_CHANNEL_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_free (priv->object_path);
-      priv->object_path = g_value_dup_string (value);
-      break;
-    case PROP_HANDLE:
-      priv->handle = g_value_get_uint (value);
-      break;
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void gabble_roster_channel_dispose (GObject *object);
-static void gabble_roster_channel_finalize (GObject *object);
-
-static gboolean _gabble_roster_channel_add_member_cb (GObject *obj, GabbleHandle handle, const gchar *message, GError **error);
-static gboolean _gabble_roster_channel_remove_member_cb (GObject *obj, GabbleHandle handle, const gchar *message, GError **error);
-
-static void
-gabble_roster_channel_class_init (GabbleRosterChannelClass *gabble_roster_channel_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_roster_channel_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_roster_channel_class, sizeof (GabbleRosterChannelPrivate));
-
-  object_class->constructor = gabble_roster_channel_constructor;
-
-  object_class->get_property = gabble_roster_channel_get_property;
-  object_class->set_property = gabble_roster_channel_set_property;
-
-  object_class->dispose = gabble_roster_channel_dispose;
-  object_class->finalize = gabble_roster_channel_finalize;
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "Roster channel object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-  g_object_class_override_property (object_class, PROP_OBJECT_PATH, "object-path");
-  g_object_class_override_property (object_class, PROP_CHANNEL_TYPE, "channel-type");
-  g_object_class_override_property (object_class, PROP_HANDLE_TYPE, "handle-type");
-  g_object_class_override_property (object_class, PROP_HANDLE, "handle");
-
-  signals[CLOSED] =
-    g_signal_new ("closed",
-                  G_OBJECT_CLASS_TYPE (gabble_roster_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
-  gabble_group_mixin_class_init (object_class,
-                                 G_STRUCT_OFFSET (GabbleRosterChannelClass, group_class),
-                                 _gabble_roster_channel_add_member_cb,
-                                 _gabble_roster_channel_remove_member_cb);
-
-  dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (gabble_roster_channel_class), &dbus_glib_gabble_roster_channel_object_info);
-}
-
-void
-gabble_roster_channel_dispose (GObject *object)
-{
-  GabbleRosterChannel *self = GABBLE_ROSTER_CHANNEL (object);
-  GabbleRosterChannelPrivate *priv = GABBLE_ROSTER_CHANNEL_GET_PRIVATE (self);
-
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  g_signal_emit(self, signals[CLOSED], 0);
-
-  /* release any references held by the object here */
-
-  if (G_OBJECT_CLASS (gabble_roster_channel_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_roster_channel_parent_class)->dispose (object);
-}
-
-void
-gabble_roster_channel_finalize (GObject *object)
-{
-  GabbleRosterChannel *self = GABBLE_ROSTER_CHANNEL (object);
-  GabbleRosterChannelPrivate *priv = GABBLE_ROSTER_CHANNEL_GET_PRIVATE (self);
-
-  /* free any data held directly by the object here */
-
-  g_free (priv->object_path);
-
-  gabble_handle_unref (priv->conn->handles, TP_HANDLE_TYPE_LIST, priv->handle);
-
-  gabble_group_mixin_finalize (object);
-
-  G_OBJECT_CLASS (gabble_roster_channel_parent_class)->finalize (object);
-}
-
-
-static gboolean
-_gabble_roster_channel_send_presence (GabbleRosterChannel *chan,
-                                      LmMessageSubType sub_type,
-                                      GabbleHandle handle,
-                                      const gchar *status,
-                                      GError **error)
-{
-  GabbleRosterChannelPrivate *priv;
-  GabbleHandleRepo *repo;
-  const char *contact;
-  LmMessage *message;
-  gboolean result;
-
-  priv = GABBLE_ROSTER_CHANNEL_GET_PRIVATE (chan);
-  repo = priv->conn->handles;
-  contact = gabble_handle_inspect (repo, TP_HANDLE_TYPE_CONTACT, handle);
-
-  message = lm_message_new_with_sub_type (contact,
-      LM_MESSAGE_TYPE_PRESENCE,
-      sub_type);
-
-  if (LM_MESSAGE_SUB_TYPE_SUBSCRIBE == sub_type)
-    lm_message_node_add_own_nick (message->node, priv->conn);
-
-  if (status != NULL && status[0] != '\0')
-    lm_message_node_add_child (message->node, "status", status);
-
-  result = _gabble_connection_send (priv->conn, message, error);
-
-  lm_message_unref (message);
-
-  return result;
-}
-
-
-/**
- * _gabble_roster_channel_add_member_cb
- *
- * Called by the group mixin to add one member.
- */
-static gboolean
-_gabble_roster_channel_add_member_cb (GObject *obj,
-                                      GabbleHandle handle,
-                                      const gchar *message,
-                                      GError **error)
-{
-  GabbleRosterChannelPrivate *priv;
-  GabbleHandleRepo *repo;
-  gboolean ret = FALSE;
-
-  priv = GABBLE_ROSTER_CHANNEL_GET_PRIVATE (GABBLE_ROSTER_CHANNEL (obj));
-
-  repo = priv->conn->handles;
-
-  gabble_debug (DEBUG_FLAG, "called on %s with handle %u (%s) \"%s\"", gabble_handle_inspect (repo, TP_HANDLE_TYPE_LIST, priv->handle), handle,
-      gabble_handle_inspect (repo, TP_HANDLE_TYPE_CONTACT, handle), message);
-
-  /* publish list */
-  if (GABBLE_LIST_HANDLE_PUBLISH == priv->handle)
-    {
-      /* send <presence type="subscribed"> */
-      ret = _gabble_roster_channel_send_presence (GABBLE_ROSTER_CHANNEL (obj),
-          LM_MESSAGE_SUB_TYPE_SUBSCRIBED, handle, message, error);
-    }
-  /* subscribe list */
-  else if (GABBLE_LIST_HANDLE_SUBSCRIBE == priv->handle)
-    {
-      /* add item to the roster (GTalk depends on this, clearing the H flag) */
-      gabble_roster_handle_add (priv->conn->roster, handle, NULL);
-
-      /* send <presence type="subscribe"> */
-      ret = _gabble_roster_channel_send_presence (GABBLE_ROSTER_CHANNEL (obj),
-          LM_MESSAGE_SUB_TYPE_SUBSCRIBE, handle, message, error);
-    }
-  /* deny list */
-  else if (GABBLE_LIST_HANDLE_DENY == priv->handle)
-    {
-      /* block contact */
-      ret = gabble_roster_handle_set_blocked (priv->conn->roster, handle, TRUE,
-          error);
-    }
-  else
-    {
-      g_assert_not_reached ();
-    }
-
-  return ret;
-}
-
-
-/**
- * _gabble_roster_channel_remove_member_cb
- *
- * Called by the group mixin to remove one member.
- */
-static gboolean
-_gabble_roster_channel_remove_member_cb (GObject *obj,
-                                         GabbleHandle handle,
-                                         const gchar *message,
-                                         GError **error)
-{
-  GabbleRosterChannelPrivate *priv;
-  GabbleHandleRepo *repo;
-  gboolean ret = FALSE;
-
-  priv = GABBLE_ROSTER_CHANNEL_GET_PRIVATE (GABBLE_ROSTER_CHANNEL (obj));
-
-  repo = priv->conn->handles;
-
-  gabble_debug (DEBUG_FLAG, "called on %s with handle %u (%s) \"%s\"", gabble_handle_inspect (repo, TP_HANDLE_TYPE_LIST, priv->handle), handle,
-      gabble_handle_inspect (repo, TP_HANDLE_TYPE_CONTACT, handle), message);
-
-  /* publish list */
-  if (GABBLE_LIST_HANDLE_PUBLISH == priv->handle)
-    {
-      /* send <presence type="unsubscribed"> */
-      ret = _gabble_roster_channel_send_presence (GABBLE_ROSTER_CHANNEL (obj),
-          LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED, handle, message, error);
-
-      /* remove it from local_pending here, because roster callback doesn't
-         know if it can (subscription='none' is used both during request and
-         when it's rejected) */
-      if (handle_set_is_member (GABBLE_ROSTER_CHANNEL (obj)->group.local_pending, handle))
-        {
-          GIntSet *rem = g_intset_new ();
-
-          g_intset_add (rem, handle);
-          gabble_group_mixin_change_members (obj, "", NULL, rem, NULL, NULL,
-              0, 0);
-
-          g_intset_destroy (rem);
-        }
-    }
-  /* subscribe list */
-  else if (GABBLE_LIST_HANDLE_SUBSCRIBE == priv->handle)
-    {
-      /* send <presence type="unsubscribe"> */
-      ret = _gabble_roster_channel_send_presence (GABBLE_ROSTER_CHANNEL (obj),
-          LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE, handle, message, error);
-    }
-  /* known list */
-  else if (GABBLE_LIST_HANDLE_KNOWN == priv->handle)
-    {
-      /* send roster subscription=remove IQ */
-      ret = gabble_roster_handle_remove (priv->conn->roster, handle, error);
-    }
-  /* deny list */
-  else if (GABBLE_LIST_HANDLE_DENY == priv->handle)
-    {
-      /* unblock contact */
-      ret = gabble_roster_handle_set_blocked (priv->conn->roster, handle, FALSE,
-          error);
-    }
-  else
-    {
-      g_assert_not_reached ();
-    }
-
-  return ret;
-}
-
-
-/**
- * gabble_roster_channel_add_members
- *
- * Implements D-Bus method AddMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_add_members (GabbleRosterChannel *self,
-                                   const GArray *contacts,
-                                   const gchar *message,
-                                   GError **error)
-{
-  return gabble_group_mixin_add_members (G_OBJECT (self), contacts, message,
-      error);
-}
-
-
-/**
- * gabble_roster_channel_close
- *
- * Implements D-Bus method Close
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_close (GabbleRosterChannel *self,
-                             GError **error)
-{
-  g_set_error (error, TELEPATHY_ERRORS, NotImplemented,
-      "you may not close contact list channels");
-
-  return FALSE;
-}
-
-
-/**
- * gabble_roster_channel_get_all_members
- *
- * Implements D-Bus method GetAllMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_get_all_members (GabbleRosterChannel *self,
-                                       GArray **ret,
-                                       GArray **ret1,
-                                       GArray **ret2,
-                                       GError **error)
-{
-  return gabble_group_mixin_get_all_members (G_OBJECT (self), ret, ret1, ret2,
-      error);
-}
-
-
-/**
- * gabble_roster_channel_get_channel_type
- *
- * Implements D-Bus method GetChannelType
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_get_channel_type (GabbleRosterChannel *self,
-                                        gchar **ret,
-                                        GError **error)
-{
-  *ret = g_strdup (TP_IFACE_CHANNEL_TYPE_CONTACT_LIST);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_roster_channel_get_group_flags
- *
- * Implements D-Bus method GetGroupFlags
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_get_group_flags (GabbleRosterChannel *self,
-                                       guint *ret,
-                                       GError **error)
-{
-  return gabble_group_mixin_get_group_flags (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_roster_channel_get_handle
- *
- * Implements D-Bus method GetHandle
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_get_handle (GabbleRosterChannel *self,
-                                  guint *ret,
-                                  guint *ret1,
-                                  GError **error)
-{
-  GabbleRosterChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_ROSTER_CHANNEL (self));
-
-  priv = GABBLE_ROSTER_CHANNEL_GET_PRIVATE (self);
-
-  *ret = TP_HANDLE_TYPE_LIST;
-  *ret1 = priv->handle;
-
-  return TRUE;
-}
-
-
-/**
- * gabble_roster_channel_get_handle_owners
- *
- * Implements D-Bus method GetHandleOwners
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_get_handle_owners (GabbleRosterChannel *self,
-                                         const GArray *handles,
-                                         GArray **ret,
-                                         GError **error)
-{
-  return gabble_group_mixin_get_handle_owners (G_OBJECT (self), handles, ret,
-      error);
-}
-
-
-/**
- * gabble_roster_channel_get_interfaces
- *
- * Implements D-Bus method GetInterfaces
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_get_interfaces (GabbleRosterChannel *self,
-                                      gchar ***ret,
-                                      GError **error)
-{
-  const char *interfaces[] = { TP_IFACE_CHANNEL_INTERFACE_GROUP, NULL };
-
-  *ret = g_strdupv ((gchar **) interfaces);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_roster_channel_get_local_pending_members
- *
- * Implements D-Bus method GetLocalPendingMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_get_local_pending_members (GabbleRosterChannel *self,
-                                                 GArray **ret,
-                                                 GError **error)
-{
-  return gabble_group_mixin_get_local_pending_members (G_OBJECT (self), ret,
-      error);
-}
-
-
-/**
- * gabble_roster_channel_get_members
- *
- * Implements D-Bus method GetMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_get_members (GabbleRosterChannel *self,
-                                   GArray **ret,
-                                   GError **error)
-{
-  return gabble_group_mixin_get_members (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_roster_channel_get_remote_pending_members
- *
- * Implements D-Bus method GetRemotePendingMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_get_remote_pending_members (GabbleRosterChannel *self,
-                                                  GArray **ret,
-                                                  GError **error)
-{
-  return gabble_group_mixin_get_remote_pending_members (G_OBJECT (self), ret,
-      error);
-}
-
-
-/**
- * gabble_roster_channel_get_self_handle
- *
- * Implements D-Bus method GetSelfHandle
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_get_self_handle (GabbleRosterChannel *self,
-                                       guint *ret,
-                                       GError **error)
-{
-  return gabble_group_mixin_get_self_handle (G_OBJECT (self), ret, error);
-}
-
-
-/**
- * gabble_roster_channel_remove_members
- *
- * Implements D-Bus method RemoveMembers
- * on interface org.freedesktop.Telepathy.Channel.Interface.Group
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_roster_channel_remove_members (GabbleRosterChannel *self,
-                                      const GArray *contacts,
-                                      const gchar *message,
-                                      GError **error)
-{
-  return gabble_group_mixin_remove_members (G_OBJECT (self), contacts, message,
-      error);
-}
-
--- a/telepathygabble/src/gabble-search-channel.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,680 +0,0 @@
-/*
- * gabble-im-channel.c - Source for GabbleSearchChannel
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include "loudmouth/loudmouth.h"
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-
-
-#define DEBUG_FLAG GABBLE_DEBUG_SEARCH
-
-#include "debug.h"
-#include "disco.h"
-#include "gabble-connection.h"
-#include "gabble-presence.h"
-#include "gabble-presence-cache.h"
-#include "handles.h"
-#include "roster.h"
-#include "telepathy-constants.h"
-#include "telepathy-errors.h"
-#include "telepathy-helpers.h"
-#include "telepathy-interfaces.h"
-#include "tp-channel-iface.h"
-#include "namespaces.h"
-
-#include "gabble-search-channel.h"
-#include "gabble-search-channel-glue.h"
-#include "search-mixin-signals-marshal.h"
-#include "search-mixin.h"
-
-#include "gabble_enums.h"
-
-#ifndef EMULATOR
-G_DEFINE_TYPE_WITH_CODE (GabbleSearchChannel, gabble_search_channel, G_TYPE_OBJECT,
-    G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_IFACE, NULL));
-    
-#endif
-
-/* signal enum */
-enum
-{
-    CLOSED,
-    LAST_SIGNAL 
-#ifdef EMULATOR    
-    = LAST_SIGNAL_SEARCH 
-#endif
-    
-};
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_search,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_search, s)())	
-    
-    GET_STATIC_VAR_FROM_TLS(gabble_search_channel_parent_class,gabble_search,gpointer)
-	#define gabble_search_channel_parent_class (*GET_WSD_VAR_NAME(gabble_search_channel_parent_class,gabble_search,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_search,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_search,s)())
-
-    
-static void gabble_search_channel_init (GabbleSearchChannel *self); 
-static void gabble_search_channel_class_init (GabbleSearchChannelClass *klass); 
-static void gabble_search_channel_class_intern_init (gpointer klass) 
-{
- gabble_search_channel_parent_class = g_type_class_peek_parent (klass); 
- gabble_search_channel_class_init ((GabbleSearchChannelClass*) klass); 
- } 
- EXPORT_C GType gabble_search_channel_get_type (void) 
- {
-  if ((g_define_type_id == 0)) 
-  { static const GTypeInfo g_define_type_info = 
-  		{ sizeof (GabbleSearchChannelClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_search_channel_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleSearchChannel), 0, (GInstanceInitFunc) gabble_search_channel_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleSearchChannel"), &g_define_type_info, (GTypeFlags) 0); { { static const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) ((void *)0) }; g_type_add_interface_static (g_define_type_id, tp_channel_iface_get_type(), &g_implement_interface_info); } ; } } return g_define_type_id; 
-  		};
-	
-	
-		
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif
-
-/* properties */
-enum
-{
-  PROP_OBJECT_PATH = 1,
-  PROP_CHANNEL_TYPE,
-  PROP_HANDLE_TYPE,
-  PROP_HANDLE,
-  PROP_CONNECTION,
-  LAST_PROPERTY
-};
-
-/* private structure */
-typedef struct _GabbleSearchChannelPrivate GabbleSearchChannelPrivate;
-
-struct _GabbleSearchChannelPrivate
-{
-  GabbleConnection *conn;
-  char *object_path;
-  GabbleHandle handle; 
-  gboolean closed;
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_SEARCH_CHANNEL_GET_PRIVATE(obj) \
-    ((GabbleSearchChannelPrivate *)obj->priv)
-
-static void
-gabble_search_channel_init (GabbleSearchChannel *self)
-{
-  GabbleSearchChannelPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GABBLE_TYPE_SEARCH_CHANNEL, GabbleSearchChannelPrivate);
-
-  self->priv = priv;
-}
-
-static GObject *
-gabble_search_channel_constructor (GType type, guint n_props,
-                               GObjectConstructParam *props)
-{
-  GObject *obj;
-  GabbleSearchChannelPrivate *priv;
-  DBusGConnection *bus;
- 
-  g_message("in gabble_search_channel_constructor\n");
-  obj = G_OBJECT_CLASS (gabble_search_channel_parent_class)->
-           constructor (type, n_props, props);
-  priv = GABBLE_SEARCH_CHANNEL_GET_PRIVATE (GABBLE_SEARCH_CHANNEL (obj));
-
-  bus = tp_get_bus ();
-  dbus_g_connection_register_g_object (bus, priv->object_path, obj);
-
-  
-  gabble_search_mixin_init (obj, G_STRUCT_OFFSET (GabbleSearchChannel, search_mixin));
-
-
-  return obj;
-}
-
-static void
-gabble_search_channel_get_property (GObject    *object,
-                                guint       property_id,
-                                GValue     *value,
-                                GParamSpec *pspec)
-{
-  GabbleSearchChannel *chan = GABBLE_SEARCH_CHANNEL (object);
-  GabbleSearchChannelPrivate *priv = GABBLE_SEARCH_CHANNEL_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_value_set_string (value, priv->object_path);
-      break;
-    case PROP_CHANNEL_TYPE:
-      g_value_set_static_string (value, TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH);
-      break;
-    case PROP_HANDLE_TYPE:
-      g_value_set_uint (value, TP_HANDLE_TYPE_NONE);
-      break;
-    case PROP_HANDLE:
-      g_value_set_uint (value, 0 ); 
-      break;
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_search_channel_set_property (GObject     *object,
-                                guint        property_id,
-                                const GValue *value,
-                                GParamSpec   *pspec)
-{
-  GabbleSearchChannel *chan = GABBLE_SEARCH_CHANNEL (object);
-  GabbleSearchChannelPrivate *priv = GABBLE_SEARCH_CHANNEL_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_OBJECT_PATH:
-      g_free (priv->object_path);
-      priv->object_path = g_value_dup_string (value);
-      break;
-    case PROP_HANDLE:
-      priv->handle = g_value_get_uint (value);
-      break;
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void gabble_search_channel_dispose (GObject *object);
-static void gabble_search_channel_finalize (GObject *object);
-
-static void
-gabble_search_channel_class_init (GabbleSearchChannelClass *gabble_search_channel_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_search_channel_class);
-  GParamSpec *param_spec;
-  g_message("in gabble_search_channel_class_init");
-
-  g_type_class_add_private (gabble_search_channel_class, sizeof (GabbleSearchChannelPrivate));
-
-  object_class->constructor = gabble_search_channel_constructor;
-
-  object_class->get_property = gabble_search_channel_get_property;
-  object_class->set_property = gabble_search_channel_set_property;
-
-  object_class->dispose = gabble_search_channel_dispose;
-  object_class->finalize = gabble_search_channel_finalize;
-
-  g_object_class_override_property (object_class, PROP_OBJECT_PATH, "object-path");
-  g_object_class_override_property (object_class, PROP_CHANNEL_TYPE, "channel-type");
-  g_object_class_override_property (object_class, PROP_HANDLE_TYPE, "handle-type");
-  g_object_class_override_property (object_class, PROP_HANDLE, "handle");
-
-
- 
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "Search channel object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-  signals[CLOSED] =
-    g_signal_new ("closed",
-                  G_OBJECT_CLASS_TYPE (gabble_search_channel_class),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
-  gabble_search_mixin_class_init (object_class, G_STRUCT_OFFSET (GabbleSearchChannelClass, mixin_class));
-
-  dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (gabble_search_channel_class), &dbus_glib_gabble_search_channel_object_info);
-}
-
-void
-gabble_search_channel_dispose (GObject *object)
-{
-  GabbleSearchChannel *self = GABBLE_SEARCH_CHANNEL (object);
-  GabbleSearchChannelPrivate *priv = GABBLE_SEARCH_CHANNEL_GET_PRIVATE (self);
-
-  g_message("in gabble_search_channel_dispose\n");
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  
-  if (!priv->closed)
-    g_signal_emit(self, signals[CLOSED], 0);
-
-  if (G_OBJECT_CLASS (gabble_search_channel_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_search_channel_parent_class)->dispose (object);
-}
-
-void
-gabble_search_channel_finalize (GObject *object)
-{
-  GabbleSearchChannel *self = GABBLE_SEARCH_CHANNEL (object);
-  GabbleSearchChannelPrivate *priv = GABBLE_SEARCH_CHANNEL_GET_PRIVATE (self);
-
-  g_message("in gabble_search_channel_finalize\n");
-  /* free any data held directly by the object here */
-  if( priv->object_path )
-  {
-    g_message("freeing priv->object_path in gabble_search_channel_finalize\n");
-  	g_free (priv->object_path);
-  	priv->object_path = NULL;
-  }
-  
-  //also free the data,if any, held by mixin obj
-  //gabble_search_mixin_finalize(object);
-
-  G_OBJECT_CLASS (gabble_search_channel_parent_class)->finalize (object);
-}
-
-
-
-/**
- * gabble_search_channel_close
- *
- * Implements D-Bus method Close
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_search_channel_close (GabbleSearchChannel *self,
-                         GError **error)
-{
-  GabbleSearchChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_SEARCH_CHANNEL (self));
-
-  gabble_debug (DEBUG_FLAG, "called on %p", self);
-  
-  g_message("gabble_search_channel_close");
-  priv = GABBLE_SEARCH_CHANNEL_GET_PRIVATE (self);
-  
-  if (priv->closed)
-    {
-      gabble_debug (DEBUG_FLAG, "channel already closed");
-
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "Channel already closed");
-
-      return FALSE;
-    }
-
-  
-  priv->closed = TRUE;
-
-  g_signal_emit (self, signals[CLOSED], 0);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_search_channel_get_channel_type
- *
- * Implements D-Bus method GetChannelType
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_search_channel_get_channel_type (GabbleSearchChannel *self,
-                                    gchar **ret,
-                                    GError **error)
-{
-  *ret = g_strdup (TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_search_channel_get_interfaces
- *
- * Implements D-Bus method GetInterfaces
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_search_channel_get_interfaces (GabbleSearchChannel *self,
-                                  gchar ***ret,
-                                  GError **error)
-{
-  const char *interfaces[] = { NULL };
-
-  *ret = g_strdupv ((gchar **) interfaces);
-
-  return TRUE;
-}
-
-
-/**
- * gabble_search_channel_search
- *
- * Implements D-Bus method Search
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_search_channel_search (	GabbleSearchChannel *self,
-                                  GHashTable *params,
-                        			GError **error
-                        	  )
-{
-  GabbleSearchChannelPrivate *priv;
-  
-  g_message("In gabble_search_channel_search: serachchan is %u\n",self);
-
-  g_assert (GABBLE_IS_SEARCH_CHANNEL (self));
-  priv = GABBLE_SEARCH_CHANNEL_GET_PRIVATE (self);
-
-  return gabble_search_mixin_search (G_OBJECT (self), params,
-     									priv->conn, error);
-  
-}
-
-/**
- * gabble_search_channel_get_search_state
- *
- * Implements D-Bus method GetSearchState
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_search_channel_get_search_state (	GabbleSearchChannel *self,
-                                  			guint *ret,
-                        					GError **error
-                        	  			)
-{
-  g_message("In gabble_search_channel_get_search_state\n");
-  return gabble_search_mixin_get_search_state (G_OBJECT (self),ret, error);
- }
- 
-
-/**
- * gabble_search_channel_get_handle
- *
- * Implements D-Bus method GetHandle
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_search_channel_get_handle (GabbleSearchChannel *self,
-                              guint *ret,
-                              guint *ret1,
-                              GError **error)
-{
-  GabbleSearchChannelPrivate *priv;
-
-  g_assert (GABBLE_IS_SEARCH_CHANNEL (self));
-
-  priv = GABBLE_SEARCH_CHANNEL_GET_PRIVATE (self);
-
-  *ret = TP_HANDLE_TYPE_NONE;
-  //search channel doesnt correspond to any particular handle 
-  *ret1 = 0; 
-
-  return TRUE;
-}
-
-/**
- * TODO: this method may be modified in future to get the search key types 
- * as dbus-glib binding tool doesnt support 'g' type signature 
- * Also this method should be able to give value
- * for the options for list-single or list-multi type search keys if required
- * gabble_search_channel_get_search_keys
- *
- * Implements D-Bus method GetSearchKeys
- * on interface org.freedesktop.Telepathy.Channel
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns FALSE.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_search_channel_get_search_keys (	GabbleSearchChannel *self,
-										gchar **ret_instruction, 
-										gchar ***ret_searchkeys,
-		                        		GError **error
-                        	  		   )
-{
-  GabbleSearchChannelPrivate *priv;
-  
-  g_message("In gabble_search_channel_get_search_keys: serachchan is %u\n",self);
-  
-  g_assert (GABBLE_IS_SEARCH_CHANNEL (self));
-  priv = GABBLE_SEARCH_CHANNEL_GET_PRIVATE (self);
-  
-  return gabble_search_mixin_get_search_keys (G_OBJECT (self),ret_instruction,
-  												ret_searchkeys,
-  												priv->conn, error);
- }
-
-
-/**
- * search_channel_iq_cb:
- *
- * Called by loudmouth when we get an incoming <iq>. This handler
- * is concerned only with search queries, and allows other handlers
- * if queries other than search are received.
- */
- 
-LmHandlerResult
-search_channel_iq_cb (LmMessageHandler *handler,
-					  LmConnection *lmconn,
-					  LmMessage *message,
-					  gpointer user_data)
-{
-  GabbleSearchChannel *chan = GABBLE_SEARCH_CHANNEL (user_data);
-  GabbleSearchChannelPrivate *priv = NULL;
-  GabbleSearchMixin *mixin = NULL;
-  
-  LmMessageNode *iq_node, *query_node;
-  LmMessageSubType sub_type;
-  
-  LmMessageNode *x_node, *x_item_node, *result_node;
-  const char  *x_node_type;
-  const gchar **from = NULL; 
-  
-  GHashTable *results = NULL;
-  guint contact_handle = 0;
-
-  
-  g_message("in search_channel_iq_cb: user data - chan is : %u\n", chan);
-  
-  sub_type = lm_message_get_sub_type (message); 
-  
-  if (sub_type != LM_MESSAGE_SUB_TYPE_RESULT)
-    {
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-  iq_node = lm_message_get_node (message);
-  query_node = lm_message_node_get_child_with_namespace (iq_node, "query",
-      NS_SEARCH);
-
-  if (query_node == NULL || chan == NULL)
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-  
-    
-  
-  priv= GABBLE_SEARCH_CHANNEL_GET_PRIVATE (chan);
-  mixin = GABBLE_SEARCH_MIXIN (chan);
-  
-           		
-  x_node = lm_message_node_get_child_with_namespace (query_node, "x", NS_X_DATA);
-	
-  if( x_node )
-	{
-	    //if service supports data forms 
-    	result_node = x_node; 
-		x_node_type   = lm_message_node_get_attribute (x_node, "type" );
-		if (0 != strcmp (x_node_type, "result"))
-		{
-		 //this can be for search_keys_iq_cb 
-		 //callback received as result of request to get search key fields
-		 return LM_HANDLER_RESULT_REMOVE_MESSAGE;	
-		}
-		//if(type == NULL), do some error handling   
-	}
-		
-   else
-    	result_node = query_node;	
-		
-	
-   for (x_item_node = result_node->children; x_item_node; x_item_node = x_item_node->next)
-	{
-	   	 LmMessageNode *item_node, *node;
-	  	 GHashTable *search_result = NULL;
-	  	 gboolean reported_field_has_type = FALSE;
-	  	 
-	  	 
-	  	 if(!search_result)
-	  	 	search_result = g_hash_table_new_full(g_str_hash, g_str_equal, NULL,NULL);
-	  	 
-	  	 //there should be only one reported field
-  	 	 //Later "reported" should also be used to get the types of search result fields
-	  	 //'g' type currently not supported by dbus-glib-binding
-	  	 if (0 != strcmp (x_item_node->name, "item") )
-        	continue;
-       	 
-       	 contact_handle = 0;
-       	 
-	  	 //x_item_node is an item node
-	  	 //get the field nodes from each item node
-	  	 for (node = x_item_node->children; node; node = node->next)
-	      	{
-		      	const gchar *key, *value;
-		        LmMessageNode *value_node;
-		      	GValue *val = g_new0(GValue, 1); 
-		      	LmMessageNode *reported_field_node;     
-		      	
-		            	
-		      	if (0 != strcmp (node->name, "field"))
-        		continue;
-		      	
-		      	//node is a field or reported node
-		      	//get the name, type and value of each field
-		      	key = lm_message_node_get_attribute(node, "var");
-		  		      	
-		       	value_node = lm_message_node_get_child(node, "value");
-		      	 
-		      	value = lm_message_node_get_value(value_node);
-		      	
-		      	if(0 == strcmp (key, "jid"))
-			      	{
-			      	g_message("getting contact_handle\n");
-			      	contact_handle = gabble_handle_for_contact (priv->conn->handles, value, FALSE);
-			      	}
-		      	
-		      	g_value_init (val, G_TYPE_STRING);
-		      	//"val" should be a struct with members "var" and "type"
-				g_value_set_string (val, g_strdup(value) );
-		      	g_hash_table_insert(search_result,g_strdup(key),val);
-		      
-	      	}
-	    
-	    
-	    g_message("search results: %u",g_hash_table_size(search_result));
-	     //emit the signal for search result received 
-	     _gabble_search_mixin_emit_search_result_received(G_OBJECT (chan),contact_handle, search_result);
-	    
-	     g_hash_table_destroy(search_result);
-	}
-
-  
-  //if no search results, service must return empty query element
-  //so emit the signal for the same
-  if(!contact_handle)
-	  {
-	  			
-	  	if(!results)
-			results = g_hash_table_new_full(g_str_hash, g_str_equal, NULL,NULL);
-	  		 
-	  	 _gabble_search_mixin_emit_search_result_received(G_OBJECT (chan),contact_handle, results);
-	     g_hash_table_destroy(results);
-
-	  }
-  
-  //search state should be completed 
-  g_message("b4 set search state changed \n"); 
-  _gabble_search_mixin_set_search_state(G_OBJECT (chan), TP_CHANNEL_CONTACT_SEARCH_STATE_AFTER); 
-   
-  //search request completed now, emit the signal for search state changed
- g_message("b4 emiiting search state changed signal\n"); 
-  _gabble_search_mixin_emit_search_state_changed(G_OBJECT (chan),TP_CHANNEL_CONTACT_SEARCH_STATE_AFTER);
-  
- return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-
-
--- a/telepathygabble/src/gabble.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-/*
- * gabble.h - entry point and utility functions for telepathy-gabble
- * Copyright (C) 2005 Collabora Ltd.
- * Portions  and/or its subsidiary/subsidiaris. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include "config.h"
-
-#include <dbus/dbus-glib.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#ifdef HAVE_EXECINFO_H
-#include <execinfo.h>
-#endif /* HAVE_EXECINFO_H */
-
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif /* HAVE_SIGNAL_H */
-
-#include "debug.h"
-#include "gabble-connection-manager.h"
-#include "telepathy-errors.h"
-#include "telepathy-errors-enumtypes.h"
-
-GSource *timeout = NULL;
-GMainLoop *mainloop = NULL;
-GabbleConnectionManager *manager = NULL;
-gboolean connections_exist = FALSE;
-guint timeout_id;
-
-#define DIE_TIME 5000
-
-static gboolean
-kill_connection_manager (gpointer data)
-{
-    g_debug ("%s: in kill_connection_manager", G_STRFUNC);
-#ifdef ENABLE_DEBUG
-  if (!gabble_debug_flag_is_set (GABBLE_DEBUG_PERSIST) && !connections_exist)
-#else
-  if (!connections_exist)
-#endif
-    {
-      g_debug ("no connections, and timed out");
-      g_object_unref (manager);
-      g_main_loop_quit (mainloop);
-    }
-
-  timeout_id = 0;
-  g_debug ("%s: out kill_connection_manager", G_STRFUNC);
-  return FALSE;
-}
-
-static void
-new_connection (GabbleConnectionManager *conn,
-                gchar *bus_name,
-                gchar *object_path,
-                gchar *proto)
-{
-  connections_exist = TRUE;
-
-  if (0 != timeout_id)
-    {
-      g_source_remove (timeout_id);
-    }
-}
-
-static void
-no_more_connections (GabbleConnectionManager *conn)
-{
-  connections_exist = FALSE;
-  g_debug ("%s: in no more connections", G_STRFUNC);
-  if (0 != timeout_id)
-    {
-      g_source_remove (timeout_id);
-    }
-
-  timeout_id = g_timeout_add (DIE_TIME, kill_connection_manager, NULL);
-  g_debug ("%s: out no more connections", G_STRFUNC);
-}
-
-#ifdef ENABLE_BACKTRACE
-static void
-print_backtrace (void)
-{
-#if defined (HAVE_BACKTRACE) && defined (HAVE_BACKTRACE_SYMBOLS_FD)
-  void *array[20];
-  size_t size;
-
-#define MSG "\n########## Backtrace (version " VERSION ") ##########\n"
-  write (STDERR_FILENO, MSG, strlen (MSG));
-#undef MSG
-
-  size = backtrace (array, 20);
-  backtrace_symbols_fd (array, size, STDERR_FILENO);
-#endif /* HAVE_BACKTRACE && HAVE_BACKTRACE_SYMBOLS_FD */
-}
-
-static void
-critical_handler (const gchar *log_domain,
-                  GLogLevelFlags log_level,
-                  const gchar *message,
-                  gpointer user_data)
-{
-  g_log_default_handler (log_domain, log_level, message, user_data);
-  print_backtrace ();
-}
-
-#ifdef HAVE_SIGNAL
-static void
-segv_handler (int sig)
-{
-#define MSG "caught SIGSEGV\n"
-  write (STDERR_FILENO, MSG, strlen (MSG));
-#undef MSG
-
-  print_backtrace ();
-  abort ();
-}
-#endif /* HAVE_SIGNAL */
-
-#endif /* ENABLE_BACKTRACE */
-
-static void
-add_signal_handlers (void)
-{
-#if defined(HAVE_SIGNAL) && defined(ENABLE_BACKTRACE)
-  signal (SIGSEGV, segv_handler);
-#endif /* HAVE_SIGNAL && ENABLE_BACKTRACE */
-}
-
-
-main (int argc,
-      char **argv)
-/* bsr      main (int argc,
-      char **argv)*/
-{
-  add_signal_handlers ();
-  g_type_init();
-
-  g_set_prgname("telepathy-gabble");
-
-/* bsr #ifdef ENABLE_DEBUG*/
-  gabble_debug_set_flags_from_env ();
-//_dbus_setenv ("DBUS_VERBOSE","1");
-
-  if (g_getenv ("GABBLE_PERSIST"))
-    gabble_debug_set_flags (0xffff);
-/*#endif bsr */
-
-    {
-      GLogLevelFlags fatal_mask;
-
-      fatal_mask = g_log_set_always_fatal (G_LOG_FATAL_MASK);
-      fatal_mask |= G_LOG_LEVEL_CRITICAL;
-      g_log_set_always_fatal (fatal_mask);
-
-#ifdef ENABLE_BACKTRACE
-      g_log_set_handler ("GLib-GObject",
-          G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_ERROR |
-          G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
-          critical_handler, NULL);
-      g_log_set_handler ("GLib",
-          G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_ERROR |
-          G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
-          critical_handler, NULL);
-      g_log_set_handler (NULL,
-          G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_ERROR |
-          G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
-          critical_handler, NULL);
-#endif /* ENABLE_BACKTRACE */
-    }
-
-  g_message("before gabble mainloop new \n");
-  //getchar();
- /* exit(1); */
-  mainloop = g_main_loop_new (NULL, FALSE);
-
-  dbus_g_error_domain_register (TELEPATHY_ERRORS,
-      "org.freedesktop.Telepathy.Error", TELEPATHY_TYPE_ERRORS);
-
-  g_message("after dbus_g_error_domain_register \n");
-  //getchar();
-  
-  manager = g_object_new (GABBLE_TYPE_CONNECTION_MANAGER, /*"name","GabbleConnectionManager",*/ NULL); /* bsr */
-  g_assert (manager != NULL);
-  g_message("after g_object_new \n");
-  //getchar();
-
-  g_signal_connect (manager, "new-connection",
-      (GCallback) new_connection, NULL);
-  g_message("after g_signal_connect \n");
-  //getchar();
-
-  g_signal_connect (manager, "no-more-connections",
-      (GCallback) no_more_connections, NULL);
-
-  g_message("calling gabble_connection_manager_register \n");
-  _gabble_connection_manager_register (manager);
-
-  g_message("started version " VERSION);
-
-  timeout_id = g_timeout_add (DIE_TIME, kill_connection_manager, NULL);
-
-  g_main_loop_run (mainloop);
-  g_message("extign tg \n");
-  return 0;
-}
--- a/telepathygabble/src/gheap.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
- * Header file for GHeap
- *
- * Copyright (C) 2006 Nokia Corporation. All rights reserved.
- *
- * Contact: Olli Salli (Nokia-M/Helsinki) <olli.salli@nokia.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <glib.h>
-#include "gheap.h"
-
-#define DEFAULT_SIZE 64
-
-struct _GHeap
-{
-  GPtrArray *data;
-  GCompareFunc comparator;
-};
-
-
-GHeap *
-g_heap_new (GCompareFunc comparator)
-{
-  GHeap *ret = g_slice_new (GHeap);
-  g_assert (comparator != NULL);
-
-  ret->data = g_ptr_array_sized_new (DEFAULT_SIZE);
-  ret->comparator = comparator;
-
-  return ret;
-}
-
-void
-g_heap_destroy (GHeap * heap)
-{
-  g_return_if_fail (heap != NULL);
-
-  g_ptr_array_free (heap->data, TRUE);
-  g_slice_free (GHeap, heap);
-}
-
-void
-g_heap_clear (GHeap *heap)
-{
-  g_return_if_fail (heap != NULL);
-
-  g_ptr_array_free (heap->data, TRUE);
-  heap->data = g_ptr_array_sized_new (DEFAULT_SIZE);
-}
-
-#define HEAP_INDEX(heap, index) (g_ptr_array_index ((heap)->data, (index)-1))
-
-
-void
-g_heap_add (GHeap *heap, gpointer element)
-{
-  guint m;
-
-  g_return_if_fail (heap != NULL);
-
-  g_ptr_array_add (heap->data, element);
-  m = heap->data->len;
-  while (m != 1)
-    {
-      gpointer parent = HEAP_INDEX (heap, m / 2);
-
-      if (heap->comparator (element, parent) == -1)
-        {
-          HEAP_INDEX (heap, m / 2) = element;
-          HEAP_INDEX (heap, m) = parent;
-          m /= 2;
-        }
-      else
-        break;
-    }
-}
-
-
-gpointer
-g_heap_peek_first (GHeap *heap)
-{
-  g_return_val_if_fail (heap != NULL, NULL);
-
-  if (heap->data->len > 0)
-    return HEAP_INDEX (heap, 1);
-  else
-    return NULL;
-}
-
-
-gpointer
-g_heap_extract_first (GHeap * heap)
-{
-  gpointer ret;
-
-  g_return_val_if_fail (heap != NULL, NULL);
-
-  if (heap->data->len > 0)
-    {
-      guint m = heap->data->len;
-      guint i = 1, j;
-      ret = HEAP_INDEX (heap, 1);
-
-      HEAP_INDEX (heap, 1) = HEAP_INDEX (heap, m);
-
-      while (i * 2 <= m)
-        {
-          /* select the child which is supposed to come FIRST */
-          if ((i * 2 + 1 <= m)
-              && (heap->
-                  comparator (HEAP_INDEX (heap, i * 2),
-                              HEAP_INDEX (heap, i * 2 + 1)) == 1))
-            j = i * 2 + 1;
-          else
-            j = i * 2;
-
-          if (heap->comparator (HEAP_INDEX (heap, i), HEAP_INDEX (heap, j)) ==
-              1)
-            {
-              gpointer tmp = HEAP_INDEX (heap, i);
-              HEAP_INDEX (heap, i) = HEAP_INDEX (heap, j);
-              HEAP_INDEX (heap, j) = tmp;
-              i = j;
-            }
-          else
-            break;
-        }
-
-      g_ptr_array_remove_index (heap->data, m - 1);
-    }
-  else
-    ret = NULL;
-
-  return ret;
-}
-
-
-guint
-g_heap_size (GHeap *heap)
-{
-  g_return_val_if_fail (heap != NULL, 0);
-
-  return heap->data->len;
-}
--- a/telepathygabble/src/gintset.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,450 +0,0 @@
-/* gintset.c - Source for a Glib-link set of integers
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
- */
-
-#include <string.h>
-#include <glib.h>
-#include "gintset.h"
-
-#define DEFAULT_SIZE 16
-#define DEFAULT_INCREMENT 8
-#define DEFAULT_INCREMENT_LOG2 3
-
-struct _GIntSet
-{
-  guint32 *bits;
-  guint size;
-};
-
-static GIntSet *
-_g_intset_new_with_size (guint size)
-{
-  GIntSet *set = g_new (GIntSet, 1);
-  set->size = MAX (size, DEFAULT_SIZE);
-  set->bits = g_new0 (guint32, set->size);
-  return set;
-}
-
-
-GIntSet *
-g_intset_new ()
-{
-  return _g_intset_new_with_size (DEFAULT_SIZE);
-}
-
-/**
- * g_intset_destroy:
- * @set: set
- *
- * delete the set
- */
-
-void
-g_intset_destroy (GIntSet *set)
-{
-  g_return_if_fail (set != NULL);
-
-  g_free (set->bits);
-  g_free (set);
-}
-
-/**
- * g_intset_clear:
- * @set : set
- *
- * Unset every integer in the set.
- */
-void
-g_intset_clear (GIntSet *set)
-{
-  g_return_if_fail (set != NULL);
-
-  memset (set->bits, 0, set->size * sizeof (guint32));
-}
-
-/**
- * g_intset_add:
- * @set: set
- * @element: integer to add
- *
- * Add an integer into a GIntSet
- */
-
-void
-g_intset_add (GIntSet *set, guint element)
-{
-  guint offset;
-  guint newsize;
-
-  g_return_if_fail (set != NULL);
-
-  offset = element >> 5;
-
-  if (offset >= set->size)
-  {
-    newsize = ((offset>>DEFAULT_INCREMENT_LOG2) +1 ) << DEFAULT_INCREMENT_LOG2;
-    set->bits = g_renew(guint32, set->bits, newsize);
-    memset (set->bits + set->size, 0, sizeof(guint32) * (newsize - set->size));
-    set->size = newsize;
-    g_assert(offset<newsize);
-  }
-  set->bits[offset] = set->bits[offset] | (1<<(element & 0x1f));
-}
-
-/**
- * g_intset_remove:
- * @set: set
- * @element: integer to add
- *
- * Remove an integer from a GIntSet
- * Returns: TRUE if element was in set
- */
- 
-gboolean
-g_intset_remove (GIntSet *set, guint element)
-{
-  guint offset;
-  guint mask;
-
-  g_return_val_if_fail (set != NULL, FALSE);
-
-  offset = element >> 5;
-  mask = 1 << (element & 0x1f);
-  if (offset >= set->size)
-    return FALSE;
-  else if (!(set->bits[offset] & mask))
-    return FALSE;
-  else
-    {
-      set->bits[offset] &= ~mask;
-      return TRUE;
-    }
-}
-
-/**
- * g_intset_is_member:
- * @set: set
- * @element: integer to test
- *
- * Tests if @element is a member of @set
- * Returns: TRUE if element was in set
- */
- 
-gboolean
-g_intset_is_member (const GIntSet *set, guint element)
-{
-  guint offset;
-
-  g_return_val_if_fail (set != NULL, FALSE);
-
-  offset = element >> 5;
-  if (offset >= set->size)
-    return FALSE;
-  else
-    return (set->bits[offset] & (1 << (element & 0x1f)));
-}
-
-/**
- * g_intset_foreach:
- * @set: set
- * @func: @GIntFunc to use to iterate the set
- * @userdata: user data to pass to each call of @func
- *
- * Iterates every member of the set calling @func
- */
-
-void
-g_intset_foreach (const GIntSet *set, GIntFunc func, gpointer userdata)
-{
-  guint i, j;
-
-  g_return_if_fail (set != NULL);
-  g_return_if_fail (func != NULL);
-
-  for (i = 0; i < set->size; i++)
-    {
-      if (set->bits[i])
-        for (j = 0; j < 32; j++)
-          {
-            if (set->bits[i] & 1 << j)
-              func (i * 32 + j, userdata);
-          }
-    }
-}
-
-
-static void
-addint (guint32 i, gpointer data)
-{
-  GArray *array = (GArray *) data;
-  g_array_append_val (array, i);
-}
-
-/**
- * g_intset_to_array:
- * @set: set to convert
- * Convert a gintset to an array, allocates the array for you, hence you
- * must free it after use.
- */
-
-GArray *
-g_intset_to_array (GIntSet *set)
-{
-  GArray *array;
-
-  g_return_val_if_fail (set != NULL, NULL);
-
-  array = g_array_new (FALSE, TRUE, sizeof (guint32));
-
-  g_intset_foreach (set, addint, array);
-
-  return array;
-}
-
-
-GIntSet *
-g_intset_from_array (GArray *array)
-{
-  GIntSet *set;
-  guint32 max, i;
-
-  g_return_val_if_fail (array != NULL, NULL);
-
-  /* look at the 1st, last and middle values in the array to get an
-   * approximation of the largest */
-  max = 0;
-  if (array->len > 0)
-    max = g_array_index (array, guint32, 0);
-  if (array->len > 1)
-    max = MAX (max, g_array_index (array, guint32, array->len - 1));
-  if (array->len > 2)
-    max = MAX (max, g_array_index (array, guint32, (array->len - 1) >> 1));
-  set = _g_intset_new_with_size (1 + (max >> 5));
-
-  for (i = 0; i < array->len; i++)
-    {
-      g_intset_add (set, g_array_index (array, guint32, i));
-    }
-
-  return set;
-}
-
-
-guint
-g_intset_size (const GIntSet *set)
-{
-  guint i, count = 0;
-  guint32 n;
-
-  g_return_val_if_fail (set != NULL, 0);
-
-  for (i = 0; i < set->size; i++)
-    {
-      n = set->bits[i];
-      n = n - ((n >> 1) & 033333333333) - ((n >> 2) & 011111111111);
-      count += ((n + (n >> 3)) & 030707070707) % 63;
-    }
-
-  return count;
-}
-
-
-gboolean
-g_intset_is_equal (const GIntSet *left, const GIntSet *right)
-{
-  const GIntSet *large, *small;
-  guint i;
-
-  g_return_val_if_fail (left != NULL, FALSE);
-  g_return_val_if_fail (right != NULL, FALSE);
-
-  if (left->size > right->size)
-    {
-      large = left;
-      small = right;
-    }
-  else
-    {
-      large = right;
-      small = left;
-    }
-
-  for (i = 0; i < small->size; i++)
-    {
-      if (large->bits[i] != small->bits[i])
-        return FALSE;
-    }
-
-  for (i = small->size; i < large->size; i++)
-    {
-      if (large->bits[i] != 0)
-        return FALSE;
-    }
-
-  return TRUE;
-}
-
-GIntSet *
-g_intset_copy (const GIntSet *orig)
-{
-  GIntSet *ret;
-
-  g_return_val_if_fail (orig != NULL, NULL);
-
-  ret = _g_intset_new_with_size (orig->size);
-  memcpy (ret->bits, orig->bits, (ret->size * sizeof (guint32)));
-
-  return ret;
-}
-
-
-GIntSet *
-g_intset_intersection (const GIntSet *left, const GIntSet *right)
-{
-  const GIntSet *large, *small;
-  GIntSet *ret;
-  guint i;
-
-  g_return_val_if_fail (left != NULL, NULL);
-  g_return_val_if_fail (right != NULL, NULL);
-
-  if (left->size > right->size)
-    {
-      large = left;
-      small = right;
-    }
-  else
-    {
-      large = right;
-      small = left;
-    }
-
-  ret = g_intset_copy (small);
-
-  for (i = 0; i < ret->size; i++)
-    {
-      ret->bits[i] &= large->bits[i];
-    }
-
-  return ret;
-}
-
-
-GIntSet *
-g_intset_union (const GIntSet *left, const GIntSet *right)
-{
-  const GIntSet *large, *small;
-  GIntSet *ret;
-  guint i;
-
-  g_return_val_if_fail (left != NULL, NULL);
-  g_return_val_if_fail (right != NULL, NULL);
-
-  if (left->size > right->size)
-    {
-      large = left;
-      small = right;
-    }
-  else
-    {
-      large = right;
-      small = left;
-    }
-
-  ret = g_intset_copy (large);
-
-  for (i = 0; i < small->size; i++)
-    {
-      ret->bits[i] |= small->bits[i];
-    }
-
-  return ret;
-}
-
-
-GIntSet *
-g_intset_difference (const GIntSet *left, const GIntSet *right)
-{
-  GIntSet *ret;
-  guint i;
-
-  g_return_val_if_fail (left != NULL, NULL);
-  g_return_val_if_fail (right != NULL, NULL);
-
-  ret = g_intset_copy (left);
-
-  for (i = 0; i < MIN (right->size, left->size); i++)
-    {
-      ret->bits[i] &= ~right->bits[i];
-    }
-
-  return ret;
-}
-
-
-GIntSet *
-g_intset_symmetric_difference (const GIntSet *left, const GIntSet *right)
-{
-  const GIntSet *large, *small;
-  GIntSet *ret;
-  guint i;
-
-  g_return_val_if_fail (left != NULL, NULL);
-  g_return_val_if_fail (right != NULL, NULL);
-
-  if (left->size > right->size)
-    {
-      large = left;
-      small = right;
-    }
-  else
-    {
-      large = right;
-      small = left;
-    }
-
-  ret = g_intset_copy (large);
-
-  for (i = 0; i < small->size; i++)
-    {
-      ret->bits[i] ^= small->bits[i];
-    }
-
-  return ret;
-}
-
-static void
-_dump_foreach (guint i, gpointer data)
-{
-   GString *tmp = (GString *) data;
-
-  if (tmp->len == 0)
-    g_string_append_printf (tmp, "%d", i);
-  else
-    g_string_append_printf (tmp, " %d", i);
-}
-
-gchar *
-g_intset_dump (const GIntSet *set)
-{
-  GString *tmp = g_string_new ("");
-
-  g_intset_foreach (set, _dump_foreach, tmp);
-  return g_string_free (tmp, FALSE);
-}
--- a/telepathygabble/src/group-mixin-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-/*
- * group-mixin-signals-marshal.c 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:UINT,UINT (group-mixin-signals-marshal.list:1) */
-void
-group_mixin_marshal_VOID__UINT_UINT (GClosure     *closure,
-                                     GValue       *return_value,
-                                     guint         n_param_values,
-                                     const GValue *param_values,
-                                     gpointer      invocation_hint,
-                                     gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer     data1,
-                                                guint        arg_1,
-                                                guint        arg_2,
-                                                gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            data2);
-}
-
-/* VOID:STRING,BOXED,BOXED,BOXED,BOXED,UINT,UINT (group-mixin-signals-marshal.list:2) */
-void
-group_mixin_marshal_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT (GClosure     *closure,
-                                                                    GValue       *return_value,
-                                                                    guint         n_param_values,
-                                                                    const GValue *param_values,
-                                                                    gpointer      invocation_hint,
-                                                                    gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT) (gpointer     data1,
-                                                                               gpointer     arg_1,
-                                                                               gpointer     arg_2,
-                                                                               gpointer     arg_3,
-                                                                               gpointer     arg_4,
-                                                                               gpointer     arg_5,
-                                                                               guint        arg_6,
-                                                                               guint        arg_7,
-                                                                               gpointer     data2);
-  register GMarshalFunc_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 8);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_string (param_values + 1),
-            g_marshal_value_peek_boxed (param_values + 2),
-            g_marshal_value_peek_boxed (param_values + 3),
-            g_marshal_value_peek_boxed (param_values + 4),
-            g_marshal_value_peek_boxed (param_values + 5),
-            g_marshal_value_peek_uint (param_values + 6),
-            g_marshal_value_peek_uint (param_values + 7),
-            data2);
-}
-
--- a/telepathygabble/src/group-mixin.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,785 +0,0 @@
-/*
- * group-mixin.c - Source for GabbleGroupMixin
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *   @author Robert McQueen <robert.mcqueen@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include <stdio.h>
-
-#include "ansi.h"
-#include "debug.h"
-#include "telepathy-errors.h"
-
-
-#include "group-mixin.h"
-#include "group-mixin-signals-marshal.h"
-
-#define DEBUG_FLAG GABBLE_DEBUG_GROUPS
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(offset_quark1,gabble_grp_mixin,GQuark)
-	#define offset_quark1 (*GET_WSD_VAR_NAME(offset_quark1,gabble_grp_mixin, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(offset_quark,gabble_grp_mixin,GQuark)
-	#define offset_quark (*GET_WSD_VAR_NAME(offset_quark,gabble_grp_mixin, s)())	
-	
-	
-#endif
-
-static const char *group_change_reason_str(guint reason)
-{
-  switch (reason)
-    {
-    case TP_CHANNEL_GROUP_CHANGE_REASON_NONE:
-      return "unspecified reason";
-    case TP_CHANNEL_GROUP_CHANGE_REASON_OFFLINE:
-      return "offline";
-    case TP_CHANNEL_GROUP_CHANGE_REASON_KICKED:
-      return "kicked";
-    case TP_CHANNEL_GROUP_CHANGE_REASON_BUSY:
-      return "busy";
-    case TP_CHANNEL_GROUP_CHANGE_REASON_INVITED:
-      return "invited";
-    case TP_CHANNEL_GROUP_CHANGE_REASON_BANNED:
-      return "banned";
-    default:
-      return "(unknown reason code)";
-    }
-}
-
-struct _GabbleGroupMixinPrivate {
-    GabbleHandleSet *actors;
-    GHashTable *handle_owners;
-};
-
-
-/**
- * gabble_group_mixin_class_get_offset_quark:
- *
- * Returns: the quark used for storing mixin offset on a GObjectClass
- */
-GQuark
-gabble_group_mixin_class_get_offset_quark ()
-{
-#ifndef EMULATOR
-  static GQuark offset_quark1 = 0;
-#endif
-  
-  if (!offset_quark1)
-    offset_quark1 = g_quark_from_static_string("GroupMixinClassOffsetQuark");
-  return offset_quark1;
-}
-
-/**
- * gabble_group_mixin_get_offset_quark:
- *
- * Returns: the quark used for storing mixin offset on a GObject
- */
-GQuark
-gabble_group_mixin_get_offset_quark ()
-{
-#ifndef EMULATOR
-  static GQuark offset_quark = 0;
-#endif
-  
-  if (!offset_quark)
-    offset_quark = g_quark_from_static_string("GroupMixinOffsetQuark");
-  return offset_quark;
-}
-
-void gabble_group_mixin_class_init (GObjectClass *obj_cls,
-                                    glong offset,
-                                    GabbleGroupMixinAddMemberFunc add_func,
-                                    GabbleGroupMixinRemMemberFunc rem_func)
-{
-  GabbleGroupMixinClass *mixin_cls;
-
-  g_assert (G_IS_OBJECT_CLASS (obj_cls));
-
-  g_type_set_qdata (G_OBJECT_CLASS_TYPE (obj_cls),
-                    GABBLE_GROUP_MIXIN_CLASS_OFFSET_QUARK,
-                    GINT_TO_POINTER (offset));
-
-  mixin_cls = GABBLE_GROUP_MIXIN_CLASS (obj_cls);
-
-  mixin_cls->add_member = add_func;
-  mixin_cls->remove_member = rem_func;
-
-  mixin_cls->group_flags_changed_signal_id =
-    g_signal_new ("group-flags-changed",
-                  G_OBJECT_CLASS_TYPE (obj_cls),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  group_mixin_marshal_VOID__UINT_UINT,
-                  G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
-
-  mixin_cls->members_changed_signal_id =
-    g_signal_new ("members-changed",
-                  G_OBJECT_CLASS_TYPE (obj_cls),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  group_mixin_marshal_VOID__STRING_BOXED_BOXED_BOXED_BOXED_UINT_UINT,
-                  G_TYPE_NONE, 7, G_TYPE_STRING, DBUS_TYPE_G_UINT_ARRAY, DBUS_TYPE_G_UINT_ARRAY, DBUS_TYPE_G_UINT_ARRAY, DBUS_TYPE_G_UINT_ARRAY, G_TYPE_UINT, G_TYPE_UINT);
-}
-
-void gabble_group_mixin_init (GObject *obj,
-                              glong offset,
-                              GabbleHandleRepo *handle_repo,
-                              GabbleHandle self_handle)
-{
-  GabbleGroupMixin *mixin;
-
-  g_assert (G_IS_OBJECT (obj));
-
-  g_type_set_qdata (G_OBJECT_TYPE (obj),
-                    GABBLE_GROUP_MIXIN_OFFSET_QUARK,
-                    GINT_TO_POINTER (offset));
-
-  mixin = GABBLE_GROUP_MIXIN (obj);
-
-  mixin->handle_repo = handle_repo;
-  mixin->self_handle = self_handle;
-
-  mixin->group_flags = 0;
-
-  mixin->members = handle_set_new (handle_repo, TP_HANDLE_TYPE_CONTACT);
-  mixin->local_pending = handle_set_new (handle_repo, TP_HANDLE_TYPE_CONTACT);
-  mixin->remote_pending = handle_set_new (handle_repo, TP_HANDLE_TYPE_CONTACT);
-
-  mixin->priv = g_new0 (GabbleGroupMixinPrivate, 1);
-  mixin->priv->handle_owners = g_hash_table_new (g_direct_hash, g_direct_equal);
-  mixin->priv->actors = handle_set_new (handle_repo, TP_HANDLE_TYPE_CONTACT);
-}
-
-static void
-handle_owners_foreach_unref (gpointer key,
-                             gpointer value,
-                             gpointer user_data)
-{
-  GabbleGroupMixin *mixin = user_data;
-
-  gabble_handle_unref (mixin->handle_repo, TP_HANDLE_TYPE_CONTACT,
-                       GPOINTER_TO_UINT (key));
-  gabble_handle_unref (mixin->handle_repo, TP_HANDLE_TYPE_CONTACT,
-                       GPOINTER_TO_UINT (value));
-}
-
-void gabble_group_mixin_finalize (GObject *obj)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-
-  handle_set_destroy (mixin->priv->actors);
-
-  g_hash_table_foreach (mixin->priv->handle_owners,
-                        handle_owners_foreach_unref,
-                        mixin);
-
-  g_hash_table_destroy (mixin->priv->handle_owners);
-
-  g_free (mixin->priv);
-
-  handle_set_destroy (mixin->members);
-  handle_set_destroy (mixin->local_pending);
-  handle_set_destroy (mixin->remote_pending);
-}
-
-gboolean
-gabble_group_mixin_get_self_handle (GObject *obj, guint *ret, GError **error)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-
-  if (handle_set_is_member (mixin->members, mixin->self_handle) ||
-      handle_set_is_member (mixin->local_pending, mixin->self_handle) ||
-      handle_set_is_member (mixin->remote_pending, mixin->self_handle))
-    {
-      *ret = mixin->self_handle;
-    }
-  else
-    {
-      *ret = 0;
-    }
-
-  return TRUE;
-}
-
-gboolean
-gabble_group_mixin_get_group_flags (GObject *obj, guint *ret, GError **error)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-
-  *ret = mixin->group_flags;
-
-  return TRUE;
-}
-
-gboolean
-gabble_group_mixin_add_members (GObject *obj, const GArray *contacts, const gchar *message, GError **error)
-{
-  GabbleGroupMixinClass *mixin_cls = GABBLE_GROUP_MIXIN_CLASS (G_OBJECT_GET_CLASS (obj));
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-  guint i;
-  GabbleHandle handle;
-
-  /* reject invalid handles */
-  if (!gabble_handles_are_valid (mixin->handle_repo,
-                                 TP_HANDLE_TYPE_CONTACT,
-                                 contacts,
-                                 FALSE,
-                                 error))
-    return FALSE;
-
-  /* check that adding is allowed by flags */
-  for (i = 0; i < contacts->len; i++)
-    {
-      handle = g_array_index (contacts, GabbleHandle, i);
-
-      if ((mixin->group_flags & TP_CHANNEL_GROUP_FLAG_CAN_ADD) == 0 &&
-          !handle_set_is_member (mixin->local_pending, handle))
-        {
-          gabble_debug (DEBUG_FLAG, "handle %u cannot be added to members without GROUP_FLAG_CAN_ADD",
-              handle);
-
-          g_set_error (error, TELEPATHY_ERRORS, PermissionDenied,
-              "handle %u cannot be added to members without GROUP_FLAG_CAN_ADD",
-              handle);
-
-          return FALSE;
-        }
-    }
-
-  /* add handle by handle */
-  for (i = 0; i < contacts->len; i++)
-    {
-      handle = g_array_index (contacts, GabbleHandle, i);
-
-      if (handle_set_is_member (mixin->members, handle))
-        {
-          gabble_debug (DEBUG_FLAG, "handle %u is already a member, skipping", handle);
-
-          continue;
-        }
-
-      if (!mixin_cls->add_member (obj, handle, message, error))
-        {
-          return FALSE;
-        }
-    }
-
-  return TRUE;
-}
-
-gboolean
-gabble_group_mixin_remove_members (GObject *obj, const GArray *contacts, const gchar *message, GError **error)
-{
-  GabbleGroupMixinClass *mixin_cls = GABBLE_GROUP_MIXIN_CLASS (G_OBJECT_GET_CLASS (obj));
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-  guint i;
-  GabbleHandle handle;
-
-  /* reject invalid handles */
-  if (!gabble_handles_are_valid (mixin->handle_repo,
-                                 TP_HANDLE_TYPE_CONTACT,
-                                 contacts,
-                                 FALSE,
-                                 error))
-    return FALSE;
-
-  /* check removing is allowed by flags */
-  for (i = 0; i < contacts->len; i++)
-    {
-      handle = g_array_index (contacts, GabbleHandle, i);
-
-      if (handle_set_is_member (mixin->members, handle))
-        {
-          if ((mixin->group_flags & TP_CHANNEL_GROUP_FLAG_CAN_REMOVE) == 0)
-            {
-              gabble_debug (DEBUG_FLAG, "handle %u cannot be removed from members without GROUP_FLAG_CAN_REMOVE",
-                  handle);
-
-              g_set_error (error, TELEPATHY_ERRORS, PermissionDenied,
-                  "handle %u cannot be removed from members without GROUP_FLAG_CAN_REMOVE",
-                  handle);
-
-              return FALSE;
-            }
-        }
-      else if (handle_set_is_member (mixin->remote_pending, handle))
-        {
-          if ((mixin->group_flags & TP_CHANNEL_GROUP_FLAG_CAN_RESCIND) == 0)
-            {
-              gabble_debug (DEBUG_FLAG, "handle %u cannot be removed from remote pending without GROUP_FLAG_CAN_RESCIND",
-                  handle);
-
-              g_set_error (error, TELEPATHY_ERRORS, PermissionDenied,
-                  "handle %u cannot be removed from remote pending without GROUP_FLAG_CAN_RESCIND",
-                  handle);
-
-              return FALSE;
-            }
-        }
-      else if (!handle_set_is_member (mixin->local_pending, handle))
-        {
-          gabble_debug (DEBUG_FLAG, "handle %u is not a current or pending member",
-                   handle);
-
-          g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-              "handle %u is not a current or pending member", handle);
-
-          return FALSE;
-        }
-    }
-
-  /* remove handle by handle */
-  for (i = 0; i < contacts->len; i++)
-    {
-      handle = g_array_index (contacts, GabbleHandle, i);
-
-      if (!mixin_cls->remove_member (obj, handle, message, error))
-        {
-          return FALSE;
-        }
-    }
-
-  return TRUE;
-}
-
-gboolean
-gabble_group_mixin_get_members (GObject *obj, GArray **ret, GError **error)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-
-  *ret = handle_set_to_array (mixin->members);
-
-  return TRUE;
-}
-
-gboolean
-gabble_group_mixin_get_local_pending_members (GObject *obj, GArray **ret, GError **error)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-
-  *ret = handle_set_to_array (mixin->local_pending);
-
-  return TRUE;
-}
-
-gboolean
-gabble_group_mixin_get_remote_pending_members (GObject *obj, GArray **ret, GError **error)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-
-  *ret = handle_set_to_array (mixin->remote_pending);
-
-  return TRUE;
-}
-
-gboolean
-gabble_group_mixin_get_all_members (GObject *obj, GArray **ret, GArray **ret1, GArray **ret2, GError **error)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-
-  *ret = handle_set_to_array (mixin->members);
-  *ret1 = handle_set_to_array (mixin->local_pending);
-  *ret2 = handle_set_to_array (mixin->remote_pending);
-
-  return TRUE;
-}
-
-gboolean
-gabble_group_mixin_get_handle_owners (GObject *obj,
-                                      const GArray *handles,
-                                      GArray **ret,
-                                      GError **error)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-  GabbleGroupMixinPrivate *priv = mixin->priv;
-  guint i;
-
-  if ((mixin->group_flags &
-        TP_CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES) == 0)
-    {
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "channel doesn't have channel specific handles");
-
-      return FALSE;
-    }
-
-  if (!gabble_handles_are_valid (mixin->handle_repo, TP_HANDLE_TYPE_CONTACT,
-                                 handles, FALSE, error))
-    {
-      return FALSE;
-    }
-
-  *ret = g_array_sized_new (FALSE, FALSE, sizeof (GabbleHandle), handles->len);
-
-  for (i = 0; i < handles->len; i++)
-    {
-      GabbleHandle local_handle = g_array_index (handles, GabbleHandle, i);
-      GabbleHandle owner_handle;
-
-      if (!handle_set_is_member (mixin->members, local_handle))
-        {
-          g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-              "handle %u is not a member", local_handle);
-
-          g_array_free (*ret, TRUE);
-          *ret = NULL;
-
-          return FALSE;
-        }
-
-      owner_handle = GPOINTER_TO_UINT (
-          g_hash_table_lookup (priv->handle_owners,
-                               GUINT_TO_POINTER (local_handle)));
-
-      g_array_append_val (*ret, owner_handle);
-    }
-
-  return TRUE;
-}
-
-#define GFTS_APPEND_FLAG_IF_SET(flag) \
-  if (flags & flag) \
-    { \
-      if (i++ > 0) \
-        g_string_append (str, "|"); \
-      g_string_append (str, #flag + 22); \
-    }
-
-static gchar *
-group_flags_to_string (TpChannelGroupFlags flags)
-{
-  gint i = 0;
-  GString *str;
-
-  str = g_string_new ("[" ANSI_BOLD_OFF);
-
-  GFTS_APPEND_FLAG_IF_SET (TP_CHANNEL_GROUP_FLAG_CAN_ADD);
-  GFTS_APPEND_FLAG_IF_SET (TP_CHANNEL_GROUP_FLAG_CAN_REMOVE);
-  GFTS_APPEND_FLAG_IF_SET (TP_CHANNEL_GROUP_FLAG_CAN_RESCIND);
-  GFTS_APPEND_FLAG_IF_SET (TP_CHANNEL_GROUP_FLAG_MESSAGE_ADD);
-  GFTS_APPEND_FLAG_IF_SET (TP_CHANNEL_GROUP_FLAG_MESSAGE_REMOVE);
-  GFTS_APPEND_FLAG_IF_SET (TP_CHANNEL_GROUP_FLAG_MESSAGE_ACCEPT);
-  GFTS_APPEND_FLAG_IF_SET (TP_CHANNEL_GROUP_FLAG_MESSAGE_REJECT);
-  GFTS_APPEND_FLAG_IF_SET (TP_CHANNEL_GROUP_FLAG_MESSAGE_RESCIND);
-
-  g_string_append (str, ANSI_BOLD_ON "]");
-
-  return g_string_free (str, FALSE);
-}
-
-/**
- * gabble_group_mixin_change_flags:
- *
- * Request a change to be made to the flags. Emits the
- * signal with the changes which were made.
- */
-void
-gabble_group_mixin_change_flags (GObject *obj,
-                                 TpChannelGroupFlags add,
-                                 TpChannelGroupFlags remove)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-  GabbleGroupMixinClass *mixin_cls = GABBLE_GROUP_MIXIN_CLASS (G_OBJECT_GET_CLASS (obj));
-  TpChannelGroupFlags added, removed;
-
-  added = add & ~mixin->group_flags;
-  mixin->group_flags |= added;
-
-  removed = remove & mixin->group_flags;
-  mixin->group_flags &= ~removed;
-
-  if (add != 0 || remove != 0)
-    {
-      gchar *str_added, *str_removed, *str_flags;
-
-      if (DEBUGGING)
-        {
-          str_added = group_flags_to_string (added);
-          str_removed = group_flags_to_string (removed);
-          str_flags = group_flags_to_string (mixin->group_flags);
-
-          g_message (ANSI_BOLD_ON ANSI_FG_WHITE
-                  "%s: emitting group flags changed\n"
-                  "  added    : %s\n"
-                  "  removed  : %s\n"
-                  "  flags now: %s\n" ANSI_RESET,
-                  G_STRFUNC, str_added, str_removed, str_flags);
-
-          fflush (stdout);
-
-          g_free (str_added);
-          g_free (str_removed);
-          g_free (str_flags);
-        }
-
-      g_signal_emit(obj, mixin_cls->group_flags_changed_signal_id, 0, added, removed);
-    }
-}
-
-static gchar *
-member_array_to_string (GabbleHandleRepo *repo, const GArray *array)
-{
-  GString *str;
-  guint i;
-
-  str = g_string_new ("[" ANSI_BOLD_OFF);
-
-  for (i = 0; i < array->len; i++)
-    {
-      GabbleHandle handle;
-      const gchar *handle_str;
-
-      handle = g_array_index (array, guint32, i);
-      handle_str = gabble_handle_inspect (repo, TP_HANDLE_TYPE_CONTACT, handle);
-
-      g_string_append_printf (str, "%s%u (%s)",
-          (i > 0) ? "\n              " : "",
-          handle, handle_str);
-    }
-
-  g_string_append (str, ANSI_BOLD_ON "]");
-
-  return g_string_free (str, FALSE);
-}
-
-static void remove_handle_owners_if_exist (GObject *obj, GArray *array);
-
-/**
- * gabble_group_mixin_change_members:
- *
- * Request members to be added, removed or marked as local or remote pending.
- * Changes member sets, references, and emits the MembersChanged signal.
- */
-gboolean
-gabble_group_mixin_change_members (GObject *obj,
-                                   const gchar *message,
-                                   GIntSet *add,
-                                   GIntSet *remove,
-                                   GIntSet *local_pending,
-                                   GIntSet *remote_pending,
-                                   GabbleHandle actor,
-                                   guint reason)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-  GabbleGroupMixinClass *mixin_cls = GABBLE_GROUP_MIXIN_CLASS (G_OBJECT_GET_CLASS (obj));
-  GIntSet *new_add, *new_remove, *new_local_pending,
-          *new_remote_pending, *tmp, *tmp2, *empty;
-  gboolean ret;
-
-  empty = g_intset_new ();
-
-  if (add == NULL)
-    add = empty;
-
-  if (remove == NULL)
-    remove = empty;
-
-  if (local_pending == NULL)
-    local_pending = empty;
-
-  if (remote_pending == NULL)
-    remote_pending = empty;
-
-  /* members + add */
-  new_add = handle_set_update (mixin->members, add);
-
-  /* members - remove */
-  new_remove = handle_set_difference_update (mixin->members, remove);
-
-  /* members - local_pending */
-  tmp = handle_set_difference_update (mixin->members, local_pending);
-  g_intset_destroy (tmp);
-
-  /* members - remote_pending */
-  tmp = handle_set_difference_update (mixin->members, remote_pending);
-  g_intset_destroy (tmp);
-
-
-  /* local pending + local_pending */
-  new_local_pending = handle_set_update (mixin->local_pending, local_pending);
-
-  /* local pending - add */
-  tmp = handle_set_difference_update (mixin->local_pending, add);
-  g_intset_destroy (tmp);
-
-  /* local pending - remove */
-  tmp = handle_set_difference_update (mixin->local_pending, remove);
-  tmp2 = g_intset_union (new_remove, tmp);
-  g_intset_destroy (new_remove);
-  g_intset_destroy (tmp);
-  new_remove = tmp2;
-
-  /* local pending - remote_pending */
-  tmp = handle_set_difference_update (mixin->local_pending, remote_pending);
-  g_intset_destroy (tmp);
-
-
-  /* remote pending + remote_pending */
-  new_remote_pending = handle_set_update (mixin->remote_pending, remote_pending);
-
-  /* remote pending - add */
-  tmp = handle_set_difference_update (mixin->remote_pending, add);
-  g_intset_destroy (tmp);
-
-  /* remote pending - remove */
-  tmp = handle_set_difference_update (mixin->remote_pending, remove);
-  tmp2 = g_intset_union (new_remove, tmp);
-  g_intset_destroy (new_remove);
-  g_intset_destroy (tmp);
-  new_remove = tmp2;
-
-  /* remote pending - local_pending */
-  tmp = handle_set_difference_update (mixin->remote_pending, local_pending);
-  g_intset_destroy (tmp);
-
-  if (g_intset_size (new_add) > 0 ||
-      g_intset_size (new_remove) > 0 ||
-      g_intset_size (new_local_pending) > 0 ||
-      g_intset_size (new_remote_pending) > 0)
-    {
-      GArray *arr_add, *arr_remove, *arr_local, *arr_remote;
-      gchar *add_str, *rem_str, *local_str, *remote_str;
-
-      /* translate intsets to arrays */
-      arr_add = g_intset_to_array (new_add);
-      arr_remove = g_intset_to_array (new_remove);
-      arr_local = g_intset_to_array (new_local_pending);
-      arr_remote = g_intset_to_array (new_remote_pending);
-
-      /* remove any handle owner mappings */
-      remove_handle_owners_if_exist (obj, arr_remove);
-
-      if (DEBUGGING)
-        {
-          add_str = member_array_to_string (mixin->handle_repo, arr_add);
-          rem_str = member_array_to_string (mixin->handle_repo, arr_remove);
-          local_str = member_array_to_string (mixin->handle_repo, arr_local);
-          remote_str = member_array_to_string (mixin->handle_repo, arr_remote);
-
-          g_message (ANSI_BOLD_ON ANSI_FG_CYAN
-                  "%s: emitting members changed\n"
-                  "  message       : \"%s\"\n"
-                  "  added         : %s\n"
-                  "  removed       : %s\n"
-                  "  local_pending : %s\n"
-                  "  remote_pending: %s\n"
-                  "  actor         : %u\n"
-                  "  reason        : %u: %s\n" ANSI_RESET,
-                  G_STRFUNC, message, add_str, rem_str, local_str, remote_str,
-                  actor, reason, group_change_reason_str(reason));
-
-          fflush (stdout);
-
-          g_free (add_str);
-          g_free (rem_str);
-          g_free (local_str);
-          g_free (remote_str);
-        }
-
-      if (actor)
-        {
-          handle_set_add (mixin->priv->actors, actor);
-        }
-      /* emit signal */
-      g_signal_emit(obj, mixin_cls->members_changed_signal_id, 0,
-                    message,
-                    arr_add, arr_remove,
-                    arr_local, arr_remote,
-                    actor, reason);
-
-      /* free arrays */
-      g_array_free (arr_add, TRUE);
-      g_array_free (arr_remove, TRUE);
-      g_array_free (arr_local, TRUE);
-      g_array_free (arr_remote, TRUE);
-
-      ret = TRUE;
-    }
-  else
-    {
-      gabble_debug (DEBUG_FLAG, "not emitting signal, nothing changed");
-
-      ret = FALSE;
-    }
-
-  /* free intsets */
-  g_intset_destroy (new_add);
-  g_intset_destroy (new_remove);
-  g_intset_destroy (new_local_pending);
-  g_intset_destroy (new_remote_pending);
-  g_intset_destroy (empty);
-
-  return ret;
-}
-
-void
-gabble_group_mixin_add_handle_owner (GObject *obj,
-                                     GabbleHandle local_handle,
-                                     GabbleHandle owner_handle)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-  GabbleGroupMixinPrivate *priv = mixin->priv;
-
-  g_hash_table_insert (priv->handle_owners, GUINT_TO_POINTER (local_handle),
-                       GUINT_TO_POINTER (owner_handle));
-
-  gabble_handle_ref (mixin->handle_repo, TP_HANDLE_TYPE_CONTACT,
-                     local_handle);
-  gabble_handle_ref (mixin->handle_repo, TP_HANDLE_TYPE_CONTACT,
-                     owner_handle);
-}
-
-static void
-remove_handle_owners_if_exist (GObject *obj, GArray *array)
-{
-  GabbleGroupMixin *mixin = GABBLE_GROUP_MIXIN (obj);
-  GabbleGroupMixinPrivate *priv = mixin->priv;
-  guint i;
-
-  for (i = 0; i < array->len; i++)
-    {
-      GabbleHandle handle = g_array_index (array, guint32, i);
-      gpointer local_handle, owner_handle;
-
-      if (g_hash_table_lookup_extended (priv->handle_owners,
-                                        GUINT_TO_POINTER (handle),
-                                        &local_handle,
-                                        &owner_handle))
-        {
-          gabble_handle_unref (mixin->handle_repo, TP_HANDLE_TYPE_CONTACT,
-                               GPOINTER_TO_UINT (local_handle));
-          gabble_handle_unref (mixin->handle_repo, TP_HANDLE_TYPE_CONTACT,
-                               GPOINTER_TO_UINT (owner_handle));
-
-          g_hash_table_remove (priv->handle_owners, GUINT_TO_POINTER (handle));
-        }
-    }
-}
-
--- a/telepathygabble/src/handle-set.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-/*
- * handle-set.c - a set which refs a handle when inserted
- *
- * Copyright (C) 2005,2006 Collabora Ltd.
- *
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
- */
-#include <glib.h>
-#include "gintset.h"
-#include "handles.h"
-
-#include "handle-set.h"
-
-struct _GabbleHandleSet
-{
-  GabbleHandleRepo *repo;
-  GIntSet *intset;
-  TpHandleType type;
-};
-
-/**
- * handle_set_new:
- * @repo: #GabbleHandleRepo that holds the handles to be reffed by this set
- *
- * Creates a new #GabbleHandleSet
- *
- * Returns: A new #GabbleHandleSet
- */
-
-GabbleHandleSet *
-handle_set_new (GabbleHandleRepo *repo, TpHandleType type)
-{
-  GabbleHandleSet *set = g_new(GabbleHandleSet, 1);
-  set->intset = g_intset_new();
-  set->repo = repo;
-  set->type = type;
-
-  return set;
-}
-
-static void
-freer (GabbleHandleSet *set, GabbleHandle handle, gpointer userdata)
-{
-  handle_set_remove (set, handle);
-}
-
-/**
- * handle_set_destroy:
- * @set:#GabbleHandleSet to destroy
- *
- * Delete a #GabbleHandleSet and unreference any handles that it holds
- */
-
-void
-handle_set_destroy (GabbleHandleSet *set)
-{
-  handle_set_foreach (set, freer, NULL);
-  g_intset_destroy (set->intset);
-  g_free (set);
-}
-
-/**
- * handle_set_peek:
- * @set:#GabbleHandleSet to peek at
- *
- * Get the underlying GIntSet used by this GabbleHandleSet
- */
-GIntSet *
-handle_set_peek (GabbleHandleSet *set)
-{
-  return set->intset;
-}
-
-/**
- * handle_set_add:
- * @set: #GabbleHandleSet to add this handle to
- * @handle: handle to add
- *
- * Add a handle to a #GabbleHandleSet,and reference it in the attched
- * #GabbleHandleRepo
- *
- */
-
-void
-handle_set_add (GabbleHandleSet *set, GabbleHandle handle)
-{
-  g_return_if_fail (set != NULL);
-  g_return_if_fail (handle != 0);
-
-  if (!g_intset_is_member(set->intset, handle))
-    {
-      g_return_if_fail (gabble_handle_ref (set->repo, set->type, handle));
-
-      g_intset_add (set->intset, handle);
-    }
-}
-
-/**
- * handle_set_remove:
- * @set: #GabbleHandleSet to remove this handle from
- * @handle: handle to remove
- * @type: type of handle
- *
- * Remove a handle to a #GabbleHandleSet,and unreference it in the attched
- * #GabbleHandleRepo
- *
- * Returns: FALSE if the (handle,type) pair was invalid, or was not in this set
- */
-
-
-gboolean
-handle_set_remove (GabbleHandleSet *set, GabbleHandle handle)
-{
-  g_return_val_if_fail (set != NULL, FALSE);
-  g_return_val_if_fail (handle != 0, FALSE);
-
-  if (g_intset_is_member(set->intset, handle))
-    {
-      g_return_val_if_fail (gabble_handle_unref (set->repo, set->type, handle), FALSE);
-
-      g_intset_remove (set->intset, handle);
-      return TRUE;
-    }
-
-  return FALSE;
-}
-
-/**
- * handle_set_is_member:
- * @set: A #GabbleHandleSet
- * @handle: handle to check
- * @type: type of handle
- *
- * Check if the (handle,type) pair is in this set
- *
- * Returns: TRUE if the (handle,type) pair is in this repo
- *
- */
- 
-gboolean
-handle_set_is_member (GabbleHandleSet *set, GabbleHandle handle)
-{
-  return g_intset_is_member(set->intset, handle);
-}
-
-typedef struct __foreach_data
-{
-  GabbleHandleSet *set;
-  GabbleHandleFunc func;
-  gpointer userdata;
-} _foreach_data;
-
-static void
-foreach_helper(guint i, gpointer userdata)
-{
-  _foreach_data *data = (_foreach_data*) userdata;
-
-  data->func(data->set, i, data->userdata);
-}
-
-void
-handle_set_foreach (GabbleHandleSet *set, GabbleHandleFunc func, gpointer userdata)
-{
-  _foreach_data data; /*= {set, func, userdata};*/
-  data.set = set;
-  data.func = func;
-  data.userdata = userdata;
-  g_intset_foreach (set->intset, foreach_helper, &data);
-}
-
-
-int
-handle_set_size (GabbleHandleSet *set)
-{
-  return g_intset_size (set->intset);
-}
-
-GArray *handle_set_to_array (GabbleHandleSet *set)
-{
-  g_return_val_if_fail (set != NULL, NULL);
-
-  return g_intset_to_array (set->intset);
-}
-
-static void
-ref_one (guint handle, gpointer data)
-{
-  GabbleHandleSet *set = (GabbleHandleSet *) data;
-  gabble_handle_ref (set->repo, set->type, handle);
-}
-
-/**
- * handle_set_update:
- * @set: a #GabbleHandleSet to update
- * @add: a #GIntSet of handles to add
- *
- * Add a set of handles to a handle set, referencing those which are not
- * already members. The GIntSet returned must be freed with g_intset_destroy.
- *
- * Returns: the handles which were added
- */
-
-GIntSet *
-handle_set_update (GabbleHandleSet *set, const GIntSet *add)
-{
-  GIntSet *ret, *tmp;
-
-  g_return_val_if_fail (set != NULL, NULL);
-  g_return_val_if_fail (add != NULL, NULL);
-
-  /* reference each of ADD - CURRENT */
-  ret = g_intset_difference (add, set->intset);
-  g_intset_foreach (ret, ref_one, set);
-
-  /* update CURRENT to be the union of CURRENT and ADD */
-  tmp = g_intset_union (add, set->intset);
-  g_intset_destroy (set->intset);
-  set->intset = tmp;
-
-  return ret;
-}
-
-static void
-unref_one (guint handle, gpointer data)
-{
-  GabbleHandleSet *set = (GabbleHandleSet *) data;
-  gabble_handle_unref (set->repo, set->type, handle);
-}
-
-/**
- * handle_set_difference_update:
- * @set: a #GabbleHandleSet to update
- * @remove: a #GIntSet of handles to remove
- *
- * Remove a set of handles from a handle set, dereferencing those which are
- * members. The GIntSet returned must be freed with g_intset_destroy.
- *
- * Returns: the handles which were removed
- */
-
-GIntSet *
-handle_set_difference_update (GabbleHandleSet *set, const GIntSet *remove)
-{
-  GIntSet *ret, *tmp;
-
-  g_return_val_if_fail (set != NULL, NULL);
-  g_return_val_if_fail (remove != NULL, NULL);
-
-  /* dereference each of REMOVE n CURRENT */
-  ret = g_intset_intersection (remove, set->intset);
-  g_intset_foreach (ret, unref_one, set);
-
-  /* update CURRENT to be CURRENT - REMOVE */
-  tmp = g_intset_difference (set->intset, remove);
-  g_intset_destroy (set->intset);
-  set->intset = tmp;
-
-  return ret;
-}
--- a/telepathygabble/src/handles.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,985 +0,0 @@
-/*
- * handles.c - mechanism to store and retrieve handles on a connection
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <glib.h>
-#include <dbus/dbus-glib.h>
-#include <string.h>
-
-#include "gheap.h"
-#include "handles.h"
-#include "handle-set.h"
-#include "telepathy-errors.h"
-#include "telepathy-helpers.h"
-#include "util.h"
-
-#include "config.h"
-
-#ifdef ENABLE_HANDLE_LEAK_DEBUG
-#include <stdlib.h>
-#include <stdio.h>
-#include <execinfo.h>
-
-	
-typedef struct _HandleLeakTrace HandleLeakTrace;
-
-struct _HandleLeakTrace
-{
-  char **trace;
-  int len;
-};
-
-static void
-handle_leak_trace_free (HandleLeakTrace *hltrace)
-{
-  free (hltrace->trace);
-  g_free (hltrace);
-}
-
-static void
-handle_leak_trace_free_gfunc (gpointer data, gpointer user_data)
-{
-  return handle_leak_trace_free ((HandleLeakTrace *) data);
-}
-
-#endif /* ENABLE_HANDLE_LEAK_DEBUG */
-
-/*#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-	
-	gchar** _s_handles_list_handle_strings() { return (gchar**)((libgabble_ImpurePtr()->_s_handles_list_handle_strings)); }
-
-	#define list_handle_strings (GET_WSD_VAR_NAME(list_handle_strings,handles, s)())	
-	
-#endif*/
-	
-	
-typedef struct _GabbleHandlePriv GabbleHandlePriv;
-
-struct _GabbleHandlePriv
-{
-  guint refcount;
-  gchar *string;
-#ifdef ENABLE_HANDLE_LEAK_DEBUG
-  GSList *traces;
-#endif /* ENABLE_HANDLE_LEAK_DEBUG */
-  GData *datalist;
-};
-
-struct _GabbleHandleRepo
-{
-  GHashTable *contact_handles;
-  GHashTable *room_handles;
-  GData *list_handles;
-  GHashTable *contact_strings;
-  GHashTable *room_strings;
-  GHeap *free_contact_handles;
-  GHeap *free_room_handles;
-  guint contact_serial;
-  guint room_serial;
-  GData *client_contact_handle_sets;
-  GData *client_room_handle_sets;
-  DBusGProxy *bus_service_proxy;
-};
-
-//#ifndef EMULATOR
-static const char *list_handle_strings[GABBLE_LIST_HANDLE_DENY] =
-{
-    "publish",      /* GABBLE_LIST_HANDLE_PUBLISH */
-    "subscribe",    /* GABBLE_LIST_HANDLE_SUBSCRIBE */
-    "known",        /* GABBLE_LIST_HANDLE_KNOWN */
-    "deny"          /* GABBLE_LIST_HANDLE_DENY */
-};
-//#endif
-
-/* private functions */
-
-static GabbleHandlePriv *
-handle_priv_new ()
-{
-  GabbleHandlePriv *priv;
-
-  priv = g_new0 (GabbleHandlePriv, 1);
-
-  g_datalist_init (&(priv->datalist));
-  return priv;
-}
-
-static void
-handle_priv_free (GabbleHandlePriv *priv)
-{
-  g_assert (priv != NULL);
-
-  g_free(priv->string);
-  g_datalist_clear (&(priv->datalist));
-#ifdef ENABLE_HANDLE_LEAK_DEBUG
-  g_slist_foreach (priv->traces, handle_leak_trace_free_gfunc, NULL);
-  g_slist_free (priv->traces);
-#endif /* ENABLE_HANDLE_LEAK_DEBUG */
-  g_free (priv);
-}
-
-static GabbleHandlePriv *
-handle_priv_lookup (GabbleHandleRepo *repo,
-                    TpHandleType type,
-                    GabbleHandle handle)
-{
-  GabbleHandlePriv *priv = NULL;
-
-  g_assert (repo != NULL);
-  g_assert (gabble_handle_type_is_valid (type, NULL));
-  g_assert (handle != 0);
-
-  switch (type) {
-    case TP_HANDLE_TYPE_CONTACT:
-      priv = g_hash_table_lookup (repo->contact_handles, GINT_TO_POINTER (handle));
-      break;
-    case TP_HANDLE_TYPE_ROOM:
-      priv = g_hash_table_lookup (repo->room_handles, GINT_TO_POINTER (handle));
-      break;
-    case TP_HANDLE_TYPE_LIST:
-      priv = g_datalist_id_get_data (&repo->list_handles, handle);
-      break;
-    default:
-      g_assert_not_reached();
-    }
-
-  return priv;
-}
-
-static GabbleHandle
-gabble_handle_alloc (GabbleHandleRepo *repo, TpHandleType type)
-{
-  GabbleHandle ret = 0;
-
-  g_assert (repo != NULL);
-  g_assert (gabble_handle_type_is_valid (type, NULL));
-
-  switch (type) {
-    case TP_HANDLE_TYPE_CONTACT:
-      if (g_heap_size (repo->free_contact_handles))
-        ret = GPOINTER_TO_UINT (g_heap_extract_first (repo->free_contact_handles));
-      else
-        ret = repo->contact_serial++;
-      break;
-    case TP_HANDLE_TYPE_ROOM:
-      if (g_heap_size (repo->free_room_handles))
-        ret = GPOINTER_TO_UINT (g_heap_extract_first (repo->free_room_handles));
-      else
-        ret = repo->room_serial++;
-      break;
-    default:
-      g_assert_not_reached();
-    }
-
-  return ret;
-}
-
-static gint
-handle_compare_func (gconstpointer a, gconstpointer b)
-{
-  GabbleHandle first = GPOINTER_TO_UINT (a);
-  GabbleHandle second = GPOINTER_TO_UINT (b);
-
-  return (first == second) ? 0 : ((first < second) ? -1 : 1);
-}
-
-static void
-handle_priv_remove (GabbleHandleRepo *repo,
-                    TpHandleType type,
-                    GabbleHandle handle)
-{
-  GabbleHandlePriv *priv;
-  const gchar *string;
-
-  g_assert (gabble_handle_type_is_valid (type, NULL));
-  g_assert (handle != 0);
-  g_assert (repo != NULL);
-
-  priv = handle_priv_lookup (repo, type, handle);
-
-  g_assert (priv != NULL);
-
-  string = priv->string;
-
-  switch (type) {
-    case TP_HANDLE_TYPE_CONTACT:
-      g_hash_table_remove (repo->contact_strings, string);
-      g_hash_table_remove (repo->contact_handles, GINT_TO_POINTER (handle));
-      if (handle == repo->contact_serial-1)
-        repo->contact_serial--;
-      else
-        g_heap_add (repo->free_contact_handles, GUINT_TO_POINTER (handle));
-      break;
-    case TP_HANDLE_TYPE_ROOM:
-      g_hash_table_remove (repo->room_strings, string);
-      g_hash_table_remove (repo->room_handles, GINT_TO_POINTER (handle));
-      if (handle == repo->room_serial-1)
-        repo->room_serial--;
-      else
-        g_heap_add (repo->free_room_handles, GUINT_TO_POINTER (handle));
-      break;
-    case TP_HANDLE_TYPE_LIST:
-      g_dataset_id_remove_data (&repo->list_handles, handle);
-      break;
-    default:
-      g_assert_not_reached ();
-    }
-}
-
-static void
-handles_name_owner_changed_cb (DBusGProxy *proxy,
-                               const gchar *name,
-                               const gchar *old_owner,
-                               const gchar *new_owner,
-                               gpointer data)
-{
-  GabbleHandleRepo *repo = (GabbleHandleRepo *) data;
-
-  if (old_owner && strlen (old_owner))
-    {
-      if (!new_owner || !strlen (new_owner))
-        {
-          g_datalist_remove_data (&repo->client_contact_handle_sets, old_owner);
-          g_datalist_remove_data (&repo->client_room_handle_sets, old_owner);
-        }
-    }
-}
-
-/* public API */
-
-/**
- * gabble_handle_jid_is_valid
- *
- * Validates a jid for given handle type and returns TRUE/FALSE
- * on success/failure. In the latter case further information is
- * provided through error if set.
- */
-gboolean
-gabble_handle_jid_is_valid (TpHandleType type, const gchar *jid, GError **error)
-{
-  if (type == TP_HANDLE_TYPE_CONTACT || type == TP_HANDLE_TYPE_ROOM)
-    {
-      if (!strchr (jid, '@'))
-        {
-          g_debug ("%s: jid %s has no @", G_STRFUNC, jid);
-
-          g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-              "jid %s has no @", jid);
-
-          return FALSE;
-        }
-
-      /* FIXME: do more extensive checking */
-    }
-  else
-    {
-      g_assert_not_reached ();
-      /* FIXME: add checking for other types here */
-    }
-
-  return TRUE;
-}
-
-gboolean
-gabble_handle_type_is_valid (TpHandleType type, GError **error)
-{
-  gboolean ret;
-
-  if (type > TP_HANDLE_TYPE_NONE && type <= TP_HANDLE_TYPE_LIST)
-    {
-      ret = TRUE;
-    }
-  else
-    {
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "invalid handle type %u", type);
-      ret = FALSE;
-    }
-
-  return ret;
-}
-
-
-GabbleHandleRepo *
-gabble_handle_repo_new ()
-{
-  GabbleHandleRepo *repo;
-  GabbleHandle publish, subscribe, known, deny;
-
-  repo = g_new0 (GabbleHandleRepo, 1);
-
-  repo->contact_handles = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) handle_priv_free);
-
-  repo->room_handles = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) handle_priv_free);
-
-  repo->contact_strings = g_hash_table_new (g_str_hash, g_str_equal);
-  repo->room_strings = g_hash_table_new (g_str_hash, g_str_equal);
-
-  repo->free_contact_handles = g_heap_new (handle_compare_func);
-  repo->free_room_handles = g_heap_new (handle_compare_func);
-
-  repo->contact_serial = 1;
-  repo->room_serial = 1;
-
-  g_datalist_init (&repo->list_handles);
-
-  publish = GABBLE_LIST_HANDLE_PUBLISH;
-  g_datalist_id_set_data_full (&repo->list_handles, (GQuark) publish,
-      handle_priv_new(), (GDestroyNotify) handle_priv_free);
-
-  subscribe = GABBLE_LIST_HANDLE_SUBSCRIBE;
-  g_datalist_id_set_data_full (&repo->list_handles, (GQuark) subscribe,
-      handle_priv_new(), (GDestroyNotify) handle_priv_free);
-
-  known = GABBLE_LIST_HANDLE_KNOWN;
-  g_datalist_id_set_data_full (&repo->list_handles, (GQuark) known,
-      handle_priv_new(), (GDestroyNotify) handle_priv_free);
-
-  deny = GABBLE_LIST_HANDLE_DENY;
-  g_datalist_id_set_data_full (&repo->list_handles, (GQuark) deny,
-      handle_priv_new(), (GDestroyNotify) handle_priv_free);
-
-  g_datalist_init (&repo->client_contact_handle_sets);
-  g_datalist_init (&repo->client_room_handle_sets);
-
-  repo->bus_service_proxy = dbus_g_proxy_new_for_name (tp_get_bus(),
-                                                       DBUS_SERVICE_DBUS,
-                                                       DBUS_PATH_DBUS,
-                                                       DBUS_INTERFACE_DBUS);
-
-  dbus_g_proxy_add_signal (repo->bus_service_proxy,
-                           "NameOwnerChanged",
-                           G_TYPE_STRING,
-                           G_TYPE_STRING,
-                           G_TYPE_STRING,
-                           G_TYPE_INVALID);
-  dbus_g_proxy_connect_signal (repo->bus_service_proxy,
-                               "NameOwnerChanged",
-                               G_CALLBACK (handles_name_owner_changed_cb),
-                               repo,
-                               NULL);
-
-  return repo;
-}
-
-#ifdef ENABLE_HANDLE_LEAK_DEBUG
-
-static void
-handle_leak_debug_printbt_foreach (gpointer data, gpointer user_data)
-{
-  HandleLeakTrace *hltrace = (HandleLeakTrace *) data;
-  int i;
-
-  for (i = 1; i < hltrace->len; i++)
-    {
-      g_message ("\t\t%s\n", hltrace->trace[i]);
-    }
-
-  g_message ("\n");
-}
-
-static void
-handle_leak_debug_printhandles_foreach (gpointer key, gpointer value, gpointer ignore)
-{
-  GabbleHandle handle = GPOINTER_TO_UINT (key);
-  GabbleHandlePriv *priv = (GabbleHandlePriv *) value;
-
-  g_message ("\t%5u: %s (%u refs), traces:\n", handle, priv->string, priv->refcount);
-  
-  g_slist_foreach (priv->traces, handle_leak_debug_printbt_foreach, NULL);
-}
-
-static void
-handle_leak_debug_print_report (GabbleHandleRepo *repo)
-{
-  g_assert (repo != NULL);
-
-  g_message ("The following contact handles were not freed:\n");
-  g_hash_table_foreach (repo->contact_handles, handle_leak_debug_printhandles_foreach, NULL);
-  g_message ("The following room handles were not freed:\n");
-  g_hash_table_foreach (repo->room_handles, handle_leak_debug_printhandles_foreach, NULL);
-}
-
-static HandleLeakTrace *
-handle_leak_debug_bt ()
-{
-  void *bt_addresses[16];
-  HandleLeakTrace *ret = g_new0 (HandleLeakTrace, 1);
-  
-  ret->len = backtrace (bt_addresses, 16);
-  ret->trace = backtrace_symbols (bt_addresses, ret->len);
-
-  return ret;
-}
-
-#define HANDLE_LEAK_DEBUG_DO(traces_slist) \
-  { (traces_slist) =  g_slist_append ((traces_slist), handle_leak_debug_bt ()); }
-
-#else /* !ENABLE_HANDLE_LEAK_DEBUG */
-
-#define HANDLE_LEAK_DEBUG_DO(traces_slist) {}
-
-#endif /* ENABLE_HANDLE_LEAK_DEBUG */
-
-
-void
-gabble_handle_repo_destroy (GabbleHandleRepo *repo)
-{
-  g_assert (repo != NULL);
-  g_assert (repo->contact_handles);
-  g_assert (repo->room_handles);
-  g_assert (repo->contact_strings);
-  g_assert (repo->room_strings);
-
-  g_datalist_clear (&repo->client_contact_handle_sets);
-  g_datalist_clear (&repo->client_room_handle_sets);
-
-#ifdef ENABLE_HANDLE_LEAK_DEBUG
-  handle_leak_debug_print_report (repo);
-#endif /* ENABLE_HANDLE_LEAK_DEBUG */
-
-  g_hash_table_destroy (repo->contact_handles);
-  g_hash_table_destroy (repo->room_handles);
-  g_hash_table_destroy (repo->contact_strings);
-  g_hash_table_destroy (repo->room_strings);
-  g_heap_destroy (repo->free_contact_handles);
-  g_heap_destroy (repo->free_room_handles);
-  g_datalist_clear (&repo->list_handles);
-
-  dbus_g_proxy_disconnect_signal (repo->bus_service_proxy,
-                                  "NameOwnerChanged",
-                                  G_CALLBACK (handles_name_owner_changed_cb),
-                                  repo);
-  g_object_unref (G_OBJECT (repo->bus_service_proxy));
-
-  g_free (repo);
-}
-
-
-gboolean
-gabble_handle_is_valid (GabbleHandleRepo *repo, TpHandleType type, GabbleHandle handle, GError **error)
-{
-  GArray *arr;
-  gboolean ret;
-
-  arr = g_array_new (FALSE, FALSE, sizeof (GabbleHandle));
-  g_array_insert_val (arr, 0, handle);
-
-  ret = gabble_handles_are_valid (repo, type, arr, FALSE, error);
-
-  g_array_free (arr, TRUE);
-
-  return ret;
-}
-
-gboolean
-gabble_handles_are_valid (GabbleHandleRepo *repo,
-                          TpHandleType type,
-                          const GArray *array,
-                          gboolean allow_zero,
-                          GError **error)
-{
-  guint i;
-
-  g_return_val_if_fail (repo != NULL, FALSE);
-  g_return_val_if_fail (array != NULL, FALSE);
-
-  if (!gabble_handle_type_is_valid (type, error))
-    return FALSE;
-
-  for (i = 0; i < array->len; i++)
-    {
-      GabbleHandle handle = g_array_index (array, GabbleHandle, i);
-
-      if (handle == 0)
-        {
-          if (allow_zero)
-              continue;
-
-          g_debug ("someone tried to validate handle zero");
-
-          g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-              "invalid handle %u", handle);
-          return FALSE;
-        }
-
-      if (handle_priv_lookup (repo, type, handle) == NULL)
-        {
-          g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-              "invalid handle %u", handle);
-          return FALSE;
-        }
-    }
-
-  return TRUE;
-}
-
-
-gboolean
-gabble_handle_ref (GabbleHandleRepo *repo,
-                   TpHandleType type,
-                   GabbleHandle handle)
-{
-  GabbleHandlePriv *priv;
-
-  if (type == TP_HANDLE_TYPE_LIST)
-    {
-      if (handle >= GABBLE_LIST_HANDLE_PUBLISH && handle <= GABBLE_LIST_HANDLE_DENY)
-        return TRUE;
-      else
-        return FALSE;
-    }
-
-  priv = handle_priv_lookup (repo, type, handle);
-
-  if (priv == NULL)
-    return FALSE;
-
-  priv->refcount++;
-
-  HANDLE_LEAK_DEBUG_DO (priv->traces);
-
-  return TRUE;
-}
-
-
-gboolean
-gabble_handle_unref (GabbleHandleRepo *repo,
-                     TpHandleType type,
-                     GabbleHandle handle)
-{
-  GabbleHandlePriv *priv;
-
-  if (type == TP_HANDLE_TYPE_LIST)
-    {
-      if (handle >= GABBLE_LIST_HANDLE_PUBLISH && handle <= GABBLE_LIST_HANDLE_DENY)
-        return TRUE;
-      else
-        return FALSE;
-    }
-
-  priv = handle_priv_lookup (repo, type, handle);
-
-  if (priv == NULL)
-    return FALSE;
-
-  HANDLE_LEAK_DEBUG_DO (priv->traces);
-
-  g_assert (priv->refcount > 0);
-
-  priv->refcount--;
-
-  if (priv->refcount == 0)
-    handle_priv_remove (repo, type, handle);
-
-  return TRUE;
-}
-
-
-const char *
-gabble_handle_inspect (GabbleHandleRepo *repo,
-                       TpHandleType type,
-                       GabbleHandle handle)
-{
-  GabbleHandlePriv *priv;
-
-  if (type == TP_HANDLE_TYPE_LIST)
-    {
-      g_assert (handle >= GABBLE_LIST_HANDLE_PUBLISH
-                  && handle <= GABBLE_LIST_HANDLE_DENY);
-      return list_handle_strings[handle-1];
-    }
-
-  priv = handle_priv_lookup (repo, type, handle);
-
-  if (priv == NULL)
-    return NULL;
-  else
-    return priv->string;
-}
-
-static GabbleHandle
-_handle_lookup_by_jid (GabbleHandleRepo *repo,
-                       const gchar *jid)
-{
-  GabbleHandle handle;
-
-  handle = GPOINTER_TO_UINT (g_hash_table_lookup (repo->contact_strings, jid));
-
-  if (0 == handle)
-    return 0;
-
-  return handle;
-}
-
-
-GabbleHandle
-gabble_handle_for_contact (GabbleHandleRepo *repo,
-                           const char *jid,
-                           gboolean with_resource)
-{
-  char *username = NULL;
-  char *server = NULL;
-  char *resource = NULL;
-  char *clean_jid = NULL;
-  GabbleHandle handle = 0;
-  GabbleHandlePriv *priv;
-
-  g_assert (repo != NULL);
-  g_assert (jid != NULL);
-  g_assert (*jid != '\0');
-
-  gabble_decode_jid (jid, &username, &server, &resource);
-
-  if (NULL == username || '\0' == *username)
-    goto OUT;
-
-  if (NULL == resource && with_resource)
-    goto OUT;
-
-  if (NULL != resource)
-    {
-      clean_jid = g_strdup_printf ("%s@%s/%s", username, server, resource);
-      handle = _handle_lookup_by_jid (repo, clean_jid);
-
-      if (0 != handle)
-        goto OUT;
-    }
-
-  if (!with_resource)
-    {
-      g_free (clean_jid);
-      clean_jid = g_strdup_printf ("%s@%s", username, server);
-      handle = _handle_lookup_by_jid (repo, clean_jid);
-
-      if (0 != handle)
-        goto OUT;
-    }
-
-  handle = gabble_handle_alloc (repo, TP_HANDLE_TYPE_CONTACT);
-  priv = handle_priv_new ();
-  priv->string = clean_jid;
-  clean_jid = NULL;
-  g_hash_table_insert (repo->contact_handles, GINT_TO_POINTER (handle), priv);
-  g_hash_table_insert (repo->contact_strings, priv->string, GUINT_TO_POINTER (handle));
-
-  HANDLE_LEAK_DEBUG_DO (priv->traces);
-
-OUT:
-
-  g_free (clean_jid);
-  g_free (username);
-  g_free (server);
-  g_free (resource);
-  return handle;
-}
-
-gboolean
-gabble_handle_for_room_exists (GabbleHandleRepo *repo,
-                               const gchar *jid,
-                               gboolean ignore_nick)
-{
-  GabbleHandle handle;
-  gchar *room, *service, *nick;
-  gchar *clean_jid;
-
-  gabble_decode_jid (jid, &room, &service, &nick);
-
-  if (!room || !service || room[0] == '\0')
-    return FALSE;
-
-  if (ignore_nick || !nick)
-    clean_jid = g_strdup_printf ("%s@%s", room, service);
-  else
-    clean_jid = g_strdup_printf ("%s@%s/%s", room, service, nick);
-
-  handle = GPOINTER_TO_UINT (g_hash_table_lookup (repo->room_strings,
-                                                  clean_jid));
-  
-  g_free (clean_jid);
-  g_free (room);
-  g_free (service);
-  g_free (nick);
-
-  if (handle == 0)
-    return FALSE;
-
-  return (handle_priv_lookup (repo, TP_HANDLE_TYPE_ROOM, handle) != NULL);
-}
-
-
-GabbleHandle
-gabble_handle_for_room (GabbleHandleRepo *repo,
-                        const gchar *jid)
-{
-  GabbleHandle handle;
-  gchar *room, *service, *clean_jid;
-
-  g_assert (repo != NULL);
-  g_assert (jid != NULL);
-  g_assert (*jid != '\0');
-
-  handle = 0;
-
-  room = service = NULL;
-  gabble_decode_jid (jid, &room, &service, NULL);
-
-  if (room && service && *room != '\0')
-    {
-      clean_jid = g_strdup_printf ("%s@%s", room, service);
-
-      handle = GPOINTER_TO_UINT (g_hash_table_lookup (repo->room_strings, clean_jid));
-
-      if (handle == 0)
-        {
-          GabbleHandlePriv *priv;
-          handle = gabble_handle_alloc (repo, TP_HANDLE_TYPE_ROOM);
-          priv = handle_priv_new ();
-          priv->string = clean_jid;
-          g_hash_table_insert (repo->room_handles, GUINT_TO_POINTER (handle), priv);
-          g_hash_table_insert (repo->room_strings, clean_jid, GUINT_TO_POINTER (handle));
-          HANDLE_LEAK_DEBUG_DO (priv->traces);
-        }
-      else
-        {
-          g_free (clean_jid);
-        }
-    }
-
-  g_free (room);
-  g_free (service);
-
-  return handle;
-}
-
-
-GabbleHandle
-gabble_handle_for_list (GabbleHandleRepo *repo,
-                        const gchar *list)
-{
-  GabbleHandle handle = 0;
-  int i;
-
-  g_assert (repo != NULL);
-  g_assert (list != NULL);
-
-  for (i = 0; i < GABBLE_LIST_HANDLE_DENY; i++)
-    {
-      if (0 == strcmp (list_handle_strings[i], list))
-        handle = (GabbleHandle) i + 1;
-    }
-
-  return handle;
-}
-
-/**
- * gabble_handle_set_qdata:
- * @repo: A #GabbleHandleRepo
- * @type: The handle type
- * @handle: A handle to set data on
- * @key_id: Key id to associate data with
- * @data: data to associate with handle
- * @destroy: A #GDestroyNotify to call to detroy the data,
- *           or NULL if not needed.
- *
- * Associates a blob of data with a given handle and a given key
- *
- * If @destroy is set, then the data is freed when the handle is freed.
- */
-
-gboolean
-gabble_handle_set_qdata (GabbleHandleRepo *repo,
-                         TpHandleType type, GabbleHandle handle,
-                         GQuark key_id, gpointer data, GDestroyNotify destroy)
-{
-  GabbleHandlePriv *priv;
-  priv = handle_priv_lookup (repo, type, handle);
-
-  if (!priv)
-    return FALSE;
-
-  g_datalist_id_set_data_full (&priv->datalist, key_id, data, destroy);
-  return TRUE;
-}
-
-/**
- * gabble_handle_get_qdata:
- * @repo: A #GabbleHandleRepo
- * @type: The handle type
- * @handle: A handle to get data from
- * @key_id: Key id of data to fetch
- *
- * Gets the data associated with a given key on a given handle
- */
-gpointer
-gabble_handle_get_qdata (GabbleHandleRepo *repo,
-                         TpHandleType type, GabbleHandle handle,
-                         GQuark key_id)
-{
-  GabbleHandlePriv *priv;
-  priv = handle_priv_lookup (repo, type, handle);
-
-  if (!priv)
-    return NULL;
-
-  return g_datalist_id_get_data(&priv->datalist, key_id);
-}
-
-/**
- * gabble_handle_client_hold:
- * @repo: a #GabbleHandleRepo
- * @client_name: D-Bus bus name of client to hold the handle for
- * @handle: the handle to hold
- * @type: type of handle to hold
- * @error: used to return a pointer to a GError detailing any error that occurred
- *
- * Marks a handle as held by a given client.
- *
- * Returns: Whether the handle was succesfully marked as held or an error occurred.
- */
-
-gboolean
-gabble_handle_client_hold (GabbleHandleRepo *repo,
-                           const gchar *client_name,
-                           GabbleHandle handle,
-                           TpHandleType type,
-                           GError **error)
-{
-  GData **handle_set_list;
-  GabbleHandleSet *handle_set;
-
-  g_assert (repo != NULL);
-
-  switch (type)
-    {
-    case TP_HANDLE_TYPE_CONTACT:
-      handle_set_list = &repo->client_contact_handle_sets;
-      break;
-    case TP_HANDLE_TYPE_ROOM:
-      handle_set_list = &repo->client_room_handle_sets;
-      break;
-    case TP_HANDLE_TYPE_LIST:
-      /* no-op */
-      return TRUE;
-    default:
-      g_critical ("%s: called with invalid handle type %u", G_STRFUNC, type);
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "invalid handle type %u", type);
-      return FALSE;
-    }
-
-  if (!client_name || *client_name == '\0')
-    {
-      g_critical ("%s: called with invalid client name", G_STRFUNC);
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "invalid client name");
-      return FALSE;
-    }
-
-  handle_set = (GabbleHandleSet*) g_datalist_get_data (handle_set_list, client_name);
-
-  if (!handle_set)
-    {
-      handle_set = handle_set_new (repo, type);
-      g_datalist_set_data_full (handle_set_list,
-                                client_name,
-                                handle_set,
-                                (GDestroyNotify) handle_set_destroy);
-    }
-
-  handle_set_add (handle_set, handle);
-
-  return TRUE;
-}
-
-/**
- * gabble_handle_client_release:
- * @repo: a #GabbleHandleRepo
- * @client_name: D-Bus bus name of client to release the handle for
- * @handle: the handle to release
- * @type: type of handle to release
- * @error: used to return a pointer to a GError detailing any error that occurred
- *
- * Unmarks a handle as held by a given client.
- *
- * Returns: Whether the handle had been marked as held by the given client and now unmarked or not.
- */
-
-gboolean
-gabble_handle_client_release (GabbleHandleRepo *repo,
-                           const gchar *client_name,
-                           GabbleHandle handle,
-                           TpHandleType type,
-                           GError **error)
-{
-  GData **handle_set_list;
-  GabbleHandleSet *handle_set;
-
-  g_assert (repo != NULL);
-
-  switch (type)
-    {
-    case TP_HANDLE_TYPE_CONTACT:
-      handle_set_list = &repo->client_contact_handle_sets;
-      break;
-    case TP_HANDLE_TYPE_ROOM:
-      handle_set_list = &repo->client_room_handle_sets;
-      break;
-    case TP_HANDLE_TYPE_LIST:
-      /* no-op */
-      return TRUE;
-    default:
-      g_critical ("%s: called with invalid handle type %u", G_STRFUNC, type);
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "invalid handle type %u", type);
-      return FALSE;
-    }
-
-  if (!client_name || *client_name == '\0')
-    {
-      g_critical ("%s: called with invalid client name", G_STRFUNC);
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "invalid client name");
-      return FALSE;
-    }
-
-  handle_set = (GabbleHandleSet*) g_datalist_get_data (handle_set_list, client_name);
-
-  if (!handle_set)
-    {
-      g_critical ("%s: no handle set found for the given client %s", G_STRFUNC, client_name);
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "the given client %s wasn't holding any handles", client_name);
-      return FALSE;
-    }
-
-  if (!handle_set_remove (handle_set, handle))
-    {
-      g_critical ("%s: the client %s wasn't holding the handle %u", G_STRFUNC,
-          client_name, handle);
-      g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-          "the given client %s wasn't holding the handle %u", client_name,
-          handle);
-      return FALSE;
-    }
-
-  return TRUE;
-}
-
--- a/telepathygabble/src/im-factory.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,474 +0,0 @@
-/*
- * im-factory.c - Source for GabbleImFactory
- * Copyright (C) 2006 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#include <glib.h>
-
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-
-#include "loudmouth/loudmouth.h"
-
-#include "debug.h"
-#include "disco.h"
-#include "gabble-connection.h"
-#include "gabble-im-channel.h"
-#include "handles.h"
-#include "telepathy-interfaces.h"
-#include "text-mixin.h"
-#include "tp-channel-factory-iface.h"
-
-#include "im-factory.h"
-
-static void gabble_im_factory_iface_init (gpointer g_iface, gpointer iface_data);
-
-#ifndef EMULATOR
-G_DEFINE_TYPE_WITH_CODE (GabbleImFactory, gabble_im_factory, G_TYPE_OBJECT,
-    G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_FACTORY_IFACE, gabble_im_factory_iface_init));
-#endif
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-    GET_STATIC_VAR_FROM_TLS(gabble_im_factory_parent_class,im_factory,gpointer)
-	#define gabble_im_factory_parent_class (*GET_WSD_VAR_NAME(gabble_im_factory_parent_class,im_factory,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,im_factory,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,im_factory,s)())
-
-static void gabble_im_factory_init (GabbleImFactory *self); 
-static void gabble_im_factory_class_init (GabbleImFactoryClass *klass); 
-static void gabble_im_factory_class_intern_init (gpointer klass) 
-{
- gabble_im_factory_parent_class = g_type_class_peek_parent (klass);
-  gabble_im_factory_class_init ((GabbleImFactoryClass*) klass);
-   }
-    EXPORT_C GType gabble_im_factory_get_type (void) 
-    {
-    if ((g_define_type_id == 0)) { static const GTypeInfo g_define_type_info = { sizeof (GabbleImFactoryClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_im_factory_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleImFactory), 0, (GInstanceInitFunc) gabble_im_factory_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleImFactory"), &g_define_type_info, (GTypeFlags) 0); { { static const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) gabble_im_factory_iface_init }; g_type_add_interface_static (g_define_type_id, tp_channel_factory_iface_get_type(), &g_implement_interface_info); } ; } } return g_define_type_id; }    ;
-
-#endif
-
-#define DBUS_API_SUBJECT_TO_CHANGE
-#define DEBUG_FLAG GABBLE_DEBUG_IM
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-/* properties */
-enum
-{
-  PROP_CONNECTION = 1,
-  LAST_PROPERTY
-};
-
-typedef struct _GabbleImFactoryPrivate GabbleImFactoryPrivate;
-struct _GabbleImFactoryPrivate
-{
-  GabbleConnection *conn;
-  LmMessageHandler *message_cb;
-  GHashTable *channels;
-
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_IM_FACTORY_GET_PRIVATE(o)    (G_TYPE_INSTANCE_GET_PRIVATE ((o), GABBLE_TYPE_IM_FACTORY, GabbleImFactoryPrivate))
-
-static GObject *gabble_im_factory_constructor (GType type, guint n_props, GObjectConstructParam *props);
-
-static void
-gabble_im_factory_init (GabbleImFactory *fac)
-{
-  GabbleImFactoryPrivate *priv = GABBLE_IM_FACTORY_GET_PRIVATE (fac);
-
-  priv->channels = g_hash_table_new_full (g_direct_hash, g_direct_equal,
-                                          NULL, g_object_unref);
-
-  priv->message_cb = NULL;
-
-  priv->conn = NULL;
-  priv->dispose_has_run = FALSE;
-}
-
-static GObject *
-gabble_im_factory_constructor (GType type, guint n_props,
-                               GObjectConstructParam *props)
-{
-  GObject *obj;
-  /* GabbleImFactoryPrivate *priv; */
-
-  obj = G_OBJECT_CLASS (gabble_im_factory_parent_class)->
-           constructor (type, n_props, props);
-  /* priv = GABBLE_IM_FACTORY_GET_PRIVATE (obj); */
-
-  return obj;
-}
-
-
-static void
-gabble_im_factory_dispose (GObject *object)
-{
-  GabbleImFactory *fac = GABBLE_IM_FACTORY (object);
-  GabbleImFactoryPrivate *priv = GABBLE_IM_FACTORY_GET_PRIVATE (fac);
-
-  if (priv->dispose_has_run)
-    return;
-
-  gabble_debug (DEBUG_FLAG, "dispose called");
-  priv->dispose_has_run = TRUE;
-
-  tp_channel_factory_iface_close_all (TP_CHANNEL_FACTORY_IFACE (object));
-  g_assert (priv->channels == NULL);
-
-  if (G_OBJECT_CLASS (gabble_im_factory_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_im_factory_parent_class)->dispose (object);
-}
-
-static void
-gabble_im_factory_get_property (GObject    *object,
-                                 guint       property_id,
-                                 GValue     *value,
-                                 GParamSpec *pspec)
-{
-  GabbleImFactory *fac = GABBLE_IM_FACTORY (object);
-  GabbleImFactoryPrivate *priv = GABBLE_IM_FACTORY_GET_PRIVATE (fac);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_im_factory_set_property (GObject      *object,
-                                 guint         property_id,
-                                 const GValue *value,
-                                 GParamSpec   *pspec)
-{
-  GabbleImFactory *fac = GABBLE_IM_FACTORY (object);
-  GabbleImFactoryPrivate *priv = GABBLE_IM_FACTORY_GET_PRIVATE (fac);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_im_factory_class_init (GabbleImFactoryClass *gabble_im_factory_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_im_factory_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_im_factory_class, sizeof (GabbleImFactoryPrivate));
-
-  object_class->constructor = gabble_im_factory_constructor;
-  object_class->dispose = gabble_im_factory_dispose;
-
-  object_class->get_property = gabble_im_factory_get_property;
-  object_class->set_property = gabble_im_factory_set_property;
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "IM channel factory object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-}
-
-static GabbleIMChannel *new_im_channel (GabbleImFactory *fac, GabbleHandle handle);
-
-static void im_channel_closed_cb (GabbleIMChannel *chan, gpointer user_data);
-
-
-/**
- * im_factory_message_cb:
- *
- * Called by loudmouth when we get an incoming <message>.
- */
-static LmHandlerResult
-im_factory_message_cb (LmMessageHandler *handler,
-                       LmConnection *lmconn,
-                       LmMessage *message,
-                       gpointer user_data)
-{
-  GabbleImFactory *fac = GABBLE_IM_FACTORY (user_data);
-  GabbleImFactoryPrivate *priv = GABBLE_IM_FACTORY_GET_PRIVATE (fac);
-
-  const gchar *from, *body, *body_offset;
-  time_t stamp;
-  TpChannelTextMessageType msgtype;
-  GabbleHandle handle;
-  GabbleIMChannel *chan;
-  GabbleTextMixinSendError send_error;
-
-  if (!gabble_text_mixin_parse_incoming_message (message, &from, &stamp, &msgtype, &body, &body_offset, &send_error))
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-  if (body == NULL)
-    {
-      NODE_DEBUG (message->node, "got a message without a body field, ignoring");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  handle = gabble_handle_for_contact (priv->conn->handles, from, FALSE);
-  if (handle == 0)
-    {
-      NODE_DEBUG (message->node, "ignoring message node from malformed jid");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  gabble_debug (DEBUG_FLAG, "message from %s (handle %u), msgtype %d, body:\n%s",
-         from, handle, msgtype, body_offset);
-
-  chan = g_hash_table_lookup (priv->channels, GINT_TO_POINTER (handle));
-
-  if (chan == NULL)
-    {
-      if (send_error != CHANNEL_TEXT_SEND_NO_ERROR)
-        {
-          gabble_debug (DEBUG_FLAG, "ignoring message error; no sending channel");
-          return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-        }
-
-      gabble_debug (DEBUG_FLAG, "found no IM channel, creating one");
-
-      chan = new_im_channel (fac, handle);
-    }
-
-  if (send_error != CHANNEL_TEXT_SEND_NO_ERROR)
-    {
-      _gabble_text_mixin_send_error_signal (G_OBJECT (chan), send_error, stamp,
-          msgtype, body_offset);
-      return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-
-  if (_gabble_im_channel_receive (chan, msgtype, handle, from,
-                                  stamp, body_offset))
-    return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-
-  return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-}
-
-/**
- * im_channel_closed_cb:
- *
- * Signal callback for when an IM channel is closed. Removes the references
- * that #GabbleConnection holds to them.
- */
-static void
-im_channel_closed_cb (GabbleIMChannel *chan, gpointer user_data)
-{
-  GabbleImFactory *conn = GABBLE_IM_FACTORY (user_data);
-  GabbleImFactoryPrivate *priv = GABBLE_IM_FACTORY_GET_PRIVATE (conn);
-  GabbleHandle contact_handle;
-
-  if (priv->channels)
-    {
-      g_object_get (chan, "handle", &contact_handle, NULL);
-
-      gabble_debug (DEBUG_FLAG, "removing channel with handle %d", contact_handle);
-
-      g_hash_table_remove (priv->channels, GINT_TO_POINTER (contact_handle));
-    }
-}
-
-/**
- * new_im_channel
- */
-static GabbleIMChannel *
-new_im_channel (GabbleImFactory *fac, GabbleHandle handle)
-{
-  GabbleImFactoryPrivate *priv;
-  GabbleIMChannel *chan;
-  char *object_path;
-
-  g_assert (GABBLE_IS_IM_FACTORY (fac));
-
-  priv = GABBLE_IM_FACTORY_GET_PRIVATE (fac);
-
-  object_path = g_strdup_printf ("%s/ImChannel%u", priv->conn->object_path, handle);
-
-  chan = g_object_new (GABBLE_TYPE_IM_CHANNEL,
-                       "connection", priv->conn,
-                       "object-path", object_path,
-                       "handle", handle,
-                       NULL);
-
-  gabble_debug (DEBUG_FLAG, "object path %s", object_path);
-
-  g_signal_connect (chan, "closed", (GCallback) im_channel_closed_cb, fac);
-
-  g_hash_table_insert (priv->channels, GINT_TO_POINTER (handle), chan);
-
-  g_signal_emit_by_name (fac, "new-channel", chan);
-
-  g_free (object_path);
-
-  return chan;
-}
-
-static void
-gabble_im_factory_iface_close_all (TpChannelFactoryIface *iface)
-{
-  GabbleImFactory *fac = GABBLE_IM_FACTORY (iface);
-  GabbleImFactoryPrivate *priv = GABBLE_IM_FACTORY_GET_PRIVATE (fac);
-
-  gabble_debug (DEBUG_FLAG, "closing channels");
-
-  if (priv->channels)
-    {
-      GHashTable *tmp = priv->channels;
-      priv->channels = NULL;
-      g_hash_table_destroy (tmp);
-    }
-}
-
-static void
-gabble_im_factory_iface_connecting (TpChannelFactoryIface *iface)
-{
-  GabbleImFactory *fac = GABBLE_IM_FACTORY (iface);
-  GabbleImFactoryPrivate *priv = GABBLE_IM_FACTORY_GET_PRIVATE (fac);
-
-  gabble_debug (DEBUG_FLAG, "adding callbacks");
-
-  g_assert (priv->message_cb == NULL);
-
-  priv->message_cb = lm_message_handler_new (im_factory_message_cb, fac, NULL);
-  lm_connection_register_message_handler (priv->conn->lmconn, priv->message_cb,
-                                          LM_MESSAGE_TYPE_MESSAGE,
-                                          LM_HANDLER_PRIORITY_LAST);
-}
-
-
-
-static void
-gabble_im_factory_iface_connected (TpChannelFactoryIface *iface)
-{
-  /* nothing to do */
-}
-
-static void
-gabble_im_factory_iface_disconnected (TpChannelFactoryIface *iface)
-{
-  GabbleImFactory *fac = GABBLE_IM_FACTORY (iface);
-  GabbleImFactoryPrivate *priv = GABBLE_IM_FACTORY_GET_PRIVATE (fac);
-
-  gabble_debug (DEBUG_FLAG, "removing callbacks");
-
-  g_assert (priv->message_cb != NULL);
-
-  lm_connection_unregister_message_handler (priv->conn->lmconn, priv->message_cb,
-                                            LM_MESSAGE_TYPE_MESSAGE);
-  lm_message_handler_unref (priv->message_cb);
-  priv->message_cb = NULL;
-}
-
-struct _ForeachData
-{
-  TpChannelFunc foreach;
-  gpointer user_data;
-};
-
-static void
-_foreach_slave (gpointer key, gpointer value, gpointer user_data)
-{
-  struct _ForeachData *data = (struct _ForeachData *) user_data;
-  TpChannelIface *chan = TP_CHANNEL_IFACE (value);
-
-  data->foreach (chan, data->user_data);
-}
-
-static void
-gabble_im_factory_iface_foreach (TpChannelFactoryIface *iface, TpChannelFunc foreach, gpointer user_data)
-{
-  GabbleImFactory *fac = GABBLE_IM_FACTORY (iface);
-  GabbleImFactoryPrivate *priv = GABBLE_IM_FACTORY_GET_PRIVATE (fac);
-  struct _ForeachData data;
-
-  data.user_data = user_data;
-  data.foreach = foreach;
-
-  g_hash_table_foreach (priv->channels, _foreach_slave, &data);
-}
-
-static TpChannelFactoryRequestStatus
-gabble_im_factory_iface_request (TpChannelFactoryIface *iface,
-                                 const gchar *chan_type,
-                                 TpHandleType handle_type,
-                                 guint handle,
-                                 TpChannelIface **ret,
-                                 GError **error)
-{
-  GabbleImFactory *fac = GABBLE_IM_FACTORY (iface);
-  GabbleImFactoryPrivate *priv = GABBLE_IM_FACTORY_GET_PRIVATE (fac);
-  GabbleIMChannel *chan;
-
-  if (strcmp (chan_type, TP_IFACE_CHANNEL_TYPE_TEXT))
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_IMPLEMENTED;
-
-  if (handle_type != TP_HANDLE_TYPE_CONTACT)
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_AVAILABLE;
-
-  if (!gabble_handle_is_valid (priv->conn->handles, handle_type, handle, error))
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_ERROR;
-
-  chan = g_hash_table_lookup (priv->channels, GINT_TO_POINTER (handle));
-
-  if (!chan)
-    chan = new_im_channel (fac, handle);
-
-  g_assert (chan);
-  *ret = TP_CHANNEL_IFACE (chan);
-  return TP_CHANNEL_FACTORY_REQUEST_STATUS_DONE;
-}
-
-static void
-gabble_im_factory_iface_init (gpointer g_iface,
-                              gpointer iface_data)
-{
-  TpChannelFactoryIfaceClass *klass = (TpChannelFactoryIfaceClass *) g_iface;
-
-  klass->close_all = gabble_im_factory_iface_close_all;
-  klass->connecting = gabble_im_factory_iface_connecting;
-  klass->connected = gabble_im_factory_iface_connected;
-  klass->disconnected = gabble_im_factory_iface_disconnected;
-  klass->foreach = gabble_im_factory_iface_foreach;
-  klass->request = gabble_im_factory_iface_request;
-}
-
--- a/telepathygabble/src/jingle-info.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-/*
- * jingle-info.c - Source for Jingle info discovery
- * Copyright (C) 2006 Collabora Ltd.
- * Portions  and/or its subsidiary/subsidiaries.All rights reserved.
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <string.h>
-#include <stdlib.h>
-
-#define DEBUG_FLAG GABBLE_DEBUG_MEDIA
-
-#include "debug.h"
-#include "jingle-info.h"
-#include "gabble-error.h"
-#include "namespaces.h"
-#include "util.h"
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-/**
- * jingle_info_discover_servers:
- *
- * Discover available Jingle servers.
- *
- * @conn: The GabbleConnection# object initiating the discovery.
- */
-void
-jingle_info_discover_servers (GabbleConnection *conn)
-{
-  LmMessage *msg = NULL;
-  LmMessageNode *node;
-  GError *error = NULL;
-  GabbleHandle handle = conn->self_handle;
-  const gchar *jid = gabble_handle_inspect (conn->handles, TP_HANDLE_TYPE_CONTACT, handle);
-
-  msg = lm_message_new_with_sub_type (jid, LM_MESSAGE_TYPE_IQ,
-                                      LM_MESSAGE_SUB_TYPE_GET);
-
-  node = lm_message_node_add_child (msg->node, "query", NULL);
-  lm_message_node_set_attribute (node, "xmlns", NS_GOOGLE_JINGLE_INFO);
-
-  if (!_gabble_connection_send (conn, msg, &error))
-    {
-      g_warning ("%s: send failed: %s\n", G_STRFUNC, error->message);
-      goto OUT;
-    }
-
-OUT:
-  if (msg)
-    lm_message_unref (msg);
-
-  if (error)
-    g_error_free (error);
-}
-
-
-/**
- * jingle_info_iq_callback
- *
- * Called by loudmouth when we get an incoming <iq>. This handler
- * is concerned only with Jingle info queries.
- */
-LmHandlerResult
-jingle_info_iq_callback (LmMessageHandler *handler,
-                         LmConnection *lmconn,
-                         LmMessage *message,
-                         gpointer user_data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (user_data);
-  LmMessageSubType sub_type;
-  LmMessageNode *query_node, *parent_node, *node;
-  const gchar *str;
-  guint port;
-
-  if ( NULL == conn )
-        {
-        g_debug ("%s: accesing after dereferenced connection", G_STRFUNC);
-        return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-        }
-  
-  query_node = lm_message_node_get_child_with_namespace (message->node,
-      "query", NS_GOOGLE_JINGLE_INFO);
-
-  if (query_node == NULL)
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-  NODE_DEBUG (message->node, "got");
-
-  sub_type = lm_message_get_sub_type (message);
-
-  if (sub_type == LM_MESSAGE_SUB_TYPE_RESULT ||
-      sub_type == LM_MESSAGE_SUB_TYPE_SET)
-    {
-      parent_node = lm_message_node_get_child (query_node, "stun");
-      if (parent_node)
-        {
-          for (node = parent_node->children; node; node = node->next)
-            {
-              if (strcmp (node->name, "server") == 0)
-                {
-                  str = lm_message_node_get_attribute (node, "host");
-                  if (str)
-                    {
-                      gabble_debug (DEBUG_FLAG, "setting 'stun-server' to '%s'", str);
-
-                      g_object_set (conn, "stun-server", str, NULL);
-                    }
-
-                  str = lm_message_node_get_attribute (node, "udp");
-                  if (str)
-                    {
-                      port = atoi (str);
-
-                      gabble_debug (DEBUG_FLAG, "setting 'stun-port' to %d", port);
-
-                      g_object_set (conn, "stun-port", port, NULL);
-                    }
-
-                  /* only grab the first one for now */
-                  break;
-                }
-            }
-        }
-
-      parent_node = lm_message_node_get_child (query_node, "relay");
-      if (parent_node)
-        {
-          gboolean found_server = FALSE;
-
-          for (node = parent_node->children; node; node = node->next)
-            {
-              if (!found_server && strcmp (node->name, "server") == 0)
-                {
-                  str = lm_message_node_get_attribute (node, "host");
-                  if (str)
-                    {
-                      gabble_debug (DEBUG_FLAG, "setting 'stun-relay-server' to '%s'",
-                               str);
-
-                      g_object_set (conn, "stun-relay-server", str, NULL);
-                    }
-
-                  str = lm_message_node_get_attribute (node, "udp");
-                  if (str)
-                    {
-                      port = atoi (str);
-
-                      gabble_debug (DEBUG_FLAG, "setting 'stun-relay-udp-port' to %d",
-                               port);
-
-                      g_object_set (conn, "stun-relay-udp-port", port, NULL);
-                    }
-
-                  str = lm_message_node_get_attribute (node, "tcp");
-                  if (str)
-                    {
-                      port = atoi (str);
-
-                      gabble_debug (DEBUG_FLAG, "setting 'stun-relay-tcp-port' to %d",
-                               port);
-
-                      g_object_set (conn, "stun-relay-tcp-port", port, NULL);
-                    }
-
-                  str = lm_message_node_get_attribute (node, "tcpssl");
-                  if (str)
-                    {
-                      port = atoi (str);
-
-                      gabble_debug (DEBUG_FLAG, "setting 'stun-relay-ssltcp-port' to %d",
-                               port);
-
-                      g_object_set (conn, "stun-relay-ssltcp-port", port, NULL);
-                    }
-
-                  found_server = TRUE;
-                }
-              else if (strcmp (node->name, "token") == 0)
-                {
-                  str = lm_message_node_get_value (node);
-                  if (str)
-                    {
-                      gabble_debug (DEBUG_FLAG, "setting 'stun-relay-magic-cookie' to '%s'",
-                               str);
-
-                      g_object_set (conn, "stun-relay-magic-cookie", str, NULL);
-                    }
-                }
-            }
-        }
-
-      if (sub_type == LM_MESSAGE_SUB_TYPE_SET)
-        {
-          _gabble_connection_acknowledge_set_iq (conn, message);
-        }
-    }
-  else if (sub_type == LM_MESSAGE_SUB_TYPE_ERROR)
-    {
-      GabbleXmppError xmpp_error = INVALID_XMPP_ERROR;
-
-      node = lm_message_node_get_child (message->node, "error");
-      if (node)
-        {
-          xmpp_error = gabble_xmpp_error_from_node (node);
-        }
-
-      str = gabble_xmpp_error_string (xmpp_error);
-
-      g_warning ("%s: jingle info error: %s", G_STRFUNC,
-          (str) ? str : "unknown error");
-    }
-  else
-    {
-      NODE_DEBUG (message->node, "unknown message sub type");
-    }
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
--- a/telepathygabble/src/libgabble_wsd.cpp	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,378 +0,0 @@
-/*
- * libgabble_wsd.cpp part of telepathygabble
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *   @author Robert McQueen <robert.mcqueen@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <e32std.h> 
-#include "libgabble_wsd_solution.h"
-#include "gabble_enums.h"
-#include <string.h>
-#include "telepathy-interfaces.h"
-#include <pls.h> // For emulator WSD API 
-
-const TUid KLibGabbleUid3 = {0x2000F852};     // This is the UID of the library
-struct libgabble_global_struct *libgabble_ImpurePtr()
-{
-	#if defined(__WINSCW__) || defined(__WINS__)
-
-	// Access the PLS of this process
-	struct libgabble_global_struct *g = Pls<struct libgabble_global_struct>(KLibGabbleUid3, &libgabble_Init);	
-    return g;
-
-	#else
-
-	return NULL;	
-
-	#endif
-}
-
-int libgabble_Init(libgabble_global_struct *g)
-{
-
-
-Handler handlers[10] = {
-  {
-    { "initiate", "session-initiate", NULL },
-    JS_STATE_PENDING_CREATED,
-    JS_STATE_PENDING_CREATED,
-    { NULL },
-    JS_STATE_PENDING_INITIATED
-  },
-  {
-    { "accept", "session-accept", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_PENDING_INITIATED,
-    { NULL },
-    JS_STATE_ACTIVE
-  },
-  {
-    { "reject", NULL },
-    JS_STATE_PENDING_INITIATE_SENT,
-    JS_STATE_PENDING_INITIATED,
-    { NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { "terminate", "session-terminate", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_ENDED,
-    { NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { "candidates", "transport-info", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_ACTIVE,
-    { NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { "content-add", NULL },
-    JS_STATE_ACTIVE,
-    JS_STATE_ACTIVE,
-    { NULL },
-    JS_STATE_INVALID,
-  },
-  {
-    { "content-modify", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_ACTIVE,
-    { NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { "content-accept", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_ACTIVE,
-    { NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { "content-remove", "content-decline", NULL },
-    JS_STATE_PENDING_INITIATED,
-    JS_STATE_ACTIVE,
-    { NULL },
-    JS_STATE_INVALID
-  },
-  {
-    { NULL },
-    JS_STATE_INVALID,
-    JS_STATE_INVALID,
-    { NULL },
-    JS_STATE_INVALID
-  }
-};
-
-GDebugKey keys[] = {
-  { "presence",      GABBLE_DEBUG_PRESENCE },
-  { "groups",        GABBLE_DEBUG_GROUPS },
-  { "roster",        GABBLE_DEBUG_ROSTER },
-  { "disco",         GABBLE_DEBUG_DISCO },
-  { "properties",    GABBLE_DEBUG_PROPERTIES },
-  { "roomlist",      GABBLE_DEBUG_ROOMLIST },
-  { "media-channel", GABBLE_DEBUG_MEDIA },
-  { "muc",           GABBLE_DEBUG_MUC },
-  { "connection",    GABBLE_DEBUG_CONNECTION },
-  { "persist",       GABBLE_DEBUG_PERSIST },
-  { "vcard",         GABBLE_DEBUG_VCARD },
-  { 0, },
-};
-
-gchar NO_ALIAS[10] = "none";
-
-gchar assumed_caps[3][150] =
-{
-  TP_IFACE_CHANNEL_TYPE_TEXT,
-  TP_IFACE_CHANNEL_INTERFACE_GROUP,
-  NULL
-};
-
-	
-gchar muc_roles[4][20] =
-{
-  "none",
-  "visitor",
-  "participant",
-  "moderator",
-};
-
-gchar muc_affiliations[4][20] =
-{
-  "none",
-  "member",
-  "admin",
-  "owner",
-};
-
-gchar video_codec_params[6][20] = {
-  "x", "y", "width", "height", "layer", "transparent",
-};
-
-
-char list_handle_strings[4][20] =
-{
-    "publish",      /* GABBLE_LIST_HANDLE_PUBLISH */
-    "subscribe",    /* GABBLE_LIST_HANDLE_SUBSCRIBE */
-    "known",        /* GABBLE_LIST_HANDLE_KNOWN */
-    "deny"          /* GABBLE_LIST_HANDLE_DENY */
-};
-
-	  if(g)
-	  {	
-	    
-	      
-		//g->GET_WSD_VAR_NAME(flags,gabble_debug,s) = flags;
-		g->GET_WSD_VAR_NAME(log_handler, gabble_debug, s)	= 0;
-		g->GET_WSD_VAR_NAME(etype,gabble_enum_types,s) = 0;
-		
-		g->GET_WSD_VAR_NAME(etype,gabble_media_session_enum_types,s) = 0;
-		g->GET_WSD_VAR_NAME(etype1,gabble_media_session_enum_types,s) = 0;
-		g->GET_WSD_VAR_NAME(etype2,gabble_media_session_enum_types,s) = 0;
-		
-		
-		
-		
-		g->GET_WSD_VAR_NAME(quark,gabble_disco,s) = 0; 
-		g->GET_WSD_VAR_NAME(quark,gabble_error,s) = 0;
-		
-		
-		g->GET_WSD_VAR_NAME(ssl,gabble_conmgr,s) = TRUE; 
-		g->GET_WSD_VAR_NAME(httpport,gabble_conmgr,s) = 8080;
-		g->GET_WSD_VAR_NAME(httpproxyport,gabble_conmgr,s) = 443;
-
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_conmgr,s)),0,LAST_SIGNAL_CON_MGR*sizeof(guint));	  
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_con,s)),0,LAST_SIGNAL_CON*sizeof(guint));	  
-		g->GET_WSD_VAR_NAME(arguments,gabble_con, s) = NULL;
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_im,s)),0,LAST_SIGNAL_IM*sizeof(guint));	  
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_search,s)),0,LAST_SIGNAL_SEARCH*sizeof(guint));	   
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_muc,s)),0,LAST_SIGNAL_MUC*sizeof(guint));	  
-		
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_med_chnl,s)),0,LAST_SIGNAL_MED_CHANNEL*sizeof(guint));	  
-		
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_med_sess,s)),0,LAST_SIGNAL_MED_SESSION*sizeof(guint));	  
-		
-
-
-
-		g->GET_WSD_VAR_NAME(google_audio_caps,gabble_med_sess,s) = PRESENCE_CAP_GOOGLE_VOICE;
-		
-		int some = PRESENCE_CAP_JINGLE | PRESENCE_CAP_JINGLE_DESCRIPTION_AUDIO |
-		    PRESENCE_CAP_GOOGLE_TRANSPORT_P2P;
-		
-		g->GET_WSD_VAR_NAME(jingle_audio_caps,gabble_med_sess,s) = (GabblePresenceCapabilities)some;
-		
-		some = PRESENCE_CAP_JINGLE | PRESENCE_CAP_JINGLE_DESCRIPTION_VIDEO |
-		    PRESENCE_CAP_GOOGLE_TRANSPORT_P2P;
-		g->GET_WSD_VAR_NAME(jingle_video_caps,gabble_med_sess,s) = 
-		(GabblePresenceCapabilities) some;
-		
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_med_sess,s)),0,MAX_STREAM_NAME_LEN*sizeof(gchar));	  
-		
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_med_stream,s)),0,LAST_SIGNAL_MED_STREAM*sizeof(guint));	  
-		
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_pre_cache,s)),0,LAST_SIGNAL_PRE_CACHE*sizeof(guint));	  
-		
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_register,s)),0,LAST_SIGNAL_REGISTER*sizeof(guint));	  
-		
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_ros_chnl,s)),0,LAST_SIGNAL_ROS_CHNL*sizeof(guint));	  
-		
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_room_chnl,s)),0,LAST_SIGNAL_ROOM_CHNL*sizeof(guint));	  
-		
-		g->GET_WSD_VAR_NAME(offset_quark1,gabble_mixin,s) = 0;
-		g->GET_WSD_VAR_NAME(offset_quark,gabble_mixin,s) = 0;
-		
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_roster,s)),0,LAST_SIGNAL_ROSTER*sizeof(guint));	  
-
-		g->GET_WSD_VAR_NAME(quark,gabble_errors,s) = 0;
-		
-		g->GET_WSD_VAR_NAME(busCon,gabble_helpers,s) = NULL;
-		g->GET_WSD_VAR_NAME(bus_proxy,gabble_helpers,s) = NULL;
-
-		g->GET_WSD_VAR_NAME(offset_quark1,gabble_txt_mixin,s) = 0;
-		g->GET_WSD_VAR_NAME(offset_quark,gabble_txt_mixin,s) = 0;
-		
-		memset(&(g->GET_WSD_VAR_NAME(alloc1,gabble_txt_mixin,s)),0,sizeof(GabbleAllocator));	  	
-		
-		g->GET_WSD_VAR_NAME(type,gabble_chnl_iface,s) = 0;
-		g->GET_WSD_VAR_NAME(initialized,gabble_chnl_iface,s) = EFalse;    
-		
-		g->GET_WSD_VAR_NAME(type,gabble_fac_iface,s) = 0;
-		g->GET_WSD_VAR_NAME(initialized,gabble_fac_iface,s) = EFalse;	
-		
-		memset(&(g->GET_WSD_VAR_NAME(signals,gabble_vcard_mgr,s)),0,LAST_SIGNAL_VCARD_MGR*sizeof(guint));	  
-		
-		g->GET_WSD_VAR_NAME(quark1,gabble_vcard_mgr,s) = 0;
-		g->GET_WSD_VAR_NAME(quark2,gabble_vcard_mgr,s) = 0;
-		
-		g->GET_WSD_VAR_NAME(offset_quark1,gabble_grp_mixin,s) = 0;
-		g->GET_WSD_VAR_NAME(offset_quark,gabble_grp_mixin,s) = 0;	    
-		
-		g->GET_WSD_VAR_NAME(gabble_disco_parent_class,gabble_disco,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_disco,s) = 0;
-		
-		g->GET_WSD_VAR_NAME(gabble_connection_manager_parent_class,gabble_conmgr,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_conmgr,s) = 0;
-		
-		g->GET_WSD_VAR_NAME(gabble_connection_parent_class,gabble_con,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_con,s) = 0;
-		
-		g->GET_WSD_VAR_NAME(gabble_im_channel_parent_class,gabble_im,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_im,s) = 0;
-		
-		g->GET_WSD_VAR_NAME(gabble_search_channel_parent_class,gabble_search,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_search,s) = 0;
-
-
-       	g->GET_WSD_VAR_NAME(gabble_muc_channel_parent_class,gabble_muc,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_muc,s) = 0;
-
-        g->GET_WSD_VAR_NAME(gabble_media_channel_parent_class,gabble_med_chnl,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_med_chnl,s) = 0;
-		
-	    g->GET_WSD_VAR_NAME(gabble_media_stream_parent_class,gabble_med_stream,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_med_stream,s) = 0;
-
-        g->GET_WSD_VAR_NAME(gabble_presence_parent_class,gabble_presence,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_presence,s) = 0;
-
-        g->GET_WSD_VAR_NAME(gabble_presence_cache_parent_class,gabble_pre_cache,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_pre_cache,s) = 0;
-
-        g->GET_WSD_VAR_NAME(gabble_register_parent_class,gabble_register,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_register,s) = 0;
-        
-        g->GET_WSD_VAR_NAME(gabble_roster_channel_parent_class,gabble_ros_chnl,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_ros_chnl,s) = 0;
-        
-        
-        g->GET_WSD_VAR_NAME(gabble_roomlist_channel_parent_class,gabble_room_chnl,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_room_chnl,s) = 0;
-
-        g->GET_WSD_VAR_NAME(gabble_im_factory_parent_class ,im_factory,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,im_factory,s) = 0;
-        
-        
-        g->GET_WSD_VAR_NAME(gabble_media_factory_parent_class ,media_factory,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,media_factory,s) = 0;
-
-        g->GET_WSD_VAR_NAME(gabble_muc_factory_parent_class ,muc_factory,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,muc_factory,s) = 0;
-
-        g->GET_WSD_VAR_NAME(gabble_vcard_manager_parent_class ,gabble_vcard_mgr,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_vcard_mgr,s) = 0;
-		
-		g->GET_WSD_VAR_NAME(gabble_media_session_parent_class ,gabble_med_sess,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_med_sess,s) = 0;
-		
-		g->GET_WSD_VAR_NAME(gabble_roster_parent_class ,gabble_roster,s) = ((void *)0); 
-		g->GET_WSD_VAR_NAME(g_define_type_id,gabble_roster,s) = 0;
-		
-		
-	    memcpy (&(g->GET_WSD_VAR_NAME(keys,gabble_debug,s)), keys, 12*sizeof(GDebugKey));
-	  	strcpy((g->GET_WSD_VAR_NAME(NO_ALIAS,gabble_vcard_mgr,s)), NO_ALIAS);
-	  	
-	  	memset(&(g->GET_WSD_VAR_NAME(assumed_caps,gabble_con,s)),0,3*150*sizeof(gchar));
-	  	
-	  	strcpy((g->GET_WSD_VAR_NAME(assumed_caps,gabble_con,s))[0], assumed_caps[0]);
-	  	strcpy((g->GET_WSD_VAR_NAME(assumed_caps,gabble_con,s))[0], assumed_caps[1]);
-	 
-	  	strcpy((g->GET_WSD_VAR_NAME(muc_roles,gabble_muc,s))[0], muc_roles[0]);
-	  	strcpy((g->GET_WSD_VAR_NAME(muc_roles,gabble_muc,s))[1], muc_roles[1]);
-	  	strcpy((g->GET_WSD_VAR_NAME(muc_roles,gabble_muc,s))[2], muc_roles[2]);
-	  	strcpy((g->GET_WSD_VAR_NAME(muc_roles,gabble_muc,s))[3], muc_roles[3]);
-
-		
-		strcpy((g->GET_WSD_VAR_NAME(muc_affiliations,gabble_muc,s))[0], muc_affiliations[0]);
-		strcpy((g->GET_WSD_VAR_NAME(muc_affiliations,gabble_muc,s))[1], muc_affiliations[1]);
-		strcpy((g->GET_WSD_VAR_NAME(muc_affiliations,gabble_muc,s))[2], muc_affiliations[2]);
-		strcpy((g->GET_WSD_VAR_NAME(muc_affiliations,gabble_muc,s))[3], muc_affiliations[3]);
-		
-		strcpy((g->GET_WSD_VAR_NAME(video_codec_params,gabble_med_stream,s))[0], video_codec_params[0]);
-		strcpy((g->GET_WSD_VAR_NAME(video_codec_params,gabble_med_stream,s))[1], video_codec_params[1]);
-		strcpy((g->GET_WSD_VAR_NAME(video_codec_params,gabble_med_stream,s))[2], video_codec_params[2]);
-		strcpy((g->GET_WSD_VAR_NAME(video_codec_params,gabble_med_stream,s))[3], video_codec_params[3]);
-		strcpy((g->GET_WSD_VAR_NAME(video_codec_params,gabble_med_stream,s))[4], video_codec_params[4]);
-		strcpy((g->GET_WSD_VAR_NAME(video_codec_params,gabble_med_stream,s))[5], video_codec_params[5]);
-		
-		strcpy((g->GET_WSD_VAR_NAME(list_handle_strings,handles,s))[0], list_handle_strings[0]);
-		strcpy((g->GET_WSD_VAR_NAME(list_handle_strings,handles,s))[1], list_handle_strings[1]);
-		strcpy((g->GET_WSD_VAR_NAME(list_handle_strings,handles,s))[2], list_handle_strings[2]);
-		strcpy((g->GET_WSD_VAR_NAME(list_handle_strings,handles,s))[3], list_handle_strings[3]);
-		
-		memcpy (&(g->GET_WSD_VAR_NAME(handlers,gabble_med_sess,s)), handlers, 10*sizeof(Handler));
-  
-		return 0;
-  }
-  return 1;
-}
-
--- a/telepathygabble/src/media-factory.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,666 +0,0 @@
-/*
- * media-factory.c - Source for GabbleMediaFactory
- * Copyright (C) 2006 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#include <glib.h>
-
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-
-#include "loudmouth/loudmouth.h"
-
-
-#include "debug.h"
-#include "gabble-connection.h"
-#include "gabble-media-channel.h"
-#include "handles.h"
-#include "media-factory.h"
-#include "namespaces.h"
-#include "telepathy-interfaces.h"
-#include "text-mixin.h"
-#include "tp-channel-factory-iface.h"
-#include "util.h"
-
-static void gabble_media_factory_iface_init (gpointer g_iface, gpointer iface_data);
-static LmHandlerResult media_factory_jingle_cb (LmMessageHandler*, LmConnection*, LmMessage*, gpointer);
-#ifndef EMULATOR
-G_DEFINE_TYPE_WITH_CODE (GabbleMediaFactory, gabble_media_factory, G_TYPE_OBJECT,
-    G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_FACTORY_IFACE, gabble_media_factory_iface_init));
-    
-#endif
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-    GET_STATIC_VAR_FROM_TLS(gabble_media_factory_parent_class,media_factory,gpointer)
-	#define gabble_media_factory_parent_class (*GET_WSD_VAR_NAME(gabble_media_factory_parent_class,media_factory,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,media_factory,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,media_factory,s)())
-
-static void gabble_media_factory_init (GabbleMediaFactory *self); 
-static void gabble_media_factory_class_init (GabbleMediaFactoryClass *klass); 
-static void gabble_media_factory_class_intern_init (gpointer klass) 
-{ 
-gabble_media_factory_parent_class = g_type_class_peek_parent (klass);
- gabble_media_factory_class_init ((GabbleMediaFactoryClass*) klass);
-}
- EXPORT_C GType gabble_media_factory_get_type (void)
- {
- if ((g_define_type_id == 0)) { static const GTypeInfo g_define_type_info = { sizeof (GabbleMediaFactoryClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_media_factory_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleMediaFactory), 0, (GInstanceInitFunc) gabble_media_factory_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleMediaFactory"), &g_define_type_info, (GTypeFlags) 0); { { static const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) gabble_media_factory_iface_init }; g_type_add_interface_static (g_define_type_id, tp_channel_factory_iface_get_type(), &g_implement_interface_info); } ; } } return g_define_type_id; }    ;
-#endif
-
-#define DBUS_API_SUBJECT_TO_CHANGE
-#define DEBUG_FLAG GABBLE_DEBUG_MEDIA
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-/* properties */
-enum
-{
-  PROP_CONNECTION = 1,
-  LAST_PROPERTY
-};
-
-typedef struct _GabbleMediaFactoryPrivate GabbleMediaFactoryPrivate;
-struct _GabbleMediaFactoryPrivate
-{
-  GabbleConnection *conn;
-  LmMessageHandler *jingle_cb;
-
-  GPtrArray *channels;
-  guint channel_index;
-
-  GHashTable *session_chans;
-
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_MEDIA_FACTORY_GET_PRIVATE(o)    (G_TYPE_INSTANCE_GET_PRIVATE ((o), GABBLE_TYPE_MEDIA_FACTORY, GabbleMediaFactoryPrivate))
-
-static GObject *gabble_media_factory_constructor (GType type, guint n_props, GObjectConstructParam *props);
-
-static void
-gabble_media_factory_init (GabbleMediaFactory *fac)
-{
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-
-  priv->channels = g_ptr_array_sized_new (1);
-  priv->channel_index = 0;
-
-  priv->jingle_cb = NULL;
-
-  priv->conn = NULL;
-  priv->dispose_has_run = FALSE;
-
-  priv->session_chans = g_hash_table_new_full (g_str_hash, g_str_equal,
-                                               g_free, NULL);
-}
-
-static GObject *
-gabble_media_factory_constructor (GType type, guint n_props,
-                               GObjectConstructParam *props)
-{
-  GObject *obj;
-  GabbleMediaFactoryPrivate *priv;
-
-  obj = G_OBJECT_CLASS (gabble_media_factory_parent_class)->
-           constructor (type, n_props, props);
-  priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (obj);
-
-  return obj;
-}
-
-
-static void
-gabble_media_factory_dispose (GObject *object)
-{
-  GabbleMediaFactory *fac = GABBLE_MEDIA_FACTORY (object);
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-
-  if (priv->dispose_has_run)
-    return;
-
-  gabble_debug (DEBUG_FLAG, "dispose called");
-  priv->dispose_has_run = TRUE;
-
-  tp_channel_factory_iface_close_all (TP_CHANNEL_FACTORY_IFACE (object));
-  g_assert (priv->channels == NULL);
-
-  if (priv->session_chans)
-    {
-      g_assert (g_hash_table_size (priv->session_chans) == 0);
-      g_hash_table_destroy (priv->session_chans);
-      priv->session_chans = NULL;
-    }
-
-  if (G_OBJECT_CLASS (gabble_media_factory_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_media_factory_parent_class)->dispose (object);
-}
-
-static void
-gabble_media_factory_get_property (GObject    *object,
-                                   guint       property_id,
-                                   GValue     *value,
-                                   GParamSpec *pspec)
-{
-  GabbleMediaFactory *fac = GABBLE_MEDIA_FACTORY (object);
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_media_factory_set_property (GObject      *object,
-                                   guint         property_id,
-                                   const GValue *value,
-                                   GParamSpec   *pspec)
-{
-  GabbleMediaFactory *fac = GABBLE_MEDIA_FACTORY (object);
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_media_factory_class_init (GabbleMediaFactoryClass *gabble_media_factory_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_media_factory_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_media_factory_class, sizeof (GabbleMediaFactoryPrivate));
-
-  object_class->constructor = gabble_media_factory_constructor;
-  object_class->dispose = gabble_media_factory_dispose;
-
-  object_class->get_property = gabble_media_factory_get_property;
-  object_class->set_property = gabble_media_factory_set_property;
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "media channel factory object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-}
-
-static gboolean _gabble_media_factory_sid_in_use (GabbleMediaFactory *fac, const gchar *sid);
-static GabbleMediaChannel *new_media_channel (GabbleMediaFactory *fac, GabbleHandle handle);
-static void media_channel_closed_cb (GabbleMediaChannel *chan, gpointer user_data);
-
-/**
- * media_factory_jingle_cb
- *
- * Called by loudmouth when we get an incoming <iq>. This handler
- * is concerned only with jingle session queries, and allows other
- * handlers to be called for other queries.
- */
-static LmHandlerResult
-media_factory_jingle_cb (LmMessageHandler *handler,
-                         LmConnection *lmconn,
-                         LmMessage *message,
-                         gpointer user_data)
-{
-  GabbleMediaFactory *fac = GABBLE_MEDIA_FACTORY (user_data);
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-  LmMessageNode *iq_node, *session_node;
-  const gchar *from, *id, *action, *sid;
-  gchar *resource;
-  GabbleHandle handle;
-  GabbleMediaChannel *chan = NULL;
-  gboolean chan_is_new = FALSE;
-  GError *error = NULL;
-
-  g_assert (lmconn == priv->conn->lmconn);
-
-  /* all jingle actions are sets */
-  if (LM_MESSAGE_SUB_TYPE_SET != lm_message_get_sub_type (message))
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-  /* is it for us? */
-  iq_node = lm_message_get_node (message);
-  session_node = lm_message_node_get_child_with_namespace (message->node,
-      "jingle", NS_JINGLE);
-
-  if (session_node != NULL)
-    {
-      action = lm_message_node_get_attribute (session_node, "action");
-    }
-  else
-    {
-      session_node = lm_message_node_get_child_with_namespace (iq_node,
-          "session", NS_GOOGLE_SESSION);
-
-      if (session_node == NULL)
-        return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-      action = lm_message_node_get_attribute (session_node, "type");
-    }
-
-  if (action == NULL)
-    {
-      NODE_DEBUG (iq_node, "session action not found");
-      goto BAD_REQUEST;
-    }
-
-  from = lm_message_node_get_attribute (iq_node, "from");
-  if (from == NULL)
-    {
-      NODE_DEBUG (iq_node, "'from' attribute not found");
-      goto BAD_REQUEST;
-    }
-
-  handle = gabble_handle_for_contact (priv->conn->handles, from, FALSE);
-  if (handle == 0)
-    {
-      NODE_DEBUG (iq_node, "unable to get handle for sender");
-      goto BAD_REQUEST;
-    }
-
-  id = lm_message_node_get_attribute (iq_node, "id");
-  if (id == NULL)
-    {
-      NODE_DEBUG (iq_node, "'id' attribute not found");
-      goto BAD_REQUEST;
-    }
-
-  /* does the session exist? */
-  sid = lm_message_node_get_attribute (session_node, "sid");
-  if (sid == NULL)
-    sid = lm_message_node_get_attribute (session_node, "id");
-
-  if (sid == NULL)
-    {
-      NODE_DEBUG (iq_node, "unable to get session id");
-      goto BAD_REQUEST;
-    }
-
-  if (_gabble_media_factory_sid_in_use (fac, sid))
-    {
-      /* if it's media session, we should have it in here */
-      chan = g_hash_table_lookup (priv->session_chans, sid);
-    }
-
-  /* it's a new session */
-  if (chan == NULL)
-    {
-      /* if the session is unknown, the only allowed action is "initiate" */
-      if (g_strdiff (action, "initiate") &&
-          g_strdiff (action, "session-initiate"))
-        {
-          NODE_DEBUG (iq_node,
-              "action is not \"initiate\" or \"session-initiate\", rejecting");
-          goto BAD_REQUEST;
-        }
-
-      gabble_debug (DEBUG_FLAG, "creating media channel");
-
-      chan = new_media_channel (fac, handle);
-      chan_is_new = TRUE;
-    }
-
-  g_assert (chan != NULL);
-
-  gabble_debug (DEBUG_FLAG, "dispatching to session %s", sid);
-  g_object_ref (chan);
-  gabble_decode_jid (from, NULL, NULL, &resource);
-
-  if (_gabble_media_channel_dispatch_session_action (chan, handle, resource,
-        sid, message, session_node, action, &error))
-    {
-      if (chan_is_new)
-        g_signal_emit_by_name (fac, "new-channel", chan);
-    }
-  else
-    {
-      if (chan_is_new)
-        gabble_media_channel_close (chan, NULL);
-
-      g_assert (error != NULL);
-      _gabble_connection_send_iq_error (priv->conn, message, error->code,
-          error->message);
-    }
-
-  g_object_unref (chan);
-  g_free (resource);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-
-BAD_REQUEST:
-  _gabble_connection_send_iq_error (
-    priv->conn, message, XMPP_ERROR_BAD_REQUEST, NULL);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static const gchar *
-_gabble_media_factory_get_unique_sid (GabbleMediaFactory *fac)
-{
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-  guint32 val;
-  gchar *sid = NULL;
-  gboolean unique = FALSE;
-
-  while (!unique)
-    {
-      val = g_random_int_range (1000000, G_MAXINT);
-
-      g_free (sid);
-      sid = g_strdup_printf ("%u", val);
-
-      unique = !_gabble_media_factory_sid_in_use (fac, sid);
-    }
-
-  g_hash_table_insert (priv->session_chans, sid, NULL);
-
-  return sid;
-}
-
-static gboolean
-_gabble_media_factory_sid_in_use (GabbleMediaFactory *fac, const gchar *sid)
-{
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-  gpointer key, value;
-
-  return g_hash_table_lookup_extended (priv->session_chans, sid, &key, &value);
-}
-
-const gchar *
-_gabble_media_factory_allocate_sid (GabbleMediaFactory *fac, GabbleMediaChannel *chan)
-{
-  const gchar *sid = _gabble_media_factory_get_unique_sid (fac);
-
-  g_return_val_if_fail (sid, NULL);
-
-  return _gabble_media_factory_register_sid (fac, sid, chan);
-}
-
-const gchar *
-_gabble_media_factory_register_sid (GabbleMediaFactory *fac,
-                                    const gchar *sid,
-                                    GabbleMediaChannel *chan)
-{
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-  gchar *sid_copy = g_strdup (sid);
-
-  g_hash_table_replace (priv->session_chans, sid_copy, chan);
-
-  return sid_copy;
-}
-
-void
-_gabble_media_factory_free_sid (GabbleMediaFactory *fac, const gchar *sid)
-{
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-  if (g_hash_table_lookup (priv->session_chans, sid))
-    {
-      g_hash_table_remove (priv->session_chans, sid);
-    }
-}
-
-static gboolean
-_remove_sid_mapping (gpointer key, gpointer value, gpointer user_data)
-{
-  GabbleMediaChannel *chan = GABBLE_MEDIA_CHANNEL (value);
-  GabbleMediaChannel *target_chan = GABBLE_MEDIA_CHANNEL (user_data);
-
-  if (chan == target_chan) return TRUE;
-  return FALSE;
-}
-
-/**
- * media_channel_closed_cb:
- *
- * Signal callback for when a media channel is closed. Removes the references
- * that #GabbleMediaFactory holds to them. Also removes all the sessions for
- * the closed channel.
- */
-static void
-media_channel_closed_cb (GabbleMediaChannel *chan, gpointer user_data)
-{
-  GabbleMediaFactory *fac = GABBLE_MEDIA_FACTORY (user_data);
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-
-  if (priv->channels)
-    {
-      gabble_debug (DEBUG_FLAG, "removing media channel %p with ref count %d",
-          chan, G_OBJECT (chan)->ref_count);
-
-      g_ptr_array_remove (priv->channels, chan);
-      g_object_unref (chan);
-    }
-
-  if (priv->session_chans)
-    {
-      g_hash_table_foreach_remove (priv->session_chans, _remove_sid_mapping, chan);
-    }
-}
-
-/**
- * new_media_channel
- *
- * Creates a new empty GabbleMediaChannel.
- */
-static GabbleMediaChannel *
-new_media_channel (GabbleMediaFactory *fac, GabbleHandle creator)
-{
-  GabbleMediaFactoryPrivate *priv;
-  GabbleMediaChannel *chan;
-  gchar *object_path;
-
-  g_assert (GABBLE_IS_MEDIA_FACTORY (fac));
-
-  priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-
-  object_path = g_strdup_printf ("%s/MediaChannel%u", priv->conn->object_path,
-                                 priv->channel_index);
-  priv->channel_index += 1;
-
-  chan = g_object_new (GABBLE_TYPE_MEDIA_CHANNEL,
-                       "connection", priv->conn,
-                       "factory", fac,
-                       "object-path", object_path,
-                       "creator", creator,
-                       NULL);
-
-  gabble_debug (DEBUG_FLAG, "object path %s", object_path);
-
-  g_signal_connect (chan, "closed", (GCallback) media_channel_closed_cb, fac);
-
-  g_ptr_array_add (priv->channels, chan);
-
-  g_free (object_path);
-
-  return chan;
-}
-
-
-static void
-gabble_media_factory_iface_close_all (TpChannelFactoryIface *iface)
-{
-  GabbleMediaFactory *fac = GABBLE_MEDIA_FACTORY (iface);
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-  guint i;
-
-  gabble_debug (DEBUG_FLAG, "closing channels");
-
-  if (priv->channels)
-    {
-      GPtrArray *tmp = priv->channels;
-      priv->channels = NULL;
-
-
-      for (i = 0; i < tmp->len; i++)
-        {
-          GabbleMediaChannel *chan = g_ptr_array_index (tmp, i);
-
-          gabble_debug (DEBUG_FLAG, "about to unref channel with ref_count %d",
-                   G_OBJECT (chan)->ref_count);
-
-          g_object_unref (chan);
-        }
-
-      g_ptr_array_free (tmp, TRUE);
-    }
-
-  if (priv->session_chans)
-    {
-      g_hash_table_destroy (priv->session_chans);
-      priv->session_chans = NULL;
-    }
-}
-
-static void
-gabble_media_factory_iface_connecting (TpChannelFactoryIface *iface)
-{
-  GabbleMediaFactory *fac = GABBLE_MEDIA_FACTORY (iface);
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-
-  g_assert(priv->conn != NULL);
-  g_assert(priv->conn->lmconn != NULL);
-
-  gabble_debug (DEBUG_FLAG, "adding callbacks");
-
-  priv->jingle_cb = lm_message_handler_new (media_factory_jingle_cb, fac, NULL);
-  lm_connection_register_message_handler (priv->conn->lmconn, priv->jingle_cb,
-                                          LM_MESSAGE_TYPE_IQ,
-                                          LM_HANDLER_PRIORITY_NORMAL);
-}
-
-static void
-gabble_media_factory_iface_connected (TpChannelFactoryIface *iface)
-{
-  /* nothing to do */
-}
-
-static void
-gabble_media_factory_iface_disconnected (TpChannelFactoryIface *iface)
-{
-  GabbleMediaFactory *fac = GABBLE_MEDIA_FACTORY (iface);
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-
-  g_assert (priv->jingle_cb != NULL);
-
-  gabble_debug (DEBUG_FLAG, "removing callbacks");
-
-  lm_connection_unregister_message_handler (priv->conn->lmconn, priv->jingle_cb,
-                                            LM_MESSAGE_TYPE_IQ);
-  lm_message_handler_unref (priv->jingle_cb);
-  priv->jingle_cb = NULL;
-}
-
-static void
-gabble_media_factory_iface_foreach (TpChannelFactoryIface *iface, TpChannelFunc foreach, gpointer user_data)
-{
-  GabbleMediaFactory *fac = GABBLE_MEDIA_FACTORY (iface);
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-  guint i;
-
-  for (i = 0; i < priv->channels->len; i++)
-    {
-      foreach (TP_CHANNEL_IFACE (g_ptr_array_index (priv->channels, i)), user_data);
-    }
-}
-
-static TpChannelFactoryRequestStatus
-gabble_media_factory_iface_request (TpChannelFactoryIface *iface,
-                                    const gchar *chan_type,
-                                    TpHandleType handle_type,
-                                    guint handle,
-                                    TpChannelIface **ret,
-                                    GError **error)
-{
-  GabbleMediaFactory *fac = GABBLE_MEDIA_FACTORY (iface);
-  GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
-  GabbleMediaChannel *chan = NULL;
-
-  if (strcmp (chan_type, TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA))
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_IMPLEMENTED;
-
-  if (handle_type == 0)
-    {
-      /* create an empty channel */
-      chan = new_media_channel (fac, priv->conn->self_handle);
-    }
-  else if (handle_type == TP_HANDLE_TYPE_CONTACT)
-    {
-      chan = new_media_channel (fac, priv->conn->self_handle);
-
-      if (!_gabble_media_channel_add_member (G_OBJECT (chan), handle, "", error))
-        {
-          gboolean close_ret;
-
-          close_ret = gabble_media_channel_close (chan, NULL);
-          g_assert (close_ret);
-
-          return TP_CHANNEL_FACTORY_REQUEST_STATUS_ERROR;
-        }
-    }
-  else
-    {
-      return TP_CHANNEL_FACTORY_REQUEST_STATUS_INVALID_HANDLE;
-    }
-
-  g_assert (chan != NULL);
-  g_signal_emit_by_name (fac, "new-channel", chan);
-
-  *ret = TP_CHANNEL_IFACE (chan);
-  return TP_CHANNEL_FACTORY_REQUEST_STATUS_DONE;
-}
-
-static void
-gabble_media_factory_iface_init (gpointer g_iface,
-                              gpointer iface_data)
-{
-  TpChannelFactoryIfaceClass *klass = (TpChannelFactoryIfaceClass *) g_iface;
-
-  klass->close_all = gabble_media_factory_iface_close_all;
-  klass->connected = gabble_media_factory_iface_connected;
-  klass->connecting = gabble_media_factory_iface_connecting;
-  klass->disconnected = gabble_media_factory_iface_disconnected;
-  klass->foreach = gabble_media_factory_iface_foreach;
-  klass->request = gabble_media_factory_iface_request;
-}
-
--- a/telepathygabble/src/muc-factory.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,879 +0,0 @@
-/*
- * muc-factory.c - Source for GabbleMucFactory
- * Copyright (C) 2006 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#include <glib.h>
-
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-
-#include "loudmouth/loudmouth.h"
-
-#include "debug.h"
-#include "disco.h"
-#include "gabble-connection.h"
-#include "gabble-presence-cache.h"
-#include "gabble-muc-channel.h"
-#include "gabble-roomlist-channel.h"
-#include "handles.h"
-#include "muc-factory.h"
-#include "namespaces.h"
-#include "telepathy-interfaces.h"
-#include "text-mixin.h"
-#include "tp-channel-factory-iface.h"
-#include "util.h"
-
-static void gabble_muc_factory_iface_init (gpointer g_iface, gpointer iface_data);
-
-#ifndef EMULATOR
-G_DEFINE_TYPE_WITH_CODE (GabbleMucFactory, gabble_muc_factory, G_TYPE_OBJECT,
-    G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_FACTORY_IFACE, gabble_muc_factory_iface_init));
-#endif
-    
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-    GET_STATIC_VAR_FROM_TLS(gabble_muc_factory_parent_class,muc_factory,gpointer)
-	#define gabble_muc_factory_parent_class (*GET_WSD_VAR_NAME(gabble_muc_factory_parent_class,muc_factory,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,muc_factory,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,muc_factory,s)())
-
-static void gabble_muc_factory_init (GabbleMucFactory *self); 
-static void gabble_muc_factory_class_init (GabbleMucFactoryClass *klass); 
-static void gabble_muc_factory_class_intern_init (gpointer klass) 
-{
- gabble_muc_factory_parent_class = g_type_class_peek_parent (klass); 
- gabble_muc_factory_class_init ((GabbleMucFactoryClass*) klass); 
- } 
- EXPORT_C GType gabble_muc_factory_get_type (void) 
- {
-   if ((g_define_type_id == 0)) { static const GTypeInfo g_define_type_info = { sizeof (GabbleMucFactoryClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_muc_factory_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleMucFactory), 0, (GInstanceInitFunc) gabble_muc_factory_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleMucFactory"), &g_define_type_info, (GTypeFlags) 0); { { static const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) gabble_muc_factory_iface_init }; g_type_add_interface_static (g_define_type_id, tp_channel_factory_iface_get_type(), &g_implement_interface_info); } ; } } return g_define_type_id; }    ;
-
-#endif
-#define DBUS_API_SUBJECT_TO_CHANGE
-#define DEBUG_FLAG GABBLE_DEBUG_MUC
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-/* properties */
-enum
-{
-  PROP_CONNECTION = 1,
-  LAST_PROPERTY
-};
-
-typedef struct _GabbleMucFactoryPrivate GabbleMucFactoryPrivate;
-struct _GabbleMucFactoryPrivate
-{
-  GabbleConnection *conn;
-
-  LmMessageHandler *message_cb;
-  LmMessageHandler *presence_cb;
-
-  GHashTable *channels;
-  GabbleRoomlistChannel *roomlist_channel;
-
-  GHashTable *disco_requests;
-
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_MUC_FACTORY_GET_PRIVATE(o)    (G_TYPE_INSTANCE_GET_PRIVATE ((o), GABBLE_TYPE_MUC_FACTORY, GabbleMucFactoryPrivate))
-
-static GObject *gabble_muc_factory_constructor (GType type, guint n_props, GObjectConstructParam *props);
-
-static void
-gabble_muc_factory_init (GabbleMucFactory *fac)
-{
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-
-  priv->channels = g_hash_table_new_full (g_direct_hash, g_direct_equal,
-                                          NULL, g_object_unref);
-
-  priv->disco_requests = g_hash_table_new_full (g_direct_hash, g_direct_equal,
-                                                NULL, NULL);
-
-  priv->message_cb = NULL;
-  priv->presence_cb = NULL;
-
-  priv->conn = NULL;
-  priv->dispose_has_run = FALSE;
-}
-
-static GObject *
-gabble_muc_factory_constructor (GType type, guint n_props,
-                                GObjectConstructParam *props)
-{
-  GObject *obj;
-  /* GabbleMucFactoryPrivate *priv; */
-
-  obj = G_OBJECT_CLASS (gabble_muc_factory_parent_class)->
-           constructor (type, n_props, props);
-  /* priv = GABBLE_MUC_FACTORY_GET_PRIVATE (obj); */
-
-  return obj;
-}
-
-static void
-cancel_disco_request (gpointer key, gpointer value, gpointer user_data)
-{
-  GabbleDisco *disco = GABBLE_DISCO (user_data);
-  GabbleDiscoRequest *request = (GabbleDiscoRequest *) key;
-
-  gabble_disco_cancel_request (disco, request);
-}
-
-static void
-gabble_muc_factory_dispose (GObject *object)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (object);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-
-  if (priv->dispose_has_run)
-    return;
-
-  gabble_debug (DEBUG_FLAG, "dispose called");
-  priv->dispose_has_run = TRUE;
-
-  tp_channel_factory_iface_close_all (TP_CHANNEL_FACTORY_IFACE (object));
-
-  g_hash_table_foreach (priv->disco_requests, cancel_disco_request, priv->conn->disco);
-  g_hash_table_destroy (priv->disco_requests);
-
-  if (G_OBJECT_CLASS (gabble_muc_factory_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_muc_factory_parent_class)->dispose (object);
-}
-
-static void
-gabble_muc_factory_get_property (GObject    *object,
-                                 guint       property_id,
-                                 GValue     *value,
-                                 GParamSpec *pspec)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (object);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_muc_factory_set_property (GObject      *object,
-                                 guint         property_id,
-                                 const GValue *value,
-                                 GParamSpec   *pspec)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (object);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_muc_factory_class_init (GabbleMucFactoryClass *gabble_muc_factory_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_muc_factory_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_muc_factory_class, sizeof (GabbleMucFactoryPrivate));
-
-  object_class->constructor = gabble_muc_factory_constructor;
-  object_class->dispose = gabble_muc_factory_dispose;
-
-  object_class->get_property = gabble_muc_factory_get_property;
-  object_class->set_property = gabble_muc_factory_set_property;
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "MUC factory object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-}
-
-
-static GabbleMucChannel *
-get_muc_from_jid (GabbleMucFactory *fac, const gchar *jid)
-{
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-  GabbleHandle handle;
-  GabbleMucChannel *chan = NULL;
-
-  if (gabble_handle_for_room_exists (priv->conn->handles, jid, TRUE))
-    {
-      handle = gabble_handle_for_room (priv->conn->handles, jid);
-
-      chan = g_hash_table_lookup (priv->channels, GUINT_TO_POINTER (handle));
-    }
-
-  return chan;
-}
-
-
-/**
- * muc_channel_closed_cb:
- *
- * Signal callback for when a MUC channel is closed. Removes the references
- * that MucFactory holds to them.
- */
-static void
-muc_channel_closed_cb (GabbleMucChannel *chan, gpointer user_data)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (user_data);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-  GabbleHandle room_handle;
-
-  if (priv->channels != NULL)
-    {
-      g_object_get (chan, "handle", &room_handle, NULL);
-
-      gabble_debug (DEBUG_FLAG, "removing MUC channel with handle %d", room_handle);
-
-      g_hash_table_remove (priv->channels, GINT_TO_POINTER (room_handle));
-    }
-}
-
-static void
-muc_ready_cb (GabbleMucChannel *chan,
-              gpointer data)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (data);
-
-  gabble_debug (DEBUG_FLAG, "chan=%p", chan);
-
-  g_signal_emit_by_name (fac, "new-channel", chan);
-}
-
-static void
-muc_join_error_cb (GabbleMucChannel *chan,
-                   GError *error,
-                   gpointer data)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (data);
-
-  gabble_debug (DEBUG_FLAG, "error->code=%u, error->message=\"%s\"", error->code, error->message);
-
-  g_signal_emit_by_name (fac, "channel-error", chan, error);
-}
-
-/**
- * new_muc_channel
- */
-static GabbleMucChannel *
-new_muc_channel (GabbleMucFactory *fac, GabbleHandle handle, gboolean invite_self)
-{
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-  GabbleMucChannel *chan;
-  char *object_path;
-
-  g_assert (g_hash_table_lookup (priv->channels, GINT_TO_POINTER (handle)) == NULL);
-
-  object_path = g_strdup_printf ("%s/MucChannel%u", priv->conn->object_path, handle);
-
-  gabble_debug (DEBUG_FLAG, "creating new chan, object path %s", object_path);
-
-  chan = g_object_new (GABBLE_TYPE_MUC_CHANNEL,
-                       "connection", priv->conn,
-                       "object-path", object_path,
-                       "handle", handle,
-                       "invite-self", invite_self,
-                       NULL);
-
-  g_signal_connect (chan, "closed", (GCallback) muc_channel_closed_cb, fac);
-
-  g_hash_table_insert (priv->channels, GINT_TO_POINTER (handle), chan);
-
-  g_free (object_path);
-
-  g_signal_connect (chan, "ready", G_CALLBACK (muc_ready_cb), fac);
-  g_signal_connect (chan, "join-error", G_CALLBACK (muc_join_error_cb),
-                    fac);
-
-  return chan;
-}
-
-
-struct DiscoInviteData {
-    GabbleMucFactory *factory;
-    gchar *reason;
-    GabbleHandle inviter;
-};
-
-/**
- * obsolete_invite_disco_cb:
- *
- * Callback for disco request we fired upon encountering obsolete disco.
- * If the object is in fact MUC room, create a channel for it.
- */
-static void
-obsolete_invite_disco_cb (GabbleDisco *self,
-                          GabbleDiscoRequest *request,
-                          const gchar *jid,
-                          const gchar *node,
-                          LmMessageNode *query_result,
-                          GError* error,
-                          gpointer user_data)
-{
-  struct DiscoInviteData *data = (struct DiscoInviteData *) user_data;
-
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (data->factory);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-  LmMessageNode *identity;
-  const char *category, *type;
-  GabbleHandle handle;
-
-  g_hash_table_remove (priv->disco_requests, request);
-
-  identity = lm_message_node_get_child (query_result, "identity");
-  if (NULL == identity)
-    return;
-
-  category = lm_message_node_get_attribute (identity, "category");
-  if (NULL == category)
-    return;
-
-  type = lm_message_node_get_attribute (identity, "type");
-  if (NULL == type)
-    return;
-
-  if (0 != strcmp (category, "conference") ||
-      0 != strcmp (type, "text"))
-    {
-      gabble_debug (DEBUG_FLAG, "obsolete invite request specified invalid jid '%s', ignoring", jid);
-    }
-
-  /* OK, it's MUC after all, create a new channel */
-  handle = gabble_handle_for_room (priv->conn->handles, jid);
-
-  if (g_hash_table_lookup (priv->channels, GINT_TO_POINTER (handle)) == NULL)
-    {
-      GabbleMucChannel *chan;
-      chan = new_muc_channel (fac, handle, FALSE);
-      _gabble_muc_channel_handle_invited (chan, data->inviter, data->reason);
-    }
-  else
-    {
-      gabble_debug (DEBUG_FLAG, "ignoring invite to a room '%s' we're already in", jid);
-    }
-
-  g_free (data->reason);
-  g_free (data);
-}
-
-
-/**
- * muc_factory_message_cb:
- *
- * Called by loudmouth when we get an incoming <message>.
- * We filter only groupchat and MUC messages, ignoring the rest.
- */
-static LmHandlerResult
-muc_factory_message_cb (LmMessageHandler *handler,
-                        LmConnection *connection,
-                        LmMessage *message,
-                        gpointer user_data)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (user_data);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-
-  const gchar *from, *body, *body_offset;
-  time_t stamp;
-  TpChannelTextMessageType msgtype;
-  LmMessageNode *node;
-  TpHandleType handle_type;
-  GabbleHandle room_handle, handle;
-  GabbleMucChannel *chan;
-  GabbleTextMixinSendError send_error;
-
-  if (!gabble_text_mixin_parse_incoming_message (message, &from, &stamp,
-        &msgtype, &body, &body_offset, &send_error))
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-  /* does it have a muc subnode? */
-  node = lm_message_node_get_child_with_namespace (message->node, "x",
-      NS_MUC_USER);
-  if (node != NULL)
-    {
-      /* and an invitation? */
-      node = lm_message_node_get_child (node, "invite");
-      if (node != NULL)
-        {
-          LmMessageNode *reason_node;
-          const gchar *invite_from, *reason;
-          GabbleHandle inviter_handle;
-
-          if (send_error != CHANNEL_TEXT_SEND_NO_ERROR)
-            {
-              NODE_DEBUG (message->node, "got a MUC invitation message "
-                             "with a send error; ignoring");
-
-              return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-            }
-
-          invite_from = lm_message_node_get_attribute (node, "from");
-          if (invite_from == NULL)
-            {
-              NODE_DEBUG (message->node, "got a MUC invitation message "
-                             "without a from field on the invite node, "
-                             "ignoring");
-
-              return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-            }
-
-          inviter_handle = gabble_handle_for_contact (priv->conn->handles,
-                                                      invite_from, FALSE);
-
-          reason_node = lm_message_node_get_child (node, "reason");
-          if (reason_node != NULL)
-            {
-              reason = lm_message_node_get_value (reason_node);
-            }
-          else
-            {
-              reason = "";
-              NODE_DEBUG (message->node, "no MUC invite reason specified");
-            }
-
-          /* create the channel */
-          handle = gabble_handle_for_room (priv->conn->handles, from);
-
-          if (g_hash_table_lookup (priv->channels, GINT_TO_POINTER (handle)) == NULL)
-            {
-              chan = new_muc_channel (fac, handle, FALSE);
-              _gabble_muc_channel_handle_invited (chan, inviter_handle, reason);
-            }
-          else
-            {
-              NODE_DEBUG (message->node, "ignoring invite to a room we're already in");
-            }
-
-          return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-        }
-    }
-  else
-    {
-      GabbleHandle inviter_handle;
-      GabbleDiscoRequest *request;
-      const gchar *reason;
-      struct DiscoInviteData *disco_udata;
-
-      /* check for obsolete invite method */
-      for (node = message->node->children; node != NULL; node = node->next)
-        if (strcmp (node->name, "x") == 0)
-          if (lm_message_node_has_namespace (node, NS_X_CONFERENCE, NULL))
-            break;
-
-      if (node == NULL)
-        goto HANDLE_MESSAGE;
-
-      /* the room JID is in x */
-      from = lm_message_node_get_attribute (node, "jid");
-      if (from == NULL)
-        return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-      /* the inviter JID is in "from" */
-      inviter_handle = gabble_handle_for_contact (priv->conn->handles,
-                                                  from, FALSE);
-
-      /* reason is the body */
-      reason = body;
-
-      disco_udata = g_new0 (struct DiscoInviteData, 1);
-      disco_udata->factory = fac;
-      disco_udata->reason = g_strdup (reason);
-      disco_udata->inviter = inviter_handle;
-
-      NODE_DEBUG (message->node, "received obsolete invite method");
-
-      request = gabble_disco_request (priv->conn->disco, GABBLE_DISCO_TYPE_INFO,
-          from, NULL, obsolete_invite_disco_cb, disco_udata, G_OBJECT (fac), NULL);
-
-      if (request != NULL)
-        g_hash_table_insert (priv->disco_requests, request, NULL);
-
-      return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-  }
-
-HANDLE_MESSAGE:
-
-  /* check if a room with the jid exists */
-  if (!gabble_handle_for_room_exists (priv->conn->handles, from, TRUE))
-    {
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  room_handle = gabble_handle_for_room (priv->conn->handles, from);
-
-  /* find the MUC channel */
-  chan = g_hash_table_lookup (priv->channels, GUINT_TO_POINTER (room_handle));
-
-  if (chan == NULL)
-    {
-      g_warning ("%s: ignoring groupchat message from known handle with "
-                 "no MUC channel", G_STRFUNC);
-
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  /* get the handle of the sender, which is either the room
-   * itself or one of its members */
-  if (gabble_handle_for_room_exists (priv->conn->handles, from, FALSE))
-    {
-      handle_type = TP_HANDLE_TYPE_ROOM;
-      handle = room_handle;
-    }
-  else
-    {
-      handle_type = TP_HANDLE_TYPE_CONTACT;
-      handle = gabble_handle_for_contact (priv->conn->handles, from, TRUE);
-    }
-
-  if (send_error != CHANNEL_TEXT_SEND_NO_ERROR)
-    {
-      _gabble_text_mixin_send_error_signal (G_OBJECT (chan), send_error, stamp,
-          msgtype, body_offset);
-      return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-
-  if (_gabble_muc_channel_receive (chan, msgtype, handle_type, handle, stamp,
-                                   body_offset, message))
-    return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-
-  return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-}
-
-
-/**
- * connection_presence_muc_cb:
- * @handler: #LmMessageHandler for this message
- * @connection: #LmConnection that originated the message
- * @message: the presence message
- * @user_data: callback data
- *
- * Called by loudmouth when we get an incoming <presence>.
- */
-static LmHandlerResult
-muc_factory_presence_cb (LmMessageHandler *handler,
-                            LmConnection *lmconn,
-                            LmMessage *msg,
-                            gpointer user_data)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (user_data);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-  const char *from;
-  LmMessageSubType sub_type;
-  GabbleMucChannel *muc_chan;
-  LmMessageNode *x_node;
-
-  g_assert (lmconn == priv->conn->lmconn);
-
-  from = lm_message_node_get_attribute (msg->node, "from");
-
-  if (from == NULL)
-    {
-      NODE_DEBUG (msg->node, "presence stanza without from attribute, ignoring");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  sub_type = lm_message_get_sub_type (msg);
-
-  muc_chan = get_muc_from_jid (fac, from);
-
-  /* is it an error and for a MUC? */
-  if (sub_type == LM_MESSAGE_SUB_TYPE_ERROR
-      && muc_chan != NULL)
-    {
-      _gabble_muc_channel_presence_error (muc_chan, from, msg->node);
-
-      return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    }
-
-  x_node = lm_message_node_get_child_with_namespace (msg->node, "x", NS_MUC_USER);
-
-  /* is it a MUC member presence? */
-  if (x_node != NULL)
-    {
-      if (muc_chan != NULL)
-        {
-          GabbleHandle handle;
-
-          handle = gabble_handle_for_contact (priv->conn->handles, from, TRUE);
-          if (handle == 0)
-            {
-              NODE_DEBUG (msg->node, "discarding MUC presence from malformed jid");
-              return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-            }
-
-          _gabble_muc_channel_member_presence_updated (muc_chan, handle,
-                                                       msg, x_node);
-        }
-      else
-        {
-          NODE_DEBUG (msg->node, "discarding unexpected MUC member presence");
-
-          return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-        }
-    }
-
-  return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-}
-
-static void
-roomlist_channel_closed_cb (GabbleRoomlistChannel *chan, gpointer data)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (data);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-
-  if (priv->roomlist_channel != NULL)
-    {
-      g_object_unref (priv->roomlist_channel);
-      priv->roomlist_channel = NULL;
-    }
-}
-
-static gboolean
-make_roomlist_channel (GabbleMucFactory *fac)
-{
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-
-  if (priv->roomlist_channel == NULL)
-    {
-      const gchar *server;
-      gchar *object_path;
-
-      server = _gabble_connection_find_conference_server (priv->conn);
-
-      if (server == NULL)
-        return FALSE;
-
-      object_path = g_strdup_printf ("%s/RoomlistChannel", priv->conn->object_path);
-
-      priv->roomlist_channel = _gabble_roomlist_channel_new (priv->conn,
-          object_path, server);
-
-      g_signal_connect (priv->roomlist_channel, "closed",
-                        (GCallback) roomlist_channel_closed_cb, fac);
-
-      g_signal_emit_by_name (fac, "new-channel", priv->roomlist_channel);
-
-      g_free (object_path);
-    }
-
-  return TRUE;
-}
-
-
-
-static void
-gabble_muc_factory_iface_close_all (TpChannelFactoryIface *iface)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (iface);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-
-  gabble_debug (DEBUG_FLAG, "closing channels");
-
-  if (priv->channels != NULL)
-    {
-      GHashTable *tmp = priv->channels;
-      priv->channels = NULL;
-      g_hash_table_destroy (tmp);
-    }
-
-  if (priv->roomlist_channel != NULL)
-    {
-      GObject *tmp = G_OBJECT (priv->roomlist_channel);
-      priv->roomlist_channel = NULL;
-      g_object_unref (tmp);
-    }
-}
-
-static void
-gabble_muc_factory_iface_connecting (TpChannelFactoryIface *iface)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (iface);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-
-  gabble_debug (DEBUG_FLAG, "adding callbacks");
-
-  g_assert (priv->message_cb == NULL);
-  g_assert (priv->presence_cb == NULL);
-
-  priv->message_cb = lm_message_handler_new (muc_factory_message_cb, fac, NULL);
-  lm_connection_register_message_handler (priv->conn->lmconn, priv->message_cb,
-                                          LM_MESSAGE_TYPE_MESSAGE,
-                                          LM_HANDLER_PRIORITY_NORMAL);
-
-  priv->presence_cb = lm_message_handler_new (muc_factory_presence_cb, fac, NULL);
-  lm_connection_register_message_handler (priv->conn->lmconn, priv->presence_cb,
-                                          LM_MESSAGE_TYPE_PRESENCE,
-                                          LM_HANDLER_PRIORITY_NORMAL);
-}
-
-
-static void
-gabble_muc_factory_iface_connected (TpChannelFactoryIface *iface)
-{
-  /* nothing to do */
-}
-
-static void
-gabble_muc_factory_iface_disconnected (TpChannelFactoryIface *iface)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (iface);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-
-  gabble_debug (DEBUG_FLAG, "removing callbacks");
-
-  g_assert (priv->message_cb != NULL);
-  g_assert (priv->presence_cb != NULL);
-
-  lm_connection_unregister_message_handler (priv->conn->lmconn, priv->message_cb,
-                                            LM_MESSAGE_TYPE_MESSAGE);
-  lm_message_handler_unref (priv->message_cb);
-  priv->message_cb = NULL;
-
-  lm_connection_unregister_message_handler (priv->conn->lmconn, priv->presence_cb,
-                                            LM_MESSAGE_TYPE_PRESENCE);
-  lm_message_handler_unref (priv->presence_cb);
-  priv->presence_cb = NULL;
-}
-
-struct _ForeachData
-{
-  TpChannelFunc foreach;
-  gpointer user_data;
-};
-
-static void
-_foreach_slave (gpointer key, gpointer value, gpointer user_data)
-{
-  struct _ForeachData *data = (struct _ForeachData *) user_data;
-  TpChannelIface *chan = TP_CHANNEL_IFACE (value);
-
-  data->foreach (chan, data->user_data);
-}
-
-static void
-gabble_muc_factory_iface_foreach (TpChannelFactoryIface *iface, TpChannelFunc foreach, gpointer user_data)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (iface);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-  struct _ForeachData data;
-
-  data.user_data = user_data;
-  data.foreach = foreach;
-
-  g_hash_table_foreach (priv->channels, _foreach_slave, &data);
-
-  if (priv->roomlist_channel != NULL)
-    foreach (TP_CHANNEL_IFACE (priv->roomlist_channel), user_data);
-}
-
-static TpChannelFactoryRequestStatus
-gabble_muc_factory_iface_request (TpChannelFactoryIface *iface,
-                                  const gchar *chan_type,
-                                  TpHandleType handle_type,
-                                  guint handle,
-                                  TpChannelIface **ret,
-                                  GError **error)
-{
-  GabbleMucFactory *fac = GABBLE_MUC_FACTORY (iface);
-  GabbleMucFactoryPrivate *priv = GABBLE_MUC_FACTORY_GET_PRIVATE (fac);
-  GabbleMucChannel *chan;
-
-  if (!g_strdiff (chan_type, TP_IFACE_CHANNEL_TYPE_ROOM_LIST))
-    {
-      /* FIXME - delay if services aren't discovered yet? */
-      if (!make_roomlist_channel (fac))
-        {
-          gabble_debug (DEBUG_FLAG, "no conference server available for roomlist request");
-          return TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_AVAILABLE;
-        }
-      *ret = TP_CHANNEL_IFACE (priv->roomlist_channel);
-      return TP_CHANNEL_FACTORY_REQUEST_STATUS_DONE;
-    }
-
-  if (strcmp (chan_type, TP_IFACE_CHANNEL_TYPE_TEXT))
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_IMPLEMENTED;
-
-  if (handle_type != TP_HANDLE_TYPE_ROOM)
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_AVAILABLE;
-
-  if (!gabble_handle_is_valid (priv->conn->handles, TP_HANDLE_TYPE_ROOM, handle, NULL))
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_INVALID_HANDLE;
-
-  chan = g_hash_table_lookup (priv->channels, GINT_TO_POINTER (handle));
-  if (!chan)
-    {
-      chan = new_muc_channel (fac, handle, TRUE);
-      return TP_CHANNEL_FACTORY_REQUEST_STATUS_QUEUED;
-    }
-
-  if (_gabble_muc_channel_is_ready (chan))
-    {
-      *ret = TP_CHANNEL_IFACE (chan);
-      return TP_CHANNEL_FACTORY_REQUEST_STATUS_DONE;
-    }
-  else
-    {
-      return TP_CHANNEL_FACTORY_REQUEST_STATUS_QUEUED;
-    }
-}
-
-static void
-gabble_muc_factory_iface_init (gpointer g_iface,
-                              gpointer iface_data)
-{
-  TpChannelFactoryIfaceClass *klass = (TpChannelFactoryIfaceClass *) g_iface;
-
-  klass->close_all = gabble_muc_factory_iface_close_all;
-  klass->connecting = gabble_muc_factory_iface_connecting;
-  klass->connected = gabble_muc_factory_iface_connected;
-  klass->disconnected = gabble_muc_factory_iface_disconnected;
-  klass->foreach = gabble_muc_factory_iface_foreach;
-  klass->request = gabble_muc_factory_iface_request;
-}
-
-
--- a/telepathygabble/src/properties-mixin-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
- * properties-mixin-signals-marshal.c 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
- 
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
--- a/telepathygabble/src/properties-mixin.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,830 +0,0 @@
-/*
- * properties-mixin.c - Source for GabblePropertiesMixin
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *   @author Robert McQueen <robert.mcqueen@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <dbus/dbus-glib.h>
-#include <stdio.h>
-#include <string.h>
-
-#define DEBUG_FLAG GABBLE_DEBUG_PROPERTIES
-
-#include "ansi.h"
-#include "debug.h"
-#include "properties-mixin.h"
-#include "properties-mixin-signals-marshal.h"
-#include "telepathy-errors.h"
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(offset_quark1,gabble_mixin,GQuark)
-	#define offset_quark1 (*GET_WSD_VAR_NAME(offset_quark1,gabble_mixin, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(offset_quark,gabble_mixin,GQuark)
-	#define offset_quark (*GET_WSD_VAR_NAME(offset_quark,gabble_mixin, s)())	
-	
-	
-#endif
-	
-struct _GabblePropertiesContext {
-    GabblePropertiesMixinClass *mixin_cls;
-    GabblePropertiesMixin *mixin;
-
-    DBusGMethodInvocation *dbus_ctx;
-    guint32 remaining;
-    GValue **values;
-};
-
-struct _GabblePropertiesMixinPrivate {
-    GObject *object;
-    GabblePropertiesContext context;
-};
-
-/**
- * gabble_properties_mixin_class_get_offset_quark:
- *
- * Returns: the quark used for storing mixin offset on a GObjectClass
- */
-GQuark
-gabble_properties_mixin_class_get_offset_quark ()
-{
-#ifndef EMULATOR
-  static GQuark offset_quark1= 0;
-#endif  
-  if (!offset_quark1)
-    offset_quark1 = g_quark_from_static_string("PropertiesMixinClassOffsetQuark");
-  return offset_quark1;
-}
-
-/**
- * gabble_properties_mixin_get_offset_quark:
- *
- * Returns: the quark used for storing mixin offset on a GObject
- */
-GQuark
-gabble_properties_mixin_get_offset_quark ()
-{
-#ifndef EMULATOR
-  static GQuark offset_quark = 0;
-#endif  
-  if (!offset_quark)
-    offset_quark = g_quark_from_static_string("PropertiesMixinOffsetQuark");
-  return offset_quark;
-}
-
-void gabble_properties_mixin_class_init (GObjectClass *obj_cls,
-                                         glong offset,
-                                         const GabblePropertySignature *signatures,
-                                         guint num_properties,
-                                         GabblePropertiesSetFunc set_func)
-{
-  GabblePropertiesMixinClass *mixin_cls;
-
-  g_assert (G_IS_OBJECT_CLASS (obj_cls));
-
-  g_type_set_qdata (G_OBJECT_CLASS_TYPE (obj_cls),
-                    GABBLE_PROPERTIES_MIXIN_CLASS_OFFSET_QUARK,
-                    GINT_TO_POINTER (offset));
-
-  mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (obj_cls);
-
-  mixin_cls->signatures = signatures;
-  mixin_cls->num_props = num_properties;
-
-  mixin_cls->set_properties = set_func;
-
-  mixin_cls->properties_changed_signal_id =
-    g_signal_new ("properties-changed",
-                  G_OBJECT_CLASS_TYPE (obj_cls),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOXED,
-                  G_TYPE_NONE, 1, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_VALUE, G_TYPE_INVALID)))));
-
-  mixin_cls->property_flags_changed_signal_id =
-    g_signal_new ("property-flags-changed",
-                  G_OBJECT_CLASS_TYPE (obj_cls),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__BOXED,
-                  G_TYPE_NONE, 1, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID)))));
-}
-
-void gabble_properties_mixin_init (GObject *obj, glong offset)
-{
-  GabblePropertiesMixinClass *mixin_cls;
-  GabblePropertiesMixin *mixin;
-  GabblePropertiesContext *ctx;
-
-  g_assert (G_IS_OBJECT (obj));
-
-  g_type_set_qdata (G_OBJECT_TYPE (obj),
-                    GABBLE_PROPERTIES_MIXIN_OFFSET_QUARK,
-                    GINT_TO_POINTER (offset));
-
-  mixin = GABBLE_PROPERTIES_MIXIN (obj);
-  mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (G_OBJECT_GET_CLASS (obj));
-
-  mixin->properties = g_new0 (GabbleProperty, mixin_cls->num_props);
-
-  mixin->priv = g_new0 (GabblePropertiesMixinPrivate, 1);
-  mixin->priv->object = obj;
-
-  ctx = &mixin->priv->context;
-  ctx->mixin_cls = mixin_cls;
-  ctx->mixin = mixin;
-  ctx->values = g_new0 (GValue *, mixin_cls->num_props);
-}
-
-void gabble_properties_mixin_finalize (GObject *obj)
-{
-  GabblePropertiesMixin *mixin = GABBLE_PROPERTIES_MIXIN (obj);
-  GabblePropertiesMixinClass *mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (
-                                            G_OBJECT_GET_CLASS (obj));
-  GabblePropertiesContext *ctx = &mixin->priv->context;
-  guint i;
-
-  for (i = 0; i < mixin_cls->num_props; i++)
-    {
-      GabbleProperty *prop = &mixin->properties[i];
-
-      if (prop->value)
-        {
-          g_value_unset (prop->value);
-          g_free (prop->value);
-        }
-
-      if (ctx->values[i])
-        {
-          g_value_unset (ctx->values[i]);
-        }
-    }
-
-  g_free (ctx->values);
-
-  g_free (mixin->priv);
-
-  g_free (mixin->properties);
-}
-
-gboolean
-gabble_properties_mixin_list_properties (GObject *obj, GPtrArray **ret, GError **error)
-{
-  GabblePropertiesMixin *mixin = GABBLE_PROPERTIES_MIXIN (obj);
-  GabblePropertiesMixinClass *mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (
-                                            G_OBJECT_GET_CLASS (obj));
-  guint i;
-
-  *ret = g_ptr_array_sized_new (mixin_cls->num_props);
-
-  for (i = 0; i < mixin_cls->num_props; i++)
-    {
-      const GabblePropertySignature *sig = &mixin_cls->signatures[i];
-      GabbleProperty *prop = &mixin->properties[i];
-      const gchar *dbus_sig;
-      GValue val = { 0, };
-
-      switch (sig->type) {
-        case G_TYPE_BOOLEAN:
-          dbus_sig = "b";
-          break;
-        case G_TYPE_INT:
-          dbus_sig = "i";
-          break;
-        case G_TYPE_UINT:
-          dbus_sig = "u";
-          break;
-        case G_TYPE_STRING:
-          dbus_sig = "s";
-          break;
-        default:
-          g_assert_not_reached ();
-          continue;
-      };
-
-      g_value_init (&val, TP_TYPE_PROPERTY_INFO_STRUCT);
-      g_value_take_boxed (&val,
-          dbus_g_type_specialized_construct (TP_TYPE_PROPERTY_INFO_STRUCT));
-
-      dbus_g_type_struct_set (&val,
-          0, i,
-          1, sig->name,
-          2, dbus_sig,
-          3, prop->flags,
-          G_MAXUINT);
-
-      g_ptr_array_add (*ret, g_value_get_boxed (&val));
-    }
-
-  return TRUE;
-}
-
-gboolean
-gabble_properties_mixin_get_properties (GObject *obj, const GArray *properties, GPtrArray **ret, GError **error)
-{
-  GabblePropertiesMixin *mixin = GABBLE_PROPERTIES_MIXIN (obj);
-  GabblePropertiesMixinClass *mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (
-                                            G_OBJECT_GET_CLASS (obj));
-  guint i;
-
-  /* Check input property identifiers */
-  for (i = 0; i < properties->len; i++)
-    {
-      guint prop_id = g_array_index (properties, guint, i);
-
-      /* Valid? */
-      if (prop_id >= mixin_cls->num_props)
-        {
-          g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-              "invalid property identifier %d", prop_id);
-
-          return FALSE;
-        }
-
-      /* Permitted? */
-      if (!gabble_properties_mixin_is_readable (obj, prop_id))
-        {
-          g_set_error (error, TELEPATHY_ERRORS, PermissionDenied,
-              "permission denied for property identifier %d", prop_id);
-
-          return FALSE;
-        }
-    }
-
-  /* If we got this far, return the actual values */
-  *ret = g_ptr_array_sized_new (properties->len);
-
-  for (i = 0; i < properties->len; i++)
-    {
-      guint prop_id = g_array_index (properties, guint, i);
-      GValue val_struct = { 0, };
-
-      /* id/value struct */
-      g_value_init (&val_struct, TP_TYPE_PROPERTY_VALUE_STRUCT);
-      g_value_take_boxed (&val_struct,
-          dbus_g_type_specialized_construct (TP_TYPE_PROPERTY_VALUE_STRUCT));
-
-      dbus_g_type_struct_set (&val_struct,
-          0, prop_id,
-          1, mixin->properties[prop_id].value,
-          G_MAXUINT);
-
-      g_ptr_array_add (*ret, g_value_get_boxed (&val_struct));
-    }
-
-  return TRUE;
-}
-
-void
-gabble_properties_mixin_set_properties (GObject *obj,
-                                        const GPtrArray *properties,
-                                        DBusGMethodInvocation *context)
-{
-  GabblePropertiesMixin *mixin = GABBLE_PROPERTIES_MIXIN (obj);
-  GabblePropertiesMixinClass *mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (
-                                            G_OBJECT_GET_CLASS (obj));
-  GabblePropertiesContext *ctx = &mixin->priv->context;
-  GError *error = NULL;
-  guint i;
-
-  /* Is another SetProperties request already in progress? */
-  if (ctx->dbus_ctx)
-    {
-      error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-                           "A SetProperties request is already in progress");
-      goto ERROR;
-    }
-
-  ctx->dbus_ctx = context;
-  error = NULL;
-
-  /* Check input property identifiers */
-  for (i = 0; i < properties->len; i++)
-    {
-      GValue val_struct = { 0, };
-      guint prop_id;
-      GValue *prop_val;
-
-      g_value_init (&val_struct, TP_TYPE_PROPERTY_VALUE_STRUCT);
-      g_value_set_static_boxed (&val_struct, g_ptr_array_index (properties, i));
-
-      dbus_g_type_struct_get (&val_struct,
-          0, &prop_id,
-          1, &prop_val,
-          G_MAXUINT);
-
-      /* Valid? */
-      if (prop_id >= mixin_cls->num_props)
-        {
-          g_value_unset (prop_val);
-
-          error = g_error_new (TELEPATHY_ERRORS, InvalidArgument,
-                               "invalid property identifier %d", prop_id);
-          goto ERROR;
-        }
-
-      /* Store the value in the context */
-      ctx->remaining |= 1 << prop_id;
-      ctx->values[prop_id] = prop_val;
-
-      /* Permitted? */
-      if (!gabble_properties_mixin_is_writable (obj, prop_id))
-        {
-          error = g_error_new (TELEPATHY_ERRORS, PermissionDenied,
-                               "permission denied for property identifier %d", prop_id);
-          goto ERROR;
-        }
-
-      /* Compatible type? */
-      if (!g_value_type_compatible (G_VALUE_TYPE (prop_val),
-                                    mixin_cls->signatures[prop_id].type))
-        {
-          error = g_error_new (TELEPATHY_ERRORS, NotAvailable,
-                               "incompatible value type for property identifier %d",
-                               prop_id);
-          goto ERROR;
-        }
-    }
-
-  if (mixin_cls->set_properties)
-    {
-      if (mixin_cls->set_properties (obj, ctx, &error))
-        return;
-    }
-  else
-    {
-      gabble_properties_context_return (ctx, NULL);
-      return;
-    }
-
-ERROR:
-  gabble_properties_context_return (ctx, error);
-}
-
-gboolean
-gabble_properties_mixin_has_property (GObject *obj, const gchar *name,
-                                      guint *property)
-{
-  GabblePropertiesMixinClass *mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (
-                                            G_OBJECT_GET_CLASS (obj));
-  guint i;
-
-  for (i = 0; i < mixin_cls->num_props; i++)
-    {
-      if (strcmp (mixin_cls->signatures[i].name, name) == 0)
-        {
-          if (property)
-            *property = i;
-
-          return TRUE;
-        }
-    }
-
-  return FALSE;
-}
-
-gboolean
-gabble_properties_context_has (GabblePropertiesContext *ctx, guint property)
-{
-  g_assert (property < ctx->mixin_cls->num_props);
-
-  return (ctx->values[property] != NULL);
-}
-
-gboolean
-gabble_properties_context_has_other_than (GabblePropertiesContext *ctx, guint property)
-{
-  g_assert (property < ctx->mixin_cls->num_props);
-
-  return ((ctx->remaining & ~(1 << property)) != 0);
-}
-
-const GValue *
-gabble_properties_context_get (GabblePropertiesContext *ctx, guint property)
-{
-  g_assert (property < ctx->mixin_cls->num_props);
-
-  return ctx->values[property];
-}
-
-guint
-gabble_properties_context_get_value_count (GabblePropertiesContext *ctx)
-{
-  guint i, n;
-
-  n = 0;
-  for (i = 0; i < ctx->mixin_cls->num_props; i++)
-    {
-      if (ctx->values[i])
-        n++;
-    }
-
-  return n;
-}
-
-void
-gabble_properties_context_remove (GabblePropertiesContext *ctx, guint property)
-{
-  g_assert (property < ctx->mixin_cls->num_props);
-
-  ctx->remaining &= ~(1 << property);
-}
-
-void
-gabble_properties_context_return (GabblePropertiesContext *ctx, GError *error)
-{
-  GObject *obj = ctx->mixin->priv->object;
-  GArray *changed_props_val, *changed_props_flags;
-  guint i;
-
-  gabble_debug (DEBUG_FLAG, "%s", (error) ? "failure" : "success");
-
-  changed_props_val = changed_props_flags = NULL;
-
-  for (i = 0; i < ctx->mixin_cls->num_props; i++)
-    {
-      if (ctx->values[i])
-        {
-          if (!error)
-            {
-              gabble_properties_mixin_change_value (obj, i, ctx->values[i],
-                                                    &changed_props_val);
-
-              gabble_properties_mixin_change_flags (obj, i,
-                  TP_PROPERTY_FLAG_READ, 0, &changed_props_flags);
-            }
-
-          g_value_unset (ctx->values[i]);
-          ctx->values[i] = NULL;
-        }
-    }
-
-  if (!error)
-    {
-      gabble_properties_mixin_emit_changed (obj, &changed_props_val);
-      gabble_properties_mixin_emit_flags (obj, &changed_props_flags);
-
-      dbus_g_method_return (ctx->dbus_ctx);
-    }
-  else
-    {
-      dbus_g_method_return_error (ctx->dbus_ctx, error);
-      g_error_free (error);
-    }
-
-  ctx->dbus_ctx = NULL;
-  ctx->remaining = 0;
-}
-
-gboolean
-gabble_properties_context_return_if_done (GabblePropertiesContext *ctx)
-{
-  if (ctx->remaining == 0)
-    {
-      gabble_properties_context_return (ctx, NULL);
-      return TRUE;
-    }
-
-  return FALSE;
-}
-
-#define RPTS_APPEND_FLAG_IF_SET(flag) \
-  if (flags & flag) \
-    { \
-      if (i++ > 0) \
-        g_string_append (str, "|"); \
-      g_string_append (str, #flag + 17); \
-    }
-
-static gchar *
-property_flags_to_string (TpPropertyFlags flags)
-{
-  gint i = 0;
-  GString *str;
-
-  str = g_string_new ("[" ANSI_BOLD_OFF);
-
-  RPTS_APPEND_FLAG_IF_SET (TP_PROPERTY_FLAG_READ);
-  RPTS_APPEND_FLAG_IF_SET (TP_PROPERTY_FLAG_WRITE);
-
-  g_string_append (str, ANSI_BOLD_ON "]");
-
-  return g_string_free (str, FALSE);
-}
-
-static gboolean
-values_are_equal (const GValue *v1, const GValue *v2)
-{
-  GType type = G_VALUE_TYPE (v1);
-  const gchar *s1, *s2;
-
-  switch (type) {
-    case G_TYPE_BOOLEAN:
-      return (g_value_get_boolean (v1) == g_value_get_boolean (v2));
-
-    case G_TYPE_STRING:
-      s1 = g_value_get_string (v1);
-      s2 = g_value_get_string (v2);
-
-      /* are they both NULL? */
-      if (s1 == s2)
-        return TRUE;
-
-      /* is one of them NULL? */
-      if (s1 == NULL || s2 == NULL)
-        return FALSE;
-
-      return (strcmp (s1, s2) == 0);
-
-    case G_TYPE_UINT:
-      return (g_value_get_uint (v1) == g_value_get_uint (v2));
-
-    case G_TYPE_INT:
-      return (g_value_get_int (v1) == g_value_get_int (v2));
-  }
-
-  return FALSE;
-}
-
-void
-gabble_properties_mixin_change_value (GObject *obj, guint prop_id,
-                                      const GValue *new_value,
-                                      GArray **props)
-{
-  GabblePropertiesMixin *mixin = GABBLE_PROPERTIES_MIXIN (obj);
-  GabblePropertiesMixinClass *mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (
-                                            G_OBJECT_GET_CLASS (obj));
-  GabbleProperty *prop;
-
-  g_assert (prop_id < mixin_cls->num_props);
-
-  prop = &mixin->properties[prop_id];
-
-  if (prop->value)
-    {
-      if (values_are_equal (prop->value, new_value))
-        return;
-    }
-  else
-    {
-      prop->value = g_new0 (GValue, 1);
-      g_value_init (prop->value, mixin_cls->signatures[prop_id].type);
-    }
-
-  g_value_copy (new_value, prop->value);
-
-  if (props)
-    {
-      guint i;
-
-      if (*props == NULL)
-        {
-          *props = g_array_sized_new (FALSE, FALSE, sizeof (guint),
-                                      mixin_cls->num_props);
-        }
-
-      for (i = 0; i < (*props)->len; i++)
-        {
-          if (g_array_index (*props, guint, i) == prop_id)
-            return;
-        }
-
-      g_array_append_val (*props, prop_id);
-    }
-  else
-    {
-      GArray *changed_props = g_array_sized_new (FALSE, FALSE,
-                                                 sizeof (guint), 1);
-      g_array_append_val (changed_props, prop_id);
-
-      gabble_properties_mixin_emit_changed (obj, &changed_props);
-    }
-}
-
-void
-gabble_properties_mixin_change_flags (GObject *obj, guint prop_id,
-                                      TpPropertyFlags add,
-                                      TpPropertyFlags remove,
-                                      GArray **props)
-{
-  GabblePropertiesMixin *mixin = GABBLE_PROPERTIES_MIXIN (obj);
-  GabblePropertiesMixinClass *mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (
-                                            G_OBJECT_GET_CLASS (obj));
-  GabbleProperty *prop;
-  guint prev_flags;
-
-  g_assert (prop_id < mixin_cls->num_props);
-
-  prop = &mixin->properties[prop_id];
-
-  prev_flags = prop->flags;
-
-  prop->flags |= add;
-  prop->flags &= ~remove;
-
-  if (prop->flags == prev_flags)
-    return;
-
-  if (props)
-    {
-      guint i;
-
-      if (*props == NULL)
-        {
-          *props = g_array_sized_new (FALSE, FALSE, sizeof (guint),
-                                      mixin_cls->num_props);
-        }
-
-      for (i = 0; i < (*props)->len; i++)
-        {
-          if (g_array_index (*props, guint, i) == prop_id)
-            return;
-        }
-
-      g_array_append_val (*props, prop_id);
-    }
-  else
-    {
-      GArray *changed_props = g_array_sized_new (FALSE, FALSE,
-                                                 sizeof (guint), 1);
-      g_array_append_val (changed_props, prop_id);
-
-      gabble_properties_mixin_emit_flags (obj, &changed_props);
-    }
-}
-
-void
-gabble_properties_mixin_emit_changed (GObject *obj, GArray **props)
-{
-  GabblePropertiesMixin *mixin = GABBLE_PROPERTIES_MIXIN (obj);
-  GabblePropertiesMixinClass *mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (
-                                            G_OBJECT_GET_CLASS (obj));
-  GPtrArray *prop_arr;
-  GValue prop_list = { 0, };
-  guint i;
-
-  if (*props == NULL)
-    return;
-
-  if ((*props)->len == 0)
-    return;
-
-  prop_arr = g_ptr_array_sized_new ((*props)->len);
-
-  if (DEBUGGING)
-    g_message (ANSI_BOLD_ON ANSI_FG_CYAN
-            "%s: emitting properties changed for propert%s:\n",
-            G_STRFUNC, ((*props)->len > 1) ? "ies" : "y");
-
-  for (i = 0; i < (*props)->len; i++)
-    {
-      GValue prop_val = { 0, };
-      guint prop_id = g_array_index (*props, guint, i);
-
-      g_value_init (&prop_val, TP_TYPE_PROPERTY_VALUE_STRUCT);
-      g_value_take_boxed (&prop_val,
-          dbus_g_type_specialized_construct (TP_TYPE_PROPERTY_VALUE_STRUCT));
-
-      dbus_g_type_struct_set (&prop_val,
-          0, prop_id,
-          1, mixin->properties[prop_id].value,
-          G_MAXUINT);
-
-      g_ptr_array_add (prop_arr, g_value_get_boxed (&prop_val));
-
-      if (DEBUGGING)
-        g_message ("  %s\n", mixin_cls->signatures[prop_id].name);
-    }
-
-  if (DEBUGGING)
-    {
-      g_message (ANSI_RESET);
-      fflush (stdout);
-    }
-
-  g_signal_emit (obj, mixin_cls->properties_changed_signal_id, 0, prop_arr);
-
-  g_value_init (&prop_list, TP_TYPE_PROPERTY_VALUE_LIST);
-  g_value_take_boxed (&prop_list, prop_arr);
-  g_value_unset (&prop_list);
-
-  g_array_free (*props, TRUE);
-  *props = NULL;
-}
-
-void
-gabble_properties_mixin_emit_flags (GObject *obj, GArray **props)
-{
-  GabblePropertiesMixin *mixin = GABBLE_PROPERTIES_MIXIN (obj);
-  GabblePropertiesMixinClass *mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (
-                                            G_OBJECT_GET_CLASS (obj));
-  GPtrArray *prop_arr;
-  GValue prop_list = { 0, };
-  guint i;
-
-  if (*props == NULL)
-    return;
-
-  if ((*props)->len == 0)
-    return;
-
-  prop_arr = g_ptr_array_sized_new ((*props)->len);
-
-  if (DEBUGGING)
-    g_message (ANSI_BOLD_ON ANSI_FG_WHITE
-            "%s: emitting properties flags changed for propert%s:\n",
-            G_STRFUNC, ((*props)->len > 1) ? "ies" : "y");
-
-  for (i = 0; i < (*props)->len; i++)
-    {
-      GValue prop_val = { 0, };
-      guint prop_id = g_array_index (*props, guint, i);
-      guint prop_flags;
-
-      prop_flags = mixin->properties[prop_id].flags;
-
-      g_value_init (&prop_val, TP_TYPE_PROPERTY_FLAGS_STRUCT);
-      g_value_take_boxed (&prop_val,
-          dbus_g_type_specialized_construct (TP_TYPE_PROPERTY_FLAGS_STRUCT));
-
-      dbus_g_type_struct_set (&prop_val,
-          0, prop_id,
-          1, prop_flags,
-          G_MAXUINT);
-
-      g_ptr_array_add (prop_arr, g_value_get_boxed (&prop_val));
-
-      if (DEBUGGING)
-        {
-          gchar *str_flags = property_flags_to_string (prop_flags);
-
-          g_message ("  %s's flags now: %s\n",
-                  mixin_cls->signatures[prop_id].name, str_flags);
-
-          g_free (str_flags);
-        }
-    }
-
-  if (DEBUGGING)
-    {
-      g_message (ANSI_RESET);
-      fflush (stdout);
-    }
-
-  g_signal_emit (obj, mixin_cls->property_flags_changed_signal_id, 0, prop_arr);
-
-  g_value_init (&prop_list, TP_TYPE_PROPERTY_FLAGS_LIST);
-  g_value_take_boxed (&prop_list, prop_arr);
-  g_value_unset (&prop_list);
-
-  g_array_free (*props, TRUE);
-  *props = NULL;
-}
-
-gboolean
-gabble_properties_mixin_is_readable (GObject *obj, guint prop_id)
-{
-  GabblePropertiesMixin *mixin = GABBLE_PROPERTIES_MIXIN (obj);
-  GabblePropertiesMixinClass *mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (
-                                            G_OBJECT_GET_CLASS (obj));
-
-  if (prop_id >= mixin_cls->num_props)
-    return FALSE;
-
-  return ((mixin->properties[prop_id].flags & TP_PROPERTY_FLAG_READ) != 0);
-}
-
-gboolean
-gabble_properties_mixin_is_writable (GObject *obj, guint prop_id)
-{
-  GabblePropertiesMixin *mixin = GABBLE_PROPERTIES_MIXIN (obj);
-  GabblePropertiesMixinClass *mixin_cls = GABBLE_PROPERTIES_MIXIN_CLASS (
-                                            G_OBJECT_GET_CLASS (obj));
-
-  if (prop_id >= mixin_cls->num_props)
-    return FALSE;
-
-  return ((mixin->properties[prop_id].flags & TP_PROPERTY_FLAG_WRITE) != 0);
-}
-
--- a/telepathygabble/src/roster.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1653 +0,0 @@
-/*
- * roster.c - Source for Gabble roster helper
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include <dbus/dbus-glib.h>
-#include <string.h>
-
-#include "telepathy-interfaces.h"
-#include "tp-channel-factory-iface.h"
-
-#include "debug.h"
-#include "gabble-connection.h"
-#include "gabble-roster-channel.h"
-#include "namespaces.h"
-#include "roster.h"
-#include "util.h"
-
-#include "gabble_enums.h"
-
-#define DBUS_API_SUBJECT_TO_CHANGE
-#define DEBUG_FLAG GABBLE_DEBUG_ROSTER
-#define GOOGLE_ROSTER_VERSION "2"
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-/* Properties */
-enum
-{
-  PROP_CONNECTION = 1,
-  LAST_PROPERTY
-};
-
-/* signal enum */
-enum
-{
-  NICKNAME_UPDATE,
-  LAST_SIGNAL 
-#ifdef EMULATOR  
-  = LAST_SIGNAL_ROSTER
-#endif
-  
-};
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_roster,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_roster, s)())
-	
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-
-#endif
-
-
-typedef struct _GabbleRosterPrivate GabbleRosterPrivate;
-struct _GabbleRosterPrivate
-{
-  GabbleConnection *conn;
-
-  LmMessageHandler *iq_cb;
-  LmMessageHandler *presence_cb;
-
-  GHashTable *channels;
-  GHashTable *items;
-
-  gboolean roster_received;
-  gboolean dispose_has_run;
-};
-
-typedef enum
-{
-  GOOGLE_ITEM_TYPE_NORMAL = 0,
-  GOOGLE_ITEM_TYPE_BLOCKED,
-  GOOGLE_ITEM_TYPE_HIDDEN,
-  GOOGLE_ITEM_TYPE_PINNED
-} GoogleItemType;
-
-typedef struct _GabbleRosterItem GabbleRosterItem;
-struct _GabbleRosterItem
-{
-  GabbleRosterSubscription subscription;
-  gboolean ask_subscribe;
-  GoogleItemType google_type;
-  gchar *name;
-  gchar **groups;
-};
-
-static void gabble_roster_factory_iface_init ();
-static void gabble_roster_init (GabbleRoster *roster);
-static GObject * gabble_roster_constructor (GType type, guint n_props, GObjectConstructParam *props);
-static void gabble_roster_dispose (GObject *object);
-static void gabble_roster_finalize (GObject *object);
-static void gabble_roster_set_property (GObject *object, guint property_id,
-    const GValue *value, GParamSpec *pspec);
-static void gabble_roster_get_property (GObject *object, guint property_id,
-    GValue *value, GParamSpec *pspec);
-
-static void _gabble_roster_item_free (GabbleRosterItem *item);
-
-#ifndef EMULATOR
-G_DEFINE_TYPE_WITH_CODE (GabbleRoster, gabble_roster, G_TYPE_OBJECT,
-    G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_FACTORY_IFACE, gabble_roster_factory_iface_init));
-#else
-	GET_STATIC_VAR_FROM_TLS(gabble_roster_parent_class,gabble_roster,gpointer)
-	#define gabble_roster_parent_class (*GET_WSD_VAR_NAME(gabble_roster_parent_class,gabble_roster,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_roster,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_roster,s)())
-	
-	
-	static void gabble_roster_init (GabbleRoster *self); 
-	static void gabble_roster_class_init (GabbleRosterClass *klass); 
-	static void gabble_roster_class_intern_init (gpointer klass) { gabble_roster_parent_class = g_type_class_peek_parent (klass); gabble_roster_class_init ((GabbleRosterClass*) klass); } EXPORT_C GType gabble_roster_get_type (void) { if ((g_define_type_id == 0)) { static const GTypeInfo g_define_type_info = { sizeof (GabbleRosterClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_roster_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleRoster), 0, (GInstanceInitFunc) gabble_roster_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleRoster"), &g_define_type_info, (GTypeFlags) 0); { { static const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) gabble_roster_factory_iface_init }; g_type_add_interface_static (g_define_type_id, tp_channel_factory_iface_get_type(), &g_implement_interface_info); } ; } } return g_define_type_id; }    ;
-		
-#endif
-
-#define GABBLE_ROSTER_GET_PRIVATE(o)     ((GabbleRosterPrivate*) ((o)->priv));
-
-static void
-gabble_roster_class_init (GabbleRosterClass *gabble_roster_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_roster_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_roster_class, sizeof (GabbleRosterPrivate));
-
-  object_class->constructor = gabble_roster_constructor;
-
-  object_class->dispose = gabble_roster_dispose;
-  object_class->finalize = gabble_roster_finalize;
-
-  object_class->get_property = gabble_roster_get_property;
-  object_class->set_property = gabble_roster_set_property;
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "XMPP roster object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class,
-                                   PROP_CONNECTION,
-                                   param_spec);
-
-  signals[NICKNAME_UPDATE] = g_signal_new (
-    "nickname-update",
-    G_TYPE_FROM_CLASS (gabble_roster_class),
-    G_SIGNAL_RUN_LAST,
-    0,
-    NULL, NULL,
-    g_cclosure_marshal_VOID__UINT, G_TYPE_NONE, 1, G_TYPE_UINT);
-}
-
-static void
-gabble_roster_init (GabbleRoster *obj)
-{
-  GabbleRosterPrivate *priv =
-     G_TYPE_INSTANCE_GET_PRIVATE (obj, GABBLE_TYPE_ROSTER, GabbleRosterPrivate);
-
-  obj->priv = priv;
-
-  priv->channels = g_hash_table_new_full (g_direct_hash,
-                                          g_direct_equal,
-                                          NULL,
-                                          g_object_unref);
-
-  priv->items = g_hash_table_new_full (g_direct_hash,
-                                       g_direct_equal,
-                                       NULL,
-                                       (GDestroyNotify) _gabble_roster_item_free);
-}
-
-static GObject *
-gabble_roster_constructor (GType type, guint n_props,
-                           GObjectConstructParam *props)
-{
-  GObject *obj;
-  /* GabbleRosterPrivate *priv; */
-
-  obj = G_OBJECT_CLASS (gabble_roster_parent_class)->
-           constructor (type, n_props, props);
-  /* priv = GABBLE_ROSTER_GET_PRIVATE (GABBLE_ROSTER (obj)); */
-
-  return obj;
-}
-
-void
-gabble_roster_dispose (GObject *object)
-{
-  GabbleRoster *self = GABBLE_ROSTER (object);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (self);
-
-  if (priv->dispose_has_run)
-    return;
-
-  gabble_debug (DEBUG_FLAG, "dispose called");
-
-  priv->dispose_has_run = TRUE;
-
-  g_assert (priv->iq_cb == NULL);
-  g_assert (priv->presence_cb == NULL);
-
-  tp_channel_factory_iface_close_all (TP_CHANNEL_FACTORY_IFACE (object));
-  g_assert (priv->channels == NULL);
-
-  if (G_OBJECT_CLASS (gabble_roster_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_roster_parent_class)->dispose (object);
-}
-
-static void
-item_handle_unref_foreach (gpointer key, gpointer data, gpointer user_data)
-{
-  GabbleHandle handle = (GabbleHandle) key;
-  GabbleRosterPrivate *priv = (GabbleRosterPrivate *) user_data;
-
-  gabble_handle_unref (priv->conn->handles, TP_HANDLE_TYPE_CONTACT, handle);
-}
-
-void
-gabble_roster_finalize (GObject *object)
-{
-  GabbleRoster *self = GABBLE_ROSTER (object);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (self);
-
-  gabble_debug (DEBUG_FLAG, "called with %p", object);
-
-  g_hash_table_foreach (priv->items, item_handle_unref_foreach, priv);
-  g_hash_table_destroy (priv->items);
-
-  G_OBJECT_CLASS (gabble_roster_parent_class)->finalize (object);
-}
-
-static void
-gabble_roster_get_property (GObject    *object,
-                            guint       property_id,
-                            GValue     *value,
-                            GParamSpec *pspec)
-{
-  GabbleRoster *roster = GABBLE_ROSTER (object);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_roster_set_property (GObject     *object,
-                            guint        property_id,
-                            const GValue *value,
-                            GParamSpec   *pspec)
-{
-  GabbleRoster *roster = GABBLE_ROSTER (object);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-_gabble_roster_item_free (GabbleRosterItem *item)
-{
-  g_assert (item != NULL);
-
-  g_strfreev (item->groups);
-  g_free (item->name);
-  g_free (item);
-}
-
-static const gchar *
-_subscription_to_string (GabbleRosterSubscription subscription)
-{
-  switch (subscription)
-    {
-      case GABBLE_ROSTER_SUBSCRIPTION_NONE:
-        return "none";
-      case GABBLE_ROSTER_SUBSCRIPTION_FROM:
-        return "from";
-      case GABBLE_ROSTER_SUBSCRIPTION_TO:
-        return "to";
-      case GABBLE_ROSTER_SUBSCRIPTION_BOTH:
-        return "both";
-      case GABBLE_ROSTER_SUBSCRIPTION_REMOVE:
-        return "remove";
-      default:
-        g_assert_not_reached ();
-        return NULL;
-    }
-}
-
-static GabbleRosterSubscription
-_parse_item_subscription (LmMessageNode *item_node)
-{
-  const gchar *subscription;
-
-  g_assert (item_node != NULL);
-
-  subscription = lm_message_node_get_attribute (item_node, "subscription");
-
-  if (NULL == subscription || 0 == strcmp (subscription, "none"))
-    return GABBLE_ROSTER_SUBSCRIPTION_NONE;
-  else if (0 == strcmp (subscription, "from"))
-    return GABBLE_ROSTER_SUBSCRIPTION_FROM;
-  else if (0 == strcmp (subscription, "to"))
-    return GABBLE_ROSTER_SUBSCRIPTION_TO;
-  else if (0 == strcmp (subscription, "both"))
-    return GABBLE_ROSTER_SUBSCRIPTION_BOTH;
-  else if (0 == strcmp (subscription, "remove"))
-    return GABBLE_ROSTER_SUBSCRIPTION_REMOVE;
-  else
-    {
-       NODE_DEBUG (item_node, "got unexpected subscription value");
-      return GABBLE_ROSTER_SUBSCRIPTION_NONE;
-    }
-}
-
-static gchar **
-_parse_item_groups (LmMessageNode *item_node)
-{
-  LmMessageNode *group_node;
-  GPtrArray *strv;
-
-  strv = g_ptr_array_new ();
-
-  for (group_node = item_node->children;
-      NULL != group_node;
-      group_node = group_node->next)
-    {
-      if (0 != strcmp (group_node->name, "group"))
-        continue;
-
-      if (NULL == group_node->value)
-        continue;
-
-      g_ptr_array_add (strv, g_strdup (group_node->value));
-    }
-
-  g_ptr_array_add (strv, NULL);
-
-  return (gchar **) g_ptr_array_free (strv, FALSE);
-}
-
-static const gchar *
-_google_item_type_to_string (GoogleItemType google_type)
-{
-  switch (google_type)
-    {
-      case GOOGLE_ITEM_TYPE_NORMAL:
-        return NULL;
-      case GOOGLE_ITEM_TYPE_BLOCKED:
-        return "B";
-      case GOOGLE_ITEM_TYPE_HIDDEN:
-        return "H";
-      case GOOGLE_ITEM_TYPE_PINNED:
-        return "P";
-    }
-
-  g_assert_not_reached ();
-
-  return NULL;
-}
-
-static GoogleItemType
-_parse_google_item_type (LmMessageNode *item_node)
-{
-  const gchar *google_type;
-
-  g_assert (item_node != NULL);
-
-  google_type = lm_message_node_get_attribute (item_node, "gr:t");
-
-  if (NULL == google_type)
-    return GOOGLE_ITEM_TYPE_NORMAL;
-  else if (!g_strdiff (google_type, "B"))
-    return GOOGLE_ITEM_TYPE_BLOCKED;
-  else if (!g_strdiff (google_type, "H"))
-    return GOOGLE_ITEM_TYPE_HIDDEN;
-  else if (!g_strdiff (google_type, "P"))
-    return GOOGLE_ITEM_TYPE_PINNED;
-
-  NODE_DEBUG (item_node, "got unexpected google contact type value");
-
-  return GOOGLE_ITEM_TYPE_NORMAL;
-}
-
-static gboolean
-_google_roster_item_should_keep (LmMessageNode *item_node,
-                                 GabbleRosterItem *item)
-{
-  const gchar *attr;
-
-  /* skip automatically subscribed Google roster items */
-  attr = lm_message_node_get_attribute (item_node, "gr:autosub");
-
-  if (!g_strdiff (attr, "true"))
-    return FALSE;
-
-  /* skip email addresses that replied to an invite */
-  attr = lm_message_node_get_attribute (item_node, "gr:alias-for");
-
-  if (attr != NULL)
-    return FALSE;
-
-  /* allow items that we've requested a subscription from */
-  if (item->ask_subscribe)
-    return TRUE;
-
-  if (item->subscription != GABBLE_ROSTER_SUBSCRIPTION_NONE)
-    return TRUE;
-
-  /* discard anything else */
-  return FALSE;
-}
-
-static GabbleRosterItem *
-_gabble_roster_item_get (GabbleRoster *roster,
-                         GabbleHandle handle)
-{
-  GabbleRosterItem *item;
-
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_assert (roster != NULL);
-  g_assert (GABBLE_IS_ROSTER (roster));
-  g_assert (gabble_handle_is_valid (priv->conn->handles,
-        TP_HANDLE_TYPE_CONTACT, handle, NULL));
-
-  item = g_hash_table_lookup (priv->items, GINT_TO_POINTER (handle));
-
-  if (NULL == item)
-    {
-      item = g_new0 (GabbleRosterItem, 1);
-      gabble_handle_ref (priv->conn->handles, TP_HANDLE_TYPE_CONTACT, handle);
-      g_hash_table_insert (priv->items, GINT_TO_POINTER (handle), item);
-    }
-
-  return item;
-}
-
-static void
-_gabble_roster_item_remove (GabbleRoster *roster,
-                            GabbleHandle handle)
-{
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_assert (roster != NULL);
-  g_assert (GABBLE_IS_ROSTER (roster));
-  g_assert (gabble_handle_is_valid (priv->conn->handles,
-        TP_HANDLE_TYPE_CONTACT, handle, NULL));
-
-  g_hash_table_remove (priv->items, GINT_TO_POINTER (handle));
-  gabble_handle_unref (priv->conn->handles, TP_HANDLE_TYPE_CONTACT, handle);
-}
-
-static GabbleRosterItem *
-_gabble_roster_item_update (GabbleRoster *roster,
-                            GabbleHandle handle,
-                            LmMessageNode *node,
-                            gboolean google_roster_mode)
-{
-  GabbleRosterItem *item;
-  const gchar *ask, *name;
-
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_assert (roster != NULL);
-  g_assert (GABBLE_IS_ROSTER (roster));
-  g_assert (gabble_handle_is_valid (priv->conn->handles,
-        TP_HANDLE_TYPE_CONTACT, handle, NULL));
-  g_assert (node != NULL);
-
-  item = _gabble_roster_item_get (roster, handle);
-
-  item->subscription = _parse_item_subscription (node);
-
-  ask = lm_message_node_get_attribute (node, "ask");
-  if (NULL != ask && 0 == strcmp (ask, "subscribe"))
-    item->ask_subscribe = TRUE;
-  else
-    item->ask_subscribe = FALSE;
-
-  if (google_roster_mode)
-    {
-      item->google_type = _parse_google_item_type (node);
-
-      /* discard roster item if strange, just hide it if it's hidden */
-      if (item->google_type == GOOGLE_ITEM_TYPE_HIDDEN)
-        {
-          gabble_debug (DEBUG_FLAG, "Google roster: caching hidden contact %d (%s)", handle,
-              lm_message_node_get_attribute (node, "jid"));
-          item->subscription = GABBLE_ROSTER_SUBSCRIPTION_NONE;
-        }
-      else if (!_google_roster_item_should_keep (node, item))
-        {
-          gabble_debug (DEBUG_FLAG, "Google roster: discarding odd contact %d (%s)", handle,
-              lm_message_node_get_attribute (node, "jid"));
-          item->subscription = GABBLE_ROSTER_SUBSCRIPTION_REMOVE;
-        }
-    }
-
-  if (item->subscription == GABBLE_ROSTER_SUBSCRIPTION_REMOVE)
-    name = NULL;
-  else
-    name = lm_message_node_get_attribute (node, "name");
-
-  if (g_strdiff (item->name, name))
-    {
-      g_free (item->name);
-      item->name = g_strdup (name);
-
-      gabble_debug (DEBUG_FLAG, "name for handle %d changed to %s", handle, name);
-      g_signal_emit (G_OBJECT (roster), signals[NICKNAME_UPDATE], 0, handle);
-    }
-
-  g_strfreev (item->groups);
-  item->groups = _parse_item_groups (node);
-
-  return item;
-}
-
-
-#ifdef ENABLE_DEBUG
-static gchar *
-_gabble_roster_item_dump (GabbleRosterItem *item)
-{
-  GString *str;
-
-  g_assert (item != NULL);
-
-  str = g_string_new ("subscription: ");
-
-  g_string_append (str, _subscription_to_string (item->subscription));
-
-  if (item->ask_subscribe)
-    g_string_append (str, ", ask: subscribe");
-
-  if (item->google_type != GOOGLE_ITEM_TYPE_NORMAL)
-    g_string_append_printf (str, ", google_type: %s",
-        _google_item_type_to_string (item->google_type));
-
-  if (item->name)
-    g_string_append_printf (str, ", name: %s", item->name);
-
-  if (item->groups)
-    {
-      gchar **tmp;
-      g_string_append (str, ", groups: { ");
-      for (tmp = item->groups; *tmp; tmp++)
-        {
-          g_string_append (str, *tmp);
-          g_string_append_c (str, ' ');
-        }
-      g_string_append (str, "}");
-    }
-
-  return g_string_free (str, FALSE);
-}
-#endif /* ENABLE_DEBUG */
-
-
-static LmMessage *
-_gabble_roster_message_new (GabbleRoster *roster,
-                            LmMessageSubType sub_type,
-                            LmMessageNode **query_return)
-{
-  LmMessage *message;
-  LmMessageNode *query_node;
-
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_assert (roster != NULL);
-  g_assert (GABBLE_IS_ROSTER (roster));
-
-  message = lm_message_new_with_sub_type (NULL,
-                                          LM_MESSAGE_TYPE_IQ,
-                                          sub_type);
-
-  query_node = lm_message_node_add_child (message->node, "query", NULL);
-
-  if (NULL != query_return)
-    *query_return = query_node;
-
-  lm_message_node_set_attribute (query_node, "xmlns", NS_ROSTER);
-
-  if (priv->conn->features & GABBLE_CONNECTION_FEATURES_GOOGLE_ROSTER)
-    {
-      lm_message_node_set_attributes (query_node,
-          "xmlns:gr", NS_GOOGLE_ROSTER,
-          "gr:ext", GOOGLE_ROSTER_VERSION,
-          "gr:include", "all",
-          NULL);
-    }
-
-  return message;
-}
-
-
-static LmMessage *
-_gabble_roster_item_to_message (GabbleRoster *roster,
-                                GabbleHandle handle,
-                                LmMessageNode **item_return)
-{
-  const gchar *jid;
-
-  LmMessage *message;
-  LmMessageNode *query_node, *item_node;
-  GabbleRosterItem *item;
-
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_assert (roster != NULL);
-  g_assert (GABBLE_IS_ROSTER (roster));
-  g_assert (gabble_handle_is_valid (priv->conn->handles,
-        TP_HANDLE_TYPE_CONTACT, handle, NULL));
-
-  item = _gabble_roster_item_get (roster, handle);
-
-  message = _gabble_roster_message_new (roster, LM_MESSAGE_SUB_TYPE_SET,
-      &query_node);
-
-  item_node = lm_message_node_add_child (query_node, "item", NULL);
-
-  if (NULL != item_return)
-    *item_return = item_node;
-
-  jid = gabble_handle_inspect (priv->conn->handles, TP_HANDLE_TYPE_CONTACT,
-      handle);
-  lm_message_node_set_attribute (item_node, "jid", jid);
-
-  if (item->subscription != GABBLE_ROSTER_SUBSCRIPTION_NONE)
-    {
-      const gchar *subscription =  _subscription_to_string (item->subscription);
-      lm_message_node_set_attribute (item_node, "subscription", subscription);
-    }
-
-  if (item->subscription == GABBLE_ROSTER_SUBSCRIPTION_REMOVE)
-    goto DONE;
-
-  if ((priv->conn->features & GABBLE_CONNECTION_FEATURES_GOOGLE_ROSTER) &&
-      item->google_type != GOOGLE_ITEM_TYPE_NORMAL)
-    lm_message_node_set_attribute (item_node, "gr:t",
-        _google_item_type_to_string (item->google_type));
-
-  if (item->ask_subscribe)
-    lm_message_node_set_attribute (item_node, "ask", "subscribe");
-
-  if (item->name)
-    lm_message_node_set_attribute (item_node, "name", item->name);
-
-  if (item->groups)
-    {
-      gchar **tmp;
-
-      for (tmp = item->groups; *tmp; tmp++)
-        {
-          lm_message_node_add_child (item_node, "group", *tmp);
-        }
-    }
-
-DONE:
-  return message;
-}
-
-static GabbleRosterChannel *
-_gabble_roster_create_channel (GabbleRoster *roster,
-                               GabbleHandle handle)
-{
-  const char *name;
-  char *object_path;
-
-  GabbleRosterChannel *chan;
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_assert (priv->channels != NULL);
-  g_assert (g_hash_table_lookup (priv->channels, GINT_TO_POINTER (handle)) == NULL);
-
-  name = gabble_handle_inspect (priv->conn->handles, TP_HANDLE_TYPE_LIST, handle);
-  object_path = g_strdup_printf ("%s/RosterChannel/%s", priv->conn->object_path, name);
-  chan = g_object_new (GABBLE_TYPE_ROSTER_CHANNEL,
-                       "connection", priv->conn,
-                       "object-path", object_path,
-                       "handle", handle,
-                       NULL);
-
-  gabble_debug (DEBUG_FLAG, "created %s", object_path);
-  g_free (object_path);
-
-  g_hash_table_insert (priv->channels, GINT_TO_POINTER (handle), chan);
-
-  if (priv->roster_received)
-    {
-      gabble_debug (DEBUG_FLAG, "roster already received, emitting signal for %s list channel",
-          name);
-
-      g_signal_emit_by_name (roster, "new-channel", chan);
-    }
-  else
-    {
-      gabble_debug (DEBUG_FLAG, "roster not yet received, not emitting signal for %s list channel",
-          name);
-    }
-
-  return chan;
-}
-
-static GabbleRosterChannel *
-_gabble_roster_get_channel (GabbleRoster *roster,
-                            GabbleHandle handle)
-{
-  GabbleRosterChannel *chan;
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_assert (priv->channels != NULL);
-  g_assert (gabble_handle_is_valid (priv->conn->handles, TP_HANDLE_TYPE_LIST, handle, NULL));
-
-  chan = g_hash_table_lookup (priv->channels, GINT_TO_POINTER (handle));
-
-  if (chan == NULL)
-    chan = _gabble_roster_create_channel (roster, handle);
-
-  return chan;
-}
-
-static void
-_gabble_roster_emit_one (gpointer key,
-                         gpointer value,
-                         gpointer data)
-{
-  GabbleRoster *roster = GABBLE_ROSTER (data);
-  GabbleRosterChannel *chan = GABBLE_ROSTER_CHANNEL (value);
-#ifdef ENABLE_DEBUG
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-  GabbleHandle handle = GPOINTER_TO_INT (key);
-  const gchar *name = gabble_handle_inspect (priv->conn->handles, TP_HANDLE_TYPE_LIST, handle);
-
-  gabble_debug (DEBUG_FLAG, "roster now received, emitting signal signal for %s list channel",
-      name);
-#endif
-
-  g_signal_emit_by_name (roster, "new-channel", chan);
-}
-
-static void
-_gabble_roster_received (GabbleRoster *roster)
-{
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_assert (priv->channels != NULL);
-
-  if (!priv->roster_received)
-    {
-      priv->roster_received = TRUE;
-
-      g_hash_table_foreach (priv->channels, _gabble_roster_emit_one, roster);
-    }
-}
-
-/**
- * gabble_roster_iq_cb
- *
- * Called by loudmouth when we get an incoming <iq>. This handler
- * is concerned only with roster queries, and allows other handlers
- * if queries other than rosters are received.
- */
-static LmHandlerResult
-gabble_roster_iq_cb (LmMessageHandler *handler,
-                     LmConnection *lmconn,
-                     LmMessage *message,
-                     gpointer user_data)
-{
-  const gchar *from;
-  gboolean google_roster = FALSE;
-  LmMessageNode *iq_node, *query_node;
-  LmMessageSubType sub_type;
-
-  GabbleRoster *roster = GABBLE_ROSTER (user_data);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_assert (lmconn == priv->conn->lmconn);
-
-  if (priv->channels == NULL)
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-  iq_node = lm_message_get_node (message);
-  query_node = lm_message_node_get_child_with_namespace (iq_node, "query",
-      NS_ROSTER);
-
-  if (query_node == NULL)
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-  from = lm_message_node_get_attribute (message->node, "from");
-
-  if (from != NULL)
-    {
-      GabbleHandle sender;
-
-      sender = gabble_handle_for_contact (priv->conn->handles,
-          from, FALSE);
-
-      if (sender != priv->conn->self_handle)
-        {
-           NODE_DEBUG (iq_node, "discarding roster IQ which is not from "
-              "ourselves or the server");
-          return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-        }
-    }
-
-  if (priv->conn->features & GABBLE_CONNECTION_FEATURES_GOOGLE_ROSTER)
-    {
-      const char *gr_ext;
-
-      gr_ext = lm_message_node_get_attribute (query_node, "gr:ext");
-
-      if (!g_strdiff (gr_ext, GOOGLE_ROSTER_VERSION))
-        google_roster = TRUE;
-    }
-
-  sub_type = lm_message_get_sub_type (message);
-
-  /* if this is a result, it's from our initial query. if it's a set,
-   * it's a roster push. either way, parse the items. */
-  switch (sub_type)
-    {
-      LmMessageNode *item_node;
-      GIntSet *pub_add, *pub_rem,
-              *sub_add, *sub_rem, *sub_rp,
-              *known_add, *known_rem,
-              *deny_add, *deny_rem;
-      GArray *removed;
-      GabbleHandle handle;
-      GabbleRosterChannel *chan;
-      guint i;
-
-    case LM_MESSAGE_SUB_TYPE_RESULT:
-    case LM_MESSAGE_SUB_TYPE_SET:
-      /* asymmetry is because we don't get locally pending subscription
-       * requests via <roster>, we get it via <presence> */
-      pub_add = g_intset_new ();
-      pub_rem = g_intset_new ();
-      sub_add = g_intset_new ();
-      sub_rem = g_intset_new ();
-      sub_rp = g_intset_new ();
-      known_add = g_intset_new ();
-      known_rem = g_intset_new ();
-      removed = g_array_new (FALSE, FALSE, sizeof (GabbleHandle));
-
-      if (google_roster)
-        {
-          deny_add = g_intset_new ();
-          deny_rem = g_intset_new ();
-        }
-      else
-        {
-          deny_add = NULL;
-          deny_rem = NULL;
-        }
-
-      /* get the publish channel first because we need it when processing */
-      handle = GABBLE_LIST_HANDLE_PUBLISH;
-      chan = _gabble_roster_get_channel (roster, handle);
-
-      /* iterate every sub-node, which we expect to be <item>s */
-      for (item_node = query_node->children;
-           item_node;
-           item_node = item_node->next)
-        {
-          const char *jid;
-          GabbleRosterItem *item;
-
-          if (strcmp (item_node->name, "item"))
-            {
-               NODE_DEBUG (item_node, "query sub-node is not item, skipping");
-              continue;
-            }
-
-          jid = lm_message_node_get_attribute (item_node, "jid");
-          if (!jid)
-            {
-               NODE_DEBUG (item_node, "item node has no jid, skipping");
-              continue;
-            }
-
-          handle = gabble_handle_for_contact (priv->conn->handles, jid, FALSE);
-          if (handle == 0)
-            {
-               NODE_DEBUG (item_node, "item jid is malformed, skipping");
-              continue;
-            }
-
-          item = _gabble_roster_item_update (roster, handle, item_node,
-              google_roster);
-
-#ifdef ENABLE_DEBUG
-          if (DEBUGGING)
-            {
-              gchar *dump = _gabble_roster_item_dump (item);
-              gabble_debug (DEBUG_FLAG, "jid: %s, %s", jid, dump);
-              g_free (dump);
-            }
-#endif
-
-          /* handle publish list changes */
-          switch (item->subscription)
-            {
-            case GABBLE_ROSTER_SUBSCRIPTION_FROM:
-            case GABBLE_ROSTER_SUBSCRIPTION_BOTH:
-              g_intset_add (pub_add, handle);
-              break;
-            case GABBLE_ROSTER_SUBSCRIPTION_NONE:
-            case GABBLE_ROSTER_SUBSCRIPTION_TO:
-            case GABBLE_ROSTER_SUBSCRIPTION_REMOVE:
-              /* publish channel is a bit odd, the roster item doesn't tell us
-               * if someone is awaiting our approval - we get this via presence
-               * type=subscribe, so we have to not remove them if they're
-               * already local_pending in our publish channel */
-              if (!handle_set_is_member (chan->group.local_pending, handle))
-                {
-                  g_intset_add (pub_rem, handle);
-                }
-              break;
-            default:
-              g_assert_not_reached ();
-            }
-
-          /* handle subscribe list changes */
-          switch (item->subscription)
-            {
-            case GABBLE_ROSTER_SUBSCRIPTION_TO:
-            case GABBLE_ROSTER_SUBSCRIPTION_BOTH:
-              g_intset_add (sub_add, handle);
-              break;
-            case GABBLE_ROSTER_SUBSCRIPTION_NONE:
-            case GABBLE_ROSTER_SUBSCRIPTION_FROM:
-              if (item->ask_subscribe)
-                g_intset_add (sub_rp, handle);
-              else
-                g_intset_add (sub_rem, handle);
-              break;
-            case GABBLE_ROSTER_SUBSCRIPTION_REMOVE:
-              g_intset_add (sub_rem, handle);
-              break;
-            default:
-              g_assert_not_reached ();
-            }
-
-          /* handle known list changes */
-          switch (item->subscription)
-            {
-            case GABBLE_ROSTER_SUBSCRIPTION_NONE:
-            case GABBLE_ROSTER_SUBSCRIPTION_TO:
-            case GABBLE_ROSTER_SUBSCRIPTION_FROM:
-            case GABBLE_ROSTER_SUBSCRIPTION_BOTH:
-              if (item->google_type == GOOGLE_ITEM_TYPE_HIDDEN)
-                  g_intset_add (known_rem, handle);
-              else
-                  g_intset_add (known_add, handle);
-              break;
-            case GABBLE_ROSTER_SUBSCRIPTION_REMOVE:
-              g_intset_add (known_rem, handle);
-              break;
-            default:
-              g_assert_not_reached ();
-            }
-
-          /* handle deny list changes */
-          if (google_roster)
-            {
-              switch (item->subscription)
-                {
-                case GABBLE_ROSTER_SUBSCRIPTION_NONE:
-                case GABBLE_ROSTER_SUBSCRIPTION_TO:
-                case GABBLE_ROSTER_SUBSCRIPTION_FROM:
-                case GABBLE_ROSTER_SUBSCRIPTION_BOTH:
-                  if (item->google_type == GOOGLE_ITEM_TYPE_BLOCKED)
-                    g_intset_add (deny_add, handle);
-                  else
-                    g_intset_add (deny_rem, handle);
-                  break;
-                case GABBLE_ROSTER_SUBSCRIPTION_REMOVE:
-                  g_intset_add (deny_rem, handle);
-                  break;
-                default:
-                  g_assert_not_reached ();
-                }
-            }
-
-          /* delay removing items from roster until signals have been emitted;
-           * otherwise handles go out of scope! */
-          if (GABBLE_ROSTER_SUBSCRIPTION_REMOVE == item->subscription)
-            g_array_append_val (removed, handle);
-        }
-
-      /* chan was initialised to the publish channel before the for loop */
-
-      gabble_debug (DEBUG_FLAG, "calling change members on publish channel");
-      gabble_group_mixin_change_members (G_OBJECT (chan),
-            "", pub_add, pub_rem, NULL, NULL, 0, 0);
-
-      handle = GABBLE_LIST_HANDLE_SUBSCRIBE;
-      chan = _gabble_roster_get_channel (roster, handle);
-
-      gabble_debug (DEBUG_FLAG, "calling change members on subscribe channel");
-      gabble_group_mixin_change_members (G_OBJECT (chan),
-            "", sub_add, sub_rem, NULL, sub_rp, 0, 0);
-
-      handle = GABBLE_LIST_HANDLE_KNOWN;
-      chan = _gabble_roster_get_channel (roster, handle);
-
-      gabble_debug (DEBUG_FLAG, "calling change members on known channel");
-      gabble_group_mixin_change_members (G_OBJECT (chan),
-            "", known_add, known_rem, NULL, NULL, 0, 0);
-
-      if (google_roster)
-        {
-          handle = GABBLE_LIST_HANDLE_DENY;
-          chan = _gabble_roster_get_channel (roster, handle);
-
-          gabble_debug (DEBUG_FLAG, "calling change members on deny channel");
-          gabble_group_mixin_change_members (G_OBJECT (chan),
-              "", deny_add, deny_rem, NULL, NULL, 0, 0);
-
-          g_intset_destroy (deny_add);
-          g_intset_destroy (deny_rem);
-        }
-
-      for (i = 0; i < removed->len; i++)
-          _gabble_roster_item_remove (roster,
-              g_array_index (removed, GabbleHandle, i));
-
-      g_intset_destroy (pub_add);
-      g_intset_destroy (pub_rem);
-      g_intset_destroy (sub_add);
-      g_intset_destroy (sub_rem);
-      g_intset_destroy (sub_rp);
-      g_intset_destroy (known_add);
-      g_intset_destroy (known_rem);
-      g_array_free (removed, TRUE);
-      break;
-    default:
-       NODE_DEBUG (iq_node, "unhandled roster IQ");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  switch (sub_type)
-    {
-    case LM_MESSAGE_SUB_TYPE_RESULT:
-      /* result means it's a roster push, so the roster is now complete and we
-       * can emit signals */
-      _gabble_roster_received (roster);
-      break;
-    case LM_MESSAGE_SUB_TYPE_SET:
-      /* acknowledge roster */
-      _gabble_connection_acknowledge_set_iq (priv->conn, message);
-      break;
-    default:
-      break;
-    }
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-
-static void
-_gabble_roster_send_presence_ack (GabbleRoster *roster,
-                                  const gchar *from,
-                                  LmMessageSubType sub_type,
-                                  gboolean changed)
-{
-  LmMessage *reply;
-
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  if (!changed)
-    {
-      gabble_debug (DEBUG_FLAG, "not sending ack to avoid loop with buggy server");
-      return;
-    }
-
-  switch (sub_type)
-    {
-    case LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE:
-      sub_type = LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED;
-      break;
-    case LM_MESSAGE_SUB_TYPE_SUBSCRIBED:
-      sub_type = LM_MESSAGE_SUB_TYPE_SUBSCRIBE;
-      break;
-    case LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED:
-      sub_type = LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE;
-      break;
-    default:
-      g_assert_not_reached();
-      return;
-    }
-
-  reply = lm_message_new_with_sub_type (from,
-      LM_MESSAGE_TYPE_PRESENCE,
-      sub_type);
-
-  _gabble_connection_send (priv->conn, reply, NULL);
-
-  lm_message_unref (reply);
-}
-
-
-/**
- * connection_presence_roster_cb:
- * @handler: #LmMessageHandler for this message
- * @connection: #LmConnection that originated the message
- * @message: the presence message
- * @user_data: callback data
- *
- * Called by loudmouth when we get an incoming <presence>.
- */
-static LmHandlerResult
-gabble_roster_presence_cb (LmMessageHandler *handler,
-                           LmConnection *lmconn,
-                           LmMessage *message,
-                           gpointer user_data)
-{
-  LmMessageNode *pres_node, *child_node;
-  const char *from;
-  LmMessageSubType sub_type;
-  GIntSet *tmp;
-  GabbleHandle handle;
-  const gchar *status_message = NULL;
-  GabbleRosterChannel *chan = NULL;
-  gboolean changed;
-  GabbleRoster *roster = GABBLE_ROSTER (user_data);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_assert (lmconn == priv->conn->lmconn);
-
-  if (priv->channels == NULL)
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-  pres_node = lm_message_get_node (message);
-
-  from = lm_message_node_get_attribute (pres_node, "from");
-
-  if (from == NULL)
-    {
-       NODE_DEBUG (pres_node, "presence stanza without from attribute, ignoring");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  sub_type = lm_message_get_sub_type (message);
-
-  handle = gabble_handle_for_contact (priv->conn->handles, from, FALSE);
-
-  if (handle == 0)
-    {
-      NODE_DEBUG (pres_node, "ignoring presence from malformed jid");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  if (handle == priv->conn->self_handle)
-    {
-       NODE_DEBUG (pres_node, "ignoring presence from ourselves on another resource");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  g_assert (handle != 0);
-
-  child_node = lm_message_node_get_child (pres_node, "status");
-  if (child_node)
-    status_message = lm_message_node_get_value (child_node);
-
-  switch (sub_type)
-    {
-    case LM_MESSAGE_SUB_TYPE_SUBSCRIBE:
-      gabble_debug (DEBUG_FLAG, "making %s (handle %u) local pending on the publish channel",
-          from, handle);
-
-      tmp = g_intset_new ();
-      g_intset_add (tmp, handle);
-
-      handle = GABBLE_LIST_HANDLE_PUBLISH;
-      chan = _gabble_roster_get_channel (roster, handle);
-      gabble_group_mixin_change_members (G_OBJECT (chan), status_message,
-          NULL, NULL, tmp, NULL, 0, 0);
-
-      g_intset_destroy (tmp);
-
-      return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    case LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE:
-      gabble_debug (DEBUG_FLAG, "removing %s (handle %u) from the publish channel",
-          from, handle);
-
-      tmp = g_intset_new ();
-      g_intset_add (tmp, handle);
-
-      handle = GABBLE_LIST_HANDLE_PUBLISH;
-      chan = _gabble_roster_get_channel (roster, handle);
-      changed = gabble_group_mixin_change_members (G_OBJECT (chan),
-          status_message, NULL, tmp, NULL, NULL, 0, 0);
-
-      _gabble_roster_send_presence_ack (roster, from, sub_type, changed);
-
-      g_intset_destroy (tmp);
-
-      return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    case LM_MESSAGE_SUB_TYPE_SUBSCRIBED:
-      gabble_debug (DEBUG_FLAG, "adding %s (handle %u) to the subscribe channel",
-          from, handle);
-
-      tmp = g_intset_new ();
-      g_intset_add (tmp, handle);
-
-      handle = GABBLE_LIST_HANDLE_SUBSCRIBE;
-      chan = _gabble_roster_get_channel (roster, handle);
-      changed = gabble_group_mixin_change_members (G_OBJECT (chan),
-          status_message, tmp, NULL, NULL, NULL, 0, 0);
-
-      _gabble_roster_send_presence_ack (roster, from, sub_type, changed);
-
-      g_intset_destroy (tmp);
-
-      return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    case LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED:
-      gabble_debug (DEBUG_FLAG, "removing %s (handle %u) from the subscribe channel",
-          from, handle);
-
-      tmp = g_intset_new ();
-      g_intset_add (tmp, handle);
-
-      handle = GABBLE_LIST_HANDLE_SUBSCRIBE;
-      chan = _gabble_roster_get_channel (roster, handle);
-      changed = gabble_group_mixin_change_members (G_OBJECT (chan),
-          status_message, NULL, tmp, NULL, NULL, 0, 0);
-
-      _gabble_roster_send_presence_ack (roster, from, sub_type, changed);
-
-      g_intset_destroy (tmp);
-
-      return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-    default:
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-}
-
-static void
-gabble_roster_factory_iface_close_all (TpChannelFactoryIface *iface)
-{
-  GabbleRoster *roster = GABBLE_ROSTER (iface);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  gabble_debug (DEBUG_FLAG, "closing channels");
-
-  if (priv->channels)
-    {
-      g_hash_table_destroy (priv->channels);
-      priv->channels = NULL;
-    }
-}
-
-static void
-gabble_roster_factory_iface_connecting (TpChannelFactoryIface *iface)
-{
-  GabbleRoster *roster = GABBLE_ROSTER (iface);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  gabble_debug (DEBUG_FLAG, "adding callbacks");
-
-  g_assert (priv->iq_cb == NULL);
-  g_assert (priv->presence_cb == NULL);
-
-  priv->iq_cb = lm_message_handler_new (gabble_roster_iq_cb,
-                                        roster, NULL);
-  lm_connection_register_message_handler (priv->conn->lmconn,
-                                          priv->iq_cb,
-                                          LM_MESSAGE_TYPE_IQ,
-                                          LM_HANDLER_PRIORITY_NORMAL);
-
-  priv->presence_cb = lm_message_handler_new (gabble_roster_presence_cb,
-                                              roster, NULL);
-  lm_connection_register_message_handler (priv->conn->lmconn,
-                                          priv->presence_cb,
-                                          LM_MESSAGE_TYPE_PRESENCE,
-                                          LM_HANDLER_PRIORITY_LAST);
-}
-
-static void
-gabble_roster_factory_iface_connected (TpChannelFactoryIface *iface)
-{
-  LmMessage *message;
-
-  GabbleRoster *roster = GABBLE_ROSTER (iface);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  gabble_debug (DEBUG_FLAG, "requesting roster");
-
-  message = _gabble_roster_message_new (roster, LM_MESSAGE_SUB_TYPE_GET, NULL);
-
-  _gabble_connection_send (priv->conn, message, NULL);
-
-  lm_message_unref (message);
-}
-
-static void
-gabble_roster_factory_iface_disconnected (TpChannelFactoryIface *iface)
-{
-  GabbleRoster *roster = GABBLE_ROSTER (iface);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  gabble_debug (DEBUG_FLAG, "removing callbacks");
-
-  g_assert (priv->iq_cb != NULL);
-  g_assert (priv->presence_cb != NULL);
-
-  lm_connection_unregister_message_handler (priv->conn->lmconn,
-                                            priv->iq_cb,
-                                            LM_MESSAGE_TYPE_IQ);
-  lm_message_handler_unref (priv->iq_cb);
-  priv->iq_cb = NULL;
-
-  lm_connection_unregister_message_handler (priv->conn->lmconn,
-                                            priv->presence_cb,
-                                            LM_MESSAGE_TYPE_PRESENCE);
-  lm_message_handler_unref (priv->presence_cb);
-  priv->presence_cb = NULL;
-}
-
-struct foreach_data {
-    TpChannelFunc func;
-    gpointer data;
-};
-
-static void
-_gabble_roster_factory_iface_foreach_one (gpointer key,
-                                          gpointer value,
-                                          gpointer data)
-{
-  TpChannelIface *chan = TP_CHANNEL_IFACE (value);
-  struct foreach_data *foreach = (struct foreach_data *) data;
-
-  foreach->func (chan, foreach->data);
-}
-
-static void
-gabble_roster_factory_iface_foreach (TpChannelFactoryIface *iface,
-                                     TpChannelFunc func,
-                                     gpointer data)
-{
-  struct foreach_data foreach;
-
-  GabbleRoster *roster = GABBLE_ROSTER (iface);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  foreach.func = func;
-  foreach.data = data;
-
-  g_hash_table_foreach (priv->channels,
-      _gabble_roster_factory_iface_foreach_one, &foreach);
-}
-
-static TpChannelFactoryRequestStatus
-gabble_roster_factory_iface_request (TpChannelFactoryIface *iface,
-                                     const gchar *chan_type,
-                                     TpHandleType handle_type,
-                                     guint handle,
-                                     TpChannelIface **ret,
-                                     GError **error)
-{
-  GabbleRoster *roster = GABBLE_ROSTER (iface);
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  if (strcmp (chan_type, TP_IFACE_CHANNEL_TYPE_CONTACT_LIST))
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_IMPLEMENTED;
-
-  if (handle_type != TP_HANDLE_TYPE_LIST)
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_AVAILABLE;
-
-  if (!gabble_handle_is_valid (priv->conn->handles,
-                               TP_HANDLE_TYPE_LIST,
-                               handle,
-                               NULL))
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_INVALID_HANDLE;
-
-  /* disallow "deny" channels if we don't have google:roster support */
-  if (handle == GABBLE_LIST_HANDLE_DENY &&
-      !(priv->conn->features & GABBLE_CONNECTION_FEATURES_GOOGLE_ROSTER))
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_AVAILABLE;
-
-  if (priv->roster_received)
-    {
-      GabbleRosterChannel *chan;
-      chan = _gabble_roster_get_channel (roster, handle);
-      *ret = TP_CHANNEL_IFACE (chan);
-      return TP_CHANNEL_FACTORY_REQUEST_STATUS_DONE;
-    }
-  else
-    {
-      return TP_CHANNEL_FACTORY_REQUEST_STATUS_QUEUED;
-    }
-}
-
-static void
-gabble_roster_factory_iface_init (gpointer g_iface,
-                                  gpointer iface_data)
-{
-  TpChannelFactoryIfaceClass *klass = (TpChannelFactoryIfaceClass *) g_iface;
-
-  klass->close_all = gabble_roster_factory_iface_close_all;
-  klass->connecting = gabble_roster_factory_iface_connecting;
-  klass->connected = gabble_roster_factory_iface_connected;
-  klass->disconnected = gabble_roster_factory_iface_disconnected;
-  klass->foreach = gabble_roster_factory_iface_foreach;
-  klass->request = gabble_roster_factory_iface_request;
-}
-
-GabbleRoster *
-gabble_roster_new (GabbleConnection *conn)
-{
-  g_return_val_if_fail (conn != NULL, NULL);
-
-  return g_object_new (GABBLE_TYPE_ROSTER,
-                       "connection", conn,
-                       NULL);
-}
-
-GabbleRosterSubscription
-gabble_roster_handle_get_subscription (GabbleRoster *roster,
-                                       GabbleHandle handle)
-{
-  GabbleRosterItem *item;
-
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_return_val_if_fail (roster != NULL, GABBLE_ROSTER_SUBSCRIPTION_NONE);
-  g_return_val_if_fail (GABBLE_IS_ROSTER (roster),
-      GABBLE_ROSTER_SUBSCRIPTION_NONE);
-  g_return_val_if_fail (gabble_handle_is_valid (priv->conn->handles,
-        TP_HANDLE_TYPE_CONTACT, handle, NULL),
-      GABBLE_ROSTER_SUBSCRIPTION_NONE);
-
-  item = g_hash_table_lookup (priv->items, GINT_TO_POINTER (handle));
-
-  if (NULL == item)
-    return GABBLE_ROSTER_SUBSCRIPTION_NONE;
-
-  return item->subscription;
-}
-
-gboolean
-gabble_roster_handle_set_blocked (GabbleRoster *roster,
-                                  GabbleHandle handle,
-                                  gboolean blocked,
-                                  GError **error)
-{
-  GabbleRosterItem *item;
-  GoogleItemType orig_type;
-  LmMessage *message;
-  gboolean ret;
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_return_val_if_fail (roster != NULL, FALSE);
-  g_return_val_if_fail (GABBLE_IS_ROSTER (roster), FALSE);
-  g_return_val_if_fail (gabble_handle_is_valid (priv->conn->handles,
-      TP_HANDLE_TYPE_CONTACT, handle, NULL), FALSE);
-  g_return_val_if_fail (priv->conn->features &
-      GABBLE_CONNECTION_FEATURES_GOOGLE_ROSTER, FALSE);
-
-  item = _gabble_roster_item_get (roster, handle);
-  orig_type = item->google_type;
-
-  if (blocked == (orig_type == GOOGLE_ITEM_TYPE_BLOCKED))
-    return TRUE;
-
-  /* temporarily set the desired block state and generate a message */
-  if (blocked)
-    item->google_type = GOOGLE_ITEM_TYPE_BLOCKED;
-  else
-    item->google_type = GOOGLE_ITEM_TYPE_NORMAL;
-  message = _gabble_roster_item_to_message (roster, handle, NULL);
-  item->google_type = orig_type;
-
-  ret = _gabble_connection_send (priv->conn, message, error);
-
-  lm_message_unref (message);
-
-  return ret;
-}
-
-gboolean
-gabble_roster_handle_has_entry (GabbleRoster *roster,
-                                GabbleHandle handle)
-{
-  GabbleRosterItem *item;
-
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_return_val_if_fail (roster != NULL, FALSE);
-  g_return_val_if_fail (GABBLE_IS_ROSTER (roster), FALSE);
-  g_return_val_if_fail (gabble_handle_is_valid (priv->conn->handles,
-      TP_HANDLE_TYPE_CONTACT, handle, NULL), FALSE);
-
-  item = g_hash_table_lookup (priv->items, GINT_TO_POINTER (handle));
-
-  return (NULL != item);
-}
-
-const gchar *
-gabble_roster_handle_get_name (GabbleRoster *roster,
-                               GabbleHandle handle)
-{
-  GabbleRosterItem *item;
-
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_return_val_if_fail (roster != NULL, NULL);
-  g_return_val_if_fail (GABBLE_IS_ROSTER (roster), NULL);
-  g_return_val_if_fail (gabble_handle_is_valid (priv->conn->handles,
-      TP_HANDLE_TYPE_CONTACT, handle, NULL), NULL);
-
-  item = g_hash_table_lookup (priv->items, GINT_TO_POINTER (handle));
-
-  if (NULL == item)
-    return NULL;
-
-  return item->name;
-}
-
-gboolean
-gabble_roster_handle_set_name (GabbleRoster *roster,
-                               GabbleHandle handle,
-                               const gchar *name,
-                               GError **error)
-{
-  LmMessage *message;
-  LmMessageNode *item_node;
-  gboolean ret;
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_return_val_if_fail (roster != NULL, FALSE);
-  g_return_val_if_fail (GABBLE_IS_ROSTER (roster), FALSE);
-  g_return_val_if_fail (gabble_handle_is_valid (priv->conn->handles,
-      TP_HANDLE_TYPE_CONTACT, handle, NULL), FALSE);
-  g_return_val_if_fail (name != NULL, FALSE);
-
-  message = _gabble_roster_item_to_message (roster, handle, &item_node);
-
-  lm_message_node_set_attribute (item_node, "name", name);
-
-  ret = _gabble_connection_send (priv->conn, message, error);
-
-  lm_message_unref (message);
-
-  return ret;
-}
-
-gboolean
-gabble_roster_handle_remove (GabbleRoster *roster,
-                             GabbleHandle handle,
-                             GError **error)
-{
-  GabbleRosterItem *item;
-  GabbleRosterSubscription subscription;
-  LmMessage *message;
-  gboolean ret;
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_return_val_if_fail (roster != NULL, FALSE);
-  g_return_val_if_fail (GABBLE_IS_ROSTER (roster), FALSE);
-  g_return_val_if_fail (gabble_handle_is_valid (priv->conn->handles,
-      TP_HANDLE_TYPE_CONTACT, handle, NULL), FALSE);
-
-  item = _gabble_roster_item_get (roster, handle);
-  subscription = item->subscription;
-  item->subscription = GABBLE_ROSTER_SUBSCRIPTION_REMOVE;
-
-  message = _gabble_roster_item_to_message (roster, handle, NULL);
-  ret = _gabble_connection_send (priv->conn, message, error);
-  lm_message_unref (message);
-
-  item->subscription = subscription;
-
-  return ret;
-}
-
-gboolean
-gabble_roster_handle_add (GabbleRoster *roster,
-                          GabbleHandle handle,
-                          GError **error)
-{
-  GabbleRosterItem *item;
-  LmMessage *message;
-  gboolean do_add = FALSE;
-  gboolean ret;
-  GabbleRosterPrivate *priv = GABBLE_ROSTER_GET_PRIVATE (roster);
-
-  g_return_val_if_fail (roster != NULL, FALSE);
-  g_return_val_if_fail (GABBLE_IS_ROSTER (roster), FALSE);
-  g_return_val_if_fail (gabble_handle_is_valid (priv->conn->handles,
-      TP_HANDLE_TYPE_CONTACT, handle, NULL), FALSE);
-
-  if (!gabble_roster_handle_has_entry (roster, handle))
-      do_add = TRUE;
-
-  item = _gabble_roster_item_get (roster, handle);
-
-  if (item->google_type == GOOGLE_ITEM_TYPE_HIDDEN)
-    {
-      item->google_type = GOOGLE_ITEM_TYPE_NORMAL;
-      do_add = TRUE;
-    }
-
-  if (!do_add)
-      return TRUE;
-
-  message = _gabble_roster_item_to_message (roster, handle, NULL);
-  ret = _gabble_connection_send (priv->conn, message, error);
-  lm_message_unref (message);
-
-  return ret;
-}
--- a/telepathygabble/src/search-factory.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,412 +0,0 @@
-/*
- * search-factory.c - Source for GabbleSearchFactory
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#include <glib.h>
-#include <glib-object.h>
-
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-
-#include "loudmouth/loudmouth.h"
-
-#include "debug.h"
-#include "gabble-connection.h"
-#include "telepathy-interfaces.h"
-#include "tp-channel-factory-iface.h"
-
-#include "search-mixin.h"
-#include "gabble-search-channel.h"
-
-#include "search-factory.h"
-
-static void gabble_search_factory_iface_init (gpointer g_iface, gpointer iface_data);
-
-#ifndef EMULATOR
-G_DEFINE_TYPE_WITH_CODE (GabbleSearchFactory, gabble_search_factory, G_TYPE_OBJECT,
-    G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_FACTORY_IFACE, gabble_search_factory_iface_init));
-#endif
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-    GET_STATIC_VAR_FROM_TLS(gabble_search_factory_parent_class,search_factory,gpointer)
-	#define gabble_search_factory_parent_class (*GET_WSD_VAR_NAME(gabble_search_factory_parent_class,search_factory,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,search_factory,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,search_factory,s)())
-
-static void gabble_search_factory_init (GabbleSearchFactory *self); 
-static void gabble_search_factory_class_init (GabbleSearchFactoryClass *klass); 
-static void gabble_search_factory_class_intern_init (gpointer klass) 
-{
- gabble_search_factory_parent_class = g_type_class_peek_parent (klass);
-  gabble_search_factory_class_init ((GabbleSearchFactoryClass*) klass);
-   }
-    EXPORT_C GType gabble_search_factory_get_type (void) 
-    {
-    if ((g_define_type_id == 0)) { static const GTypeInfo g_define_type_info = { sizeof (GabbleSearchFactoryClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_search_factory_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleSearchFactory), 0, (GInstanceInitFunc) gabble_search_factory_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleSearchFactory"), &g_define_type_info, (GTypeFlags) 0); { { static const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) gabble_search_factory_iface_init }; g_type_add_interface_static (g_define_type_id, tp_channel_factory_iface_get_type(), &g_implement_interface_info); } ; } } return g_define_type_id; }    ;
-
-#endif
-
-#define DBUS_API_SUBJECT_TO_CHANGE
-#define DEBUG_FLAG GABBLE_DEBUG_IM
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-/* properties */
-enum
-{
-  PROP_CONNECTION = 1,
-  LAST_PROPERTY
-};
-
-typedef struct _GabbleSearchFactoryPrivate GabbleSearchFactoryPrivate;
-struct _GabbleSearchFactoryPrivate
-{
-  GabbleConnection *conn;
-  GArray *channels; 
-  gboolean dispose_has_run;
-};
-
-#define GABBLE_SEARCH_FACTORY_GET_PRIVATE(o)    (G_TYPE_INSTANCE_GET_PRIVATE ((o), GABBLE_TYPE_SEARCH_FACTORY, GabbleSearchFactoryPrivate))
-
-static GObject *gabble_search_factory_constructor (GType type, guint n_props, GObjectConstructParam *props);
-
-static void
-gabble_search_factory_init (GabbleSearchFactory *fac)
-{
-  GabbleSearchFactoryPrivate *priv = GABBLE_SEARCH_FACTORY_GET_PRIVATE (fac);
-
-  priv->channels = g_array_sized_new (FALSE, FALSE, sizeof (guint), 1);
-  priv->conn = NULL;
-  priv->dispose_has_run = FALSE;
-}
-
-static GObject *
-gabble_search_factory_constructor (GType type, guint n_props,
-                               GObjectConstructParam *props)
-{
-  GObject *obj;
-  /* GabbleSearchFactoryPrivate *priv; */
-
-  obj = G_OBJECT_CLASS (gabble_search_factory_parent_class)->
-           constructor (type, n_props, props);
-  /* priv = GABBLE_SEARCH_FACTORY_GET_PRIVATE (obj); */
-
-  return obj;
-}
-
-
-static void
-gabble_search_factory_dispose (GObject *object)
-{
-  GabbleSearchFactory *fac = GABBLE_SEARCH_FACTORY (object);
-  GabbleSearchFactoryPrivate *priv = GABBLE_SEARCH_FACTORY_GET_PRIVATE (fac);
-
-  if (priv->dispose_has_run)
-    return;
-
-  gabble_debug (DEBUG_FLAG, "dispose called");
-  priv->dispose_has_run = TRUE;
-
-  tp_channel_factory_iface_close_all (TP_CHANNEL_FACTORY_IFACE (object));
-  g_assert (priv->channels == NULL);
-
-  if (G_OBJECT_CLASS (gabble_search_factory_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_search_factory_parent_class)->dispose (object);
-}
-
-static void
-gabble_search_factory_get_property (GObject    *object,
-                                 guint       property_id,
-                                 GValue     *value,
-                                 GParamSpec *pspec)
-{
-  GabbleSearchFactory *fac = GABBLE_SEARCH_FACTORY (object);
-  GabbleSearchFactoryPrivate *priv = GABBLE_SEARCH_FACTORY_GET_PRIVATE (fac);
-	
-  switch (property_id) {
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->conn);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_search_factory_set_property (GObject      *object,
-                                 guint         property_id,
-                                 const GValue *value,
-                                 GParamSpec   *pspec)
-{
-  GabbleSearchFactory *fac = GABBLE_SEARCH_FACTORY (object);
-  GabbleSearchFactoryPrivate *priv = GABBLE_SEARCH_FACTORY_GET_PRIVATE (fac);
-  
-  switch (property_id) {
-    case PROP_CONNECTION:
-      priv->conn = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_search_factory_class_init (GabbleSearchFactoryClass *gabble_search_factory_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_search_factory_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_search_factory_class, sizeof (GabbleSearchFactoryPrivate));
-
-  object_class->constructor = gabble_search_factory_constructor;
-  object_class->dispose = gabble_search_factory_dispose;
-
-  object_class->get_property = gabble_search_factory_get_property;
-  object_class->set_property = gabble_search_factory_set_property;
-
-  
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "Search channel factory object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-}
-
-static GabbleSearchChannel *new_search_channel (GabbleSearchFactory *fac, GabbleHandle handle);
-
-static void search_channel_closed_cb (GabbleSearchChannel *chan, gpointer user_data);
-
-
-
-/**
- * search_channel_closed_cb:
- *
- * Signal callback for when search channel is closed. Removes the references
- * that #GabbleConnection holds to them.
- */
-static void
-search_channel_closed_cb (GabbleSearchChannel *chan, gpointer user_data)
-{
-  GabbleSearchFactory *fac = GABBLE_SEARCH_FACTORY (user_data);
-  GabbleSearchFactoryPrivate *priv = GABBLE_SEARCH_FACTORY_GET_PRIVATE (fac);
-  g_message("in search_channel_closed_cb");
-  if (priv->channels)
-    {
-    g_array_remove_index( priv->channels, chan->channel_index );
-    }
-    
-  lm_connection_unregister_message_handler (priv->conn->lmconn, chan->iq_cb,
-                                            LM_MESSAGE_TYPE_IQ);
-  lm_message_handler_unref (chan->iq_cb);
-  chan->iq_cb = NULL;
-  g_object_unref (chan);
-  chan = NULL;
-}
-
-/**
- * new_search_channel
- */
-static GabbleSearchChannel *
-new_search_channel (GabbleSearchFactory *fac, GabbleHandle handle)
-{
-  GabbleSearchFactoryPrivate *priv;
-  GabbleSearchChannel *chan;
-  char *object_path;
- 
-  g_assert (GABBLE_IS_SEARCH_FACTORY (fac));
-
-  priv = GABBLE_SEARCH_FACTORY_GET_PRIVATE (fac);
-  
-  g_message("in new_search_channel:handle %u\n",handle);
-  
-  object_path = g_strdup_printf ("%s/SearchChannel%u", priv->conn->object_path, handle);
-  
-  gabble_debug (DEBUG_FLAG, "object path %s", object_path);
-  
-  
- 
- // handle type should be none and handle value should be zero
- // so handle passed in g_object_new
-  chan = g_object_new (GABBLE_TYPE_SEARCH_CHANNEL,
-                       "connection", priv->conn,
-                       "object-path", object_path,
-                        "handle", handle,
-                       NULL);
-  
-  g_message("in new_search_channel: chan is %u\n", chan);
-  
-  g_array_append_val(priv->channels, chan);
-  
-  g_signal_connect (chan, "closed", (GCallback) search_channel_closed_cb,fac);
-  
-
-  g_signal_emit_by_name (fac, "new-channel", chan);
-
-  g_free (object_path);
-  chan->channel_index = priv->channels->len - 1;
-  
-  //added for search as chan need to be passed as userdata in search_channel_iq_cb
-  chan->iq_cb = lm_message_handler_new (search_channel_iq_cb, chan , NULL);
-  lm_connection_register_message_handler (priv->conn->lmconn, chan->iq_cb,
-                                          LM_MESSAGE_TYPE_IQ,
-                                          LM_HANDLER_PRIORITY_NORMAL);
-
-  return chan;
-}
-
-static void
-gabble_search_factory_iface_close_all (TpChannelFactoryIface *iface)
-{
-  GabbleSearchFactory *fac = GABBLE_SEARCH_FACTORY (iface);
-  GabbleSearchFactoryPrivate *priv = GABBLE_SEARCH_FACTORY_GET_PRIVATE (fac);
-
-  gabble_debug (DEBUG_FLAG, "closing channels");
-
-  if (priv->channels)
-    {
-      g_array_free ( priv->channels, TRUE);
-      priv->channels = NULL;
-    }
-}
-
-static void
-gabble_search_factory_iface_connecting (TpChannelFactoryIface *iface)
-{
-  /* nothing to do */
-}
-
-
-
-static void
-gabble_search_factory_iface_connected (TpChannelFactoryIface *iface)
-{
-  /* nothing to do */
-}
-
-static void
-gabble_search_factory_iface_disconnected (TpChannelFactoryIface *iface)
-{
-  // free any object here
-  GabbleSearchFactory *fac = GABBLE_SEARCH_FACTORY (iface);
-  GabbleSearchFactoryPrivate *priv = GABBLE_SEARCH_FACTORY_GET_PRIVATE (fac);
-
-  if (priv->channels)
-    {
-      g_array_free ( priv->channels, TRUE);
-      priv->channels = NULL;
-    }
-}
-
-struct _ForeachData
-{
-  TpChannelFunc foreach;
-  gpointer user_data;
-};
-
-static void
-_foreach_slave ( gpointer value, gpointer user_data )
-{
-  struct _ForeachData *data = (struct _ForeachData *) user_data;
-  TpChannelIface *chan = TP_CHANNEL_IFACE (value);
-
-  data->foreach (chan, data->user_data);
-}
-
-
-static void
-gabble_search_factory_iface_foreach (TpChannelFactoryIface *iface, TpChannelFunc foreach, gpointer user_data)
-{
-  GabbleSearchFactory *fac = GABBLE_SEARCH_FACTORY (iface);
-  GabbleSearchFactoryPrivate *priv = GABBLE_SEARCH_FACTORY_GET_PRIVATE (fac);
-  struct _ForeachData data;
-  guint i = 0;
-  GabbleSearchChannel *chan = NULL;
-
-  data.user_data = user_data;
-  data.foreach = foreach;
-
-  for( i = 0; i< priv->channels->len ; i++ )
-  {
-  chan = GABBLE_SEARCH_CHANNEL ( g_array_index(priv->channels,guint,i) );
-  _foreach_slave(chan, &data);	
-  }
-  
-}
-
-static TpChannelFactoryRequestStatus
-gabble_search_factory_iface_request (TpChannelFactoryIface *iface,
-                                 const gchar *chan_type,
-                                 TpHandleType handle_type,
-                                 guint handle,
-                                 TpChannelIface **ret,
-                                 GError **error)
-{
-  GabbleSearchFactory *fac = GABBLE_SEARCH_FACTORY (iface);
-  GabbleSearchFactoryPrivate *priv = GABBLE_SEARCH_FACTORY_GET_PRIVATE (fac);
-  GabbleSearchChannel *chan;
-
-  if (strcmp (chan_type, TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH))
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_IMPLEMENTED;
-  
-  // should always pass handle type as none and handle as zero
-
-  if ((handle_type != TP_HANDLE_TYPE_NONE) || handle )
-    return TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_AVAILABLE;
-
-  
-  g_message("in gabble_search_factory_iface_request:handle %u\n",handle);
-  
-  chan = new_search_channel (fac, handle);
-  g_assert (chan);
-  *ret = TP_CHANNEL_IFACE (chan);
-  return TP_CHANNEL_FACTORY_REQUEST_STATUS_DONE;
-}
-
-static void
-gabble_search_factory_iface_init (gpointer g_iface,
-                              gpointer iface_data)
-{
-  TpChannelFactoryIfaceClass *klass = (TpChannelFactoryIfaceClass *) g_iface;
-
-  klass->close_all = gabble_search_factory_iface_close_all;
-  klass->connecting = gabble_search_factory_iface_connecting;
-  klass->connected = gabble_search_factory_iface_connected;
-  klass->disconnected = gabble_search_factory_iface_disconnected;
-  klass->foreach = gabble_search_factory_iface_foreach;
-  klass->request = gabble_search_factory_iface_request;
-}
-
--- a/telepathygabble/src/search-keys-info.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,298 +0,0 @@
-/*
- * search-keys-info.c - Source for Jingle info discovery
- * Copyright (C) 2008 Collabora Ltd.
- *  and/or its subsidiaries. All rights reserved.
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <string.h>
-#include <stdlib.h>
-
-#define DEBUG_FLAG GABBLE_DEBUG_MEDIA
-
-#include "debug.h"
-#include "search-keys-info.h"
-#include "gabble-error.h"
-#include "namespaces.h"
-#include "util.h"
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-/**
- * get_search_keys_info:
- *
- * get search keys 
- *
- */
-void
-get_search_keys_info (GabbleConnection *conn,  const gchar *jid )
-{
-  LmMessage *msg;
-  LmMessageNode *query_node;
-  gboolean result;
-  gchar *service = NULL;
-  GError *error = NULL;
-
-  conn->search_service_jid = g_strdup( jid );
-  
-  msg= lm_message_new_with_sub_type ( jid,
-                                      LM_MESSAGE_TYPE_IQ,
-                                      LM_MESSAGE_SUB_TYPE_GET);
-  query_node = lm_message_node_add_child (msg->node, "query", NULL);
-  
-  lm_message_node_set_attribute (query_node, "xmlns", NS_SEARCH);
-
-  if (!_gabble_connection_send (conn, msg, &error))
-    {
-      g_warning ("%s: send failed: %s\n", G_STRFUNC, error->message);
-      goto OUT;
-    }
-
-OUT:
-  if (msg)
-    lm_message_unref (msg);
-
-  if (error)
-    g_error_free (error);
- 
-}
-
-
-/**
- * _gabble_submit_search_form:
- *
- * Submit search form 
- *
- */
-gboolean
-_gabble_submit_search_form (GabbleConnection *conn)
-{
-  LmMessage *msg;
-  LmMessageNode *query_node;
-  LmMessageNode *x_node;
-  LmMessageNode *field_node, *value_node;
-  gboolean result;
-  const gchar *jid;
-  gchar *service = NULL;
-  GError **error = NULL;
-
-  g_message("_gabble_submit_search_form\n");
-  jid = gabble_handle_inspect (conn->handles, TP_HANDLE_TYPE_CONTACT, conn->self_handle);
-  g_message("jid is %s\n",jid);
-  gabble_decode_jid(jid, NULL /*username*/,&service,NULL/*resource*/);
-  g_message("service is %s\n",service);
-  
-  msg= lm_message_new_with_sub_type ( service,
-                                      LM_MESSAGE_TYPE_IQ,
-                                      LM_MESSAGE_SUB_TYPE_SET);
-  query_node = lm_message_node_add_child (msg->node, "query", NULL);
-  
-  lm_message_node_set_attribute (query_node, "xmlns", NS_SEARCH);
-  
-  x_node = lm_message_node_add_child ( query_node, "x", NULL );
-  
-  lm_message_node_set_attributes (x_node,
-                                  "xmlns", NS_X_DATA,
-                                  "type", "submit",
-                                  NULL);
-                                  
-  field_node = lm_message_node_add_child ( x_node, "x", NULL );
-  
-  lm_message_node_set_attributes (x_node,
-                                  "type", "hidden",
-                                  "var", "FORM_TYPE",
-                                  NULL); 
-                                  
-  value_node = lm_message_node_get_child(field_node, "value");
-  lm_message_node_set_value(value_node,"NS_SEARCH");   
-  
-  g_message("_gabble_submit_search_form b4 _gabble_connection_send\n");                                                                
-  
-  result = _gabble_connection_send (conn, msg, error);
-  lm_message_unref (msg);
-
-  if (!result)
-    return FALSE;
-  
-  return TRUE;
-}
-
-
-/**
- * search_keys_iq_cb
- *
- * Called by loudmouth when we get an incoming <iq>. This handler
- * is concerned only with Requesting Search Keys info queries.
- */
-LmHandlerResult
-search_keys_iq_cb (LmMessageHandler *handler,
-                         LmConnection *lmconn,
-                         LmMessage *message,
-                         gpointer user_data)
-{
-  GabbleConnection *conn = GABBLE_CONNECTION (user_data);
-  
-  LmMessageSubType sub_type;
-  LmMessageNode *query_node, *x_node, *result_node,*x_item_node;
-  const gchar *str;
-  const gchar *type, *field_label,*field_var, *field_type;
-  guint  i = 0;
-  
-  if ( NULL == conn )
-        {
-        g_debug ("%s: accesing after dereferenced connection", G_STRFUNC);
-        return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-        }
-  
-  query_node = lm_message_node_get_child_with_namespace (message->node,
-      "query", NS_SEARCH);
-
-  if (query_node == NULL)
-    return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-
-  sub_type = lm_message_get_sub_type (message);
-  
-  if (sub_type != LM_MESSAGE_SUB_TYPE_RESULT)
-    {
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  if (sub_type == LM_MESSAGE_SUB_TYPE_RESULT)
-  {
-	  x_node = lm_message_node_get_child_with_namespace (query_node, "x", NS_X_DATA);
-	  
-	  if( x_node )
-			{
-			    //if service supports data forms 
-		    	result_node = x_node; 
-				type   = lm_message_node_get_attribute (x_node, "type" );
-				  
-		       if (0 == strcmp (type, "form"))
-		          {
-		          gint filed_count = 0;
-		          
-		          for (x_item_node = result_node->children; x_item_node; x_item_node = x_item_node->next)
-                      {
-                      if( 0 == strcmp (x_item_node->name, "field") )
-                          {
-                          filed_count++;
-                          }
-                      }
-		          
-		          if(conn->search_key_names == NULL)
-                        {
-                          conn->search_key_names = (gchar**)g_new0( gchar*, filed_count);
-                        }
-                    
-                  if(conn->search_key_ht == NULL)
-                        {
-                          conn->search_key_ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-                        }
-
-		            conn->search_form = TRUE;
-		            for (x_item_node = result_node->children; x_item_node; x_item_node = x_item_node->next)
-		            {
-		                
-		                 // "reported" should also be used to get the types of search result fields
-		                 //'g' type currently not supported by dbus-glib-binding
-		                 if (0 != strcmp (x_item_node->name, "field") 
-		                        && 0 != strcmp (x_item_node->name, "instructions"))
-		                    continue;
-		                    
-		                
-		                 if( 0 == strcmp (x_item_node->name, "instructions") )
-		                     {
-		                        //get the instructions
-		                        g_message("get the instuction\n");
-		                        conn->search_instr = g_strdup( lm_message_node_get_value(x_item_node) );    
-		                        g_message("after gettting the instuction\n");
-		                        continue;
-		                     }
-		                     
-		                 if( 0 == strcmp (x_item_node->name, "field") )
-		                    {
-		                        //node is a field node
-		                        //get the name of each field
-		                        //type also ..later
-		                        field_type = lm_message_node_get_attribute(x_item_node, "type");
-		                        if( 0 == strcmp (field_type, "hidden") )
-		                            {
-		                            //see later if this must be sent while sending request to the server
-		                            continue;   
-		                            }
-		                       //get the "type" of the attr as well along with "var"
-		                       //to send it to the client later 
-		                       //dbus-glib-binding tool support 'g' type 
-		                       field_label = lm_message_node_get_attribute(x_item_node, "label");
-		                      
-		                       g_message("b4 gettting the search_key_names\n");
-		                       conn->search_key_names[i] = g_strdup(field_label);
-		                       g_message("after gettting the search_key_names\n");
-		                       g_message("%s\n",conn->search_key_names[i]);
-		                       field_var = lm_message_node_get_attribute(x_item_node, "var");
-		                       g_hash_table_insert(conn->search_key_ht,g_strdup(field_label),g_strdup(field_var));
-		                       i++;                    
-		                       
-		                    }
-		               }
-		               
-		            conn->search_key_names[i] = NULL;
-		            // this should be done when we need to give the 
-		            // search result attributes in advance to the client
-		            // and if we are able to give the type also     
-		            
-		        
-		          }
-		        
-			}
-	   else
-	       {
-	       return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-	       }
-	    
-	   return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-		  
-      }
-
-   else if (sub_type == LM_MESSAGE_SUB_TYPE_ERROR)
-    {
-      GabbleXmppError xmpp_error = INVALID_XMPP_ERROR;
-
-      result_node = lm_message_node_get_child (message->node, "error");
-      if (result_node)
-        {
-          xmpp_error = gabble_xmpp_error_from_node (result_node);
-        }
-
-      str = gabble_xmpp_error_string (xmpp_error);
-
-      g_warning ("%s: jingle info error: %s", G_STRFUNC,
-          (str) ? str : "unknown error");
-    }
-  else
-    {
-      NODE_DEBUG (message->node, "unknown message sub type");
-    }
-
-  return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-}
-
-
--- a/telepathygabble/src/search-mixin-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
- * search-mixin-signals-marshal.c - Source for GabbleSearchMixinSignalsMarshal
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *   @author Robert McQueen <robert.mcqueen@collabora.co.uk>
- *   @author Senko Rasic <senko@senko.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-
-/* VOID:UINT,BOXED (search-mixin-signals-marshal.list:11) */
-
-void
-search_mixin_marshal_VOID__UINT_BOXED (GClosure     *closure,
-                                           GValue       *return_value,
-                                           guint         n_param_values,
-                                           const GValue *param_values,
-                                           gpointer      invocation_hint,
-                                           gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_BOXED) (gpointer     data1,
-                                                guint         arg_1,
-                                                gpointer     arg_2,
-                                                gpointer     data2);
-  register GMarshalFunc_VOID__UINT_BOXED callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_BOXED) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_boxed (param_values + 2),
-            data2);
-}
-
-
-
--- a/telepathygabble/src/search-mixin.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,497 +0,0 @@
-/*
- * search-mixin.c - Source for GabbleSearchMixin
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *   @author Robert McQueen <robert.mcqueen@collabora.co.uk>
- *   @author Senko Rasic <senko@senko.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include "loudmouth/loudmouth.h"
-#include <dbus/dbus-glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#include "telepathy-constants.h"
-#include "telepathy-errors.h"
-
-
-#include "debug.h"
-#include "gabble-connection.h"
-#include "namespaces.h"
-#include "roster.h"
-#include "util.h"
-
-
-#include "search-mixin.h"
-#include "search-mixin-signals-marshal.h"
-
-
-#include "gabble_enums.h"
-
-#define _GNU_SOURCE /* Needed for strptime (_XOPEN_SOURCE can also be used). */
-
-#define DEBUG_FLAG GABBLE_DEBUG_SEARCH
-
-
-/* allocator */
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(offset_quark1,gabble_search_mixin,GQuark)
-	#define offset_quark1 (*GET_WSD_VAR_NAME(offset_quark1,gabble_search_mixin, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(offset_quark,gabble_search_mixin,GQuark)
-	#define offset_quark (*GET_WSD_VAR_NAME(offset_quark,gabble_search_mixin, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(alloc1,gabble_search_mixin,GabbleAllocator)
-	#define alloc1 (*GET_WSD_VAR_NAME(alloc1,gabble_search_mixin, s)())		
-	
-#endif
-
-/*
-Moved to gabble_enums.h
-typedef struct _GabbleAllocator GabbleAllocator;
-struct _GabbleAllocator
-{
-  gulong size;
-  guint limit;
-  guint count;
-};*/
-
-
-typedef struct _IsKeyValidUserData IsKeyValidUserData;
-
-struct _IsKeyValidUserData
-{
-  GError **error;
-  gchar **search_key_names;
-  gboolean is_key_found;
-};
-
-
-typedef struct _SearchKeyVarUserData SearchKeyVarUserData;
-
-struct _SearchKeyVarUserData
-{
-  LmMessageNode *x_node;
-  GabbleConnection *conn;
-  
-};
-
-
-#define ga_new0(alloc, type) \
-    ((type *) gabble_allocator_alloc0 (alloc))
-
-static void
-gabble_allocator_init (GabbleAllocator *alloc, gulong size, guint limit)
-{
-  g_assert (alloc != NULL);
-  g_assert (size > 0);
-  g_assert (limit > 0);
-
-  alloc->size = size;
-  alloc->limit = limit;
-}
-
-static gpointer gabble_allocator_alloc0 (GabbleAllocator *alloc)
-{
-  gpointer ret;
-
-  g_assert (alloc != NULL);
-  g_assert (alloc->count <= alloc->limit);
-
-  if (alloc->count == alloc->limit)
-    {
-      ret = NULL;
-    }
-  else
-    {
-      ret = g_malloc0 (alloc->size);
-      alloc->count++;
-    }
-
-  return ret;
-}
-
-static void gabble_allocator_free (GabbleAllocator *alloc, gpointer thing)
-{
-  g_assert (alloc != NULL);
-  g_assert (thing != NULL);
-
-  g_free (thing);
-  alloc->count--;
-}
-
-
-/**
- * gabble_search_mixin_class_get_offset_quark:
- *
- * Returns: the quark used for storing mixin offset on a GObjectClass
- */
-GQuark
-gabble_search_mixin_class_get_offset_quark ()
-{
-#ifndef EMULATOR  
-  static GQuark offset_quark1 = 0;
-#endif
-  
-  if (!offset_quark1)
-    offset_quark1 = g_quark_from_static_string("SearchMixinClassOffsetQuark");
-  return offset_quark1;
-}
-
-/**
- * gabble_search_mixin_get_offset_quark:
- *
- * Returns: the quark used for storing mixin offset on a GObject
- */
-GQuark
-gabble_search_mixin_get_offset_quark ()
-{
-#ifndef EMULATOR  
-  static GQuark offset_quark = 0;
-#endif
-  
-  if (!offset_quark)
-    offset_quark = g_quark_from_static_string("SearchMixinOffsetQuark");
-  return offset_quark;
-}
-
-
-/* GabbleSearchMixin */
-void
-gabble_search_mixin_class_init (GObjectClass *obj_cls, glong offset)
-{
-  GabbleSearchMixinClass *mixin_cls;
-
-  g_assert (G_IS_OBJECT_CLASS (obj_cls));
-
-  g_type_set_qdata (G_OBJECT_CLASS_TYPE (obj_cls),
-      GABBLE_SEARCH_MIXIN_CLASS_OFFSET_QUARK,
-      GINT_TO_POINTER (offset));
-
-  mixin_cls = GABBLE_SEARCH_MIXIN_CLASS (obj_cls);
-
-
-  mixin_cls->search_result_received_signal_id = g_signal_new ("search-result-received",
-                G_OBJECT_CLASS_TYPE (obj_cls),
-                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                0,
-                NULL, NULL,
-                search_mixin_marshal_VOID__UINT_BOXED,
-                G_TYPE_NONE,
-                2, G_TYPE_UINT, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE ));
-
-  mixin_cls->search_state_changed_signal_id = g_signal_new ("search-state-changed",
-                G_OBJECT_CLASS_TYPE (obj_cls),
-                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                0,
-                NULL, NULL,
-                g_cclosure_marshal_VOID__UINT,
-                G_TYPE_NONE, 1, G_TYPE_UINT );
-
-}
-
-void
-gabble_search_mixin_init (GObject *obj,
-                        	glong offset )
-{
-  GabbleSearchMixin *mixin;
-
-  g_assert (G_IS_OBJECT (obj));
-
-  g_type_set_qdata (G_OBJECT_TYPE (obj),
-                    GABBLE_SEARCH_MIXIN_OFFSET_QUARK,
-                    GINT_TO_POINTER (offset));
-
-  mixin = GABBLE_SEARCH_MIXIN (obj);
-  
-  mixin->search_state = TP_CHANNEL_CONTACT_SEARCH_STATE_BEFORE;
-
- }
-
-void
-gabble_search_mixin_finalize (GObject *obj)
-{
-  GabbleSearchMixin *mixin = GABBLE_SEARCH_MIXIN (obj);
-  /* free any data held directly by the object here */
-}
-
-static void
-setfield_foreach (gpointer key, gpointer value, gpointer user_data)
-{
-  const gchar *search_data_string = NULL;  
-  SearchKeyVarUserData *key_var_struct = (SearchKeyVarUserData*)user_data;
-  LmMessageNode *field_node;  
-  const gchar *search_key_var = NULL;
-  GType g_type = G_VALUE_TYPE (value);
-  
-  switch (g_type) 
-  {
-    case G_TYPE_STRING:
-    	search_data_string =  g_value_get_string(value);
-    	break;
-    default:
-          g_assert_not_reached ();
-  }
-  
-  search_key_var = (gchar *) g_hash_table_lookup (key_var_struct->conn->search_key_ht,
-              										 key /*Label*/);
-  field_node = lm_message_node_add_child ( key_var_struct->x_node, "field", NULL );
-  lm_message_node_set_attribute ( field_node, "var", search_key_var );
-  lm_message_node_add_child ( field_node, "value", search_data_string ); 
-}
-static void 
-gabble_search_keynames_are_valid ( gpointer key, gpointer value,
-                         			gpointer userdata )
-{
-  guint i;
-  const gchar *search_data_string =  g_value_get_string(value);
-  IsKeyValidUserData *key_valid_struct = (IsKeyValidUserData*)userdata;
-  gchar **search_key_names = key_valid_struct->search_key_names;
-
-  if( !key_valid_struct->is_key_found )
-  	return;
-  
-  if( key == NULL )
-	  {
-	  	key_valid_struct->is_key_found = FALSE;
-	  	return;
-	  }
-	   
-	  
-  for (i = 0; search_key_names[i]; i++)
-    {
-      if (0 == strcmp (search_key_names[i], key))
-	      {
-	      g_message("searchkey %s is valid\n",key);
-	      if( search_data_string )
-	      	g_message("value is %s\n",search_data_string);
-	      return;	
-	      }
-    }
- key_valid_struct->is_key_found = FALSE;
- g_message("searchkey %s is invalid\n",key);
- g_set_error ( key_valid_struct->error, TELEPATHY_ERRORS, InvalidArgument,
-		              "invalid search key found : %s\n", key);
-}
-
-
-/**
- * gabble_search_mixin_search
- *
- * Implements D-Bus method Search
- * on interface org.freedesktop.Telepathy.Channel.Type.ContactSearch
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean gabble_search_mixin_search (GObject *obj,GHashTable *params,
-									 GabbleConnection *conn,
-                                 	 GError **error)
-{
-  LmMessage *msg;
-  LmMessageNode *query_node;
-  LmMessageNode *x_node;
-  gboolean result;
-  const gchar *service = NULL;
-  GabbleSearchMixin *mixin = GABBLE_SEARCH_MIXIN (obj);
-  IsKeyValidUserData *user_data = NULL;
-  SearchKeyVarUserData *get_keyvar_userdata = NULL;
-     
-
-  if (params == NULL)
-      {
-       g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-	              "invalid argument \n");
-  	   return FALSE;	
-      }
-  
-  if ( !g_hash_table_size(params) )
-      {
-       g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-	              "invalid argument, no key-value pair to do search\n");
-  	   return FALSE;	
-      }
-  
-  service = conn->search_service_jid;
-  
-  if (service == NULL)
-      {
-       g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-	              "Search Service is not available\n");
-  	   return FALSE;	
-      }
-      
-  g_message("service is %s\n",service);
-  
-  if (conn->search_key_names == NULL)
-      {
-       g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-	              "search key names not available");
-  	   return FALSE;	
-      }
-  
-  user_data = g_new0 (IsKeyValidUserData, 1);
-  user_data->is_key_found = TRUE;
-  user_data->error = error;
-  user_data->search_key_names = conn->search_key_names;
-  
-  g_hash_table_foreach (params, gabble_search_keynames_are_valid, user_data );
-  
-  if(!user_data->is_key_found)
-	  {
-	  g_free(user_data);
-	  g_message("invalid searchkey found\n");
-	  return FALSE;		              
-	  }
-  
-  g_free(user_data);
-  
-  msg= lm_message_new_with_sub_type ( service,
-                                      LM_MESSAGE_TYPE_IQ,
-                                      LM_MESSAGE_SUB_TYPE_SET);
-  query_node = lm_message_node_add_child (msg->node, "query", NULL);
-  
-  lm_message_node_set_attribute (query_node, "xmlns", NS_SEARCH);
- 
-  x_node = lm_message_node_add_child ( query_node, "x", NULL );
-
-  lm_message_node_set_attributes (x_node,
-                      "xmlns", NS_X_DATA,
-                      "type", "submit",
-                      NULL);
-                      
-  get_keyvar_userdata = g_new0 (SearchKeyVarUserData, 1);
-  get_keyvar_userdata->x_node = x_node;
-  get_keyvar_userdata->conn = conn;
-
-  g_hash_table_foreach (params, setfield_foreach, get_keyvar_userdata );
-  
-  g_free(get_keyvar_userdata);	                                  	
-	 
-  result = _gabble_connection_send (conn, msg, error);
-  lm_message_unref (msg);
-
-  if (!result)
-    return FALSE;
-  
-  //this means for each search attempt, a new channel should be created
-  mixin->search_state = TP_CHANNEL_CONTACT_SEARCH_STATE_DURING;
-  
-  //send search state changed signal if required
-  _gabble_search_mixin_emit_search_state_changed(obj,mixin->search_state);
-
-   return TRUE;
-}
-
-gboolean gabble_search_mixin_get_search_state (	GObject *obj, 
-												guint *ret,
-                        						GError **error )
-{
-  GabbleSearchMixin *mixin = GABBLE_SEARCH_MIXIN (obj);
-  *ret = mixin->search_state; 
-  return TRUE;
-}
-
-
-/**
- * gabble_search_mixin_get_search_keys
- *
- * Implements D-Bus method GetSearchKeys
- * on interface org.freedesktop.Telepathy.Channel.Type.ContactSearch
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean
-gabble_search_mixin_get_search_keys (	GObject *obj,
-										gchar **ret_instruction, 
-										gchar ***ret_searchkeys,
-										GabbleConnection *conn,
-		                        		GError **error
-                        	  		   )
-{
-  //later this method should be modified to give 
-  //types of search keys fields also
-  
-  if (conn->search_key_names == NULL)
-      {
-       g_set_error (error, TELEPATHY_ERRORS, NotAvailable,
-	              "search keys not available");
-  	   return FALSE;	
-      }
-  
-  *ret_searchkeys = g_strdupv ((gchar **) conn->search_key_names);
-  *ret_instruction = g_strdup ( (gchar*)conn->search_instr);
-
-  g_message("conn->search_instr :%s\n",(gchar*)conn->search_instr);
-  g_message("ret_instruction  :%s\n",(gchar*)*ret_instruction );
-
-  return TRUE;
-}
-
-
-void
-_gabble_search_mixin_emit_search_result_received (GObject *obj,
-                                                 guint contact_handle,
-                             				     GHashTable *values )
-{
-  GabbleSearchMixinClass *mixin_cls = GABBLE_SEARCH_MIXIN_CLASS (G_OBJECT_GET_CLASS
-      (obj));
-
-  g_signal_emit (obj, mixin_cls->search_result_received_signal_id, 0,
-                 contact_handle,
-                 values );
-}
-
-void
-_gabble_search_mixin_emit_search_state_changed (GObject *obj,
-                                                 guint search_state )
-{
-  GabbleSearchMixinClass *mixin_cls = GABBLE_SEARCH_MIXIN_CLASS (G_OBJECT_GET_CLASS
-      (obj));
-  g_signal_emit (obj, mixin_cls->search_state_changed_signal_id, 0,
-                 search_state );
-}
-
-void
-_gabble_search_mixin_set_search_state (GObject *obj, guint state )
-{
-  GabbleSearchMixin *mixin = GABBLE_SEARCH_MIXIN (obj);  
-  mixin->search_state = state;
-}
-
-
--- a/telepathygabble/src/sha1.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,649 +0,0 @@
-/*-
- * Copyright (c) 2001-2003 Allan Saddi <allan@saddi.com>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY ALLAN SADDI AND HIS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL ALLAN SADDI OR HIS CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * $Id: sha1.c 680 2003-07-25 21:57:38Z asaddi $
- */
-
-/*
- * Define WORDS_BIGENDIAN if compiling on a big-endian architecture.
- *
- * Define SHA1_TEST to test the implementation using the NIST's
- * sample messages. The output should be:
- *
- *   a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d
- *   84983e44 1c3bd26e baae4aa1 f95129e5 e54670f1
- *   34aa973c d4c4daa4 f61eeb2b dbad2731 6534016f
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
-#endif
-
-#include <string.h>
-
-
-#include "sha1.h"
-
-#ifndef lint
-static const char rcsid[] =
-	"$Id: sha1.c 680 2003-07-25 21:57:38Z asaddi $";
-#endif /* !lint */
-
-#define ROTL(x, n) (((x) << (n)) | ((x) >> (32 - (n))))
-#define ROTR(x, n) (((x) >> (n)) | ((x) << (32 - (n))))
-
-#define F_0_19(x, y, z) ((z) ^ ((x) & ((y) ^ (z))))
-#define F_20_39(x, y, z) ((x) ^ (y) ^ (z))
-#define F_40_59(x, y, z) (((x) & ((y) | (z))) | ((y) & (z)))
-#define F_60_79(x, y, z) ((x) ^ (y) ^ (z))
-
-#define DO_ROUND(F, K) { \
-  temp = ROTL(a, 5) + F(b, c, d) + e + *(W++) + K; \
-  e = d; \
-  d = c; \
-  c = ROTL(b, 30); \
-  b = a; \
-  a = temp; \
-}
-
-#define K_0_19 0x5a827999L
-#define K_20_39 0x6ed9eba1L
-#define K_40_59 0x8f1bbcdcL
-#define K_60_79 0xca62c1d6L
-
-#ifndef RUNTIME_ENDIAN
-
-#ifdef WORDS_BIGENDIAN
-
-#define BYTESWAP(x) (x)
-#define BYTESWAP64(x) (x)
-
-#else /* WORDS_BIGENDIAN */
-
-#define BYTESWAP(x) ((ROTR((x), 8) & 0xff00ff00L) | \
-		     (ROTL((x), 8) & 0x00ff00ffL))
-#define BYTESWAP64(x) _byteswap64(x)
-
-static 
-#ifdef G_HAVE_INLINE 
-inline 
-#endif
-uint64_t _byteswap64(uint64_t x)
-{
-  uint32_t a = x >> 32;
-  uint32_t b = (uint32_t) x;
-  return ((uint64_t) BYTESWAP(b) << 32) | (uint64_t) BYTESWAP(a);
-}
-
-#endif /* WORDS_BIGENDIAN */
-
-#else /* !RUNTIME_ENDIAN */
-
-#define BYTESWAP(x) _byteswap(sc->littleEndian, x)
-#define BYTESWAP64(x) _byteswap64(sc->littleEndian, x)
-
-#define _BYTESWAP(x) ((ROTR((x), 8) & 0xff00ff00L) | \
-		      (ROTL((x), 8) & 0x00ff00ffL))
-#define _BYTESWAP64(x) __byteswap64(x)
-
-static 
-#ifdef G_HAVE_INLINE 
-inline 
-#endif 
-uint64_t __byteswap64(uint64_t x)
-{
-  uint32_t a = x >> 32;
-  uint32_t b = (uint32_t) x;
-  return ((uint64_t) _BYTESWAP(b) << 32) | (uint64_t) _BYTESWAP(a);
-}
-
-static 
-#ifdef G_HAVE_INLINE
-inline 
-#endif
-uint32_t _byteswap(int littleEndian, uint32_t x)
-{
-  if (!littleEndian)
-    return x;
-  else
-    return _BYTESWAP(x);
-}
-
-static 
-#ifdef G_HAVE_INLINE
-inline 
-#endif
-uint64_t _byteswap64(int littleEndian, uint64_t x)
-{
-  if (!littleEndian)
-    return x;
-  else
-    return _BYTESWAP64(x);
-}
-
-static 
-#ifdef G_HAVE_INLINE
-inline 
-#endif
-void setEndian(int *littleEndianp)
-{
-  union {
-    uint32_t w;
-    uint8_t b[4];
-  } endian;
-
-  endian.w = 1L;
-  *littleEndianp = endian.b[0] != 0;
-}
-
-#endif /* !RUNTIME_ENDIAN */
-
-static const uint8_t padding[64] = {
-  0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-void
-SHA1Init (SHA1Context *sc)
-{
-#ifdef RUNTIME_ENDIAN
-  setEndian (&sc->littleEndian);
-#endif /* RUNTIME_ENDIAN */
-
-  sc->totalLength = 0LL;
-  sc->hash[0] = 0x67452301L;
-  sc->hash[1] = 0xefcdab89L;
-  sc->hash[2] = 0x98badcfeL;
-  sc->hash[3] = 0x10325476L;
-  sc->hash[4] = 0xc3d2e1f0L;
-  sc->bufferLength = 0L;
-}
-
-static void
-burnStack (int size)
-{
-  char buf[128];
-
-  memset (buf, 0, sizeof (buf));
-  size -= sizeof (buf);
-  if (size > 0)
-    burnStack (size);
-}
-
-static void
-SHA1Guts (SHA1Context *sc, const uint32_t *cbuf)
-{
-  uint32_t buf[80];
-  uint32_t *W, *W3, *W8, *W14, *W16;
-  uint32_t a, b, c, d, e, temp;
-  int i;
-
-  W = buf;
-
-  for (i = 15; i >= 0; i--) {
-    *(W++) = BYTESWAP(*cbuf);
-    cbuf++;
-  }
-
-  W16 = &buf[0];
-  W14 = &buf[2];
-  W8 = &buf[8];
-  W3 = &buf[13];
-
-  for (i = 63; i >= 0; i--) {
-    *W = *(W3++) ^ *(W8++) ^ *(W14++) ^ *(W16++);
-    *W = ROTL(*W, 1);
-    W++;
-  }
-
-  a = sc->hash[0];
-  b = sc->hash[1];
-  c = sc->hash[2];
-  d = sc->hash[3];
-  e = sc->hash[4];
-
-  W = buf;
-
-#ifndef SHA1_UNROLL
-#define SHA1_UNROLL 20
-#endif /* !SHA1_UNROLL */
-
-#if SHA1_UNROLL == 1
-  for (i = 19; i >= 0; i--)
-    DO_ROUND(F_0_19, K_0_19);
-
-  for (i = 19; i >= 0; i--)
-    DO_ROUND(F_20_39, K_20_39);
-
-  for (i = 19; i >= 0; i--)
-    DO_ROUND(F_40_59, K_40_59);
-
-  for (i = 19; i >= 0; i--)
-    DO_ROUND(F_60_79, K_60_79);
-#elif SHA1_UNROLL == 2
-  for (i = 9; i >= 0; i--) {
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-  }
-
-  for (i = 9; i >= 0; i--) {
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-  }
-
-  for (i = 9; i >= 0; i--) {
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-  }
-
-  for (i = 9; i >= 0; i--) {
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-  }
-#elif SHA1_UNROLL == 4
-  for (i = 4; i >= 0; i--) {
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-  }
-
-  for (i = 4; i >= 0; i--) {
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-  }
-
-  for (i = 4; i >= 0; i--) {
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-  }
-
-  for (i = 4; i >= 0; i--) {
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-  }
-#elif SHA1_UNROLL == 5
-  for (i = 3; i >= 0; i--) {
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-  }
-
-  for (i = 3; i >= 0; i--) {
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-  }
-
-  for (i = 3; i >= 0; i--) {
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-  }
-
-  for (i = 3; i >= 0; i--) {
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-  }
-#elif SHA1_UNROLL == 10
-  for (i = 1; i >= 0; i--) {
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-    DO_ROUND(F_0_19, K_0_19);
-  }
-
-  for (i = 1; i >= 0; i--) {
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-    DO_ROUND(F_20_39, K_20_39);
-  }
-
-  for (i = 1; i >= 0; i--) {
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-    DO_ROUND(F_40_59, K_40_59);
-  }
-
-  for (i = 1; i >= 0; i--) {
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-    DO_ROUND(F_60_79, K_60_79);
-  }
-#elif SHA1_UNROLL == 20
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-  DO_ROUND(F_0_19, K_0_19);
-
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-  DO_ROUND(F_20_39, K_20_39);
-
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-  DO_ROUND(F_40_59, K_40_59);
-
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-  DO_ROUND(F_60_79, K_60_79);
-#else /* SHA1_UNROLL */
-#error SHA1_UNROLL must be 1, 2, 4, 5, 10 or 20!
-#endif
-
-  sc->hash[0] += a;
-  sc->hash[1] += b;
-  sc->hash[2] += c;
-  sc->hash[3] += d;
-  sc->hash[4] += e;
-}
-
-void
-SHA1Update (SHA1Context *sc, const void *vdata, uint32_t len)
-{
-  const uint8_t *data = vdata;
-  uint32_t bufferBytesLeft;
-  uint32_t bytesToCopy;
-  int needBurn = 0;
-
-#ifdef SHA1_FAST_COPY
-  if (sc->bufferLength) {
-    bufferBytesLeft = 64L - sc->bufferLength;
-
-    bytesToCopy = bufferBytesLeft;
-    if (bytesToCopy > len)
-      bytesToCopy = len;
-
-    memcpy (&sc->buffer.bytes[sc->bufferLength], data, bytesToCopy);
-
-    sc->totalLength += bytesToCopy * 8L;
-
-    sc->bufferLength += bytesToCopy;
-    data += bytesToCopy;
-    len -= bytesToCopy;
-
-    if (sc->bufferLength == 64L) {
-      SHA1Guts (sc, sc->buffer.words);
-      needBurn = 1;
-      sc->bufferLength = 0L;
-    }
-  }
-
-  while (len > 63) {
-    sc->totalLength += 512L;
-
-    SHA1Guts (sc, data);
-    needBurn = 1;
-
-    data += 64L;
-    len -= 64L;
-  }
-
-  if (len) {
-    memcpy (&sc->buffer.bytes[sc->bufferLength], data, len);
-
-    sc->totalLength += len * 8L;
-
-    sc->bufferLength += len;
-  }
-#else /* SHA1_FAST_COPY */
-  while (len) {
-    bufferBytesLeft = 64L - sc->bufferLength;
-
-    bytesToCopy = bufferBytesLeft;
-    if (bytesToCopy > len)
-      bytesToCopy = len;
-
-    memcpy (&sc->buffer.bytes[sc->bufferLength], data, bytesToCopy);
-
-    sc->totalLength += bytesToCopy * 8L;
-
-    sc->bufferLength += bytesToCopy;
-    data += bytesToCopy;
-    len -= bytesToCopy;
-
-    if (sc->bufferLength == 64L) {
-      SHA1Guts (sc, sc->buffer.words);
-      needBurn = 1;
-      sc->bufferLength = 0L;
-    }
-  }
-#endif /* SHA1_FAST_COPY */
-
-  if (needBurn)
-    burnStack (sizeof (uint32_t[86]) + sizeof (uint32_t *[5]) + sizeof (int));
-}
-
-void
-SHA1Final (SHA1Context *sc, uint8_t hash[SHA1_HASH_SIZE])
-{
-  uint32_t bytesToPad;
-  uint64_t lengthPad;
-  int i;
-
-  bytesToPad = 120L - sc->bufferLength;
-  if (bytesToPad > 64L)
-    bytesToPad -= 64L;
-
-  lengthPad = BYTESWAP64(sc->totalLength);
-
-  SHA1Update (sc, padding, bytesToPad);
-  SHA1Update (sc, &lengthPad, 8L);
-
-  if (hash) {
-    for (i = 0; i < SHA1_HASH_WORDS; i++) {
-#ifdef SHA1_FAST_COPY
-      *((uint32_t *) hash) = BYTESWAP(sc->hash[i]);
-#else /* SHA1_FAST_COPY */
-      hash[0] = (uint8_t) (sc->hash[i] >> 24);
-      hash[1] = (uint8_t) (sc->hash[i] >> 16);
-      hash[2] = (uint8_t) (sc->hash[i] >> 8);
-      hash[3] = (uint8_t) sc->hash[i];
-#endif /* SHA1_FAST_COPY */
-      hash += 4;
-    }
-  }
-}
-
-#ifdef SHA1_TEST
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int
-main (int argc, char *argv[])
-{
-  SHA1Context foo;
-  uint8_t hash[SHA1_HASH_SIZE];
-  char buf[1000];
-  int i;
-
-  SHA1Init (&foo);
-  SHA1Update (&foo, "abc", 3);
-  SHA1Final (&foo, hash);
-
-  for (i = 0; i < SHA1_HASH_SIZE;) {
-    printf ("%02x", hash[i++]);
-    if (!(i % 4))
-      printf (" ");
-  }
-  printf ("\n");
-
-  SHA1Init (&foo);
-  SHA1Update (&foo,
-		"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-		56);
-  SHA1Final (&foo, hash);
-
-  for (i = 0; i < SHA1_HASH_SIZE;) {
-    printf ("%02x", hash[i++]);
-    if (!(i % 4))
-      printf (" ");
-  }
-  printf ("\n");
-
-  SHA1Init (&foo);
-  memset (buf, 'a', sizeof (buf));
-  for (i = 0; i < 1000; i++)
-    SHA1Update (&foo, buf, sizeof (buf));
-  SHA1Final (&foo, hash);
-
-  for (i = 0; i < SHA1_HASH_SIZE;) {
-    printf ("%02x", hash[i++]);
-    if (!(i % 4))
-      printf (" ");
-  }
-  printf ("\n");
-
-  exit (0);
-}
-
-#endif /* SHA1_TEST */
-
-
--- a/telepathygabble/src/telepathy-errors-enumtypes.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
- * telepathy-errors-enumtypes.c - Source for Gabble service discovery
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * -- LET'S DISCO!!!  \o/ \o_ _o/ /\o/\ _/o/- -\o\_ --
- */
-/* Generated data (by glib-mkenums) */
-//vinod: changed system path to local
-#include "telepathy-errors.h"
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(etype,gabble_enum_types,GType)
-	#define etype (*GET_WSD_VAR_NAME(etype,gabble_enum_types,s)())
-
-#endif
-
-/* enumerations from "telepathy-errors.h" */
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-GType
-telepathy_errors_get_type (void)
-{
-
-#ifndef EMULATOR
-  static GType etype = 0;
-#endif
-  
-  if (etype == 0) {
-    static const GEnumValue values[] = {
-      { ChannelBanned, "ChannelBanned", "ChannelBanned" },
-      { ChannelFull, "ChannelFull", "ChannelFull" },
-      { ChannelInviteOnly, "ChannelInviteOnly", "ChannelInviteOnly" },
-      { Disconnected, "Disconnected", "Disconnected" },
-      { InvalidArgument, "InvalidArgument", "InvalidArgument" },
-      { InvalidHandle, "InvalidHandle", "InvalidHandle" },
-      { NetworkError, "NetworkError", "NetworkError" },
-      { NotAvailable, "NotAvailable", "NotAvailable" },
-      { NotImplemented, "NotImplemented", "NotImplemented" },
-      { PermissionDenied, "PermissionDenied", "PermissionDenied" },
-      { 0, NULL, NULL }
-    };
-    etype = g_enum_register_static ("TelepathyErrors", values);
-  }
-  return etype;
-}
-
-/* Generated data ends here */
-
--- a/telepathygabble/src/telepathy-errors.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * telepathy-errors.c - Source for D-Bus error types used in telepathy
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <glib.h>
-#include "telepathy-errors.h"
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(quark,gabble_errors,GQuark)
-	#define quark (*GET_WSD_VAR_NAME(quark,gabble_errors, s)())		
-	
-#endif
-
-#ifdef SYMBIAN
-EXPORT_C
-#endif
-GQuark
-telepathy_errors_quark (void)
-{
-#ifndef EMULATOR
-  static GQuark quark = 0;
-#endif
-  
-  if (!quark)
-    quark = g_quark_from_static_string ("telepathy_errors");
-  return quark;
-}
--- a/telepathygabble/src/telepathy-helpers.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-/*
- * telepathy-helpers.c - Source for some Telepathy D-Bus helper functions
- * Copyright (C) 2005 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <stdlib.h>
-#include <dbus/dbus-glib.h>
-#include "telepathy-helpers.h"
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(busCon,gabble_helpers,DBusGConnection*)
-	#define busCon (*GET_WSD_VAR_NAME(busCon,gabble_helpers, s)())
-	
-	GET_STATIC_VAR_FROM_TLS(bus_proxy,gabble_helpers,DBusGProxy*)
-	#define bus_proxy (*GET_WSD_VAR_NAME(bus_proxy,gabble_helpers, s)())	
-	
-#endif
-	
-
-DBusGConnection *
-tp_get_bus ()
-{
-#ifndef EMULATOR
-  static DBusGConnection *busCon = NULL;
-#endif
-
-  if (busCon == NULL)
-    {
-      GError *error = NULL;
-
-      busCon = dbus_g_bus_get (DBUS_BUS_SESSION/*DBUS_BUS_STARTER*/, &error);
-
-      if (busCon == NULL)
-        {
-          g_warning ("Failed to connect to starter bus: %s", error->message);
-          exit (1);
-        }
-    }
-
-  return busCon;
-}
-
-DBusGProxy *
-tp_get_bus_proxy ()
-{
-#ifndef EMULATOR
-  static DBusGProxy *bus_proxy = NULL;
-#endif
-
-  if (bus_proxy == NULL)
-    {
-      DBusGConnection *bus = tp_get_bus ();
-
-      bus_proxy = dbus_g_proxy_new_for_name (bus,
-                                            "org.freedesktop.DBus",
-                                            "/org/freedesktop/DBus",
-                                            "org.freedesktop.DBus");
-
-      if (bus_proxy == NULL)
-        g_error ("Failed to get proxy object for bus.");
-    }
-
-  return bus_proxy;
-}
-
-static void _list_builder (gpointer key, gpointer value, gpointer data);
-
-GSList *
-tp_hash_to_key_value_list (GHashTable *hash)
-{
-  GSList *ret = NULL;
-
-  g_hash_table_foreach (hash, _list_builder, &ret);
-
-  return ret;
-}
-
-void
-tp_key_value_list_free (GSList *list)
-{
-  GSList *iter;
-
-  for (iter = list; iter; iter = g_slist_next(iter))
-  {
-    g_free (iter->data);
-  }
-
-  g_slist_free (list);
-}
-
-static void _list_builder (gpointer key, gpointer value, gpointer data)
-{
-  GSList **list = (GSList **) data;
-  TpKeyValue *kv = g_new0 (TpKeyValue, 1);
-
-  kv->key = key;
-  kv->value = value;
-
-  *list = g_slist_prepend (*list, kv);
-}
-
--- a/telepathygabble/src/text-mixin-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-/*
- * text-mixin-signals-marshal.c 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:UINT,UINT,UINT,UINT,UINT,STRING (text-mixin-signals-marshal.list:1) */
-void
-text_mixin_marshal_VOID__UINT_UINT_UINT_UINT_UINT_STRING (GClosure     *closure,
-                                                          GValue       *return_value,
-                                                          guint         n_param_values,
-                                                          const GValue *param_values,
-                                                          gpointer      invocation_hint,
-                                                          gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT_UINT_UINT_STRING) (gpointer     data1,
-                                                                      guint        arg_1,
-                                                                      guint        arg_2,
-                                                                      guint        arg_3,
-                                                                      guint        arg_4,
-                                                                      guint        arg_5,
-                                                                      gpointer     arg_6,
-                                                                      gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT_UINT_UINT_UINT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 7);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT_UINT_UINT_UINT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_uint (param_values + 3),
-            g_marshal_value_peek_uint (param_values + 4),
-            g_marshal_value_peek_uint (param_values + 5),
-            g_marshal_value_peek_string (param_values + 6),
-            data2);
-}
-
-/* VOID:UINT,UINT,UINT,STRING (text-mixin-signals-marshal.list:2) */
-void
-text_mixin_marshal_VOID__UINT_UINT_UINT_STRING (GClosure     *closure,
-                                                GValue       *return_value,
-                                                guint         n_param_values,
-                                                const GValue *param_values,
-                                                gpointer      invocation_hint,
-                                                gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT_STRING) (gpointer     data1,
-                                                            guint        arg_1,
-                                                            guint        arg_2,
-                                                            guint        arg_3,
-                                                            gpointer     arg_4,
-                                                            gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT_UINT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 5);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT_UINT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_uint (param_values + 3),
-            g_marshal_value_peek_string (param_values + 4),
-            data2);
-}
-
-/* VOID:UINT,UINT,STRING (text-mixin-signals-marshal.list:3) */
-void
-text_mixin_marshal_VOID__UINT_UINT_STRING (GClosure     *closure,
-                                           GValue       *return_value,
-                                           guint         n_param_values,
-                                           const GValue *param_values,
-                                           gpointer      invocation_hint,
-                                           gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__UINT_UINT_STRING) (gpointer     data1,
-                                                       guint        arg_1,
-                                                       guint        arg_2,
-                                                       gpointer     arg_3,
-                                                       gpointer     data2);
-  register GMarshalFunc_VOID__UINT_UINT_STRING callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 4);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__UINT_UINT_STRING) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_uint (param_values + 1),
-            g_marshal_value_peek_uint (param_values + 2),
-            g_marshal_value_peek_string (param_values + 3),
-            data2);
-}
-
--- a/telepathygabble/src/text-mixin.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,819 +0,0 @@
-/*
- * text-mixin.c - Source for GabbleTextMixin
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Ole Andre Vadla Ravnaas <ole.andre.ravnaas@collabora.co.uk>
- *   @author Robert McQueen <robert.mcqueen@collabora.co.uk>
- *   @author Senko Rasic <senko@senko.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include "loudmouth/loudmouth.h"
-#include <dbus/dbus-glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#include "telepathy-constants.h"
-#include "telepathy-errors.h"
-
-
-#include "debug.h"
-#include "gabble-connection.h"
-#include "namespaces.h"
-#include "roster.h"
-#include "util.h"
-
-#include "text-mixin.h"
-#include "text-mixin-signals-marshal.h"
-
-#include "gabble_enums.h"
-
-#define _GNU_SOURCE /* Needed for strptime (_XOPEN_SOURCE can also be used). */
-#define DEBUG_FLAG GABBLE_DEBUG_IM
-#define TP_TYPE_PENDING_MESSAGE_STRUCT (dbus_g_type_get_struct ("GValueArray", \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_UINT, \
-      G_TYPE_STRING, \
-      G_TYPE_INVALID))
-
-/* allocator */
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(offset_quark1,gabble_txt_mixin,GQuark)
-	#define offset_quark1 (*GET_WSD_VAR_NAME(offset_quark1,gabble_txt_mixin, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(offset_quark,gabble_txt_mixin,GQuark)
-	#define offset_quark (*GET_WSD_VAR_NAME(offset_quark,gabble_txt_mixin, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(alloc1,gabble_txt_mixin,GabbleAllocator)
-	#define alloc1 (*GET_WSD_VAR_NAME(alloc1,gabble_txt_mixin, s)())		
-	
-#endif
-
-/*
-Moved to gabble_enums.h
-typedef struct _GabbleAllocator GabbleAllocator;
-struct _GabbleAllocator
-{
-  gulong size;
-  guint limit;
-  guint count;
-};*/
-
-
-
-#define ga_new0(alloc, type) \
-    ((type *) gabble_allocator_alloc0 (alloc))
-
-static void
-gabble_allocator_init (GabbleAllocator *alloc, gulong size, guint limit)
-{
-  g_assert (alloc != NULL);
-  g_assert (size > 0);
-  g_assert (limit > 0);
-
-  alloc->size = size;
-  alloc->limit = limit;
-}
-
-static gpointer gabble_allocator_alloc0 (GabbleAllocator *alloc)
-{
-  gpointer ret;
-
-  g_assert (alloc != NULL);
-  g_assert (alloc->count <= alloc->limit);
-
-  if (alloc->count == alloc->limit)
-    {
-      ret = NULL;
-    }
-  else
-    {
-      ret = g_malloc0 (alloc->size);
-      alloc->count++;
-    }
-
-  return ret;
-}
-
-static void gabble_allocator_free (GabbleAllocator *alloc, gpointer thing)
-{
-  g_assert (alloc != NULL);
-  g_assert (thing != NULL);
-
-  g_free (thing);
-  alloc->count--;
-}
-
-/* pending message */
-#define MAX_PENDING_MESSAGES 256
-#define MAX_MESSAGE_SIZE 1024 - 1
-
-typedef struct _GabblePendingMessage GabblePendingMessage;
-struct _GabblePendingMessage
-{
-  guint id;
-  time_t timestamp;
-  GabbleHandle sender;
-  TpChannelTextMessageType type;
-  char *text;
-  guint flags;
-};
-
-/**
- * gabble_text_mixin_class_get_offset_quark:
- *
- * Returns: the quark used for storing mixin offset on a GObjectClass
- */
-GQuark
-gabble_text_mixin_class_get_offset_quark ()
-{
-#ifndef EMULATOR  
-  static GQuark offset_quark1 = 0;
-#endif
-  
-  if (!offset_quark1)
-    offset_quark1 = g_quark_from_static_string("TextMixinClassOffsetQuark");
-  return offset_quark1;
-}
-
-/**
- * gabble_text_mixin_get_offset_quark:
- *
- * Returns: the quark used for storing mixin offset on a GObject
- */
-GQuark
-gabble_text_mixin_get_offset_quark ()
-{
-#ifndef EMULATOR  
-  static GQuark offset_quark = 0;
-#endif
-  
-  if (!offset_quark)
-    offset_quark = g_quark_from_static_string("TextMixinOffsetQuark");
-  return offset_quark;
-}
-
-
-/* GabbleTextMixin */
-void
-gabble_text_mixin_class_init (GObjectClass *obj_cls, glong offset)
-{
-  GabbleTextMixinClass *mixin_cls;
-
-  g_assert (G_IS_OBJECT_CLASS (obj_cls));
-
-  g_type_set_qdata (G_OBJECT_CLASS_TYPE (obj_cls),
-      GABBLE_TEXT_MIXIN_CLASS_OFFSET_QUARK,
-      GINT_TO_POINTER (offset));
-
-  mixin_cls = GABBLE_TEXT_MIXIN_CLASS (obj_cls);
-
-  mixin_cls->lost_message_signal_id = g_signal_new ("lost-message",
-                G_OBJECT_CLASS_TYPE (obj_cls),
-                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                0,
-                NULL, NULL,
-                g_cclosure_marshal_VOID__VOID,
-                G_TYPE_NONE, 0);
-
-  mixin_cls->received_signal_id = g_signal_new ("received",
-                G_OBJECT_CLASS_TYPE (obj_cls),
-                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                0,
-                NULL, NULL,
-                text_mixin_marshal_VOID__UINT_UINT_UINT_UINT_UINT_STRING,
-                G_TYPE_NONE, 6, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING);
-
-  mixin_cls->send_error_signal_id = g_signal_new ("send-error",
-                G_OBJECT_CLASS_TYPE (obj_cls),
-                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                0,
-                NULL, NULL,
-                text_mixin_marshal_VOID__UINT_UINT_UINT_STRING,
-                G_TYPE_NONE, 4, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING);
-
-  mixin_cls->sent_signal_id = g_signal_new ("sent",
-                G_OBJECT_CLASS_TYPE (obj_cls),
-                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                0,
-                NULL, NULL,
-                text_mixin_marshal_VOID__UINT_UINT_STRING,
-                G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING);
-}
-
-void
-gabble_text_mixin_init (GObject *obj,
-                        glong offset,
-                        GabbleHandleRepo *handle_repo,
-                        gboolean send_nick)
-{
-  GabbleTextMixin *mixin;
-
-  g_assert (G_IS_OBJECT (obj));
-
-  g_type_set_qdata (G_OBJECT_TYPE (obj),
-                    GABBLE_TEXT_MIXIN_OFFSET_QUARK,
-                    GINT_TO_POINTER (offset));
-
-  mixin = GABBLE_TEXT_MIXIN (obj);
-
-  mixin->pending = g_queue_new ();
-  mixin->handle_repo = handle_repo;
-  mixin->recv_id = 0;
-  mixin->msg_types = g_array_sized_new (FALSE, FALSE, sizeof (guint), 4);
-
-  mixin->message_lost = FALSE;
-}
-
-void
-gabble_text_mixin_set_message_types (GObject *obj,
-                                     ...)
-{
-  GabbleTextMixin *mixin = GABBLE_TEXT_MIXIN (obj);
-  va_list args;
-  guint type;
-
-  va_start (args, obj);
-
-  while ((type = va_arg (args, guint)) != G_MAXUINT)
-    g_array_append_val (mixin->msg_types, type);
-
-  va_end (args);
-}
-
-static void _gabble_pending_free (GabblePendingMessage *msg);
-static GabbleAllocator * _gabble_pending_get_alloc ();
-
-void
-gabble_text_mixin_finalize (GObject *obj)
-{
-  GabbleTextMixin *mixin = GABBLE_TEXT_MIXIN (obj);
-  GabblePendingMessage *msg;
-
-  /* free any data held directly by the object here */
-
-  msg = g_queue_pop_head(mixin->pending);
-  while (msg)
-    {
-      gabble_handle_unref (mixin->handle_repo, TP_HANDLE_TYPE_CONTACT, msg->sender);
-      _gabble_pending_free (msg);
-      msg = g_queue_pop_head(mixin->pending);
-    }
-
-  g_queue_free (mixin->pending);
-
-  g_array_free (mixin->msg_types, TRUE);
-}
-
-/**
- * _gabble_pending_get_alloc
- *
- * Returns a GabbleAllocator for creating up to 256 pending messages, but no
- * more.
- */
-static GabbleAllocator *
-_gabble_pending_get_alloc ()
-{
-
-#ifndef EMULATOR
-  static GabbleAllocator alloc1 = { 0, };
-#endif
-
-  if (0 == alloc1.size)
-    gabble_allocator_init (&alloc1, sizeof(GabblePendingMessage), MAX_PENDING_MESSAGES);
-
-  return &alloc1;
-}
-
-#define _gabble_pending_new0() \
-  (ga_new0 (_gabble_pending_get_alloc (), GabblePendingMessage))
-
-/**
- * _gabble_pending_free
- *
- * Free up a GabblePendingMessage struct.
- */
-static void _gabble_pending_free (GabblePendingMessage *msg)
-{
-  g_free (msg->text);
-  gabble_allocator_free (_gabble_pending_get_alloc (), msg);
-}
-
-/**
- * _gabble_text_mixin_receive
- *
- */
-gboolean gabble_text_mixin_receive (GObject *obj,
-                                     TpChannelTextMessageType type,
-                                     GabbleHandle sender,
-                                     time_t timestamp,
-                                     const char *text)
-{
-  GabbleTextMixin *mixin = GABBLE_TEXT_MIXIN (obj);
-  GabbleTextMixinClass *mixin_cls = GABBLE_TEXT_MIXIN_CLASS (G_OBJECT_GET_CLASS (obj));
-
-  gchar *end;
-  GabblePendingMessage *msg;
-  gsize len;
-
-  msg = _gabble_pending_new0 ();
-
-  if (msg == NULL)
-    {
-      gabble_debug (DEBUG_FLAG, "no more pending messages available, giving up");
-
-      if (!mixin->message_lost)
-        {
-          g_signal_emit (obj, mixin_cls->lost_message_signal_id, 0);
-          mixin->message_lost = TRUE;
-        }
-
-      return FALSE;
-    }
-
-  len = strlen (text);
-
-  if (len > MAX_MESSAGE_SIZE)
-    {
-      gabble_debug (DEBUG_FLAG, "message exceeds maximum size, truncating");
-
-      msg->flags |= TP_CHANNEL_TEXT_MESSAGE_FLAG_TRUNCATED;
-
-      end = g_utf8_find_prev_char (text, text+MAX_MESSAGE_SIZE);
-      if (end)
-        len = end-text;
-      else
-        len = 0;
-    }
-
-  msg->text = g_try_malloc (len + 1);
-
-  if (msg->text == NULL)
-    {
-      gabble_debug (DEBUG_FLAG, "unable to allocate message, giving up");
-
-      if (!mixin->message_lost)
-        {
-          g_signal_emit (obj, mixin_cls->lost_message_signal_id, 0);
-          mixin->message_lost = TRUE;
-        }
-
-      _gabble_pending_free (msg);
-
-      return FALSE;
-    }
-
-  g_strlcpy (msg->text, text, len + 1);
-
-  msg->id = mixin->recv_id++;
-  msg->timestamp = timestamp;
-  msg->sender = sender;
-  msg->type = type;
-
-  gabble_handle_ref (mixin->handle_repo, TP_HANDLE_TYPE_CONTACT, msg->sender);
-  g_queue_push_tail (mixin->pending, msg);
-
-  g_signal_emit (obj, mixin_cls->received_signal_id, 0,
-                 msg->id,
-                 msg->timestamp,
-                 msg->sender,
-                 msg->type,
-                 msg->flags,
-                 msg->text);
-
-  gabble_debug (DEBUG_FLAG, "queued message %u", msg->id);
-
-  mixin->message_lost = FALSE;
-
-  return TRUE;
-}
-
-static gint
-compare_pending_message (gconstpointer haystack,
-                         gconstpointer needle)
-{
-  GabblePendingMessage *msg = (GabblePendingMessage *) haystack;
-  guint id = GPOINTER_TO_INT (needle);
-
-  return (msg->id != id);
-}
-
-/**
- * gabble_text_mixin_acknowledge_pending_messages
- *
- * Implements D-Bus method AcknowledgePendingMessages
- * on interface org.freedesktop.Telepathy.Channel.Type.Text
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean gabble_text_mixin_acknowledge_pending_messages (GObject *obj, const GArray * ids, GError **error)
-{
-  GabbleTextMixin *mixin = GABBLE_TEXT_MIXIN (obj);
-  GList **nodes;
-  GabblePendingMessage *msg;
-  guint i;
-
-  nodes = g_new(GList *, ids->len);
-
-  for (i = 0; i < ids->len; i++)
-    {
-      guint id = g_array_index(ids, guint, i);
-
-      nodes[i] = g_queue_find_custom (mixin->pending,
-                                      GINT_TO_POINTER (id),
-                                      compare_pending_message);
-
-      if (nodes[i] == NULL)
-        {
-          gabble_debug (DEBUG_FLAG, "invalid message id %u", id);
-
-          g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-              "invalid message id %u", id);
-
-          g_free(nodes);
-          return FALSE;
-        }
-    }
-
-  for (i = 0; i < ids->len; i++)
-    {
-      msg = (GabblePendingMessage *) nodes[i]->data;
-
-      gabble_debug (DEBUG_FLAG, "acknowleding message id %u", msg->id);
-
-      g_queue_remove (mixin->pending, msg);
-
-      gabble_handle_unref (mixin->handle_repo, TP_HANDLE_TYPE_CONTACT, msg->sender);
-      _gabble_pending_free (msg);
-    }
-
-  g_free(nodes);
-  return TRUE;
-}
-
-/**
- * gabble_text_mixin_list_pending_messages
- *
- * Implements D-Bus method ListPendingMessages
- * on interface org.freedesktop.Telepathy.Channel.Type.Text
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean gabble_text_mixin_list_pending_messages (GObject *obj, gboolean clear, GPtrArray ** ret, GError **error)
-{
-  GabbleTextMixin *mixin = GABBLE_TEXT_MIXIN (obj);
-  guint count;
-  GPtrArray *messages;
-  GList *cur;
-
-  count = g_queue_get_length (mixin->pending);
-  messages = g_ptr_array_sized_new (count);
-
-  for (cur = (clear ? g_queue_pop_head_link(mixin->pending)
-                    : g_queue_peek_head_link(mixin->pending));
-       cur != NULL;
-       cur = (clear ? g_queue_pop_head_link(mixin->pending)
-                    : cur->next))
-    {
-      GabblePendingMessage *msg = (GabblePendingMessage *) cur->data;
-      GValue val = { 0, };
-
-      g_value_init (&val, TP_TYPE_PENDING_MESSAGE_STRUCT);
-      g_value_take_boxed (&val,
-          dbus_g_type_specialized_construct (TP_TYPE_PENDING_MESSAGE_STRUCT));
-      dbus_g_type_struct_set (&val,
-          0, msg->id,
-          1, msg->timestamp,
-          2, msg->sender,
-          3, msg->type,
-          4, msg->flags,
-          5, msg->text,
-          G_MAXUINT);
-
-      g_ptr_array_add (messages, g_value_get_boxed (&val));
-    }
-
-  *ret = messages;
-
-  return TRUE;
-}
-
-/**
- * gabble_text_mixin_send
- *
- * Implements D-Bus method Send
- * on interface org.freedesktop.Telepathy.Channel.Type.Text
- *
- * @error: Used to return a pointer to a GError detailing any error
- *         that occurred, D-Bus will throw the error only if this
- *         function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-gboolean gabble_text_mixin_send (GObject *obj, guint type, guint subtype,
-                                 const char *recipient, const gchar *text,
-                                 GabbleConnection *conn, gboolean emit_signal,
-                                 GError **error)
-{
-  GabbleTextMixin *mixin = GABBLE_TEXT_MIXIN (obj);
-  LmMessage *msg;
-  gboolean result;
-  time_t timestamp;
-
-  if (type > TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE)
-    {
-      gabble_debug (DEBUG_FLAG, "invalid message type %u", type);
-
-      g_set_error (error, TELEPATHY_ERRORS, InvalidArgument,
-          "invalid message type: %u", type);
-
-      return FALSE;
-    }
-
-  if (!subtype)
-    {
-      switch (type)
-        {
-        case TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL:
-        case TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION:
-          subtype = LM_MESSAGE_SUB_TYPE_CHAT;
-          break;
-        case TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE:
-          subtype = LM_MESSAGE_SUB_TYPE_NORMAL;
-          break;
-        }
-    }
-
-  msg = lm_message_new_with_sub_type (recipient, LM_MESSAGE_TYPE_MESSAGE, subtype);
-
-  if (mixin->send_nick)
-    {
-      lm_message_node_add_own_nick (msg->node, conn);
-      mixin->send_nick = FALSE;
-    }
-
-  if (type == TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION)
-    {
-      gchar *tmp;
-      tmp = g_strconcat ("/me ", text, NULL);
-      lm_message_node_add_child (msg->node, "body", tmp);
-      g_free (tmp);
-    }
-  else
-    {
-      lm_message_node_add_child (msg->node, "body", text);
-    }
-
-  result = _gabble_connection_send (conn, msg, error);
-  lm_message_unref (msg);
-
-  if (!result)
-    return FALSE;
-
-  if (emit_signal)
-    {
-      timestamp = time (NULL);
-
-      gabble_text_mixin_emit_sent (obj, timestamp, type, text);
-    }
-
-  return TRUE;
-}
-
-void
-gabble_text_mixin_emit_sent (GObject *obj,
-                             time_t timestamp,
-                             guint type,
-                             const char *text)
-{
-  GabbleTextMixinClass *mixin_cls = GABBLE_TEXT_MIXIN_CLASS (G_OBJECT_GET_CLASS
-      (obj));
-
-  g_signal_emit (obj, mixin_cls->sent_signal_id, 0,
-                 timestamp,
-                 type,
-                 text);
-}
-
-gboolean
-gabble_text_mixin_get_message_types (GObject *obj, GArray **ret, GError **error)
-{
-  GabbleTextMixin *mixin = GABBLE_TEXT_MIXIN (obj);
-  guint i;
-
-  *ret = g_array_sized_new (FALSE, FALSE, sizeof (guint),
-                            mixin->msg_types->len);
-
-  for (i = 0; i < mixin->msg_types->len; i++)
-    {
-      g_array_append_val (*ret, g_array_index (mixin->msg_types, guint, i));
-    }
-
-  return TRUE;
-}
-
-
-void
-gabble_text_mixin_clear (GObject *obj)
-{
-  GabbleTextMixin *mixin = GABBLE_TEXT_MIXIN (obj);
-  GabblePendingMessage *msg;
-
-  msg = g_queue_pop_head(mixin->pending);
-  while (msg)
-    {
-      gabble_handle_unref (mixin->handle_repo, TP_HANDLE_TYPE_CONTACT, msg->sender);
-      _gabble_pending_free (msg);
-      msg = g_queue_pop_head(mixin->pending);
-    }
-}
-
-gboolean
-gabble_text_mixin_parse_incoming_message (LmMessage *message,
-                        const gchar **from,
-                        time_t *stamp,
-                        TpChannelTextMessageType *msgtype,
-                        const gchar **body,
-                        const gchar **body_offset,
-                        GabbleTextMixinSendError *send_error)
-{
-  const gchar *type;
-  LmMessageNode *node;
-
-  *send_error = CHANNEL_TEXT_SEND_NO_ERROR;
-
-  if (lm_message_get_sub_type (message) == LM_MESSAGE_SUB_TYPE_ERROR)
-    {
-      LmMessageNode *error_node;
-
-      error_node = lm_message_node_get_child (message->node, "error");
-      if (error_node)
-        {
-          GabbleXmppError err = gabble_xmpp_error_from_node (error_node);
-          gabble_debug (DEBUG_FLAG, "got xmpp error: %s: %s", gabble_xmpp_error_string (err),
-                 gabble_xmpp_error_description (err));
-
-          /* these are based on descriptions of errors, and some testing */
-          switch (err)
-            {
-              case XMPP_ERROR_SERVICE_UNAVAILABLE:
-              case XMPP_ERROR_RECIPIENT_UNAVAILABLE:
-                *send_error = CHANNEL_TEXT_SEND_ERROR_OFFLINE;
-                break;
-
-              case XMPP_ERROR_ITEM_NOT_FOUND:
-              case XMPP_ERROR_JID_MALFORMED:
-              case XMPP_ERROR_REMOTE_SERVER_TIMEOUT:
-                *send_error = CHANNEL_TEXT_SEND_ERROR_INVALID_CONTACT;
-                break;
-
-              case XMPP_ERROR_FORBIDDEN:
-                *send_error = CHANNEL_TEXT_SEND_ERROR_PERMISSION_DENIED;
-                break;
-
-              case XMPP_ERROR_RESOURCE_CONSTRAINT:
-                *send_error = CHANNEL_TEXT_SEND_ERROR_TOO_LONG;
-                break;
-
-              case XMPP_ERROR_FEATURE_NOT_IMPLEMENTED:
-                *send_error = CHANNEL_TEXT_SEND_ERROR_NOT_IMPLEMENTED;
-                break;
-
-              default:
-                *send_error = CHANNEL_TEXT_SEND_ERROR_UNKNOWN;
-            }
-        }
-      else
-        {
-          *send_error = CHANNEL_TEXT_SEND_ERROR_UNKNOWN;
-        }
-    }
-
-  *from = lm_message_node_get_attribute (message->node, "from");
-  if (*from == NULL)
-    {
-      NODE_DEBUG (message->node, "got a message without a from field");
-      return FALSE;
-    }
-
-  type = lm_message_node_get_attribute (message->node, "type");
-
-  /*
-   * Parse timestamp of delayed messages. For non-delayed, it's
-   * 0 and the channel code should set the current timestamp.
-   */
-  *stamp = 0;
-
-  node = lm_message_node_get_child_with_namespace (message->node, "x",
-      NS_X_DELAY);
-  if (node != NULL)
-    {
-      const gchar *stamp_str, *p;
-      struct tm stamp_tm = { 0, };
-
-      stamp_str = lm_message_node_get_attribute (node, "stamp");
-      if (stamp_str != NULL)
-        {
-          p = strptime (stamp_str, "%Y%m%dT%T", &stamp_tm);
-          if (p == NULL || *p != '\0')
-            {
-              g_warning ("%s: malformed date string '%s' for jabber:x:delay",
-                         G_STRFUNC, stamp_str);
-            }
-          else
-            {
-              *stamp = 0; // bsr timegm (&stamp_tm);
-            }
-        }
-    }
-
-  /*
-   * Parse body if it exists.
-   */
-  node = lm_message_node_get_child (message->node, "body");
-
-  if (node)
-    {
-      *body = lm_message_node_get_value (node);
-    }
-  else
-    {
-      *body = NULL;
-    }
-
-  /* Messages starting with /me are ACTION messages, and the /me should be
-   * removed. type="chat" messages are NORMAL.  everything else is
-   * something that doesn't necessarily expect a reply or ongoing
-   * conversation ("normal") or has been auto-sent, so we make it NOTICE in
-   * all other cases. */
-
-  *msgtype = TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE;
-  *body_offset = *body;
-
-  if (*body)
-    {
-      if (0 == strncmp (*body, "/me ", 4))
-        {
-          *msgtype = TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION;
-          *body_offset = *body + 4;
-        }
-      else if (type != NULL && (0 == strcmp (type, "chat") ||
-                                0 == strcmp (type, "groupchat")))
-        {
-          *msgtype = TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL;
-          *body_offset = *body;
-        }
-    }
-
-  return TRUE;
-}
-
-void
-_gabble_text_mixin_send_error_signal (GObject *obj,
-                                      GabbleTextMixinSendError error,
-                                      time_t timestamp,
-                                      TpChannelTextMessageType type,
-                                      const gchar *text)
-{
-  GabbleTextMixinClass *mixin_cls = GABBLE_TEXT_MIXIN_CLASS (G_OBJECT_GET_CLASS (obj));
-
-  g_signal_emit (obj, mixin_cls->send_error_signal_id, 0, error, timestamp, type, text, 0);
-}
-
--- a/telepathygabble/src/tp-channel-factory-iface-signals-marshal.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-/*
- * tp-channel-factory-iface-signals-marshal.c 
- * Copyright (C) 2006 Collabora Ltd.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#include	<glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:OBJECT,POINTER (tp-channel-factory-iface-signals-marshal.list:1) */
-void
-tp_channel_factory_iface_marshal_VOID__OBJECT_POINTER (GClosure     *closure,
-                                                       GValue       *return_value,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint,
-                                                       gpointer      marshal_data)
-{
-  typedef void (*GMarshalFunc_VOID__OBJECT_POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     arg_2,
-                                                     gpointer     data2);
-  register GMarshalFunc_VOID__OBJECT_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_VOID__OBJECT_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  callback (data1,
-            g_marshal_value_peek_object (param_values + 1),
-            g_marshal_value_peek_pointer (param_values + 2),
-            data2);
-}
-
--- a/telepathygabble/src/tp-channel-factory-iface.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-/*
- * tp-channel-factory-iface.c - Stubs for Telepathy Channel Factory interface
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <glib-object.h>
-
-#include "tp-channel-factory-iface.h"
-#include "tp-channel-factory-iface-signals-marshal.h"
-#include "tp-channel-iface.h"
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(initialized,gabble_fac_iface,gboolean)
-	#define initialized (*GET_WSD_VAR_NAME(initialized,gabble_fac_iface, s)())	
-
-	GET_STATIC_VAR_FROM_TLS(type,gabble_fac_iface,GType)
-	#define type (*GET_WSD_VAR_NAME(type,gabble_fac_iface, s)())	
-
-#endif
-
-
-static void
-tp_channel_factory_iface_base_init (gpointer klass)
-{
-#ifndef EMULATOR
-  static gboolean initialized = FALSE;
-#endif
-
-  if (!initialized) {
-    initialized = TRUE;
-
-    g_signal_new ("new-channel",
-                  G_OBJECT_CLASS_TYPE (klass),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__OBJECT,
-                  G_TYPE_NONE, 1, G_TYPE_OBJECT);
-
-    g_signal_new ("channel-error",
-                  G_OBJECT_CLASS_TYPE (klass),
-                  G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
-                  0,
-                  NULL, NULL,
-                  tp_channel_factory_iface_marshal_VOID__OBJECT_POINTER,
-                  G_TYPE_NONE, 2, G_TYPE_OBJECT, G_TYPE_POINTER);
-  }
-}
-
-GType
-tp_channel_factory_iface_get_type (void)
-{
-
-#ifndef EMULATOR
-  static GType type = 0;
-#endif
-
-  if (type == 0) {
-    static const GTypeInfo info = {
-      sizeof (TpChannelFactoryIfaceClass),
-      tp_channel_factory_iface_base_init,   /* base_init */
-      NULL,   /* base_finalize */
-      NULL,   /* class_init */
-      NULL,   /* class_finalize */
-      NULL,   /* class_data */
-      0,
-      0,      /* n_preallocs */
-      NULL    /* instance_init */
-    };
-
-    type = g_type_register_static (G_TYPE_INTERFACE, "TpChannelFactoryIface", &info, 0);
-  }
-
-  return type;
-}
-
-void
-tp_channel_factory_iface_close_all (TpChannelFactoryIface *self)
-{
-  TP_CHANNEL_FACTORY_IFACE_GET_CLASS (self)->close_all (self);
-}
-
-void
-tp_channel_factory_iface_connecting (TpChannelFactoryIface *self)
-{
-  TP_CHANNEL_FACTORY_IFACE_GET_CLASS (self)->connecting (self);
-}
-
-void
-tp_channel_factory_iface_connected (TpChannelFactoryIface *self)
-{
-  TP_CHANNEL_FACTORY_IFACE_GET_CLASS (self)->connected (self);
-}
-
-void
-tp_channel_factory_iface_disconnected (TpChannelFactoryIface *self)
-{
-  TP_CHANNEL_FACTORY_IFACE_GET_CLASS (self)->disconnected (self);
-}
-
-void
-tp_channel_factory_iface_foreach (TpChannelFactoryIface *self,
-                                  TpChannelFunc func,
-                                  gpointer data)
-{
-  TP_CHANNEL_FACTORY_IFACE_GET_CLASS (self)->foreach (self, func, data);
-}
-
-TpChannelFactoryRequestStatus
-tp_channel_factory_iface_request (TpChannelFactoryIface *self,
-                                  const gchar *chan_type,
-                                  TpHandleType handle_type,
-                                  guint handle,
-                                  TpChannelIface **ret,
-                                  GError **error)
-{
-  return (TP_CHANNEL_FACTORY_IFACE_GET_CLASS (self)->request (self, chan_type,
-        handle_type, handle, ret, error));
-}
--- a/telepathygabble/src/tp-channel-iface.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
- * tp-channel-iface.c - Stubs for Telepathy Channel interface
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include "tp-channel-iface.h"
-
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_VAR_FROM_TLS(type,gabble_chnl_iface,GType)
-	#define type (*GET_WSD_VAR_NAME(type,gabble_chnl_iface, s)())	
-
-	GET_STATIC_VAR_FROM_TLS(initialized,gabble_chnl_iface,gboolean)
-	#define initialized (*GET_WSD_VAR_NAME(initialized,gabble_chnl_iface, s)())	
-
-#endif
-
-static void
-tp_channel_iface_base_init (gpointer klass)
-{
-#ifndef EMULATOR
-  static gboolean initialized = FALSE;
-#endif
-
-  if (!initialized) {
-    GParamSpec *param_spec;
-
-    initialized = TRUE;
-
-    param_spec = g_param_spec_string ("object-path", "D-Bus object path",
-                                      "The D-Bus object path used for this "
-                                      "object on the bus.",
-                                      NULL,
-                                      G_PARAM_CONSTRUCT_ONLY |
-                                      G_PARAM_READWRITE |
-                                      G_PARAM_STATIC_NAME |
-                                      G_PARAM_STATIC_BLURB);
-    g_object_interface_install_property (klass, param_spec);
-
-    param_spec = g_param_spec_string ("channel-type", "Telepathy channel type",
-                                      "The D-Bus interface representing the "
-                                      "type of this channel.",
-                                      NULL,
-                                      G_PARAM_READABLE |
-                                      G_PARAM_STATIC_NAME |
-                                      G_PARAM_STATIC_BLURB);
-    g_object_interface_install_property (klass, param_spec);
-
-    param_spec = g_param_spec_uint ("handle-type", "Contact handle type",
-                                    "The TpHandleType representing a "
-                                    "contact handle.",
-                                    0, G_MAXUINT32, 0,
-                                    G_PARAM_READABLE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-    g_object_interface_install_property (klass, param_spec);
-
-    param_spec = g_param_spec_uint ("handle", "Contact handle",
-                                    "The GabbleHandle representing the contact "
-                                    "with whom this channel communicates.",
-                                    0, G_MAXUINT32, 0,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NAME |
-                                    G_PARAM_STATIC_BLURB);
-    g_object_interface_install_property (klass, param_spec);
-  }
-}
-
-
-GType
-tp_channel_iface_get_type (void)
-{
-
-#ifndef EMULATOR
-  static GType type = 0;
-#endif
-  
-
-  if (type == 0) {
-    static const GTypeInfo info = {
-      sizeof (TpChannelIfaceClass),
-      tp_channel_iface_base_init,   /* base_init */
-      NULL,   /* base_finalize */
-      NULL,   /* class_init */
-      NULL,   /* class_finalize */
-      NULL,   /* class_data */
-      0,
-      0,      /* n_preallocs */
-      NULL    /* instance_init */
-    };
-
-    type = g_type_register_static (G_TYPE_INTERFACE, "TpChannelIface", &info, 0);
-  }
-
-  return type;
-}
--- a/telepathygabble/src/util.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,267 +0,0 @@
-/*
- * util.c - Source for Gabble utility functions
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *   @author Robert McQueen <robert.mcqueen@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <glib.h>
-#include <string.h>
-#include <stdio.h>
-#include "namespaces.h"
-#include "gabble-connection.h"
-
-#include "util.h"
-#include "sha1.h"
-
-gchar *
-sha1_hex (const gchar *bytes, guint len)
-{
-  SHA1Context sc;
-  uint8_t hash[SHA1_HASH_SIZE];
-  gchar *hex_hash = g_malloc (SHA1_HASH_SIZE*2 + 1);
-  int i;
-
-  SHA1Init (&sc);
-  SHA1Update (&sc, bytes, len);
-  SHA1Final (&sc, hash);
-
-  for (i = 0; i < SHA1_HASH_SIZE; i++)
-    {
-      sprintf (hex_hash + 2 * i, "%02x", (unsigned int) hash[i]);
-    }
-
-  return hex_hash;
-}
-
-gboolean
-g_strdiff (const gchar *left, const gchar *right)
-{
-  if ((NULL == left) != (NULL == right))
-    return TRUE;
-
-  else if (left == right)
-    return FALSE;
-
-  else
-    return (0 != strcmp (left, right));
-}
-
-static void
-lm_message_node_add_nick (LmMessageNode *node, const gchar *nick)
-{
-  LmMessageNode *nick_node;
-
-  nick_node = lm_message_node_add_child (node, "nick", nick);
-  lm_message_node_set_attribute (nick_node, "xmlns", NS_NICK);
-}
-
-void
-lm_message_node_add_own_nick (LmMessageNode *node,
-                              GabbleConnection *connection)
-{
-  gchar *nick;
-  GabbleConnectionAliasSource source;
-
-  source = _gabble_connection_get_cached_alias (connection,
-        connection->self_handle, &nick);
-
-  if (source > GABBLE_CONNECTION_ALIAS_FROM_JID)
-    lm_message_node_add_nick (node, nick);
-
-  g_free (nick);
-}
-
-void
-lm_message_node_steal_children (LmMessageNode *snatcher,
-                                LmMessageNode *mum)
-{
-  LmMessageNode *baby;
-
-  g_return_if_fail (snatcher->children == NULL);
-
-  if (mum->children == NULL)
-    return;
-
-  snatcher->children = mum->children;
-  mum->children = NULL;
-
-  for (baby = snatcher->children;
-       baby != NULL;
-       baby = baby->next)
-    baby->parent = snatcher;
-}
-
-gboolean
-lm_message_node_has_namespace (LmMessageNode *node,
-                               const gchar *ns,
-                               const gchar *tag)
-{
-  gchar *attribute = NULL;
-  const gchar *node_ns;
-  gboolean ret;
-
-  if (tag != NULL)
-    attribute = g_strconcat ("xmlns:", tag, NULL);
-
-  node_ns = lm_message_node_get_attribute (node,
-      tag != NULL ? attribute : "xmlns");
-
-  ret = !g_strdiff (node_ns, ns);
-
-  g_free (attribute);
-
-  return ret;
-}
-
-LmMessageNode *
-lm_message_node_get_child_with_namespace (LmMessageNode *node,
-                                          const gchar *name,
-                                          const gchar *ns)
-{
-  LmMessageNode *tmp;
-
-  for (tmp = node->children;
-       tmp != NULL;
-       tmp = tmp->next)
-    {
-      gchar *tag = NULL;
-      gboolean found;
-
-      if (g_strdiff (tmp->name, name))
-        {
-          const gchar *suffix;
-
-          suffix = strchr (tmp->name, ':');
-
-          if (suffix == NULL)
-            continue;
-          else
-            suffix++;
-
-          if (g_strdiff (suffix, name))
-            continue;
-
-          tag = g_strndup (tmp->name, suffix - tmp->name - 1);
-        }
-
-      found = lm_message_node_has_namespace (tmp, ns, tag);
-
-      g_free (tag);
-
-      if (found)
-        return tmp;
-    }
-
-  return NULL;
-}
-
-/**
- * gabble_decode_jid
- *
- * Parses a JID which may be one of the following forms:
- *  server
- *  server/resource
- *  username@server
- *  username@server/resource
- *  room@service/nick
- * and sets the caller's username_room, server_service and resource_nick
- * pointers to the username/room, server/service and resource/nick parts
- * respectively, if available in the provided JID. The caller may set any of
- * the pointers to NULL if they are not interested in a certain component.
- *
- * The returned values may be NULL or zero-length if a component was either
- * not present or zero-length respectively in the given JID. The username/room
- * and server/service are lower-cased because the Jabber protocol treats them
- * case-insensitively.
- */
-void
-gabble_decode_jid (const gchar *jid,
-                   gchar **username_room,
-                   gchar **server_service,
-                   gchar **resource_nick)
-{
-  char *tmp_jid, *tmp_username, *tmp_server, *tmp_resource;
-
-  g_assert (jid != NULL);
-  g_assert (*jid != '\0');
-
-  if (username_room != NULL)
-    *username_room = NULL;
-
-  if (server_service != NULL)
-    *server_service = NULL;
-
-  if (resource_nick != NULL)
-    *resource_nick = NULL;
-
-  /* take a local copy so we don't modify the caller's string */
-  tmp_jid = g_strdup (jid);
-
-  /* find an @ in username, truncate username to that length, and point
-   * 'server' to the byte afterwards */
-  tmp_server = strchr (tmp_jid, '@');
-  if (tmp_server)
-    {
-      tmp_username = tmp_jid;
-
-      *tmp_server = '\0';
-      tmp_server++;
-
-      /* store the username if the user provided a pointer */
-      if (username_room != NULL)
-        *username_room = g_utf8_strdown (tmp_username, -1);
-    }
-  else
-    {
-      tmp_username = NULL;
-      tmp_server = tmp_jid;
-    }
-
-  /* if we have a server, find a / in it, truncate it to that length, and point
-   * 'resource' to the byte afterwards. otherwise, do the same to username to
-   * find any resource there. */
-  tmp_resource = strchr (tmp_server, '/');
-  if (tmp_resource)
-    {
-      *tmp_resource = '\0';
-      tmp_resource++;
-
-      /* store the resource if the user provided a pointer */
-      if (resource_nick != NULL)
-        *resource_nick = g_strdup (tmp_resource);
-    }
-
-  /* the server must be stored after the resource, in case we truncated a
-   * resource from it */
-  if (server_service != NULL)
-    *server_service = g_utf8_strdown (tmp_server, -1);
-
-  /* free our working copy */
-  g_free (tmp_jid);
-}
-
-/* extend a pointer by an offset, provided the offset is not 0 */
-gpointer
-gabble_mixin_offset_cast (gpointer instance,
-                          guint offset)
-{
-  g_return_val_if_fail (offset != 0, NULL);
-
-  return ((guchar *) instance + offset);
-}
-
--- a/telepathygabble/src/vcard-manager.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,956 +0,0 @@
-/*
- * vcard-manager.c - Source for Gabble vCard lookup helper
- *
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-glib-lowlevel.h>
-
-#include "debug.h"
-#include "gabble-connection.h"
-#include "namespaces.h"
-#include "telepathy-helpers.h"
-#include "util.h"
-#include "vcard-manager.h"
-
-#include "gabble_enums.h"
-
-#define DBUS_API_SUBJECT_TO_CHANGE
-#define DEBUG_FLAG GABBLE_DEBUG_VCARD
-#define DEFAULT_REQUEST_TIMEOUT 20000
-
-#ifdef DEBUG_FLAG
-//#define DEBUG(format, ...)
-#define DEBUGGING 0
-#define NODE_DEBUG(n, s)
-#endif /* DEBUG_FLAG */
-
-
-#ifndef EMULATOR
-G_DEFINE_TYPE(GabbleVCardManager, gabble_vcard_manager, G_TYPE_OBJECT);
-#endif
-
-/* signal enum */
-enum
-{
-    NICKNAME_UPDATE,
-    LAST_SIGNAL 
-#ifdef EMULATOR    
-    = LAST_SIGNAL_VCARD_MGR
-#endif
-    
-};
-
-#ifdef EMULATOR
-#include "libgabble_wsd_solution.h"
-
-	GET_STATIC_ARRAY_FROM_TLS(signals,gabble_vcard_mgr,guint)
-	#define signals (GET_WSD_VAR_NAME(signals,gabble_vcard_mgr, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(quark1,gabble_vcard_mgr,GQuark)
-	#define quark1 (*GET_WSD_VAR_NAME(quark1,gabble_vcard_mgr, s)())	
-	
-	GET_STATIC_VAR_FROM_TLS(quark2,gabble_vcard_mgr,GQuark)
-	#define quark2 (*GET_WSD_VAR_NAME(quark2,gabble_vcard_mgr, s)())
-	
-	GET_STATIC_VAR_FROM_TLS(gabble_vcard_manager_parent_class,gabble_vcard_mgr,gpointer)
-	#define gabble_vcard_manager_parent_class (*GET_WSD_VAR_NAME(gabble_vcard_manager_parent_class,gabble_vcard_mgr,s)())
-	
-	GET_STATIC_VAR_FROM_TLS(g_define_type_id,gabble_vcard_mgr,GType)
-	#define g_define_type_id (*GET_WSD_VAR_NAME(g_define_type_id,gabble_vcard_mgr,s)())
-		
-    GET_STATIC_ARRAY_FROM_TLS(NO_ALIAS,gabble_vcard_mgr,gchar)
-	#define NO_ALIAS (GET_WSD_VAR_NAME(NO_ALIAS,gabble_vcard_mgr,s)())
-	
-static void gabble_vcard_manager_init (GabbleVCardManager *self); 
-static void gabble_vcard_manager_class_init (GabbleVCardManagerClass *klass); 
-static void gabble_vcard_manager_class_intern_init (gpointer klass)
- { 
- gabble_vcard_manager_parent_class = g_type_class_peek_parent (klass);
- gabble_vcard_manager_class_init ((GabbleVCardManagerClass*) klass);
-  }
-   EXPORT_C GType gabble_vcard_manager_get_type (void) 
-   {
-   if ((g_define_type_id == 0)) { static const GTypeInfo g_define_type_info = { sizeof (GabbleVCardManagerClass), (GBaseInitFunc) ((void *)0), (GBaseFinalizeFunc) ((void *)0), (GClassInitFunc) gabble_vcard_manager_class_intern_init, (GClassFinalizeFunc) ((void *)0), ((void *)0), sizeof (GabbleVCardManager), 0, (GInstanceInitFunc) gabble_vcard_manager_init, ((void *)0) }; g_define_type_id = g_type_register_static ( ((GType) ((20) << (2))), g_intern_static_string ("GabbleVCardManager"), &g_define_type_info, (GTypeFlags) 0); { {} ; } } return g_define_type_id; } ;
-		
-#else
-
-	static guint signals[LAST_SIGNAL] = {0};
-    
-    static const gchar *NO_ALIAS = "none";
-
-#endif
-
-
-/* Properties */
-enum
-{
-  PROP_CONNECTION = 1,
-  LAST_PROPERTY
-};
-
-
-
-typedef struct _GabbleVCardManagerPrivate GabbleVCardManagerPrivate;
-struct _GabbleVCardManagerPrivate
-{
-  GabbleConnection *connection;
-  GList *requests;
-  gboolean dispose_has_run;
-};
-
-struct _GabbleVCardManagerRequest
-{
-  GabbleVCardManager *manager;
-  guint timer_id;
-  guint timeout;
-
-  GabbleHandle handle;
-  gchar **edit_args;
-
-  GabbleVCardManagerCb callback;
-  gpointer user_data;
-  GObject *bound_object;
-};
-
-GQuark
-gabble_vcard_manager_error_quark (void)
-{
-
-#ifndef EMULATOR
-  static GQuark quark1 = 0;
-#endif
-  
-  if (!quark1)
-    quark1 = g_quark_from_static_string ("gabble-vcard-manager-error");
-  return quark1;
-}
-
-GQuark
-gabble_vcard_manager_cache_quark (void)
-{
-
-#ifndef EMULATOR
-  static GQuark quark2 = 0;
-#endif
-  
-  if (!quark2)
-    quark2 = g_quark_from_static_string ("gabble-vcard-manager-cache");
-  return quark2;
-}
-
-#define GABBLE_VCARD_MANAGER_GET_PRIVATE(o)     ((GabbleVCardManagerPrivate*)((o)->priv));
-
-static void
-gabble_vcard_manager_init (GabbleVCardManager *obj)
-{
-  GabbleVCardManagerPrivate *priv =
-     G_TYPE_INSTANCE_GET_PRIVATE (obj, GABBLE_TYPE_VCARD_MANAGER, GabbleVCardManagerPrivate);
-  obj->priv = priv;
-
-}
-
-static void gabble_vcard_manager_set_property (GObject *object, guint property_id,
-    const GValue *value, GParamSpec *pspec);
-static void gabble_vcard_manager_get_property (GObject *object, guint property_id,
-    GValue *value, GParamSpec *pspec);
-static void gabble_vcard_manager_dispose (GObject *object);
-static void gabble_vcard_manager_finalize (GObject *object);
-
-static void
-gabble_vcard_manager_class_init (GabbleVCardManagerClass *gabble_vcard_manager_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (gabble_vcard_manager_class);
-  GParamSpec *param_spec;
-
-  g_type_class_add_private (gabble_vcard_manager_class, sizeof (GabbleVCardManagerPrivate));
-
-  object_class->get_property = gabble_vcard_manager_get_property;
-  object_class->set_property = gabble_vcard_manager_set_property;
-
-  object_class->dispose = gabble_vcard_manager_dispose;
-  object_class->finalize = gabble_vcard_manager_finalize;
-
-  param_spec = g_param_spec_object ("connection", "GabbleConnection object",
-                                    "Gabble connection object that owns this "
-                                    "vCard lookup helper object.",
-                                    GABBLE_TYPE_CONNECTION,
-                                    G_PARAM_CONSTRUCT_ONLY |
-                                    G_PARAM_READWRITE |
-                                    G_PARAM_STATIC_NICK |
-                                    G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
-
-  /* signal definitions */
-
-  signals[NICKNAME_UPDATE] =
-    g_signal_new ("nickname-update",
-                  G_TYPE_FROM_CLASS (gabble_vcard_manager_class),
-                  G_SIGNAL_RUN_LAST,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__UINT,
-                  G_TYPE_NONE, 1, G_TYPE_UINT);
-
-}
-
-static void
-gabble_vcard_manager_get_property (GObject    *object,
-                                   guint       property_id,
-                                   GValue     *value,
-                                   GParamSpec *pspec)
-{
-  GabbleVCardManager *chan = GABBLE_VCARD_MANAGER (object);
-  GabbleVCardManagerPrivate *priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      g_value_set_object (value, priv->connection);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void
-gabble_vcard_manager_set_property (GObject     *object,
-                                   guint        property_id,
-                                   const GValue *value,
-                                   GParamSpec   *pspec)
-{
-  GabbleVCardManager *chan = GABBLE_VCARD_MANAGER (object);
-  GabbleVCardManagerPrivate *priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (chan);
-
-  switch (property_id) {
-    case PROP_CONNECTION:
-      priv->connection = g_value_get_object (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-      break;
-  }
-}
-
-static void cancel_request (GabbleVCardManagerRequest *request);
-
-void
-gabble_vcard_manager_dispose (GObject *object)
-{
-  DBusGProxy *bus_proxy;
-  GabbleVCardManager *self = GABBLE_VCARD_MANAGER (object);
-  GabbleVCardManagerPrivate *priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (self);
-  bus_proxy = tp_get_bus_proxy ();
-
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  /* cancel request removes the element from the list after cancelling */
-  while (priv->requests)
-    cancel_request (priv->requests->data);
-
-  if (G_OBJECT_CLASS (gabble_vcard_manager_parent_class)->dispose)
-    G_OBJECT_CLASS (gabble_vcard_manager_parent_class)->dispose (object);
-}
-
-void
-gabble_vcard_manager_finalize (GObject *object)
-{
-  G_OBJECT_CLASS (gabble_vcard_manager_parent_class)->finalize (object);
-}
-
-static void
-status_changed_cb (GObject *object,
-                   guint status,
-                   guint reason,
-                   gpointer user_data)
-{
-  GabbleVCardManager *self = GABBLE_VCARD_MANAGER (user_data);
-  GabbleConnection *conn = GABBLE_CONNECTION (object);
-
-  if (status == TP_CONN_STATUS_CONNECTED)
-    {
-      gchar *alias;
-      GabbleConnectionAliasSource alias_src;
-
-      /* if we have a better alias, patch it into our vCard on the server */
-      alias_src = _gabble_connection_get_cached_alias (conn,
-                                                       conn->self_handle,
-                                                       &alias);
-      if (alias_src > GABBLE_CONNECTION_ALIAS_FROM_VCARD)
-        {
-          /* ignore errors, just kick off the request in the background */
-          gabble_vcard_manager_edit (self, 0, NULL, NULL, G_OBJECT (conn),
-                                     NULL, "NICKNAME", alias, NULL);
-        }
-      else
-        {
-          /* find out our own alias, so it's in the cache; again,
-           * there's nothing useful we can do with errors really
-           */
-          gabble_vcard_manager_request (self, conn->self_handle,
-                                        0, NULL, NULL, NULL, NULL);
-        }
-
-      g_free(alias);
-    }
-}
-
-/**
- * gabble_vcard_manager_new:
- * @conn: The #GabbleConnection to use for vCard lookup
- *
- * Creates an object to use for Jabber vCard lookup (JEP 0054).
- * There should be one of these per connection
- */
-GabbleVCardManager *
-gabble_vcard_manager_new (GabbleConnection *conn)
-{
-  GabbleVCardManager *self;
-
-  g_return_val_if_fail (GABBLE_IS_CONNECTION (conn), NULL);
-
-  self = GABBLE_VCARD_MANAGER (g_object_new (GABBLE_TYPE_VCARD_MANAGER, "connection", conn, NULL));
-  g_signal_connect (conn, "status-changed",
-                    G_CALLBACK (status_changed_cb), self);
-  return self;
-}
-
-static void notify_delete_request (gpointer data, GObject *obj);
-
-static void
-delete_request (GabbleVCardManagerRequest *request)
-{
-  GabbleVCardManager *manager = request->manager;
-  GabbleVCardManagerPrivate *priv;
-
-  gabble_debug (DEBUG_FLAG, "Discarding request %p", request);
-
-  g_assert (NULL != request);
-  g_assert (GABBLE_IS_VCARD_MANAGER (manager));
-
-  priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (manager);
-
-  g_assert (NULL != g_list_find (priv->requests, request));
-
-  priv->requests = g_list_remove (priv->requests, request);
-
-  if (NULL != request->bound_object)
-    {
-      g_object_weak_unref (request->bound_object, notify_delete_request, request);
-    }
-
-  if (0 != request->timer_id)
-    {
-      g_source_remove (request->timer_id);
-    }
-
-  gabble_handle_unref (priv->connection->handles, TP_HANDLE_TYPE_CONTACT,
-                       request->handle);
-  g_strfreev (request->edit_args);
-
-  g_free (request);
-}
-
-static gboolean
-timeout_request (gpointer data)
-{
-  GabbleVCardManagerRequest *request = (GabbleVCardManagerRequest*) data;
-  GError *err;
-  g_return_val_if_fail (data != NULL, FALSE);
-
-  err = g_error_new (GABBLE_VCARD_MANAGER_ERROR, GABBLE_VCARD_MANAGER_ERROR_TIMEOUT,
-      "Request timed out");
-  gabble_debug (DEBUG_FLAG, "Request %p timed out, notifying callback %p",
-         request, request->callback);
-  if (request->callback)
-    {
-      (request->callback)(request->manager, request, request->handle,
-                          NULL, err, request->user_data);
-    }
-  g_error_free (err);
-
-  request->timer_id = 0;
-  delete_request (request);
-  return FALSE;
-}
-
-static void
-cancel_request (GabbleVCardManagerRequest *request)
-{
-  GError *err;
-
-  g_assert (request != NULL);
-
-  err = g_error_new (GABBLE_VCARD_MANAGER_ERROR, GABBLE_VCARD_MANAGER_ERROR_CANCELLED,
-      "Request cancelled");
-  gabble_debug (DEBUG_FLAG, "Request %p cancelled, notifying callback %p",
-         request, request->callback);
-  if (request->callback)
-    {
-      (request->callback)(request->manager, request, request->handle,
-                          NULL, err, request->user_data);
-    }
-  g_error_free (err);
-
-  delete_request (request);
-}
-
-static void
-observe_vcard (GabbleConnection *conn, GabbleVCardManager *manager,
-               GabbleHandle handle, LmMessageNode *vcard_node)
-{
-  LmMessageNode *nick_node = lm_message_node_get_child (vcard_node,
-                                                        "NICKNAME");
-
-  gabble_debug (DEBUG_FLAG, "Observing vCard for %u", handle);
-  NODE_DEBUG(vcard_node, "their vCard is");
-
-  if (nick_node)
-    {
-      const gchar *nick = lm_message_node_get_value (nick_node);
-
-      gabble_debug (DEBUG_FLAG, "%u has <NICKNAME> \"%s\"", handle, nick ? nick : "(null)");
-
-      if (nick && *nick)
-        {
-          /* nicknames are comma-separated, let's use the first one */
-          gchar **bits = g_strsplit (nick, ",", 2);
-
-          if (bits[0])
-            {
-              gchar *alias = g_strdup (bits[0]);
-
-              gabble_debug (DEBUG_FLAG, "... using \"%s\" as their alias", alias);
-
-              g_signal_emit (G_OBJECT (manager), signals[NICKNAME_UPDATE],
-                             0, handle);
-              if (!gabble_handle_set_qdata (conn->handles,
-                                            TP_HANDLE_TYPE_CONTACT,
-                                            handle,
-                                            gabble_vcard_manager_cache_quark(),
-                                            alias, g_free))
-                {
-                  gabble_debug (DEBUG_FLAG, "failed to cache their alias");
-                  g_free (alias);
-                }
-
-            }
-
-          g_strfreev (bits);
-        }
-    }
-  else
-    {
-      const gchar *fn = NULL;
-      /* let's see if they have a FN (formatted name) instead */
-      nick_node = lm_message_node_get_child (vcard_node, "FN");
-      if (nick_node)
-        fn = lm_message_node_get_value (nick_node);
-      gabble_debug (DEBUG_FLAG, "%u has no <NICKNAME>, but has <FN> \"%s\"", handle,
-             fn ? fn : "(null)");
-      if (fn && *fn)
-        {
-          gchar *alias = g_strdup (fn);
-
-          gabble_debug (DEBUG_FLAG, "... using \"%s\" as their alias", alias);
-
-          g_signal_emit (G_OBJECT (manager), signals[NICKNAME_UPDATE],
-                         0, handle);
-          if (!gabble_handle_set_qdata (conn->handles,
-                                        TP_HANDLE_TYPE_CONTACT,
-                                        handle,
-                                        gabble_vcard_manager_cache_quark(),
-                                        alias, g_free))
-            {
-              gabble_debug (DEBUG_FLAG, "failed to cache their alias");
-              g_free (alias);
-            }
-        }
-      else
-        {
-          /* remember that they don't have an alias */
-          if (!gabble_handle_set_qdata (conn->handles,
-                                        TP_HANDLE_TYPE_CONTACT,
-                                        handle,
-                                        gabble_vcard_manager_cache_quark (),
-                                        (gchar *) NO_ALIAS, NULL))
-            gabble_debug (DEBUG_FLAG, "failed to cache their lack of vcard alias");
-        }
-
-    }
-}
-
-static GabbleVCardManagerRequest *request_send (GabbleVCardManagerRequest *,
-                                                LmMessageNode *replacement,
-                                                const gchar *jid,
-                                                GError **);
-
-static LmHandlerResult
-replace_reply_cb (GabbleConnection *conn, LmMessage *sent_msg,
-                  LmMessage *reply_msg, GObject *object, gpointer user_data)
-{
-  LmMessageNode *vcard_node = NULL;
-  GError *err = NULL;
-  GabbleVCardManagerRequest *request = (GabbleVCardManagerRequest*) user_data;
-  GabbleVCardManager *manager = GABBLE_VCARD_MANAGER (object);
-  GabbleVCardManagerPrivate *priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (manager);
-
-  g_assert (request);
-
-  gabble_debug (DEBUG_FLAG, "Replace request got a reply: conn@%p, sent_msg@%p, reply_msg@%p, "
-         "bound object@%p, request@%p", conn, sent_msg, reply_msg, object,
-         user_data);
-
-  if (!g_list_find (priv->requests, request))
-    {
-      gabble_debug (DEBUG_FLAG, "I don't care about that request any more");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-  if (lm_message_get_sub_type (reply_msg) == LM_MESSAGE_SUB_TYPE_ERROR)
-    {
-      LmMessageNode *error_node;
-
-      error_node = lm_message_node_get_child (reply_msg->node, "error");
-      if (error_node)
-        {
-          err = gabble_xmpp_error_to_g_error (
-              gabble_xmpp_error_from_node (error_node));
-        }
-
-      if (err == NULL)
-        {
-          err = g_error_new (GABBLE_VCARD_MANAGER_ERROR,
-                             GABBLE_VCARD_MANAGER_ERROR_UNKNOWN,
-                             "an unknown error occurred");
-        }
-    }
-  else
-    {
-      vcard_node = lm_message_node_get_child (sent_msg->node, "vCard");
-    }
-
-  gabble_debug (DEBUG_FLAG, "Request %p %s, notifying callback %p", request,
-         err ? "failed" : "succeeded", request->callback);
-  if (request->callback)
-    {
-      request->callback (request->manager, request, request->handle,
-                         vcard_node, err, request->user_data);
-    }
-  delete_request (request);
-
-  if (err)
-    g_error_free (err);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-static LmHandlerResult
-request_reply_cb (GabbleConnection *conn,
-                  LmMessage *sent_msg,
-                  LmMessage *reply_msg,
-                  GObject *object,
-                  gpointer user_data)
-{
-  LmMessageNode *vcard_node = NULL;
-  GError *err = NULL;
-  GabbleVCardManagerRequest *request = (GabbleVCardManagerRequest*) user_data;
-  GabbleVCardManager *manager = GABBLE_VCARD_MANAGER (object);
-  GabbleVCardManagerPrivate *priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (manager);
-
-  g_assert (request);
-
-  gabble_debug (DEBUG_FLAG, "Fetch request got a reply: conn@%p, sent_msg@%p, reply_msg@%p, "
-         "bound object@%p, request@%p", conn, sent_msg, reply_msg, object,
-         user_data);
-
-  if (!g_list_find (priv->requests, request))
-    {
-      gabble_debug (DEBUG_FLAG, "I don't care about that request any more");
-      return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
-    }
-
-
-  if (lm_message_get_sub_type (reply_msg) == LM_MESSAGE_SUB_TYPE_ERROR)
-    {
-      LmMessageNode *error_node;
-
-      error_node = lm_message_node_get_child (reply_msg->node, "error");
-      if (error_node)
-        {
-          err = gabble_xmpp_error_to_g_error (
-              gabble_xmpp_error_from_node (error_node));
-        }
-
-      if (err == NULL)
-        {
-          err = g_error_new (GABBLE_VCARD_MANAGER_ERROR,
-                             GABBLE_VCARD_MANAGER_ERROR_UNKNOWN,
-                             "an unknown error occurred");
-        }
-    }
-  else
-    {
-      vcard_node = lm_message_node_get_child (reply_msg->node, "vCard");
-
-      if (NULL == vcard_node)
-        {
-          gabble_debug (DEBUG_FLAG, "successful lookup response contained no <vCard> node, "
-              "creating an empty one");
-
-          vcard_node = lm_message_node_add_child (reply_msg->node, "vCard",
-              NULL);
-          lm_message_node_set_attribute (vcard_node, "xmlns", NS_VCARD_TEMP);
-        }
-
-      observe_vcard (conn, manager, request->handle, vcard_node);
-    }
-
-  if (vcard_node && request->edit_args)
-    {
-      gchar **ptr;
-      for (ptr = request->edit_args; *ptr; ptr++)
-        {
-          gchar *key = *ptr;
-          gchar *value = *(++ptr);
-          LmMessageNode *node;
-
-          if (!value)
-            {
-              /* oops, someone passed in an odd number of args. */
-              g_assert_not_reached ();
-              break;
-            }
-
-          node = lm_message_node_get_child (vcard_node, key);
-          if (node)
-            {
-              lm_message_node_set_value (node, value);
-            }
-          else
-            {
-              node = lm_message_node_add_child (vcard_node, key, value);
-            }
-        }
-
-      request_send (request, vcard_node, NULL, &err);
-
-      if (err)
-        {
-          gabble_debug (DEBUG_FLAG, "Request %p failed, notifying callback %p",
-                 request, request->callback);
-          if (request->callback)
-          {
-            request->callback (request->manager, request, request->handle,
-                               NULL, err, request->user_data);
-          }
-        }
-      else
-        {
-          gabble_debug (DEBUG_FLAG, "Request %p fetch succeeded", request);
-          /* early return to avoid deleting the request */
-          return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-        }
-    }
-  else
-    {
-      gabble_debug (DEBUG_FLAG, "Request %p %s, notifying callback %p",
-             request, err ? "failed" : "succeeded", request->callback);
-      if (request->callback)
-        {
-          request->callback (request->manager, request, request->handle,
-                             vcard_node, err, request->user_data);
-        }
-    }
-
-  delete_request (request);
-
-  if (err)
-    g_error_free (err);
-
-  return LM_HANDLER_RESULT_REMOVE_MESSAGE;
-}
-
-/* If @replacement is NULL sends a request, calling request_reply_cb when
- * it returns.
- *
- * Otherwise steals its children and sends an update, calling
- * replace_reply_cb when it returns.
- *
- * Frees the @request on error, returns it on success. */
-static GabbleVCardManagerRequest *
-request_send (GabbleVCardManagerRequest *request,
-              LmMessageNode *replacement,
-              const gchar *jid,
-              GError **error)
-{
-  LmMessage *msg;
-  LmMessageNode *lm_node;
-  GabbleVCardManager *self = request->manager;
-  GabbleVCardManagerPrivate *priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (self);
-
-  gabble_debug (DEBUG_FLAG, "Sending off request %p to %s for %s", request,
-         replacement ? "replace vCard" : "retrieve vCard",
-         jid ? jid : "myself");
-  msg = lm_message_new_with_sub_type (jid, LM_MESSAGE_TYPE_IQ,
-                                           (replacement
-                                                ? LM_MESSAGE_SUB_TYPE_SET
-                                                : LM_MESSAGE_SUB_TYPE_GET));
-  lm_node = lm_message_node_add_child (msg->node, "vCard", NULL);
-  lm_message_node_set_attribute (lm_node, "xmlns", NS_VCARD_TEMP);
-
-  if (replacement)
-    lm_message_node_steal_children (lm_node, replacement);
-
-  if (! _gabble_connection_send_with_reply (priv->connection, msg,
-        (replacement ? replace_reply_cb : request_reply_cb),
-        G_OBJECT(self), request, error))
-    {
-      delete_request (request);
-      lm_message_unref (msg);
-      return NULL;
-    }
-  else
-    {
-      if (0 == request->timer_id)
-        {
-          request->timer_id =
-              g_timeout_add (request->timeout, timeout_request, request);
-        }
-      lm_message_unref (msg);
-      return request;
-    }
-}
-
-static void
-notify_delete_request (gpointer data, GObject *obj)
-{
-  GabbleVCardManagerRequest *request = (GabbleVCardManagerRequest *) data;
-  request->bound_object = NULL;
-  delete_request (request);
-}
-
-/* Request the vCard for the given handle. When it arrives, call the given
- * callback.
- *
- * The callback may be NULL if you just want the side-effect of this
- * operation, which is to update the cached alias.
- */
-GabbleVCardManagerRequest *
-gabble_vcard_manager_request (GabbleVCardManager *self,
-                              GabbleHandle handle,
-                              guint timeout,
-                              GabbleVCardManagerCb callback,
-                              gpointer user_data,
-                              GObject *object,
-                              GError **error)
-{
-  GabbleVCardManagerRequest *request;
-  const gchar *jid;
-  GabbleVCardManagerPrivate *priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (self);
-
-  if (timeout == 0)
-    timeout = DEFAULT_REQUEST_TIMEOUT;
-
-  request = g_new0 (GabbleVCardManagerRequest, 1);
-  gabble_debug (DEBUG_FLAG, "Created request %p to retrieve <%u>'s vCard",
-         request, handle);
-  request->timeout = timeout;
-  request->manager = self;
-  gabble_handle_ref (priv->connection->handles, TP_HANDLE_TYPE_CONTACT,
-                     handle);
-  request->handle = handle;
-  request->callback = callback;
-  request->user_data = user_data;
-  request->bound_object = object;
-
-  if (NULL != object)
-    g_object_weak_ref (object, notify_delete_request, request);
-
-  priv->requests = g_list_prepend (priv->requests, request);
-  if (handle == priv->connection->self_handle) 
-    {
-      jid = NULL;
-    }
-  else
-    {
-      jid = gabble_handle_inspect (priv->connection->handles,
-                                   TP_HANDLE_TYPE_CONTACT, handle);
-    }
-
-  return request_send (request, NULL, jid, error);
-}
-
-GabbleVCardManagerRequest *
-gabble_vcard_manager_replace (GabbleVCardManager *self,
-                              LmMessageNode *replacement,
-                              guint timeout,
-                              GabbleVCardManagerCb callback,
-                              gpointer user_data,
-                              GObject *object,
-                              GError **error)
-{
-  GabbleVCardManagerRequest *request;
-  GabbleVCardManagerPrivate *priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (self);
-
-  if (timeout == 0)
-    timeout = DEFAULT_REQUEST_TIMEOUT;
-
-  request = g_new0 (GabbleVCardManagerRequest, 1);
-  gabble_debug (DEBUG_FLAG, "Created request %p to replace my vCard",
-         request);
-  request->timeout = timeout;
-  request->manager = self;
-  gabble_handle_ref (priv->connection->handles, TP_HANDLE_TYPE_CONTACT,
-                     priv->connection->self_handle);
-  request->handle = priv->connection->self_handle;
-  request->callback = callback;
-  request->user_data = user_data;
-  request->bound_object = object;
-
-  if (NULL != object)
-    g_object_weak_ref (object, notify_delete_request, request);
-
-  priv->requests = g_list_prepend (priv->requests, request);
-
-  return request_send (request, replacement, NULL, error);
-}
-
-GabbleVCardManagerRequest *
-gabble_vcard_manager_edit (GabbleVCardManager *self,
-                           guint timeout,
-                           GabbleVCardManagerCb callback,
-                           gpointer user_data,
-                           GObject *object,
-                           GError **error,
-                           ...)
-{
-  va_list ap;
-  size_t i, argc;
-  GabbleVCardManagerRequest *request;
-  GabbleVCardManagerPrivate *priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (self);
-
-  if (timeout == 0)
-    timeout = DEFAULT_REQUEST_TIMEOUT;
-
-  request = g_new0 (GabbleVCardManagerRequest, 1);
-  gabble_debug (DEBUG_FLAG, "Created request %p to edit my vCard", request);
-  request->timeout = timeout;
-  request->manager = self;
-  gabble_handle_ref (priv->connection->handles, TP_HANDLE_TYPE_CONTACT,
-                     priv->connection->self_handle);
-  request->handle = priv->connection->self_handle;
-  request->callback = callback;
-  request->user_data = user_data;
-  request->bound_object = object;
-
-  if (NULL != object)
-    g_object_weak_ref (object, notify_delete_request, request);
-
-  priv->requests = g_list_prepend (priv->requests, request);
-
-  argc = 0;
-  va_start (ap, error);
-  while (va_arg (ap, const gchar *) != NULL)
-    {
-      argc++;
-    }
-  va_end (ap);
-  g_return_val_if_fail (argc % 2 == 0, NULL);
-
-  request->edit_args = g_new (gchar *, argc + 1);
-
-  va_start (ap, error);
-  for (i = 0; i < argc; i++)
-    {
-      request->edit_args[i] = g_strdup (va_arg (ap, const gchar *));
-    }
-  request->edit_args[argc] = NULL;
-  va_end (ap);
-
-  return request_send (request, NULL, NULL, error);
-}
-
-void
-gabble_vcard_manager_cancel_request (GabbleVCardManager *manager,
-                                     GabbleVCardManagerRequest *request)
-{
-  GabbleVCardManagerPrivate *priv;
-
-  g_return_if_fail (GABBLE_IS_VCARD_MANAGER (manager));
-  g_return_if_fail (NULL != request);
-
-  priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (manager);
-
-  g_return_if_fail (NULL != g_list_find (priv->requests, request));
-
-  cancel_request (request);
-}
-
-/**
- * Return the cached alias derived from the vCard for the given handle,
- * if any. If there is no cached alias, return NULL.
- */
-const gchar *
-gabble_vcard_manager_get_cached_alias (GabbleVCardManager *manager,
-                                       GabbleHandle handle)
-{
-  GabbleVCardManagerPrivate *priv;
-  const gchar *s;
-
-  g_return_val_if_fail (GABBLE_IS_VCARD_MANAGER (manager), NULL);
-
-  priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (manager);
-
-  s = gabble_handle_get_qdata (priv->connection->handles,
-                               TP_HANDLE_TYPE_CONTACT,
-                               handle,
-                               gabble_vcard_manager_cache_quark());
-
-  if (s == NO_ALIAS)
-    s = NULL;
-
-  gabble_debug (DEBUG_FLAG, "Cached alias for %u is \"%s\"", handle, s ? s : "(null)");
-  return s;
-}
-
-/**
- * Return TRUE if we've tried looking up an alias for this handle before.
- */
-gboolean
-gabble_vcard_manager_has_cached_alias (GabbleVCardManager *manager,
-                                       GabbleHandle handle)
-{
-  GabbleVCardManagerPrivate *priv;
-  gpointer p;
-
-  g_return_val_if_fail (GABBLE_IS_VCARD_MANAGER (manager), FALSE);
-
-  priv = GABBLE_VCARD_MANAGER_GET_PRIVATE (manager);
-  p = gabble_handle_get_qdata (priv->connection->handles,
-                               TP_HANDLE_TYPE_CONTACT,
-                               handle,
-                               gabble_vcard_manager_cache_quark());
-  return p != NULL;
-}
-
--- a/telepathygabble/src/write-mgr-file.c	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
- * write_mgr_file.c - utility to produce gabble.manager. Part of Gabble.
- * Copyright (C) 2006 Collabora Ltd.
- * 
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <stdio.h>
-
-#include <dbus/dbus-glib.h>
-#include <dbus/dbus-protocol.h>
-
-#include "telepathy-constants.h"
-#include "gabble-connection-manager.h"
-
-static gchar *
-mgr_file_contents (const char *busname,
-                   const char *objpath,
-                   const GabbleProtocolSpec *protocols,
-                   GError **error)
-{
-  GKeyFile *f = g_key_file_new();
-  const GabbleProtocolSpec *protocol;
-  const GabbleParamSpec *row;
-
-  g_key_file_set_string(f, "ConnectionManager", "BusName", busname);
-  g_key_file_set_string(f, "ConnectionManager", "ObjectPath", objpath);
-
-  for (protocol = protocols; protocol->name; protocol++)
-    {
-      gchar *section_name = g_strdup_printf("Protocol %s", protocol->name);
-
-      for (row = protocol->parameters; row->name; row++)
-        {
-          gchar *param_name = g_strdup_printf("param-%s", row->name);
-          gchar *param_value = g_strdup_printf("%s%s%s", row->dtype,
-              (row->flags & TP_CONN_MGR_PARAM_FLAG_REQUIRED ? " required" : ""),
-              (row->flags & TP_CONN_MGR_PARAM_FLAG_REGISTER ? " register" : ""));
-          g_key_file_set_string(f, section_name, param_name, param_value);
-          g_free(param_value);
-          g_free(param_name);
-        }
-
-      for (row = protocol->parameters; row->name; row++)
-        {
-          if (row->flags & TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT)
-            {
-              gchar *default_name = g_strdup_printf("default-%s", row->name);
-
-              switch (row->gtype)
-                {
-                case G_TYPE_STRING:
-                  g_key_file_set_string(f, section_name, default_name,
-                                        row->def);
-                  break;
-                case G_TYPE_INT:
-                case G_TYPE_UINT:
-                  g_key_file_set_integer(f, section_name, default_name,
-                                         GPOINTER_TO_INT(row->def));
-                  break;
-                case G_TYPE_BOOLEAN:
-                  g_key_file_set_boolean(f, section_name, default_name,
-                                         GPOINTER_TO_INT(row->def) ? 1 : 0);
-                }
-              g_free(default_name);
-            }
-        }
-      g_free(section_name);
-    }
-  return g_key_file_to_data(f, NULL, error);
-}
-
-int
-main (void)
-{
-  GError *error = NULL;
-	
-  gchar *s = mgr_file_contents(GABBLE_CONN_MGR_BUS_NAME,
-                               GABBLE_CONN_MGR_OBJECT_PATH,
-                               gabble_protocols, &error);
-  if (!s)
-    {
-      fprintf(stderr, error->message);
-      g_error_free(error);
-      return 1;
-    }
-  g_message("%s", s);
-  getchar(); //vinod
-  g_free(s);
-  return 0;
-}
--- a/tsrc/group/bld.inf	Wed Mar 31 22:32:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  bld.inf
-*
-*/
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// defaults to WINS MARM so you can ignore this if you just build these
-	
-	DEFAULT
-
-PRJ_TESTEXPORTS
-// NOTE: If using ARS requirements all export operations should be done under this.
-// 'abld test export'
-
-PRJ_EXPORTS
-
-
-	
-
-
-PRJ_MMPFILES
-
-PRJ_TESTMMPFILES
-#include "../../opensrv_plat/messagequeue_api/tsrc/group/bld.inf"
-	
-	
-	
-
-
-
-//  End of File