1 21 package org.jsmtpd.core.common.io.commandStream; 22 23 import java.io.IOException ; 24 import java.io.InputStream ; 25 26 import org.jsmtpd.core.common.io.BareLFException; 27 import org.jsmtpd.core.common.io.BufferedWireReader; 28 import org.jsmtpd.core.common.io.InputSizeToBig; 29 import org.jsmtpd.tools.ByteArrayTool; 30 31 37 public class CommandStreamParser { 38 39 private boolean rejectBareLF; 40 private BufferedWireReader rd; 41 42 public CommandStreamParser(InputStream is, int maxMessageSize, boolean rejectBareLF) { 43 this.rejectBareLF = rejectBareLF; 44 rd= new BufferedWireReader (512,ByteArrayTool.LF,is,maxMessageSize); 45 } 46 47 public String readLine() throws InputSizeToBig, IOException , BareLFException { 48 71 byte[] data = rd.readBlock(); 72 73 if (data==null) 74 throw new IOException ("Null stream"); 75 if (data.length<3) 76 return ""; 77 78 if ((data[data.length-2]!=ByteArrayTool.CR[0]) && rejectBareLF) 79 throw new BareLFException(); 80 81 String res = new String (data); 82 res=res.replaceAll("\r",""); 83 res=res.replaceAll("\n",""); 84 85 86 return res; 87 } 88 89 } | Popular Tags |