]> git.meshlink.io Git - meshlink/blobdiff - src/meta.c
Several fixes for the buffer code.
[meshlink] / src / meta.c
index 726dcca924ca5dcf692bfaa2acd2b9dc4df38bd2..1fbd22c29c26e90ccc11a85337598d6413c5f4f3 100644 (file)
@@ -42,10 +42,9 @@ bool send_meta(connection_t *c, const char *buffer, int length) {
 
        /* Add our data to buffer */
        if(c->status.encryptout) {
-               char outbuf[length];
                size_t outlen = length;
 
-               if(!cipher_encrypt(&c->outcipher, outbuf, length, buffer_prepare(&c->outbuf, length), &outlen, false) || outlen != length) {
+               if(!cipher_encrypt(&c->outcipher, buffer, length, buffer_prepare(&c->outbuf, length), &outlen, false) || outlen != length) {
                        logger(LOG_ERR, "Error while encrypting metadata to %s (%s)",
                                        c->name, c->hostname);
                        return false;
@@ -152,5 +151,7 @@ bool receive_meta(connection_t *c) {
                }
        } while(inlen);
 
+       buffer_compact(&c->inbuf);
+
        return true;
 }