Mercurial > pidgin
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_ */
