- vsnprintf(pkt->body + len, bufsize, fmt, argp);
+ while (vsnprintf(pkt->body + len, pkt->packet_size - len, fmt,argp) >=
+ (int)(pkt->packet_size - len - 1)) {
+ pkt->packet_size *= 2;
+ pktbody = alloc(pkt->packet_size);
+ strncpy(pktbody, pkt->body, len);
+ pktbody[len] = '\0';
+ amfree(pkt->body);
+ pkt->body = pktbody;
+ arglist_end(argp);
+ arglist_start(argp, fmt);
+ }