X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=meshlink-sample%2Fmeshlinkapp.c;h=aa9b30c5570d0351c16d40af5df7c9a77d8a4338;hb=3c72744cc47f02815bbef5de39ce3740f23be3a0;hp=847fad01b2c2343cf4f43b9b81de339fcb432ebc;hpb=4d8e28778d89ab4620fc45093eab3cb6cf133026;p=meshlink diff --git a/meshlink-sample/meshlinkapp.c b/meshlink-sample/meshlinkapp.c index 847fad01..aa9b30c5 100644 --- a/meshlink-sample/meshlinkapp.c +++ b/meshlink-sample/meshlinkapp.c @@ -1,12 +1,44 @@ #include + +void handle_recv_data(void *data); +void handle_recv_data(void *data) { +printf("Data received is %s\n",data); + +} + int main(int argc , char **argv){ -char *confbase = "/tmp/meshlink/"; -char *name = "test"; +char *confbase = argc > 1 ? argv[1] : "/tmp/meshlink/"; +char *name = argc > 2 ? argv[2] : "foo"; +debug_level = 5; + +node_t* remotenode = new_node(); +char *remotename = argc > 3 ? argv[3] : "bar"; + +//TODO: change this, calling a function that returns node_t +remotenode->name = malloc(16); +remotenode->name = remotename; tinc_setup(confbase, name); +tinc_start(confbase); + +//Register callback function for incoming data +recvdata_register_cb(handle_recv_data); + +sleep(2); //there is a race condition here, tinc_start detaches to a thread the needs time to setup stuff +while(1) { +//sample data to send out +char mydata[200]; +memset(mydata,0,200); +strcpy(mydata,"Hello World!"); + +//send out data +tinc_send_packet(remotenode,mydata,sizeof(mydata)); +sleep(10); //give time to this thread to finish before we exit +} +free(remotenode); return 0; }