]> git.meshlink.io Git - meshlink/blobdiff - meshlink-sample/meshlinkapp.c
Remove most platform-specific checks.
[meshlink] / meshlink-sample / meshlinkapp.c
index df78331c5bd54930d45f60191c56527fed8e02c2..aa9b30c5570d0351c16d40af5df7c9a77d8a4338 100644 (file)
@@ -1,12 +1,44 @@
 #include <libmeshlink.h>
 
+
+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 *tinc_conf = "/tmp/";
-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";
 
-tinc_setup(tinc_conf, name);
+//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;
 }