From cb4a46e7fbe62d788e66ed6121c717a2d22a4d7c Mon Sep 17 00:00:00 2001 From: watcherhd Date: Thu, 21 Apr 2011 14:14:52 +0000 Subject: svn.miranda.im is moving to a new home! git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@7 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- miranda-wine/protocols/JabberG/jabber_ws.cpp | 92 ++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 miranda-wine/protocols/JabberG/jabber_ws.cpp (limited to 'miranda-wine/protocols/JabberG/jabber_ws.cpp') diff --git a/miranda-wine/protocols/JabberG/jabber_ws.cpp b/miranda-wine/protocols/JabberG/jabber_ws.cpp new file mode 100644 index 0000000..a2bd1d1 --- /dev/null +++ b/miranda-wine/protocols/JabberG/jabber_ws.cpp @@ -0,0 +1,92 @@ +/* + +Jabber Protocol Plugin for Miranda IM +Copyright ( C ) 2002-04 Santithorn Bunchua +Copyright ( C ) 2005-06 George Hazan + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU 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 General Public License for more details. + +You should have received a copy of the GNU 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. + +File name : $Source: /cvsroot/miranda/miranda/protocols/JabberG/jabber_ws.cpp,v $ +Revision : $Revision: 2866 $ +Last change on : $Date: 2006-05-16 20:39:40 +0400 (Втр, 16 Май 2006) $ +Last change by : $Author: ghazan $ + +*/ + +#include "jabber.h" + +BOOL JabberWsInit( void ) +{ + NETLIBUSER nlu = {0}; + char name[128]; + + sprintf( name, "%s %s", jabberModuleName, JTranslate( "connection" )); + + nlu.cbSize = sizeof( nlu ); + nlu.flags = NUF_OUTGOING | NUF_INCOMING | NUF_HTTPCONNS; // | NUF_HTTPGATEWAY; + nlu.szDescriptiveName = name; + nlu.szSettingsModule = jabberProtoName; + //nlu.szHttpGatewayHello = "http://http.proxy.icq.com/hello"; + //nlu.szHttpGatewayUserAgent = "Mozilla/4.08 [en] ( WinNT; U ;Nav )"; + //nlu.pfnHttpGatewayInit = JabberHttpGatewayInit; + //nlu.pfnHttpGatewayBegin = JabberHttpGatewayBegin; + //nlu.pfnHttpGatewayWrapSend = JabberHttpGatewayWrapSend; + //nlu.pfnHttpGatewayUnwrapRecv = JabberHttpGatewayUnwrapRecv; + hNetlibUser = ( HANDLE ) JCallService( MS_NETLIB_REGISTERUSER, 0, ( LPARAM )&nlu ); + + return ( hNetlibUser!=NULL )?TRUE:FALSE; +} + +void JabberWsUninit( void ) +{ + Netlib_CloseHandle( hNetlibUser ); + hNetlibUser = NULL; +} + +JABBER_SOCKET JabberWsConnect( char* host, WORD port ) +{ + NETLIBOPENCONNECTION nloc = { 0 }; + nloc.cbSize = sizeof( nloc ); + nloc.szHost = host; + nloc.wPort = port; + return ( HANDLE )JCallService( MS_NETLIB_OPENCONNECTION, ( WPARAM ) hNetlibUser, ( LPARAM )&nloc ); +} + +int JabberWsSend( JABBER_SOCKET hConn, char* data, int datalen ) +{ + int len; + + if (( len=Netlib_Send( hConn, data, datalen, MSG_DUMPASTEXT ))==SOCKET_ERROR || len!=datalen ) { + JabberLog( "Netlib_Send() failed, error=%d", WSAGetLastError()); + return FALSE; + } + return TRUE; +} + +int JabberWsRecv( JABBER_SOCKET hConn, char* data, long datalen ) +{ + int ret; + + ret = Netlib_Recv( hConn, data, datalen, MSG_DUMPASTEXT ); + if( ret == SOCKET_ERROR ) { + JabberLog( "Netlib_Recv() failed, error=%d", WSAGetLastError()); + return 0; + } + if( ret == 0 ) { + JabberLog( "Connection closed gracefully" ); + return 0; + } + return ret; +} -- cgit v1.2.3