I have a C program that works well the first time it runs (BLUEZ C API) but if I press CTRL+C to stop it and then if I run it again it never finds any BLE device (scanning function). If I reboot linux it works again. My program is in a while(1) loop scanning and printing device info (including manufacturer data) and calls:
stop_hci_scan(current_hci_state); error_check_and_exit(current_hci_state); close_hci_device(current_hci_state);
are outside loop.
The program must survive to this event (CTRL+C) because I am planning to put it into a linux service in order to be possible to restart it automatically if it hangs or something.
So, it seems that I need to perform some cleaning before launching program the second time (to avoid reboot), right?