summaryrefslogtreecommitdiffstats
path: root/PICA_client.c
diff options
context:
space:
mode:
authorme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2012-09-29 15:09:20 +0000
committerme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2012-09-29 15:09:20 +0000
commit29a367041df5c041c066a2b1220b9667536ecc91 (patch)
tree0bb931f453e02dfe4142ee9df77eec9fccd5fc05 /PICA_client.c
parentb2883e24e7ad2b0853ebbc5b6e611695f9a5f2d5 (diff)
downloadpica-pica-29a367041df5c041c066a2b1220b9667536ecc91.tar.gz
pica-pica-29a367041df5c041c066a2b1220b9667536ecc91.zip
sending PINGREP from client, bugfix in sending PINGREQ from node
git-svn-id: svn://localhost/project_picapica/trunk@210 fb96df88-216d-11de-830c-f3023f12d8ac
Diffstat (limited to 'PICA_client.c')
-rwxr-xr-xPICA_client.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/PICA_client.c b/PICA_client.c
index 2675ae7..5456ae5 100755
--- a/PICA_client.c
+++ b/PICA_client.c
@@ -36,6 +36,7 @@ static unsigned int procmsg_FOUND(unsigned char*,unsigned int,void*);
static unsigned int procmsg_CLNODELIST(unsigned char*,unsigned int,void*);
static unsigned int procmsg_MSGUTF8(unsigned char*,unsigned int,void*);
static unsigned int procmsg_MSGOK(unsigned char*,unsigned int,void*);
+static unsigned int procmsg_PINGREQ(unsigned char*,unsigned int,void*);
static struct PICA_proto_msg* c2n_writebuf_push(struct PICA_conninfo *ci, unsigned int msgid, unsigned int size);
static struct PICA_proto_msg* c2c_writebuf_push(struct PICA_chaninfo *chn, unsigned int msgid, unsigned int size);
@@ -45,7 +46,8 @@ const struct PICA_msginfo c2n_messages[] = {
{PICA_PROTO_CONNREQINC, PICA_MSG_FIXED_SIZE, PICA_PROTO_CONNREQINC_SIZE, procmsg_CONNREQINC},
{PICA_PROTO_NOTFOUND, PICA_MSG_FIXED_SIZE, PICA_PROTO_NOTFOUND_SIZE, procmsg_NOTFOUND},
{PICA_PROTO_FOUND, PICA_MSG_FIXED_SIZE, PICA_PROTO_FOUND_SIZE, procmsg_FOUND},
- {PICA_PROTO_CLNODELIST, PICA_MSG_VAR_SIZE, PICA_MSG_VARSIZE_INT16, procmsg_CLNODELIST}
+ {PICA_PROTO_CLNODELIST, PICA_MSG_VAR_SIZE, PICA_MSG_VARSIZE_INT16, procmsg_CLNODELIST},
+ {PICA_PROTO_PINGREQ, PICA_MSG_FIXED_SIZE, PICA_PROTO_PINGREQ_SIZE, procmsg_PINGREQ}
};//---!!! PING!!!
const struct PICA_msginfo c2c_messages[] = {
@@ -543,6 +545,22 @@ callbacks.msgok_cb(chan -> peer_id);
return 1;
}
+unsigned int procmsg_PINGREQ(unsigned char* buf,unsigned int nb,void* p)
+{
+struct PICA_conninfo *ci=(struct PICA_conninfo *)p;
+struct PICA_proto_msg *mp;
+
+mp = c2n_writebuf_push(ci, PICA_PROTO_PINGREP, PICA_PROTO_PINGREP_SIZE);
+
+if (mp)
+ {
+ RAND_bytes(mp->tail, 2);
+ }
+else
+ return 0;
+
+return 1;
+}
#ifdef PICA_MULTITHREADED