From 387524e1c56c7d62d0ce33b8673182ec8f5a86f1 Mon Sep 17 00:00:00 2001 From: XMRig Date: Wed, 7 Jun 2017 07:34:14 +0300 Subject: [PATCH] Fix for error notification. --- src/net/Client.cpp | 9 +++++++-- src/net/Client.h | 2 +- src/net/Job.cpp | 1 - 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/net/Client.cpp b/src/net/Client.cpp index fbfe17f8..72f179c2 100644 --- a/src/net/Client.cpp +++ b/src/net/Client.cpp @@ -255,15 +255,20 @@ void Client::parse(char *line, size_t len) parseResponse(json_integer_value(id), json_object_get(val, "result"), json_object_get(val, "error")); } else { - parseNotification(json_string_value(json_object_get(val, "method")), json_object_get(val, "params")); + parseNotification(json_string_value(json_object_get(val, "method")), json_object_get(val, "params"), json_object_get(val, "error")); } json_decref(val); } -void Client::parseNotification(const char *method, const json_t *params) +void Client::parseNotification(const char *method, const json_t *params, const json_t *error) { + if (json_is_object(error)) { + LOG_ERR("[%s:%u] error: \"%s\", code: %lld", m_host, m_port, json_string_value(json_object_get(error, "message")), json_integer_value(json_object_get(error, "code"))); + return; + } + if (!method) { return; } diff --git a/src/net/Client.h b/src/net/Client.h index 7dbdf21f..62bb4196 100644 --- a/src/net/Client.h +++ b/src/net/Client.h @@ -74,7 +74,7 @@ private: void close(); void connect(struct sockaddr *addr); void parse(char *line, size_t len); - void parseNotification(const char *method, const json_t *params); + void parseNotification(const char *method, const json_t *params, const json_t *error); void parseResponse(int64_t id, const json_t *result, const json_t *error); void ping(); void reconnect(); diff --git a/src/net/Job.cpp b/src/net/Job.cpp index aeb46685..65feabb7 100644 --- a/src/net/Job.cpp +++ b/src/net/Job.cpp @@ -129,7 +129,6 @@ bool Job::setTarget(const char *target) return false; } - m_diff = toDiff(m_target); return true; }