aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-06-09 03:52:28 +0200
committerJelmer Vernooij <jelmer@samba.org>2008-06-09 03:52:28 +0200
commitc4a1036214c5f5c1ce14e937e8cdabc9fdf2c068 (patch)
treec9efb246958cf81ed2d977f8d00499a136a1b23a /lib
parente46e077ccbe5e3e13637618934a0f7979db6bc69 (diff)
parent783e9b76de9a8ec16e8229d7c476b16ba8011554 (diff)
Merge integration branch.
Diffstat (limited to 'lib')
-rw-r--r--lib/arc.h4
-rw-r--r--lib/proxy.c11
2 files changed, 15 insertions, 0 deletions
diff --git a/lib/arc.h b/lib/arc.h
index 58f30d3d..816fa612 100644
--- a/lib/arc.h
+++ b/lib/arc.h
@@ -30,6 +30,10 @@ struct arc_state
unsigned char i, j;
};
+#ifndef G_GNUC_MALLOC
+#define G_GNUC_MALLOC
+#endif
+
G_GNUC_MALLOC struct arc_state *arc_keymaker( unsigned char *key, int kl, int cycles );
unsigned char arc_getbyte( struct arc_state *st );
int arc_encode( char *clear, int clear_len, unsigned char **crypt, char *password, int pad_to );
diff --git a/lib/proxy.c b/lib/proxy.c
index 53b89d64..91493557 100644
--- a/lib/proxy.c
+++ b/lib/proxy.c
@@ -113,6 +113,7 @@ static gboolean gaim_io_connected(gpointer data, gint source, b_input_condition
static int proxy_connect_none(const char *host, unsigned short port, struct PHB *phb)
{
struct sockaddr_in *sin;
+ struct sockaddr_in me;
int fd = -1;
if (!(sin = gaim_gethostbyname(host, port))) {
@@ -127,6 +128,16 @@ static int proxy_connect_none(const char *host, unsigned short port, struct PHB
sock_make_nonblocking(fd);
+ if( global.conf->iface_out )
+ {
+ me.sin_family = AF_INET;
+ me.sin_port = 0;
+ me.sin_addr.s_addr = inet_addr( global.conf->iface_out );
+
+ if( bind( fd, (struct sockaddr *) &me, sizeof( me ) ) != 0 )
+ event_debug( "bind( %d, \"%s\" ) failure\n", fd, global.conf->iface_out );
+ }
+
event_debug("proxy_connect_none( \"%s\", %d ) = %d\n", host, port, fd);
if (connect(fd, (struct sockaddr *)sin, sizeof(*sin)) < 0 && !sockerr_again()) {