OSDN Git Service

Revert "Launch android-clat via netd"
authorJP Abgrall <jpa@google.com>
Wed, 14 Nov 2012 17:58:08 +0000 (09:58 -0800)
committerJP Abgrall <jpa@google.com>
Wed, 14 Nov 2012 17:58:08 +0000 (09:58 -0800)
This reverts commit 72d85556ec238f537de412ac69bbf43342e02d0c.

AOSP has caught up. Original author has prepared an updated version
of this.

Android.mk
ClatdController.cpp [deleted file]
ClatdController.h [deleted file]
CommandListener.cpp
CommandListener.h
ResponseCode.h

index 0ccc1b4..8b7acf0 100644 (file)
@@ -22,7 +22,6 @@ LOCAL_SRC_FILES:=                                      \
                   TetherController.cpp                 \
                   ThrottleController.cpp               \
                   oem_iptables_hook.cpp                \
-                  ClatdController.cpp                  \
                   logwrapper.c                         \
                   main.cpp                             \
 
diff --git a/ClatdController.cpp b/ClatdController.cpp
deleted file mode 100644 (file)
index 8201ab4..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#include <errno.h>
-#include <unistd.h>
-
-#include <sys/types.h>
-#include <sys/wait.h>
-
-#define LOG_TAG "ClatdController"
-#include <cutils/log.h>
-
-#include "ClatdController.h"
-
-ClatdController::ClatdController() {
-    mClatdPid = 0;
-}
-
-ClatdController::~ClatdController() {
-}
-
-int ClatdController::startClatd(char *interface) {
-    pid_t pid;
-
-    if(mClatdPid != 0) {
-        ALOGE("clatd already running");
-        errno = EBUSY;
-        return -1;
-    }
-
-    ALOGD("starting clatd");
-
-    if ((pid = fork()) < 0) {
-        ALOGE("fork failed (%s)", strerror(errno));
-        return -1;
-    }
-
-    if (!pid) {
-        char **args = (char **)malloc(sizeof(char *) * 4);
-        args[0] = (char *)"/system/bin/clatd";
-        args[1] = (char *)"-i";
-        args[2] = interface;
-        args[3] = NULL;
-
-        if (execv(args[0], args)) {
-            ALOGE("execv failed (%s)", strerror(errno));
-        }
-        ALOGE("Should never get here!");
-        free(args);
-        _exit(0);
-    } else {
-        mClatdPid = pid;
-        ALOGD("clatd started");
-    }
-
-    return 0;
-}
-
-int ClatdController::stopClatd() {
-    if (mClatdPid == 0) {
-        ALOGE("clatd already not running");
-        return -1;
-    }
-
-    ALOGD("Stopping clatd");
-
-    kill(mClatdPid, SIGTERM);
-    waitpid(mClatdPid, NULL, 0);
-    mClatdPid = 0;
-
-    ALOGD("clatd stopped");
-
-    return 0;
-}
-
-bool ClatdController::isClatdRunning() {
-    pid_t waitpid_status;
-    if(mClatdPid == 0) {
-        return false;
-    }
-    waitpid_status = waitpid(mClatdPid, NULL, WNOHANG);
-    if(waitpid_status != 0) {
-        // child exited or stopped, don't call waitpid on it again
-        mClatdPid = 0;
-    }
-    return waitpid_status == 0; // 0 while child is running
-}
diff --git a/ClatdController.h b/ClatdController.h
deleted file mode 100644 (file)
index 2674555..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _CLATD_CONTROLLER_H
-#define _CLATD_CONTROLLER_H
-
-class ClatdController {
-    pid_t mClatdPid;
-
-public:
-    ClatdController();
-    virtual ~ClatdController();
-
-    int startClatd(char *interface);
-    int stopClatd();
-    bool isClatdRunning();
-};
-
-#endif
index 7432536..7b82682 100644 (file)
@@ -53,7 +53,6 @@ InterfaceController *CommandListener::sInterfaceCtrl = NULL;
 ResolverController *CommandListener::sResolverCtrl = NULL;
 SecondaryTableController *CommandListener::sSecondaryTableCtrl = NULL;
 FirewallController *CommandListener::sFirewallCtrl = NULL;
-ClatdController *CommandListener::sClatdCtrl = NULL;
 
 /**
  * List of module chains to be created, along with explicit ordering. ORDERING
@@ -137,7 +136,6 @@ CommandListener::CommandListener() :
     registerCmd(new IdletimerControlCmd());
     registerCmd(new ResolverCmd());
     registerCmd(new FirewallCmd());
-    registerCmd(new ClatdCmd());
 
     if (!sSecondaryTableCtrl)
         sSecondaryTableCtrl = new SecondaryTableController();
@@ -159,8 +157,6 @@ CommandListener::CommandListener() :
         sFirewallCtrl = new FirewallController();
     if (!sInterfaceCtrl)
         sInterfaceCtrl = new InterfaceController();
-    if (!sClatdCtrl)
-        sClatdCtrl = new ClatdController();
 
     /*
      * This is the only time we touch top-level chains in iptables; controllers
@@ -1443,43 +1439,3 @@ int CommandListener::FirewallCmd::runCommand(SocketClient *cli, int argc,
     cli->sendMsg(ResponseCode::CommandSyntaxError, "Unknown command", false);
     return 0;
 }
-
-CommandListener::ClatdCmd::ClatdCmd() : NetdCommand("clatd") {
-}
-
-int CommandListener::ClatdCmd::runCommand(SocketClient *cli, int argc, char **argv) {
-    int rc = 0;
-    if (argc < 2) {
-        cli->sendMsg(ResponseCode::CommandSyntaxError, "Missing argument", false);
-        return 0;
-    }
-
-    if(!strcmp(argv[1], "stop")) {
-        rc = sClatdCtrl->stopClatd();
-    } else if (!strcmp(argv[1], "status")) {
-        char *tmp = NULL;
-
-        asprintf(&tmp, "Clatd status: %s", (sClatdCtrl->isClatdRunning() ?
-                                                        "running" : "stopped"));
-        cli->sendMsg(ResponseCode::ClatdStatusResult, tmp, false);
-        free(tmp);
-        return 0;
-    } else if(!strcmp(argv[1], "start")) {
-        if (argc < 3) {
-            cli->sendMsg(ResponseCode::CommandSyntaxError, "Usage: clatd start <interface>", false);
-            return 0;
-        }
-        rc = sClatdCtrl->startClatd(argv[2]);
-    } else {
-        cli->sendMsg(ResponseCode::CommandSyntaxError, "Unknown clatd cmd", false);
-        return 0;
-    }
-
-    if (!rc) {
-        cli->sendMsg(ResponseCode::CommandOkay, "Clatd operation succeeded", false);
-    } else {
-        cli->sendMsg(ResponseCode::OperationFailed, "Clatd operation failed", false);
-    }
-
-    return 0;
-}
index e8d92a8..6cae13e 100644 (file)
@@ -30,7 +30,6 @@
 #include "ResolverController.h"
 #include "SecondaryTableController.h"
 #include "FirewallController.h"
-#include "ClatdController.h"
 
 class CommandListener : public FrameworkListener {
     static TetherController *sTetherCtrl;
@@ -43,7 +42,6 @@ class CommandListener : public FrameworkListener {
     static ResolverController *sResolverCtrl;
     static SecondaryTableController *sSecondaryTableCtrl;
     static FirewallController *sFirewallCtrl;
-    static ClatdController *sClatdCtrl;
 
 public:
     CommandListener();
@@ -138,13 +136,6 @@ private:
         int sendGenericOkFail(SocketClient *cli, int cond);
         static FirewallRule parseRule(const char* arg);
     };
-
-    class ClatdCmd : public NetdCommand {
-    public:
-        ClatdCmd();
-        virtual ~ClatdCmd() {}
-        int runCommand(SocketClient *c, int argc, char ** argv);
-    };
 };
 
 #endif
index 7689ef8..c6f5c2d 100644 (file)
@@ -44,7 +44,6 @@ public:
     static const int QuotaCounterResult        = 220;
     static const int TetheringStatsResult      = 221;
     static const int DnsProxyQueryResult       = 222;
-    static const int ClatdStatusResult         = 223;
 
     // 400 series - The command was accepted but the requested action
     // did not take place.