Esempio n. 1
0
 /// <summary>Creates new instance of DefaultHttpRequestParser.</summary>
 /// <remarks>Creates new instance of DefaultHttpRequestParser.</remarks>
 /// <param name="buffer">the session input buffer.</param>
 /// <param name="lineParser">
 /// the line parser. If <code>null</code>
 /// <see cref="Org.Apache.Http.Message.BasicLineParser.Instance">Org.Apache.Http.Message.BasicLineParser.Instance
 ///     </see>
 /// will be used.
 /// </param>
 /// <param name="requestFactory">
 /// the response factory. If <code>null</code>
 /// <see cref="Org.Apache.Http.Impl.DefaultHttpRequestFactory.Instance">Org.Apache.Http.Impl.DefaultHttpRequestFactory.Instance
 ///     </see>
 /// will be used.
 /// </param>
 /// <param name="constraints">
 /// the message constraints. If <code>null</code>
 /// <see cref="Org.Apache.Http.Config.MessageConstraints.Default">Org.Apache.Http.Config.MessageConstraints.Default
 ///     </see>
 /// will be used.
 /// </param>
 /// <since>4.3</since>
 public DefaultHttpRequestParser(SessionInputBuffer buffer, LineParser lineParser,
                                 HttpRequestFactory requestFactory, MessageConstraints constraints) : base(buffer
                                                                                                           , lineParser, constraints)
 {
     this.requestFactory = requestFactory != null ? requestFactory : DefaultHttpRequestFactory
                           .Instance;
     this.lineBuf = new CharArrayBuffer(128);
 }
Esempio n. 2
0
 /// <summary>Creates new instance of AbstractMessageParser.</summary>
 /// <remarks>Creates new instance of AbstractMessageParser.</remarks>
 /// <param name="buffer">the session input buffer.</param>
 /// <param name="lineParser">
 /// the line parser. If <code>null</code>
 /// <see cref="Org.Apache.Http.Message.BasicLineParser.Instance">Org.Apache.Http.Message.BasicLineParser.Instance
 ///     </see>
 /// will be used.
 /// </param>
 /// <param name="constraints">
 /// the message constraints. If <code>null</code>
 /// <see cref="Org.Apache.Http.Config.MessageConstraints.Default">Org.Apache.Http.Config.MessageConstraints.Default
 ///     </see>
 /// will be used.
 /// </param>
 /// <since>4.3</since>
 public AbstractMessageParser(SessionInputBuffer buffer, LineParser lineParser, MessageConstraints
                              constraints) : base()
 {
     this.sessionBuffer      = Args.NotNull(buffer, "Session input buffer");
     this.lineParser         = lineParser != null ? lineParser : BasicLineParser.Instance;
     this.messageConstraints = constraints != null ? constraints : MessageConstraints.
                               Default;
     this.headerLines = new AList <CharArrayBuffer>();
     this.state       = HeadLine;
 }
Esempio n. 3
0
 /// <summary>Creates an instance of AbstractMessageParser.</summary>
 /// <remarks>Creates an instance of AbstractMessageParser.</remarks>
 /// <param name="buffer">the session input buffer.</param>
 /// <param name="parser">the line parser.</param>
 /// <param name="params">HTTP parameters.</param>		[System.ObsoleteAttribute(@"(4.3) use AbstractMessageParser{T}.AbstractMessageParser(Org.Apache.Http.IO.SessionInputBuffer, Org.Apache.Http.Message.LineParser, Org.Apache.Http.Config.MessageConstraints)")]
 public AbstractMessageParser(SessionInputBuffer buffer, LineParser parser, HttpParams
                              @params) : base()
 {
     Args.NotNull(buffer, "Session input buffer");
     Args.NotNull(@params, "HTTP parameters");
     this.sessionBuffer      = buffer;
     this.messageConstraints = HttpParamConfig.GetMessageConstraints(@params);
     this.lineParser         = (parser != null) ? parser : BasicLineParser.Instance;
     this.headerLines        = new AList <CharArrayBuffer>();
     this.state = HeadLine;
 }
Esempio n. 4
0
        public static ConnectionConfig GetConnectionConfig(HttpParams @params)
        {
            MessageConstraints messageConstraints = GetMessageConstraints(@params);
            string             csname             = (string)@params.GetParameter(CoreProtocolPNames.HttpElementCharset
                                                                                 );

            return(ConnectionConfig.Custom().SetCharset(csname != null ? Sharpen.Extensions.GetEncoding
                                                            (csname) : null).SetMalformedInputAction((CodingErrorAction)@params.GetParameter
                                                                                                         (CoreProtocolPNames.HttpMalformedInputAction)).SetMalformedInputAction((CodingErrorAction
                                                                                                                                                                                 )@params.GetParameter(CoreProtocolPNames.HttpUnmappableInputAction)).SetMessageConstraints
                       (messageConstraints).Build());
        }
 public LoggingManagedHttpClientConnection(string id, Log log, Log headerlog, Log
                                           wirelog, int buffersize, int fragmentSizeHint, CharsetDecoder chardecoder, CharsetEncoder
                                           charencoder, MessageConstraints constraints, ContentLengthStrategy incomingContentStrategy
                                           , ContentLengthStrategy outgoingContentStrategy, HttpMessageWriterFactory <IHttpRequest
                                                                                                                      > requestWriterFactory, HttpMessageParserFactory <HttpResponse> responseParserFactory
                                           ) : base(id, buffersize, fragmentSizeHint, chardecoder, charencoder, constraints
                                                    , incomingContentStrategy, outgoingContentStrategy, requestWriterFactory, responseParserFactory
                                                    )
 {
     this.log       = log;
     this.headerlog = headerlog;
     this.wire      = new Wire(wirelog, id);
 }
 /// <summary>Creates new instance of SessionInputBufferImpl.</summary>
 /// <remarks>Creates new instance of SessionInputBufferImpl.</remarks>
 /// <param name="metrics">HTTP transport metrics.</param>
 /// <param name="buffersize">buffer size. Must be a positive number.</param>
 /// <param name="minChunkLimit">
 /// size limit below which data chunks should be buffered in memory
 /// in order to minimize native method invocations on the underlying network socket.
 /// The optimal value of this parameter can be platform specific and defines a trade-off
 /// between performance of memory copy operations and that of native method invocation.
 /// If negative default chunk limited will be used.
 /// </param>
 /// <param name="constraints">
 /// Message constraints. If <code>null</code>
 /// <see cref="Org.Apache.Http.Config.MessageConstraints.Default">Org.Apache.Http.Config.MessageConstraints.Default
 ///     </see>
 /// will be used.
 /// </param>
 /// <param name="chardecoder">
 /// chardecoder to be used for decoding HTTP protocol elements.
 /// If <code>null</code> simple type cast will be used for byte to char conversion.
 /// </param>
 internal SessionInputBufferImpl(HttpTransportMetricsImpl metrics, int buffersize, int
                                 minChunkLimit, MessageConstraints constraints, CharsetDecoder chardecoder)
 {
     Args.NotNull(metrics, "HTTP transport metrcis");
     Args.Positive(buffersize, "Buffer size");
     this.metrics       = metrics;
     this.buffer        = new byte[buffersize];
     this.bufferpos     = 0;
     this.bufferlen     = 0;
     this.minChunkLimit = minChunkLimit >= 0 ? minChunkLimit : 512;
     this.constraints   = constraints != null ? constraints : MessageConstraints.Default;
     this.linebuffer    = new ByteArrayBuffer(buffersize);
     this.decoder       = chardecoder;
 }
        /// <summary>Creates new instance of BHttpConnectionBase.</summary>
        /// <remarks>Creates new instance of BHttpConnectionBase.</remarks>
        /// <param name="buffersize">buffer size. Must be a positive number.</param>
        /// <param name="fragmentSizeHint">fragment size hint.</param>
        /// <param name="chardecoder">
        /// decoder to be used for decoding HTTP protocol elements.
        /// If <code>null</code> simple type cast will be used for byte to char conversion.
        /// </param>
        /// <param name="charencoder">
        /// encoder to be used for encoding HTTP protocol elements.
        /// If <code>null</code> simple type cast will be used for char to byte conversion.
        /// </param>
        /// <param name="constraints">
        /// Message constraints. If <code>null</code>
        /// <see cref="Org.Apache.Http.Config.MessageConstraints.Default">Org.Apache.Http.Config.MessageConstraints.Default
        ///     </see>
        /// will be used.
        /// </param>
        /// <param name="incomingContentStrategy">
        /// incoming content length strategy. If <code>null</code>
        /// <see cref="Org.Apache.Http.Impl.Entity.LaxContentLengthStrategy.Instance">Org.Apache.Http.Impl.Entity.LaxContentLengthStrategy.Instance
        ///     </see>
        /// will be used.
        /// </param>
        /// <param name="outgoingContentStrategy">
        /// outgoing content length strategy. If <code>null</code>
        /// <see cref="Org.Apache.Http.Impl.Entity.StrictContentLengthStrategy.Instance">Org.Apache.Http.Impl.Entity.StrictContentLengthStrategy.Instance
        ///     </see>
        /// will be used.
        /// </param>
        internal BHttpConnectionBase(int buffersize, int fragmentSizeHint, CharsetDecoder
                                     chardecoder, CharsetEncoder charencoder, MessageConstraints constraints, ContentLengthStrategy
                                     incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy) : base(
                )
        {
            Args.Positive(buffersize, "Buffer size");
            HttpTransportMetricsImpl inTransportMetrics  = new HttpTransportMetricsImpl();
            HttpTransportMetricsImpl outTransportMetrics = new HttpTransportMetricsImpl();

            this.inbuffer = new SessionInputBufferImpl(inTransportMetrics, buffersize, -1, constraints
                                                       != null ? constraints : MessageConstraints.Default, chardecoder);
            this.outbuffer = new SessionOutputBufferImpl(outTransportMetrics, buffersize, fragmentSizeHint
                                                         , charencoder);
            this.connMetrics = new HttpConnectionMetricsImpl(inTransportMetrics, outTransportMetrics
                                                             );
            this.incomingContentStrategy = incomingContentStrategy != null ? incomingContentStrategy
                                 : LaxContentLengthStrategy.Instance;
            this.outgoingContentStrategy = outgoingContentStrategy != null ? outgoingContentStrategy
                                 : StrictContentLengthStrategy.Instance;
        }
Esempio n. 8
0
 /// <since>4.3</since>
 public DefaultHttpRequestParser(SessionInputBuffer buffer, MessageConstraints constraints
                                 ) : this(buffer, null, null, constraints)
 {
 }
Esempio n. 9
0
 public virtual HttpMessageParser <HttpResponse> Create(SessionInputBuffer buffer,
                                                        MessageConstraints constraints)
 {
     return(new DefaultHttpResponseParser(buffer, lineParser, responseFactory, constraints
                                          ));
 }
 /// <summary>Creates new instance of DefaultBHttpServerConnection.</summary>
 /// <remarks>Creates new instance of DefaultBHttpServerConnection.</remarks>
 /// <param name="buffersize">buffer size. Must be a positive number.</param>
 /// <param name="fragmentSizeHint">fragment size hint.</param>
 /// <param name="chardecoder">
 /// decoder to be used for decoding HTTP protocol elements.
 /// If <code>null</code> simple type cast will be used for byte to char conversion.
 /// </param>
 /// <param name="charencoder">
 /// encoder to be used for encoding HTTP protocol elements.
 /// If <code>null</code> simple type cast will be used for char to byte conversion.
 /// </param>
 /// <param name="constraints">
 /// Message constraints. If <code>null</code>
 /// <see cref="Org.Apache.Http.Config.MessageConstraints.Default">Org.Apache.Http.Config.MessageConstraints.Default
 ///     </see>
 /// will be used.
 /// </param>
 /// <param name="incomingContentStrategy">
 /// incoming content length strategy. If <code>null</code>
 /// <see cref="Org.Apache.Http.Impl.Entity.DisallowIdentityContentLengthStrategy.Instance
 ///     ">Org.Apache.Http.Impl.Entity.DisallowIdentityContentLengthStrategy.Instance</see>
 /// will be used.
 /// </param>
 /// <param name="outgoingContentStrategy">
 /// outgoing content length strategy. If <code>null</code>
 /// <see cref="Org.Apache.Http.Impl.Entity.StrictContentLengthStrategy.Instance">Org.Apache.Http.Impl.Entity.StrictContentLengthStrategy.Instance
 ///     </see>
 /// will be used.
 /// </param>
 /// <param name="requestParserFactory">
 /// request parser factory. If <code>null</code>
 /// <see cref="Org.Apache.Http.Impl.IO.DefaultHttpRequestParserFactory.Instance">Org.Apache.Http.Impl.IO.DefaultHttpRequestParserFactory.Instance
 ///     </see>
 /// will be used.
 /// </param>
 /// <param name="responseWriterFactory">
 /// response writer factory. If <code>null</code>
 /// <see cref="Org.Apache.Http.Impl.IO.DefaultHttpResponseWriterFactory.Instance">Org.Apache.Http.Impl.IO.DefaultHttpResponseWriterFactory.Instance
 ///     </see>
 /// will be used.
 /// </param>
 internal DefaultBHttpServerConnection(int buffersize, int fragmentSizeHint, CharsetDecoder
                                       chardecoder, CharsetEncoder charencoder, MessageConstraints constraints, ContentLengthStrategy
                                       incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, HttpMessageParserFactory
                                       <IHttpRequest> requestParserFactory, HttpMessageWriterFactory <HttpResponse> responseWriterFactory
                                       ) : base(buffersize, fragmentSizeHint, chardecoder, charencoder, constraints, incomingContentStrategy
                                                != null ? incomingContentStrategy : DisallowIdentityContentLengthStrategy.Instance
                                                , outgoingContentStrategy)
 {
     this.requestParser = (requestParserFactory != null ? requestParserFactory : DefaultHttpRequestParserFactory
                           .Instance).Create(GetSessionInputBuffer(), constraints);
     this.responseWriter = (responseWriterFactory != null ? responseWriterFactory : DefaultHttpResponseWriterFactory
                            .Instance).Create(GetSessionOutputBuffer());
 }
 internal DefaultBHttpServerConnection(int buffersize, CharsetDecoder chardecoder, CharsetEncoder
                                       charencoder, MessageConstraints constraints) : this(buffersize, buffersize, chardecoder
                                                                                           , charencoder, constraints, null, null, null, null)
 {
 }
Esempio n. 12
0
 public DefaultManagedHttpClientConnection(string id, int buffersize, int fragmentSizeHint
                                           , CharsetDecoder chardecoder, CharsetEncoder charencoder, MessageConstraints constraints
                                           , ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy
                                           , HttpMessageWriterFactory <IHttpRequest> requestWriterFactory, HttpMessageParserFactory
                                           <HttpResponse> responseParserFactory) : base(buffersize, fragmentSizeHint, chardecoder
                                                                                        , charencoder, constraints, incomingContentStrategy, outgoingContentStrategy, requestWriterFactory
                                                                                        , responseParserFactory)
 {
     this.id         = id;
     this.attributes = new ConcurrentHashMap <string, object>();
 }
Esempio n. 13
0
 public static MessageConstraints GetMessageConstraints(HttpParams @params)
 {
     return(MessageConstraints.Custom().SetMaxHeaderCount(@params.GetIntParameter(CoreConnectionPNames
                                                                                  .MaxHeaderCount, -1)).SetMaxLineLength(@params.GetIntParameter(CoreConnectionPNames
                                                                                                                                                 .MaxLineLength, -1)).Build());
 }