NatController.h revision fc97b82e02979f246d56a4bfd60e4aab8686d3f6
19ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat/* 29ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * Copyright (C) 2008 The Android Open Source Project 39ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * 49ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * Licensed under the Apache License, Version 2.0 (the "License"); 59ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * you may not use this file except in compliance with the License. 69ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * You may obtain a copy of the License at 79ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * 89ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * http://www.apache.org/licenses/LICENSE-2.0 99ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * 109ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * Unless required by applicable law or agreed to in writing, software 119ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * distributed under the License is distributed on an "AS IS" BASIS, 129ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * See the License for the specific language governing permissions and 149ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat * limitations under the License. 159ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat */ 169ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat 179ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat#ifndef _NAT_CONTROLLER_H 189ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat#define _NAT_CONTROLLER_H 199ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat 209ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat#include <linux/in.h> 219ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat 229ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat#include <utils/List.h> 239ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat 24fc97b82e02979f246d56a4bfd60e4aab8686d3f6Robert Greenwalt#include "SecondaryTableController.h" 25fc97b82e02979f246d56a4bfd60e4aab8686d3f6Robert Greenwalt 269ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehatclass NatController { 279ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat 289ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehatpublic: 29fc97b82e02979f246d56a4bfd60e4aab8686d3f6Robert Greenwalt NatController(SecondaryTableController *ctrl); 309ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat virtual ~NatController(); 319ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat 32fc97b82e02979f246d56a4bfd60e4aab8686d3f6Robert Greenwalt int enableNat(const int argc, char **argv); 33fc97b82e02979f246d56a4bfd60e4aab8686d3f6Robert Greenwalt int disableNat(const int argc, char **argv); 349ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat 359ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehatprivate: 361caafe66a6b927fa5d8eb4c59ec9eb48b0b1b075Robert Greenwalt int natCount; 37fc97b82e02979f246d56a4bfd60e4aab8686d3f6Robert Greenwalt SecondaryTableController *secondaryTableCtrl; 381caafe66a6b927fa5d8eb4c59ec9eb48b0b1b075Robert Greenwalt 399ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat int setDefaults(); 40fc97b82e02979f246d56a4bfd60e4aab8686d3f6Robert Greenwalt int runCmd(const char *path, const char *cmd); 41fc97b82e02979f246d56a4bfd60e4aab8686d3f6Robert Greenwalt bool checkInterface(const char *iface); 42fc97b82e02979f246d56a4bfd60e4aab8686d3f6Robert Greenwalt int setForwardRules(bool set, const char *intIface, const char *extIface); 439ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat}; 449ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat 459ff78fb7da7158f5bd7c86d89a842691820259cfSan Mehat#endif 46