options.h

Go to the documentation of this file.
00001 /*
00002  *  anytun
00003  *
00004  *  The secure anycast tunneling protocol (satp) defines a protocol used
00005  *  for communication between any combination of unicast and anycast
00006  *  tunnel endpoints.  It has less protocol overhead than IPSec in Tunnel
00007  *  mode and allows tunneling of every ETHER TYPE protocol (e.g.
00008  *  ethernet, ip, arp ...). satp directly includes cryptography and
00009  *  message authentication based on the methodes used by SRTP.  It is
00010  *  intended to deliver a generic, scaleable and secure solution for
00011  *  tunneling and relaying of packets of any protocol.
00012  *
00013  *
00014  *  Copyright (C) 2007 anytun.org <satp@wirdorange.org>
00015  *
00016  *  This program is free software; you can redistribute it and/or modify
00017  *  it under the terms of the GNU General Public License version 2
00018  *  as published by the Free Software Foundation.
00019  *
00020  *  This program is distributed in the hope that it will be useful,
00021  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023  *  GNU General Public License for more details.
00024  *
00025  *  You should have received a copy of the GNU General Public License
00026  *  along with this program (see the file COPYING included with this
00027  *  distribution); if not, write to the Free Software Foundation, Inc.,
00028  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00029  */
00030 
00031 #ifndef _OPTIONS_H_
00032 #define _OPTIONS_H_
00033 
00034 #include "threadUtils.hpp"
00035 
00036 class Options
00037 {
00038 public:
00039   Options();
00040   bool parse(int argc, char* argv[]);
00041   void printUsage();
00042   void printOptions();
00043 
00044   std::string getProgname();
00045   Options& setProgname(std::string p);
00046   sender_id_t getSenderId();
00047   Options& setSenderId(sender_id_t s);
00048   std::string getLocalAddr();
00049   Options& setLocalAddr(std::string l);
00050   u_int16_t getLocalPort();
00051   Options& setLocalPort(u_int16_t l);
00052   std::string getRemoteAddr();
00053   Options& setRemoteAddr(std::string r);
00054   u_int16_t getRemotePort();
00055   Options& setRemotePort(u_int16_t r);
00056   Options& setRemoteAddrPort(std::string addr, u_int16_t port);
00057   std::string getDevName();
00058   Options& setDevName(std::string d);
00059   std::string getDevType();
00060   Options& setDevType(std::string d);
00061   std::string getIfconfigParamLocal();
00062   Options& setIfconfigParamLocal(std::string i);
00063   std::string getIfconfigParamRemoteNetmask();
00064   Options& setIfconfigParamRemoteNetmask(std::string i);
00065   window_size_t getSeqWindowSize();
00066   Options& setSeqWindowSize(window_size_t s);
00067   std::string getCypher();
00068   Options& setCypher(std::string c);
00069   std::string getAuthAlgo();
00070   Options& setAuthAlgo(std::string a);
00071 
00072 private:
00073   Mutex mutex;
00074 
00075   std::string progname_;
00076   sender_id_t sender_id_;
00077   std::string local_addr_;
00078   u_int16_t local_port_;
00079   std::string remote_addr_;
00080   u_int16_t remote_port_;
00081   std::string dev_name_;
00082   std::string dev_type_;
00083   std::string ifconfig_param_local_;
00084   std::string ifconfig_param_remote_netmask_;
00085   window_size_t seq_window_size_;
00086   std::string cypher_;
00087   std::string auth_algo_;
00088 };
00089 
00090 #endif

Generated on Sun Oct 7 23:43:49 2007 for anytun by  doxygen 1.5.1