NetlinkHandler.cpp revision 3c2e611a921029a81dd7ff9c6d505b0b5e740014
1fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber/*
2fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber * Copyright (C) 2008 The Android Open Source Project
3fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber *
4fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
5fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber * you may not use this file except in compliance with the License.
6fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber * You may obtain a copy of the License at
7fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber *
8fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
9fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber *
10fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber * Unless required by applicable law or agreed to in writing, software
11fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
12fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber * See the License for the specific language governing permissions and
14fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber * limitations under the License.
15fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber */
16fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber
17fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber#include <stdio.h>
18fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber#include <stdlib.h>
19fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber#include <errno.h>
20fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber
21fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber#define LOG_TAG "Netd"
22fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber
23fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber#include <cutils/log.h>
24fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber
25fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber#include <sysutils/NetlinkEvent.h>
26fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber#include "NetlinkHandler.h"
27fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber
28fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas HuberNetlinkHandler::NetlinkHandler(int listenerSocket) :
29fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber                NetlinkListener(listenerSocket) {
30fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber}
31fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber
32fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas HuberNetlinkHandler::~NetlinkHandler() {
33fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber}
34fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber
35fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huberint NetlinkHandler::start() {
36fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber    return this->startListener();
37fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber}
38fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber
39fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huberint NetlinkHandler::stop() {
40fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber    return this->stopListener();
41fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber}
42fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber
43fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Hubervoid NetlinkHandler::onEvent(NetlinkEvent *evt) {
44fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber    const char *subsys = evt->getSubsystem();
45fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber
46fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber    if (!subsys) {
47fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber        LOGW("No subsystem found in netlink event");
48fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber        return;
49fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber    }
50fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber
51fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber    if (!strcmp(subsys, "block")) {
52fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber    } else if (!strcmp(subsys, "switch")) {
53fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber    } else if (!strcmp(subsys, "battery")) {
54fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber    } else if (!strcmp(subsys, "power_supply")) {
55fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber    }
56fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber}
57fcea8f7a7d178e5426aa06586cff54726e18d1f6Andreas Huber