proxyprop.java
来自「很棒的web服务器源代码」· Java 代码 · 共 163 行
JAVA
163 行
// ProxyProp.java// $Id: ProxyProp.java,v 1.20 2004/01/06 10:09:34 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1996.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.jigsaw.proxy;import java.util.Enumeration;import java.io.File;import org.w3c.tools.resources.Attribute;import org.w3c.tools.resources.AttributeRegistry;import org.w3c.tools.resources.BooleanAttribute;import org.w3c.tools.resources.IntegerAttribute;import org.w3c.tools.resources.StringArrayAttribute;import org.w3c.tools.resources.StringAttribute;import org.w3c.jigsaw.http.httpd;import org.w3c.jigsaw.config.PropertySet;import org.w3c.util.ObservableProperties;import org.w3c.www.protocol.http.micp.MICPProp;import org.w3c.www.protocol.http.HttpManager;import org.w3c.www.protocol.http.cache.CacheFilter;import org.w3c.www.protocol.http.cache.CacheStore;class ProxyProp extends PropertySet { private static String title = "Proxy properties"; private static String MICP_PROP_NAME = "micp"; private static String CACHE_PROP_NAME = "cache"; private static String PROXY_DISP_PROP_NAME = "dispatcher"; protected static int ATTR_FILTERS = -1; static { Class c = null; Attribute a = null; try { c = Class.forName("org.w3c.jigsaw.proxy.ProxyProp"); } catch (Exception ex) { ex.printStackTrace(); System.exit(1); } // Register the maximum number of allowed connections: a = new IntegerAttribute(HttpManager.CONN_MAX_P , new Integer(20) , Attribute.EDITABLE); AttributeRegistry.registerAttribute(c, a); // Register the timeout on the client socket a = new IntegerAttribute(HttpManager.TIMEOUT_P , new Integer(300000) // default 5mn , Attribute.EDITABLE); AttributeRegistry.registerAttribute(c, a); // Register the connection timeout on the client socket a = new IntegerAttribute(HttpManager.CONN_TIMEOUT_P , new Integer(1000) // default 1s , Attribute.EDITABLE); AttributeRegistry.registerAttribute(c, a); // Register the proxy set property a = new BooleanAttribute(HttpManager.PROXY_SET_P , null , Attribute.EDITABLE); AttributeRegistry.registerAttribute(c, a); // Register the proxy host: a = new StringAttribute(HttpManager.PROXY_HOST_P , null , Attribute.EDITABLE); AttributeRegistry.registerAttribute(c, a); // Register the proxy port: a = new IntegerAttribute(HttpManager.PROXY_PORT_P , new Integer(80) , Attribute.EDITABLE); AttributeRegistry.registerAttribute(c, a); // Register the lenient parsing mode property a = new BooleanAttribute(HttpManager.LENIENT_P , null , Attribute.EDITABLE); AttributeRegistry.registerAttribute(c, a); // Register the filters property a = new StringArrayAttribute(HttpManager.FILTERS_PROP_P , null , Attribute.EDITABLE); ATTR_FILTERS = AttributeRegistry.registerAttribute(c, a); } /** * Get this property set title. * @return A String encoded title. */ public String getTitle() { return title; } /** * Set value forwards the effectation to the properties. * @param idx The attribute (property in that case) being set. * @param value The new value for that property. */ protected String[] getFilters() { return (String[]) getValue(ATTR_FILTERS, null); } protected void initializeFiltersProps() { String flt[] = getFilters(); if (flt == null) return; // FIXME! shouldget the name of the property set associated // to the filter, and verify if it is present or not // if not, register the property set PropertySet p = null; for(int i=0; i<flt.length; i++) { if(flt[i].equals("org.w3c.www.protocol.http.micp.MICPFilter")){ if (server.getPropertySet(MICP_PROP_NAME) == null) { p = new MICPProp(MICP_PROP_NAME, server); server.registerPropertySet(p); } } else if (flt[i].equals( "org.w3c.www.protocol.http.cache.CacheFilter")) { if (server.getPropertySet(CACHE_PROP_NAME) == null) { p = new CacheProp(CACHE_PROP_NAME, server); server.registerPropertySet(p); ObservableProperties props = server.getProperties(); File c = props.getFile(CacheStore.CACHE_DIRECTORY_P, null); if ( c == null ) { c = new File(server.getConfigDirectory(), "cache"); props.putValue(CacheStore.CACHE_DIRECTORY_P, c.getAbsolutePath()); } } } else if (flt[i].equals( "org.w3c.www.protocol.http.proxy.ProxyDispatcher")) { //add ProxyDispatcher PropertySet... if (server.getPropertySet(PROXY_DISP_PROP_NAME) == null) { p = new ProxyDispatcherProp(PROXY_DISP_PROP_NAME, server); server.registerPropertySet(p); } } } } public synchronized void setValue(int idx, Object value) { // Check access (we don't care about side effects) super.setValue(idx, value); if ( idx == ATTR_FILTERS ) initializeFiltersProps(); } ProxyProp(String name, httpd server) { super(name, server); initializeFiltersProps(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?