From 5efc401f7d2a8c327cfb1304f3278772d5ba365b Mon Sep 17 00:00:00 2001 From: Jochen De Smet Date: Fri, 23 Dec 2011 12:29:29 -0500 Subject: [PATCH] Fix up some API violations Remove core includes in backend code Remove obsolete function Add local function to get own URI --- siplcs.vcxproj | 5 ++-- src/miranda/miranda-buddy.c | 1 - src/miranda/miranda-chat.c | 8 +++--- src/miranda/miranda-media.c | 1 - src/miranda/miranda-plugin.c | 6 ----- src/miranda/miranda-private.h | 3 ++- src/miranda/miranda-transport.c | 2 -- src/miranda/miranda-user.c | 1 - src/miranda/miranda-utils.c | 9 ++++++- src/miranda/sipe-miranda.c | 55 ----------------------------------------- 10 files changed, 16 insertions(+), 75 deletions(-) diff --git a/siplcs.vcxproj b/siplcs.vcxproj index 5e0c0992..87109439 100755 --- a/siplcs.vcxproj +++ b/siplcs.vcxproj @@ -73,12 +73,13 @@ Disabled - $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + $(SolutionDir)/../include;$(ProjectDir)/src/api;%(AdditionalIncludeDirectories) true EnableFastChecks MultiThreadedDebugDLL Level3 EditAndContinue + _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true @@ -104,7 +105,7 @@ Full - $(SolutionDir)/../include;$(ProjectDir)/src/core;$(ProjectDir)/src/api;$(ProjectDir)/src/;%(AdditionalIncludeDirectories) + $(SolutionDir)/../include;$(ProjectDir)/src/api;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;PACKAGE_NAME="pidgin-sipe";PACKAGE_VERSION="1.11.2";PACKAGE_URL="http://sipe.sourceforge.net/";PACKAGE_BUGREPORT="https://sourceforge.net/tracker/?atid=949931&amp%3bgroup_id=194563";SIPE_VERSION="1.11.2";_CRT_SECURE_NO_WARNINGS;HAVE_NSS;HAVE_GMIME;HAVE_VV;ENABLE_NLS;MIRANDA;HAVE_LIBKRB5;SECURITY_WIN32;SIPE_TRANSLATIONS_URL="https://www.transifex.net/projects/p/pidgin-sipe/r/mob/";%(PreprocessorDefinitions) MultiThreadedDLL Level3 diff --git a/src/miranda/miranda-buddy.c b/src/miranda/miranda-buddy.c index 7668b112..e53ca8e0 100644 --- a/src/miranda/miranda-buddy.c +++ b/src/miranda/miranda-buddy.c @@ -35,7 +35,6 @@ #include "sipe-common.h" #include "sipe-backend.h" -#include "sipe-buddy.h" #include "sipe-core.h" #include "miranda-private.h" diff --git a/src/miranda/miranda-chat.c b/src/miranda/miranda-chat.c index bbf96a70..96cd4905 100644 --- a/src/miranda/miranda-chat.c +++ b/src/miranda/miranda-chat.c @@ -30,9 +30,7 @@ #include "sipe-common.h" #include "sipe-backend.h" #include "sipe-core.h" -#include "sipe-core-private.h" #include "sipe-nls.h" -#include "sipe-utils.h" #include "newpluginapi.h" #include "m_protosvc.h" @@ -54,7 +52,7 @@ void sipe_backend_chat_add(struct sipe_backend_chat_session *backend_session, { SIPPROTO *pr = backend_session->pr; struct sipe_core_public *sipe_public = pr->sip; - gchar *self = sip_uri_self(SIPE_CORE_PRIVATE); + gchar *self = sipe_miranda_uri_self(pr); GCDEST gcd = {0}; GCEVENT gce = {0}; int retval; @@ -218,7 +216,7 @@ void sipe_backend_chat_message(struct sipe_core_public *sipe_public, const gchar *html) { SIPPROTO *pr = backend_session->pr; - gchar *self = sip_uri_self(SIPE_CORE_PRIVATE); + gchar *self = sipe_miranda_uri_self(pr); gchar *msg; GCDEST gcd = {0}; GCEVENT gce = {0}; @@ -306,7 +304,7 @@ void sipe_backend_chat_remove(struct sipe_backend_chat_session *backend_session, { SIPPROTO *pr = backend_session->pr; struct sipe_core_public *sipe_public = pr->sip; - gchar *self = sip_uri_self(SIPE_CORE_PRIVATE); + gchar *self = sipe_miranda_uri_self(pr); GCDEST gcd = {0}; GCEVENT gce = {0}; HANDLE hContact = sipe_backend_buddy_find( sipe_public, uri, NULL ); diff --git a/src/miranda/miranda-media.c b/src/miranda/miranda-media.c index 261d0e6c..c4a5b7e5 100644 --- a/src/miranda/miranda-media.c +++ b/src/miranda/miranda-media.c @@ -32,7 +32,6 @@ #include "sipe-common.h" #include "sipe-backend.h" #include "sipe-core.h" -#include "sipe-core-private.h" #include "miranda-private.h" struct sipe_backend_media { diff --git a/src/miranda/miranda-plugin.c b/src/miranda/miranda-plugin.c index 51c05ff3..77538c95 100644 --- a/src/miranda/miranda-plugin.c +++ b/src/miranda/miranda-plugin.c @@ -53,12 +53,7 @@ #include "sipe-common.h" #include "sipe-backend.h" #include "sipe-core.h" -#include "sipe-core-private.h" #include "sipe-nls.h" -#include "sipe-conf.h" -#include "sipe-utils.h" -#include "sipe-session.h" -#include "sipe-chat.h" #include "miranda-private.h" #include "miranda-resource.h" @@ -457,7 +452,6 @@ static INT_PTR sipe_miranda_start_chat(SIPPROTO *pr, WPARAM wParam, LPARAM lPara { HANDLE hContact = (HANDLE)wParam; struct sipe_core_public *sipe_public = pr->sip; - struct sipe_core_private *sipe_private = SIPE_CORE_PRIVATE; DBVARIANT dbv; if ( !DBGetContactSettingString( hContact, pr->proto.m_szModuleName, SIP_UNIQUEID, &dbv )) { diff --git a/src/miranda/miranda-private.h b/src/miranda/miranda-private.h index 2c498cac..ed85525c 100644 --- a/src/miranda/miranda-private.h +++ b/src/miranda/miranda-private.h @@ -116,10 +116,11 @@ gboolean sipe_miranda_input_remove(struct sipe_miranda_sel_entry *entry); int sipe_miranda_SendBroadcast(SIPPROTO *pr, HANDLE hContact,int type,int result,HANDLE hProcess,LPARAM lParam); void sipe_miranda_SendProtoAck( SIPPROTO *pr, HANDLE hContact, DWORD dwCookie, int nAckResult, int nAckType, const char* pszMessage); void sipe_miranda_msgbox(const char *msg, const char *caption); +gchar *sipe_miranda_uri_self(SIPPROTO *pr); void sipe_miranda_login(SIPPROTO *pr); struct sipe_miranda_connection_info *sipe_miranda_connect(SIPPROTO *pr, const gchar *host, int port, gboolean tls, int timeout, void (*callback)(HANDLE fd, void *data, const gchar *reason), void *data); -gboolean sipe_miranda_cmd(const gchar *cmd, gchar *buf, DWORD *maxlen); +gboolean sipe_miranda_cmd(gchar *cmd, gchar *buf, DWORD *maxlen); gchar* sipe_miranda_eliminate_html(const gchar *string, int len); gchar* sipe_miranda_html2rtf(const gchar *text); diff --git a/src/miranda/miranda-transport.c b/src/miranda/miranda-transport.c index d328f1b5..828166ed 100644 --- a/src/miranda/miranda-transport.c +++ b/src/miranda/miranda-transport.c @@ -30,9 +30,7 @@ #include "sipe-common.h" #include "sipe-core.h" -#include "sipe-core-private.h" #include "sipe-backend.h" -#include "sip-transport.h" #include "sipe-nls.h" #include "newpluginapi.h" diff --git a/src/miranda/miranda-user.c b/src/miranda/miranda-user.c index 007ea899..c5134ded 100644 --- a/src/miranda/miranda-user.c +++ b/src/miranda/miranda-user.c @@ -32,7 +32,6 @@ #include "sipe-backend.h" #include "sipe-core.h" -#include "sipe-core-private.h" #include "miranda-private.h" void sipe_backend_user_feedback_typing(struct sipe_core_public *sipe_public, diff --git a/src/miranda/miranda-utils.c b/src/miranda/miranda-utils.c index 4fedea4f..8f4eff10 100644 --- a/src/miranda/miranda-utils.c +++ b/src/miranda/miranda-utils.c @@ -555,7 +555,7 @@ sipe_miranda_SendProtoAck( SIPPROTO *pr, HANDLE hContact, DWORD dwCookie, int nA } gboolean -sipe_miranda_cmd(const gchar *cmd, gchar *buf, DWORD *maxlen) +sipe_miranda_cmd(gchar *cmd, gchar *buf, DWORD *maxlen) { STARTUPINFOA si = {0}; PROCESS_INFORMATION pi = {0}; @@ -773,6 +773,13 @@ guint MirandaStatusToSipe(int status) { } +gchar *sipe_miranda_uri_self(SIPPROTO *pr) { + gchar *username = sipe_miranda_getString(pr, "username"); + gchar *uri = g_strdup_printf("sip:%s", username); + mir_free(username); + return uri; +} + /* Local Variables: mode: c diff --git a/src/miranda/sipe-miranda.c b/src/miranda/sipe-miranda.c index c5190d21..af815062 100644 --- a/src/miranda/sipe-miranda.c +++ b/src/miranda/sipe-miranda.c @@ -19,12 +19,7 @@ #include "m_protomod.h" #include "sipe-core.h" -#include "sipe-core-private.h" #include "sipe-backend.h" -#include "sipe-utils.h" -#include "sipe-conf.h" -#include "sipe-chat.h" -#include "sipe-session.h" #include "miranda-private.h" #include "miranda-resource.h" @@ -38,56 +33,6 @@ void CreateProtoService(SIPPROTO *pr, const char* szService, SipSimpleServiceFun CreateServiceFunctionObj(str, (MIRANDASERVICEOBJ)*(void**)&serviceProc, pr); } - -/* libsipe interface functions */ -static void* -miranda_sipe_request_authorization(struct sipe_core_private *sipe_private, const char *who, const char *alias, - sipe_backend_buddy_request_authorization_cb auth_cb, - sipe_backend_buddy_request_authorization_cb deny_cb, void *data) -{ - SIPPROTO *pr = sipe_private->public.backend_private; - CCSDATA ccs; - PROTORECVEVENT pre = {0}; - HANDLE hContact; - char* szBlob; - char* pCurBlob; - - hContact = sipe_backend_buddy_find( SIPE_CORE_PUBLIC, who, NULL ); - if (!hContact) - { - hContact = ( HANDLE )CallService( MS_DB_CONTACT_ADD, 0, 0 ); - CallService( MS_PROTO_ADDTOCONTACT, ( WPARAM )hContact,( LPARAM )pr->proto.m_szModuleName ); - DBWriteContactSettingByte( hContact, "CList", "NotOnList", 1 ); - sipe_miranda_setContactString( pr, hContact, SIP_UNIQUEID, who ); // name - sipe_miranda_setContactStringUtf( pr, hContact, "Nick", alias ); // server_alias - } - - ccs.szProtoService = PSR_AUTH; - ccs.wParam = 0; - ccs.lParam = (LPARAM)⪯ - ccs.hContact=hContact = hContact; - - pre.timestamp = time(NULL); - pre.lParam=sizeof(DWORD)+sizeof(HANDLE)+strlen(who)+1+strlen(alias)+1+1+5; - - /*blob is: uin(DWORD), hcontact(HANDLE), nick(ASCIIZ), first(ASCIIZ), last(ASCIIZ), email(ASCIIZ), reason(ASCIIZ)*/ - pCurBlob=szBlob=(char *)_alloca(pre.lParam); - memset(pCurBlob, 0, sizeof(DWORD)); pCurBlob+=sizeof(DWORD); - memcpy(pCurBlob,&hContact,sizeof(HANDLE)); pCurBlob+=sizeof(HANDLE); - strcpy((char *)pCurBlob,who); pCurBlob+=strlen((char *)pCurBlob)+1; - *pCurBlob = '\0'; pCurBlob++; - strcpy((char *)pCurBlob,alias); pCurBlob+=strlen((char *)pCurBlob)+1; - *pCurBlob = '\0'; pCurBlob++; - *pCurBlob = '\0'; pCurBlob++; - pre.szMessage=(char *)szBlob; - - CallService(MS_PROTO_CHAINRECV,0,(LPARAM)&ccs); - - /* TODO: Store callbacks somewhere since miranda has no way to pass them on */ - return NULL; -} - - /**************************************************************************** * Struct that defines our interface with libsipe ****************************************************************************/ -- 2.11.4.GIT