FreeCalypso > hg > themwi-system-sw
comparison mgw/mdcx.c @ 34:7dae2bae56a1
themwi-mgw: implement MDCX parameter validation
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 09 Jul 2022 23:17:15 -0800 |
parents | b3f74df7b808 |
children | 020ba624bdd8 |
comparison
equal
deleted
inserted
replaced
33:2b072ad13de6 | 34:7dae2bae56a1 |
---|---|
24 if (req->setup_mask & TMGW_CTRL_MASK_GSM_CONN) { | 24 if (req->setup_mask & TMGW_CTRL_MASK_GSM_CONN) { |
25 if (ep->ep_type != TMGW_EP_TYPE_GATEWAY) { | 25 if (ep->ep_type != TMGW_EP_TYPE_GATEWAY) { |
26 resp->res = TMGW_RESP_ERR_PROT; | 26 resp->res = TMGW_RESP_ERR_PROT; |
27 return(-1); | 27 return(-1); |
28 } | 28 } |
29 if (req->gsm_addr.ss_family != AF_INET) { | |
30 resp->res = TMGW_RESP_ERR_PARAM; | |
31 return(-1); | |
32 } | |
33 switch (req->gsm_payload_msg_type) { | |
34 case GSM_TCHF_FRAME: | |
35 break; | |
36 case GSM_TCHF_FRAME_EFR: | |
37 case GSM_TCHH_FRAME: | |
38 case GSM_TCH_FRAME_AMR: | |
39 resp->res = TMGW_RESP_ERR_NOTSUP; | |
40 return(-1); | |
41 default: | |
42 resp->res = TMGW_RESP_ERR_PARAM; | |
43 return(-1); | |
44 } | |
29 bcopy(&req->gsm_addr, &ep->rtp_gsm.remote_addr, | 45 bcopy(&req->gsm_addr, &ep->rtp_gsm.remote_addr, |
30 sizeof(struct sockaddr_in)); | 46 sizeof(struct sockaddr_in)); |
31 ep->gsm_payload_type = req->gsm_payload_type; | 47 ep->gsm_payload_type = req->gsm_payload_type; |
32 ep->gsm_payload_msg_type = req->gsm_payload_msg_type; | 48 ep->gsm_payload_msg_type = req->gsm_payload_msg_type; |
33 } | 49 } |
34 if (req->setup_mask & TMGW_CTRL_MASK_PSTN_CONN) { | 50 if (req->setup_mask & TMGW_CTRL_MASK_PSTN_CONN) { |
35 if (ep->ep_type != TMGW_EP_TYPE_GATEWAY) { | 51 if (ep->ep_type != TMGW_EP_TYPE_GATEWAY) { |
36 resp->res = TMGW_RESP_ERR_PROT; | 52 resp->res = TMGW_RESP_ERR_PROT; |
53 return(-1); | |
54 } | |
55 if (req->pstn_addr.ss_family != AF_INET) { | |
56 resp->res = TMGW_RESP_ERR_PARAM; | |
57 return(-1); | |
58 } | |
59 switch (req->pstn_payload_type) { | |
60 case PSTN_CODEC_PCMU: | |
61 case PSTN_CODEC_PCMA: | |
62 break; | |
63 default: | |
64 resp->res = TMGW_RESP_ERR_PARAM; | |
37 return(-1); | 65 return(-1); |
38 } | 66 } |
39 bcopy(&req->pstn_addr, &ep->rtp_pstn.remote_addr, | 67 bcopy(&req->pstn_addr, &ep->rtp_pstn.remote_addr, |
40 sizeof(struct sockaddr_in)); | 68 sizeof(struct sockaddr_in)); |
41 ep->pstn_payload_type = req->pstn_payload_type; | 69 ep->pstn_payload_type = req->pstn_payload_type; |