@@ -313,6 +313,8 @@ static const struct mdm_control_pinconfig pinconfig[] = {
313313#else
314314#define MODEM_HL7800_ADDRESS_FAMILY "IPV6"
315315#endif
316+ #define MDM_HL7800_SOCKET_AF_IPV4 0
317+ #define MDM_HL7800_SOCKET_AF_IPV6 1
316318
317319#define SET_RAT_M1_CMD_LEGACY "AT+KSRAT=0"
318320#define SET_RAT_NB1_CMD_LEGACY "AT+KSRAT=1"
@@ -5116,26 +5118,23 @@ static int configure_TCP_socket(struct hl7800_socket *sock)
51165118 int ret ;
51175119 char cmd_cfg [sizeof ("AT+KTCPCFG=#,#,\"" IPV6_ADDR_FORMAT "\",#####" )];
51185120 int dst_port = -1 ;
5121+ int af ;
51195122
5120- #if defined(CONFIG_NET_IPV6 )
51215123 if (sock -> dst .sa_family == AF_INET6 ) {
5124+ af = MDM_HL7800_SOCKET_AF_IPV6 ;
51225125 dst_port = net_sin6 (& sock -> dst )-> sin6_port ;
5123- } else
5124- #endif
5125- #if defined(CONFIG_NET_IPV4 )
5126- if (sock -> dst .sa_family == AF_INET ) {
5126+ } else if (sock -> dst .sa_family == AF_INET ) {
5127+ af = MDM_HL7800_SOCKET_AF_IPV4 ;
51275128 dst_port = net_sin (& sock -> dst )-> sin_port ;
5128- } else
5129- #endif
5130- {
5129+ } else {
51315130 return - EINVAL ;
51325131 }
51335132
51345133 /* socket # needs assigning */
51355134 sock -> socket_id = MDM_MAX_SOCKETS + 1 ;
51365135
5137- snprintk (cmd_cfg , sizeof (cmd_cfg ), "AT+KTCPCFG=%d,%d,\"%s\",%u" , 1 , 0 ,
5138- hl7800_sprint_ip_addr (& sock -> dst ), dst_port );
5136+ snprintk (cmd_cfg , sizeof (cmd_cfg ), "AT+KTCPCFG=%d,%d,\"%s\",%u,,,,%d " , 1 , 0 ,
5137+ hl7800_sprint_ip_addr (& sock -> dst ), dst_port , af );
51395138 ret = send_at_cmd (sock , cmd_cfg , MDM_CMD_SEND_TIMEOUT , 0 , false);
51405139 if (ret < 0 ) {
51415140 LOG_ERR ("AT+KTCPCFG ret:%d" , ret );
@@ -5158,12 +5157,22 @@ static int configure_TCP_socket(struct hl7800_socket *sock)
51585157static int configure_UDP_socket (struct hl7800_socket * sock )
51595158{
51605159 int ret = 0 ;
5160+ char cmd [sizeof ("AT+KUDPCFG=1,0,,,,,0" )];
5161+ int af ;
51615162
51625163 /* socket # needs assigning */
51635164 sock -> socket_id = MDM_MAX_SOCKETS + 1 ;
51645165
5165- ret = send_at_cmd (sock , "AT+KUDPCFG=1,0" , MDM_CMD_SEND_TIMEOUT , 0 ,
5166- false);
5166+ if (sock -> family == AF_INET ) {
5167+ af = MDM_HL7800_SOCKET_AF_IPV4 ;
5168+ } else if (sock -> family == AF_INET6 ) {
5169+ af = MDM_HL7800_SOCKET_AF_IPV6 ;
5170+ } else {
5171+ return - EINVAL ;
5172+ }
5173+
5174+ snprintk (cmd , sizeof (cmd ), "AT+KUDPCFG=1,0,,,,,%d" , af );
5175+ ret = send_at_cmd (sock , cmd , MDM_CMD_SEND_TIMEOUT , 0 , false);
51675176 if (ret < 0 ) {
51685177 LOG_ERR ("AT+KUDPCFG ret:%d" , ret );
51695178 goto done ;
0 commit comments