--- 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ří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ří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ří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 (¶mspec[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, ¶ms, error))
- return FALSE;
-
- *ret = g_ptr_array_new ();
-
- for (i = 0; params[i].name; i++)
- {
- GValue *def_value;
- GValue param = { 0, };
-
- g_value_init (¶m, TP_TYPE_PARAM);
- g_value_set_static_boxed (¶m,
- dbus_g_type_specialized_construct (TP_TYPE_PARAM));
-
- def_value = param_default_value (params, i);
- dbus_g_type_struct_set (¶m,
- 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 (¶m));
- }
-
- 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, ¶mspec, error))
- return FALSE;
-
-
- if (!parse_parameters (paramspec, parameters, ¶ms, error))
- {
- free_params (¶ms);
- 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(¶ms);
-
-// 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, ¶ms,
- 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