| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 */  | 
 | 
 | 
 | 
package sun.net.httpserver;  | 
 | 
 | 
 | 
import java.util.logging.Logger;  | 
 | 
import java.security.PrivilegedAction;  | 
 | 
 | 
 | 
/**  | 
 | 
 * Parameters that users will not likely need to set  | 
 | 
 * but are useful for debugging  | 
 | 
 */  | 
 | 
 | 
 | 
class ServerConfig { | 
 | 
 | 
 | 
    private static final int DEFAULT_CLOCK_TICK = 10000 ;   | 
 | 
 | 
 | 
    /* These values must be a reasonable multiple of clockTick */  | 
 | 
    private static final long DEFAULT_IDLE_INTERVAL = 30 ;   | 
 | 
    private static final int DEFAULT_MAX_IDLE_CONNECTIONS = 200 ;  | 
 | 
 | 
 | 
    private static final long DEFAULT_MAX_REQ_TIME = -1;   | 
 | 
    private static final long DEFAULT_MAX_RSP_TIME = -1;   | 
 | 
    private static final long DEFAULT_TIMER_MILLIS = 1000;  | 
 | 
    private static final int  DEFAULT_MAX_REQ_HEADERS = 200;  | 
 | 
    private static final long DEFAULT_DRAIN_AMOUNT = 64 * 1024;  | 
 | 
 | 
 | 
    private static int clockTick;  | 
 | 
    private static long idleInterval;  | 
 | 
      | 
 | 
    private static long drainAmount;  | 
 | 
    private static int maxIdleConnections;  | 
 | 
      | 
 | 
    private static int maxReqHeaders;  | 
 | 
      | 
 | 
    private static long maxReqTime;  | 
 | 
    private static long maxRspTime;  | 
 | 
    private static long timerMillis;  | 
 | 
    private static boolean debug;  | 
 | 
 | 
 | 
      | 
 | 
    private static boolean noDelay;  | 
 | 
 | 
 | 
    static { | 
 | 
        java.security.AccessController.doPrivileged(  | 
 | 
            new PrivilegedAction<Void>() { | 
 | 
                @Override  | 
 | 
                public Void run () { | 
 | 
                    idleInterval = Long.getLong("sun.net.httpserver.idleInterval", | 
 | 
                            DEFAULT_IDLE_INTERVAL) * 1000;  | 
 | 
 | 
 | 
                    clockTick = Integer.getInteger("sun.net.httpserver.clockTick", | 
 | 
                            DEFAULT_CLOCK_TICK);  | 
 | 
 | 
 | 
                    maxIdleConnections = Integer.getInteger(  | 
 | 
                            "sun.net.httpserver.maxIdleConnections",  | 
 | 
                            DEFAULT_MAX_IDLE_CONNECTIONS);  | 
 | 
 | 
 | 
                    drainAmount = Long.getLong("sun.net.httpserver.drainAmount", | 
 | 
                            DEFAULT_DRAIN_AMOUNT);  | 
 | 
 | 
 | 
                    maxReqHeaders = Integer.getInteger(  | 
 | 
                            "sun.net.httpserver.maxReqHeaders",  | 
 | 
                            DEFAULT_MAX_REQ_HEADERS);  | 
 | 
 | 
 | 
                    maxReqTime = Long.getLong("sun.net.httpserver.maxReqTime", | 
 | 
                            DEFAULT_MAX_REQ_TIME);  | 
 | 
 | 
 | 
                    maxRspTime = Long.getLong("sun.net.httpserver.maxRspTime", | 
 | 
                            DEFAULT_MAX_RSP_TIME);  | 
 | 
 | 
 | 
                    timerMillis = Long.getLong("sun.net.httpserver.timerMillis", | 
 | 
                            DEFAULT_TIMER_MILLIS);  | 
 | 
 | 
 | 
                    debug = Boolean.getBoolean("sun.net.httpserver.debug"); | 
 | 
 | 
 | 
                    noDelay = Boolean.getBoolean("sun.net.httpserver.nodelay"); | 
 | 
 | 
 | 
                    return null;  | 
 | 
                }  | 
 | 
            });  | 
 | 
 | 
 | 
    }  | 
 | 
 | 
 | 
    static void checkLegacyProperties(final Logger logger) { | 
 | 
 | 
 | 
        // legacy properties that are no longer used  | 
 | 
        // print a warning to logger if they are set.  | 
 | 
 | 
 | 
        java.security.AccessController.doPrivileged(  | 
 | 
            new PrivilegedAction<Void>() { | 
 | 
                public Void run () { | 
 | 
                    if (System.getProperty("sun.net.httpserver.readTimeout") | 
 | 
                                                !=null)  | 
 | 
                    { | 
 | 
                        logger.warning ("sun.net.httpserver.readTimeout "+ | 
 | 
                            "property is no longer used. "+  | 
 | 
                            "Use sun.net.httpserver.maxReqTime instead."  | 
 | 
                        );  | 
 | 
                    }  | 
 | 
                    if (System.getProperty("sun.net.httpserver.writeTimeout") | 
 | 
                                                !=null)  | 
 | 
                    { | 
 | 
                        logger.warning ("sun.net.httpserver.writeTimeout "+ | 
 | 
                            "property is no longer used. Use "+  | 
 | 
                            "sun.net.httpserver.maxRspTime instead."  | 
 | 
                        );  | 
 | 
                    }  | 
 | 
                    if (System.getProperty("sun.net.httpserver.selCacheTimeout") | 
 | 
                                                !=null)  | 
 | 
                    { | 
 | 
                        logger.warning ("sun.net.httpserver.selCacheTimeout "+ | 
 | 
                            "property is no longer used."  | 
 | 
                        );  | 
 | 
                    }  | 
 | 
                    return null;  | 
 | 
                }  | 
 | 
            }  | 
 | 
        );  | 
 | 
    }  | 
 | 
 | 
 | 
    static boolean debugEnabled() { | 
 | 
        return debug;  | 
 | 
    }  | 
 | 
 | 
 | 
    static long getIdleInterval() { | 
 | 
        return idleInterval;  | 
 | 
    }  | 
 | 
 | 
 | 
    static int getClockTick() { | 
 | 
        return clockTick;  | 
 | 
    }  | 
 | 
 | 
 | 
    static int getMaxIdleConnections() { | 
 | 
        return maxIdleConnections;  | 
 | 
    }  | 
 | 
 | 
 | 
    static long getDrainAmount() { | 
 | 
        return drainAmount;  | 
 | 
    }  | 
 | 
 | 
 | 
    static int getMaxReqHeaders() { | 
 | 
        return maxReqHeaders;  | 
 | 
    }  | 
 | 
 | 
 | 
    static long getMaxReqTime() { | 
 | 
        return maxReqTime;  | 
 | 
    }  | 
 | 
 | 
 | 
    static long getMaxRspTime() { | 
 | 
        return maxRspTime;  | 
 | 
    }  | 
 | 
 | 
 | 
    static long getTimerMillis() { | 
 | 
        return timerMillis;  | 
 | 
    }  | 
 | 
 | 
 | 
    static boolean noDelay() { | 
 | 
        return noDelay;  | 
 | 
    }  | 
 | 
}  |