- } else {
- if (nd_printn(ndo, cp, l, ndo->ndo_snapend))
- return(NULL);
+ break;
+
+ case TYPE_RESERVED:
+ ND_PRINT("<BAD LABEL TYPE>");
+ return(NULL);
+
+ case TYPE_LABEL:
+ if (name_chars + l <= MAXCDNAME) {
+ if (nd_printn(ndo, cp, l, ndo->ndo_snapend))
+ return(NULL);
+ } else if (name_chars < MAXCDNAME) {
+ if (nd_printn(ndo, cp,
+ MAXCDNAME - name_chars, ndo->ndo_snapend))
+ return(NULL);
+ }
+ name_chars += l;
+ break;