2012-05-03 18:32:18 +00:00
|
|
|
#ifndef GATEWAY_H_INCLUDED
|
|
|
|
#define GATEWAY_H_INCLUDED
|
2012-06-28 03:17:49 +00:00
|
|
|
#define GATEWAY_H_VERSION "$Id: gateway.h,v 1.21 2011/09/04 11:10:56 fabiankeil Exp $"
|
2012-05-03 18:32:18 +00:00
|
|
|
/*********************************************************************
|
|
|
|
*
|
|
|
|
* File : $Source: /cvsroot/ijbswa/current/gateway.h,v $
|
|
|
|
*
|
|
|
|
* Purpose : Contains functions to connect to a server, possibly
|
|
|
|
* using a "gateway" (i.e. HTTP proxy and/or SOCKS4
|
|
|
|
* proxy). Also contains the list of gateway types.
|
|
|
|
*
|
2012-06-28 03:17:49 +00:00
|
|
|
* Copyright : Written by and Copyright (C) 2001-2009 the
|
2012-05-03 18:32:18 +00:00
|
|
|
* Privoxy team. http://www.privoxy.org/
|
|
|
|
*
|
|
|
|
* Based on the Internet Junkbuster originally written
|
2012-06-28 03:17:49 +00:00
|
|
|
* by and Copyright (C) 1997 Anonymous Coders and
|
2012-05-03 18:32:18 +00:00
|
|
|
* Junkbusters Corporation. http://www.junkbusters.com
|
|
|
|
*
|
2012-06-28 03:17:49 +00:00
|
|
|
* This program is free software; you can redistribute it
|
2012-05-03 18:32:18 +00:00
|
|
|
* 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.
|
|
|
|
*
|
|
|
|
* The GNU General Public License should be included with
|
|
|
|
* this file. If not, you can view it at
|
|
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
|
|
* or write to the Free Software Foundation, Inc., 59
|
|
|
|
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*
|
|
|
|
*********************************************************************/
|
2012-06-28 03:17:49 +00:00
|
|
|
|
2012-05-03 18:32:18 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
struct forward_spec;
|
|
|
|
struct http_request;
|
|
|
|
struct client_state;
|
|
|
|
|
2012-06-28 03:17:49 +00:00
|
|
|
extern jb_socket forwarded_connect(const struct forward_spec * fwd,
|
|
|
|
struct http_request *http,
|
2012-05-03 18:32:18 +00:00
|
|
|
struct client_state *csp);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Default number of seconds after which an
|
|
|
|
* open connection will no longer be reused.
|
|
|
|
*/
|
|
|
|
#define DEFAULT_KEEP_ALIVE_TIMEOUT 180
|
|
|
|
|
2012-06-28 03:17:49 +00:00
|
|
|
#ifdef FEATURE_CONNECTION_SHARING
|
|
|
|
extern void set_keep_alive_timeout(unsigned int timeout);
|
2012-05-03 18:32:18 +00:00
|
|
|
extern void initialize_reusable_connections(void);
|
|
|
|
extern void forget_connection(jb_socket sfd);
|
2012-06-28 03:17:49 +00:00
|
|
|
extern void remember_connection(const struct reusable_connection *connection);
|
2012-05-03 18:32:18 +00:00
|
|
|
extern int close_unusable_connections(void);
|
2012-06-28 03:17:49 +00:00
|
|
|
#endif /* FEATURE_CONNECTION_SHARING */
|
2012-05-03 18:32:18 +00:00
|
|
|
|
2012-06-28 03:17:49 +00:00
|
|
|
#ifdef FEATURE_CONNECTION_KEEP_ALIVE
|
|
|
|
extern void mark_connection_closed(struct reusable_connection *closed_connection);
|
|
|
|
extern int connection_destination_matches(const struct reusable_connection *connection,
|
|
|
|
const struct http_request *http,
|
|
|
|
const struct forward_spec *fwd);
|
|
|
|
#endif /* def FEATURE_CONNECTION_KEEP_ALIVE */
|
2012-05-03 18:32:18 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Revision control strings from this header and associated .c file
|
|
|
|
*/
|
|
|
|
extern const char gateway_rcs[];
|
|
|
|
extern const char gateway_h_rcs[];
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
} /* extern "C" */
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* ndef GATEWAY_H_INCLUDED */
|
|
|
|
|
|
|
|
/*
|
|
|
|
Local Variables:
|
|
|
|
tab-width: 3
|
|
|
|
end:
|
|
|
|
*/
|