Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4622)

Unified Diff: chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc

Issue 2750453002: Add DiscoveryNetworkMonitor implementation (Closed)
Patch Set: Temporarily fix Windows and Mac compilation Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc
diff --git a/chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc b/chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc
new file mode 100644
index 0000000000000000000000000000000000000000..f042bbe33f583352ca9655a22c91c517d14a7cbf
--- /dev/null
+++ b/chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc
@@ -0,0 +1,38 @@
+// Copyright (c) 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/media/router/discovery/discovery_network_list_wifi.h"
+
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+
+#include <linux/wireless.h>
+
+#include "base/files/scoped_file.h"
+#include "base/logging.h"
+#include "net/base/network_interfaces_linux.h"
+
+bool MaybeGetWifiSSID(const std::string& if_name, std::string* ssid_out) {
+ DCHECK(ssid_out);
+
+ base::ScopedFD ioctl_socket(socket(AF_INET, SOCK_DGRAM, 0));
+ if (!ioctl_socket.is_valid())
+ return false;
+ struct iwreq wreq = {};
+ strncpy(wreq.ifr_name, if_name.data(), IFNAMSIZ - 1);
+
+ char ssid[IW_ESSID_MAX_SIZE + 1] = {0};
+ wreq.u.essid.pointer = ssid;
+ wreq.u.essid.length = IW_ESSID_MAX_SIZE;
+ if (ioctl(ioctl_socket.get(), SIOCGIWESSID, &wreq) == -1) {
+ return false;
+ }
+ if (ssid[0] != 0) {
+ ssid_out->assign(ssid);
+ return true;
+ }
+ return false;
+}

Powered by Google App Engine
This is Rietveld 408576698