Changeset View
Changeset View
Standalone View
Standalone View
src/httprpc.cpp
Show All 27 Lines | |||||
static const int64_t RPC_AUTH_BRUTE_FORCE_DELAY = 250; | static const int64_t RPC_AUTH_BRUTE_FORCE_DELAY = 250; | ||||
/** | /** | ||||
* Simple one-shot callback timer to be used by the RPC mechanism to e.g. | * Simple one-shot callback timer to be used by the RPC mechanism to e.g. | ||||
* re-lock the wallet. | * re-lock the wallet. | ||||
*/ | */ | ||||
class HTTPRPCTimer : public RPCTimerBase { | class HTTPRPCTimer : public RPCTimerBase { | ||||
public: | public: | ||||
HTTPRPCTimer(struct event_base *eventBase, std::function<void(void)> &func, | HTTPRPCTimer(struct event_base *eventBase, std::function<void()> &func, | ||||
int64_t millis) | int64_t millis) | ||||
: ev(eventBase, false, func) { | : ev(eventBase, false, func) { | ||||
struct timeval tv; | struct timeval tv; | ||||
tv.tv_sec = millis / 1000; | tv.tv_sec = millis / 1000; | ||||
tv.tv_usec = (millis % 1000) * 1000; | tv.tv_usec = (millis % 1000) * 1000; | ||||
ev.trigger(&tv); | ev.trigger(&tv); | ||||
} | } | ||||
private: | private: | ||||
HTTPEvent ev; | HTTPEvent ev; | ||||
}; | }; | ||||
class HTTPRPCTimerInterface : public RPCTimerInterface { | class HTTPRPCTimerInterface : public RPCTimerInterface { | ||||
public: | public: | ||||
explicit HTTPRPCTimerInterface(struct event_base *_base) : base(_base) {} | explicit HTTPRPCTimerInterface(struct event_base *_base) : base(_base) {} | ||||
const char *Name() override { return "HTTP"; } | const char *Name() override { return "HTTP"; } | ||||
RPCTimerBase *NewTimer(std::function<void(void)> &func, | RPCTimerBase *NewTimer(std::function<void()> &func, | ||||
int64_t millis) override { | int64_t millis) override { | ||||
return new HTTPRPCTimer(base, func, millis); | return new HTTPRPCTimer(base, func, millis); | ||||
} | } | ||||
private: | private: | ||||
struct event_base *base; | struct event_base *base; | ||||
}; | }; | ||||
▲ Show 20 Lines • Show All 353 Lines • Show Last 20 Lines |