home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / ircd4652.zip / ircd-df-4.6.5-os2 / src / res_skipname.c < prev    next >
C/C++ Source or Header  |  1997-12-28  |  540b  |  33 lines

  1. #include <sys/types.h>
  2. #include <stdio.h>
  3. #include "nameser.h"
  4.  
  5. /*
  6.  * Skip over a compressed domain name. Return the size or -1.
  7.  */
  8. dn_skipname(comp_dn, eom)
  9.     u_char *comp_dn, *eom;
  10. {
  11.     register u_char *cp;
  12.     register int n;
  13.  
  14.     cp = comp_dn;
  15.     while (cp < eom && (n = *cp++)) {
  16.         /*
  17.          * check for indirection
  18.          */
  19.         switch (n & INDIR_MASK) {
  20.         case 0:        /* normal case, n == len */
  21.             cp += n;
  22.             continue;
  23.         default:    /* illegal type */
  24.             return (-1);
  25.         case INDIR_MASK:    /* indirection */
  26.             cp++;
  27.         }
  28.         break;
  29.     }
  30.     return (cp - comp_dn);
  31. }
  32.  
  33.