@@ -532,6 +532,7 @@ wifi_err_t R_WIFI_SX_ULPGN_Scan(wifi_scan_result_t * ap_results, uint32_t max_ne
532
532
int32_t i ;
533
533
static uint8_t retry_max = 3 ;
534
534
static uint8_t ssid_tmp [33 ];
535
+ uint32_t vals [6 ];
535
536
536
537
/* Disconnected WiFi module? */
537
538
if (MODULE_DISCONNECTED == wifi_system_state_get ())
@@ -586,14 +587,21 @@ wifi_err_t R_WIFI_SX_ULPGN_Scan(wifi_scan_result_t * ap_results, uint32_t max_ne
586
587
587
588
/* bssid */
588
589
at_read ("bssid = %2x:%2x:%2x:%2x:%2x:%2x\r\n" ,
589
- & ap_results [i ].bssid [0 ], & ap_results [i ].bssid [1 ], & ap_results [i ].bssid [2 ],
590
- & ap_results [i ].bssid [3 ], & ap_results [i ].bssid [4 ], & ap_results [i ].bssid [5 ]);
590
+ & vals [0 ], & vals [1 ], & vals [2 ], & vals [3 ], & vals [4 ], & vals [5 ]);
591
+ ap_results [i ].bssid [0 ] = (uint8_t )(vals [0 ] & 0xff );
592
+ ap_results [i ].bssid [1 ] = (uint8_t )(vals [1 ] & 0xff );
593
+ ap_results [i ].bssid [2 ] = (uint8_t )(vals [2 ] & 0xff );
594
+ ap_results [i ].bssid [3 ] = (uint8_t )(vals [3 ] & 0xff );
595
+ ap_results [i ].bssid [4 ] = (uint8_t )(vals [4 ] & 0xff );
596
+ ap_results [i ].bssid [5 ] = (uint8_t )(vals [5 ] & 0xff );
591
597
592
598
/* channel */
593
- at_read ("channel = %d\r\n" , & ap_results [i ].channel );
599
+ at_read ("channel = %d\r\n" , & vals [0 ]);
600
+ ap_results [i ].channel = (int8_t )(vals [0 ] & 0xff );
594
601
595
602
/* indicator */
596
- at_read ("indicator = %d\r\n" , & ap_results [i ].rssi );
603
+ at_read ("indicator = %d\r\n" , & vals [0 ]);
604
+ ap_results [i ].rssi = (int8_t )(vals [0 ] & 0xff );
597
605
598
606
/* security */
599
607
if (0 == strncmp ((const char * )at_get_current_line (), "security = NONE!" , 16 ))
@@ -841,6 +849,7 @@ wifi_err_t R_WIFI_SX_ULPGN_GetMacAddress(uint8_t * mac_address)
841
849
{
842
850
wifi_err_t api_ret = WIFI_SUCCESS ;
843
851
uint32_t mac [6 ];
852
+ uint32_t i ;
844
853
845
854
/* Disconnected WiFi module? */
846
855
if (MODULE_DISCONNECTED == wifi_system_state_get ())
@@ -861,17 +870,15 @@ wifi_err_t R_WIFI_SX_ULPGN_GetMacAddress(uint8_t * mac_address)
861
870
}
862
871
863
872
/* Show current Wi-Fi status. */
864
- memset (mac , 0xAA , sizeof (mac ));
873
+ memset (mac , 0 , sizeof (mac ));
865
874
if (AT_OK == at_exec (g_cmd_port , "ATW\r" ))
866
875
{
867
876
/* Get MAC address */
868
877
at_read ("Mac Addr = %2x:%2x:%2x:%2x:%2x:%2x\r\n" , & mac [0 ], & mac [1 ], & mac [2 ], & mac [3 ], & mac [4 ], & mac [5 ]);
869
- mac_address [0 ] = mac [0 ];
870
- mac_address [1 ] = mac [1 ];
871
- mac_address [2 ] = mac [2 ];
872
- mac_address [3 ] = mac [3 ];
873
- mac_address [4 ] = mac [4 ];
874
- mac_address [5 ] = mac [5 ];
878
+ for (i = 0 ; i < 6 ; i ++ )
879
+ {
880
+ mac_address [i ] = (uint8_t )(mac [i ] & 0xff );
881
+ }
875
882
}
876
883
else
877
884
{
@@ -1678,7 +1685,7 @@ int32_t R_WIFI_SX_ULPGN_GetTcpSocketStatus(uint8_t socket_number)
1678
1685
int32_t ret = (-1 );
1679
1686
static char sock_status [24 ];
1680
1687
static char sock_type [8 ];
1681
- static uint8_t sock_ver ;
1688
+ static uint32_t sock_ver ;
1682
1689
uint16_t i ;
1683
1690
1684
1691
static const uint8_t * p_sock_sts_tbl [ULPGN_SOCKET_STATUS_MAX ] =
@@ -2433,6 +2440,7 @@ static int32_t get_server_certificate(wifi_certificate_infomation_t * p_cert)
2433
2440
{
2434
2441
uint8_t i ;
2435
2442
int32_t ret = E_FAIL ;
2443
+ uint32_t num_of_files ;
2436
2444
2437
2445
/* Initialize */
2438
2446
memset (p_cert , 0 , sizeof (wifi_certificate_infomation_t ));
@@ -2441,7 +2449,8 @@ static int32_t get_server_certificate(wifi_certificate_infomation_t * p_cert)
2441
2449
if (AT_OK == at_exec (g_cmd_port , "ATNSSLCERT=?\r" ))
2442
2450
{
2443
2451
at_move_to_next_line ();
2444
- at_read_wo_prefix ("%d\r\n" , & p_cert -> num_of_files );
2452
+ at_read_wo_prefix ("%d\r\n" , & num_of_files );
2453
+ p_cert -> num_of_files = (uint8_t )(num_of_files & 0xff );
2445
2454
for (i = 0 ; i < p_cert -> num_of_files ; i ++ )
2446
2455
{
2447
2456
at_move_to_next_line ();
@@ -3146,34 +3155,44 @@ static byteq_err_t wrap_byteq_put(uint8_t sock_idx, uint8_t const byte)
3146
3155
* End of function wrap_byteq_put
3147
3156
*********************************************************************************************************************/
3148
3157
3149
- static uint32_t get_dnsaddr (uint32_t * dns_address )
3158
+ static uint32_t get_dnsaddr (uint32_t * dns_address , uint32_t * dns_address_count )
3150
3159
{
3151
3160
uint32_t ret ;
3152
3161
uint32_t rslt ;
3153
3162
uint32_t dnsaddr [4 ];
3154
3163
3164
+ * dns_address = 0 ;
3165
+ memset (dns_address , 0 , * dns_address_count * sizeof (uint32_t ));
3166
+
3155
3167
/* Perform DNS query. */
3156
3168
ret = at_exec (g_cmd_port , "ATNDNSSVR=\?\r" );
3157
-
3158
3169
if (AT_OK == ret )
3159
3170
{
3160
3171
at_move_to_next_line ();
3161
3172
at_read_wo_prefix ("%d\r\n" , & rslt );
3162
3173
3163
- /* success? */
3164
- if (1 == rslt )
3165
- {
3174
+ // we can only return as many as we have asked for
3175
+ if (rslt > * dns_address_count )
3176
+ {
3177
+ rslt = * dns_address_count ;
3178
+ }
3179
+
3180
+ for (uint32_t i = 0 ; i < rslt ; ++ i )
3181
+ {
3166
3182
at_move_to_next_line ();
3167
3183
at_read_wo_prefix ("%d.%d.%d.%d\r\n" , & dnsaddr [0 ], & dnsaddr [1 ], & dnsaddr [2 ], & dnsaddr [3 ]);
3168
- * dns_address = IPADR_UB_TO_UL (dnsaddr [0 ], dnsaddr [1 ], dnsaddr [2 ], dnsaddr [3 ]);
3169
- }
3184
+ dns_address [i ] = IPADR_UB_TO_UL (dnsaddr [0 ], dnsaddr [1 ], dnsaddr [2 ], dnsaddr [3 ]);
3185
+ }
3186
+
3187
+ // return the number of entries processed
3188
+ * dns_address_count = rslt ;
3170
3189
}
3171
3190
3172
3191
return ret ;
3173
3192
}
3174
3193
3175
3194
3176
- wifi_err_t R_WIFI_SX_ULPGN_GetDnsServerAddress (uint32_t * dns_address )
3195
+ wifi_err_t R_WIFI_SX_ULPGN_GetDnsServerAddress (uint32_t * dns_address , uint32_t * dns_address_count )
3177
3196
{
3178
3197
wifi_err_t api_ret = WIFI_SUCCESS ;
3179
3198
@@ -3196,7 +3215,7 @@ wifi_err_t R_WIFI_SX_ULPGN_GetDnsServerAddress(uint32_t *dns_address)
3196
3215
}
3197
3216
3198
3217
/* Get IP address */
3199
- if (AT_OK != get_dnsaddr (dns_address ))
3218
+ if (AT_OK != get_dnsaddr (dns_address , dns_address_count ))
3200
3219
{
3201
3220
api_ret = WIFI_ERR_MODULE_COM ;
3202
3221
}
@@ -3206,4 +3225,3 @@ wifi_err_t R_WIFI_SX_ULPGN_GetDnsServerAddress(uint32_t *dns_address)
3206
3225
3207
3226
return api_ret ;
3208
3227
}
3209
-
0 commit comments