}
static int lldp_tlv_packet_read_u16_tlv(tlv_packet *tlv, uint16_t type, uint16_t *value) {
- int r;
+ int r, r2;
assert_return(tlv, -EINVAL);
goto out;
r = tlv_packet_read_u16(tlv, value);
-
- (void) lldp_tlv_packet_exit_container(tlv);
+ r2 = lldp_tlv_packet_exit_container(tlv);
out:
- return r;
+ return r < 0 ? r : r2;
}
static int lldp_tlv_packet_read_string_tlv(tlv_packet *tlv, uint16_t type, char **data, uint16_t *length) {
char *s;
- int r;
+ int r, r2;
assert_return(tlv, -EINVAL);
*data = (char *) s;
out:
- (void) lldp_tlv_packet_exit_container(tlv);
+ r2 = lldp_tlv_packet_exit_container(tlv);
- return r;
+ return r < 0 ? r : r2;
}
int sd_lldp_packet_read_chassis_id(tlv_packet *tlv,
uint8_t **data,
uint16_t *length) {
uint8_t subtype;
- int r;
+ int r, r2;
assert_return(tlv, -EINVAL);
*type = subtype;
out1:
- (void) lldp_tlv_packet_exit_container(tlv);
+ r2 = lldp_tlv_packet_exit_container(tlv);
out2:
- return r;
+ return r < 0 ? r : r2;
}
int sd_lldp_packet_read_port_id(tlv_packet *tlv,
uint16_t *length) {
uint8_t subtype;
char *s;
- int r;
+ int r, r2;
assert_return(tlv, -EINVAL);
*type = subtype;
out1:
- (void) lldp_tlv_packet_exit_container(tlv);
+ r2 = lldp_tlv_packet_exit_container(tlv);
out2:
- return r;
+ return r < 0 ? r : r2;
}
int sd_lldp_packet_read_ttl(tlv_packet *tlv, uint16_t *ttl) {
}
int sd_lldp_packet_read_port_vlan_id(tlv_packet *tlv, uint16_t *id) {
- int r;
+ int r, r2;
assert_return(tlv, -EINVAL);
goto out;
r = tlv_packet_read_u16(tlv, id);
-
- (void) lldp_tlv_packet_exit_container(tlv);
+ r2 = lldp_tlv_packet_exit_container(tlv);
out:
- return r;
+ return r < 0 ? r : r2;
}
int sd_lldp_packet_read_port_protocol_vlan_id(sd_lldp_packet *tlv, uint8_t *flags, uint16_t *id) {
- int r;
+ int r, r2;
assert_return(tlv, -EINVAL);
if (r >= 0)
r = tlv_packet_read_u16(tlv, id);
- (void) lldp_tlv_packet_exit_container(tlv);
+ r2 = lldp_tlv_packet_exit_container(tlv);
out:
- return r;
+ return r < 0 ? r : r2;
}
int sd_lldp_packet_read_vlan_name(tlv_packet *tlv, uint16_t *vlan_id, char **name, uint16_t *length) {
- int r;
+ int r, r2;
uint8_t len = 0;
assert_return(tlv, -EINVAL);
if (r >= 0 && len < *length)
*length = len;
- (void) lldp_tlv_packet_exit_container(tlv);
+ r2 = lldp_tlv_packet_exit_container(tlv);
out:
- return r;
+ return r < 0 ? r : r2;
}
int sd_lldp_packet_read_management_vid(tlv_packet *tlv, uint16_t *id) {
- int r;
+ int r, r2;
assert_return(tlv, -EINVAL);
goto out;
r = tlv_packet_read_u16(tlv, id);
-
- (void) lldp_tlv_packet_exit_container(tlv);
+ r2 = lldp_tlv_packet_exit_container(tlv);
out:
- return r;
+ return r < 0 ? r : r2;
}
int sd_lldp_packet_read_link_aggregation(sd_lldp_packet *tlv, uint8_t *status, uint32_t *id) {
- int r;
+ int r, r2;
assert_return(tlv, -EINVAL);
if (r >= 0)
r = tlv_packet_read_u32(tlv, id);
- (void) lldp_tlv_packet_exit_container(tlv);
+ r2 = lldp_tlv_packet_exit_container(tlv);
out:
- return r;
+ return r < 0 ? r : r2;
}
int sd_lldp_packet_get_destination_type(tlv_packet *tlv, int *dest) {