X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=innfeed%2Fhost.h;fp=innfeed%2Fhost.h;h=0000000000000000000000000000000000000000;hb=b7a32e2d73e3ab1add8208d3e157f7269a31ef4d;hp=d773895c4f06cc4867950c646e6c1d358859ec1a;hpb=ac902a8299ff4469b356836f431ead31c3377377;p=innduct.git diff --git a/innfeed/host.h b/innfeed/host.h deleted file mode 100644 index d773895..0000000 --- a/innfeed/host.h +++ /dev/null @@ -1,207 +0,0 @@ -/* $Id: host.h 7778 2008-04-17 21:27:22Z iulius $ -** -** The public interface to the Host class. -** -** Written by James Brister -** -** The Host class represents the remote news system that we're feeding. A -** Host object has possibly multiple connections to the remote system which -** it sends articles down. It is given the articles by other objects -** (typically the InnListener), and once taken it assumes all responsibility -** for transmission or temporary storage on network failures etc. -*/ - -#if ! defined ( host_h__ ) -#define host_h__ - - -#include - -#include "misc.h" - -/* - * Functions from elsewhere used by host.c - */ - -extern void mainLogStatus (FILE *fp) ; - - -/* - * Functions used by the InnListener - */ - - -/* - * Create a new Host object. - * - * NAME is the name that INN uses. - * IPNAME is the name the networking code uses (or the ascii dotted quad - * IP address). - * ARTTIMEOUT is the max amount of time we'll wait for a new article - * from INN before considering the connection unused and we'll close - * down. - * RESPTIMEOUT is the max amount of time we'll wait for any reponse - * from a remote. Past this we'll close down the network connection. - * INITIALCXNS is the number of Connections to create at Host creation time. - * MAXCXNS is the maximum number of parallel connections to the - * remote host we can run at any one time. - * MAXCHECK is the maximum number of nntp CHECK commands to be outstanding - * on a connection before opening up a new connection (or refusing - * new articles if we get to MAXCXNS). - * PORTNUM is the port number on the remote host we should talk to. - * CLOSEPERIOD is the number of seconds after connecting that the - * connections should be closed down and reinitialized (due to problems - * with old NNTP servers that hold history files open. Value of 0 means - * dont close down. - * STREAMING is a boolean flag to tell if the Host wants its Connections to - * do streaming or not. - * LOWPASSHIGH is the high value for the low-pass filter. - * LOWPASSLOW is the low value for the low-pass filter. - */ - -void configHosts (bool talkSelf) ; - -/* print some debugging info. */ -void gPrintHostInfo (FILE *fp, unsigned int indentAmt) ; -void printHostInfo (Host host, FILE *fp, unsigned int indentAmt) ; - -/* Delete the host object. Drops all the active connections immediately - (i.e. no QUIT) . */ -void delHost (Host host) ; - -/* Get a new default host object */ -Host newDefaultHost (InnListener listener, - const char *name); - -/* gently close down all the host's connections (issue QUITs). */ -void hostClose (Host host) ; - -/* gently close down all active connections (issue QUITs) and recreate - them immediately */ -void hostFlush (Host host) ; - -/* have the HOST transmit the ARTICLE, or, failing that, store article - information for later attempts. */ -void hostSendArticle (Host host, Article article) ; - -/* return an IP address for the host */ -struct sockaddr *hostIpAddr (Host host, int family) ; - -/* Delete all IPv4 addresses from the address list */ -void hostDeleteIpv4Addr (Host host); - -/* mark the current IP address as failed and rotate to the next one */ -void hostIpFailed (Host host) ; - -/* - * Functions used by the Connection to indicate Connection state. - */ - -/* called by the Host's connection when the remote is refusing - postings. Code 400 in the banner */ -void hostCxnBlocked (Host host, Connection cxn, char *reason) ; - -/* called by the Connection when it has determined if the remote supports - the streaming extension or not. */ -void hostRemoteStreams (Host host, Connection cxn, bool doesStream) ; - -/* Called by the connection when it is no longer connected to the - remote. Perhaps due to getting a code 400 to an IHAVE. */ -void hostCxnDead (Host host, Connection cxn) ; - -/* Called when the Connection deletes itself */ -bool hostCxnGone (Host host, Connection cxn) ; - -/* Called when the Connection goes to sleep. */ -void hostCxnSleeping (Host host, Connection cxn) ; - -/* Called when the Connection starts waiting for articles. */ -void hostCxnWaiting (Host host, Connection cxn) ; - - - -/* Called when the connection has sent an IHAVE or a CHECK, or a TAKETHIS - when in no-check mode.*/ -void hostArticleOffered (Host host, Connection cxn) ; - -/* called by the Connection when the article was transferred. */ -void hostArticleAccepted (Host host, Connection cxn, Article article) ; - -/* Called by the connection when the remote answered 435 or 438 */ -void hostArticleNotWanted (Host host, Connection cxn, Article article) ; - -/* Called by the connection when the remote answered 437 or 439 */ -void hostArticleRejected (Host host, Connection cxn, Article article) ; - -/* Called when the connection when the remote answered 400 or 431 or 436 */ -void hostArticleDeferred (Host host, Connection cxn, Article article) ; - -/* Called by the connection if it discovers the file is gone. */ -void hostArticleIsMissing (Host host, Connection cxn, Article article) ; - - -/* Called by the connection when it wants to defer articles, but it - doesn't want the Host to queue any news on it. */ -void hostTakeBackArticle (Host host, Connection cxn, Article article) ; - - -/* called by the Connection when it is idle and wants to get things - moving. Returns true if there was something to do and the Host called - cxnQueueArticle() . */ -bool hostGimmeArticle (Host host, Connection cxn) ; - -/* get the name that INN uses for this host */ -const char *hostPeerName (Host host) ; - -/* get the bindaddress */ -const struct sockaddr_in *hostBindAddr(Host host) ; -#ifdef HAVE_INET6 -const struct sockaddr_in6 *hostBindAddr6(Host host) ; -int hostAddrFamily (Host host); -#endif - -/* get the username and password for authentication */ -const char *hostUsername (Host host) ; -const char *hostPassword (Host host) ; - -/* if VAL is true then each time the host logs its stats all its - connections will too. */ -void hostLogConnectionStats (bool val) ; -bool hostLogConnectionStatsP (void) ; - -#if 0 -/* Set the frequency (in seconds) with which we log statistics */ -void hostSetStatsPeriod (unsigned int period) ; -#endif - -/* return whether or not the Connections should attempt to stream. */ -bool hostWantsStreaming (Host host) ; - -/* return maxChecks */ -unsigned int hostmaxChecks (Host host); - -/* return if we should drop deferred articles */ -bool hostDropDeferred (Host host); - -/* return the maximum number of CHECKs that can be outstanding */ -unsigned int hostMaxChecks (Host host) ; - -/* Called by the Host's connections when they go into (true) or out of - (false) no-CHECK mode. */ -void hostLogNoCheckMode (Host host, bool on, double low, double cur, double high) ; - -/* calculate host backlog statistics */ -void gCalcHostBlStat (void) ; - -/* calculate host global statistics */ -void gHostStats (void) ; - -/* set the pathname of the file to use instead of innfeed.status */ -void hostSetStatusFile (const char *filename) ; - -/* function called when config file is loaded. */ -int hostConfigLoadCbk (void *data) ; - -void hostChkCxns(TimeoutId tid, void *data); - -#endif /* host_h__ */