blob: ecd3a51bd5debe37e22c2b1cf1e67ef793da0956 [file] [log] [blame]
// Copyright (c) 2012 The Chromium OS 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 "permission_broker/deny_usb_vendor_id_rule.h"
#include <libudev.h>
#include <string>
#include "base/stringprintf.h"
namespace permission_broker {
DenyUsbVendorIdRule::DenyUsbVendorIdRule(const uint16_t vendor_id)
: UsbSubsystemUdevRule("DenyUsbVendorIdRule"),
vendor_id_(StringPrintf("%.4x", vendor_id)) {}
DenyUsbVendorIdRule::~DenyUsbVendorIdRule() {}
Rule::Result DenyUsbVendorIdRule::ProcessUsbDevice(struct udev_device *device) {
const char *vendor_id = udev_device_get_sysattr_value(device, "idVendor");
if (vendor_id && (vendor_id_ == vendor_id))
return DENY;
return IGNORE;
} // namespace permission_broker