void preinitObject() { CONFIG_VARIABLE_SETTABLE(idleTime, CONFIG_TIME, configIntSetter, "Time to remain idle before writing out."); CONFIG_VARIABLE_SETTABLE(maxWriteoutWhenIdle, CONFIG_INT, configIntSetter, "Amount of data to write at a time when idle."); CONFIG_VARIABLE_SETTABLE(maxObjectsWhenIdle, CONFIG_INT, configIntSetter, "Number of objects to write at a time " "when idle."); CONFIG_VARIABLE_SETTABLE(cacheIsShared, CONFIG_BOOLEAN, configIntSetter, "If false, ignore s-maxage and private."); CONFIG_VARIABLE_SETTABLE(mindlesslyCacheVary, CONFIG_BOOLEAN, configIntSetter, "If true, mindlessly cache negotiated objects."); CONFIG_VARIABLE(objectHashTableSize, CONFIG_INT, "Size of the object hash table (0 = auto)."); CONFIG_VARIABLE(objectHighMark, CONFIG_INT, "High object count mark."); CONFIG_VARIABLE(publicObjectLowMark, CONFIG_INT, "Low object count mark (0 = auto)."); CONFIG_VARIABLE_SETTABLE(maxExpiresAge, CONFIG_TIME, configIntSetter, "Max age for objects with Expires header."); CONFIG_VARIABLE_SETTABLE(maxAge, CONFIG_TIME, configIntSetter, "Max age for objects without Expires header."); CONFIG_VARIABLE_SETTABLE(maxAgeFraction, CONFIG_FLOAT, configFloatSetter, "Fresh fraction of modification time."); CONFIG_VARIABLE_SETTABLE(maxNoModifiedAge, CONFIG_TIME, configIntSetter, "Max age for objects without Last-modified."); CONFIG_VARIABLE_SETTABLE(dontCacheCookies, CONFIG_BOOLEAN, configIntSetter, "Work around cachable cookies."); }
void preinitForbidden(void) { CONFIG_VARIABLE_SETTABLE(forbiddenUrl, CONFIG_ATOM, configAtomSetter, "URL to which forbidden requests " "should be redirected."); CONFIG_VARIABLE_SETTABLE(forbiddenRedirectCode, CONFIG_INT, configIntSetter, "Redirect code, 301 or 302."); CONFIG_VARIABLE_SETTABLE(forbiddenFile, CONFIG_ATOM, atomSetterForbidden, "File specifying forbidden URLs."); #ifndef NO_REDIRECTOR CONFIG_VARIABLE_SETTABLE(redirector, CONFIG_ATOM, atomSetterForbidden, "Squid-style redirector."); CONFIG_VARIABLE_SETTABLE(redirectorRedirectCode, CONFIG_INT, configIntSetter, "Redirect code to use with redirector."); CONFIG_VARIABLE_SETTABLE(redirectorIsServerSide, CONFIG_BOOLEAN, configIntSetter, "server-side redirector"); #endif CONFIG_VARIABLE_SETTABLE(uncachableFile, CONFIG_ATOM, atomSetterForbidden, "File specifying uncachable URLs."); CONFIG_VARIABLE_SETTABLE(uncensorRefererFile, CONFIG_ATOM, atomSetterForbidden, "File specifying uncensorReferer URLs."); }
void preinitHttpParser() { CONFIG_VARIABLE_SETTABLE(censorReferer, CONFIG_TRISTATE, configIntSetter, "Censor referer headers."); censoredHeaders = makeAtomList(NULL, 0); if(censoredHeaders == NULL) { do_log(L_ERROR, "Couldn't allocate censored atoms.\n"); exit(1); } CONFIG_VARIABLE(censoredHeaders, CONFIG_ATOM_LIST_LOWER, "Headers to censor."); CONFIG_VARIABLE_SETTABLE(laxHttpParser, CONFIG_BOOLEAN, configIntSetter, "Ignore unknown HTTP headers."); }
void preinitLog() { CONFIG_VARIABLE_SETTABLE(logLevel, CONFIG_HEX, configIntSetter, "Logging level (max = " STR(LOGGING_MAX) ")."); CONFIG_VARIABLE(logFile, CONFIG_ATOM, "Log file (stderr if empty)."); logF = stderr; }
void preinitHttp() { proxyAddress = internAtom("127.0.0.1"); programName = internAtom("Polipo"); CONFIG_VARIABLE_SETTABLE(disableProxy, CONFIG_BOOLEAN, configIntSetter, "Whether to be a web server only."); CONFIG_VARIABLE_SETTABLE(proxyOffline, CONFIG_BOOLEAN, configIntSetter, "Avoid contacting remote servers."); CONFIG_VARIABLE_SETTABLE(relaxTransparency, CONFIG_TRISTATE, configIntSetter, "Avoid contacting remote servers."); CONFIG_VARIABLE(proxyPort, CONFIG_INT, "The TCP port on which the proxy listens."); CONFIG_VARIABLE(proxyAddress, CONFIG_ATOM_LOWER, "The IP address on which the proxy listens."); CONFIG_VARIABLE_SETTABLE(proxyName, CONFIG_ATOM_LOWER, configAtomSetter, "The name by which the proxy is known."); CONFIG_VARIABLE_SETTABLE(programName, CONFIG_ATOM, configAtomSetter, "The name by which the program is known."); CONFIG_VARIABLE_SETTABLE(clientTimeout, CONFIG_TIME, timeoutSetter, "Client-side timeout."); CONFIG_VARIABLE_SETTABLE(serverTimeout, CONFIG_TIME, timeoutSetter, "Server-side timeout."); CONFIG_VARIABLE_SETTABLE(serverIdleTimeout, CONFIG_TIME, timeoutSetter, "Server-side idle timeout."); CONFIG_VARIABLE(authRealm, CONFIG_ATOM, "Authentication realm."); CONFIG_VARIABLE(authCredentials, CONFIG_PASSWORD, "username:password."); CONFIG_VARIABLE(parentAuthCredentials, CONFIG_PASSWORD, "username:password."); CONFIG_VARIABLE(allowedClients, CONFIG_ATOM_LIST_LOWER, "Networks from which clients are allowed to connect."); CONFIG_VARIABLE(tunnelAllowedPorts, CONFIG_INT_LIST, "Ports to which tunnelled connections are allowed."); CONFIG_VARIABLE(allowedPorts, CONFIG_INT_LIST, "Ports to which connections are allowed."); CONFIG_VARIABLE(expectContinue, CONFIG_TRISTATE, "Send Expect-Continue to servers."); CONFIG_VARIABLE(bigBufferSize, CONFIG_INT, "Size of big buffers (max size of headers)."); CONFIG_VARIABLE_SETTABLE(disableVia, CONFIG_BOOLEAN, configIntSetter, "Don't use Via headers."); CONFIG_VARIABLE(dontTrustVaryETag, CONFIG_TRISTATE, "Whether to trust the ETag when there's Vary."); preinitHttpParser(); }
void preinitIo() { #ifdef HAVE_IPV6_PREFER_TEMPADDR CONFIG_VARIABLE_SETTABLE(useTemporarySourceAddress, CONFIG_TRISTATE, configIntSetter, "Prefer IPv6 temporary source address."); #endif #ifdef HAVE_WINSOCK /* Load the winsock dll */ WSADATA wsaData; WORD wVersionRequested = MAKEWORD(2, 2); int err = WSAStartup( wVersionRequested, &wsaData ); if (err != 0) { do_log_error(L_ERROR, err, "Couldn't load winsock dll"); exit(-1); } #endif return; }