Пример #1
0
/* print a policy: like bitnamesof, but it also does the non-bitfields.
 * Suppress the shunt and fail fields if 0.
 */
const char *
prettypolicy(lset_t policy)
{
    const char *bn = bitnamesofb(sa_policy_bit_names
				 , policy & ~(POLICY_SHUNT_MASK | POLICY_FAIL_MASK)
				 , pbitnamesbuf, sizeof(pbitnamesbuf));
    size_t len;
    lset_t shunt = (policy & POLICY_SHUNT_MASK) >> POLICY_SHUNT_SHIFT;
    lset_t fail = (policy & POLICY_FAIL_MASK) >> POLICY_FAIL_SHIFT;

    if (bn != pbitnamesbuf)
	pbitnamesbuf[0] = '\0';
    len = strlen(pbitnamesbuf);
    if (shunt != 0)
    {
	snprintf(pbitnamesbuf + len, sizeof(pbitnamesbuf) - len, "+%s"
	    , policy_shunt_names[shunt]);
	len += strlen(pbitnamesbuf + len);
    }
    if (fail != 0)
    {
	snprintf(pbitnamesbuf + len, sizeof(pbitnamesbuf) - len, "+failure%s"
	    , policy_fail_names[fail]);
	len += strlen(pbitnamesbuf + len);
    }
    if (NEVER_NEGOTIATE(policy))
    {
	snprintf(pbitnamesbuf + len, sizeof(pbitnamesbuf) - len, "+NEVER_NEGOTIATE");
	len += strlen(pbitnamesbuf + len);
    }
    return pbitnamesbuf;
}
Пример #2
0
/* print a policy: like bitnamesof, but it also does the non-bitfields.
 * Suppress the shunt and fail fields if 0.
 */
const char *
prettypolicy(lset_t policy)
{
    char pbitnamesbuf[200];
    const char *bn = bitnamesofb(sa_policy_bit_names
				 , policy & ~(POLICY_SHUNT_MASK | POLICY_FAIL_MASK)
				 , pbitnamesbuf, sizeof(pbitnamesbuf));
    static char buf[200];   /* NOT RE-ENTRANT!  I hope that it is big enough! */
    lset_t shunt = (policy & POLICY_SHUNT_MASK) >> POLICY_SHUNT_SHIFT;
    lset_t fail = (policy & POLICY_FAIL_MASK) >> POLICY_FAIL_SHIFT;

    if (bn != pbitnamesbuf)
	pbitnamesbuf[0] = '\0';
    snprintf(buf, sizeof(buf), "%s%s%s%s%s%s"
	, pbitnamesbuf
	, shunt != 0 ? "+" : "", shunt != 0 ? policy_shunt_names[shunt] : ""
	, fail != 0 ? "+failure" : "", fail != 0 ? policy_fail_names[fail] : ""
	, NEVER_NEGOTIATE(policy) ? "+NEVER_NEGOTIATE" : "");
    return buf;
}
Пример #3
0
const char *bitnamesof(const char *const table[], lset_t val)
{
	static char bitnamesbuf[200]; /* NOT RE-ENTRANT!  I hope that it is big enough! */

	return bitnamesofb(table, val, bitnamesbuf, sizeof(bitnamesbuf));
}
Пример #4
0
const char *
bitnamesof(const char *const table[], lset_t val)
{
    return bitnamesofb(table, val, bitnamesbuf, sizeof(bitnamesbuf));
}