+ iaddr= (const unsigned char*)
+ &(((const struct sockaddr_in*)addr) -> sin_addr);
+
+ lreq= strlen(zone) + 4*4 + 1;
+ if (lreq > sizeof(shortbuf)) {
+ buf= malloc(strlen(zone) + 4*4 + 1);
+ if (!buf) return errno;
+ buf_free= buf;
+ } else {
+ buf= shortbuf;
+ buf_free= 0;
+ }
+ sprintf(buf, "%d.%d.%d.%d.%s", iaddr[3], iaddr[2], iaddr[1], iaddr[0], zone);