Add support for building tinc with MSVC
[tinc] / src / protocol.c
index 8f0efb2..02dbf5b 100644 (file)
@@ -1,7 +1,7 @@
 /*
     protocol.c -- handle the meta-protocol, basic functions
     Copyright (C) 1999-2005 Ivo Timmermans,
-                  2000-2013 Guus Sliepen <guus@tinc-vpn.org>
+                  2000-2022 Guus Sliepen <guus@tinc-vpn.org>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -49,7 +49,7 @@ static bool (*request_handlers[])(connection_t *, const char *) = {
 
 /* Request names */
 
-static char (*request_name[]) = {
+static const char (*request_name[]) = {
        "ID", "METAKEY", "CHALLENGE", "CHAL_REPLY", "ACK",
        "STATUS", "ERROR", "TERMREQ",
        "PING", "PONG",
@@ -118,10 +118,11 @@ void forward_request(connection_t *from, const char *request) {
 
        // Create a temporary newline-terminated copy of the request
        size_t len = strlen(request);
-       char tmp[len + 1];
+       const size_t tmplen = len + 1;
+       char *tmp = alloca(tmplen);
        memcpy(tmp, request, len);
        tmp[len] = '\n';
-       broadcast_meta(from, tmp, sizeof(tmp));
+       broadcast_meta(from, tmp, tmplen);
 }
 
 bool receive_request(connection_t *c, const char *request) {