Define and use an OS enumeration type
This commit is contained in:
@@ -128,32 +128,33 @@ TNC_Result TNC_IMC_NotifyConnectionChange(TNC_IMCID imc_id,
|
||||
static void add_product_info(imc_msg_t *msg)
|
||||
{
|
||||
pa_tnc_attr_t *attr;
|
||||
chunk_t os_name;
|
||||
os_type_t os_type;
|
||||
pen_t vendor_id = PEN_IETF;
|
||||
char *vendor;
|
||||
int i;
|
||||
|
||||
typedef struct vendor_pen_t {
|
||||
char *vendor;
|
||||
os_type_t os_type;
|
||||
pen_t pen;
|
||||
} vendor_pen_t;
|
||||
|
||||
vendor_pen_t vendor_pens[] = {
|
||||
{ "Debian", PEN_DEBIAN },
|
||||
{ "Ubuntu", PEN_CANONICAL }
|
||||
{ OS_TYPE_DEBIAN, PEN_DEBIAN },
|
||||
{ OS_TYPE_UBUNTU, PEN_CANONICAL },
|
||||
{ OS_TYPE_FEDORA, PEN_FEDORA },
|
||||
{ OS_TYPE_REDHAT, PEN_REDHAT },
|
||||
{ OS_TYPE_ANDROID, PEN_GOOGLE }
|
||||
};
|
||||
|
||||
os_name = os->get_name(os);
|
||||
os_type = os->get_type(os);
|
||||
for (i = 0; i < countof(vendor_pens); i++)
|
||||
{
|
||||
vendor = vendor_pens[i].vendor;
|
||||
if (chunk_equals(os_name, chunk_create(vendor, strlen(vendor))))
|
||||
if (os_type == vendor_pens[i].os_type)
|
||||
{
|
||||
vendor_id = vendor_pens[i].pen;
|
||||
break;
|
||||
}
|
||||
}
|
||||
attr = ietf_attr_product_info_create(vendor_id, 0, os_name);
|
||||
attr = ietf_attr_product_info_create(vendor_id, 0, os->get_name(os));
|
||||
msg->add_attribute(msg, attr);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user