java.lang.Object
net.i2p.sam.ReadLine

class ReadLineextends Object
Modified from I2PTunnelHTTPServer Handles UTF-8. Does not buffer past the end of line.
  • Field Details

    • MAX_LINE_LENGTH

      private static final int MAX_LINE_LENGTH
      Longest line accepted from the client: 8 KB.
      See Also:
  • Constructor Details

    • ReadLine

      private ReadLine()
      Creates a new ReadLine instance (utility class).
  • Method Details

    • readLine

      public static void readLine(Socket socket, StringBuilder buf, int timeout) throws IOException
      Read a line terminated by newline, with a total read timeout.

      Warning - strips \n but not \r Warning - 8KB line length limit as of 0.7.13, @throws IOException if exceeded.

      Parameters:
      socket - the socket to read from, whose SO_TIMEOUT this sets to the remaining time
      buf - the buffer the line is appended to, without its newline
      timeout - forever if if zero or negative
      Throws:
      SocketTimeoutException - if timeout is reached before newline
      EOFException - if EOF is reached before newline
      ReadLine.LineTooLongException - if too long
      IOException - on other errors in the underlying stream