static int lldp_parse_port_id_tlv(tlv_packet *m) { _cleanup_free_ char *p = NULL; char *str = NULL; uint16_t length; uint8_t subtype; assert_se(lldp_tlv_packet_enter_container(m, LLDP_TYPE_PORT_ID) >= 0); assert_se(tlv_packet_read_u8(m, &subtype) >= 0); switch (subtype) { case LLDP_PORT_SUBTYPE_INTERFACE_NAME: assert_se(tlv_packet_read_string(m, &str, &length) >= 0); p = strndup(str, length-1); assert_se(p); assert_se(streq(p, TEST_LLDP_PORT) == 1); break; default: assert_not_reached("Unhandled option"); } assert_se(lldp_tlv_packet_exit_container(m) >= 0); return 0; }
static int lldp_parse_system_desc_tlv(tlv_packet *m) { char *str = NULL, *p; uint16_t length; assert_se(lldp_tlv_packet_enter_container(m, LLDP_TYPE_SYSTEM_DESCRIPTION) >= 0); assert_se(tlv_packet_read_string(m, &str, &length) >= 0); p = malloc0(length + 1); strncpy(p, str, length); assert_se(streq(p, TEST_LLDP_TYPE_SYSTEM_DESC) == 1); assert_se(lldp_tlv_packet_exit_container(m) >= 0); return 0; }
static int lldp_parse_system_desc_tlv(tlv_packet *m) { _cleanup_free_ char *p = NULL; char *str = NULL; uint16_t length; assert_se(lldp_tlv_packet_enter_container(m, LLDP_TYPE_SYSTEM_DESCRIPTION) >= 0); assert_se(tlv_packet_read_string(m, &str, &length) >= 0); p = strndup(str, length); assert_se(p); assert_se(streq(p, TEST_LLDP_TYPE_SYSTEM_DESC) == 1); assert_se(lldp_tlv_packet_exit_container(m) >= 0); return 0; }