X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Flibmeshlink.c;h=cd9e8a745f496ecdbe3e38a19aec652e364acfdc;hb=2a18ac20efd8ed3e1fd76f11f6f816e77c099e47;hp=e900dd11841c49dcb9e67990a3e8fd040e976191;hpb=6d4bb373f73f7fc76e1b8c030438a8e039e85366;p=meshlink diff --git a/src/libmeshlink.c b/src/libmeshlink.c index e900dd11..cd9e8a74 100644 --- a/src/libmeshlink.c +++ b/src/libmeshlink.c @@ -411,26 +411,24 @@ bool tinc_stop(); bool tinc_send_packet(node_t *receiver, const char* buf, unsigned int len) { vpn_packet_t packet; - tincpackethdr* hdr = malloc(sizeof(tincpackethdr)); + tincpackethdr* hdr = (tincpackethdr *)packet.data; if (sizeof(tincpackethdr) + len > MAXSIZE) { //log something return false; } - memset(hdr->legacymtu,1,sizeof(hdr->legacymtu)); + packet.probe = false; + memset(hdr, 0, sizeof *hdr); memcpy(hdr->destination,receiver->name,sizeof(hdr->destination)); - memcpy(hdr->source,myself->name,sizeof(hdr->source)); + memcpy(hdr->source,mesh->self->name,sizeof(hdr->source)); - packet.priority = 0; packet.len = sizeof(tincpackethdr) + len; - - memcpy(packet.data,hdr,sizeof(tincpackethdr)); memcpy(packet.data+sizeof(tincpackethdr),buf,len); - myself->in_packets++; - myself->in_bytes += packet.len; - route(myself, &packet); + mesh->self->in_packets++; + mesh->self->in_bytes += packet.len; + route(mesh->self, &packet); return true; }