forked from I2P_Developers/i2p.i2p
I2CP: Add PROP_GZIP
i2ptunnel: Disable I2CP gzip for HTTP server tunnels i2psnark: Disable I2CP gzip
This commit is contained in:
@ -295,6 +295,9 @@ public class I2PSnarkUtil {
|
|||||||
opts.setProperty("i2p.streaming.answerPings", "false");
|
opts.setProperty("i2p.streaming.answerPings", "false");
|
||||||
if (opts.getProperty(I2PClient.PROP_SIGTYPE) == null)
|
if (opts.getProperty(I2PClient.PROP_SIGTYPE) == null)
|
||||||
opts.setProperty(I2PClient.PROP_SIGTYPE, "EdDSA_SHA512_Ed25519");
|
opts.setProperty(I2PClient.PROP_SIGTYPE, "EdDSA_SHA512_Ed25519");
|
||||||
|
// assume compressed content
|
||||||
|
if (opts.getProperty(I2PClient.PROP_GZIP) == null)
|
||||||
|
opts.setProperty(I2PClient.PROP_GZIP, "false");
|
||||||
_manager = I2PSocketManagerFactory.createManager(_i2cpHost, _i2cpPort, opts);
|
_manager = I2PSocketManagerFactory.createManager(_i2cpHost, _i2cpPort, opts);
|
||||||
if (_manager != null)
|
if (_manager != null)
|
||||||
_startedTime = _context.clock().now();
|
_startedTime = _context.clock().now();
|
||||||
|
@ -547,7 +547,7 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
|
|||||||
// server, reads the response headers, rewriting to include Content-Encoding: x-i2p-gzip
|
// server, reads the response headers, rewriting to include Content-Encoding: x-i2p-gzip
|
||||||
// if it was one of the Accept-Encoding: values, and gzip the payload
|
// if it was one of the Accept-Encoding: values, and gzip the payload
|
||||||
boolean allowGZIP = true;
|
boolean allowGZIP = true;
|
||||||
String val = opts.getProperty("i2ptunnel.gzip");
|
String val = opts.getProperty(TunnelController.PROP_TUN_GZIP);
|
||||||
if ( (val != null) && (!Boolean.parseBoolean(val)) )
|
if ( (val != null) && (!Boolean.parseBoolean(val)) )
|
||||||
allowGZIP = false;
|
allowGZIP = false;
|
||||||
if (_log.shouldLog(Log.INFO))
|
if (_log.shouldLog(Log.INFO))
|
||||||
|
@ -89,6 +89,8 @@ public class TunnelController implements Logging {
|
|||||||
public static final String PROP_FILTER = "filterDefinition";
|
public static final String PROP_FILTER = "filterDefinition";
|
||||||
/** @since 0.9.42 */
|
/** @since 0.9.42 */
|
||||||
public static final String PROP_CONFIG_FILE = "configFile";
|
public static final String PROP_CONFIG_FILE = "configFile";
|
||||||
|
/** @since 0.9.46 */
|
||||||
|
public static final String PROP_TUN_GZIP = "i2ptunnel.gzip";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* all of these are @since 0.9.33 (moved from TunnelConfig)
|
* all of these are @since 0.9.33 (moved from TunnelConfig)
|
||||||
@ -139,6 +141,7 @@ public class TunnelController implements Logging {
|
|||||||
|
|
||||||
/** @since 0.9.34 */
|
/** @since 0.9.34 */
|
||||||
private static final String OPT_LIMIT_ACTION = PFX_OPTION + PROP_LIMIT_ACTION;
|
private static final String OPT_LIMIT_ACTION = PFX_OPTION + PROP_LIMIT_ACTION;
|
||||||
|
private static final String OPT_I2CP_GZIP = PFX_OPTION + I2PClient.PROP_GZIP;
|
||||||
|
|
||||||
/** all of these @since 0.9.14 */
|
/** all of these @since 0.9.14 */
|
||||||
public static final String TYPE_CONNECT = "connectclient";
|
public static final String TYPE_CONNECT = "connectclient";
|
||||||
@ -834,6 +837,15 @@ public class TunnelController implements Logging {
|
|||||||
if (type.equals(TYPE_HTTP_SERVER)) {
|
if (type.equals(TYPE_HTTP_SERVER)) {
|
||||||
if (!_config.containsKey(OPT_LIMIT_ACTION))
|
if (!_config.containsKey(OPT_LIMIT_ACTION))
|
||||||
_config.setProperty(OPT_LIMIT_ACTION, "http");
|
_config.setProperty(OPT_LIMIT_ACTION, "http");
|
||||||
|
String tgzip = _config.getProperty(PROP_TUN_GZIP);
|
||||||
|
if (tgzip == null || Boolean.valueOf(tgzip)) {
|
||||||
|
// Web server will gzip
|
||||||
|
// If web server doesn't gzip, I2PTunnelHTTPServer will.
|
||||||
|
// Streaming will force gzip on first packet for header compression,
|
||||||
|
// regardless of this setting
|
||||||
|
if (!_config.containsKey(OPT_I2CP_GZIP))
|
||||||
|
_config.setProperty(OPT_I2CP_GZIP, "false");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (type.equals(TYPE_HTTP_SERVER) || type.equals(TYPE_STREAMR_SERVER)) {
|
if (type.equals(TYPE_HTTP_SERVER) || type.equals(TYPE_STREAMR_SERVER)) {
|
||||||
if (!_config.containsKey(OPT_BUNDLE_REPLY))
|
if (!_config.containsKey(OPT_BUNDLE_REPLY))
|
||||||
|
@ -70,6 +70,8 @@ public interface I2PClient {
|
|||||||
public static final String PROP_USER = "i2cp.username";
|
public static final String PROP_USER = "i2cp.username";
|
||||||
/** @since 0.9.44, was protected in I2PSessionImpl */
|
/** @since 0.9.44, was protected in I2PSessionImpl */
|
||||||
public static final String PROP_PW = "i2cp.password";
|
public static final String PROP_PW = "i2cp.password";
|
||||||
|
/** @since 0.9.46 */
|
||||||
|
public static final String PROP_GZIP = "i2cp.gzip";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 7654
|
* 7654
|
||||||
|
@ -188,7 +188,7 @@ class I2PSessionImpl2 extends I2PSessionImpl {
|
|||||||
protected boolean shouldCompress(int size) {
|
protected boolean shouldCompress(int size) {
|
||||||
if (size <= DONT_COMPRESS_SIZE)
|
if (size <= DONT_COMPRESS_SIZE)
|
||||||
return false;
|
return false;
|
||||||
String p = getOptions().getProperty("i2cp.gzip");
|
String p = getOptions().getProperty(I2PClient.PROP_GZIP);
|
||||||
if (p != null)
|
if (p != null)
|
||||||
return Boolean.parseBoolean(p);
|
return Boolean.parseBoolean(p);
|
||||||
return SHOULD_COMPRESS;
|
return SHOULD_COMPRESS;
|
||||||
|
Reference in New Issue
Block a user