diff src/protocols/msn/servconn.h @ 5309:e2e53316a21d

[gaim-migrate @ 5681] Announcing the new MSN prpl! It probably has some bugs, and for the time being, there is no file transfer. That's good though, because the current MSN file transfer is a little broken. I've had many corrupted files. I'll commit new file transfer code when it's written. I want this heavily tested before 0.63! If you use MSN, please talk to people on it. Let me know of any oddities, crashes, bugs, whatever. I'll fix things as I find them. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Tue, 06 May 2003 02:06:56 +0000
parents
children 4f72b611f0ee
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/protocols/msn/servconn.h	Tue May 06 02:06:56 2003 +0000
@@ -0,0 +1,106 @@
+/**
+ * @file servconn.h Server connection functions
+ *
+ * gaim
+ *
+ * Copyright (C) 2003 Christian Hammond <chipx86@gnupdate.org>
+ * 
+ * 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
+ */
+#ifndef _MSN_SERVCONN_H_
+#define _MSN_SERVCONN_H_
+
+typedef struct _MsnServConn MsnServConn;
+
+#include "msg.h"
+
+typedef gboolean (*MsnServConnCommandCb)(MsnServConn *servconn,
+										 const char *cmd, const char **params,
+										 size_t param_count);
+
+typedef gboolean (*MsnServConnMsgCb)(MsnServConn *servconn,
+									 const MsnMessage *msg);
+
+#include "session.h"
+
+struct _MsnServConn
+{
+	MsnSession *session;
+
+	gboolean connected;
+
+	char *server;
+	int port;
+
+	int fd;
+	int inpa;
+
+	char *rxqueue;
+	int rxlen;
+
+	GSList *txqueue;
+
+	gboolean parsing_msg;
+	char *msg_passport;
+	char *msg_friendly;
+	int msg_len;
+
+	GHashTable *commands;
+	GHashTable *msg_types;
+
+	gboolean (*connect_cb)(gpointer, gint, GaimInputCondition);
+	void (*failed_read_cb)(gpointer, gint, GaimInputCondition);
+	void (*login_cb)(gpointer, gint, GaimInputCondition);
+
+	void *data;
+};
+
+MsnServConn *msn_servconn_new(MsnSession *session);
+
+void msn_servconn_destroy(MsnServConn *servconn);
+
+gboolean msn_servconn_connect(MsnServConn *servconn);
+void msn_servconn_disconnect(MsnServConn *servconn);
+
+void msn_servconn_set_server(MsnServConn *servconn, const char *server,
+							 int port);
+
+const char *msn_servconn_get_server(const MsnServConn *servconn);
+int msn_servconn_get_port(const MsnServConn *servconn);
+
+void msn_servconn_set_connect_cb(MsnServConn *servconn,
+		gboolean (*connect_cb)(gpointer, gint, GaimInputCondition));
+
+void msn_servconn_set_failed_read_cb(MsnServConn *servconn,
+		void (*failed_read_cb)(gpointer, gint, GaimInputCondition));
+
+size_t msn_servconn_write(MsnServConn *servconn, const char *buf,
+						  size_t size);
+
+gboolean msn_servconn_send_command(MsnServConn *servconn, const char *command,
+								   const char *params);
+
+void msn_servconn_register_command(MsnServConn *servconn,
+								   const char *command,
+								   MsnServConnCommandCb cb);
+
+void msn_servconn_register_msg_type(MsnServConn *servconn,
+									const char *content_type,
+									MsnServConnMsgCb cb);
+
+void msn_servconn_parse_data(gpointer data, gint source,
+							 GaimInputCondition cond);
+
+#endif /* _MSN_SERVCONN_H_ */