X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/blobdiff_plain/56a69e4eb2cfc0c0b61cb5a70eb13ff0e6a898e6..00bfb58106998c20f43ad136eb6047348a0ff718:/lib/fixhost.c diff --git a/lib/fixhost.c b/lib/fixhost.c index 0ad15b7b..73639625 100644 --- a/lib/fixhost.c +++ b/lib/fixhost.c @@ -4,17 +4,15 @@ * $Header$ * * Copyright (C) 1987 by the Massachusetts Institute of Technology - * - * $Log$ - * Revision 1.1 1987-09-03 03:12:45 wesommer - * Initial revision - * + * For copying and distribution information, please see the file + * . */ #ifndef lint static char *rcsid_fixhost_c = "$Header$"; #endif lint +#include #include #include #include @@ -30,10 +28,11 @@ extern char *realloc(); extern char *strsave(); /* - * Canonicalize hostname; if it is in the namespace, call the - * nameserver to expand it; otherwise uppercase it and append the - * default domain (using an, er, undocumented global of the - * nameserver). + * Canonicalize hostname: + * if it is in double-quotes, then strip the quotes and return the name. + * if it is in the namespace, call the nameserver to expand it + * otherwise uppercase it and append the default domain (using an, er, + * undocumented global of the nameserver). * * Assumes that host was allocated using malloc(); it may be freed or * realloc'ed, so the old pointer should not be considered valid. @@ -49,6 +48,16 @@ canonicalize_hostname(host) char tbuf[BUFSIZ]; register char *cp; + if (strlen(host) > 2 && host[0] == '"' && host[strlen(host)-1] == '"') { + strcpy(host+1, tbuf); + free(host); + tbuf[strlen(tbuf)-1] = 0; + return(strsave(tbuf)); + } + + if (index(host, '*') || index(host, '?')) + return(host); + hp = gethostbyname(host); if (hp) {