Annotation of 43BSD/contrib/nntp/server/main.c, revision 1.1.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.