view src/proxy.h @ 4597:1969709eee1e

[gaim-migrate @ 4882] You know how when you get info with TOC it only works 25% of the time? This fixes that! I wrote the patch, but George Vulov was the one who realized what was going on. Here's his post from the forums: I was looking at the gaim TOC source and I noticed that when gaim receives a GOTO_URL command, it appends the given url to "http://toc.oscar.aol.com";. However, toc.oscar.aol.com resolves to different servers at different times, so when one is logged on using TOC for over 10 mins and requests someone's info, "<H1>The requested URL 901450_722937 was not found on this server</H1>" comes up. gaim should request the info from the specific toc server it is connected to, instead of using toc.oscar.aol.com So basically... we lookup the IP address of our connection socket and keep that in TOC's protocol data. Then, when we get someone's info, open http://64.12.163.214:port/bleh instead of http://toc.oscar.aol.com:port/bleh Thanks George, you da man. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Fri, 21 Feb 2003 05:53:40 +0000
parents 7ba9b56a8796
children d19872836812
line wrap: on
line source

/*
 * gaim
 *
 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */

/* this is the export part of the proxy.c file. it does a little
   prototype-ing stuff and redefine some net function to mask them
   with some kind of transparent layer */ 

#ifndef _PROXY_H_
#define _PROXY_H_

#include <sys/types.h>
/*this must happen before sys/socket.h or freebsd won't compile*/

#ifndef _WIN32
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#else
#include <winsock.h>
#endif

#include <glib.h>

typedef enum {
	PROXY_NONE = 0,
	PROXY_HTTP,
	PROXY_SOCKS4,
	PROXY_SOCKS5,
} proxytype_t;

extern char proxyhost[128];
extern int  proxyport;
extern proxytype_t  proxytype;
extern char proxyuser[128];
extern char proxypass[128];
extern guint proxy_info_is_from_gaimrc;

typedef enum {
	GAIM_INPUT_READ = 1 << 0,
	GAIM_INPUT_WRITE = 1 << 1
} GaimInputCondition;
typedef void (*GaimInputFunction)(gpointer, gint, GaimInputCondition);

extern gint gaim_input_add(int, GaimInputCondition, GaimInputFunction, gpointer);
extern void gaim_input_remove(gint);

extern int proxy_connect(char *host, int port, GaimInputFunction func, gpointer data);

#endif /* _PROXY_H_ */