1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
-
- This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
- project.
-
- Copyright (C) 1998-2018 OpenLink Software
-
- This project is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; only version 2 of the License, dated June 1991.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-->
<refentry id="fn_nntp_get">
<refmeta>
<refentrytitle>nntp_get</refentrytitle>
<refmiscinfo>mail</refmiscinfo>
</refmeta>
<refnamediv>
<refname>nntp_get</refname>
<refpurpose>Returns information about an NNTP server.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis id="fsyn_nntp_get">
<funcprototype id="fproto_nntp_get">
<funcdef>array <function>nntp_get</function></funcdef>
<paramdef>in <parameter>server</parameter> varchar</paramdef>
<paramdef>in <parameter>command</parameter> varchar</paramdef>
<paramdef>in <parameter>group</parameter> varchar</paramdef>
<paramdef><optional>in <parameter>first_message</parameter> integer</optional></paramdef>
<paramdef><optional>in <parameter>last_message</parameter> integer</optional></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="desc_nntp_get"><title>Description</title>
<para>
<function>nntp_get()</function> is used to retrieve messages from a server running
the Network News Transfer Protocol (NNTP) as defined in
<ulink url="http://www.rfc-editor.org/rfc/rfc977.txt">RFC977</ulink>. It returns
an array whose structure depends on the <parameter>command</parameter>
parameter, thus:</para>
<simplelist>
<member><emphasis>list</emphasis>: an array of vectors, each of which
contain the name of the news group, the first message number, the last
message number, and a single character 'y' or 'n' as a flag for
posting.</member>
<member><emphasis>group</emphasis>: a vector of three elements: total number
of messages in the group, the number of the first message, and the number
of the last message.</member>
<member><emphasis>stat</emphasis>: an array of vectors, each of which
contains the number of the message and the message id.</member>
<member><emphasis>article, body, head</emphasis>: an array of vectors each
containing the message number and the requested part of the message.</member>
</simplelist>
</refsect1>
<refsect1 id="params_nntp_get"><title>Parameters</title>
<refsect2>
<title>server</title>
<para>The IP address or <hostname:port> of the host with which to
connect. There is no default for <parameter>port</parameter>, so to connect to the
standard port for NNTP, use <hostname/IP address>:119.</para>
</refsect2>
<refsect2>
<title>command</title>
<para>Command <type>string</type>. Valid values are:</para>
<simplelist>
<member>article</member>
<member>body</member>
<member>head</member>
<member>stat</member>
<member>list</member>
<member>group</member>
<member>xover</member>
</simplelist>
</refsect2>
<refsect2>
<title>group</title>
<para>A <type>string</type> containing the name of the newsgroup.</para>
</refsect2>
</refsect1>
<refsect1 id="ret"><title>Return Types</title>
<para>A vector of vectors the content of which depends on the
<parameter>command</parameter> parameter.</para>
</refsect1>
<refsect1 id="errors_nntp_get"><title>Errors</title>
<table><title>Errors signalled by</title>
<tgroup cols="3">
<thead><row><entry>SQLState</entry><entry>Error Code</entry><entry>Error Text</entry></row></thead>
<tbody>
<row>
<entry><errorcode>22023</errorcode></entry>
<entry><errorcode>NN006</errorcode></entry>
<entry><errorname>the command is not recognized</errorname></entry>
</row>
<row>
<entry><errorcode>22023</errorcode></entry>
<entry><errorcode>NN001</errorcode></entry>
<entry><errorname>Large ID in nntp_id_get</errorname></entry>
</row>
<row>
<entry><errorcode>2E000</errorcode></entry>
<entry><errorcode>NN002</errorcode></entry>
<entry><errorname>Invalid address for News Server at [host]</errorname></entry>
</row>
<row>
<entry><errorcode>08001</errorcode></entry>
<entry><errorcode>NN003</errorcode></entry>
<entry><errorname>Unable to Contact News Server at [host]</errorname></entry>
</row>
<row>
<entry><errorcode>08006</errorcode></entry>
<entry><errorcode>NN004</errorcode></entry>
<entry><errorname>Lost connection with NNTP server</errorname></entry>
</row>
<row>
<entry><errorcode>08006</errorcode></entry>
<entry><errorcode>NN005</errorcode></entry>
<entry><errorname>Misc. error in connection in nntp_get</errorname></entry>
</row>
</tbody>
</tgroup>
</table>
</refsect1>
<refsect1 id="examples_nntp_get"><title>Examples</title>
<example id="ex_nntp_get_1"><title>Get remote messages</title>
<para>This example retrieves messages from a remote NNTP server and stores them in a table.</para>
<screen>
create table my_news (m_id integer, m_group varchar, m_text long varchar,
primary key (m_id, m_group));
create procedure get_my_news (in server varchar, in grp varchar)
{
declare res, ent any;
declare i, l integer;
res := nntp_get (server, 'article', grp, 0, 1000);
i := 0; l := length (res);
while (i < l)
{
ent := res [i];
insert replacing my_news (m_id, m_group, m_text)
values (ent[0], grp, ent[1]);
i := i + 1;
}
}
</screen>
<para>Here is a test run. We extract the article subject with the <function>mail_header()</function> function.</para>
<screen>
SQL> get_my_news ('news.techno-link.com:119', 'comp.lang.java.api');
SQL> select m_id, mail_header (m_text, 'Subject') from my_news;
m_id callret
INTEGER NOT NULL VARCHAR
_______________________________________________________________________________
2 New java method modifier "partial": not quite abstract, not quite concrete
3 Senior Design Project Ideas
4 java & dummy terminals
5 Re: What is the equivalent of WORD in Java
6 Re: What is the equivalent of WORD in Java
</screen>
</example>
</refsect1>
</refentry>
|