+ *((u_short *)cp) = htons(datalen);
+ cp += sizeof(u_short);
+ if (datalen) {
+ bcopy(data, cp, datalen);
+ cp += datalen;
+ }
+
+ case UPDATEA:
+ buflen -= RRFIXEDSZ + newrr->r_size;
+ if ((n = dn_comp(dname, cp, buflen, dnptrs, lastdnptr)) < 0)
+ return (-1);
+ cp += n;
+ *((u_short *)cp) = htons(newrr->r_type);
+ cp += sizeof(u_short);
+ *((u_short *)cp) = htons(newrr->r_type);
+ cp += sizeof(u_short);
+ *((u_long *)cp) = htonl(newrr->r_ttl);
+ cp += sizeof(u_long);
+ *((u_short *)cp) = htons(newrr->r_size);
+ cp += sizeof(u_short);