You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by bu...@apache.org on 2003/10/23 21:50:32 UTC
DO NOT REPLY [Bug 24078] New: -
[PATCH] Add support for XHDR NNTP command
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24078>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24078
[PATCH] Add support for XHDR NNTP command
Summary: [PATCH] Add support for XHDR NNTP command
Product: Commons
Version: 1.1.0
Platform: Other
OS/Version: Other
Status: NEW
Severity: Enhancement
Priority: Other
Component: Net
AssignedTo: commons-dev@jakarta.apache.org
ReportedBy: ctwise@bellsouth.net
Index: net/src/java/org/apache/commons/net/nntp/NNTP.java
===================================================================
RCS file:
/home/cvspublic/jakarta-commons/net/src/java/org/apache/commons/net/nntp/NNTP.java,v
retrieving revision 1.7
diff -u -p -r1.7 NNTP.java
--- net/src/java/org/apache/commons/net/nntp/NNTP.java 4 Sep 2003 20:32:43 -0000 1.7
+++ net/src/java/org/apache/commons/net/nntp/NNTP.java 23 Oct 2003 19:37:57 -0000
@@ -110,9 +110,11 @@ import org.apache.commons.net.SocketClie
* <p>
* <p>
* @author Daniel F. Savarese
+ * @author Ted Wise
* @see NNTPClient
* @see NNTPConnectionClosedException
* @see org.apache.commons.net.MalformedServerReplyException
+ * @version $Id$
***/
public class NNTP extends SocketClient
@@ -998,6 +1000,35 @@ public class NNTP extends SocketClient
***/
public int xover(String selectedArticles) throws IOException {
return sendCommand(NNTPCommand.XOVER, selectedArticles);
+ }
+
+ /***
+ * A convenience method to send the NNTP XHDR command to the server,
+ * receive the reply, and return the reply code.
+ * <p>
+ * @param header a String naming a header line (e.g., "subject"). See
+ * RFC-1036 for a list of valid header lines.
+ * @param selectedArticles a String representation of the range of
+ * article headers required. This may be an article number, or a
+ * range of article numbers in the form "XXXX-YYYY", where XXXX
+ * and YYYY are valid article numbers in the current group. It
+ * also may be of the form "XXX-", meaning "return XXX and all
+ * following articles" In this revision, the last format is not
+ * possible (yet).
+ * @return The reply code received from the server.
+ * @exception NNTPConnectionClosedException
+ * If the NNTP server prematurely closes the connection as a result
+ * of the client being idle or some other reason causing the server
+ * to send NNTP reply code 400. This exception may be caught either
+ * as an IOException or independently as itself.
+ * @exception IOException If an I/O error occurs while either sending the
+ * command or receiving the server reply.
+ ***/
+ public int xhdr(String header, String selectedArticles) throws IOException {
+ StringBuffer command = new StringBuffer(header);
+ command.append(" ");
+ command.append(selectedArticles);
+ return sendCommand(NNTPCommand.XHDR, command.toString());
}
/**
Index: net/src/java/org/apache/commons/net/nntp/NNTPClient.java
===================================================================
RCS file:
/home/cvspublic/jakarta-commons/net/src/java/org/apache/commons/net/nntp/NNTPClient.java,v
retrieving revision 1.5
diff -u -p -r1.5 NNTPClient.java
--- net/src/java/org/apache/commons/net/nntp/NNTPClient.java 4 Sep 2003
20:32:43 -0000 1.5
+++ net/src/java/org/apache/commons/net/nntp/NNTPClient.java 23 Oct 2003
19:37:58 -0000
@@ -116,9 +116,11 @@ import org.apache.commons.net.MalformedS
* <p>
* <p>
* @author Daniel F. Savarese
+ * @author Ted Wise
* @see NNTP
* @see NNTPConnectionClosedException
* @see org.apache.commons.net.MalformedServerReplyException
+ * @version $Id$
***/
public class NNTPClient extends NNTP
@@ -1245,6 +1247,59 @@ public class NNTPClient extends NNTP
{
return
__retrieveArticleInfo(new String(lowArticleNumber + "-" +
+ highArticleNumber));
+ }
+
+ /***
+ * Private implementation of XHDR functionality.
+ *
+ * See <a href="org.apache.commons.nntp.NNTP.html#xhdr">
+ * for legal agument formats. Alternatively, read RFC 1036.
+ * <p>
+ * @param header
+ * @param articleRange
+ * @return Returns a DotTerminatedMessageReader if successful, null
+ * otherwise
+ * @exception IOException
+ */
+ private Reader __retrieveHeader(String header, String articleRange)
+ throws IOException
+ {
+ if (!NNTPReply.isPositiveCompletion(xhdr(header, articleRange)))
+ return null;
+
+ return new DotTerminatedMessageReader(_reader_);
+ }
+
+ /**
+ * Return an article header for a specified post.
+ * <p>
+ * @param header the header to retrieve
+ * @param articleNumber the article to retrieve the header for
+ * @return a DotTerminatedReader if successful, null otherwise
+ * @throws IOException
+ */
+ public Reader retrieveHeader(String header, int articleNumber) throws
IOException
+ {
+ return __retrieveHeader(header, new Integer(articleNumber).toString());
+ }
+
+ /**
+ * Return an article header for all articles between lowArticleNumber
+ * and highArticleNumber, inclusively.
+ * <p>
+ * @param header
+ * @param lowArticleNumber
+ * @param highArticleNumber
+ * @return a DotTerminatedReader if successful, null otherwise
+ * @throws IOException
+ */
+ public Reader retrieveHeader(String header, int lowArticleNumber,
+ int highArticleNumber)
+ throws IOException
+ {
+ return
+ __retrieveHeader(header, new String(lowArticleNumber + "-" +
highArticleNumber));
}
}
Index: net/src/java/org/apache/commons/net/nntp/NNTPCommand.java
===================================================================
RCS file:
/home/cvspublic/jakarta-commons/net/src/java/org/apache/commons/net/nntp/NNTPCommand.java,v
retrieving revision 1.4
diff -u -p -r1.4 NNTPCommand.java
--- net/src/java/org/apache/commons/net/nntp/NNTPCommand.java 4 Sep 2003
20:32:43 -0000 1.4
+++ net/src/java/org/apache/commons/net/nntp/NNTPCommand.java 23 Oct 2003
19:37:58 -0000
@@ -59,6 +59,8 @@ package org.apache.commons.net.nntp;
* the meaning of the codes, familiarity with RFC 977 is assumed.
* <p>
* @author Daniel F. Savarese
+ * @author Ted Wise
+ * @version $Id$
***/
public final class NNTPCommand
@@ -81,6 +83,7 @@ public final class NNTPCommand
public static final int STAT = 14;
public static final int AUTHINFO = 15;
public static final int XOVER = 16;
+ public static final int XHDR = 17;
// Cannot be instantiated
private NNTPCommand()
@@ -89,7 +92,7 @@ public final class NNTPCommand
static final String[] _commands = {
"ARTICLE", "BODY", "GROUP", "HEAD", "HELP", "IHAVE", "LAST", "LIST",
"NEWGROUPS", "NEWNEWS", "NEXT", "POST", "QUIT", "SLAVE", "STAT",
- "AUTHINFO", "XOVER"
+ "AUTHINFO", "XOVER", "XHDR"
};
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org