1SEND-IHAVE(8) InterNetNews Documentation SEND-IHAVE(8)
2
3
4
6 send-ihave - Send ihave control messages to remote sites
7
9 send-ihave [-d] sitename[:hostname] [sitename[:hostname] ...]
10
12 Using send-ihave is discouraged; the ihave and sendme control messages
13 implement a predecessor of the NNTP protocol, and are now largely
14 obsolete on the Internet but still see use in conjunction with some
15 transport protocols such as UUCP.
16
17 In case you really need using ihave and sendme control messages, and
18 follow these instructions to set them up, please inform the INN
19 maintainers of any documentation improvements that would have made the
20 installation easier, notably missing or unclear steps.
21
22 The basic idea behind the ihave and sendme control messages is that you
23 tell your UUCP peers what articles you have available via ihave control
24 messages, and you respond with a sendme control message for the
25 articles that you want.
26
27 send-ihave processes the batch files written by innd to send ihave
28 control messages to remote NNTP sites. The sites to be fed are
29 specified by giving "sitename:hostname" pairs on the command line. The
30 sitename is the label the site has in the newsfeeds file, without its
31 ".ihave" suffix. The hostname is the real hostname of the remote site,
32 a FQDN (Fully Qualified Domain Name). Normally, the sitename and the
33 hostname are the same, and as such don't have to be specified as
34 "sitename:hostname" pairs but just as "sitename".
35
36 send-ihave encapsulates Message-IDs in an ihave control message and
37 uses inews to send the control message to a "to.hostname" pseudo-
38 newsgroup.
39
40 The batch file generated by send-ihave for a given site is named
41 sitename.ihave in the pathoutgoing directory. To prevent batch file
42 corruption, shlock(1) is used ensure these files are not processed by
43 two running instances in parallel.
44
45 For instance, to generate ihave control messages for news.server.com
46 when receiving articles in the comp.* hierarchy, just add the following
47 line in your newsfeeds file (and reload it):
48
49 news.server.com.ihave:comp.*:Tf,Wm:
50
51 (Note that if you send "*" to "news.server.com", you should add
52 "@to,@to.*" to the end of the newsgroup pattern so that the ihave
53 control message generated by send-ihave isn't, itself, included in the
54 list of articles in an ihave control message. You may also want to add
55 that pattern to the end of any entry processing control articles, like
56 controlchan, or being fed a "*" pattern.)
57
58 Then, periodically run out of cron(8) the following command:
59
60 send-ihave news.server.com
61
62 send-ihave will then post to the "to.news.server.com" pseudo-newsgroup
63 an ihave control article containing a list of Message-IDs. Several
64 control articles may be posted, each one containing up to 1000 Message-
65 IDs.
66
67 Make sure the "to.news.server.com" pseudo-newsgroup exists on your
68 server (or the "to" pseudo-newsgroup if mergetogroups is set to true in
69 inn.conf), and that ihave control articles are not filtered (the
70 default Cleanfeed configuration rejects them). These control articles
71 will be filed in the "control" pseudo-newsgroup (or "control.ihave" if
72 it exists), or "to" if mergetogroups is set to true.
73
74 You now have to propagate them with any method you want to the remote
75 server. You probably already had one set up, in which case you only
76 have to add the "to.news.server.com" newsgroup in the list of groups to
77 feed it. (See how send-uucp(8) works to set up a UUCP feed.)
78
79 Besides sending ihave control messages, your news server needs
80 processing the sendme control messages it receives from remote peers.
81 You have to add a "sendme" entry in control.ctl.local with a doit
82 action to allow the processing of these messages matching a given From
83 address. controlchan will then generate a batch file named
84 pathname.work in pathoutgoing, containing a list of storage tokens
85 (pathname is taken from the Path header field body or the IP address of
86 the remote peer, depending on the value of logipaddr in inn.conf).
87 Finally, you'll have to set up batcher(8) or send-uucp(8) to send the
88 news batches to your remote peers.
89
90 Similarly, your news server needs processing the ihave control messages
91 it receives from remote peers. This step is the easiest to do. Just
92 add an "ihave" entry in control.ctl.local like the one you added for
93 "sendme". controlchan will process these ihave control messages, and
94 generate a sendme control article for each article present in the ihave
95 control message but not in your local news server. These sendme
96 control articles are posted to the "to.pathname" pseudo-newsgroup, and
97 will be propagated as described before. (Note that there may be two
98 different "to" groups to create because the sitename used in newsfeeds
99 may not be the same as pathname.)
100
101 Beware that the ihave and sendme control messages are not signed. You
102 should enforce restrictions on who can send articles to "to.*" groups,
103 either via readers.conf or special rules in filter hooks, and on the
104 "ihave" and "sendme" lines in control.ctl.local.
105
107 -d The -d flag causes send-ihave to send output to stdout rather than
108 the send-ihave.log log file in pathlog.
109
111 Rewritten into POD by Julien Elie.
112
114 batcher(8), controlchan(8), control.ctl(5), inews(1), newsfeeds(5),
115 send-uucp(8).
116
117
118
119INN 2.7.1 2022-07-10 SEND-IHAVE(8)