Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DIABLO-FILES(5) 	       File Formats Manual		 DIABLO-FILES(5)

NAME
     diablo-files - Synopsis of configuration and control files for Diablo

GENERAL
     This  manual  page provides a synopsis for various diablo configuration and
     control files.  It does not necessarily describe all commands or  the  spe-
     cific file format.  You can obtain most of the latter by looking at the ex-
     ample config/control files in the sample/ directory.  What this manual page
     does  is  describe  specific featurisms that would otherwise not be readily
     apparent.

     The location of all diablo files is controlled by /news/diablo.config.  The
     location of diablo.config itself can  be  specified  with	the  DIABLO_CON-
     FIG_PATH  environment  variable or with the '-C diabloconfigpath' option to
     any command.  Diablo files are typically rooted at either	the  news  root,
     the  library root, or the database root (path_news, path_lib, or path_db in
     diablo.config).  See samples/diablo.config for more information.

DNEWSFEEDS
     The dnewsfeeds file specifies how diablo generates outbound feeds	as  well
     as  specifies how diablo filters incoming feeds.  You specify each outbound
     feed with a label keyword, followed by various other  keywords  and  ending
     with an end keyword.

     alias  specifies  an outbound newspath alias, which may contain '*' and '?'
     wildcards.  An inbound article whos path element matches  any  given  alias
     for any given outbound feed is not requeued to that outbound feed.

     addgroup and delgroup filters articles to outbound feeds.	All add/delgroup
     commands  are  run against each newsgroup in the Newsgroups: header for the
     article and the last add/delgroup command effecting any given newsgroup  is
     applied  to the article.  Normally this means you start out more general at
     the beginning (i.e. '*') and become more specific at the end of your  list.
     When an article is cross posted to multiple newsgroups, success with any of
     the groups will cause the article to be propogated.

     NOTE!   If  you  'addgroup  *', then use delgroup and delgroupany to remove
     groups that you do not want, beware that control messages	for  ALL  groups
     will still be propogated unless you also do a 'delgroup control.*'.

     delgroupany  filters  articles  in a manner similar to delgroup, but if the
     specified groups exist in the Newsgroups: line *AT ALL*, no distribution to
     *any* of the other newsgroups will occur.	i.e.  if  you  say  'delgroupany
     alt.warez*',  it  means that if an article is posted to comp.sys.amiga.misc
     and alt.warez*, the article will NOT be propogated.

     requiregroup An extremely exclusive filter that  is  the  inverse	of  del-
     groupany.	The article's Newsgroups MUST contain a group matching the wild-
     card or it will not be propogated.  This is generally only used when split-
     ting off control feeds.  Please see samples/dnewsfeeds for typical usage.

     groupref  allows  a feed to recursively include a group access list defined
     by a groupdef command.  The groupdef command may occur before OR after  the
     newsfeed that references it, and groupdef's can be recursive.  see groupdef
     for more information.

     filter  effects  INBOUND  feeds.	Articles coming FROM the specified label
     (see diablo.hosts on how to tie labels to incomming  connections)	are  re-
     jected if any listed newsgroup matches the wildcard specified in any of the
     filter  commands.	You normally use this to reject articles cross posted to
     your local newsgroups that are propogated from outside entities.  Note that
     the history file is not updated, just in case the article is  also  brought
     in from a valid 'local' newsfeed.

     maxpath  (1.08  or higher) effects OUTBOUND feeds.  Diablo will not send an
     article to an outbound feed if the article's Path: line contains more  then
     the specified number of path elements.

     maxcross  (1.04 or higher) effects OUTBOUND feeds.  Diablo will not send an
     article to an outbound feed if the article's Newsgroups: line contains more
     then the specified number of groups.

     maxsize (1.04 or higher) effects OUTBOUND feeds.  Diablo will not	send  an
     article  to  an  outbound	feed if the article is larger then the specified
     number of bytes.  You may use  'k',  'm',	and  'g'  to  denote  kilobytes,
     megabytes, and gigabytes.	For example, <I>maxsize 100k</I> .

     rtflush  (1.12  or  higher)  effects OUTBOUND feeds.  Diablo will write the
     queue file for this feed unbuffered.  Generally used along with  'realtime'
     in dnntpspool.ctl.

     There  is	an  (unimposed)  arbitrary limit of 256 add/delgroup entries per
     feed.  Currently this is due to the fact that  Diablo  scans  the	wildcard
     list  linearly  and cannot really support group-specific wildcards (where a
     feed wants 10,000 specific groups rather then fewer wildcarded groups).

     A special label, called ME may be specified.   This  label  generally  only
     contains  filter commands.  Diablo will revert to this label for any incom-
     ing connections that have not been associated with a specific label.

     There is also the groupdef command, which must occur outside any feed  com-
     mands.   The  groupdef  command is followed by a set of groupadd, groupdel,
     groupdelany, and/or groupref commands to create a grouplist.  The	groupdef
     command is terminated by an end command.  Grouplist definitions may be ref-
     erenced  by  feeds via the groupref command, and may be referenced by other
     grouplists.

DEXPIRE.CTL
     The dexpire.ctl file controls the length of time articles	are  stored  for
     each group in the reader header database and the maximum number of articles
     that can be stored in the article index per group for dreaderd.  This index
     value  is	adjusted  by  dexpireover based on the number of articles in the
     newsgroup.

     The various options are separated by a colon and appear in any order  after
     a wildmat specification of the newsgroup names. The options are:

     x	to  specify  the  number of days to keep articles matching this wildmat.
     Not specifying this option means that articles are not  removed.  Fractions
     of a day may also be used.

     a	to  override  the default 512 for the starting 'maxarts' value per group
     matching this wildmat. The starting value is only used when the group index
     is first created.

     i to specify the minimum 'maxarts' that dexpireover may adjust to.

     j to specify the maximum 'maxarts' that dexpireover may adjust to.

DEXPIRE.FACTOR
     The dexpire.factor file is no longer used by Diablo and can be deleted.  It
     may be used again in the future.

DNNTPSPOOL.CTL
     The dnntpspool.ctl file is used by the dspoolout program to manage the out-
     bound queues.  Diablo will maintain a single outbound queue file  for  each
     feed.   dspoolout renames this file to a proper sequenced queue file, prop-
     erly flushes Diablo's file descriptors, starts up dnewslink  programs,  and
     removes any sequenced queue files backlogged beyond the specified limit.

     This  file  allows  you to specify the remote host, maximum number of queue
     files, and maximum number of dnewslink processes to run for  each	outbound
     feed, and other options.  Please refer to the samples/dnntpspool.ctl file.

DISTRIB.PATS
     The  distrib.pats file is read and returned by the NNTP 'list distrib.pats'
     command.  It is also used to generate  a  Distribution:  header  internally
     when  the	POST  command does not supply it (or supplies an empty Distribu-
     tions header).

DISTRIBUTIONS
     The distributions file is read and returned by  the  NNTP	'list  distribu-
     tions' command.

DIABLO.HOSTS
     The  diablo.hosts	file  controls	authentication for incoming connections.
     Each line consists of a domain name or IP	address  wildcard  and	a  label
     identifying  which feed in dnewsfeeds the incoming connection is associated
     with.  THE LABEL IS NO LONGER OPTIONAL.  You must supply a label.

     Diablo normally requires that the reverse lookup match the  forward  lookup
     for  security  purposes,  but many sites set up their reverse to point to a
     CNAME or set up their reverse to point to an unassociated	host  yet  still
     request  that you put a common hostname in your hosts file which 'resolves'
     to all the IP addresses of their news machines.

     Diablo will attempt to wildcard match the last two domain elements  of  the
     reverse domain name with non-wildcard domain names in diablo.hosts then is-
     sue  a  forward lookup of the name in diablo.hosts and attempt to match the
     IP.  In otherwords, if you have an entry for 'newsfeeds.fubar.com' in  dia-
     blo.hosts	 and   an   incoming  connection's  reverse  lookup  comes  back
     'news55.fubar.com', diablo will convert news55.fubar.com to *.fubar.com and
     attempt to match that against entries in diablo.hosts.  When  a  match  oc-
     curs,   it   performs  a  forward	lookup	(in  this  case  against  'news-
     feeds.fubar.com') and tries to match up the IP address that way.

     This methodology has the advantage of not requiring diablo to do a  sequen-
     tial  forward lookup of all the entries in diablo.hosts.  Each connection's
     DNS load is consistent only with the domain/IP  the  connection  is  coming
     from which is very important for stability in the face of a large number of
     feeds.

DREADER.HOSTS
     The  dreaderd.hosts  file	contains access permissions for NNTP readers for
     the dreaderd server.   This  file	also  contains	access	permissions  for
     header-only feeds coming into the dreaderd server.

DSERVER.HOSTS
     The  dserver.hosts file contains the outgoing spool and posting server con-
     figuration which dreaderd uses to make connections to outside  servers  for
     message retrieval and outgoing POSTed message propogation.

DQUEUE (directory)
     The  dqueue  directory contains the queue files, both the ones generated by
     the diablo server and the ones maintained by dspoolout.  Files in this  di-
     rectory  are generally named as the label (diablo outbound queue file for a
     label), as the label.Snnnnn (sequenced queue file maintained by dspoolout),
     or .label.seq (sequence number information maintained by dspoolout).

     Note that the diablo queue format has changed as of V1.08.  Older	versions
     of  diablo dumped the filename and message id.  As of V1.08, an third field
     formatted as OFFSET,BYTES is added to support the new  multi-article  spool
     files.  DNewslink understands both formats.

FEEDS (directory)
     The  feeds  directory  contains  automatic group add/del information as re-
     quested by a feed through the feedrset and other  Diablo  commands.   If  a
     file exists for any given feed, it overrides the addgroup and delgroup com-
     mands in the dnewsfeeds file for that feed.

NEWS SPOOL (/news/spool/news) (directory)
     Diablo  implements  a  two-level  news  spool.   A  directory  of	the form
     D.xxxxxxxx is created on the first level every 10 minutes.   Each	discrete
     fork  creates  a  distinct file in one or more of these directories when it
     receives an article.  The directory is chosen based on the  expiration  and
     the filename is chosen starting with a hash of the incoming IP.  The diablo
     process  then  exclusively  locks	the file(s) in question.  In the case of
     contention, the loser will generate another  filename  and  loop  until  it
     finds  or creates one.  The files or of the form B.xxxx where xxxx is basi-
     cally random.  Multiple articles may be stored in each file.  An ascii  NUL
     (code  0x00)  is used as an out-of-band article separator.  The history and
     outgoing queue files reference articles by relative file path, offset,  and
     size.

     It  should  be noted that dnewslink explicitly looks for the separator as a
     double-check against corruption.

DACTIVE.KP (/news/dactive.kp)
     The dactive.kp file is a key-token-pair database (see diablo-kp(5)).  It is
     NOT compatible with the INN active file.  The dsyncgroups program	with  -G
     and  -F flags may be used to create dactive.kp from an active file in "list
     active" format (see dsyncgroups(8)).  A dactive.kp file may also be created
     based on an active file on a remote host (also see dsyncgroups(8)).

     Diablo KP database files are human readable but should only be  manipulated
     with  the	dkp  program  while Diablo is active.  If Diablo is inactive, KP
     files may be manipulated with dkp OR can be edited by hand.  Diablo's  dac-
     tive.kp file serves the same purpose as INN's active file but, being a gen-
     eral  token=value database, may contain additional information.  The inten-
     tion is to use this database to track article number assigns and  to  store
     additional  group description, moderator email, and PGP keys for the reader
     portion of Diablo.

     In Diablo, groups missing from dactive.kp do not normally effect the feeder
     side of the system.   However, Xref: headers are only generated  for  those
     newsgroups  listed in dactive.kp.	This behavior can be changed through the
     'activedrop' option in diablo.config

     The dactive.kp database is keyed off the group name and uses the  following
     tokens,  some  of which are optional: NE (last stored article number, %010d
     format), NB (first stored article number %010d format), S (status), M (mod-
     erator email), and CPGP (pgp key, hierarchically  recursive).   The  status
     may contain multiple characters.  'n' indicates a disabled group, 'y' indi-
     cates  an	enabled  group, 'm' indicates moderated.  itself is entirely op-
     tional (defaults to 'y').	The group description, if any,	is  stored  with
     the GD key.

     When  using the feeder to generate Xref: headers, the feeder creates a copy
     of the NE field called NX and uses that to  track	article  number  assign-
     ments.   This  way both the reader and feeder can use the same physical ac-
     tive file when both the reader and feeder are running on the same box.  The
     dsyncgroups command has options to manipulate NE and NX.  WARNING!   If  NX
     is present, the reader will reset NE if NX < NE and an incoming article has
     been assigned a number less then NE.

     if  a  group is marked moderated, the moderator email is obtained via the M
     key.  If control messages related to the group  (hierarchically  speaking),
     the CPGP key contains the public key.  For example, there might be an entry
     for  'comp'  with	a CPGP key but since 'comp' is not a real newsgroup, the
     status would be blank.

SEE ALSO
     diablo(8), dsyncgroups(8), dicmd(8),  didump(8),  diload(8),  dnewslink(8),
     doutq(8),	  dexpire(8),	 dexpireover(8),   diconvhist(8),   dilookup(8),
     dspoolout(8), dkp(8), dpath(8), diablo-files(5), diablo-kp(5)

								 DIABLO-FILES(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=diablo-files&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help