X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=lib%2Fgetfqdn.c;fp=lib%2Fgetfqdn.c;h=0000000000000000000000000000000000000000;hb=b7a32e2d73e3ab1add8208d3e157f7269a31ef4d;hp=62781c1a925ef67e7b61f7591f40f35cca81cbb9;hpb=ac902a8299ff4469b356836f431ead31c3377377;p=innduct.git diff --git a/lib/getfqdn.c b/lib/getfqdn.c deleted file mode 100644 index 62781c1..0000000 --- a/lib/getfqdn.c +++ /dev/null @@ -1,87 +0,0 @@ -/* $Id: getfqdn.c 6155 2003-01-19 19:58:25Z rra $ -** -*/ - -#include "config.h" -#include "clibrary.h" -#include - -#include "libinn.h" -#include "paths.h" - - -/* -** Get the fully-qualified domain name for this host. -*/ -char *GetFQDN(char *domain) -{ - static char buff[SMBUF]; - struct hostent *hp; - char *p; - char **ap; -#if 0 - /* See comments below. */ - char temp[SMBUF + 2]; -#endif /* 0 */ - - /* Return any old results. */ - if (buff[0]) - return buff; - - /* Try gethostname. */ - if (gethostname(buff, (int)sizeof buff) < 0) - return NULL; - if (strchr(buff, '.') != NULL) - return buff; - - /* See if DNS (or /etc/hosts) gives us a full domain name. */ - if ((hp = gethostbyname(buff)) == NULL) - return NULL; -#if 0 - /* This code is a "feature" that allows multiple domains (NIS or - * DNS, I'm not sure) to work with a single INN server. However, - * it turns out to cause more problems for people, and they have to - * use hacks like __switch_gethostbyname, etc. So if you need this, - * turn it on, but don't complain to me. */ - if (strchr(hp->h_name, '.') == NULL) { - /* Try to force DNS lookup if NIS/whatever gets in the way. */ - strlcpy(temp, buff, sizeof(temp)); - strlcat(temp, ".", sizeof(temp)); - hp = gethostbyname(temp); - } -#endif /* 0 */ - - /* First, see if the main name is a FQDN. It should be. */ - if (hp != NULL && strchr(hp->h_name, '.') != NULL) { - if (strlen(hp->h_name) < sizeof buff - 1) { - strlcpy(buff, hp->h_name, sizeof(buff)); - return buff; - } - /* Doesn't fit; make sure we don't return bad data next time. */ - buff[0] = '\0'; - return hp->h_name; - } - - /* Second, see if any aliases are. */ - if ((ap = hp->h_aliases) != NULL) - while ((p = *ap++) != NULL) - if (strchr(p, '.') != NULL) { - /* Deja-vous all over again. */ - if (strlen(p) < sizeof buff - 1) { - strlcpy(buff, p, sizeof(buff)); - return buff; - } - buff[0] = '\0'; - return p ; - } - - /* Give up: Get the domain config param and append it. */ - if ((p = domain) == NULL || *p == '\0') - return NULL; - if (strlen(buff) + 1 + strlen(p) > sizeof buff - 1) - /* Doesn't fit. */ - return NULL; - strlcat(buff, ".", sizeof(buff)); - strlcat(buff, p, sizeof(buff)); - return buff; -}