leafnode  1.12.0
About: Leafnode is a store & forward NNTP proxy for small (dialup) sites.
  Fossies Dox: leafnode-1.12.0.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

leafnode.h File Reference
#include "config.h"
#include "critmem.h"
#include <limits.h>
#include <pcre2.h>
#include <stdarg.h>
#include <stdio.h>
#include <setjmp.h>
#include "system.h"
#include <errno.h>
#include <syslog.h>
Include dependency graph for leafnode.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  newsgroup
 
struct  stringlist
 
struct  expire_entry
 
struct  server
 
struct  xoverinfo
 

Macros

#define _DEFAULT_SOURCE
 
#define _GNU_SOURCE
 
#define _BSD_SOURCE
 
#define TRUE   (1)
 
#define FALSE   (0)
 
#define PLURAL(no)   (((no) == 1) ? "" : "s")
 
#define PATH_MAX   4096
 
#define PORTFILENAMECSET   "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._-"
 
#define PCRE2_CODE_UNIT_WIDTH   0 /* let's fail unless explicitly using the _8() functions */
 
#define snprintf   ln_snprintf
 
#define vsnprintf   ln_vsnprintf
 
#define LOG_NEWS   LOG_DAEMON
 
#define LOG_CONS   0 /* if it isn't supported, make do without */
 
#define SECONDS_PER_DAY   ( 24L * 60 * 60 )
 
#define BODY_DOWNLOAD_LIMIT   2048
 
#define LOOKUP_FREE   ((const char *)-2)
 
#define SIZE_lineout   1024 /* also used for PCRE2 error strings */
 
#define SIZE_s   (8192)
 
#define FQDNLEN   255
 
#define SKIPLWS(p)   while (*(p) && isspace((unsigned char) *(p))) { (p)++; }
 

Typedefs

typedef int(* tmihook) (const char *)
 

Functions

char * strdup (const char *)
 
int ln_snprintf (char *str, size_t n, const char *format,...)
 
int ln_vsnprintf (char *str, size_t n, const char *format, va_list ap)
 
int xsnprintf (char *str, size_t n, const char *format,...)
 
int initvars (char *progname)
 
const char * lookup (const char *msgid)
 
char * getaline (FILE *f)
 
char * mgetaline (FILE *f)
 
void mgetaline_settimeout (unsigned int)
 
void timer (int sig)
 
int chdirgroup (const char *group, int creatdir)
 
int isinteresting (const char *groupname)
 
void insertgroup (const char *name, long unsigned first, long unsigned last, time_t date)
 
void changegroupdesc (const char *groupname, const char *description)
 
void newgroupdesc (const char *groupname, const char *description)
 
void mergegroups (void)
 
struct newsgroupxfindgroup (struct newsgroup *active, const char *name, unsigned long size)
 
struct newsgroupfindgroup (const char *name)
 
void readactive (void)
 
int writeactive (void)
 
void fakeactive (void)
 
void freeactive (struct newsgroup *act)
 
char * activeread (void)
 
int killactiveread (void)
 
void clearidtree (void)
 
void insertmsgid (const char *msgid)
 
int findmsgid (const char *msgid)
 
int traverseidtree (tmihook h)
 
void prependtolist (struct stringlist **list, const char *newentry)
 
struct stringlist ** lfindinlist (struct stringlist **haystack, char *needle, size_t len)
 
char * findinlist (struct stringlist *haystack, char *needle)
 
void freelist (struct stringlist *list)
 
void readfilter (char *filterfile)
 
void freefilter (void)
 
int dofilter (unsigned char *h)
 
void store (const char *filename, FILE *filehandle, const char *newsgroups, const char *msgid)
 
char * getheader (const char *filename, const char *header)
 
char * fgetheader (FILE *f, const char *header)
 
int try_lock (unsigned long)
 
int handover_lock (pid_t)
 
void putaline (void)
 
void retry (void)
 
void readexpire (void)
 
int readconfig (int logtostderr)
 
void freeexpire (void)
 
void freeservers (void)
 
void freeconfig (void)
 
void lowercase (char *string)
 
int ngmatch (const char *pattern, const char *string)
 
void overrun (void)
 
void replaceinlist (struct stringlist **haystack, char *needle, size_t len)
 
time_t lookup_expire (char *group)
 
int lookup_expiredays (char *group)
 
int log_unlink (const char *f, int ignore_enoent)
 
int authenticate (const struct server *)
 
char * lastreply (void)
 
int nntpreply (const struct server *)
 
int nntpconnect (const struct server *upstream)
 
void nntpdisconnect (void)
 
void nntpquit (void)
 
void freelastreply (void)
 
const char * rfctime (void)
 
int safe_mkstemp (char *)
 
void myopenlog (const char *ident)
 
int mkstemp (char *)
 
ssize_t getline (char **, size_t *, FILE *)
 
void freegetaline (void)
 
time_t timegm (struct tm *tm)
 
int wildmat (const char *, const char *)
 
char * getfoldedline (FILE *f, char *(*reader)(FILE *))
 
ssize_t writes (int fd, const char *string)
 
void fixxover (void)
 
struct stringlistget_grouplist (void)
 
int checkpeerlocal (int sock)
 
int ln_pcre_extract (const unsigned char *input, const unsigned char *pattern, char **output, size_t num)
 
void ln_pcre_extract_free (char **vec, int count)
 
size_t xstrlcpy (char *dst, const char *src, size_t size)
 
int getxover (void)
 
int legalxoverline (const char *xover, const char **errmsg)
 
void freexover (void)
 
int agetcwd (char **buf, size_t *capa)
 

Variables

sigjmp_buf timeout
 
size_t activesize
 
struct newsgroupactive
 
size_t oldactivesize
 
struct newsgroupoldactive
 
const char * spooldir
 
const char * sysconfdir
 
const char * version
 
const char * lockfile
 
int date_is_evil
 
int stat_is_evil
 
time_t expire
 
int expiredays
 
struct expire_entryexpire_base
 
unsigned long artlimit
 
unsigned long initiallimit
 
long crosspostlimit
 
int delaybody
 
int db_situ
 
int debugmode
 
int create_all_links
 
int maxage
 
long maxlines
 
long minlines
 
unsigned long maxbytes
 
int timeout_short
 
int timeout_long
 
int timeout_active
 
int timeout_client
 
int timeout_fetchnews
 
int clamp_maxage
 
int article_despite_filter
 
char * filterfile
 
struct serverservers
 
int allowstrangers
 
int allow_8bit_headers
 
char * newsadmin
 
unsigned long timeout_lock
 
char last_command [1024+1]
 
char lineout [1024+1]
 
FILE * nntpin
 
FILE * nntpout
 
char fqdn [255+1]
 
int verbose
 
int debug
 
struct xoverinfoxoverinfo
 
unsigned long xfirst
 
unsigned long xlast
 

Macro Definition Documentation

◆ _BSD_SOURCE

#define _BSD_SOURCE

Definition at line 22 of file leafnode.h.

◆ _DEFAULT_SOURCE

#define _DEFAULT_SOURCE

Definition at line 15 of file leafnode.h.

◆ _GNU_SOURCE

#define _GNU_SOURCE

Definition at line 19 of file leafnode.h.

◆ BODY_DOWNLOAD_LIMIT

#define BODY_DOWNLOAD_LIMIT   2048

Definition at line 97 of file leafnode.h.

◆ FALSE

#define FALSE   (0)

Definition at line 32 of file leafnode.h.

◆ FQDNLEN

#define FQDNLEN   255

Definition at line 288 of file leafnode.h.

◆ LOG_CONS

#define LOG_CONS   0 /* if it isn't supported, make do without */

Definition at line 91 of file leafnode.h.

◆ LOG_NEWS

#define LOG_NEWS   LOG_DAEMON

Definition at line 87 of file leafnode.h.

◆ LOOKUP_FREE

#define LOOKUP_FREE   ((const char *)-2)

Definition at line 104 of file leafnode.h.

◆ PATH_MAX

#define PATH_MAX   4096

Definition at line 43 of file leafnode.h.

◆ PCRE2_CODE_UNIT_WIDTH

#define PCRE2_CODE_UNIT_WIDTH   0 /* let's fail unless explicitly using the _8() functions */

Definition at line 48 of file leafnode.h.

◆ PLURAL

#define PLURAL (   no)    (((no) == 1) ? "" : "s")

Definition at line 35 of file leafnode.h.

◆ PORTFILENAMECSET

#define PORTFILENAMECSET   "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._-"

Definition at line 46 of file leafnode.h.

◆ SECONDS_PER_DAY

#define SECONDS_PER_DAY   ( 24L * 60 * 60 )

Definition at line 94 of file leafnode.h.

◆ SIZE_lineout

#define SIZE_lineout   1024 /* also used for PCRE2 error strings */

Definition at line 279 of file leafnode.h.

◆ SIZE_s

#define SIZE_s   (8192)

Definition at line 287 of file leafnode.h.

◆ SKIPLWS

#define SKIPLWS (   p)    while (*(p) && isspace((unsigned char) *(p))) { (p)++; }

Definition at line 398 of file leafnode.h.

◆ snprintf

#define snprintf   ln_snprintf

Definition at line 74 of file leafnode.h.

◆ TRUE

#define TRUE   (1)

Definition at line 29 of file leafnode.h.

◆ vsnprintf

#define vsnprintf   ln_vsnprintf

Definition at line 75 of file leafnode.h.

Typedef Documentation

◆ tmihook

typedef int(* tmihook) (const char *)

Definition at line 157 of file leafnode.h.

Function Documentation

◆ activeread()

char * activeread ( void  )

Definition at line 582 of file activutil.c.

References critmalloc(), and spooldir.

Referenced by checkactive(), killactiveread(), and updateactive().

◆ agetcwd()

int agetcwd ( char **  buf,
size_t *  size 
)

allocates a buffer (stores result into *buf and *size) and fetches the current working directory. *buf must be a malloc()d buffer or NULL on first call. returns success, *buf is free()d when FALSE is returned

Definition at line 10 of file agetcwd.c.

References critmalloc(), FALSE, PATH_MAX, and TRUE.

Referenced by dogroup(), getxover(), and killcwd().

◆ authenticate()

int authenticate ( const struct server current_server)

◆ changegroupdesc()

void changegroupdesc ( const char *  groupname,
const char *  description 
)

Definition at line 144 of file activutil.c.

References critstrdup(), newsgroup::desc, and findgroup().

Referenced by nntpactive().

◆ chdirgroup()

◆ checkpeerlocal()

int checkpeerlocal ( int  sock)

extract IPv4 address from IPv6-mapped IPv4 address (::ffff:10.9.8.7) check whether the peer of the socket is local to any of our network interfaces,

Returns
  • -1 for error (check errno),
  • -2 for other error (not mappable in errno),
  • 0 for not in local networks
  • 1 for socket in local networks, or if sock is not a network socket.

Definition at line 276 of file checkpeerlocal.c.

References checkpeerlocal(), critstrdup(), D, debug, main(), mastr_delete(), mastr_modifyable_str, mastr_new(), mastr_resizekill(), mastr_size(), strlcpy(), and verbose.

Referenced by checkpeerlocal(), and main().

◆ clearidtree()

void clearidtree ( void  )

Definition at line 729 of file miscutil.c.

References begone(), and head.

Referenced by dogroup(), and expiremsgid().

◆ dofilter()

int dofilter ( unsigned char *  h)

◆ fakeactive()

void fakeactive ( void  )

◆ fgetheader()

char * fgetheader ( FILE *  f,
const char *  header 
)

find a header in an article and return it, without its name.

Definition at line 27 of file artutil.c.

References critstrdup(), debug, debugmode, getaline(), and getfoldedline().

Referenced by doarticle(), doxhdr(), getheader(), main(), and postarticles().

◆ findgroup()

struct newsgroup * findgroup ( const char *  name)

◆ findinlist()

char * findinlist ( struct stringlist haystack,
char *  needle 
)

Definition at line 576 of file miscutil.c.

References stringlist::next, and stringlist::string.

Referenced by processupstream().

◆ findmsgid()

int findmsgid ( const char *  msgid)

Definition at line 695 of file miscutil.c.

References comparemsgid(), head, msgidtree::left, msgidtree::msgid, and msgidtree::right.

Referenced by dogroup(), and expiremsgid().

◆ fixxover()

void fixxover ( void  )

◆ freeactive()

void freeactive ( struct newsgroup act)

Definition at line 351 of file activutil.c.

References newsgroup::desc, and newsgroup::name.

Referenced by main(), and readactive().

◆ freeconfig()

void freeconfig ( void  )

◆ freeexpire()

void freeexpire ( void  )

Definition at line 708 of file configutil.c.

References expire_base, expire_entry::group, and expire_entry::next.

Referenced by freeconfig().

◆ freefilter()

void freefilter ( void  )

Definition at line 113 of file filterutil.c.

References filterlist::cleartext, filter, filterlist::next, and filterlist::re.

Referenced by freeconfig().

◆ freegetaline()

void freegetaline ( void  )

Definition at line 89 of file getaline.c.

References ygetaline().

Referenced by freeconfig(), and main().

◆ freelastreply()

void freelastreply ( void  )

Definition at line 154 of file nntputil.c.

References llstr.

Referenced by freeconfig().

◆ freelist()

void freelist ( struct stringlist list)

Definition at line 626 of file miscutil.c.

References list().

Referenced by addnonexpiring(), expiregroup(), get_grouplist(), nntpactive(), and processupstream().

◆ freeservers()

void freeservers ( void  )

Definition at line 695 of file configutil.c.

References freeserver(), server::next, and servers.

Referenced by freeconfig(), and main().

◆ freexover()

void freexover ( void  )

Definition at line 396 of file xoverutil.c.

References xoverinfo::text, xfirst, and xlast.

Referenced by dogroup(), fixxover(), getxover(), and main().

◆ get_grouplist()

struct stringlist * get_grouplist ( void  )

Definition at line 113 of file grouplist.c.

References freelist(), myscandir(), and spooldir.

Referenced by addnonexpiring(), and expiregroup().

◆ getaline()

◆ getfoldedline()

char * getfoldedline ( FILE *  f,
char *(*)(FILE *)  reader 
)

Definition at line 13 of file getfoldedline.c.

References critmalloc(), critrealloc(), and len.

Referenced by fgetheader(), and getgroup().

◆ getheader()

char * getheader ( const char *  filename,
const char *  header 
)

Definition at line 62 of file artutil.c.

References fgetheader().

Referenced by domove(), doxhdr(), and getbody_insitu().

◆ getline()

ssize_t getline ( char **  pto,
size_t *  size,
FILE *  stream 
)

Clean-room reimplementation of getline, API compatible with glibc2.

Returns
  • >= 0 count of characters read
  • -1 for EOF/error

Definition at line 54 of file getline.c.

References _getline(), critmalloc(), and critrealloc().

Referenced by ygetaline().

◆ getxover()

◆ handover_lock()

int handover_lock ( pid_t  pid)

Tries to hand over lock to the process with the given pid.

Returns
0 for success, nonzero for failure – check errno for details in case of error.

Definition at line 327 of file lockfile.c.

References critmalloc(), fqdn, lockfile, and writes().

Referenced by main().

◆ initvars()

int initvars ( char *  progname)

◆ insertgroup()

void insertgroup ( const char *  name,
long unsigned  first,
long unsigned  last,
time_t  date 
)

◆ insertmsgid()

void insertmsgid ( const char *  msgid)

Definition at line 662 of file miscutil.c.

References comparemsgid(), critmalloc(), head, and msgidtree::msgid.

Referenced by dogroup(), and readmids().

◆ isinteresting()

int isinteresting ( const char *  groupname)

Definition at line 271 of file miscutil.c.

References dirent, FALSE, SIZE_s, spooldir, TRUE, and xsnprintf().

Referenced by doarticle(), dogroup(), list(), and store().

◆ killactiveread()

int killactiveread ( void  )

Definition at line 595 of file activutil.c.

References activeread(), ln_log(), LNLOG_CTOP, LNLOG_SERR, and rc.

Referenced by fakeactive(), and main().

◆ lastreply()

char * lastreply ( void  )

Definition at line 162 of file nntputil.c.

References llstr.

Referenced by check_date(), getgroup(), ismsgidonserver(), nntpactive(), nntpconnect(), and postarticles().

◆ legalxoverline()

int legalxoverline ( const char *  xover,
const char **  errmsg 
)

Definition at line 206 of file xoverutil.c.

Referenced by dogroup(), getxover(), and getxoverline().

◆ lfindinlist()

struct stringlist ** lfindinlist ( struct stringlist **  haystack,
char *  needle,
size_t  len 
)

Definition at line 594 of file miscutil.c.

References len, stringlist::next, and stringlist::string.

Referenced by replaceinlist().

◆ ln_pcre_extract()

int ln_pcre_extract ( const unsigned char *  input,
const unsigned char *  pattern,
char **  output,
size_t  num 
)

Definition at line 55 of file pcre_extract.c.

References critmalloc(), len, ln_log(), LNLOG_CTOP, LNLOG_SERR, and SIZE_lineout.

Referenced by dopost().

◆ ln_pcre_extract_free()

void ln_pcre_extract_free ( char **  vec,
int  count 
)

Definition at line 108 of file pcre_extract.c.

Referenced by dopost().

◆ ln_snprintf()

int ln_snprintf ( char *  str,
size_t  n,
const char *  format,
  ... 
)

Definition at line 221 of file snprintf.c.

References ln_vsnprintf().

◆ ln_vsnprintf()

int ln_vsnprintf ( char *  str,
size_t  n,
const char *  format,
va_list  ap 
)

Definition at line 71 of file snprintf.c.

References fmts(), fmtu(), and len.

Referenced by ln_snprintf().

◆ log_unlink()

int log_unlink ( const char *  f,
int  ignore_enoent 
)

◆ lookup()

const char * lookup ( const char *  msgid)

construct file name for message.id/NNN/ in spooldir from message ID

Parameters
msgidif LOOKUP_FREE, release static resources

Definition at line 306 of file miscutil.c.

References critmalloc(), LOOKUP_FREE, name, and spooldir.

Referenced by dogroup(), expiremsgid(), fopenart(), freeconfig(), getbody_insitu(), getbody_newno(), getgroup(), is_articlepresent(), main(), and th().

◆ lookup_expire()

time_t lookup_expire ( char *  group)

Definition at line 735 of file configutil.c.

References group, lookup_expireent(), and expire_entry::xtime.

Referenced by addnonexpiring(), and expiregroup().

◆ lookup_expiredays()

int lookup_expiredays ( char *  group)

Definition at line 743 of file configutil.c.

References expire_entry::days, group, and lookup_expireent().

Referenced by addnonexpiring(), expiregroup(), and getgroup().

◆ lowercase()

void lowercase ( char *  string)

◆ mergegroups()

void mergegroups ( void  )

◆ mgetaline()

char * mgetaline ( FILE *  f)

◆ mgetaline_settimeout()

void mgetaline_settimeout ( unsigned int  t)

Definition at line 69 of file mgetaline.c.

References timeout_secs.

Referenced by main(), and parser().

◆ mkstemp()

int mkstemp ( char *  template)

Definition at line 27 of file mkstemp.c.

References ATTEMPTS.

Referenced by getxover(), and safe_mkstemp().

◆ myopenlog()

void myopenlog ( const char *  ident)

Definition at line 24 of file syslog.c.

References LOG_CONS, and LOG_NEWS.

Referenced by main().

◆ newgroupdesc()

void newgroupdesc ( const char *  groupname,
const char *  description 
)

Definition at line 124 of file activutil.c.

References critstrdup(), newsgroup::desc, nglist::entry, newsgroup::name, newgroup, and nglist::next.

Referenced by process_input().

◆ ngmatch()

int ngmatch ( const char *  pattern,
const char *  string 
)

Definition at line 792 of file miscutil.c.

References wildmat().

Referenced by list(), and lookup_expireent().

◆ nntpconnect()

◆ nntpdisconnect()

void nntpdisconnect ( void  )

Definition at line 547 of file nntputil.c.

References nntpin, and nntpout.

Referenced by nntpconnect(), and nntpquit().

◆ nntpquit()

void nntpquit ( void  )

Definition at line 560 of file nntputil.c.

References lineout, nntpdisconnect(), putaline(), SIZE_lineout, and xsnprintf().

Referenced by main(), and nntpconnect().

◆ nntpreply()

int nntpreply ( const struct server s)

◆ overrun()

void overrun ( void  )

Definition at line 296 of file miscutil.c.

Referenced by xsnprintf(), and xstrlcpy().

◆ prependtolist()

void prependtolist ( struct stringlist **  list,
const char *  newentry 
)

Definition at line 558 of file miscutil.c.

References critmalloc(), list(), stringlist::next, and stringlist::string.

Referenced by myscandir(), nntpactive(), and replaceinlist().

◆ putaline()

◆ readactive()

◆ readconfig()

◆ readexpire()

void readexpire ( void  )

◆ readfilter()

void readfilter ( char *  filterfile)

◆ replaceinlist()

void replaceinlist ( struct stringlist **  haystack,
char *  needle,
size_t  len 
)

Definition at line 607 of file miscutil.c.

References critmalloc(), len, lfindinlist(), stringlist::next, and prependtolist().

Referenced by processupstream().

◆ retry()

void retry ( void  )

◆ rfctime()

const char * rfctime ( void  )

Definition at line 752 of file miscutil.c.

References now, and xsnprintf().

Referenced by buildpseudoart(), dopost(), doxhdr(), doxover(), and main().

◆ safe_mkstemp()

int safe_mkstemp ( char *  templ)

Safe mkstemp replacement.
Ensures the file is only read- and writable by its owner; some systems create these with 0777 or 0666 permissions.

Parameters
templtemplate to build filename upon, as for mkstemp

Definition at line 163 of file lockfile.c.

References mkstemp().

Referenced by buildpseudoart(), and try_lock().

◆ store()

void store ( const char *  filename,
FILE *  filehandle,
const char *  newsgroups,
const char *  msgid 
)

◆ strdup()

char * strdup ( const char *  s)

Definition at line 5 of file strdup.c.

Referenced by is_validfqdn().

◆ timegm()

time_t timegm ( struct tm *  tm)

Definition at line 50 of file timegm.c.

References is_leap().

Referenced by check_date(), and donewgroups().

◆ timer()

void timer ( int  sig)

Definition at line 41 of file mgetaline.c.

References timeout.

Referenced by mgetaline(), and nntpconnect().

◆ traverseidtree()

int traverseidtree ( tmihook  h)

Definition at line 747 of file miscutil.c.

References head, and xtraverseidtree().

Referenced by dogroup().

◆ try_lock()

int try_lock ( unsigned long  timeout)

Try to set a lockfile, blocking or non-blocking. Checks if the lockfile exists and is active.

requires: atomic link(2) syscall.

features:

  • NFS safe (but leafnode does not work distributed)
  • stale detection by PID in lock file (may be fooled)
Bug:
Cannot remove stale lock on other machine.
Bug:
Stale detection may be fooled if another process has been assigned the PID that the last caller had.
Returns
  • 0: if locking succeeded
  • 1: if locking failed because the lock is held by someone else and isn't stale
  • -1: for other errors
Parameters
timeoutTimeout, if nonzero, wait at most this many seconds.

Definition at line 200 of file lockfile.c.

References critmalloc(), debugmode, fd_st_nlink(), fqdn, is_validfqdn(), ln_log(), LNLOG_CTOP, LNLOG_SCRIT, LNLOG_SERR, lock_is_stale(), lockfile, quiet, safe_mkstemp(), timeout, verbose, and writes().

Referenced by main().

◆ wildmat()

int wildmat ( const char *  text,
const char *  p 
)

Definition at line 126 of file wildmat.c.

References DoMatch(), FALSE, and TRUE.

Referenced by getgroup(), and ngmatch().

◆ writeactive()

◆ writes()

ssize_t writes ( int  fd,
const char *  string 
)

Definition at line 7 of file writes.c.

Referenced by getxover(), handover_lock(), main(), and try_lock().

◆ xfindgroup()

struct newsgroup * xfindgroup ( struct newsgroup active,
const char *  name,
unsigned long  size 
)

Definition at line 242 of file activutil.c.

References helpfindgroup(), and name.

Referenced by findgroup(), and insertgroup().

◆ xsnprintf()

◆ xstrlcpy()

size_t xstrlcpy ( char *  dst,
const char *  src,
size_t  size 
)

Definition at line 812 of file miscutil.c.

References overrun(), and strlcpy().

Referenced by main(), readconfig(), and whoami().

Variable Documentation

◆ active

◆ activesize

size_t activesize
extern

Definition at line 39 of file activutil.c.

Referenced by findgroup(), main(), mergegroups(), readactive(), rereadactive(), and validateactive().

◆ allow_8bit_headers

int allow_8bit_headers
extern

Definition at line 90 of file configutil.c.

Referenced by dopost(), and readconfig().

◆ allowstrangers

int allowstrangers
extern

Definition at line 87 of file configutil.c.

Referenced by main(), and readconfig().

◆ article_despite_filter

int article_despite_filter
extern

Definition at line 69 of file configutil.c.

Referenced by getgroup(), and readconfig().

◆ artlimit

unsigned long artlimit
extern

Definition at line 61 of file configutil.c.

Referenced by getgroup(), and readconfig().

◆ clamp_maxage

int clamp_maxage
extern

Definition at line 81 of file configutil.c.

Referenced by getgroup(), and readconfig().

◆ create_all_links

int create_all_links
extern

Definition at line 64 of file configutil.c.

Referenced by readconfig(), and store().

◆ crosspostlimit

long crosspostlimit
extern

Definition at line 63 of file configutil.c.

Referenced by getgroup(), and readconfig().

◆ date_is_evil

int date_is_evil
extern

Definition at line 60 of file nntputil.c.

Referenced by main(), and nntpconnect().

◆ db_situ

int db_situ
extern

Definition at line 66 of file configutil.c.

Referenced by getbody(), and readconfig().

◆ debug

◆ debugmode

◆ delaybody

int delaybody
extern

Definition at line 65 of file configutil.c.

Referenced by getgroup(), getmarked(), and readconfig().

◆ expire

time_t expire
extern

Definition at line 58 of file configutil.c.

Referenced by addnonexpiring(), main(), and readconfig().

◆ expire_base

struct expire_entry* expire_base
extern

Definition at line 60 of file configutil.c.

Referenced by freeexpire(), initvars(), lookup_expireent(), main(), and readconfig().

◆ expiredays

int expiredays
extern

Definition at line 59 of file configutil.c.

Referenced by getgroup(), and readconfig().

◆ filterfile

char* filterfile
extern

Definition at line 88 of file configutil.c.

Referenced by freeconfig(), getgroup(), main(), and readconfig().

◆ fqdn

◆ initiallimit

unsigned long initiallimit
extern

Definition at line 62 of file configutil.c.

Referenced by getgroup(), and readconfig().

◆ last_command

char last_command[1024+1]
extern

Definition at line 53 of file nntputil.c.

Referenced by putaline(), and xnntpreply().

◆ lineout

◆ lockfile

const char* lockfile
extern

Referenced by handover_lock(), main(), and try_lock().

◆ maxage

int maxage
extern

Definition at line 68 of file configutil.c.

Referenced by getgroup(), and readconfig().

◆ maxbytes

unsigned long maxbytes
extern

Definition at line 72 of file configutil.c.

Referenced by getgroup(), and readconfig().

◆ maxlines

long maxlines
extern

Definition at line 70 of file configutil.c.

Referenced by getgroup(), and readconfig().

◆ minlines

long minlines
extern

Definition at line 71 of file configutil.c.

Referenced by getgroup(), and readconfig().

◆ newsadmin

char* newsadmin
extern

Definition at line 91 of file configutil.c.

Referenced by buildpseudoart(), doxhdr(), doxover(), freeconfig(), printlist(), and readconfig().

◆ nntpin

◆ nntpout

FILE* nntpout
extern

Definition at line 57 of file nntputil.c.

Referenced by authenticate(), nntpconnect(), nntpdisconnect(), postarticles(), and putaline().

◆ oldactive

struct newsgroup* oldactive
extern

Definition at line 42 of file activutil.c.

Referenced by insertgroup(), and main().

◆ oldactivesize

size_t oldactivesize
extern

Definition at line 41 of file activutil.c.

Referenced by insertgroup(), and main().

◆ servers

struct server* servers
extern

Definition at line 89 of file configutil.c.

Referenced by freeservers(), initvars(), main(), and readconfig().

◆ spooldir

◆ stat_is_evil

int stat_is_evil
extern

Definition at line 59 of file nntputil.c.

Referenced by ismsgidonserver(), main(), and nntpconnect().

◆ sysconfdir

const char* sysconfdir
extern

Referenced by main(), and readconfig().

◆ timeout

sigjmp_buf timeout
extern

Definition at line 39 of file mgetaline.c.

Referenced by mgetaline(), nntpconnect(), timer(), and try_lock().

◆ timeout_active

int timeout_active
extern

Definition at line 78 of file configutil.c.

Referenced by checkactive(), and readconfig().

◆ timeout_client

int timeout_client
extern

Definition at line 79 of file configutil.c.

Referenced by parser(), and readconfig().

◆ timeout_fetchnews

int timeout_fetchnews
extern

Definition at line 80 of file configutil.c.

Referenced by main(), and readconfig().

◆ timeout_lock

unsigned long timeout_lock
extern

Definition at line 92 of file configutil.c.

Referenced by main(), and read_timeout_lock().

◆ timeout_long

int timeout_long
extern

Definition at line 76 of file configutil.c.

Referenced by expire_interesting(), markinterest(), and readconfig().

◆ timeout_short

int timeout_short
extern

Definition at line 77 of file configutil.c.

Referenced by expire_interesting(), markinterest(), and readconfig().

◆ verbose

int verbose
extern

Definition at line 31 of file applyfilter.c.

◆ version

const char* version
extern

Referenced by main(), and parser().

◆ xfirst

unsigned long xfirst
extern

Definition at line 64 of file miscutil.c.

Referenced by dolistgroup(), doxhdr(), doxover(), freexover(), getxover(), and initvars().

◆ xlast

unsigned long xlast
extern

Definition at line 64 of file miscutil.c.

Referenced by dolistgroup(), doxhdr(), doxover(), freexover(), getxover(), and initvars().

◆ xoverinfo

struct xoverinfo* xoverinfo
extern

Definition at line 63 of file miscutil.c.