]> git.meshlink.io Git - meshlink/commitdiff
Get rid of tincremotehost structure, we use directly node_t
authorSaverio Proto <zioproto@gmail.com>
Thu, 10 Apr 2014 10:03:52 +0000 (12:03 +0200)
committerSaverio Proto <zioproto@gmail.com>
Thu, 10 Apr 2014 10:03:52 +0000 (12:03 +0200)
meshlink-sample/meshlinkapp.c
src/libmeshlink.c
src/libmeshlink.h

index 0ec564e37b6f149b17c457e0706a9bc637420ba9..647e6b77630c66b05b2d14e664ae3d1a4899ebbf 100644 (file)
@@ -5,12 +5,12 @@ int main(int argc , char **argv){
 char *confbase = "/tmp/meshlink/";
 char *name = "test";
 
-tincremotehost* remotenode = malloc(sizeof(tincremotehost));
+node_t* remotenode = new_node();
 char *remotename = "nameofremotenode";
 
-//TODO: change this, calling a function that returns tincremotehost
+//TODO: change this, calling a function that returns node_t
+remotenode->name = malloc(16);
 remotenode->name = remotename;
-remotenode->publickey = NULL;
 
 tinc_setup(confbase, name);
 tinc_start(confbase);
index 80f18a22e341187a192125ba7f8a32a072d8c518..f84642dfc9c11ff7a77fdf4ae8e2fa4da44b765e 100644 (file)
@@ -549,12 +549,24 @@ end:
 bool tinc_stop();
 
 // can be called from any thread
-bool tinc_send_packet(tincremotehost *receiver, const char* buf, unsigned int len) {
+bool tinc_send_packet(node_t *receiver, const char* buf, unsigned int len) {
 
        vpn_packet_t packet;
+       tincpackethdr* hdr = malloc(sizeof(tincpackethdr));
+
+       if (sizeof(hdr) + len > MAXSIZE) {
+
+       //log something
+       return false;
+       }
+
+       memcpy(hdr->destination,receiver->name,sizeof(hdr->destination));
+       memcpy(hdr->source,myself->name,sizeof(hdr->source));
 
        packet.priority = 0;
-       memcpy(packet.data,buf,len);
+
+       memcpy(packet.data,hdr,sizeof(hdr));
+       memcpy(packet.data+sizeof(hdr),buf,len);
 
         myself->in_packets++;
         myself->in_bytes += packet.len;
@@ -570,7 +582,11 @@ bool tinc_set_packet_receive_handler(void (*handler)(const char* sender, const c
 //It might also be a good idea to add the option of looking up hosts by public
 //key (fingerprints) instead of names.
 
-node_t *tinc_get_host(const char *name);
+node_t *tinc_get_host(const char *name) {
+
+
+
+};
 
 bool tinc_get_hosts(node_t** hosts);
 
index ab7cdded06777410df9c7c87c89e2bfca51cdcda..e99f895768fb762369e524dd1f0e4adfb3888885 100644 (file)
@@ -46,14 +46,8 @@ typedef struct tincpackethdr {
   u_int8_t source[16];
 } __attribute__ ((__packed__)) tincpackethdr;
 
-typedef struct tincremotehost {
-  char *name;
-  char *publickey;
-
-} tincremotehost;
-
 // can be called from any thread
-bool tinc_send_packet(tincremotehost *receiver, const char* buf, unsigned int len);
+bool tinc_send_packet(node_t *receiver, const char* buf, unsigned int len);
 
 // handler runs in tinc thread and should return immediately
 bool tinc_set_packet_receive_handler(void (*handler)(const char* sender, const char* buf, unsigned int len));