s_namecanon
if (bitset(NCF_VALID, s->s_namecanon.nc_flags) &&
s->s_namecanon.nc_exp >= now)
s->s_namecanon.nc_cname == NULL
: s->s_namecanon.nc_cname);
errno = s->s_namecanon.nc_errno;
SM_SET_H_ERRNO(s->s_namecanon.nc_herrno);
*statp = s->s_namecanon.nc_stat;
if (s->s_namecanon.nc_cname == NULL)
s->s_namecanon.nc_errno,
s->s_namecanon.nc_herrno);
s->s_namecanon.nc_cname,
strlen(s->s_namecanon.nc_cname),
s->s_namecanon.nc_exp = now + SM_DEFAULT_TTL;
s->s_namecanon.nc_exp = now + SM_MIN(ttl,
s->s_namecanon.nc_flags |= NCF_VALID; /* will be soon */
s->s_namecanon.nc_stat = *statp = EX_OK;
if (s->s_namecanon.nc_cname != NULL)
sm_free(s->s_namecanon.nc_cname);
s->s_namecanon.nc_cname = sm_strdup_x(ans);
s->s_namecanon.nc_errno = errno;
s->s_namecanon.nc_herrno = h_errno;
s->s_namecanon.nc_stat = *statp;
len = sizeof(s->s_namecanon);
if (s->s_namecanon.nc_exp >= now)
SM_STAB_FREE(s->s_namecanon.nc_cname); /* XXX */