package com.limegroup.gnutella.uploader; import java.io.IOException; import java.io.OutputStream; import com.limegroup.gnutella.util.CommonUtils; /** * Sends a 403 Banned For Hammering reply to a greedy client */ public class BannedUploadState extends UploadState { /** * Constant for the error message to send. */ public static final byte[] ERROR_MESSAGE = "Your client sends too many requests.".getBytes(); /** * Write HTTP headers * * @param os * the <tt>OutputStream</tt> to write to. * @throws IOException * if there was a problem writing to the <tt>OutputStream</tt>. */ public void writeMessageHeaders(OutputStream os) throws IOException { String str; str = "HTTP/1.1 403 Banned\r\n"; os.write(str.getBytes()); str = "Server: " + CommonUtils.getHttpServer() + "\r\n"; os.write(str.getBytes()); str = "Content-Type: text/plain\r\n"; os.write(str.getBytes()); str = "Content-Length: " + ERROR_MESSAGE.length + "\r\n"; os.write(str.getBytes()); str = "\r\n"; os.write(str.getBytes()); } /** * Write HTTP message body * * @param os * the <tt>OutputStream</tt> to write to. * @throws IOException * if there was a problem writing to the <tt>OutputStream</tt>. */ public void writeMessageBody(OutputStream os) throws IOException { os.write(ERROR_MESSAGE); } /** * @return <tt>true</tt> if the connection should be closed after writing * the message. */ public boolean getCloseConnection() { return true; } }