home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / inn-faq / part4 < prev    next >
Encoding:
Internet Message Format  |  1997-12-13  |  51.8 KB

  1. From: hwr@pilhuhn.de (Heiko W.Rupp)
  2. Newsgroups: news.software.nntp,news.software.b,news.answers
  3. Subject: INN FAQ Part 4/9: Debugging & Configuring Information
  4. Supersedes: <faq.p4_881029525@pilhuhn.de>
  5. Followup-To: news.software.nntp
  6. Date: 9 Dec 1997 03:25:37 +0100
  7. Organization: The Home Of The Pilhuhn
  8. Lines: 1221
  9. Approved: hwr@pilhuhn.de
  10. Expires: 26 Dec 1997 02:25:25 GMT
  11. Message-ID: <faq.p4_881634325@pilhuhn.de>
  12. NNTP-Posting-Host: snert.pilhuhn.de
  13. Summary: This article is part 4 of a multi-part FAQ:
  14.     Part 4: Read this AFTER you've read and followed the directions in Install.ms.  This includes a tutorial on debugging posting/access problems.
  15. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.starnet.net!newspump.wustl.edu!crcnews.unl.edu!newsfeed.inetnebr.com!news.wildstar.net!news.ecn.uoknor.edu!news.eng.convex.com!newsgate.duke.edu!nntprelay.mathworks.com!news-peer.gip.net!news.gsl.net!gip.net!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!fu-berlin.de!news.belwue.de!news.uni-ulm.de!rz.uni-karlsruhe.de!pilhuhn.de!snert!news
  16. Xref: senator-bedfellow.mit.edu news.software.nntp:43934 news.software.b:22600 news.answers:118599
  17.  
  18. Posted-By: post_faq 2.10
  19. Archive-name: usenet/software/inn-faq/part4
  20. Last Changed: $Date: 1997/08/26 01:26:21 $ $Revision: 2.19 $
  21.  
  22.                   Part 4 of 9
  23.  
  24. INN FAQ Part 1: General and questions from people that don't (yet) run INN
  25. INN FAQ Part 2: Specific notes for specific operating systems
  26. INN FAQ Part 3: Reasons why INN isn't starting
  27. INN FAQ Part 4: The debugging tutorial (setup of feeds etc.)
  28. INN FAQ Part 5: Other error messages and what they mean
  29. INN FAQ Part 6: Day-to-day operation and changes to the system
  30. INN FAQ Part 7: Problems with INN already running
  31. INN FAQ Part 8: Appendix A: Norman's install guide
  32. INN FAQ Part 9: Appendix B: Configurations for certain systems
  33.  
  34.  
  35. ------------------------------
  36.  
  37. Subject:  Table Of Contents for Part 4/9
  38.  
  39. =====================================================================
  40.      TABLE OF CONTENTS FOR PART 4/9:  Debugging Guide & Tutorial
  41. =====================================================================
  42.  
  43. THE DEBUGGING TUTORIAL:
  44.     4.1 Should I read the Install.ms file in its entirety before reading this document?
  45.     4.2 Terminology used in the rest of this document.
  46.     4.3 How does it all fit together?
  47.     4.4 What should I monitor as I debug INN problems?
  48.     4.5 My innd won't start!
  49.     4.6 Connecting to a TCP/IP server.
  50.     4.7 Make sure that "feeders" can connect.
  51.     4.8 Make sure that "readers" can connect.
  52.     4.9 Make sure that clients can post.
  53.     4.10 "client" doesn't have the software needed to post.
  54.     4.11 Introduction to the "newsfeeds" file
  55.     4.12 The ME line in the newsfeeds file.
  56.     4.13 How does the "ME" line interact with the other lines?
  57.     4.14 Cookbook example of an outgoing NNTP feed.
  58.     4.15 Cookbook example of an outgoing UUCP feed.
  59.     4.16 Cookbook example of an outgoing UUCP-over-TCP feed.
  60.     4.17 Testing an outgoing feed (your "newsfeeds" configuration).
  61.     4.18 Other cron jobs.
  62.     4.19 Cookbook example of setting up NOV ("overchan").
  63.     4.20 How do I use nntplink with INN?
  64.     4.21 How do I use innfeed with INN ?
  65.     4.22 How do I gate news to mail and/or mail to news?
  66.     4.23 Should I distribute control messages?
  67.  
  68.  
  69. =====================================================================
  70.                        THE DEBUGGING TUTORIAL
  71.                 (or, What do I do after Install.ms?)
  72. =====================================================================
  73.  
  74.  
  75. ------------------------------
  76.  
  77. Subject: (4.1) Should I read the Install.ms file in its entirety before reading this document?
  78.  
  79. YES!  Install.ms tells you how to compile and install the software.
  80. This document walks you through debugging the *configuration* of the
  81. software once it is installed.
  82.  
  83. This document takes you from where install.ms leaves off, gives you a
  84. quick overview of how all the pieces fit together, and then takes you
  85. through specific debugging tasks.
  86.  
  87. Debugging INN problems is often difficult because one needs to be an
  88. experienced netnews person to do it well.  You can only get experience
  89. by having a properly running system.  This is a catch-22.  This
  90. tutorial attempts to take you through the basics.  The rest you'll
  91. figure out.
  92.  
  93. Newsgroups you should know exist:
  94. news:news.software.nntp  -- INN questions go here.
  95. news:news.software.b     -- Discussions about any of the many software
  96.     packages that support the "B news" format (i.e. INN, C news,
  97.     ANU-NEWS, etc.)
  98.  
  99. This document also takes you through the process of verifying that your
  100. system is properly configured.  When you are done, you should:
  101.  
  102. 1.  be sure that when feeders connect they are treated as feeders.
  103.  
  104. 2.  be sure that when clients connect they are treated as clients.
  105.  
  106. 3.  be sure that posting works.
  107.  
  108. 4.  be sure that your out-bound feeds are properly configured.
  109.  
  110.  
  111. ------------------------------
  112.  
  113. Subject: (4.2) Terminology used in the rest of this document.
  114.  
  115. We will pretend that your machine is named "nntphost" or
  116. "nntphost.do.main" and that there is a client named "client" or
  117. "client.do.main".
  118.  
  119. Some machines connect to you to try to feed you new articles.  We'll
  120. call these machines "feeders".  Some machines try to connect to you to
  121. read and/or post articles.  We'll call these machines "readers".
  122.  
  123.  
  124. ------------------------------
  125.  
  126. Subject: (4.3) How does it all fit together?
  127.  
  128. Here is a fantastic overview of the workings of INN.
  129.  
  130. From: Ken Hornstein <kenh@leps5.phys.psu.edu>
  131.  
  132. I discovered that the biggest problem I had with INN was understanding how
  133. everything fits together (since I had no experience with B or C news).
  134. Here's a (hopefully) simple description of how everything fits
  135. together:
  136.  
  137. After running rc.news (as "root"), you should have the "innd" daemon
  138. running ("ps" will show the process to be owned by "news").  This is
  139. the Master Daemon.  It handles incoming connections, stores the
  140. articles on your disk, but does _not_ send any articles out itself.  It
  141. directs other programs to do that.  Exactly where articles are sent and
  142. how they are sent is determined by the "newsfeeds" file.  Setting up
  143. your newsfeeds file will be the hardest part of configuring INN.  Here
  144. are some example entries from my newsfeeds file:
  145.  
  146. ra/ra.nrl.navy.mil\
  147.         :*,!psu.*/!psu\
  148.         :Tf,Wnm:
  149.  
  150. Looks complicated?  It isn't.  Here's what it means:
  151.  
  152. "ra" is the name of the feed.  "/ra.nrl.navy.mil" is an alias for ra.
  153. This is important because INN uses the "Path" header to insure the
  154. articles are not sent to sites where they have already been.  Thus, any
  155. article that has "ra" or "ra.nrl.navy.mil" in the Path header will NOT
  156. be sent to this site.  We know that no other site inserts "ra.nrl.navy.mil"
  157. because it is a FQDN (Fully Qualified Domain Name).  We know that no
  158. other site inserts "ra" because it is registered in the UUCP Maps.
  159. (Ok, "ra" isn't registered so I'm just taking a small gamble.)
  160.  
  161. The second line tells what articles will be sent out to this site.
  162. "*,!psu.*" means that articles for (all newsgroups minus those that
  163. match "psu.*") will be sent to ra.  The details of the pattern matching
  164. is found in the wildmat(3) man page.  The "/!psu" means that articles
  165. with a "Distribution" header of psu will also not be sent to ra.
  166.  
  167. The last field specifies exactly what _kind_ of feeds.  "Tf" means this
  168. is a file feed.  Unless you have unusual requirements, all of your
  169. feeds will be file feeds.  "Wnm" means that the relative path name and
  170. the Message-ID of the article will be written to this file.  The "n"
  171. means "relative path name", the "m" means "Message-ID of the article".
  172. The newsfeeds(5) man page explains all the letters you can use with
  173. "W".  By default, the output file is called the same name as your feed
  174. file, and is in your out.going directory.  So on my system, every
  175. article destined to ra will have its filename and Message-ID written to
  176. the file "/var/spool/news/out.going/ra".
  177.  
  178. So how do the articles actually GET to ra?  You run a program that
  179. reads the feeds file and transmits the article.  Two such programs are
  180. included with INN -- "send-nntp" and "nntpsend".  My personal
  181. preference is for nntpsend.  If you are going to use nntpsend, you will
  182. need to add a similar line to your nntpsend.ctl file:
  183.  
  184. ra:ra.nrl.navy.mil
  185.  
  186. This tells nntpsend that articles in the feed file "ra" should be sent
  187. to the site "ra.nrl.navy.mil".  I run nntpsend out of cron every 10
  188. minutes with this line:
  189.  
  190. (in "news"'s cron)
  191. 0,10,20,30,40,50 * * * * /usr/local/news/bin/nntpsend
  192.  
  193. Or, if you use an old-style cron (like Ultrix does):
  194. 0,10,20,30,40,50 * * * * /bin/su news -c '/usr/local/news/bin/nntpsend'
  195.  
  196. UUCP feeds work similarly and are described in a different section.
  197.  
  198. As each article comes in (note that hosts feeding you _must_ be listed
  199. in the hosts.nntp file), innd will examine it and distribute to your
  200. listed feeds based on the above-described selection criteria.
  201.  
  202. Another important thing to do is to make sure your articles get
  203. expired.  This is done from the "news.daily" script.  The "expire.ctl"
  204. file describes how long you want each article to last.  Here are some
  205. sample lines from my expire.ctl:
  206.  
  207. /remember/:14
  208.  
  209. This line tells expire to keep history entries for articles at least 14
  210. days.
  211.  
  212. *:A:1:7:21
  213.  
  214. This is the default line.  This says that by default, an article is
  215. kept a minimum of one day, the default expiration time is 7 days (this
  216. applies if there is no "Expires" header), and the very maximum that the
  217. article is kept is 21 days.
  218.  
  219. psu.*:A:1:14:28
  220.  
  221. This line applies to groups only in Penn State.  By default, those
  222. articles will last 14 days, 28 days at the most.
  223.  
  224. Note that lines in expire.ctl should have the most general entries
  225. first, with the most specific entries last.
  226.  
  227. Lastly, where do newsreaders fit in?  When a newsreader connects to the
  228. innd process, it sees that this is not a feeder (the hosts.nntp file
  229. lists only sitest that feed YOU) so it forks a nnrpd process and hands
  230. the connection to it.  This way innd can concentrate on newsfeeds.
  231. Some newsreaders don't open a connection, but instead read the articles
  232. out of "/usr/spool/news" (and gets meta data from "/usr/lib/news").
  233. INN doesn't need to do anything about those readers except to make
  234. sure the right data is where they expect it.
  235.  
  236.  
  237. ------------------------------
  238.  
  239. Subject: (4.4) What should I monitor as I debug INN problems?
  240.  
  241. 1.  run "tail -f /var/adm/messages" to see if any syslog messages are
  242. being generated.
  243.  
  244. 2.  run "tail -f /var/log/news/news.err" to see if any fatal errors
  245. happen. 
  246.  
  247. 3.  Check for incoming email constantly (especially when trying to post
  248. from "nn").
  249.  
  250.  
  251. ------------------------------
  252.  
  253. Subject: (4.5) My innd won't start!
  254.  
  255. Keep a "tail -f /var/adm/messages" running.  INN reports most errors
  256. via syslog.  The syslog messages usually explain what is wrong.
  257. Elsewhere in this document are details about some of the less obvious
  258. syslog messages.
  259.  
  260. Chances are, INN is starting, finding a misconfigured "ME" line in the
  261. newsfeeds file, and exiting.  You might want to read the section on
  262. configuring your "newsfeeds" file first.
  263.  
  264. Rich Salz says a common reason is that you ran makehistory but didn't
  265. rename the DBZ files.  "makehistory" generates history.n.dir
  266. and history.n.pag.  They must be renamed:
  267.     mv history.n.dir history.dir
  268.     mv history.n.pag history.pag
  269. (In the future, you could run "makehistory -f history", which is a
  270. little more risky... so read the man page before you use it.  "makehistory"
  271. is part of the man page "news-recovery".  This will change in 1.5.)
  272.  
  273. Izar Tarandach <izar@cs.huji.ac.il> suggests that another common
  274. mistake is that innd wasn't being started by the correct uid.  innd
  275. (and therefore rc.news) must be started from "root" (not "news").  It
  276. immediately turns itself in user "news" once certain tasks are
  277. completed.
  278.  
  279. If you use a suid root inndstart, you can run it as any user.
  280.  
  281.  
  282. ------------------------------
  283.  
  284. Subject: (4.6) Connecting to a TCP/IP server.
  285.  
  286. You know that "telnet"'ing to a machine lets you log into it.  You are
  287. actually connecting on the "telnet" port (port 23).  Many TCP/IP
  288. services allow you to "telnet" into their port and talk directly to
  289. them.  Try "telnet nntphost 21".  This means log into port #21 (the
  290. "ftp" port) instead of the usual remote login port.
  291.  
  292. Once you are in, you'll get no prompt.  Type "help" and press RETURN.
  293. You should get a list of commands.  If you know what the commands are,
  294. you can talk to this server.  Type "quit" and press RETURN to get out.
  295.  
  296. After every command you should get some kind of status message.  Each
  297. line will begin with a number.  Each message has a unique number.
  298. Errors are defined as anything that starts with a number >= 400.
  299. Positive (non-error) messages are <400.
  300.  
  301. SMTP (mail) and NNTP (netnews) work the same way.  Telnet into their
  302. port and issue commands and data.  "quit" always gets you out.
  303.  
  304. We'll use this to debug INN configurations by "telnet"'ing into the
  305. innd server and seeing the raw error messages it gives us.
  306.  
  307. Try "telnet"'ing into the NNTP port (#119) of a working NNTP server to
  308. see what it's like.
  309.  
  310.  
  311. ------------------------------
  312.  
  313. Subject: (4.7) Make sure that "feeders" can connect.
  314.  
  315. "feeders" are listed in hosts.nntp.  "readers" are listed in
  316. nnrp.access.  This section deals with "feeders" and hosts.nntp.
  317.  
  318. When a machine connects to the NNTP port of nntphost, it connects to
  319. the innd process.  innd knows the internet address of the machine that
  320. is making this connection, and sees if it matches the internet
  321. addresses many of the machines listed in the hosts.nntp file.
  322.  
  323. If the machine is not listed in hosts.nntp, it is assumed that this
  324. machine is not a "feeder" and forks off a nnrpd to handle this
  325. connection as a "reader".  If you didn't know that, you didn't read
  326. enough of the INN installation documentation.  Go back and read it
  327. now.
  328.  
  329. Read the man page hosts.nntp to get a complete understanding of what's
  330. going on.  nnrpd uses its own authentication scheme, which is
  331. described in the next section.
  332.  
  333. Since I know you didn't read that man page, I'll give you one more
  334. chance to read it now.
  335.  
  336. Let's configure hosts.nntp.  Just enter the names of all the machines
  337. that feed you:
  338.  
  339. feeder1.do.main:
  340. feeder2.do.main:
  341.  
  342. I don't use passwords yet.  If you do, add them after the ":". (See also #4.14)
  343.  
  344. Now let's test to see if the feeder can connect properly.
  345.  
  346. Log into to the feeder and "telnet nntphost 119".
  347.  
  348. If you can't log into a feeder, configure your own machine as a feeder
  349. (i.e. feeder to itself) for testing purposes.  Once you can see that
  350. INN is treating that machine as a feeder you can replace the machine's
  351. name with the name of a real feed.
  352.  
  353. If you are given an error message and booted out, check the error
  354. message to see what's wrong.  Maybe the machine is running maintenance
  355. at the time and you have to try again later.  Maybe the machine doesn't
  356. recognize you at all and you have to edit "hosts.nntp" (and don't
  357. forget the "ctlinnd reload hosts.nntp" command!).
  358.  
  359. Run "inncheck" to tell you if you have made any obvious mistakes.
  360.  
  361. If your "history" file or other files have the wrong ownership or
  362. protections INN will mention the offending file in the error message.
  363. Another common mistake is that people try to use wildcards in
  364. hosts.nntp (which is not supported).  Remember, there are very few
  365. machines that you consider to be "feeders", so you don't want to use a
  366. wildcard.
  367.  
  368. To test a "feeder":  If "feeder1" can send an "ihave" command and get a
  369. "335" as a response, you know that "nntphost" is permitting "feeder1"
  370. to transfer news as a "feeder".  "ihave" requires an operand.  I
  371. usually type "ihave <1@test>" and press RETURN.  "<1@test>" is a
  372. Message-ID that I know doesn't exist.  If I get "500 What?" I know that
  373. innd assumed that I'm a "reader" (so I have to edit my "hosts.nntp"
  374. file and add this client).  If I get "335" and then a blank prompt,
  375. then INN is expecting to be fed an article.  I usually just "^]"
  376. (control-]) and "quit" out; I know that it was willing to accept the
  377. article.  If I get some other error message, it usually gives me enough
  378. information to debug the problem.
  379.  
  380.  
  381. ------------------------------
  382.  
  383. Subject: (4.8) Make sure that "readers" can connect.
  384.  
  385. As I wrote before, if a connection comes from a machine that isn't
  386. listed in the hosts.nntp file, it is assumed to be a "reader".  A
  387. "feeder" can also issue the "mode reader" command to become a
  388. "reader".  If you have "telnet"'ed in as a "feeder", try issuing this
  389. command.
  390.  
  391. Note: If a site is going to feed *and* read, you'll have to link
  392. readers with innd's client library. The reason for this is that the
  393. clients must tell innd that they want to read using the "mode reader"
  394. command.  The library does that automagically.  It is rare that you
  395. have a machine that is a reader and a feeder (since people will want to
  396. read on their local machine, not yours.)  News readers are now
  397. being packaged as "INN ready" so this will be less and less of a
  398. problem.
  399.  
  400. Once the connection has been handed off to nnrpd, nnrpd checks to make
  401. sure you are authorized.  It does that by reading the nnrp.access
  402. file.
  403.  
  404. There is a problem with what you enter in that file.  Namely, I might
  405. call the client machine "client", but that doesn't matter.  What
  406. matters is what "nntphost" thinks "client" is called.  Maybe "nntphost"
  407. thinks its name is "client.do.main" or even "137.202.177.3".  It
  408. doesn't matter what *you* call "client", permissions in the nnrp.access
  409. file have to be specified based on what "nntphost" calls "client".
  410. Technically, nnrpd uses gethostbyaddr() to reverse-lookup the name.
  411. gethostbyaddr() uses DNS or, if you are on a brain-dead Sun running
  412. Sun's NIS/DNS hack, it uses NIS, or DNS, or whatever the hell Sun was
  413. thinking when they created that cruft.
  414.  
  415. To find out what "nntphost" thinks your machine is called, do the
  416. following:  Telnet from "client" to "nntphost" and execute the "finger"
  417. command (just "finger" alone on the command line).  The last column is
  418. what "nntphost" thinks your machine is called.
  419.  
  420. If you don't have an account on both machines things are more
  421. difficult, consult your NIS or DNS expert to tell you what the answer
  422. would be.
  423.  
  424. There is one exception to this technique.  If you are using SunOS and
  425. braindead NIS you get just the machine name (like "milk") instead of
  426. the FQDN (like "milk.warren.mentorg.com") then you must tack on a
  427. period then the domain of the machine.
  428.  
  429. So, with this knowledge (what your nntphost thinks client's name is)
  430. and a copy of the man page, edit nnrp.access and add "nntphost"'s name
  431. for "client" to the file.  Unlike hosts.nntp, nnrp.access can have
  432. wildcards (for example, "*.sjc.mentorg.com").  You'll want to include
  433. wildcards for all the domains that should be allowed to read/post.
  434.  
  435. Here are some decent examples from my nnrp.access file:
  436.  
  437. -------------------------------------- Tom's nnrp.access file START
  438. ## Default is no access, no way to authentication, and no groups.
  439. *:: -no- : -no- :!*
  440. *.mentorg.com:Read:::*
  441. *.mentor.com:Read:::*
  442. *.warren.mentorg.com:Read Post:::*
  443. -------------------------------------- Tom's nnrp.access file END
  444.  
  445. The second field of "nnrp.access" is case sensitive.  "read post" does
  446. not mean the same as "Read Post".  If you know this already it's
  447. because you read the man page.
  448.  
  449. Note:  nnrpd will append the domain to a name that is not a FQDN.
  450. There is no need to try to find a wildcard that will match non-FQDN
  451. names (i.e. machines in your local NIS cluster).  Previously this FAQ
  452. had reported that "*[^.]*" would match these short names but that was
  453. wrong (the wildcard matches everything, oi!).  nnrpd turns non-FQDN's
  454. into FQDNs.
  455.  
  456. After you change "nnrp.access" you don't have do "ctlinnd reload" since
  457. the file is read by each nnrpd as they start up.
  458.  
  459. Now "nntphost" should be letting "client" read.  Let's test this out:
  460.  
  461. Log into to the reader and "telnet nntphost 119".
  462.  
  463. To test a "reader":  Give the "mode reader" command and see how it
  464. it goes.  If it doesn't give an error, then nnrp.access is letting you
  465. through.  To read an article (or just get the header) type "head
  466. <2@test>" and press RETURN.  Again, "<2@test>" is a message-id that I
  467. know doesn't exist.  If you are allowed to read at all, it will tell
  468. you that it can't find that article.  You should try the command with an
  469. message-id that you know exists and make sure you see the article's
  470. header.
  471.  
  472. If reading works you can skip to the next section.  The rest of this
  473. section helps you debug reading problems.
  474.  
  475. If "mode reader" gives an error (and rudely disconnects you) then you
  476. have a typo in nnrp.access OR you didn't issue the "ctlinnd reload"
  477. command correctly (or at all) OR nntphost thinks that "client" is
  478. called yet something else OR innd can't exec nnrpd for one reason or
  479. another -- see the syslog output or the innd.err log file.  Check all
  480. of those things then go to the beginning of this section and start
  481. over.
  482.  
  483. Note: Some telnet implementations are Real Stupid and disconnect you
  484. before showing the error message.
  485.  
  486. You can also run nnrpd by hand if you have
  487.     stdin:Read Post:::*
  488. in your nnrp.access file.  Just run nnrpd and type interactively.  This
  489. is useful for making sure it's compiled right.
  490.  
  491. ------------------------------
  492.  
  493. Subject: (4.9) Make sure that clients can post.
  494.  
  495. The "inews" command (usually in /usr/local/bin) takes a post from a
  496. user, adds any missing headers, appends the file
  497. "~/.signature" (see below), and possibly replaces any headers that
  498. are obviously forged.  "inews" will also reject a message if the
  499. message is seriously botched.  "inews -h" expects a post on stdin
  500. beginning with headers, then a blank line, then the body.  "inews -h
  501. -D" doesn't post the message, but outputs what it would have posted.
  502. The minimum headers one can feed is "Newsgroups:" (which is plural) and
  503. "Subject:" (which is singular).
  504.  
  505. The "~/.signature" handling has some specific rules:  INN's inews exits
  506. with an error if ~/.signature is (1) more than 4 lines long, (2)
  507. exists, but is not readable, or (3) is longer than 4k chars.  inews
  508. exits with an error (rather than silently reading only the first 4
  509. lines) to avoid a flurry of posts asking, "Why did my .signature get cut off?"
  510.  
  511. By the way, a header looks like "Header-Name: data".  That is, after
  512. the header name there is exactly one colon then exactly one space.  The
  513. space is a space, not a tab.  Another picky detail is that list of
  514. newsgroups on the "Newsgroups:" line is a comma separated list, with no
  515. spaces.  There are no spaces before the colon.  If there is nothing
  516. after the colon or if there is only whitespace after the colon then
  517. that header will be removed by "inews".  Sites that don't remove such
  518. "empty" headers have broken software.  Get it?  Got it?  Good.
  519.  
  520. Here's the test message I constantly use:
  521. ------------------------ cut here 8<
  522. inews -h -D
  523. Newsgroups: foo.test
  524. Subject: test of inn posting
  525.  
  526. this is a test
  527. ------------------------ cut here 8<
  528.  
  529. Exciting huh?
  530.  
  531. You might also use the 'feedone' program in the frontends directory.
  532. Do "cd $inn/frontends ; make feedone" to get it built.  To run it, do
  533.  
  534.         feedone -t -r /tmp/inews.input
  535.  
  536. This will (-t) trace all I/O with the server and (-r) use a random
  537. message-id each time.  If you want to test posting from a newsreading
  538. host (i.e., one that connects to nnrpd and uses the POST command) use
  539. the -p flag.
  540.  
  541. If inews was able to get to the /usr/lib/news/inn.conf file (for
  542. defaults) you should get a nice post on your screen.  If you don't,
  543. here are my suggestions:
  544.  
  545. 1 -- You have an old inews from C news or B news laying around
  546. 2 -- inews will give you an error message saying what's wrong.
  547.  
  548. You might want to look around the usual places to make sure that there
  549. are no old versions of "relaynews" or "inews".  People trying to use
  550. the "inews" from C news will get a message about "can't open
  551. redirection" or similar.  Make sure they are running the programs
  552. included with INN.  There is something called "mini-inews" which should
  553. just take a post and send it to the nntp server.  Delete that and
  554. replace it with INN's inews.  INN's inews is mini-inews and regular
  555. inews, it is the ying and then yang of inewses.  It is the one true
  556. inews.  It is the one inews to end all inewses and all others are false
  557. idols.
  558.  
  559. Note:  False idol worshipper and heathen David Myers <dem@meaddata.com>
  560. reports that mini-inews works fine.  He stays with mini-inews...
  561. "because INN inews needs to access not only inn.conf, but moderators,
  562. too.  Installing and maintaining these files in a ~1000 client,
  563. multiple administrative domain setup like ours is too much of a pain.
  564. Most (all?) of the work done by INN inews is done by in.nnrpd during
  565. posting, anyway."
  566.  
  567. Kenji Rikitake <kenji@rcac.tdi.co.jp> reports:
  568. "Keep in mind that INN inews refers to many environment variables.
  569. Beware of _inherited_ variables especially when you do su to maintain
  570. your news server.
  571. I got trapped and wasted a day with NNTPSERVER.  I tried to post to a
  572. local newsgroup, and inews kept refusing it and sending me 'no such
  573. newsgroups...' error message.  I finally found out that inews was
  574. looking up a wrong server, _implicitly_ specified by
  575. 'setenv NNTPSERVER ...' in my .login script.  It took a day to find
  576. such a subtle misconfiguration, after a whole recompilation of entire
  577. INN kit, active and history rebuilding, and all possible configuration
  578. checking.  *sigh*"
  579.  
  580. "inews -h" sometimes reports: 'Warning, can't connect to server'
  581. What server is it trying to connect to?  Remember, inews uses
  582. the NNTPSERVER environmental variable and (if that isn't set) looks
  583. in /usr/lib/news/inn.conf.
  584.  
  585. INN's inews sometimes prints the error: "Can't get list of newsgroups,
  586. No such file or directory.".  inews called CAlistactive() to get a
  587. local copy of the active file.  If it can't reach the active file you
  588. get this error.  Look at your PATH_TEMPACTIVE and see if it makes
  589. sense; i.e., if it is a valid /tmp directory.
  590.  
  591. "inews -h" sometimes reports:
  592.     Can't send article to the server:
  593.     441 480 Transfer permission denied
  594. This means that you set HAVE_UNIX_DOMAIN to DONT and you don't have
  595. your news server in its own hosts.nntp file.  (nnrpd gets a POST,
  596. connects to innd over a TCP socket and sends an IHAVE.) (thanks to
  597. Chris Jackson <cjj@sun.com> for pointing this out).  Add your news
  598. server's name and "localhost" to hosts.nntp and do "ctlinnd reload
  599. hosts.nntp".  (For the reason why, read "Warnings to people that must
  600. set HAVE_UNIX_DOMAIN to DONT" in part2)
  601.  
  602. Chuck Huber <chuck_huber@microbilt.com> adds that this same error 
  603. may be caused by setting REM_STYLE to NNTP in config.data, but not
  604. replacing INN's clientlib.o with the reference implementation's version.
  605.  
  606.  
  607. "inews -h" sometimes reports:
  608.     Warning Text unavailable -- Article will be spooled.  
  609. This means that inews could not connect to the server, but errno
  610. had nothing useful, and no reply came from the server.  "It just
  611. didn't work."
  612.  
  613. If it still doesn't work, look through your syslog to see the name
  614. of the host that innd got, and why it handed off to nnrpd.  Perhaps
  615. there is a DNS/NIS/hosts-file mismatch.  (suggested by Rich Salz)
  616.  
  617. Other problems are usually the result of not being able to find the
  618. "inn.conf" file (copy it to the client or make it available via NFS) or
  619. you are using Sun's brain-dead NIS/DNS stuff which doesn't do reverse
  620. name lookups well.  If inews tells you that it can't generate a
  621. Message-ID, ("441 Can't generate Message-ID, Resource temporary unavailable."
  622. or such ) this is because it can't figure out your domain (which is used 
  623. in making the message-id string). Inews requires that gethostbyname
  624. returns FQDN and if doesn't then GetFQDN() fails.
  625. Force it to know your domain by adding a "domain:" line in "inn.conf".  
  626. Solaris 2.x users will get a "can't generate message-id" error if they 
  627. didn't follow the advice about getfqdn.c mentioned in another part of 
  628. this FAQ (#2.14).
  629.  
  630. If you get something like:
  631.     500 "GROUP"" not implemented; try "help".
  632. This implies that the client host is in hosts.nntp, not nnrp.access.
  633. However, if you need to have this machine in the hosts.nntp file
  634. (i.e. it is a feeder or you have an operating system that requires you
  635. to set HAVE_UNIX_DOMAIN to DONT) then your newsreader must send a "mode
  636. reader" to the server when it connects.
  637.  
  638. Once you get "inews -h -D" working, do the same test without the "-D" option
  639. and let it actually post the message.  If it can't post, it will tell
  640. you why.  If the answer isn't clear enough, "telnet nntphost 119", give
  641. the "mode reader" command, then the "post" command.  Enter lines of
  642. text like you would to "inews -h" and then type "." on a line by itself
  643. (and press RETURN).
  644.  
  645. If posting via "telnet nntphost 119" DOES work and posting via "inews -h"
  646. DOES NOT work, you know that (1) "inews" is compiled wrong, or more likely,
  647. (2) you aren't using INN's inews.  Either way, if this is happening
  648. you know you have narrowed your problems down to the inews program.
  649.  
  650. By the way, posting to misc.test is pretty useless considering that the
  651. entire world doesn't need to see your message.  Post to a local
  652. newsgroup or even a state-wide newsgroup like "nj.test" (assuming you
  653. are in New Jersey).  There are lots of people that reply to every test
  654. message they see, so expect to get tons of stupid email.  (though, if
  655. you don't get any email consider yourself lucky).  Also, there is no
  656. newsgroup called "news.test" so don't post there.  Many try, try fail.
  657. By the way, if you are one of those people that reply to every test
  658. message they see, get a real hobby.  The convention is that replies
  659. are not sent to test messages with the word "IGNORE" in the Subject:.
  660.  
  661. Do *NOT* post your test message to a non-test newsgroup.  You will get
  662. many angry replies from all over the world.  ...including the FAQ maintainer.
  663.  
  664. Look at the posted message in the news spool (if you post a message to
  665. nj.test, "cd /var/spool/news/nj/test" and cat the highest numbered file
  666. you see).  If your site name is listed multiple times in the "Path:"
  667. header, put your server's name on the "pathhost:" line of "inn.conf"
  668. and recompile INN with "INEWS_PATH" set to "DONT".  (I don't know why
  669. Rich likes that as the default!)
  670.  
  671. REMEMBER:  inn.conf is read into innd only once.  After it is changed,
  672. the innd daemon must be shutdown and restarted.  (use "ctlinnd shutdown x"
  673. and then run rc.news as root).
  674.  
  675. If "inews -h" posts a message, smile because most of the battle is over.
  676.  
  677. ------------------------------
  678.  
  679. Subject: (4.10) "client" doesn't have the software needed to post.
  680.  
  681. If the client doesn't have "inews" at all, copy it from the server (if
  682. they are compatible machines) or check the INN installation manual to
  683. find out how to compile just the client programs for a machine.  There
  684. is a special gimmick included with INN to compile inews for the various
  685. other OS's and versions of Unix without having to compile the entire
  686. INN package.
  687.  
  688. Since nnpost, Pnews, postnews, and all other news posting software
  689. shouldn't do anything but ask for header information, let you add a
  690. body, and then pipe the whole thing to "inews -h", you can be pretty
  691. certain that if "inews -h" works, your news posting programs will
  692. work.  Think again!  Post from each of them and make sure they all get
  693. posted.  You might find that they access a copy of "inews" that was
  694. part of C news, mini-inews, or heavens knows what.
  695.  
  696. I highly recommend that people use "find" or "gnufind" to seek out and
  697. replace all old versions of "inews" with symbolic links to the one
  698. "official".
  699.  
  700. Something like:
  701.  
  702. gnufind / /usr /usr/local /usr/lib -xdev -follow -name inews\* -print
  703.  
  704. Then, for every file found, do the following:
  705.  
  706. mv inews inews.cnews
  707. ln -s /usr/local/bin/inews inews
  708.  
  709. Now you only have to update /usr/local/bin/inews, rather than
  710. chasing may copies.
  711.  
  712. "nn" and "nnpost" create a file called "~/.nn/params" right before you
  713. post with tons of useful information.  While posting you can shell out
  714. of the editor and view the file.  The file is deleted after the message
  715. is posted.  I had to view this file while shelled out of my editor to
  716. find which "inews" was being used by "nnpost".
  717.  
  718. It's also a good idea to check your mail now and then while you are
  719. doing this.  Some newsreaders (like "nn" notify you of a posting
  720. problem via mail.
  721.  
  722. On non-INN systems, "inews" returns pretty quickly.  Actually they fork
  723. a process to do the actual posting in the background.  When those
  724. "inews" return, you don't know if the post was successful or not.
  725. These "inews"'s have a "-W" option which turns off this forking feature
  726. (i.e. Wait for the post to complete).
  727.  
  728. INN's "inews" never forks because the wait is never that long.  When
  729. "inews" returns you know if the post was successful or not.  INN's
  730. "inews" accepts the "-W" option for compatibility.
  731.  
  732. This may seem obvious, but when posting a test message, consider
  733. including the machine you are posting from and the program you are
  734. using.  Even though you may check to see if the message got posted
  735. after every test, this will help you later when you go back to see what
  736. you have done.
  737.  
  738. ------------------------------
  739.  
  740. Subject: (4.11) Introduction to the "newsfeeds" file
  741.  
  742. Outgoing news is controlled by the "newsfeeds" file.  The INN 1.2 man
  743. page for this file is a bit complex.  The man page in 1.3 (and beyond)
  744. gives better examples.  Here's a "cookbook" of examples that should
  745. cover most of your needs.  Debugging tips are also included.
  746.  
  747. Always remember that newsfeeds uses "wildmat" matches, not the
  748. semi-regular expressions that C news uses.  This means that if you want
  749. to get comp.foo and the subgroups under it (comp.foo.bar, comp.foo.baz,
  750. etc.) you have to use a statement like:
  751.  
  752. comp.foo,comp.foo.*
  753.  
  754. OR
  755.  
  756. comp.foo*
  757.  
  758. BUT NOT
  759.  
  760. comp.foo.*
  761.  
  762. However, "comp.foo*" will match "comp.foobar", as well as
  763. "comp.foo.bang".
  764.  
  765.  
  766. ------------------------------
  767.  
  768. Subject: (4.12) The ME line in the newsfeeds file.
  769.  
  770. The "ME" entry is a bit confusing.  Be careful when you
  771. read the man page.
  772.  
  773. Here is the "ME" line that I use in my "newsfeeds" file.  I find
  774. it works quite well, but you might want to remove the distributions
  775. that you don't need (i.e. New Jersey).  Since my site has clients
  776. reading from all over the world I try to have every distribution I
  777. can find.  However, I hear of a new distribution almost daily so this
  778. list is always changing.
  779.  
  780. ME:!*/\
  781. news,gnu,comp,biz,alt,rec,misc,sci,soc,talk,inet,world,worldwide,all,\
  782. aus,su,uk,york,eunet,na,can,qc,tor,us,usa,mn,oh,chi,ca,ba,tx,pnw,il,ne,\
  783. ny,nyc,phl,bl,nj,warren::
  784.  
  785. If you want to blindly accept all distributions, try this:
  786.  
  787. ME:!*::
  788.  
  789. See also the next subject on this.
  790.  
  791. ------------------------------
  792.  
  793. Subject: (4.13) How does the "ME" line interact with the other lines?
  794.  
  795. > I'm still a little confused about the ME line's second field.
  796.  
  797. The man page as of INN 1.3 is much more clear on this.  Basically, the
  798. second field of the "ME" line specifies the default for the rest of the
  799. feeds.  Otherwise, it isn't used.  The "active" file declares which
  800. newsgroups you accept and don't accept.
  801.  
  802. Here are some examples:
  803.  
  804. ME:!*:::
  805. foo:!junk:...        --send no newsgroups
  806.  
  807. ME:*:::
  808. foo:!junk:...        --send all newsgroups except junk
  809.  
  810. ME:!*:::
  811. foo:*,!junk:...      --send all newsgroups except junk
  812.  
  813. By the way, generally you do not want to send "junk" or "control*" to
  814. your neighbors.
  815.  
  816. In unoff2 (and later unoffs) the ME line also can be used to reject 
  817. articles which have certain sites in their path header.
  818.  
  819. ------------------------------
  820.  
  821. Subject: (4.14) Cookbook example of an outgoing NNTP feed:
  822.  
  823. This example involves a machine named oddball.mentorg.com, that has an
  824. alias of oddball.sjc.mentorg.com, which should receive all posts (but
  825. control & junk should never be passed on) and not certain
  826. distributions.  Add the following line to newsfeeds:
  827.  
  828. oddball.mentorg.com/oddball.sjc.mentorg.com:*,!control*,!junk/!local,!warren:Tf,Wnm:
  829.  
  830. Have the user "news" run the following via cron:
  831.  
  832. 3,23,43 * * * *  /usr/lib/news/bin/nntpsend >/dev/null 2>&1
  833.  
  834. (this only needs to be added once.  nntpsend refers to a file
  835. called nntpsend.ctl to find out what to do).
  836.  
  837. Add the following to nntpsend.ctl:
  838.  
  839. oddball.mentorg.com:oddball.mentorg.com::
  840.  
  841. Done!
  842.  
  843. If you experience errors in the form "480 Transfer permission denied",
  844. then your remote site should double check its hosts.nntp file.
  845. Entries in hosts.nntp normally look like
  846.  
  847. <host>:[<pass>[:<groups>]], where pass and groups can be omitted.
  848. Now if the remote has an entry like the following:
  849.  
  850. |host.do.main: |
  851.              ^^^  note space instead of return
  852.  
  853. then it expects you to send a password. If you don't, you get the
  854. above error. In this case, the remote should check its hosts.nntp,
  855. remove trailing spaces and do a ctlinnd reload hosts.nntp afterwards.
  856. See also #4.7
  857.  
  858. Another version for the "480 Transfer permission denied" problem is
  859. that the your host does not appear in the remotes hosts.nntp, but
  860. is matched by an entry in their nnrp.access. When you then send a
  861. ``ihave'' command, the remote gives you that error.
  862.  
  863. ------------------------------
  864.  
  865. Subject: (4.15) Cookbook example of an outgoing UUCP feed:
  866.  
  867. Example:  A site named "plts" that can not get the "clari" newsgroups
  868. or distribution "warren".
  869.  
  870. Add the following to the newsfeeds file:
  871.  
  872. plts:*,!clari.*,!junk*,!control*/!warren:Tf,Wnb:
  873.  
  874. Add the following to the cron tab (as user "news"):
  875.  
  876. 0 0-5,16-23 * * 1-5       /usr/lib/news/bin/sendbatch -c plts >/dev/null 2>&1
  877.  
  878. NOTE: I know that "plts" is unique and won't conflict with
  879. some other site named "plts" because it is registered
  880. in the UUCP Maps (see comp.mail.maps).
  881.  
  882. If your feeder is sending you netnews via UUCP (which is usually the
  883. case, since it isn't useful to just feed articles and not receive any)
  884. you must configure your UUCP to allow the remote system to execute
  885. rnews.  Your UUCP documentation should tell you how to set up a UUCP
  886. connection and how to change the allowed commands.  That means that
  887. uucico will execute /bin/rnews on every incoming batch.  INN comes with
  888. a perfectly serviceable "rnews" program that can handle all the standard
  889. batched and compressed news formats.  The INN rnews will uncompress and
  890. unbatch as necessary and then pass each article to innd for
  891. processing.  (Thanks to Jerry Aguirre <jerry@roma.ATC.Olivetti.Com> for
  892. this paragraph)
  893.  
  894. ------------------------------
  895.  
  896. Subject: (4.16) Cookbook example of an outgoing UUCP-over-TCP feed:
  897.  
  898. Jerry Aguirre <jerry@strobe.ATC.Olivetti.Com> writes:
  899.  
  900. People ask about this like it was something exotic requiring special
  901. setup.  Kind of like: "I know how to use a wheel barrow and I know how
  902. to shovel sand but how do I shovel sand in a wheel barrow?"
  903.  
  904. Step 1:  Set up a UUCP/TCP connection between you and the destination
  905. site.  How?  Read your UUCP documentation.  If your machine's UUCP,
  906. and the destination machine's UUCP both supports UUCP/TCP then it will
  907. be documented.  If not then get a better version of UUCP.  For example,
  908. Taylor UUCP.
  909.  
  910. Every OS sets up UUCP differently:  YOU HAVE TO READ THE DOCUMENTATION.
  911.  
  912. The point is to get the UUCP/TCP link working before even thinking
  913. about sending news over it.  This is true of any news feed over UUCP;
  914. even dialup.  Try using "uucp" to copy some scratch file to the other
  915. end.  When you have that working then you are ready for the next step.
  916.  
  917. The only "gotcha" here that I can think of is that the destination host
  918. may not be accepting UUCP/TCP connections.  Before wasting your time
  919. trying to debug do a "telnet destination.host.name uucp" and see what
  920. happens.  If the connection is accepted and you see a "login" banner
  921. then it is ready for you.  If not then ask the admin of that site to
  922. enable UUCP/TCP.  This is typically done by uncommenting it in
  923. /etc/inetd.conf and -HUPing inetd (on REAL versions of Unix).
  924.  
  925. Step 2.  Set up a standard compressed news feed to the UUCP name of the
  926. destination site.  How?  Read your news documentation.  Setting up UUCP
  927. feeds is a standard, documented, procedure.  In this FAQ you'll find it
  928. in "Cookbook example of an outgoing UUCP feed".  Doing compression is
  929. nothing special, it's part of the procedure you would be doing anyway.
  930. It's either a flag or a slightly different command.  The news system has
  931. NO knowledge that this is UUCP/TCP.  For all it knows this is a
  932. standard dialup connection.  In fact is is possible to have the UUCP
  933. connection fall back to dialup if the TCP connection fails.  The news
  934. batching software just doesn't care.
  935.  
  936. The only variation here I can think of is to make the batch size bigger
  937. than the default.  The 50K default was picked back in the days when
  938. modems were 1200 BPS (or even 300). It is no longer appropriate for
  939. today's 9600 BPS or faster connections. Using a bigger batch size cuts
  940. down on dead time in the connection and lets compress do a better job.
  941. I would go to at least 200K batches.
  942.  
  943. Now maybe it would be nice to have a "cookbook", step by step, set of
  944. instructions on how to do this.  But UUCP seems to vary a bit between
  945. different versions so what might work at one place would be useless at
  946. another.  And setting up the news feed is going to be different between
  947. the different versions of news (B, C, and INN).
  948.  
  949. I suggest that if people are having trouble setting up a UUCP/TCP
  950. connection that they post their configuration to the net and ask how it
  951. is done on their versions of Unix and UUCP.
  952.  
  953.  
  954. ------------------------------
  955.  
  956. Subject: (4.17) Testing an outgoing feed (your "newsfeeds" configuration).
  957.  
  958. Here is a decent game-plan for testing your newsfeeds configuration:
  959.  
  960. Suppose your site is in New Jersey and you have a distribution called
  961. "mentorg" which should be used by people that want to make sure that
  962. their post will not leave their company (Mentor Graphics).  You should
  963. do a test post to "nj.test" with no "Distribution:" header, and with
  964. "Distribution: nj" and "Distribution: mentorg".  After posting, do a
  965. "ctlinnd flush ''" and make sure that the /var/spool/news/out.going
  966. files for all your sites did/didn't queue up those three messages as
  967. appropriate.
  968.  
  969. IMPORTANT:  Remember to do a "ctlinnd reload newsfeeds x" command every
  970. time you update your "newsfeeds" file!
  971.  
  972. Finally, for checking out changes to newsfeeds, I've found "ctlinnd
  973. checkfile" handy.   "inncheck" will verify that most of your
  974. configuration is sane.
  975.  
  976. ------------------------------
  977.  
  978. Subject: (4.18) Other cron jobs.
  979.  
  980. Once a night you should run the "news.daily" script which will
  981. expire old articles, run the daily reports, etc.  It should run
  982. as "news" and look something like this:
  983.  
  984. 40 23 * * *               /usr/lib/news/bin/news.daily delayrm
  985.  
  986. You should also have a line like this:
  987. 20 * * * *                /bin/rnews -U
  988.  
  989. This processes any batches or posts that came in while innd was down.
  990. (i.e. when users post and get a message like, "Server down, spooling
  991. locally" this command picks up those files and posts them).  It can't
  992. hurt to run this more often, but once an hour should be fine.
  993.  
  994. ------------------------------
  995.  
  996. Subject: (4.19) Cookbook example of setting up NOV ("overchan").
  997.  
  998. Now that you have your other feeds working, you might want to set up a
  999. NOV feed so that your NOV database is built.  Newsreaders use the NOV
  1000. database to speed up their queries.
  1001.  
  1002. Christophe.Wolfhugel@grasp.insa-lyon.fr (Christophe Wolfhugel) (with
  1003. many modifications from Tom Limoncelli and further input from
  1004. davek@melita.com (Dave Kennedy) ) writes:
  1005.  
  1006. Step 1:  Upgrade to INN 1.4 or higher:  Most of the bugs in 1.3 were
  1007. related with overchan.  In fact, the only reason why many people used
  1008. 1.3 without any problems was due to the fact that they were not using
  1009. overchan (and they didn't hit on some of the bugs that appeared for
  1010. SVR4 users, all of which were fixed in 1.4)
  1011.  
  1012. Step 1.5:  Make sure _PATH_OVERVIEWDIR in config.data is NOT set to
  1013. "/var/spool/news".  There is a big performance boost to be realized by
  1014. putting the NOV files outside the /var/spool/news hierarchy.
  1015.  
  1016. To find out why, read "Subject: overchan can't keep up." in part 7 of
  1017. this FAQ.  You might want to read this anyway since it gives advice
  1018. about other things to do to get better NOV performance.
  1019.  
  1020. "/var/spool/news/over.view" is becoming the standard place to put
  1021. your ".overview" files.  If you do not use this location, make
  1022. /var/spool/news/over.view a symbolic link to the correct place.  For
  1023. performance reasons, it is a good idea to set _PATH_OVERVIEWDIR to the
  1024. actual location of the files.  NB:  if you change config.data, you must
  1025. do a "make all" and "make install". It is not sufficient to just give
  1026. the -D option to overchan and expireover, as nnrpd also needs to know
  1027. where overview data is. If it doesn't, it won't complain nor use your 
  1028. overview data, but assume, there is none and generate it on the fly 
  1029. which is noticeable slower than using the database.
  1030.  
  1031. Step 2:  Make sure INN is working.  Get everything else working before
  1032. you try to get overchan to work.  You'll only confuse yourself.
  1033.  
  1034. Step 3:  Ponder if you have enough disk space.  NOV uses up an
  1035. additional 10%-20% of your news spool.  This is a good 100 Mb if you
  1036. have a full feed.  The real space savings come when you delete your
  1037. separate databases for trn, nn, and tin and use one unified database.
  1038. All serious newsreaders have NOV support.
  1039.  
  1040. Step 4:  Edit "overview.fmt" (it's in the $INN/site directory, or you can
  1041. edit it where it was installed, in /usr/lib/news ) to include
  1042. "Xref:full" as the last line.  (i.e. uncomment out the last line).
  1043.  
  1044. Step 5:  Add this entry to your "newsfeeds" file.  overchan gets it's data
  1045. from a special feed.
  1046.  
  1047. # This feeds header data to NOV:
  1048. OVERVIEW!:*:Tc,WO:/usr/local/news/bin/overchan
  1049.  
  1050. Read the "newsfeeds" man to make sure you understand what you've
  1051. just done.  Do a "ctlinnd checkfile" to make sure the newsfeeds
  1052. file has the proper syntax, then do a "ctlinnd reload newsfeeds nov"
  1053. to make it official.
  1054.  
  1055. Step 6: If you changed your $inn/site files, then:
  1056.     % cd $inn/site
  1057.     % make install
  1058.  
  1059. Step 7: Let innd know that files have been updated:
  1060.     % ctlinnd reload overview.fmt "Enabled XRef:"
  1061.     % ctlinnd reload newsfeeds "Added OVERVIEW - overchan entry"
  1062.  
  1063. Step 8: You must run "expireover -s" at least once a month.  Once a
  1064. week is even better. This is necessary to remove overview data of
  1065. for some reason or other left over entries. Here is a good crontab entry 
  1066. for "news" to run:
  1067. 0 5 * * 1 /usr/lib/news/bin/expireover -s
  1068.  
  1069.  
  1070. Step 9:  (optional) To create the original database:
  1071.  
  1072.     (run this as "news")
  1073.     % /usr/local/news/bin/expireover -a
  1074.  
  1075. This step will take a long time depending on the number of articles
  1076. already in your system.  But, if you skip this step, client access
  1077. will be slow for articles that came in before you started "overchan".
  1078. This is not a serious problem; you will get a lot of warnings in your
  1079. "news.daily" output until you have received at least one new article
  1080. in each newsgroup.
  1081.  
  1082. Note:  "a lot of warnings" means one for every newsgroup.  This can
  1083. make your news.daily report >6000 lines.  The lines will all look like:
  1084.  
  1085. overchan cant open clari/local/washington/.overview, No such file or directory
  1086. overchan cant open clari/local/sfbay/.overview, No such file or directory
  1087. overchan cant open uc/news/.overview, No such file or directory
  1088.  
  1089. Step 9:  Change the invocation of news.daily:
  1090.  
  1091. In the crontab file for "news", edit the "news.daily" line to be
  1092. something like:
  1093.  
  1094.    news.daily delayrm expireover
  1095.  
  1096. (the expireover is required if you use overchan)
  1097.  
  1098. Step 10:  Inform your users that you now support "NOV, the News OverView
  1099. database" and suggest that people switch to newsreaders that use
  1100. newsreaders that are compliant with the Overview format.
  1101.  
  1102. Step 11:  You are done.
  1103.  
  1104. Step 12:  In a few weeks, drop support for mthreads, nnmaster, etc.
  1105. (assuming you've upgraded to replacements that use NOV).  Delete all
  1106. those old databases that might have been maintained and enjoy the newly
  1107. gained functionality and regained disk space!
  1108.  
  1109. Step 13: If you are running tin (mostly the 1.2 versions) then you
  1110. will get "bad overview" messages. These don't come from inn, but from
  1111. tin. Solution edit the source (art.c) to increase the buffer size for 
  1112. overview information from 1024 bytes to at least 4096 bytes.
  1113.  
  1114. ------------------------------
  1115.  
  1116. Subject: (4.20) How do I use nntplink with INN?
  1117.  
  1118. First of all, I don't personally recommend using this program.  I feel
  1119. that it is a gimmick.  However, if you decide to join the INN Instant
  1120. Party, I suggest that you first run the feed using nntpsend (included
  1121. with INN) FOR AT LEAST A WEEK.  Once you are confident that functioning
  1122. properly, consider to switching to nntplink ONLY IF:
  1123.  
  1124.     0.  You have read all documentation about innd and nntplink
  1125.     1.  You have more than 3 outgoing feeds.
  1126.     2.  You have gobs and gobs of real memory.
  1127.     3.  Your OS has a superior mmap() & disk IO system (like SunOS)
  1128.  
  1129. If you decide to switch, here's a cookbook example of an newsfeeds
  1130. entry using nntplink:
  1131.  
  1132. PLEASE make sure traditional "nntpsend"-style feeds work reliably
  1133. before you switch to nntplink.
  1134.  
  1135. netcomsv.netcom.com\
  1136.     :*,!junk/!ParcPlace\
  1137.     :Tc,Wnm,S1024:/usr/local/news/bin/nntplink -i stdin netcomsv.netcom.com
  1138.  
  1139. INN 1.2 users should have an explicit S value (i.e. S1024 or S16384).
  1140. Without it innd 1.2 can choke and lose data if the receiver is jammed.
  1141. (fixed in INN 1.3).
  1142.  
  1143. The latest version of nntplink is available from
  1144. ftp://ftp.math.ohio-state.edu/pub/nntplink/3.3pl2.tar.gz  (3.3 is still 
  1145. in beta testing)
  1146.  
  1147. Ian Phillipps <ian@dial.pipex.com> notes some criteria for using
  1148. nntplink rather than nnptsend:
  1149.  
  1150. > (1) If you have more than one backbone feed, you can save a lot of
  1151. > bandwidth, without risk, if you use nntplink (less duplication of
  1152. > articles over nearly-parallel paths).
  1153.  
  1154. > (2) More important, if you have a large number of feeds, nntplink
  1155. > permits them to be fed simultaneously with the same articles.  No big
  1156. > deal, until you think of the what's going on in the pagedaemon and the
  1157. > disk cache.
  1158.  
  1159. > A "ps uaxr" rarely catches nntplink in the act ("D"), despite my having
  1160. > 17 of them last time I counted. Our biggest outgoing newsfeed delivered
  1161. > 16398 articles yesterday, using a total of 380 seconds CPU on a Sun
  1162. > IPC, and no disk time :-)
  1163.  
  1164. An additional note: when using nntplink in stdin mode it is fastest and
  1165. can make use of the fact that the article might still be in disk buffers 
  1166. when it is to be transferred. But when the remote isn't able to keep up
  1167. than innd buffers the information and gets bigger and bigger. If this
  1168. happens - try using nntplink in logfile mode. 
  1169.  
  1170. ------------------------------
  1171.  
  1172. Subject: (4.21) How do I use innfeed with INN ?
  1173.  
  1174. Innfeed is a new feeding tool by James Brister that is a combination
  1175. of streaming nntp and nntplink with some other nice features. This
  1176. tool is still in beta test.
  1177. If you have already several nntplinks successful running, then you
  1178. might to consider testing innfeed. Else stick on using nntpsend or
  1179. send-nntp. Sources might be obtained via http://www.isc.org/isc/
  1180.  
  1181. ------------------------------
  1182.  
  1183. Subject: (4.22) How do I gate news to mail and/or mail to news?
  1184.  
  1185. You might use newsgate.
  1186.  
  1187. Rich Salz also turned over the maintenance for newsgate to ISC.
  1188. So look out at http://www.isc.org/isc/ for a copy of it.
  1189.  
  1190. Installation instructions (sample /usr/lib/news/newsfeeds and
  1191. /etc/aliases entries are provided in the documentation for newsgate.
  1192. But even if documentation tells you otherwise you should use 
  1193. rnews instead of inews with it.
  1194.  
  1195. Also be careful not to produce loops!
  1196.  
  1197. NB: newsgate includes mail2news and news2mail.
  1198.  
  1199. ------------------------------
  1200.  
  1201. Subject: (4.23) Should I distribute control messages?
  1202.  
  1203. |Newsgroups: news.software.nntp
  1204. |Subject: Re: Pros & cons of passing control.* downstream?
  1205. |References: <82rakz8r4p.fsf@dove.eecs.umich.edu>
  1206. |From: David C Lawrence <tale@uunet.uu.net>
  1207. |Date: 09 Dec 1996 17:47:46 -0500
  1208. |Message-ID: <8682bxrl9.fsf@rodan.UU.NET>
  1209.  
  1210. Michael Hucka <hucka@eecs.umich.edu> writes:
  1211. > The INN man pages say one would not normally want to send out control.* to
  1212. > one's peer news servers.  But what are the actual pros and cons of doing it?
  1213.  
  1214. The con of doing it is that local control messages will propagate far
  1215. and wide, creating groups at distant servers that were meant to be
  1216. local.  These groups will then attract articles that aren't really
  1217. desired at the home site for the local groups.
  1218.  
  1219. It will also look like a path for articles for the groups exist when
  1220. in fact it doesn't, because non-control articles will not propagate
  1221. down the same path.
  1222.  
  1223. This all applies to other messages sites might have intended to keep
  1224. local, notably including checkgroups.
  1225.  
  1226. Cancels are largely irrelevant in this except by generating a lot of
  1227. administrative traffic to cancel articles at the receiving site that
  1228. it didn't get.
  1229.  
  1230. The very weak pro for doing so is that a site with only a limited feed
  1231. can see newgroup messages for groups it might want.  However, admins
  1232. can get this information via other mechanisms so I do not believe this
  1233. pro outweighs the negatives of leaked local control messages.
  1234.  
  1235. -- 
  1236.           See <a href="http://www.netbsd.org">NetBSD</a> for a multiplatform OS
  1237. What would you call a BBS run by a mom?
  1238.    A "mother board".
  1239.