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

1.1     ! root        1: #ifndef lint
        !             2: static char    *sccsid = "@(#)main.c   1.2     (Berkeley) 2/8/86";
        !             3: #endif
        !             4: 
        !             5: /*
        !             6:  *     Network News Transfer Protocol server
        !             7:  *
        !             8:  *     Phil Lapsley
        !             9:  *     College of Engineering
        !            10:  *     University of California, Berkeley
        !            11:  *     (ARPA: [email protected]; UUCP: ...!ucbvax!phil)
        !            12:  */
        !            13: 
        !            14: #include "common.h"
        !            15: #include <sys/socket.h>
        !            16: #include <netinet/in.h>
        !            17: #include <netdb.h>
        !            18: #include <signal.h>
        !            19: 
        !            20: main()
        !            21: {
        !            22: 
        !            23: #ifdef ALONE   /* If no inetd */
        !            24: 
        !            25:        int                     sockt, client, length;
        !            26:        struct sockaddr_in      from;
        !            27:        extern int              reaper();
        !            28: 
        !            29:        disassoc();
        !            30: 
        !            31: #ifdef FASTFORK
        !            32:        num_groups = read_groups();     /* Read active file now */
        !            33:                                        /* and then do it every */
        !            34:        set_timer();                    /* so often later */
        !            35: #endif
        !            36: 
        !            37:        sockt = get_socket();
        !            38: 
        !            39:        signal(SIGCHLD, reaper);
        !            40: 
        !            41:        listen(sockt, SOMAXCONN);
        !            42: 
        !            43:        for (;;) {
        !            44:                client = accept(sockt, &from, &length);
        !            45:                if (client < 0) {
        !            46:                        if (errno != EINTR)
        !            47:                                syslog(LOG_ERR, "nntpd: accept: %m\n");
        !            48:                        continue;
        !            49:                }
        !            50: 
        !            51:                switch (fork()) {
        !            52:                case    -1:     syslog(LOG_ERR, "nntpd: fork: %m\n");
        !            53:                                close(client);
        !            54:                                break;
        !            55: 
        !            56:                case    0:      close(sockt);
        !            57:                                make_stdio(client);
        !            58:                                serve();
        !            59:                                break;
        !            60: 
        !            61:                default:        close(client);
        !            62:                                break;
        !            63:                }
        !            64:        }
        !            65: 
        !            66: #else          /* We have inetd */
        !            67: 
        !            68:        serve();
        !            69: 
        !            70: #endif
        !            71: }

unix.superglobalmegacorp.com

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