gecko-dev/network/main/mkautocf.h

103 lines
3.1 KiB
C

/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
/* mkautocf.h: Proxy auto-config parser and evaluator
* Ari Luotonen */
#ifndef MK_PROXY_AUTO_CONFIG
#define MK_PROXY_AUTO_CONFIG
#include "xp_mcom.h"
#include "xp.h"
/*
* Called by netlib to get a single string of "host:port" format,
* given the XP_List containing opaque proxy config objects.
*
* This function will return an address to a proxy that is (to its
* knowledge) up and running. Netlib can later inform this module
* using the function pacf_proxy_is_down() that a proxy is down
* and should not be called for a few minutes.
*
* Returns FALSE if everything has failed, and an error should be
* displayed to the user.
*
* Returns TRUE if there is hope.
* If *ret is NULL, a direct connection should be attempted.
* If *ret is not null, it is the proxy address to use.
*
*/
MODULE_PRIVATE Bool
pacf_get_proxy_addr(MWContext *context, char *list,
char ** ret_proxy_addr,
unsigned long * ret_socks_addr,
short * ret_socks_port);
MODULE_PRIVATE char *pacf_find_proxies_for_url(MWContext *context,
URL_Struct *URL_s);
/*
* A stream constructor function for application/x-ns-proxy-autoconfig.
*
*
*
*/
MODULE_PRIVATE NET_StreamClass *
NET_ProxyAutoConfig(int fmt, void *data_obj, URL_Struct *URL_s, MWContext *w);
/*
* Called by mkgeturl.c to originally retrieve, and re-retrieve
* the proxy autoconfig file.
*
* autoconfig_url is the URL pointing to the autoconfig.
*
* The rest of the parameters are what was passed to NET_GetURL(),
* and when the autoconfig load finishes NET_GetURL() will be called
* with those exact same parameters.
*
* This is because the proxy config is loaded when NET_GetURL() is
* called for the very first time, and the actual request must be put
* on hold when the proxy config is being loaded.
*
* When called from the explicit proxy config RE-load function
* NET_ReloadProxyConfig, the four last parameters are all zero,
* and no request gets restarted.
*
*/
MODULE_PRIVATE int NET_LoadProxyConfig(char *autoconf_url,
URL_Struct *URL_s,
FO_Present_Types output_format,
MWContext *window_id,
Net_GetUrlExitFunc *exit_routine);
/*
* NET_GetNoProxyFailover
* Returns TRUE if we're not allowing proxy failover.
*/
MODULE_PRIVATE Bool NET_GetNoProxyFailover(void);
#endif /* ! MK_PROXY_AUTO_CONFIG */