mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 11:05:54 +00:00
Add 'hostid' to server_info
* Add json::Value conversion from beast::String * Update rippled-example.cfg
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
Vinnie Falco's Change Log
|
||||
|
||||
2013/07/31
|
||||
|
||||
- Add "hostname" to server_info output
|
||||
- Replace "build_version" in server_info with the actual build version
|
||||
- Remove "client_version" from server_info
|
||||
|
||||
2013/07/30
|
||||
|
||||
- Add FatalErrorReporter to main
|
||||
|
||||
@@ -107,39 +107,6 @@ struct BuildInfo
|
||||
|
||||
/** The oldest protocol version we will accept. */
|
||||
static Protocol const& getMinimumProtocol ();
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
//
|
||||
// DEPRECATED STUFF
|
||||
//
|
||||
|
||||
/** Retrieve the build version number.
|
||||
|
||||
This is typically incremented when an official version is publshed
|
||||
with a list of changes.
|
||||
|
||||
Format is:
|
||||
|
||||
<major>.<minor>.<bugfix>
|
||||
*/
|
||||
static char const* getBuildVersion ()
|
||||
{
|
||||
return "0.0.1";
|
||||
}
|
||||
|
||||
/** Retrieve the client API version number.
|
||||
|
||||
The client API version is incremented whenever a new feature
|
||||
or breaking change is made to the websocket / RPC interface.
|
||||
|
||||
Format is:
|
||||
|
||||
<version-number>
|
||||
*/
|
||||
static char const* getClientVersion ()
|
||||
{
|
||||
return "1";
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1387,12 +1387,28 @@ Json::Value NetworkOPs::getConsensusInfo ()
|
||||
return info;
|
||||
}
|
||||
|
||||
|
||||
Json::Value NetworkOPs::getServerInfo (bool human, bool admin)
|
||||
{
|
||||
Json::Value info = Json::objectValue;
|
||||
|
||||
info ["build_version"] = BuildInfo::getBuildVersion ();
|
||||
info ["client_version"] = BuildInfo::getClientVersion ();
|
||||
// hostid: unique string describing the machine
|
||||
if (human)
|
||||
{
|
||||
if (! admin)
|
||||
{
|
||||
// For a non admin connection, hash the node ID into a single RFC1751 word
|
||||
Blob const& addr (getApp().getLocalCredentials ().getNodePublic ().getNodePublic ());
|
||||
info ["hostid"] = RFC1751::getWordFromBlob (addr.data (), addr.size ());
|
||||
}
|
||||
else
|
||||
{
|
||||
// Only admins get the hostname for security reasons
|
||||
info ["hostid"] = SystemStats::getComputerName();
|
||||
}
|
||||
}
|
||||
|
||||
info ["build_version"] = BuildInfo::getVersionString ();
|
||||
|
||||
if (getConfig ().TESTNET)
|
||||
info["testnet"] = getConfig ().TESTNET;
|
||||
|
||||
@@ -470,4 +470,12 @@ void RFC1751::getEnglishFromKey (std::string& strHuman, const std::string& strKe
|
||||
strHuman = strFirst + " " + strSecond;
|
||||
}
|
||||
|
||||
// vim:ts=4
|
||||
String RFC1751::getWordFromBlob (void const* data, size_t bytes)
|
||||
{
|
||||
uint32 hash;
|
||||
|
||||
Murmur::Hash (data, bytes, 0, &hash);
|
||||
|
||||
return s_dictionary [hash % (sizeof (s_dictionary) / sizeof (s_dictionary [0]))];
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,15 @@ public:
|
||||
|
||||
static void getEnglishFromKey (std::string& strHuman, const std::string& strKey);
|
||||
|
||||
/** Chooses a single dictionary word from the data.
|
||||
|
||||
This is not particularly secure but it can be useful to provide
|
||||
a unique name for something given a GUID or fixed data. We use
|
||||
it to turn the pubkey_node into an easily remembered and identified
|
||||
4 character string.
|
||||
*/
|
||||
static String getWordFromBlob (void const* data, size_t bytes);
|
||||
|
||||
private:
|
||||
static unsigned long extract (char* s, int start, int length);
|
||||
static void btoe (std::string& strHuman, const std::string& strData);
|
||||
|
||||
@@ -33,6 +33,7 @@ namespace ripple
|
||||
#include "crypto/ripple_CBigNum.h"
|
||||
#include "crypto/ripple_Base58.h" // VFALCO TODO Can be moved to .cpp if we clean up setAlphabet stuff
|
||||
#include "crypto/ripple_Base58Data.h"
|
||||
#include "crypto/ripple_RFC1751.h"
|
||||
|
||||
#include "protocol/ripple_FieldNames.h"
|
||||
#include "protocol/ripple_HashPrefix.h"
|
||||
|
||||
@@ -377,6 +377,18 @@ Value::Value ( const std::string& value )
|
||||
value_.string_ = valueAllocator ()->duplicateStringValue ( value.c_str (),
|
||||
(unsigned int)value.length () );
|
||||
|
||||
}
|
||||
Value::Value (beast::String const& beastString)
|
||||
: type_ ( stringValue )
|
||||
, allocated_ ( true )
|
||||
, comments_ ( 0 )
|
||||
# ifdef JSON_VALUE_USE_INTERNAL_MAP
|
||||
, itemIsUsed_ ( 0 )
|
||||
#endif
|
||||
{
|
||||
value_.string_ = valueAllocator ()->duplicateStringValue ( beastString.toStdString ().c_str (),
|
||||
(unsigned int)beastString.length () );
|
||||
|
||||
}
|
||||
|
||||
Value::Value ( const StaticString& value )
|
||||
|
||||
@@ -193,6 +193,7 @@ public:
|
||||
*/
|
||||
Value ( const StaticString& value );
|
||||
Value ( const std::string& value );
|
||||
Value (beast::String const& beastString);
|
||||
# ifdef JSON_USE_CPPTL
|
||||
Value ( const CppTL::ConstString& value );
|
||||
# endif
|
||||
|
||||
@@ -108,6 +108,8 @@
|
||||
#
|
||||
# [rpc_admin_allow]
|
||||
# Specify an list of IP addresses allowed to have admin access. One per line.
|
||||
# If you want to test the output of non-admin commands add this section and
|
||||
# just put an ip address not under your control.
|
||||
#
|
||||
# Defaults to 127.0.0.1.
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user