Class Connection

    • Field Detail

      • ctype

        private static final byte[] ctype
      • clength

        private static final byte[] clength
      • newline

        private static final byte[] newline
      • doubleNewline

        private static final byte[] doubleNewline
      • conkeep

        private static final byte[] conkeep
      • conclose

        private static final byte[] conclose
      • ok

        private static final byte[] ok
      • serverName

        private static final byte[] serverName
      • wwwAuthenticate

        private static final byte[] wwwAuthenticate
      • webServer

        private final WebServer webServer
      • socket

        private final java.net.Socket socket
      • input

        private final java.io.InputStream input
      • output

        private final java.io.OutputStream output
      • buffer

        private byte[] buffer
      • headers

        private java.util.Map headers
      • shuttingDown

        private boolean shuttingDown
      • firstByte

        private boolean firstByte
    • Constructor Detail

      • Connection

        public Connection​(WebServer pWebServer,
                          XmlRpcStreamServer pServer,
                          java.net.Socket pSocket)
                   throws java.io.IOException
        Creates a new webserver connection on the given socket.
        Parameters:
        pWebServer - The webserver maintaining this connection.
        pServer - The server being used to execute requests.
        pSocket - The server socket to handle; the Connection is responsible for closing this socket.
        Throws:
        java.io.IOException
    • Method Detail

      • toHTTPBytes

        private static final byte[] toHTTPBytes​(java.lang.String text)
        Returns the US-ASCII encoded byte representation of text for HTTP use (as per section 2.2 of RFC 2068).
      • getRequestConfig

        private RequestData getRequestConfig()
                                      throws java.io.IOException
        Returns the connections request configuration by merging the HTTP request headers and the servers configuration.
        Returns:
        The connections request configuration.
        Throws:
        java.io.IOException - Reading the request headers failed.
      • readLine

        private java.lang.String readLine()
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • writeResponse

        public void writeResponse​(RequestData pData,
                                  java.io.OutputStream pBuffer)
                           throws java.io.IOException
        Writes the response header and the response to the output stream.
        Parameters:
        pData - The request data.
        pBuffer - The ByteArrayOutputStream holding the response.
        Throws:
        java.io.IOException - Writing the response failed.
      • writeResponseHeader

        public void writeResponseHeader​(RequestData pData,
                                        int pContentLength)
                                 throws java.io.IOException
        Writes the response header to the output stream. *
        Parameters:
        pData - The request data
        pContentLength - The content length, if known, or -1.
        Throws:
        java.io.IOException - Writing the response failed.
      • writeError

        public void writeError​(RequestData pData,
                               java.lang.Throwable pError,
                               java.io.ByteArrayOutputStream pStream)
                        throws java.io.IOException
        Writes an error response to the output stream.
        Parameters:
        pData - The request data.
        pError - The error being reported.
        pStream - The ByteArrayOutputStream with the error response.
        Throws:
        java.io.IOException - Writing the response failed.
      • writeErrorHeader

        public void writeErrorHeader​(RequestData pData,
                                     java.lang.Throwable pError,
                                     int pContentLength)
                              throws java.io.IOException
        Writes an error responses headers to the output stream.
        Parameters:
        pData - The request data.
        pError - The error being reported.
        pContentLength - The response length, if known, or -1.
        Throws:
        java.io.IOException - Writing the response failed.
      • writeContentLengthHeader

        private void writeContentLengthHeader​(int pContentLength)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • setResponseHeader

        public void setResponseHeader​(java.lang.String pHeader,
                                      java.lang.String pValue)
        Sets a response header value.
      • close

        public void close()
                   throws java.io.IOException
        Description copied from interface: ServerStreamConnection
        Closes the connection, and frees resources.
        Specified by:
        close in interface ServerStreamConnection
        Throws:
        java.io.IOException