Annotation of 43BSDReno/kerberosIV/krb/get_phost.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * $Source: /usr/src/kerberosIV/krb/RCS/get_phost.c,v $
        !             3:  * $Author: kfall $
        !             4:  *
        !             5:  * Copyright 1988 by the Massachusetts Institute of Technology.
        !             6:  *
        !             7:  * For copying and distribution information, please see the file
        !             8:  * <mit-copyright.h>.
        !             9:  */
        !            10: 
        !            11: #ifndef lint
        !            12: static char *rcsid_phost_c =
        !            13: "$Header: /usr/src/kerberosIV/krb/RCS/get_phost.c,v 4.7 90/06/25 20:57:57 kfall Exp $";
        !            14: #endif /* lint */
        !            15: 
        !            16: #include <mit-copyright.h>
        !            17: #include <stdio.h>
        !            18: #include <ctype.h>
        !            19: #include <netdb.h>
        !            20: 
        !            21: char *index();
        !            22: 
        !            23: /*
        !            24:  * This routine takes an alias for a host name and returns the first
        !            25:  * field, lower case, of its domain name.  For example, if "menel" is
        !            26:  * an alias for host officially named "menelaus" (in /etc/hosts), for
        !            27:  * the host whose official name is "MENELAUS.MIT.EDU", the name "menelaus"
        !            28:  * is returned.
        !            29:  *
        !            30:  * This is done for historical Athena reasons: the Kerberos name of
        !            31:  * rcmd servers (rlogin, rsh, rcp) is of the form "rcmd.host@realm"
        !            32:  * where "host"is the lowercase for of the host name ("menelaus").
        !            33:  * This should go away: the instance should be the domain name
        !            34:  * (MENELAUS.MIT.EDU).  But for now we need this routine...
        !            35:  *
        !            36:  * A pointer to the name is returned, if found, otherwise a pointer
        !            37:  * to the original "alias" argument is returned.
        !            38:  */
        !            39: 
        !            40: char * krb_get_phost(alias)
        !            41:     char *alias;
        !            42: {
        !            43:     struct hostent *h;
        !            44:     char *phost = alias;
        !            45:     if ((h=gethostbyname(alias)) != (struct hostent *)NULL ) {
        !            46:         char *p = index( h->h_name, '.' );
        !            47:         if (p)
        !            48:             *p = NULL;
        !            49:         p = phost = h->h_name;
        !            50:         do {
        !            51:             if (isupper(*p)) *p=tolower(*p);
        !            52:         } while (*p++);
        !            53:     }
        !            54:     return(phost);
        !            55: }

unix.superglobalmegacorp.com

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