From d0c406dd7ac2e63f0370eaebef006574fa9bb8a2 Mon Sep 17 00:00:00 2001 From: kidfromjupiter Date: Sun, 1 Feb 2026 06:03:04 +0000 Subject: [PATCH] added BUILD for nearby sharing client and fixed Wifi DIrect issues. --- .../platform/implementation/linux/utils.cc | 2 +- .../implementation/linux/utils_test.cc | 2 +- .../implementation/linux/wifi_direct.cc | 1 + .../implementation/linux/wifi_hotspot.cc | 19 +++++ sharing/linux/BUILD | 80 ++++++++++--------- 5 files changed, 63 insertions(+), 41 deletions(-) diff --git a/internal/platform/implementation/linux/utils.cc b/internal/platform/implementation/linux/utils.cc index f882741b..f526a5da 100644 --- a/internal/platform/implementation/linux/utils.cc +++ b/internal/platform/implementation/linux/utils.cc @@ -86,7 +86,7 @@ std::string RandSSID() { "abcdefghijklmnopqrstuvwxyz" "0123456789"; - return absl::StrCat("DIRECT-", RandString(allowed_chars, 25)); + return absl::StrCat("DIRECT-", RandString(allowed_chars, 24)); } std::string RandWPAPassphrase() { diff --git a/internal/platform/implementation/linux/utils_test.cc b/internal/platform/implementation/linux/utils_test.cc index 9e8e6529..b0ce446e 100644 --- a/internal/platform/implementation/linux/utils_test.cc +++ b/internal/platform/implementation/linux/utils_test.cc @@ -43,7 +43,7 @@ TEST(UtilsTests, GenNewUuid) { TEST(UtilsTests, GenRandSSID) { std::string ssid = RandSSID(); - EXPECT_EQ(ssid.length(), 32); + EXPECT_EQ(ssid.length(), 31); EXPECT_EQ(ssid.find("DIRECT-"), 0); } diff --git a/internal/platform/implementation/linux/wifi_direct.cc b/internal/platform/implementation/linux/wifi_direct.cc index 712e45e0..7b15bcd2 100644 --- a/internal/platform/implementation/linux/wifi_direct.cc +++ b/internal/platform/implementation/linux/wifi_direct.cc @@ -121,6 +121,7 @@ bool NetworkManagerWifiDirectMedium::StartWifiDirect( wifi_direct_credentials->SetSSID(hotspot_creds.GetSSID()); wifi_direct_credentials->SetPassword(hotspot_creds.GetPassword()); + wifi_direct_credentials->SetFrequency(hotspot_creds.GetFrequency()); return true; } diff --git a/internal/platform/implementation/linux/wifi_hotspot.cc b/internal/platform/implementation/linux/wifi_hotspot.cc index 03c27dba..f06d4565 100644 --- a/internal/platform/implementation/linux/wifi_hotspot.cc +++ b/internal/platform/implementation/linux/wifi_hotspot.cc @@ -21,6 +21,7 @@ #include "internal/platform/implementation/linux/dbus.h" #include "internal/platform/implementation/linux/network_manager.h" +#include "internal/platform/implementation/linux/network_manager_access_point.h" #include "internal/platform/implementation/linux/utils.h" #include "internal/platform/implementation/linux/wifi_hotspot.h" #include "internal/platform/implementation/linux/wifi_hotspot_server_socket.h" @@ -199,6 +200,24 @@ bool NetworkManagerWifiHotspotMedium::StartWifiHotspot( return false; } + // Get the frequency of the active hotspot + try { + sdbus::ObjectPath active_ap_path = wireless_device_->ActiveAccessPoint(); + if (!active_ap_path.empty()) { + auto access_point = NetworkManagerAccessPoint(*system_bus_, active_ap_path); + uint32_t frequency = access_point.Frequency(); + hotspot_credentials->SetFrequency(static_cast(frequency)); + LOG(INFO) << __func__ << ": Hotspot frequency set to " << frequency + << " MHz"; + } else { + LOG(WARNING) << __func__ + << ": Could not get active access point to retrieve frequency"; + } + } catch (const sdbus::Error &e) { + LOG(WARNING) << __func__ << ": Could not retrieve hotspot frequency: " + << e.what(); + } + LOG(INFO) << __func__ << ": Started a WiFi hotspot on device " << wireless_device_->getObjectPath() << " at " << active_conn->getObjectPath(); diff --git a/sharing/linux/BUILD b/sharing/linux/BUILD index b5942abe..365c79e2 100644 --- a/sharing/linux/BUILD +++ b/sharing/linux/BUILD @@ -19,47 +19,47 @@ cc_library( srcs = [ "nearby_sharing_service_linux.cc", "//sharing:nearby_sharing_service.cc", + "//sharing:nearby_sharing_settings.cc", + "//sharing:thread_timer.cc", "//sharing:transfer_metadata.cc", "//sharing:transfer_metadata_builder.cc", - '//sharing/certificates:nearby_share_certificate_manager.cc', - '//sharing/certificates:nearby_share_decrypted_public_certificate.cc', - '//sharing/certificates:nearby_share_encrypted_metadata_key.cc', - '//sharing/certificates:nearby_share_private_certificate.cc', - '//sharing/local_device_data:nearby_share_local_device_data_manager.cc', - '//sharing:nearby_sharing_settings.cc', - '//sharing/analytics:analytics_recorder.cc', - '//sharing:thread_timer.cc', - '//sharing/certificates:common.cc', - '//sharing/common:nearby_share_prefs.cc', + "//sharing/analytics:analytics_recorder.cc", + "//sharing/certificates:common.cc", + "//sharing/certificates:nearby_share_certificate_manager.cc", + "//sharing/certificates:nearby_share_decrypted_public_certificate.cc", + "//sharing/certificates:nearby_share_encrypted_metadata_key.cc", + "//sharing/certificates:nearby_share_private_certificate.cc", + "//sharing/common:nearby_share_prefs.cc", + "//sharing/local_device_data:nearby_share_local_device_data_manager.cc", ], hdrs = [ "nearby_sharing_service_linux.h", + "//sharing:nearby_sharing_service.h", + "//sharing:nearby_sharing_settings.h", + "//sharing:share_target_discovered_callback.h", + "//sharing:thread_timer.h", "//sharing:transfer_metadata.h", "//sharing:transfer_metadata_builder.h", - '//sharing:nearby_sharing_service.h', - '//sharing/common:nearby_share_prefs.h', - '//sharing/certificates:nearby_share_certificate_manager.h', - '//sharing/certificates:nearby_share_decrypted_public_certificate.h', - '//sharing/certificates:nearby_share_encrypted_metadata_key.h', - '//sharing/certificates:nearby_share_private_certificate.h', - '//sharing/internal/api:private_certificate_data.h', - '//sharing/local_device_data:nearby_share_local_device_data_manager.h', - '//sharing:nearby_sharing_settings.h', - '//sharing/analytics:analytics_recorder.h', - '//sharing/analytics:analytics_device_settings.h', - '//sharing/analytics:analytics_information.h', - '//sharing/internal/api:preference_manager.h', - '//sharing/internal/public:context.h', - '//sharing/internal/public:pref_names.h', - '//sharing/internal/api:bluetooth_adapter.h', - '//sharing/internal/api:fast_initiation_manager.h', - '//sharing/internal/api:fast_init_ble_beacon.h', - '//sharing/internal/public:connectivity_manager.h', - '//sharing:thread_timer.h', - '//sharing:share_target_discovered_callback.h', - '//sharing:transfer_update_callback.h', - '//sharing/certificates:common.h', - '//sharing/certificates:constants.h', + "//sharing:transfer_update_callback.h", + "//sharing/analytics:analytics_device_settings.h", + "//sharing/analytics:analytics_information.h", + "//sharing/analytics:analytics_recorder.h", + "//sharing/certificates:common.h", + "//sharing/certificates:constants.h", + "//sharing/certificates:nearby_share_certificate_manager.h", + "//sharing/certificates:nearby_share_decrypted_public_certificate.h", + "//sharing/certificates:nearby_share_encrypted_metadata_key.h", + "//sharing/certificates:nearby_share_private_certificate.h", + "//sharing/common:nearby_share_prefs.h", + "//sharing/internal/api:bluetooth_adapter.h", + "//sharing/internal/api:fast_init_ble_beacon.h", + "//sharing/internal/api:fast_initiation_manager.h", + "//sharing/internal/api:preference_manager.h", + "//sharing/internal/api:private_certificate_data.h", + "//sharing/internal/public:connectivity_manager.h", + "//sharing/internal/public:context.h", + "//sharing/internal/public:pref_names.h", + "//sharing/local_device_data:nearby_share_local_device_data_manager.h", ], visibility = ["//visibility:public"], deps = [ @@ -69,10 +69,12 @@ cc_library( "//internal/platform:comm", "//internal/platform:types", "//internal/platform/implementation:platform", - "//internal/platform/implementation/linux:linux", + "//internal/platform/implementation/linux", + "//internal/platform/implementation/linux:crypto", "//sharing:attachments", "//sharing:types", "//sharing/proto:share_cc_proto", + "@boringssl//:crypto", "@com_google_absl//absl/strings", ], ) @@ -80,25 +82,25 @@ cc_library( cc_binary( name = "nearby_sharing_app", srcs = ["nearby_sharing_app.cc"], + visibility = ["//visibility:public"], deps = [ ":nearby_sharing_service_linux", + "//internal/platform:base", "//sharing:attachments", "//sharing:types", - "//internal/platform:base", "@com_google_absl//absl/strings", ], - visibility = ["//visibility:public"], ) cc_binary( name = "simple_example", srcs = ["simple_example.cc"], + visibility = ["//visibility:public"], deps = [ ":nearby_sharing_service_linux", + "//internal/platform:base", "//sharing:attachments", "//sharing:types", - "//internal/platform:base", "@com_google_absl//absl/strings", ], - visibility = ["//visibility:public"], )