Annotation of 43BSD/contrib/nntp/server/ihave.c, revision 1.1

1.1     ! root        1: #ifndef lint
        !             2: static char    *sccsid = "@(#)ihave.c  1.3     (Berkeley) 3/2/86";
        !             3: #endif
        !             4: 
        !             5: #include "common.h"
        !             6: 
        !             7: /*
        !             8:  * IHAVE <messageid>
        !             9:  *
        !            10:  * Accept an article for transferral if we haven't seen it before.
        !            11:  */
        !            12: 
        !            13: ihave(argc, argv)
        !            14: int    argc;
        !            15: char   *argv[];
        !            16: {
        !            17:        int             retcode;
        !            18:        register FILE   *fp;
        !            19: 
        !            20:        if (argc != 2) {
        !            21:                printf("%d IHAVE requires two arguments.\r\n", ERR_CMDSYN);
        !            22:                (void) fflush(stdout);
        !            23:                return;
        !            24:        }
        !            25: 
        !            26:        fp = openartbyid(argv[1]);
        !            27:        if (fp != NULL) {
        !            28:                (void) fclose(fp);
        !            29:                printf("%d Already seen that one, thanks.\r\n", ERR_GOTIT);
        !            30:                (void) fflush(stdout);
        !            31: #ifdef LOG
        !            32:                syslog(LOG_INFO, "%s ihave %s rejected", hostname, argv[1]);
        !            33: #endif
        !            34:                return;
        !            35:        }
        !            36:                
        !            37:        retcode = spawn(RNEWS, "rnews", (char *) 0, CONT_XFER, ERR_XFERFAIL);
        !            38:        if (retcode <= 0)
        !            39:                printf("%d Transfer failed.\r\n", ERR_XFERFAIL);
        !            40:        else if (retcode > 0)
        !            41:                printf("%d Article transferred successfully.  Thank you.\r\n",
        !            42:                        OK_XFERED);
        !            43:        (void) fflush(stdout);
        !            44: 
        !            45: #ifdef LOG
        !            46:        syslog(LOG_INFO, "%s ihave %s accepted %s",
        !            47:                hostname, argv[1], retcode == 1 ? "succeeded" : "failed");
        !            48: #endif
        !            49: 
        !            50: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.