Commit Graph
449 Commits
Author SHA1 Message Date
Janusz Sobczak e38ce96964 Replace AcceptedConnectionCallback structs with absl::AnyInvocable
PiperOrigin-RevId: 557949490
2023-08-17 15:14:25 -07:00
Nick Bourdakos 7933842c29 Add BLE Medium
PiperOrigin-RevId: 557933813
2023-08-17 14:17:28 -07:00
Nick Bourdakos 07a94a950d Add Objective-C++ GATT client wrapper
PiperOrigin-RevId: 557925490
2023-08-17 13:48:48 -07:00
Nick Bourdakos 4aa52b45f9 Add GATT client
PiperOrigin-RevId: 557919250
2023-08-17 13:27:39 -07:00
Janusz Sobczak 2c55c0cdbd Refactor Pipe implementation
* Remove Pipe classes
* Rename BasePipe to Pipe
* Hide Pipe class in anonymous namespace in pipe.cc
* Add CreatePipe static method
* Replace Payload(std::function<InputStream&()>) with Payload(std::unique_ptr<InputStream>)
* Find&Replace Pipe usages

PiperOrigin-RevId: 557276980
2023-08-15 15:53:58 -07:00
Janusz Sobczak 20db5da721 Extract SocketBase
Test only change.

Extracts a common base class for BluetoothSocket, BleSocket, BleV2Socket, WifiDirectSocket, WifiHotspotSocket and  WifiLanSocket to reduce code duplication.

PiperOrigin-RevId: 557267937
2023-08-15 15:22:06 -07:00
Guogang Li fabeff0d57 Added APIs to control device sleep
These APIs can be used to prevent device into sleep when sending supper big files.

PiperOrigin-RevId: 556809236
2023-08-14 09:05:11 -07:00
Janusz Sobczak 5393daf9f1 Merge logging and types build targets
Both "types" and "logging" build targets included "logging.h"
Merging them together avoids circular dependencies.

PiperOrigin-RevId: 555262816
2023-08-09 19:13:12 -07:00
Guogang Li 5b155f9a4a Added data section filter in BLE scanning
PiperOrigin-RevId: 553660098
2023-08-09 19:11:48 -07:00
Guogang Li 20f2291476 Added APIs to allow/prevent sleep in session manager
PiperOrigin-RevId: 552958620
2023-08-01 16:26:47 -07:00
Guogang Li 868d3ce046 Resolved the issue to monitor lock/unlock in platform SDK
PiperOrigin-RevId: 552655345
2023-07-31 19:13:27 -07:00
Nick Bourdakos 9d2cfc19c9 Add Objective-C++ GATT server wrapper
PiperOrigin-RevId: 552636264
2023-07-31 17:20:14 -07:00
Nick Bourdakos c1d74120a0 Add initial BLEv2 Bluetooth Adapter
PiperOrigin-RevId: 551922301
2023-07-28 12:32:27 -07:00
Guogang Li eb5f8aed10 Fixed WI-FI hotspot stuck issue during close
PiperOrigin-RevId: 551703821
2023-07-27 18:57:27 -07:00
Nick Bourdakos 0a13ce51f4 Make GNCBLEGATTServer thread safe
Fixes an issue where if a characteristic is created and then updated with a non-nil value, and a new characteristic under the same service is added, then when the service is re-added the old characteristic will be permanently cached and the dynamic reads will stop working.

This also eliminates the issue when characteristics are created concurrently, since service additions are batched, if the service addition fails then only one of the characteristics will know that it failed to get added.

This change also introduces the nuance of "success" does not mean the CoreBluetooth method has completed successfully, but instead means that the intended state has been recorded and the class will do its best to maintain that state. For example, a successful "start advertising" call means that we have the advertisement cached and we will start advertising as soon as we can (like BT transitions from off to on) and will do our best to keep advertising (like BT transitions from on to off to on again).

PiperOrigin-RevId: 551660634
2023-07-27 15:40:30 -07:00
Janusz Sobczak 974d4b357c Skip SDP check for FP rfcomm connection on Windows
The SDP checks fails but rfcomm connection works.
Skipping the SDP check does not seem to have any ill side effects.

PiperOrigin-RevId: 551370531
2023-07-26 18:15:44 -07:00
Nick Bourdakos a42cdc7346 Move Server Socket and its dependencies to their own files
PiperOrigin-RevId: 551330682
2023-07-26 15:21:46 -07:00
Thomas Van Lenten 7e1f286d93 Don't compile utils.mm twice.
PiperOrigin-RevId: 551315072
2023-07-26 14:25:24 -07:00
Nick Bourdakos de3f638129 Extract BLE code into its own target
PiperOrigin-RevId: 551074383
2023-07-25 20:23:59 -07:00
Guogang Li 99c5e19f3f internal update
PiperOrigin-RevId: 550729573
2023-07-24 18:15:44 -07:00
Janusz Sobczak 225eab6505 Fix race condition in BluetoothSocket
The change is for tests only.

PiperOrigin-RevId: 550023162
2023-07-21 12:42:59 -07:00
Crisrael Lucero 0e44ed626d Refactor crypto/ directory into crypto_cros/ and crypto/
PiperOrigin-RevId: 549467911
2023-07-19 17:12:52 -07:00
Guogang Li e5fdddec6d internal update
PiperOrigin-RevId: 549461047
2023-07-19 16:43:10 -07:00
Nick Bourdakos 0f8e5283a4 Add GATT server
PiperOrigin-RevId: 549080231
2023-07-18 12:37:23 -07:00
Nick Bourdakos 96348b6ba7 Add BLE conversion utils
PiperOrigin-RevId: 547958170
2023-07-13 16:20:04 -07:00
Nick Bourdakos e0b2e176c8 Add Objective-C GATT characteristic container.
PiperOrigin-RevId: 547954006
2023-07-13 16:05:18 -07:00
Guogang Li b113f5550d Workaround for "backward reference detected" issue
PiperOrigin-RevId: 547646854
2023-07-12 17:34:04 -07:00
Guogang Li 4a71c4d2d0 Move NS implementation to third party folder
PiperOrigin-RevId: 546966492
2023-07-10 13:39:42 -07:00
Janusz Sobczak 522ac8c13e Fix threading issues in tests
The changes make thread sanitizer happy.

PiperOrigin-RevId: 546960147
2023-07-10 13:17:12 -07:00
Janusz Sobczak ca9bbd3a9c Fix several race conditions
The fixes are specific to unit test environment.

PiperOrigin-RevId: 546342096
2023-07-07 11:53:50 -07:00
Guogang Li 92a1510158 Fixed an upgrade issue
PiperOrigin-RevId: 544778015
2023-06-30 16:44:04 -07:00
Qin Wang 22c3a07677 Migrate DataManager to third_party/nearby/internal
PiperOrigin-RevId: 544395891
2023-06-29 10:31:07 -07:00
Qin Wang d55caf0c4b Enable ble_medium scanning for advertisement with Fast Pair Service UUID
PiperOrigin-RevId: 544158039
2023-06-28 14:17:36 -07:00
hai007 ac0af7b048 Fix g3 platform timer implementation.
PiperOrigin-RevId: 542931629
2023-06-23 12:41:41 -07:00
hai007 80ddcbe0fc Fix a crash when reading file on Windows platform.
Suspect the file was corrupted when sending to receiver side. Check if it is good first, then peek. By this way, the crash maybe avoid. For further protection, add exception protection here.

PiperOrigin-RevId: 542884209
2023-06-23 09:46:59 -07:00
Guogang Li 72af220dae Wait for all tasks completed in thread pool
PiperOrigin-RevId: 542866176
2023-06-23 08:30:37 -07:00
Guogang Li bd30b11401 Fixed crash when stopping advertising
PiperOrigin-RevId: 542580849
2023-06-22 09:23:00 -07:00
Aaron Yu 7eca4d74c6 Fix __FrameHandler3::CxxCallCatchBlock crashes at Nearby Connections layer
PiperOrigin-RevId: 542085514
2023-06-20 16:43:14 -07:00
Nick Bourdakos 12f9512a19 Use IOS_LATEST for the test runner to prevent Xcode 14.3 issues
PiperOrigin-RevId: 541053739
2023-06-16 17:37:39 -07:00
Janusz Sobczak e46b19c798 Use the MAC address as peripheral name
We use BlePeirpheral::GetName()` as a mac address.

PiperOrigin-RevId: 541010558
2023-06-16 14:54:42 -07:00
Guogang Li 839dd086fd Fixed crash when initializing Bluetooth watcher
PiperOrigin-RevId: 540650297
2023-06-15 12:02:49 -07:00
Guogang Li 0c1d5e7e23 Applied flags to Wi-Fi Hotspot parameters
PiperOrigin-RevId: 540432082
2023-06-14 18:00:52 -07:00
Guogang Li 5ae556499b Fixed the deadlock issue in hotspot
PiperOrigin-RevId: 540283852
2023-06-14 08:52:59 -07:00
hai007 00ab9fef62 Load the AccountManager in the WebRTC code.
PiperOrigin-RevId: 540036925
2023-06-13 12:20:28 -07:00
Janusz Sobczak ca60afa007 Add robust gatt client
PiperOrigin-RevId: 539817203
2023-06-12 18:29:59 -07:00
Guogang Li ae900f0baf Added flag to enable GATT on non-extended device
PiperOrigin-RevId: 538851144
2023-06-08 11:56:24 -07:00
Guogang Li df31f7810c Added flag to control GATT enable/disable
PiperOrigin-RevId: 538631107
2023-06-07 17:05:16 -07:00
Nick Bourdakos 8fc0d93ce1 Fix potential deadlock by running timer callback in another thread
PiperOrigin-RevId: 538469916
2023-06-07 06:37:21 -07:00
Guogang Li 8e280832bf Added timeout to discover GATT and BT service
PiperOrigin-RevId: 538352588
2023-06-06 19:07:10 -07:00
Janusz Sobczak 903071e001 Improve BLE peripheral lifecycle
Keep all discovered and explicitly created BLE peripherals in the same
collection.
The peripherals are removed when they haven't been used for a while.

PiperOrigin-RevId: 538349622
2023-06-06 18:44:44 -07:00