]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
- Have res_nmkupdate store length result through a pointer, so that the
authorTed Lemon <source@isc.org>
Thu, 6 Apr 2000 22:59:25 +0000 (22:59 +0000)
committerTed Lemon <source@isc.org>
Thu, 6 Apr 2000 22:59:25 +0000 (22:59 +0000)
  return status isn't being overloaded.

minires/res_mkupdate.c

index 10862a51b7a5279d2494192157a1a5df36488f4a..46412b9974f8b7f5db38bae94713190d39828b47 100644 (file)
@@ -21,7 +21,7 @@
  */
 
 #if !defined(lint) && !defined(SABER)
-static const char rcsid[] = "$Id: res_mkupdate.c,v 1.3 2000/02/02 22:58:09 mellon Exp $";
+static const char rcsid[] = "$Id: res_mkupdate.c,v 1.4 2000/04/06 22:59:25 mellon Exp $";
 #endif /* not lint */
 
 #include <sys/types.h>
@@ -85,7 +85,7 @@ static struct protoent *cgetprotobynumber(int);
  */
 int
 res_nmkupdate(res_state statp,
-             ns_updrec *rrecp_in, u_char *buf, unsigned buflen) {
+             ns_updrec *rrecp_in, u_char *buf, unsigned *blp) {
        ns_updrec *rrecp_start = rrecp_in;
        HEADER *hp;
        u_char *cp, *sp1, *sp2, *startp, *endp;
@@ -100,12 +100,13 @@ res_nmkupdate(res_state statp,
        u_int32_t n1, rttl;
        u_char *dnptrs[20], **dpp, **lastdnptr;
        unsigned siglen, keylen, certlen;
+       unsigned buflen = *blp;
 
        /*
         * Initialize header fields.
         */
        if ((buf == NULL) || (buflen < HFIXEDSZ))
-               return (-1);
+               return -1;
        memset(buf, 0, HFIXEDSZ);
        hp = (HEADER *) buf;
        hp->id = htons(++statp->id);
@@ -651,7 +652,8 @@ res_nmkupdate(res_state statp,
        hp->ancount = htons(counts[1]);
        hp->nscount = htons(counts[2]);
        hp->arcount = htons(counts[3]);
-       return (cp - buf);
+       *blp = cp - buf;
+       return 0;
 }
 
 /*