aboutsummaryrefslogtreecommitdiff
path: root/src/rpcprotocol.cpp
diff options
context:
space:
mode:
authorDaniel Cousens <github@dcousens.com>2016-01-15 11:55:17 +1100
committerDaniel Cousens <github@dcousens.com>2016-01-21 08:36:55 +1100
commita0eaff8a1d18ebba33cdea4cd1efaddeb55519e7 (patch)
tree5f13a0b8968d60274d86c44b685c9c980f7a33ca /src/rpcprotocol.cpp
parentb92ea98503e64ea6ddc5c04b879e59b1755d5efc (diff)
move rpc* to rpc/
Diffstat (limited to 'src/rpcprotocol.cpp')
-rw-r--r--src/rpcprotocol.cpp127
1 files changed, 0 insertions, 127 deletions
diff --git a/src/rpcprotocol.cpp b/src/rpcprotocol.cpp
deleted file mode 100644
index b7605545d8..0000000000
--- a/src/rpcprotocol.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// Copyright (c) 2010 Satoshi Nakamoto
-// Copyright (c) 2009-2015 The Bitcoin Core developers
-// Distributed under the MIT software license, see the accompanying
-// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-
-#include "rpcprotocol.h"
-
-#include "random.h"
-#include "tinyformat.h"
-#include "util.h"
-#include "utilstrencodings.h"
-#include "utiltime.h"
-#include "version.h"
-
-#include <stdint.h>
-#include <fstream>
-
-using namespace std;
-
-/**
- * JSON-RPC protocol. Bitcoin speaks version 1.0 for maximum compatibility,
- * but uses JSON-RPC 1.1/2.0 standards for parts of the 1.0 standard that were
- * unspecified (HTTP errors and contents of 'error').
- *
- * 1.0 spec: http://json-rpc.org/wiki/specification
- * 1.2 spec: http://jsonrpc.org/historical/json-rpc-over-http.html
- */
-
-string JSONRPCRequest(const string& strMethod, const UniValue& params, const UniValue& id)
-{
- UniValue request(UniValue::VOBJ);
- request.push_back(Pair("method", strMethod));
- request.push_back(Pair("params", params));
- request.push_back(Pair("id", id));
- return request.write() + "\n";
-}
-
-UniValue JSONRPCReplyObj(const UniValue& result, const UniValue& error, const UniValue& id)
-{
- UniValue reply(UniValue::VOBJ);
- if (!error.isNull())
- reply.push_back(Pair("result", NullUniValue));
- else
- reply.push_back(Pair("result", result));
- reply.push_back(Pair("error", error));
- reply.push_back(Pair("id", id));
- return reply;
-}
-
-string JSONRPCReply(const UniValue& result, const UniValue& error, const UniValue& id)
-{
- UniValue reply = JSONRPCReplyObj(result, error, id);
- return reply.write() + "\n";
-}
-
-UniValue JSONRPCError(int code, const string& message)
-{
- UniValue error(UniValue::VOBJ);
- error.push_back(Pair("code", code));
- error.push_back(Pair("message", message));
- return error;
-}
-
-/** Username used when cookie authentication is in use (arbitrary, only for
- * recognizability in debugging/logging purposes)
- */
-static const std::string COOKIEAUTH_USER = "__cookie__";
-/** Default name for auth cookie file */
-static const std::string COOKIEAUTH_FILE = ".cookie";
-
-boost::filesystem::path GetAuthCookieFile()
-{
- boost::filesystem::path path(GetArg("-rpccookiefile", COOKIEAUTH_FILE));
- if (!path.is_complete()) path = GetDataDir() / path;
- return path;
-}
-
-bool GenerateAuthCookie(std::string *cookie_out)
-{
- unsigned char rand_pwd[32];
- GetRandBytes(rand_pwd, 32);
- std::string cookie = COOKIEAUTH_USER + ":" + EncodeBase64(&rand_pwd[0],32);
-
- /** the umask determines what permissions are used to create this file -
- * these are set to 077 in init.cpp unless overridden with -sysperms.
- */
- std::ofstream file;
- boost::filesystem::path filepath = GetAuthCookieFile();
- file.open(filepath.string().c_str());
- if (!file.is_open()) {
- LogPrintf("Unable to open cookie authentication file %s for writing\n", filepath.string());
- return false;
- }
- file << cookie;
- file.close();
- LogPrintf("Generated RPC authentication cookie %s\n", filepath.string());
-
- if (cookie_out)
- *cookie_out = cookie;
- return true;
-}
-
-bool GetAuthCookie(std::string *cookie_out)
-{
- std::ifstream file;
- std::string cookie;
- boost::filesystem::path filepath = GetAuthCookieFile();
- file.open(filepath.string().c_str());
- if (!file.is_open())
- return false;
- std::getline(file, cookie);
- file.close();
-
- if (cookie_out)
- *cookie_out = cookie;
- return true;
-}
-
-void DeleteAuthCookie()
-{
- try {
- boost::filesystem::remove(GetAuthCookieFile());
- } catch (const boost::filesystem::filesystem_error& e) {
- LogPrintf("%s: Unable to remove random auth cookie file: %s\n", __func__, e.what());
- }
-}
-