buflen -= RRFIXEDSZ;
res_opt(n0, buf, buflen, anslen)	int n0;	u_char *buf;		/* buffer to put query */	int buflen;		/* size of buffer */	int anslen;		/* answer buffer length */{	register HEADER *hp;	register u_char *cp;	hp = (HEADER *) buf;	cp = buf + n0;	buflen -= n0;	if (buflen < 1 + RRFIXEDSZ)		return -1;	*cp++ = 0;	/* "." */	buflen--;	__putshort(T_OPT, cp);	/* TYPE */	cp += INT16SZ;	__putshort(anslen & 0xffff, cp);	/* CLASS = UDP payload size */	cp += INT16SZ;	*cp++ = NOERROR;	/* extended RCODE */	*cp++ = 0;		/* EDNS version */	if (_res.options & RES_USE_DNSSEC) {#ifdef DEBUG		if (_res.options & RES_DEBUG)			printf(";; res_opt()... ENDS0 DNSSEC OK\n");#endif /* DEBUG */		__putshort(DNS_MESSAGEEXTFLAG_DO, cp);	/* EDNS Z field */		cp += INT16SZ;	} else {		__putshort(0, cp);	/* EDNS Z field */		cp += INT16SZ;	}	__putshort(0, cp);	/* RDLEN */	cp += INT16SZ;	hp->arcount = htons(ntohs(hp->arcount) + 1);	buflen -= RRFIXEDSZ;	return cp - buf;}