Annotation of coherent/d/bin/uucheck/uucheckname/uuckname.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * uucheckname - Check validity of current uucp site name.
        !             3:  */
        !             4: 
        !             5: #include <ctype.h>
        !             6: #include "uucheck.h"
        !             7: #include "uucheckname.h"
        !             8: 
        !             9: uucheckname()
        !            10: {
        !            11:        char uucpname[BIG]; /* Uucp name as extracted from /etc/uucpname.  */
        !            12:        char *str; /* Handy character string walker.  */
        !            13: 
        !            14:        REALLYVERBOSE("\n\nChecking site name...\n");
        !            15: 
        !            16:        if (gethostname(uucpname, BIG - 1 ) == -1) {
        !            17:                FATAL("uucheckname: can't open %s.\n", NAMEFILE);
        !            18:        } /* if gethostname failed */
        !            19: 
        !            20:        REALLYVERBOSE("Testing name length.\n");
        !            21:        if (strlen(uucpname) > MAX_NAME) {
        !            22:                sprintf(bigbuf, "UUCP name %s is longer than %d characters.\n",
        !            23:                                uucpname, MAX_NAME);
        !            24:                ERROR(bigbuf);
        !            25:                sprintf(bigbuf,
        !            26:                        "UUCP can not handle names longer than %d characters.\n",
        !            27:                        MAX_NAME);
        !            28:                VERBOSE(bigbuf);
        !            29:        } else if (strlen(uucpname) > MAX_UNIQUE) {
        !            30:                sprintf(bigbuf, "UUCP name %s is longer than %d characters.\n",
        !            31:                                uucpname, MAX_UNIQUE);
        !            32:                WARNING(bigbuf);
        !            33:                sprintf(bigbuf, 
        !            34:                        "Those characters beyond the %dth will be ignored.\n",
        !            35:                        MAX_UNIQUE);
        !            36:                VERBOSE(bigbuf);
        !            37:                sprintf(bigbuf, "Your sitename will be treated as %.7s.\n", uucpname);
        !            38:                VERBOSE(bigbuf);
        !            39:        } /* if uucpname is longer than the number of significant characters  */
        !            40: 
        !            41: 
        !            42:        REALLYVERBOSE("Checking to see that name is alphanumeric.\n");
        !            43:        /* Check to see that uucpname starts alpha.  */
        !            44:        if (!isalpha(*uucpname)) {
        !            45:                sprintf(bigbuf, "%s is an illegal uucp name.\n", uucpname);
        !            46:                ERROR(bigbuf);
        !            47:                VERBOSE("UUCP names must start with a letter.\n");
        !            48:        } else {
        !            49:                /* Check to see that uucpname is strictly alphanumeric.  */
        !            50:                for ( str = uucpname + 1; isalnum(*str); ++str) {
        !            51:                        /* empty */
        !            52:                }
        !            53:        
        !            54:                if (*str != (char) NULL) {
        !            55:                        sprintf(bigbuf, "%s is an illegal uucp name.\n", uucpname);
        !            56:                        ERROR(bigbuf);
        !            57:                        VERBOSE("Use only letters and numbers, and start with a letter.");
        !            58:                } /* If we didn't end on a NULL, we've got an non-alphanumeric character.  */
        !            59:        } /* if first character of uucpname was not alpha */
        !            60: 
        !            61:        REALLYVERBOSE("Checking to see that uucpname is strictly lowercase.\n");
        !            62:        /* Check to see that uucpname is strictly lowercase.  */
        !            63:        for ( str = uucpname; islower(*str) || isdigit(*str); ++str) {
        !            64:                /* empty */
        !            65:        }
        !            66: 
        !            67:        if (*str != (char) NULL) {
        !            68:                sprintf(bigbuf, "%s is contains upper case letters.\n", uucpname);
        !            69:                WARNING(bigbuf);
        !            70:                VERBOSE("You ought use only lower case letters.\n");
        !            71:        } /* If we didn't end on a NULL, we've got an non-alphanumeric character.  */
        !            72: 
        !            73: 
        !            74:        REALLYVERBOSE("Checking to see if a well known sitename has been chosen.\n");
        !            75:        /* Check to see if a well known sitename has been chosen.  */
        !            76:        if (lookup(uucpname, well_known_names) != NULL) {
        !            77:                sprintf(bigbuf, "%s is a very well known site.\n", uucpname);
        !            78:                WARNING(bigbuf);
        !            79:                VERBOSE("You REALLY should pick a different name...\n");
        !            80:                VERBOSE("Unless, of course, you really are who you claim to be.\n");
        !            81:                FIX(MESSAGE("Call Technical Support for name ideas.\n"));
        !            82:        } /* if uucpname is a well-known site */
        !            83: 
        !            84: 
        !            85:        if (fix) {
        !            86:            /* If this is not a silent session, try to get a new
        !            87:             * uucpname from the user.
        !            88:             */
        !            89:            if (!silent) {
        !            90:                if (error) {
        !            91:                        /* Pick a new name unconditionally on error.  */
        !            92:                        recreate_uucpname();
        !            93:                } else if (warning) {
        !            94:                        /* Otherwise, the user gets to choose.  */
        !            95:                        printf("Do you want to enter a new uucpname (y/n)? ");
        !            96:                        if (get_yes_or_no()) {
        !            97:                                recreate_uucpname();
        !            98:                        } /* if (get_yes_or_no()) */
        !            99:                } /* if (error) else if (warning) */
        !           100:            } /* if (!silent) */
        !           101:        } /* if (fix) */
        !           102: 
        !           103:        RETURN;
        !           104: } /* uucheckname */

unix.superglobalmegacorp.com

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