diff --git a/src/main/java/org/elasticsearch/http/HttpInfo.java b/src/main/java/org/elasticsearch/http/HttpInfo.java index ee6af230143..4d5e56c0c13 100644 --- a/src/main/java/org/elasticsearch/http/HttpInfo.java +++ b/src/main/java/org/elasticsearch/http/HttpInfo.java @@ -23,6 +23,7 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.io.stream.Streamable; import org.elasticsearch.common.transport.BoundTransportAddress; +import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentBuilderString; @@ -36,18 +37,22 @@ import java.io.Serializable; public class HttpInfo implements Streamable, Serializable, ToXContent { private BoundTransportAddress address; + private long maxContentLength; HttpInfo() { } - public HttpInfo(BoundTransportAddress address) { + public HttpInfo(BoundTransportAddress address, long maxContentLength) { this.address = address; + this.maxContentLength = maxContentLength; } static final class Fields { static final XContentBuilderString HTTP = new XContentBuilderString("http"); static final XContentBuilderString BOUND_ADDRESS = new XContentBuilderString("bound_address"); static final XContentBuilderString PUBLISH_ADDRESS = new XContentBuilderString("publish_address"); + static final XContentBuilderString MAX_CONTENT_LENGTH = new XContentBuilderString("max_content_length"); + static final XContentBuilderString MAX_CONTENT_LENGTH_IN_BYTES = new XContentBuilderString("max_content_length_in_bytes"); } @Override @@ -55,6 +60,8 @@ public class HttpInfo implements Streamable, Serializable, ToXContent { builder.startObject(Fields.HTTP); builder.field(Fields.BOUND_ADDRESS, address.boundAddress().toString()); builder.field(Fields.PUBLISH_ADDRESS, address.publishAddress().toString()); + builder.field(Fields.MAX_CONTENT_LENGTH, new ByteSizeValue(maxContentLength)); + builder.field(Fields.MAX_CONTENT_LENGTH_IN_BYTES, maxContentLength); builder.endObject(); return builder; } @@ -68,11 +75,13 @@ public class HttpInfo implements Streamable, Serializable, ToXContent { @Override public void readFrom(StreamInput in) throws IOException { address = BoundTransportAddress.readBoundTransportAddress(in); + maxContentLength = in.readLong(); } @Override public void writeTo(StreamOutput out) throws IOException { address.writeTo(out); + out.writeLong(maxContentLength); } public BoundTransportAddress address() { @@ -82,4 +91,12 @@ public class HttpInfo implements Streamable, Serializable, ToXContent { public BoundTransportAddress getAddress() { return address(); } + + public ByteSizeValue maxContentLength() { + return new ByteSizeValue(maxContentLength); + } + + public ByteSizeValue getMaxContentLength() { + return maxContentLength(); + } } diff --git a/src/main/java/org/elasticsearch/http/HttpServer.java b/src/main/java/org/elasticsearch/http/HttpServer.java index 4166027b5bd..f2247c26e54 100644 --- a/src/main/java/org/elasticsearch/http/HttpServer.java +++ b/src/main/java/org/elasticsearch/http/HttpServer.java @@ -104,7 +104,7 @@ public class HttpServer extends AbstractLifecycleComponent { } public HttpInfo info() { - return new HttpInfo(transport.boundAddress()); + return transport.info(); } public HttpStats stats() { diff --git a/src/main/java/org/elasticsearch/http/HttpServerTransport.java b/src/main/java/org/elasticsearch/http/HttpServerTransport.java index 5c7576a1025..550d4c54227 100644 --- a/src/main/java/org/elasticsearch/http/HttpServerTransport.java +++ b/src/main/java/org/elasticsearch/http/HttpServerTransport.java @@ -29,6 +29,8 @@ public interface HttpServerTransport extends LifecycleComponent