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; |
