libpurple/plugins/perl/common/Proxy.xs

Thu, 30 Oct 2008 22:40:49 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Thu, 30 Oct 2008 22:40:49 +0000
changeset 24569
5dbd0617a27d
parent 23983
586866581434
child 29170
cb77dc0c1d66
permissions
-rw-r--r--

Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
to detect when we're still using deprecated functions internally (and by
extension, when we've deprecated something we shouldn't have). In the
course of developing this changeset, I fixed a few such cases.

Given that the plan is to switch from PURPLE_HIDE_STRUCTS to
PURPLE_DISABLE_DEPRECATED as each struct is fully dealt with, this will
also ensure we have no regressions on the struct hiding work.

Deprecated functions are still available to the respective .c file, to
avoid missing prototype errors. Also, Perl and DBus undef the
*_DISABLE_DEPRECATED defines as appropriate so that deprecated functions
will still be exported to Perl plugins and via DBus. (Otherwise, we'd
be breaking backwards compatibility.)

#include "module.h"

MODULE = Purple::Proxy  PACKAGE = Purple::Proxy  PREFIX = purple_proxy_
PROTOTYPES: ENABLE

BOOT:
{
	HV *stash = gv_stashpv("Purple::ProxyType::", 1);

	static const constiv *civ, const_iv[] = {
#define const_iv(name) {#name, (IV)PURPLE_PROXY_##name}
		const_iv(USE_GLOBAL),
		const_iv(NONE),
		const_iv(HTTP),
		const_iv(SOCKS4),
		const_iv(SOCKS5),
		const_iv(USE_ENVVAR),
	};

	for (civ = const_iv + sizeof(const_iv) / sizeof(const_iv[0]); civ-- > const_iv; )
		newCONSTSUB(stash, (char *)civ->name, newSViv(civ->iv));
}

Purple::Handle
purple_proxy_get_handle()

MODULE = Purple::Proxy  PACKAGE = Purple::ProxyInfo  PREFIX = purple_proxy_info_
PROTOTYPES: ENABLE

void
purple_proxy_info_destroy(info)
	Purple::ProxyInfo info

const char *
purple_proxy_info_get_host(info)
	Purple::ProxyInfo info

const char *
purple_proxy_info_get_password(info)
	Purple::ProxyInfo info

int
purple_proxy_info_get_port(info)
	Purple::ProxyInfo info

Purple::ProxyType
purple_proxy_info_get_type(info)
	Purple::ProxyInfo info

const char *
purple_proxy_info_get_username(info)
	Purple::ProxyInfo info

Purple::ProxyInfo
purple_proxy_info_new()

void
purple_proxy_info_set_host(info, host)
	Purple::ProxyInfo info
	const char *host

void
purple_proxy_info_set_password(info, password)
	Purple::ProxyInfo info
	const char *password

void
purple_proxy_info_set_port(info, port)
	Purple::ProxyInfo info
	int port

void
purple_proxy_info_set_type(info, type)
	Purple::ProxyInfo info
	Purple::ProxyType type

void
purple_proxy_info_set_username(info, username)
	Purple::ProxyInfo info
	const char *username

MODULE = Purple::Proxy  PACKAGE = Purple::Proxy  PREFIX = purple_
PROTOTYPES: ENABLE

Purple::ProxyInfo
purple_global_proxy_get_info()

mercurial