create local destination through API

This commit is contained in:
orignal 2014-11-17 17:00:30 -05:00
parent 2988395b81
commit 72c0d8443a
2 changed files with 33 additions and 1 deletions

View File

@ -18,7 +18,7 @@ namespace api
void InitI2P (int argc, char* argv[]) void InitI2P (int argc, char* argv[])
{ {
i2p::util::filesystem::SetAppName (argv[0]); i2p::util::filesystem::SetAppName ("i2papi");
i2p::util::config::OptionParser(argc, argv); i2p::util::config::OptionParser(argc, argv);
i2p::context.Init (); i2p::context.Init ();
} }
@ -53,6 +53,32 @@ namespace api
StopLog (); StopLog ();
} }
i2p::client::ClientDestination * CreateLocalDestination (const i2p::data::PrivateKeys& keys)
{
auto localDestination = new i2p::client::ClientDestination (keys, true); // public
g_Destinations[localDestination->GetIdentHash ()] = localDestination;
localDestination->Start ();
return localDestination;
}
i2p::client::ClientDestination * CreateLocalDestination (i2p::data::SigningKeyType sigType)
{
auto localDestination = new i2p::client::ClientDestination (true, sigType); // public
g_Destinations[localDestination->GetIdentHash ()] = localDestination;
localDestination->Start ();
return localDestination;
}
void DestroyLocalDestination (i2p::client::ClientDestination * dest)
{
if (dest)
{
dest->Stop ();
g_Destinations.erase (dest->GetIdentHash ());
delete dest;
}
}
} }
} }

View File

@ -1,6 +1,8 @@
#ifndef API_H__ #ifndef API_H__
#define API_H__ #define API_H__
#include "Identity.h"
namespace i2p namespace i2p
{ {
namespace api namespace api
@ -8,6 +10,10 @@ namespace api
void InitI2P (int argc, char* argv[]); void InitI2P (int argc, char* argv[]);
void StartI2P (); void StartI2P ();
void StopI2P (); void StopI2P ();
i2p::client::ClientDestination * CreateLocalDestination (const i2p::data::PrivateKeys& keys);
i2p::client::ClientDestination * CreateLocalDestination (i2p::data::SigningKeyType sigType = i2p::data::SIGNING_KEY_TYPE_DSA_SHA1);
void DestoroyLocalDestination (i2p::client::ClientDestination * dest);
} }
} }