)
{
char buffer[512];
- char *cp;
- size_t tl;
-
- tl = strlen(tag);
- memcpy(buffer, tag, tl);
- cp = buffer + tl;
- if (len > 0) {
- INSIST(tl + 3 + len <= sizeof(buffer));
- *cp++ = '=';
- *cp++ = '"';
- memcpy(cp, data, len);
- cp += len;
- *cp++ = '"';
- }
- ctl_putdata(buffer, (u_int)(cp - buffer), 0);
+ int rc;
+
+ INSIST(len < sizeof(buffer));
+ if (len)
+ rc = snprintf(buffer, sizeof(buffer), "%s=\"%.*s\"", tag, (int)len, data);
+ else
+ rc = snprintf(buffer, sizeof(buffer), "%s", tag);
+ INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
+ ctl_putdata(buffer, (u_int)rc, 0);
}
)
{
char buffer[512];
- char *cp;
- size_t tl;
-
- tl = strlen(tag);
- memcpy(buffer, tag, tl);
- cp = buffer + tl;
- if (len > 0) {
- INSIST(tl + 1 + len <= sizeof(buffer));
- *cp++ = '=';
- memcpy(cp, data, len);
- cp += len;
- }
- ctl_putdata(buffer, (u_int)(cp - buffer), 0);
+ int rc;
+
+ INSIST(len < sizeof(buffer));
+ if (len)
+ rc = snprintf(buffer, sizeof(buffer), "%s=%.*s", tag, (int)len, data);
+ else
+ rc = snprintf(buffer, sizeof(buffer), "%s", tag);
+ INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
+ ctl_putdata(buffer, (u_int)rc, 0);
}
double d
)
{
- char *cp;
- const char *cq;
char buffer[200];
-
- cp = buffer;
- cq = tag;
- while (*cq != '\0')
- *cp++ = *cq++;
- *cp++ = '=';
- INSIST((size_t)(cp - buffer) < sizeof(buffer));
- snprintf(cp, sizeof(buffer) - (cp - buffer), use_f ? "%.*f" : "%.*g",
- precision, d);
- cp += strlen(cp);
- ctl_putdata(buffer, (unsigned)(cp - buffer), 0);
+ int rc;
+
+ rc = snprintf(buffer, sizeof(buffer),
+ (use_f ? "%s=%.*f" : "%s=%.*g"),
+ tag, precision, d);
+ INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
+ ctl_putdata(buffer, (u_int)rc, 0);
}
/*
u_long uval
)
{
- register char *cp;
- register const char *cq;
char buffer[200];
+ int rc;
- cp = buffer;
- cq = tag;
- while (*cq != '\0')
- *cp++ = *cq++;
-
- *cp++ = '=';
- INSIST((cp - buffer) < (int)sizeof(buffer));
- snprintf(cp, sizeof(buffer) - (cp - buffer), "%lu", uval);
- cp += strlen(cp);
- ctl_putdata(buffer, (unsigned)( cp - buffer ), 0);
+ rc = snprintf(buffer, sizeof(buffer), "%s=%lu", tag, uval);
+ INSIST(rc >= 0 && rc < sizeof(buffer));
+ ctl_putdata(buffer, (u_int)rc, 0);
}
/*
)
{
char buffer[100];
- unsigned numch;
-
- numch = snprintf(buffer, sizeof(buffer),
- "%s=%04d%02d%02d%02d%02d",
- tag,
- pcal->year,
- pcal->month,
- pcal->monthday,
- pcal->hour,
- pcal->minute
- );
- INSIST(numch < sizeof(buffer));
- ctl_putdata(buffer, numch, 0);
+ int rc;
- return;
+ rc = snprintf(buffer, sizeof(buffer),
+ "%s=%04d%02d%02d%02d%02d",
+ tag,
+ pcal->year, pcal->month, pcal->monthday,
+ pcal->hour, pcal->minute
+ );
+ INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
+ ctl_putdata(buffer, (u_int)rc, 0);
}
#endif
tstamp_t uval
)
{
- register char *cp;
- register const char *cq;
char buffer[200];
struct tm *tm = NULL;
time_t fstamp;
-
- cp = buffer;
- cq = tag;
- while (*cq != '\0')
- *cp++ = *cq++;
-
- *cp++ = '=';
- fstamp = uval - JAN_1970;
+ int rc;
+
+ fstamp = (time_t)uval - JAN_1970;
tm = gmtime(&fstamp);
- if (NULL == tm)
+ if (NULL == tm)
return;
- INSIST((cp - buffer) < (int)sizeof(buffer));
- snprintf(cp, sizeof(buffer) - (cp - buffer),
- "%04d%02d%02d%02d%02d", tm->tm_year + 1900,
- tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min);
- cp += strlen(cp);
- ctl_putdata(buffer, (unsigned)( cp - buffer ), 0);
+
+ rc = snprintf(buffer, sizeof(buffer),
+ "%s=%04d%02d%02d%02d%02d",
+ tag,
+ tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
+ tm->tm_hour, tm->tm_min);
+ INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
+ ctl_putdata(buffer, (u_int)rc, 0);
}
u_long uval
)
{
- register char *cp;
- register const char *cq;
char buffer[200];
-
- cp = buffer;
- cq = tag;
- while (*cq != '\0')
- *cp++ = *cq++;
-
- *cp++ = '=';
- INSIST((cp - buffer) < (int)sizeof(buffer));
- snprintf(cp, sizeof(buffer) - (cp - buffer), "0x%lx", uval);
- cp += strlen(cp);
- ctl_putdata(buffer,(unsigned)( cp - buffer ), 0);
+ int rc;
+
+ rc = snprintf(buffer, sizeof(buffer), "%s=0x%lx", tag, uval);
+ INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
+ ctl_putdata(buffer, (u_int)rc, 0);
}
long ival
)
{
- register char *cp;
- register const char *cq;
char buffer[200];
-
- cp = buffer;
- cq = tag;
- while (*cq != '\0')
- *cp++ = *cq++;
-
- *cp++ = '=';
- INSIST((cp - buffer) < (int)sizeof(buffer));
- snprintf(cp, sizeof(buffer) - (cp - buffer), "%ld", ival);
- cp += strlen(cp);
- ctl_putdata(buffer, (unsigned)( cp - buffer ), 0);
+ int rc;
+
+ rc = snprintf(buffer, sizeof(buffer), "%s=%ld", tag, ival);
+ INSIST(rc >= 0 && rc < sizeof(buffer));
+ ctl_putdata(buffer, (u_int)rc, 0);
}
l_fp *ts
)
{
- register char *cp;
- register const char *cq;
char buffer[200];
-
- cp = buffer;
- cq = tag;
- while (*cq != '\0')
- *cp++ = *cq++;
-
- *cp++ = '=';
- INSIST((size_t)(cp - buffer) < sizeof(buffer));
- snprintf(cp, sizeof(buffer) - (cp - buffer), "0x%08x.%08x",
- (u_int)ts->l_ui, (u_int)ts->l_uf);
- cp += strlen(cp);
- ctl_putdata(buffer, (unsigned)( cp - buffer ), 0);
+ int rc;
+
+ rc = snprintf(buffer, sizeof(buffer),
+ "%s=0x%08lx.%08lx",
+ tag, (u_long)ts->l_ui, (u_long)ts->l_uf);
+ INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
+ ctl_putdata(buffer, (u_int)rc, 0);
}
sockaddr_u *addr
)
{
- register char *cp;
- register const char *cq;
+ const char *cq;
char buffer[200];
-
- cp = buffer;
- cq = tag;
- while (*cq != '\0')
- *cp++ = *cq++;
-
- *cp++ = '=';
+ int rc;
+
if (NULL == addr)
cq = numtoa(addr32);
else
cq = stoa(addr);
- INSIST((cp - buffer) < (int)sizeof(buffer));
- snprintf(cp, sizeof(buffer) - (cp - buffer), "%s", cq);
- cp += strlen(cp);
- ctl_putdata(buffer, (unsigned)(cp - buffer), 0);
+ rc = snprintf(buffer, sizeof(buffer), "%s=%s", tag, cq);
+ INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
+ ctl_putdata(buffer, (u_int)rc, 0);
}
u_int32 refid
)
{
- char output[16];
- char * optr;
- char * oplim;
- char * iptr;
- char * iplim;
- char * past_eq = NULL;
-
- optr = output;
- oplim = output + sizeof(output);
- while (optr < oplim && '\0' != *tag)
- *optr++ = *tag++;
- if (optr < oplim) {
- *optr++ = '=';
- past_eq = optr;
- }
- if (!(optr < oplim))
- return;
- iptr = (char *)&refid;
- iplim = iptr + sizeof(refid);
- for ( ; optr < oplim && iptr < iplim && '\0' != *iptr;
- iptr++, optr++)
- if (isprint((int)*iptr))
- *optr = *iptr;
- else
- *optr = '.';
- if (!(optr <= oplim))
- optr = past_eq;
- ctl_putdata(output, (u_int)(optr - output), FALSE);
+ char buffer[128];
+ int rc, i;
+
+ union {
+ uint32_t w;
+ uint8_t b[sizeof(uint32_t)];
+ } bytes;
+
+ bytes.w = refid;
+ for (i = 0; i < sizeof(bytes.b); ++i)
+ if (bytes.b[i] && !isprint(bytes.b[i]))
+ bytes.b[i] = '.';
+ rc = snprintf(buffer, sizeof(buffer), "%s=%.*s",
+ tag, (int)sizeof(bytes.b), bytes.b);
+ INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
+ ctl_putdata(buffer, (u_int)rc, FALSE);
}
int start
)
{
- register char *cp;
- register const char *cq;
+ char *cp, *ep;
char buffer[200];
- int i;
+ int i, rc;
+
cp = buffer;
- cq = tag;
- while (*cq != '\0')
- *cp++ = *cq++;
- *cp++ = '=';
+ ep = buffer + sizeof(buffer);
+
+ rc = snprintf(cp, (size_t)(ep - cp), "%s=", tag);
+ INSIST(rc >= 0 && rc < (ep - cp));
+ cp += rc;
+
i = start;
do {
if (i == 0)
i = NTP_SHIFT;
i--;
- INSIST((cp - buffer) < (int)sizeof(buffer));
- snprintf(cp, sizeof(buffer) - (cp - buffer),
- " %.2f", arr[i] * 1e3);
- cp += strlen(cp);
+ rc = snprintf(cp, (size_t)(ep - cp), " %.2f", arr[i] * 1e3);
+ INSIST(rc >= 0 && rc < (ep - cp));
+ cp += rc;
} while (i != start);
- ctl_putdata(buffer, (unsigned)(cp - buffer), 0);
+ ctl_putdata(buffer, (u_int)(cp - buffer), 0);
}
/*