From 633c9becd919d8d8ac73a80fd04d9de081b6eea1 Mon Sep 17 00:00:00 2001 From: Meeh Date: Fri, 31 Jan 2014 01:39:16 +0100 Subject: [PATCH] Adding more to the option parser. Adding instruction on how to test it. --- README.md | 30 ++++++++++++++++++++++++++++++ i2p.cpp | 5 ++++- util.cpp | 8 ++++---- util.h | 3 ++- 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ab64cb4d..32eec060 100644 --- a/README.md +++ b/README.md @@ -8,3 +8,33 @@ Requires gcc 4.6 and higher, boost 1.46 and higher, crypto++ on Windows Requires msvs2013, boost 1.46 and higher, crypto++ + + +Testing +------- + +First, build it. + +$ cd i2pd +$ make + +Now, copy your netDb folder from your Java I2P config dir. (The one with r0, r1, r2, ... folders in it) to the source folder where your i2p binary is. + +Next, find out your public ip. (find it for example at http://www.whatismyip.com/) + +Then, run it with: + +$ ./i2p --host=YOUR_PUBLIC_IP + + +Other options: +--port= - The port to listen on +--httpport= - The http port to listen on + + +To visit an I2P page, you need to find the b32 address of your destination. +After that, go to the webconsole and add it behind the url. (Remove http:// and b32.i2p from the address) + +This should resulting in for example: +http://localhost:7070/4oes3rlgrpbkmzv4lqcfili23h3cvpwslqcfjlk6vvguxyggspwa + diff --git a/i2p.cpp b/i2p.cpp index 67408fa6..5c0bd378 100644 --- a/i2p.cpp +++ b/i2p.cpp @@ -14,7 +14,7 @@ int main( int argc, char* argv[] ) { - i2p::util::ParseArguments(argc,argv); + i2p::util::OptionParser(argc,argv); #ifdef _WIN32 setlocale(LC_CTYPE, ""); SetConsoleCP(1251); @@ -22,6 +22,9 @@ int main( int argc, char* argv[] ) setlocale(LC_ALL, "Russian"); #endif + //TODO: This is an ugly workaround. fix it. + //TODO: Autodetect public IP. + i2p::context.OverrideNTCPAddress(i2p::util::GetCharArg("--host", "127.0.0.1"), i2p::util::GetIntArg("--port", 17070)); int httpport = i2p::util::GetIntArg("--httpport", 7070); i2p::util::HTTPServer httpServer (httpport); diff --git a/util.cpp b/util.cpp index 1f000f50..676fddd1 100644 --- a/util.cpp +++ b/util.cpp @@ -6,7 +6,7 @@ namespace util { std::map mapArgs; -void ParseArguments(int argc, const char* const argv[]) +void OptionParser(int argc, const char* const argv[]) { mapArgs.clear(); for (int i = 1; i < argc; i++) @@ -33,11 +33,11 @@ int GetIntArg(const std::string& strArg, int nDefault) return nDefault; } -std::string GetStringArg(const std::string& strArg, std::string nDefault) +const char* GetCharArg(const std::string& strArg, const std::string& nDefault) { if (mapArgs.count(strArg)) - return mapArgs[strArg]; - return nDefault; + return mapArgs[strArg].c_str(); + return nDefault.c_str(); } diff --git a/util.h b/util.h index ef015ded..fb3597e6 100644 --- a/util.h +++ b/util.h @@ -9,8 +9,9 @@ namespace i2p namespace util { extern std::map mapArgs; - void ParseArguments(int argc, const char* const argv[]); + void OptionParser(int argc, const char* const argv[]); int GetIntArg(const std::string& strArg, int nDefault); + const char* GetCharArg(const std::string& strArg, const std::string& nDefault); } }