diff options
author | Gary Kramlich <grim@reaperworld.com> | 2020-05-01 12:13:35 -0500 |
---|---|---|
committer | Gary Kramlich <grim@reaperworld.com> | 2020-05-01 12:13:35 -0500 |
commit | 2d1dc1f8f6e7cf925bee7af3d0be8d0723666eff (patch) | |
tree | 9f2a7c4a5f3ecf72d4028a439ac53db524d31bb9 /libpurple/internal.h | |
parent | f5653f5c8182c2da2bad617692dd504c0a629576 (diff) | |
download | pidgin-2d1dc1f8f6e7cf925bee7af3d0be8d0723666eff.tar.gz |
Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Diffstat (limited to 'libpurple/internal.h')
-rw-r--r-- | libpurple/internal.h | 269 |
1 files changed, 15 insertions, 254 deletions
diff --git a/libpurple/internal.h b/libpurple/internal.h index 65d53897bf..40c38e99ba 100644 --- a/libpurple/internal.h +++ b/libpurple/internal.h @@ -28,21 +28,21 @@ * @title: Internal definitions and includes */ +#if !defined(PURPLE_COMPILATION) +#error "internal.h included outside of libpurple" +#endif + #ifndef GLIB_VERSION_MIN_REQUIRED #define GLIB_VERSION_MIN_REQUIRED (GLIB_VERSION_2_28) #endif #ifdef HAVE_CONFIG_H +# ifdef GETTEXT_PACKAGE +# undef GETTEXT_PACKAGE +# endif # include <config.h> #endif -/* for SIOCGIFCONF in SKYOS */ -#ifdef SKYOS -#include <net/sockios.h> -#endif - -#include <glib/gi18n-lib.h> - #ifdef HAVE_ENDIAN_H # include <endian.h> #endif @@ -55,11 +55,13 @@ #define BUF_LONG BUF_LEN * 2 #include <sys/types.h> + #ifndef _WIN32 -#include <sys/time.h> -#include <sys/wait.h> -#include <sys/time.h> +# include <sys/time.h> +# include <sys/wait.h> +# include <sys/time.h> #endif + #include <ctype.h> #include <errno.h> #include <fcntl.h> @@ -70,11 +72,11 @@ #include <time.h> #ifdef HAVE_ICONV -#include <iconv.h> +# include <iconv.h> #endif #ifdef HAVE_LANGINFO_CODESET -#include <langinfo.h> +# include <langinfo.h> #endif #ifndef _WIN32 @@ -92,11 +94,8 @@ # define HOST_NAME_MAX 255 #endif -#include <glib.h> -#include <glib/gstdio.h> - #ifdef _WIN32 -#include "win32/win32dep.h" +# include "win32/win32dep.h" #endif #ifdef HAVE_CONFIG_H @@ -109,16 +108,6 @@ #endif #endif -#define PURPLE_STATIC_ASSERT(condition, message) \ - { typedef char static_assertion_failed_ ## message \ - [(condition) ? 1 : -1]; static_assertion_failed_ ## message dummy; \ - (void)dummy; } - -/* This is meant to track use-after-free errors. - * TODO: it should be disabled in released code. */ -#define PURPLE_ASSERT_CONNECTION_IS_VALID(gc) \ - _purple_assert_connection_is_valid(gc, __FILE__, __LINE__) - #ifdef __clang__ #define PURPLE_BEGIN_IGNORE_CAST_ALIGN \ @@ -145,232 +134,4 @@ #endif -typedef union -{ - struct sockaddr sa; - struct sockaddr_in in; - struct sockaddr_in6 in6; - struct sockaddr_storage storage; -} common_sockaddr_t; - -#define PURPLE_WEBSITE "https://pidgin.im/" -#define PURPLE_DEVEL_WEBSITE "https://developer.pidgin.im/" - - -/* INTERNAL FUNCTIONS */ - -#include "accounts.h" -#include "connection.h" - -/** - * _purple_account_set_current_error: - * @account: The account to set the error for. - * @new_err: The #PurpleConnectionErrorInfo instance representing the - * error. - * - * Sets an error for an account. - */ -void _purple_account_set_current_error(PurpleAccount *account, - PurpleConnectionErrorInfo *new_err); - -/** - * _purple_account_to_xmlnode: - * @account: The account - * - * Get an XML description of an account. - * - * Returns: The XML description of the account. - */ -PurpleXmlNode *_purple_account_to_xmlnode(PurpleAccount *account); - -/** - * _purple_blist_get_last_child: - * @node: The node whose last child is to be retrieved. - * - * Returns the last child of a particular node. - * - * Returns: The last child of the node. - */ -PurpleBlistNode *_purple_blist_get_last_child(PurpleBlistNode *node); - -/* This is for the accounts code to notify the buddy icon code that - * it's done loading. We may want to replace this with a signal. */ -void -_purple_buddy_icons_account_loaded_cb(void); - -/* This is for the buddy list to notify the buddy icon code that - * it's done loading. We may want to replace this with a signal. */ -void -_purple_buddy_icons_blist_loaded_cb(void); - -/** - * _purple_connection_new: - * @account: The account the connection should be connecting to. - * @regist: Whether we are registering a new account or just - * trying to do a normal signon. - * @password: The password to use. - * - * Creates a connection to the specified account and either connects - * or attempts to register a new account. If you are logging in, - * the connection uses the current active status for this account. - * So if you want to sign on as "away," for example, you need to - * have called purple_account_set_status(account, "away"). - * (And this will call purple_account_connect() automatically). - * - * Note: This function should only be called by purple_account_connect() - * in account.c. If you're trying to sign on an account, use that - * function instead. - */ -void _purple_connection_new(PurpleAccount *account, gboolean regist, - const char *password); -/** - * _purple_connection_new_unregister: - * @account: The account to unregister - * @password: The password to use. - * @cb: Optional callback to be called when unregistration is complete - * @user_data: user data to pass to the callback - * - * Tries to unregister the account on the server. If the account is not - * connected, also creates a new connection. - * - * Note: This function should only be called by purple_account_unregister() - * in account.c. - */ -void _purple_connection_new_unregister(PurpleAccount *account, const char *password, - PurpleAccountUnregistrationCb cb, void *user_data); -/** - * _purple_connection_wants_to_die: - * @gc: The connection to check - * - * Checks if a connection is disconnecting, and should not attempt to reconnect. - * - * Note: This function should only be called by purple_account_set_enabled() - * in account.c. - */ -gboolean _purple_connection_wants_to_die(PurpleConnection *gc); - -/** - * _purple_connection_add_active_chat: - * @gc: The connection - * @chat: The chat conversation to add - * - * Adds a chat to the active chats list of a connection - * - * Note: This function should only be called by purple_serv_got_joined_chat() - * in server.c. - */ -void _purple_connection_add_active_chat(PurpleConnection *gc, - PurpleChatConversation *chat); -/** - * _purple_connection_remove_active_chat: - * @gc: The connection - * @chat: The chat conversation to remove - * - * Removes a chat from the active chats list of a connection - * - * Note: This function should only be called by purple_serv_got_chat_left() - * in server.c. - */ -void _purple_connection_remove_active_chat(PurpleConnection *gc, - PurpleChatConversation *chat); - -/** - * _purple_conversations_update_cache: - * @conv: The conversation. - * @name: The new name. If no change, use %NULL. - * @account: The new account. If no change, use %NULL. - * - * Updates the conversation cache to use a new conversation name and/or - * account. This function only updates the conversation cache. It is the - * caller's responsibility to actually update the conversation. - * - * Note: This function should only be called by purple_conversation_set_name() - * and purple_conversation_set_account() in conversation.c. - */ -void _purple_conversations_update_cache(PurpleConversation *conv, - const char *name, PurpleAccount *account); - -/** - * _purple_statuses_get_primitive_scores: - * - * Note: This function should only be called by - * purple_buddy_presence_compute_score() in presence.c. - * - * Returns: The primitive scores array from status.c. - */ -int *_purple_statuses_get_primitive_scores(void); - -/** - * _purple_blist_get_localized_default_group_name: - * - * Returns the name of default group for previously used non-English - * localization. It's used for merging default group, in case when roster - * contains localized name. - * - * Please note, prpls shouldn't save default group name depending on current - * locale. So, this function is mostly for libpurple2 compatibility. And for - * improperly written prpls. - */ -const gchar * -_purple_blist_get_localized_default_group_name(void); - -/** - * Sets most commonly used socket flags: O_NONBLOCK and FD_CLOEXEC. - * - * @param fd The file descriptor for the socket. - * - * @return TRUE if succeeded, FALSE otherwise. - */ -gboolean -_purple_network_set_common_socket_flags(int fd); - -/** - * A fstat alternative, like g_stat for stat. - * - * @param fd The file descriptor. - * @param st The stat buffer. - * - * @return the result just like for fstat. - */ -int -_purple_fstat(int fd, GStatBuf *st); - -/** - * _purple_message_init: (skip) - * - * Initializes the #PurpleMessage subsystem. - */ -void -_purple_message_init(void); - -/** - * _purple_message_uninit: (skip) - * - * Uninitializes the #PurpleMessage subsystem. - */ -void -_purple_message_uninit(void); - -void -_purple_assert_connection_is_valid(PurpleConnection *gc, - const gchar *file, int line); - -/** - * _purple_conversation_write_common: - * @conv: The conversation. - * @msg: The message. - * - * Writes to a conversation window. - * - * This function should not be used to write IM or chat messages. Use - * purple_conversation_write_message() instead. This function will - * most likely call this anyway, but it may do it's own formatting, - * sound playback, etc. depending on whether the conversation is a chat or an - * IM. - * - * See purple_conversation_write_message(). - */ -void -_purple_conversation_write_common(PurpleConversation *conv, PurpleMessage *msg); - #endif /* PURPLE_INTERNAL_H */ |