Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/EionRobb/skype4pidgin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'skypeweb/libskypeweb.h')
-rw-r--r--skypeweb/libskypeweb.h175
1 files changed, 7 insertions, 168 deletions
diff --git a/skypeweb/libskypeweb.h b/skypeweb/libskypeweb.h
index c3f17cb..02155fd 100644
--- a/skypeweb/libskypeweb.h
+++ b/skypeweb/libskypeweb.h
@@ -41,8 +41,9 @@
# endif /* __GNUC__ >= 4 */
#endif /* G_GNUC_NULL_TERMINATED */
+#include "purplecompat.h"
+
#ifdef _WIN32
-# include "win32dep.h"
# define dlopen(a,b) LoadLibrary(a)
# define RTLD_LAZY
# define dlsym(a,b) GetProcAddress(a,b)
@@ -80,7 +81,8 @@
#include "cmds.h"
#include "connection.h"
#include "debug.h"
-#include "dnsquery.h"
+#include "http.h"
+#include "plugins.h"
#include "proxy.h"
#include "request.h"
#include "roomlist.h"
@@ -89,170 +91,11 @@
#include "util.h"
#include "version.h"
-#if !PURPLE_VERSION_CHECK(3, 0, 0)
- #include "blist.h"
- #include "prpl.h"
-#else
- #include "buddylist.h"
- #include "plugins.h"
- #include "http.h"
-#endif
#if GLIB_MAJOR_VERSION >= 2 && GLIB_MINOR_VERSION >= 12
# define atoll(a) g_ascii_strtoll(a, NULL, 0)
#endif
-#if !PURPLE_VERSION_CHECK(3, 0, 0)
- #define purple_connection_error purple_connection_error_reason
- #define purple_notify_user_info_add_pair_html purple_notify_user_info_add_pair
- #define purple_util_fetch_url_request purple_util_fetch_url_request_len_with_account
-
- #define PurpleConversationUpdateType PurpleConvUpdateType
- #define PurpleChatConversation PurpleConvChat
- #define PurpleIMConversation PurpleConvIm
- #define PurpleProtocolAction PurplePluginAction
- #define PURPLE_IS_BUDDY PURPLE_BLIST_NODE_IS_BUDDY
- #define PurpleProtocolChatEntry struct proto_chat_entry
- #define PURPLE_CONNECTION_CONNECTED PURPLE_CONNECTED
- #define PURPLE_CONNECTION_CONNECTING PURPLE_CONNECTING
- #define PURPLE_CONNECTION_FLAG_HTML PURPLE_CONNECTION_HTML
- #define PURPLE_CONNECTION_FLAG_NO_BGCOLOR PURPLE_CONNECTION_NO_BGCOLOR
- #define PURPLE_CONNECTION_FLAG_NO_FONTSIZE PURPLE_CONNECTION_NO_FONTSIZE
- #define purple_connection_get_protocol_data(pc) ((pc)->proto_data)
- #define purple_connection_set_protocol_data(pc, data) ((pc)->proto_data = (data))
- #define purple_connection_set_flags(pc, flags) (pc->flags = flags)
- #define purple_connection_get_flags(pc) (pc->flags)
- #define purple_connection_get_protocol purple_connection_get_prpl
- #define purple_conversation_present_error purple_conv_present_error
- #define purple_account_privacy_check purple_privacy_check
- #define purple_account_get_private_alias purple_account_get_alias
- #define purple_account_set_private_alias purple_account_set_alias
- #define purple_serv_got_im serv_got_im
- #define purple_serv_got_typing serv_got_typing
- #define purple_serv_got_alias serv_got_alias
- #define PurpleIMTypingState PurpleTypingState
- #define PURPLE_IM_NOT_TYPING PURPLE_NOT_TYPING
- #define PURPLE_IM_TYPING PURPLE_TYPING
- #define PURPLE_IM_TYPED PURPLE_TYPED
- #define purple_blist_find_buddy purple_find_buddy
- #define purple_blist_find_group purple_find_group
- #define PurpleChatUser PurpleConvChatBuddy
- #define PurpleChatUserFlags PurpleConvChatBuddyFlags
- #define PURPLE_CHAT_USER_NONE PURPLE_CBFLAGS_NONE
- #define PURPLE_CHAT_USER_OP PURPLE_CBFLAGS_OP
- #define PURPLE_CHAT_USER_FOUNDER PURPLE_CBFLAGS_FOUNDER
- #define PURPLE_CHAT_USER_TYPING PURPLE_CBFLAGS_TYPING
- #define PURPLE_CHAT_USER_AWAY PURPLE_CBFLAGS_AWAY
- #define PURPLE_CHAT_USER_HALFOP PURPLE_CBFLAGS_HALFOP
- #define PURPLE_CHAT_USER_VOICE PURPLE_CBFLAGS_VOICE
- #define PURPLE_CHAT_USER_TYPING PURPLE_CBFLAGS_TYPING
- #define purple_chat_user_get_flags(cb) purple_conv_chat_user_get_flags(
- #define purple_serv_got_joined_chat(pc, id, name) PURPLE_CONV_CHAT(serv_got_joined_chat(pc, id, name))
- #define purple_serv_got_chat_invite serv_got_chat_invite
- #define purple_serv_got_chat_in serv_got_chat_in
- #define purple_chat_conversation_get_topic purple_conv_chat_get_topic
- #define purple_chat_conversation_set_topic purple_conv_chat_set_topic
- #define purple_chat_conversation_find_user(chat, name) purple_conv_chat_cb_find(chat, name)
- #define purple_chat_conversation_add_user purple_conv_chat_add_user
- #define purple_chat_conversation_leave purple_conv_chat_left
- #define purple_chat_conversation_has_left purple_conv_chat_has_left
- #define purple_chat_conversation_add_user purple_conv_chat_add_user
- #define purple_chat_conversation_remove_user purple_conv_chat_remove_user
- #define purple_chat_conversation_clear_users purple_conv_chat_clear_users
- #define purple_protocol_get_id purple_plugin_get_id
- #define purple_chat_conversation_get_id purple_conv_chat_get_id
- #define purple_protocol_got_user_status purple_prpl_got_user_status
- #define purple_protocol_got_user_idle purple_prpl_got_user_idle
- #define PURPLE_CONVERSATION_UPDATE_TOPIC PURPLE_CONV_UPDATE_TOPIC
- #define PURPLE_CONVERSATION_UPDATE_UNSEEN PURPLE_CONV_UPDATE_UNSEEN
- #define purple_conversations_find_chat(pc, id) PURPLE_CONV_CHAT(purple_find_chat(pc, id))
- #define purple_conversations_find_chat_with_account(name, account) PURPLE_CONV_CHAT(purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, name, account))
- #define purple_conversations_find_im_with_account(name, account) PURPLE_CONV_IM(purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, account))
- #define purple_chat_conversation_new(account, from) PURPLE_CONV_CHAT(purple_conversation_new(PURPLE_CONV_TYPE_CHAT, account, from))
- #define purple_im_conversation_new(account, from) PURPLE_CONV_IM(purple_conversation_new(PURPLE_CONV_TYPE_IM, account, from))
- #define PURPLE_CONVERSATION(chatorim) (chatorim == NULL ? NULL : chatorim->conv)
- #define PURPLE_IM_CONVERSATION(conv) PURPLE_CONV_IM(conv)
- #define PURPLE_CHAT_CONVERSATION(conv) PURPLE_CONV_CHAT(conv)
- #define PURPLE_IS_IM_CONVERSATION(conv) (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)
- #define PURPLE_IS_CHAT_CONVERSATION(conv) (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT)
- #define purple_conversation_get_connection purple_conversation_get_gc
- #define PurpleMessage PurpleConvMessage
- #define purple_conversation_write_message(conv, msg) purple_conversation_write(conv, msg->who, msg->what, msg->flags, msg->when)
- #define PurpleXmlNode xmlnode
- #define purple_xmlnode_from_str xmlnode_from_str
- #define purple_xmlnode_get_child xmlnode_get_child
- #define purple_xmlnode_get_next_twin xmlnode_get_next_twin
- #define purple_xmlnode_get_data xmlnode_get_data
- #define purple_xmlnode_get_data_unescaped xmlnode_get_data_unescaped
- #define purple_xmlnode_get_attrib xmlnode_get_attrib
- #define purple_xmlnode_free xmlnode_free
- #define PurpleHash PurpleCipherContext
- #define purple_sha256_hash_new() purple_cipher_context_new(purple_ciphers_find_cipher("sha256"), NULL)
- #define purple_hash_append purple_cipher_context_append
- #define purple_hash_digest(hash, data, len) purple_cipher_context_digest(hash, len, data, NULL)
- #define purple_hash_destroy purple_cipher_context_destroy
- #define purple_xfer_set_protocol_data(xfer, proto_data) ((xfer)->data = (proto_data))
- #define purple_xfer_get_protocol_data(xfer) ((xfer)->data)
-#if !PURPLE_VERSION_CHECK(2, 10, 12) && !FEDORA
-static inline gboolean
-purple_xfer_write_file(PurpleXfer *xfer, const guchar *buffer, gsize size) {
- PurpleXferUiOps *ui_ops = purple_xfer_get_ui_ops(xfer);
- purple_xfer_set_bytes_sent(xfer, purple_xfer_get_bytes_sent(xfer) +
- (ui_ops && ui_ops->ui_write ? ui_ops->ui_write(xfer, buffer, size) : fwrite(buffer, 1, size, xfer->dest_fp)));
- return TRUE;
-}
-#endif
- #define PURPLE_CMD_FLAG_PROTOCOL_ONLY PURPLE_CMD_FLAG_PRPL_ONLY
- #define PURPLE_CMD_P_PLUGIN PURPLE_CMD_P_PRPL
-
-/*typedef struct {
- PurpleConvChatBuddy cb;
- PurpleConvChat *chat;
-} PurpleChatUser;*/
-
-typedef struct {
- gchar *host;
- gint port;
- gchar *path;
- gchar *user;
- gchar *passwd;
-} PurpleHttpURL;
-
-static inline PurpleHttpURL *purple_http_url_parse(const gchar *url) {
- PurpleHttpURL *ret = g_new0(PurpleHttpURL, 1);
- purple_url_parse(url, &(ret->host), &(ret->port), &(ret->path), &(ret->user), &(ret->passwd));
- return ret;
-}
- #define purple_http_url_get_host(httpurl) (httpurl->host)
- #define purple_http_url_get_path(httpurl) (httpurl->path)
-static inline void purple_http_url_free(PurpleHttpURL *phl) { g_free(phl->host); g_free(phl->path); g_free(phl->user); g_free(phl->passwd); g_free(phl); }
-
-#else
- #define purple_conversation_set_data(conv, key, value) g_object_set_data(G_OBJECT(conv), key, value)
- #define purple_conversation_get_data(conv, key) g_object_get_data(G_OBJECT(conv), key)
- #define purple_hash_destroy g_object_unref
- #define PURPLE_TYPE_STRING G_TYPE_STRING
-
-
-typedef struct _SkypeWebProtocol
-{
- PurpleProtocol parent;
-} SkypeWebProtocol;
-
-typedef struct _SkypeWebProtocolClass
-{
- PurpleProtocolClass parent_class;
-} SkypeWebProtocolClass;
-
-G_MODULE_EXPORT GType skypeweb_protocol_get_type(void);
-#define SKYPEWEB_TYPE_PROTOCOL (skypeweb_protocol_get_type())
-#define SKYPEWEB_PROTOCOL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SKYPEWEB_TYPE_PROTOCOL, SkypeWebProtocol))
-#define SKYPEWEB_PROTOCOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SKYPEWEB_TYPE_PROTOCOL, SkypeWebProtocolClass))
-#define SKYPEWEB_IS_PROTOCOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SKYPEWEB_TYPE_PROTOCOL))
-#define SKYPEWEB_IS_PROTOCOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SKYPEWEB_TYPE_PROTOCOL))
-#define SKYPEWEB_PROTOCOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), SKYPEWEB_TYPE_PROTOCOL, SkypeWebProtocolClass))
-
-#endif
#define SKYPEWEB_MAX_MSG_RETRY 2
@@ -301,11 +144,9 @@ struct _SkypeWebAccount {
PurpleAccount *account;
PurpleConnection *pc;
- GSList *conns; /**< A list of all active SkypeWebConnections */
- GQueue *waiting_conns; /**< A list of all SkypeWebConnections waiting to process */
- GSList *dns_queries;
- GHashTable *cookie_table;
- GHashTable *hostname_ip_cache;
+ PurpleHttpKeepalivePool *keepalive_pool;
+ PurpleHttpConnectionSet *conns;
+ PurpleHttpCookieJar *cookie_jar;
gchar *messages_host;
GHashTable *sent_messages_hash;
@@ -321,8 +162,6 @@ struct _SkypeWebAccount {
gchar *endpoint;
gint registration_expiry;
gint vdms_expiry;
-
- GSList *url_datas; /**< PurpleUtilFetchUrlData to be cancelled on logout */
};
struct _SkypeWebBuddy {