summaryrefslogtreecommitdiff
path: root/lib/Net/NNTP.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Net/NNTP.pm')
-rw-r--r--lib/Net/NNTP.pm53
1 files changed, 51 insertions, 2 deletions
diff --git a/lib/Net/NNTP.pm b/lib/Net/NNTP.pm
index 0078cf4830..521ccf1e16 100644
--- a/lib/Net/NNTP.pm
+++ b/lib/Net/NNTP.pm
@@ -14,7 +14,7 @@ use Carp;
use Time::Local;
use Net::Config;
-$VERSION = "2.20"; # $Id: //depot/libnet/Net/NNTP.pm#14 $
+$VERSION = "2.21"; # $Id: //depot/libnet/Net/NNTP.pm#15 $
@ISA = qw(Net::Cmd IO::Socket::INET);
sub new
@@ -116,6 +116,14 @@ sub article
: undef;
}
+sub articlefh {
+ @_ >= 1 && @_ <= 2 or croak 'usage: $nntp->articlefh( [ MSGID ] )';
+ my $nntp = shift;
+
+ return unless $nntp->_ARTICLE(@_);
+ return $nntp->tied_fh;
+}
+
sub authinfo
{
@_ == 3 or croak 'usage: $nntp->authinfo( USER, PASS )';
@@ -147,6 +155,14 @@ sub body
: undef;
}
+sub bodyfh
+{
+ @_ >= 1 && @_ <= 2 or croak 'usage: $nntp->bodyfh( [ MSGID ] )';
+ my $nntp = shift;
+ return unless $nntp->_BODY(@_);
+ return $nntp->tied_fh;
+}
+
sub head
{
@_ >= 1 && @_ <= 3 or croak 'usage: $nntp->head( [ MSGID ], [ FH ] )';
@@ -160,6 +176,14 @@ sub head
: undef;
}
+sub headfh
+{
+ @_ >= 1 && @_ <= 2 or croak 'usage: $nntp->headfh( [ MSGID ] )';
+ my $nntp = shift;
+ return unless $nntp->_HEAD(@_);
+ return $nntp->tied_fh;
+}
+
sub nntpstat
{
@_ == 1 || @_ == 2 or croak 'usage: $nntp->nntpstat( [ MSGID ] )';
@@ -296,6 +320,12 @@ sub post
: undef;
}
+sub postfh {
+ my $nntp = shift;
+ return unless $nntp->_POST();
+ return $nntp->tied_fh;
+}
+
sub quit
{
@_ == 1 or croak 'usage: $nntp->quit()';
@@ -743,6 +773,16 @@ Like C<article> but only fetches the body of the article.
Like C<article> but only fetches the headers for the article.
+=item articlefh ( [ MSGID|MSGNUM ] )
+
+=item bodyfh ( [ MSGID|MSGNUM ] )
+
+=item headfh ( [ MSGID|MSGNUM ] )
+
+These are similar to article(), body() and head(), but rather than
+returning the requested data directly, they return a tied filehandle
+from which to read the article.
+
=item nntpstat ( [ MSGID|MSGNUM ] )
The C<nntpstat> command is similar to the C<article> command except that no
@@ -842,6 +882,15 @@ C<datasend> and C<dataend> methods from L<Net::Cmd>
C<MESSAGE> can be either an array of lines or a reference to an array.
+=item postfh ()
+
+Post a new article to the news server using a tied filehandle. If
+posting is allowed, this method will return a tied filehandle that you
+can print() the contents of the article to be posted. You must
+explicitly close() the filehandle when you are finished posting the
+article, and the return value from the close() call will indicate
+whether the message was successfully posted.
+
=item slave ()
Tell the remote server that I am not a user client, but probably another
@@ -1064,6 +1113,6 @@ it under the same terms as Perl itself.
=for html <hr>
-I<$Id: //depot/libnet/Net/NNTP.pm#14 $>
+I<$Id: //depot/libnet/Net/NNTP.pm#15 $>
=cut