Annotation of researchv10no/cmd/uucp/xqt.c, revision 1.1.1.1

1.1       root        1: /*     /sccs/src/cmd/uucp/s.xqt.c
                      2:        xqt.c   1.1     8/30/84 17:38:21
                      3: */
                      4: #include "uucp.h"
                      5: 
                      6: VERSION(@(#)xqt.c      1.1);
                      7: 
                      8: static euucico();
                      9: 
                     10: /*
                     11:  * start up uucico for rmtname
                     12:  * return:
                     13:  *     none
                     14:  */
                     15: void
                     16: xuucico(rmtname)
                     17: char *rmtname;
                     18: {
                     19:        /*
                     20:         * start uucico for rmtname system
                     21:         */
                     22:        if (fork() == 0) {      /* can't vfork() */
                     23:                /*
                     24:                 * hide the uid of the initiator of this job so that he
                     25:                 * doesn't get notified about things that don't concern him.
                     26:                 */
                     27:                (void) setuid(geteuid());
                     28:                euucico(rmtname);
                     29:        }
                     30:        return;
                     31: }
                     32: 
                     33: /*
                     34:  * remove the opt junk later.  -ntw
                     35:  */
                     36: 
                     37: static
                     38: euucico(rmtname)
                     39: char   *rmtname;
                     40: {
                     41:        char opt[100];
                     42: 
                     43:        (void) close(0);
                     44:        (void) close(1);
                     45:        (void) close(2);
                     46:        (void) open("/dev/null", 0);
                     47:        (void) open("/dev/null", 1);
                     48:        (void) open("/dev/null", 1);
                     49:        (void) signal(SIGINT, SIG_IGN);
                     50:        (void) signal(SIGHUP, SIG_IGN);
                     51:        (void) signal(SIGQUIT, SIG_IGN);
                     52:        closelog();
                     53: #ifdef V8
                     54:        close(3);
                     55: #endif
                     56:        if (rmtname[0] != '\0')
                     57:                (void) sprintf(opt, "-s%s", rmtname);
                     58:        else
                     59:                opt[0] = '\0';
                     60: #if NOTDEF
                     61:        (void) execle(UUCICO, "UUCICO", "-r1", opt, 0, Env);
                     62: #else
                     63:        (void) execle(UUSCHED, "UUSCHED", 0, Env);
                     64: #endif
                     65:        exit(100);
                     66: }
                     67: 
                     68: 
                     69: /*
                     70:  * start up uuxqt
                     71:  * return:
                     72:  *     none
                     73:  */
                     74: void
                     75: xuuxqt(rmtname)
                     76: char   *rmtname;
                     77: {
                     78:        char    opt[100];
                     79: 
                     80:        if (rmtname && rmtname[0] != '\0')
                     81:                (void) sprintf(opt, "-s%s", rmtname);
                     82:        else
                     83:                opt[0] = '\0';
                     84:        /*
                     85:         * start uuxqt
                     86:         */
                     87:        if (vfork() == 0) {
                     88:                (void) close(0);
                     89:                (void) close(1);
                     90:                (void) close(2);
                     91:                (void) open("/dev/null", 2);
                     92:                (void) open("/dev/null", 2);
                     93:                (void) open("/dev/null", 2);
                     94:                (void) signal(SIGINT, SIG_IGN);
                     95:                (void) signal(SIGHUP, SIG_IGN);
                     96:                (void) signal(SIGQUIT, SIG_IGN);
                     97:                closelog();
                     98: #ifdef V8
                     99:                close(3);
                    100:                (void) open("/dev/null", 2);
                    101: #endif
                    102:                /*
                    103:                 * hide the uid of the initiator of this job so that he
                    104:                 * doesn't get notified about things that don't concern him.
                    105:                 */
                    106:                (void) setuid(geteuid());
                    107:                (void) execle(UUXQT, "UUXQT", opt, 0, Env);
                    108:                (void) _exit(100);
                    109:        }
                    110:        return;
                    111: }

unix.superglobalmegacorp.com

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