From e6bfff58f29ba8c8dbcaf7dd896b7b6646f42032 Mon Sep 17 00:00:00 2001 From: me_desk Date: Sat, 23 Jun 2012 20:44:29 +0000 Subject: configurable port in NEWNODE; save entry to database on NEWNODE reveive git-svn-id: svn://localhost/project_picapica/trunk@131 fb96df88-216d-11de-830c-f3023f12d8ac --- PICA_node.c | 12 +++++++++--- PICA_nodejoinskynet.c | 3 ++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/PICA_node.c b/PICA_node.c index 5e273ed..9602380 100755 --- a/PICA_node.c +++ b/PICA_node.c @@ -449,6 +449,7 @@ return 1; unsigned int procmsg_NEWNODE(unsigned char* buf,unsigned int size,void* ptr) { struct nodelink *n=(struct nodelink *)ptr; +struct PICA_nodeaddr na; switch (buf[0]) { @@ -456,10 +457,14 @@ switch (buf[0]) printf("NEWNODE_IPV4: ip %.16s port %hu\n",inet_ntoa(*(struct in_addr*)(buf+2)),ntohs(*(uint16_t*)(buf+6)));//debug { struct PICA_nodeaddr_ipv4 na_ipv4; - + na_ipv4.magick=PICA_PROTO_NEWNODE_IPV4; na_ipv4.addr=*(in_addr_t*)(buf+2); na_ipv4.port=*(in_port_t*)(buf+6); + + sprintf(na.addr,"%.16s",inet_ntoa(*(struct in_addr*)&na_ipv4.addr)); + na.port = na_ipv4.port; + //int nodelink_attach_nodeaddr(struct nodelink *nl, unsigned int addr_type, void* nodeaddr, unsigned int nodeaddr_size) nodelink_attach_nodeaddr(n,na_ipv4.magick,&na_ipv4,sizeof(struct PICA_nodeaddr_ipv4)); } @@ -472,7 +477,7 @@ switch (buf[0]) break; } - +PICA_nodeaddr_save(nodecfg.nodes_db_file, &na);//CONF filename return 1; } @@ -1847,7 +1852,8 @@ while(nl) if (ret<=0) { - perror("n2n_read recv:");//debug + if (ret < 0) + perror("n2n_read recv:");//debug kill_ptr=nl; } else diff --git a/PICA_nodejoinskynet.c b/PICA_nodejoinskynet.c index ccba409..dad8411 100644 --- a/PICA_nodejoinskynet.c +++ b/PICA_nodejoinskynet.c @@ -4,6 +4,7 @@ #include "PICA_proto.h" #include "PICA_msgproc.h" #include "PICA_common.h" +#include "PICA_nodeconfig.h" #include #include @@ -134,7 +135,7 @@ return 0; struct PICA_proto_msg *mp; mp=nodelink_wbuf_push(nlp,PICA_PROTO_NEWNODE_IPV4,PICA_PROTO_NEWNODE_IPV4_SIZE); *((in_addr_t*)(mp->tail))=inet_addr(my_addr);//CONF TEMP -*((uint16_t*)(mp->tail+4))=htons(PICA_COMM_PORT); +*((uint16_t*)(mp->tail+4))=(nodecfg.listen_port ? htons(atoi(nodecfg.listen_port)) : htons(PICA_COMM_PORT));//CONF; } static void send_nodelistreq(struct nodelink *nlp) -- cgit v1.2.1