@@ -271,14 +271,7 @@ int bt_socket_client_scan_callback(service_poll_t* poll,
271271 int fd , bt_instance_t * ins , bt_message_packet_t * packet , bool is_async )
272272{
273273 switch (packet -> code ) {
274- case BT_LE_ON_SCAN_RESULT : {
275- bt_scan_remote_t * scan = INT2PTR (bt_scan_remote_t * ) packet -> scan_cb ._on_scan_result_cb .scanner ;
276- ble_scan_result_t * result = & packet -> scan_cb ._on_scan_result_cb .result ;
277- ble_scan_result_t * tmp = malloc (sizeof (ble_scan_result_t ) + result -> length );
278- memcpy (tmp , result , sizeof (ble_scan_result_t ));
279- memcpy (tmp -> adv_data , packet -> scan_cb ._on_scan_result_cb .adv_data , result -> length );
280- scan -> callback -> on_scan_result (scan , tmp );
281- free (tmp );
274+ case BT_LE_ON_SCAN_RESULT_UNUSED : {
282275 break ;
283276 }
284277 case BT_LE_ON_SCAN_START_STATUS : {
@@ -320,6 +313,16 @@ int bt_socket_client_scan_callback(service_poll_t* poll,
320313 }
321314 break ;
322315 }
316+ case BLE_SCAN_SUBCODE_SCAN_CALLBACK : {
317+ bt_scan_remote_t * scan = INT2PTR (bt_scan_remote_t * ) packet -> scan_cb ._on_scan_result_cb .scanner ;
318+ ble_scan_result_t * result = & packet -> scan_cb ._on_scan_result_cb .result ;
319+ ble_scan_result_t * tmp = malloc (sizeof (ble_scan_result_t ) + result -> length );
320+ memcpy (tmp , result , sizeof (ble_scan_result_t ));
321+ memcpy (tmp -> adv_data , packet -> scan_cb ._on_scan_result_cb .adv_data , result -> length );
322+ scan -> callback -> on_scan_result (scan , tmp );
323+ free (tmp );
324+ break ;
325+ }
323326 default :
324327 return BT_STATUS_PARM_INVALID ;
325328 }
0 commit comments