Class I2PTunnelHTTPClientBase

    • Method Detail

      • getPrefix

        protected String getPrefix​(long requestId)
      • selectProxy

        protected String selectProxy()
      • getRealm

        protected abstract String getRealm()
      • isDigestAuthRequired

        protected boolean isDigestAuthRequired()
        Since:
        0.9.4
      • authorize

        protected I2PTunnelHTTPClientBase.AuthResult authorize​(Socket s,
                                                               long requestId,
                                                               String method,
                                                               String authorization)
        Authorization Ref: RFC 2617 If the socket is an InternalSocket, no auth required.
        Parameters:
        method - GET, POST, etc.
        authorization - may be null, the full auth line e.g. "Basic lskjlksjf"
        Returns:
        success
      • getAuthError

        protected String getAuthError​(boolean isStale)
        What to send if digest auth fails
        Since:
        0.9.4
      • getErrorPage

        protected String getErrorPage​(String base,
                                      String backup)
        foo => errordir/foo-header_xx.ht for lang xx, or errordir/foo-header.ht, or the backup byte array on fail. .ht files must be UTF-8 encoded and use \r\n terminators so the HTTP headers are conformant. We can't use FileUtil.readFile() because it strips \r
        Returns:
        non-null
        Since:
        0.9.4 moved from I2PTunnelHTTPClient
      • getErrorPage

        protected static String getErrorPage​(I2PAppContext ctx,
                                             String base,
                                             String backup)
        foo => errordir/foo-header_xx.ht for lang xx, or errordir/foo-header.ht, or the backup byte array on fail. .ht files must be UTF-8 encoded and use \r\n terminators so the HTTP headers are conformant. We can't use FileUtil.readFile() because it strips \r
        Returns:
        non-null
        Since:
        0.9.4 moved from I2PTunnelHTTPClient
      • handleClientException

        protected void handleClientException​(Exception ex,
                                             OutputStream out,
                                             String targetRequest,
                                             boolean usingWWWProxy,
                                             String wwwProxy,
                                             long requestId)
        Parameters:
        ex - may be null
        Since:
        0.9.14 moved from subclasses
      • handleI2PSocketException

        protected void handleI2PSocketException​(I2PSocketException ise,
                                                OutputStream out,
                                                String targetRequest,
                                                boolean usingWWWProxy,
                                                String wwwProxy)
        Generate an error page based on the status code in our custom exception.
        Parameters:
        ise - may be null
        Since:
        0.9.14
      • writeErrorMessage

        protected void writeErrorMessage​(String errMessage,
                                         OutputStream out,
                                         String targetRequest,
                                         boolean usingWWWProxy,
                                         String wwwProxy,
                                         String jumpServers)
                                  throws IOException
        No extra message
        Parameters:
        jumpServers - comma- or space-separated list, or null
        Throws:
        IOException
        Since:
        0.9.14 moved from subclasses
      • writeErrorMessage

        protected void writeErrorMessage​(String errMessage,
                                         String extraMessage,
                                         OutputStream out,
                                         String targetRequest,
                                         boolean usingWWWProxy,
                                         String wwwProxy)
                                  throws IOException
        No jump servers
        Parameters:
        extraMessage - extra message or null, will be HTML-escaped
        Throws:
        IOException
        Since:
        0.9.14
      • writeErrorMessage

        protected void writeErrorMessage​(String errMessage,
                                         String extraMessage,
                                         OutputStream outs,
                                         String targetRequest,
                                         boolean usingWWWProxy,
                                         String wwwProxy,
                                         String jumpServers)
                                  throws IOException
        Parameters:
        jumpServers - comma- or space-separated list, or null
        extraMessage - extra message or null, will be HTML-escaped
        Throws:
        IOException
        Since:
        0.9.14
      • writeFooter

        public static void writeFooter​(OutputStream out)
                                throws IOException
        Flushes. Public only for LocalHTTPServer, not for general use
        Throws:
        IOException
        Since:
        0.9.14 moved from I2PTunnelHTTPClient
      • writeFooter

        public static void writeFooter​(Writer out)
                                throws IOException
        Flushes. Public only for LocalHTTPServer, not for general use
        Throws:
        IOException
        Since:
        0.9.19
      • _t

        protected String _t​(String key)
        Translate
        Since:
        0.9.14 moved from I2PTunnelHTTPClient
      • _t

        protected String _t​(String key,
                            Object o)
        Translate {0}
        Since:
        0.9.14 moved from I2PTunnelHTTPClient
      • _t

        protected String _t​(String key,
                            Object o,
                            Object o2)
        Translate {0} and {1}
        Since:
        0.9.14 moved from I2PTunnelHTTPClient