Moved dcc_ip from prefs to sess->server.
}
guint32
-dcc_get_my_address (void) /* the address we'll tell the other person */
+dcc_get_my_address (session *sess) /* the address we'll tell the other person */
{
struct hostent *dns_query;
guint32 addr = 0;
- if (prefs.hex_dcc_ip_from_server && prefs.dcc_ip)
- addr = prefs.dcc_ip;
+ if (prefs.hex_dcc_ip_from_server && sess->server->dcc_ip)
+ addr = sess->server->dcc_ip;
else if (prefs.hex_dcc_ip[0])
{
dns_query = gethostbyname ((const char *) prefs.hex_dcc_ip);
/*if we have a dcc_ip, we use that, so the remote client can connect*/
/*else we try to take an address from hex_dcc_ip*/
/*if something goes wrong we tell the client to connect to our LAN ip*/
- dcc->addr = dcc_get_my_address ();
+ dcc->addr = dcc_get_my_address (sess);
/*if nothing else worked we use the address we bound to*/
if (dcc->addr == 0)
void handle_dcc (session *sess, char *nick, char *word[], char *word_eol[],
const message_tags_data *tags_data);
void dcc_show_list (session *sess);
-guint32 dcc_get_my_address (void);
+guint32 dcc_get_my_address (session *sess);
void dcc_get_with_destfile (struct DCC *dcc, char *utf8file);
#endif
/* these are the private variables */
guint32 local_ip;
- guint32 dcc_ip;
unsigned int wait_on_exit; /* wait for logs to be flushed to disk IF we're connected */
int proxy_sok4;
int proxy_sok6;
int id; /* unique ID number (for plugin API) */
+
+ /* dcc_ip moved from haxchatprefs to make it per-server */
+ guint32 dcc_ip;
+
#ifdef USE_OPENSSL
SSL_CTX *ctx;
SSL *ssl;
HostAddr = gethostbyname (ip);
if (HostAddr)
{
- prefs.dcc_ip = ((struct in_addr *) HostAddr->h_addr)->s_addr;
+ sess->server->dcc_ip = ((struct in_addr *) HostAddr->h_addr)->s_addr;
EMIT_SIGNAL_TIMESTAMP (XP_TE_FOUNDIP, sess->server->server_session,
inet_ntoa (*((struct in_addr *) HostAddr->h_addr)),
NULL, NULL, NULL, 0, tags_data->timestamp);
if (!word[2][0])
return FALSE;
- addr = dcc_get_my_address ();
+ addr = dcc_get_my_address (sess);
if (addr == 0)
{
/* use the one from our connected server socket */