diff --git a/iguana/exchanges/LP_commands.c b/iguana/exchanges/LP_commands.c index 9d17822e0..5e15a0cc5 100644 --- a/iguana/exchanges/LP_commands.c +++ b/iguana/exchanges/LP_commands.c @@ -233,22 +233,34 @@ jpg(srcfile, destfile, power2=7, password, data="", required, ind=0)\n\ } else if ( strcmp(method,"getendpoint") == 0 ) { + int32_t err,mode; retjson = cJSON_CreateObject(); if ( IPC_ENDPOINT >= 0 ) { jaddstr(retjson,"error","IPC endpoint already exists"); - jaddstr(retjson,"endpoint",LP_IPC_ENDPOINT); + jaddstr(retjson,"endpoint","ws://*:5555"); + jaddnum(retjson,"socket",IPC_ENDPOINT); } else { - if ( (IPC_ENDPOINT= nn_socket(AF_SP,NN_PUB)) >= 0 ) + if ( (IPC_ENDPOINT= nn_socket(AF_SP,NN_PAIR)) >= 0 ) { - if ( nn_bind(IPC_ENDPOINT,"tcp://*:7781") >= 0 ) + if ( (err= nn_bind(IPC_ENDPOINT,"ws://*:5555")) >= 0 ) { jaddstr(retjson,"result","success"); - jaddstr(retjson,"endpoint",LP_IPC_ENDPOINT); - } else jaddstr(retjson,"error","couldnt connect to IPC_ENDPOINT"); - } else jaddstr(retjson,"error","couldnt get NN_PUB socket"); + jaddstr(retjson,"endpoint","ws://127.0.0.1:5555"); + jaddnum(retjson,"socket",IPC_ENDPOINT); + mode = NN_WS_MSG_TYPE_TEXT; + err = nn_setsockopt(IPC_ENDPOINT,NN_SOL_SOCKET,NN_WS_MSG_TYPE,&mode,sizeof(mode)); + jaddnum(retjson,"sockopt",err); + } + else + { + jaddstr(retjson,"error",(char *)nn_strerror(nn_errno())); + jaddnum(retjson,"err",err); + jaddnum(retjson,"socket",IPC_ENDPOINT); + } + } else jaddstr(retjson,"error","couldnt get NN_PAIR socket"); } return(jprint(retjson,1)); } diff --git a/iguana/exchanges/LP_include.h b/iguana/exchanges/LP_include.h index ffadc8dd9..f5eba97a2 100644 --- a/iguana/exchanges/LP_include.h +++ b/iguana/exchanges/LP_include.h @@ -39,8 +39,6 @@ voind dontprintf(char *formatstr,...) {} #define LP_BARTERDEX_VERSION 1 #define LP_MAGICBITS 1 -#define LP_IPC_ENDPOINT "tcp://127.0.0.1:7781" - #define LP_DONT_IMPORTPRIVKEY #ifdef FROM_JS diff --git a/iguana/exchanges/LP_network.c b/iguana/exchanges/LP_network.c index 44498aba2..66b71e072 100644 --- a/iguana/exchanges/LP_network.c +++ b/iguana/exchanges/LP_network.c @@ -102,6 +102,7 @@ char *nanomsg_transportname(int32_t bindflag,char *str,char *ipaddr,uint16_t por return(str); } + /*char *nanomsg_transportname2(int32_t bindflag,char *str,char *ipaddr,uint16_t port) { sprintf(str,"ws://%s:%u",bindflag == 0 ? ipaddr : "*",port+10); diff --git a/iguana/exchanges/mm.c b/iguana/exchanges/mm.c index c78aa0864..68227c110 100644 --- a/iguana/exchanges/mm.c +++ b/iguana/exchanges/mm.c @@ -58,7 +58,8 @@ void LP_priceupdate(char *base,char *rel,double price,double avebid,double aveas #include "../../crypto777/nanosrc/pipeline.h" #include "../../crypto777/nanosrc/reqrep.h" #include "../../crypto777/nanosrc/tcp.h" - #include "../../crypto777/nanosrc/pair.h" + #include "../../crypto777/nanosrc/pair.h" + #include "../../crypto777/nanosrc/ws.h" #else #include "/usr/local/include/nanomsg/nn.h" #include "/usr/local/include/nanomsg/bus.h" @@ -66,7 +67,8 @@ void LP_priceupdate(char *base,char *rel,double price,double avebid,double aveas #include "/usr/local/include/nanomsg/pipeline.h" #include "/usr/local/include/nanomsg/reqrep.h" #include "/usr/local/include/nanomsg/tcp.h" - #include "/usr/local/include/nanomsg/pair.h" + #include "/usr/local/include/nanomsg/pair.h" + #include "/usr/local/include/nanomsg/ws.h" #endif #endif @@ -178,6 +180,24 @@ int main(int argc, const char * argv[]) } exit(0); } + else if ( argv[1] != 0 && strcmp(argv[1],"events") == 0 ) + { + int32_t len; void *ptr; + if ( (IPC_ENDPOINT= nn_socket(AF_SP,NN_PAIR)) >= 0 ) + { + if ( nn_connect(IPC_ENDPOINT,"ws://127.0.0.1:5555") >= 0 ) + { + while ( 1 ) + { + if ( (len= nn_recv(IPC_ENDPOINT,&ptr,NN_MSG,0)) > 0 ) + { + printf("nn_recv[%d] (%s)\n",len,(char *)ptr); + nn_freemsg(ptr); + } + } + } + } + } else if ( argv[1] != 0 && strcmp(argv[1],"hush") == 0 ) { uint32_t timestamp; char str[65],wifstr[128]; bits256 privkey; int32_t i;