[BACK]Return to yplib.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libc / yp

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/lib/libc/yp/yplib.c between version 1.30 and 1.31

version 1.30, 1997/07/21 14:09:32 version 1.31, 1997/07/23 05:29:38
Line 328  _yp_check(dom)
Line 328  _yp_check(dom)
 }  }
   
 /*  /*
  * _yp_invalid_domain: check if given domainname isn't RFC1035 compliant   * _yp_invalid_domain: check if given domainname isn't legal.
  * returns non-zero if invalid   * returns non-zero if invalid
  */   */
 int  int
 _yp_invalid_domain(dom)  _yp_invalid_domain(dom)
         const char *dom;          const char *dom;
 {  {
         const char      *p;  
   
         if (dom == NULL || *dom == '\0')          if (dom == NULL || *dom == '\0')
                 return 1;                  return 1;
   
 #define is_digit(x)     ((x) >= '0' && (x) <= '9')          if (strlen(dom) > YPMAXDOMAIN)
 #define is_letter(x)    (((x) >= 'a' && (x) <= 'z') || ((x) >='A' && (x) <='Z'))                  return 1;
   
         for (p = dom; *p != '\0'; p++) {          if (strchr(dom, '/') != NULL)
                 int len;  
                 if (!is_letter(*p))             /* label starts with a letter */  
                         return 1;  
                 p++;  
                 len = 0;                        /* then has [-a-zA-Z0-9] */  
                 while (is_digit(*p) || is_letter(*p) || *p == '-') {  
                         p++;  
                         if (++len > MAXLABEL)  
                                 return 1;       /* label is too long */  
                 }  
                 if (*(p-1) == '-')              /* no trailing - for label */  
                         return 1;  
                 if (*p == '\0')  
                         break;  
                 else if (*p != '.')  
                         return 1;  
                 else if (*(p+1) == '\0')        /* no trailing . for domain */  
                         return 1;  
         }  
         if ((p - dom) > YPMAXDOMAIN)  
                 return 1;                  return 1;
   
         return 0;          return 0;
 }  }

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

CVSweb <webmaster@jp.NetBSD.org>