- EVP_EncryptUpdate(c->outctx, outbuf, &outlen, buffer, length);
- bufp = outbuf;
- length = outlen;
- } else
- bufp = buffer;
-
- if(write(c->socket, bufp, length) < 0) {
- syslog(LOG_ERR, _("Sending meta data to %s (%s) failed: %s"), c->name,
- c->hostname, strerror(errno));
- return -1;
+#ifdef DISABLE_LEGACY
+ return false;
+#else
+ assert(c->legacy);
+
+ if(!decrease_budget(&c->legacy->out, length)) {
+ logger(DEBUG_META, LOG_ERR, "Byte limit exceeded for encryption to %s (%s)", c->name, c->hostname);
+ return false;
+ }
+
+ size_t outlen = length;
+
+ if(!cipher_encrypt(&c->legacy->out.cipher, buffer, length, buffer_prepare(&c->outbuf, length), &outlen, false) || outlen != length) {
+ logger(DEBUG_ALWAYS, LOG_ERR, "Error while encrypting metadata to %s (%s)",
+ c->name, c->hostname);
+ return false;
+ }
+
+#endif
+ } else {
+ buffer_add(&c->outbuf, buffer, length);