mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-01-16 01:47:17 -05:00
fixed a few bugs in new TorManager
This commit is contained in:
parent
a757419d65
commit
7c77cfd603
@ -82,7 +82,7 @@ bool CryptoKey::loadFromFile(const std::string& path)
|
|||||||
ByteArray data ;
|
ByteArray data ;
|
||||||
int c;
|
int c;
|
||||||
while(EOF != (c=fgetc(file)))
|
while(EOF != (c=fgetc(file)))
|
||||||
data.append((unsigned char)c);
|
data.push_back((unsigned char)c);
|
||||||
|
|
||||||
fclose(file);
|
fclose(file);
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ ByteArray GetConfCommand::build(const std::list<std::string> &keys)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for(const ByteArray &key: keys) {
|
for(const ByteArray &key: keys) {
|
||||||
out.append(' ');
|
out.push_back(' ');
|
||||||
out.append(key);
|
out.append(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ ByteArray quotedString(const ByteArray &string)
|
|||||||
ByteArray out;
|
ByteArray out;
|
||||||
out.reserve(string.size() * 2);
|
out.reserve(string.size() * 2);
|
||||||
|
|
||||||
out.append('"');
|
out.push_back('"');
|
||||||
|
|
||||||
for (uint i = 0; i < string.size(); ++i)
|
for (uint i = 0; i < string.size(); ++i)
|
||||||
{
|
{
|
||||||
@ -50,12 +50,12 @@ ByteArray quotedString(const ByteArray &string)
|
|||||||
out.append("\\\\");
|
out.append("\\\\");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
out.append(string[i]);
|
out.push_back(string[i]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
out.append('"');
|
out.push_back('"');
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,12 +73,12 @@ ByteArray unquotedString(const ByteArray& string)
|
|||||||
{
|
{
|
||||||
case '\\':
|
case '\\':
|
||||||
if (++i < string.size())
|
if (++i < string.size())
|
||||||
out.append(string[i]);
|
out.push_back(string[i]);
|
||||||
break;
|
break;
|
||||||
case '"':
|
case '"':
|
||||||
return out;
|
return out;
|
||||||
default:
|
default:
|
||||||
out.append(string[i]);
|
out.push_back(string[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,13 +168,14 @@ bool TorManager::setupHiddenService()
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::cerr << "Using legacy dir: " << legacyDir << std::endl;
|
std::cerr << "Using legacy dir: " << legacyDir << std::endl;
|
||||||
|
auto key_path = RsDirUtil::makePath(legacyDir,"/private_key");
|
||||||
|
|
||||||
if (!legacyDir.empty() && RsDirUtil::fileExists(RsDirUtil::makePath(legacyDir,"/private_key")))
|
if (!legacyDir.empty() && RsDirUtil::fileExists(key_path))
|
||||||
{
|
{
|
||||||
std::cerr << "Attempting to load key from legacy filesystem format in " << legacyDir << std::endl;
|
std::cerr << "Attempting to load key from legacy filesystem format from file \"" << key_path << "\"" << std::endl;
|
||||||
|
|
||||||
CryptoKey key;
|
CryptoKey key;
|
||||||
if (!key.loadFromFile(RsDirUtil::makePath(legacyDir , "/private_key")))
|
if (!key.loadFromFile(key_path))
|
||||||
{
|
{
|
||||||
RsWarn() << "Cannot load legacy format key from" << legacyDir << "for conversion";
|
RsWarn() << "Cannot load legacy format key from" << legacyDir << "for conversion";
|
||||||
return false;
|
return false;
|
||||||
|
@ -46,9 +46,10 @@ using namespace Tor;
|
|||||||
static const int INTERVAL_BETWEEN_CONTROL_PORT_READ_TRIES = 5; // try every 5 secs.
|
static const int INTERVAL_BETWEEN_CONTROL_PORT_READ_TRIES = 5; // try every 5 secs.
|
||||||
|
|
||||||
TorProcess::TorProcess(TorProcessClient *client)
|
TorProcess::TorProcess(TorProcessClient *client)
|
||||||
: m_client(client), mLastTryReadControlPort(0)
|
: m_client(client), mState(TorProcess::NotStarted), mControlPort(0), mLastTryReadControlPort(0)
|
||||||
{
|
{
|
||||||
mControlPortReadNbTries=0;
|
mControlPortReadNbTries=0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TorProcess::~TorProcess()
|
TorProcess::~TorProcess()
|
||||||
|
@ -32,6 +32,8 @@ public:
|
|||||||
void append(const ByteArray& b) { for(auto c:b) push_back(c); }
|
void append(const ByteArray& b) { for(auto c:b) push_back(c); }
|
||||||
void append(const char *b) { for(uint32_t n=0;b[n]!=0;++n) push_back(b[n]); }
|
void append(const char *b) { for(uint32_t n=0;b[n]!=0;++n) push_back(b[n]); }
|
||||||
|
|
||||||
|
template<class T> void append(const T) = delete;// Prevents any implicit when calling the preceding functions which actually causes real bugs.
|
||||||
|
|
||||||
ByteArray& operator+=(const ByteArray& b) { for(auto c:b) push_back(c); return *this; }
|
ByteArray& operator+=(const ByteArray& b) { for(auto c:b) push_back(c); return *this; }
|
||||||
ByteArray& operator+=(const char *b) { for(uint32_t n=0;b[n]!=0;++n) push_back(b[n]); return *this;}
|
ByteArray& operator+=(const char *b) { for(uint32_t n=0;b[n]!=0;++n) push_back(b[n]); return *this;}
|
||||||
|
|
||||||
|
@ -139,8 +139,12 @@ double RsRandom::random_f64()
|
|||||||
|
|
||||||
/*static*/ std::string RsRandom::printable(uint32_t length)
|
/*static*/ std::string RsRandom::printable(uint32_t length)
|
||||||
{
|
{
|
||||||
std::string ret(length, 0);
|
std::string res;
|
||||||
random_bytes(reinterpret_cast<uint8_t*>(&ret[0]), length);
|
RsTemporaryMemory mem(length);
|
||||||
for(uint32_t i=0; i<length; ++i) ret[i] = (ret[i] % 94) + 33;
|
random_bytes(mem,length);
|
||||||
return ret;
|
|
||||||
|
for(uint32_t i=0; i<length; ++i)
|
||||||
|
res += (char)(( ((int) ((uint8_t*)mem)[i]) % 94 ) + 33);
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user