home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / sun / net / TelnetInputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  1.1 KB  |  78 lines

  1. package sun.net;
  2.  
  3. import java.io.FilterInputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6.  
  7. public class TelnetInputStream extends FilterInputStream {
  8.    boolean stickyCRLF = false;
  9.    boolean seenCR = false;
  10.    public boolean binaryMode = false;
  11.  
  12.    public TelnetInputStream(InputStream var1, boolean var2) {
  13.       super(var1);
  14.       this.binaryMode = var2;
  15.    }
  16.  
  17.    public void setStickyCRLF(boolean var1) {
  18.       this.stickyCRLF = var1;
  19.    }
  20.  
  21.    public int read() throws IOException {
  22.       if (this.binaryMode) {
  23.          return super.read();
  24.       } else if (this.seenCR) {
  25.          this.seenCR = false;
  26.          return 10;
  27.       } else {
  28.          int var1;
  29.          if ((var1 = super.read()) == 13) {
  30.             switch (super.read()) {
  31.                case -1:
  32.                default:
  33.                   throw new TelnetProtocolException("misplaced CR in input");
  34.                case 0:
  35.                   return 13;
  36.                case 10:
  37.                   if (this.stickyCRLF) {
  38.                      this.seenCR = true;
  39.                      return 13;
  40.                   } else {
  41.                      return 10;
  42.                   }
  43.             }
  44.          } else {
  45.             return var1;
  46.          }
  47.       }
  48.    }
  49.  
  50.    public int read(byte[] var1) throws IOException {
  51.       return this.read(var1, 0, var1.length);
  52.    }
  53.  
  54.    public int read(byte[] var1, int var2, int var3) throws IOException {
  55.       if (this.binaryMode) {
  56.          return super.read(var1, var2, var3);
  57.       } else {
  58.          int var5 = var2;
  59.  
  60.          while(true) {
  61.             --var3;
  62.             if (var3 < 0) {
  63.                break;
  64.             }
  65.  
  66.             int var4 = this.read();
  67.             if (var4 == -1) {
  68.                break;
  69.             }
  70.  
  71.             var1[var2++] = (byte)var4;
  72.          }
  73.  
  74.          return var2 > var5 ? var2 - var5 : -1;
  75.       }
  76.    }
  77. }
  78.