Mercurial > pidgin
diff src/protocols/msn/oim.c @ 19785:852b32710df0
[gaim-migrate @ 16507]
add the contact list retrieve and dump contact list to server
currently can do chanllenge successfully
But can't get the buddy list done
by MaYuan<mayuan2006@gmail.com>
committer: Ethan Blanton <elb@pidgin.im>
author | Ma Yuan <mayuan2006@gmail.com> |
---|---|
date | Mon, 17 Jul 2006 12:22:37 +0000 |
parents | |
children | 8b4653986e8e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/protocols/msn/oim.c Mon Jul 17 12:22:37 2006 +0000 @@ -0,0 +1,103 @@ +/** + * @file oim.c + * get and send MSN offline Instant Message via SOAP request + * Author + * MaYuan<mayuan2006@gmail.com> + * gaim + * + * Gaim is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * + * 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 + */ +#include "msn.h" +#include "soap.h" +#include "oim.h" + +/*new a OIM object*/ +MsnOim * +msn_oim_new(MsnSession *session) +{ + MsnOim *oim; + + oim = g_new0(MsnOim, 1); + oim->session = session; + oim->retrieveconn = msn_soap_new(session,oim,1); + oim->sendconn = msn_soap_new(session,oim,1); + + return oim; +} + +/*destroy the oim object*/ +void +msn_oim_destroy(MsnOim *oim) +{ + msn_soap_destroy(oim->retrieveconn); + msn_soap_destroy(oim->sendconn); + g_free(oim); +} + +/*oim SOAP server login error*/ +static void +msn_oim_login_error_cb(GaimSslConnection *gsc, GaimSslErrorType error, void *data) +{ + MsnSoapConn *soapconn = data; + MsnSession *session; + + session = soapconn->session; + g_return_if_fail(session != NULL); + + msn_session_set_error(session, MSN_ERROR_SERV_DOWN, _("Unable to connect to OIM server")); +} + +/*msn oim SOAP server connect process*/ +static void +msn_oim_login_connect_cb(gpointer data, GaimSslConnection *gsc, + GaimInputCondition cond) +{ + MsnSoapConn *soapconn = data; + MsnSession * session; + MsnOim *oim; + + oim = soapconn->parent; + g_return_if_fail(oim != NULL); + + session = oim->session; + g_return_if_fail(session != NULL); +} + +void msn_oim_send_msg(MsnOim *oim,char * msg) +{ + if(msn_soap_connected(oim->sendconn) == -1){ + msn_soap_init(oim->sendconn,MSN_OIM_SEND_HOST,1, + msn_oim_login_connect_cb, + msn_oim_login_error_cb); + } + +} + +/*msn oim server connect*/ +void +msn_oim_connect(MsnOim *oim) +{ + gaim_debug_info("MaYuan","msn_oim_connect...\n"); + + msn_soap_init(oim->retrieveconn,MSN_OIM_RETRIEVE_HOST,1, + msn_oim_login_connect_cb, + msn_oim_login_error_cb); +} + +/*endof oim.c*/