// 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/usb_subsystem_udev_rule.h"

#include <libudev.h>
#include <string.h>

#include <string>

using std::string;

namespace permission_broker {

UsbSubsystemUdevRule::UsbSubsystemUdevRule(const string& name) : Rule(name) {
}

Rule::Result UsbSubsystemUdevRule::ProcessDevice(struct udev_device* device) {
  const char* const subsystem = udev_device_get_subsystem(device);
  if (!subsystem || strcmp(subsystem, "usb"))
    return IGNORE;
  return ProcessUsbDevice(device);
}

}  // namespace permission_broker
