max_seg_size, FALSE, this->src_id, TRUE);
contracts->add_contract(contracts, contract);
}
- contract->get_info_string(contract, buf, BUF_LEN);
+ contract->get_info_string(contract, buf, BUF_LEN, TRUE);
DBG2(DBG_IMC, "%s", buf);
/* Determine maximum PA-TNC attribute segment size */
my_max_seg_size = max_seg_size;
contract->set_max_size(contract, my_max_attr_size,
my_max_seg_size);
- contract->get_info_string(contract, buf, BUF_LEN);
+ contract->get_info_string(contract, buf, BUF_LEN, FALSE);
DBG2(DBG_IMC, "%s", buf);
}
}
max_seg_size, FALSE, this->src_id, FALSE);
contracts->add_contract(contracts, contract);
}
- contract->get_info_string(contract, buf, BUF_LEN);
+ contract->get_info_string(contract, buf, BUF_LEN, TRUE);
DBG2(DBG_IMV, "%s", buf);
/* Determine maximum PA-TNC attribute segment size */
{
max_seg_size = my_max_seg_size;
contract->set_max_size(contract, max_attr_size, max_seg_size);
- contract->get_info_string(contract, buf, BUF_LEN);
DBG2(DBG_IMV, " lowered maximum segment size to %u bytes",
max_seg_size);
}
my_max_seg_size = max_seg_size;
contract->set_max_size(contract, my_max_attr_size,
my_max_seg_size);
- contract->get_info_string(contract, buf, BUF_LEN);
+ contract->get_info_string(contract, buf, BUF_LEN, FALSE);
DBG2(DBG_IMV, "%s", buf);
}
}
}
METHOD(seg_contract_t, get_info_string, void,
- private_seg_contract_t *this, char *buf, size_t len)
+ private_seg_contract_t *this, char *buf, size_t len, bool request)
{
enum_name_t *pa_subtype_names;
uint32_t msg_vid, msg_subtype;
/* nul-terminate the string buffer */
buf[--len] = '\0';
- if (this->is_issuer)
+ if (this->is_issuer && request)
{
written = snprintf(pos, len, "%s %d requests",
this->is_imc ? "IMC" : "IMV", this->issuer_id);
pos += written;
len -= written;
- written = snprintf(pos, len, " a %ssegmentation contract ",
- this->is_null ? "null" : "");
+ written = snprintf(pos, len, " a %ssegmentation contract%s ",
+ this->is_null ? "null" : "", request ? "" : " response");
if (written < 0 || written > len)
{
return;
*
* @param buf String buffer of at least size len
* @param len Size of string buffer
+ * @param request TRUE if contract request, FALSE if response
*/
- void (*get_info_string)(seg_contract_t *this, char *buf, size_t len);
+ void (*get_info_string)(seg_contract_t *this, char *buf, size_t len,
+ bool request);
/**
* Destroys a seg_contract_t object.
/* Announce support of PA-TNC segmentation to IMC */
contract = seg_contract_create(msg_types[0], max_attr_size,
max_seg_size, TRUE, imv_id, FALSE);
- contract->get_info_string(contract, buf, BUF_LEN);
+ contract->get_info_string(contract, buf, BUF_LEN, TRUE);
DBG2(DBG_IMV, "%s", buf);
contracts = state->get_contracts(state);
contracts->add_contract(contracts, contract);