summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--PICA_client.h2
-rw-r--r--pica-client/skynet.cpp13
-rw-r--r--pica-client/skynet.h6
3 files changed, 14 insertions, 7 deletions
diff --git a/PICA_client.h b/PICA_client.h
index 2a83643..bf5073d 100644
--- a/PICA_client.h
+++ b/PICA_client.h
@@ -384,7 +384,7 @@ struct PICA_client_callbacks
void (*listener_error_cb)(struct PICA_listener *lst, int errorcode);
- void (*multilogin_cb)(time_t timestamp, void *addr_bin, const char *addr_str, uint16_t port);
+ void (*multilogin_cb)(uint64_t timestamp, void *addr_bin, const char *addr_str, uint16_t port);
};
diff --git a/pica-client/skynet.cpp b/pica-client/skynet.cpp
index 02be732..311e492 100644
--- a/pica-client/skynet.cpp
+++ b/pica-client/skynet.cpp
@@ -66,6 +66,7 @@ SkyNet::SkyNet()
this->listener = NULL;
connect(this, SIGNAL(PeerCertificateReceived(QByteArray, QString, bool*)), this, SLOT(verify_peer_cert(QByteArray, QString, bool*)), Qt::DirectConnection);
+ connect(this, SIGNAL(MultiloginMessageReceived(quint64,QString,quint16)), this, SLOT(multilogin_event(quint64,QString,quint16)), Qt::QueuedConnection);
event_loop_timer_id = startTimer(0);
@@ -186,10 +187,10 @@ void SkyNet::nodelink_failed(PICA_c2n *c2n, int error)
emit LostSelfAwareness();
}
-void SkyNet::multilogin_event(time_t timestamp, const char *addr, uint16_t port)
+void SkyNet::multilogin_event(quint64 timestamp, QString node_addr, quint16 node_port)
{
emit StatusMsg(QString("%3 Detected new login of your account at node %1:%2")
- .arg(addr).arg(port).arg(QDateTime::fromTime_t(timestamp).toString("yyyy-MM-dd hh:mm:ss")),
+ .arg(node_addr).arg(node_port).arg(QDateTime::fromTime_t(timestamp).toString("yyyy-MM-dd hh:mm:ss")),
true);
if (active_nodelink->multilogin_policy == PICA_MULTILOGIN_REPLACE)
@@ -845,6 +846,10 @@ void SkyNet::emit_c2cClosed(QByteArray peer_id)
emit c2cClosed(peer_id);
}
+void SkyNet::emit_MultiloginMessageReceived(quint64 timestamp, QString node_addr, quint16 node_port)
+{
+ emit MultiloginMessageReceived(timestamp, node_addr, node_port);
+}
//callbacks
@@ -1023,7 +1028,7 @@ void SkyNet::listener_error_cb(struct PICA_listener *lst, int errorcode)
}
-void SkyNet::multilogin_cb(time_t timestamp, void *addr_bin, const char *addr_str, uint16_t port)
+void SkyNet::multilogin_cb(uint64_t timestamp, void *addr_bin, const char *addr_str, uint16_t port)
{
- skynet->multilogin_event(timestamp, addr_str, port);
+ skynet->emit_MultiloginMessageReceived(timestamp, QString(addr_str), port);
}
diff --git a/pica-client/skynet.h b/pica-client/skynet.h
index 1c0c7d9..cb948e0 100644
--- a/pica-client/skynet.h
+++ b/pica-client/skynet.h
@@ -74,6 +74,7 @@ signals:
void OutgoingFileResumed(QByteArray peer_id);
void OutgoingFileFinished(QByteArray peer_id);
void IncomingFileFinished(QByteArray peer_id);
+ void MultiloginMessageReceived(quint64 timestamp, QString node_addr, quint16 node_port);
void c2cClosed(QByteArray peer_id);
@@ -120,6 +121,7 @@ private:
void emit_OutgoingFileFinished(QByteArray peer_id);
void emit_IncomingFileFinished(QByteArray peer_id);
+ void emit_MultiloginMessageReceived(quint64 timestamp, QString node_addr, quint16 node_port);
void emit_c2cClosed(QByteArray peer_id);
@@ -162,13 +164,13 @@ private:
static void listener_error_cb(struct PICA_listener *lst, int errorcode);
- static void multilogin_cb(time_t timestamp, void *addr_bin, const char *addr_str, uint16_t port);
+ static void multilogin_cb(uint64_t timestamp, void *addr_bin, const char *addr_str, uint16_t port);
private slots:
void nodelink_activated(PICA_c2n *c2n);
void nodelink_closed(PICA_c2n *c2n, int error);
void nodelink_failed(PICA_c2n *c2n, int error);
- void multilogin_event(time_t timestamp, const char *addr, uint16_t port);
+ void multilogin_event(quint64 timestamp, QString node_addr, quint16 node_port);
void node_status_changed(Nodes::NodeRecord nr, bool alive);
void verify_peer_cert(QByteArray peer_id, QString cert_pem, bool *verified);