simplify if statement in wtp_dfa_state_discovery
This commit is contained in:
parent
4117ab1f71
commit
43dde134b7
@ -245,26 +245,43 @@ void wtp_dfa_state_discovery_timeout(struct capwap_timeout* timeout, unsigned lo
|
|||||||
void wtp_dfa_state_discovery(struct capwap_parsed_packet* packet)
|
void wtp_dfa_state_discovery(struct capwap_parsed_packet* packet)
|
||||||
{
|
{
|
||||||
unsigned short binding;
|
unsigned short binding;
|
||||||
|
struct capwap_resultcode_element* resultcode;
|
||||||
|
int i;
|
||||||
|
struct wtp_discovery_response* response;
|
||||||
struct capwap_array* controlip;
|
struct capwap_array* controlip;
|
||||||
|
|
||||||
ASSERT(packet != NULL);
|
ASSERT(packet != NULL);
|
||||||
|
|
||||||
|
if (packet->rxmngpacket->ctrlmsg.type != CAPWAP_DISCOVERY_RESPONSE) {
|
||||||
|
capwap_logging_debug("Unexpected message %d in state Discovery",
|
||||||
|
packet->rxmngpacket->ctrlmsg.type);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* */
|
/* */
|
||||||
binding = GET_WBID_HEADER(packet->rxmngpacket->header);
|
binding = GET_WBID_HEADER(packet->rxmngpacket->header);
|
||||||
if ((binding == g_wtp.binding) &&
|
if (binding != g_wtp.binding) {
|
||||||
(packet->rxmngpacket->ctrlmsg.type == CAPWAP_DISCOVERY_RESPONSE) &&
|
capwap_logging_debug("Discovery Response for invalid binding");
|
||||||
(g_wtp.localseqnumber == packet->rxmngpacket->ctrlmsg.seq))
|
return;
|
||||||
{
|
}
|
||||||
struct capwap_resultcode_element* resultcode;
|
|
||||||
|
if (g_wtp.localseqnumber != packet->rxmngpacket->ctrlmsg.seq) {
|
||||||
|
capwap_logging_debug("Discovery Response with invalid sequence (%d != %d)",
|
||||||
|
g_wtp.localseqnumber, packet->rxmngpacket->ctrlmsg.seq);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* */
|
/* */
|
||||||
g_wtp.localseqnumber++;
|
g_wtp.localseqnumber++;
|
||||||
|
|
||||||
/* Check the success of the Request */
|
/* Check the success of the Request */
|
||||||
resultcode = (struct capwap_resultcode_element*)capwap_get_message_element_data(packet, CAPWAP_ELEMENT_RESULTCODE);
|
resultcode = (struct capwap_resultcode_element*)capwap_get_message_element_data(packet,
|
||||||
if (!resultcode || CAPWAP_RESULTCODE_OK(resultcode->code)) {
|
CAPWAP_ELEMENT_RESULTCODE);
|
||||||
int i;
|
if (resultcode && !CAPWAP_RESULTCODE_OK(resultcode->code))
|
||||||
struct wtp_discovery_response* response = (struct wtp_discovery_response*)capwap_array_get_item_pointer(g_wtp.acdiscoveryresponse, g_wtp.acdiscoveryresponse->count);
|
return;
|
||||||
|
|
||||||
|
response = (struct wtp_discovery_response*)
|
||||||
|
capwap_array_get_item_pointer(g_wtp.acdiscoveryresponse, g_wtp.acdiscoveryresponse->count);
|
||||||
|
|
||||||
/* */
|
/* */
|
||||||
response->controlipv4 = capwap_array_create(sizeof(struct capwap_controlipv4_element), 0, 0);
|
response->controlipv4 = capwap_array_create(sizeof(struct capwap_controlipv4_element), 0, 0);
|
||||||
@ -274,8 +291,10 @@ void wtp_dfa_state_discovery(struct capwap_parsed_packet* packet)
|
|||||||
controlip = (struct capwap_array*)capwap_get_message_element_data(packet, CAPWAP_ELEMENT_CONTROLIPV4);
|
controlip = (struct capwap_array*)capwap_get_message_element_data(packet, CAPWAP_ELEMENT_CONTROLIPV4);
|
||||||
if (controlip) {
|
if (controlip) {
|
||||||
for (i = 0; i < controlip->count; i++) {
|
for (i = 0; i < controlip->count; i++) {
|
||||||
struct capwap_controlipv4_element* src = *(struct capwap_controlipv4_element**)capwap_array_get_item_pointer(controlip, i);
|
struct capwap_controlipv4_element* src =
|
||||||
struct capwap_controlipv4_element* dst = (struct capwap_controlipv4_element*)capwap_array_get_item_pointer(response->controlipv4, i);
|
*(struct capwap_controlipv4_element**)capwap_array_get_item_pointer(controlip, i);
|
||||||
|
struct capwap_controlipv4_element* dst =
|
||||||
|
(struct capwap_controlipv4_element*)capwap_array_get_item_pointer(response->controlipv4, i);
|
||||||
|
|
||||||
memcpy(dst, src, sizeof(struct capwap_controlipv4_element));
|
memcpy(dst, src, sizeof(struct capwap_controlipv4_element));
|
||||||
}
|
}
|
||||||
@ -285,12 +304,12 @@ void wtp_dfa_state_discovery(struct capwap_parsed_packet* packet)
|
|||||||
controlip = (struct capwap_array*)capwap_get_message_element_data(packet, CAPWAP_ELEMENT_CONTROLIPV6);
|
controlip = (struct capwap_array*)capwap_get_message_element_data(packet, CAPWAP_ELEMENT_CONTROLIPV6);
|
||||||
if (controlip) {
|
if (controlip) {
|
||||||
for (i = 0; i < (controlip)->count; i++) {
|
for (i = 0; i < (controlip)->count; i++) {
|
||||||
struct capwap_controlipv6_element* src = *(struct capwap_controlipv6_element**)capwap_array_get_item_pointer((controlip), i);
|
struct capwap_controlipv6_element* src =
|
||||||
struct capwap_controlipv6_element* dst = (struct capwap_controlipv6_element*)capwap_array_get_item_pointer(response->controlipv6, i);
|
*(struct capwap_controlipv6_element**)capwap_array_get_item_pointer((controlip), i);
|
||||||
|
struct capwap_controlipv6_element* dst =
|
||||||
|
(struct capwap_controlipv6_element*)capwap_array_get_item_pointer(response->controlipv6, i);
|
||||||
|
|
||||||
memcpy(dst, src, sizeof(struct capwap_controlipv6_element));
|
memcpy(dst, src, sizeof(struct capwap_controlipv6_element));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user