+
+_checkhost(rhost, lhost, len)
+char *rhost, *lhost;
+int len;
+{
+ static char ldomain[MAXHOSTNAMELEN];
+ static char *domainp = NULL;
+ register char *cp;
+
+ if (len == -1)
+ return(!strcmp(rhost, lhost));
+ if (strncmp(rhost, lhost, len))
+ return(0);
+ if (!strcmp(rhost, lhost))
+ return(1);
+ if (*(lhost + len) != '\0')
+ return(0);
+ if (!domainp) {
+ if (gethostname(ldomain, sizeof(ldomain)) == -1) {
+ domainp = (char *)1;
+ return(0);
+ }
+ ldomain[MAXHOSTNAMELEN] = NULL;
+ domainp = index(ldomain, '.') + 1;
+ cp = domainp;
+ while (*cp)
+ *cp++ = isupper(*cp) ? tolower(*cp) : *cp;
+ }
+ if (domainp == (char *)1)
+ return(0);
+ return(!strcmp(domainp, rhost + len +1));
+}