diff -Nuar uftp-4.10.1.orig/proxy.h uftp-4.10.1/proxy.h
--- uftp-4.10.1.orig/proxy.h	2020-02-06 17:30:34.904020513 +0300
+++ uftp-4.10.1/proxy.h	2020-02-06 17:30:49.214021144 +0300
@@ -167,8 +167,8 @@
 extern int proxy_type, debug, rcvbuf, dscp, keyfile_count, keyinfo_count;
 extern int hb_interval, priority;
 extern unsigned int ttl;
-char portname[PORTNAME_LEN], out_portname[PORTNAME_LEN];
-int port, out_port;
+extern char portname[PORTNAME_LEN], out_portname[PORTNAME_LEN];
+extern int port, out_port;
 extern union sockaddr_u down_addr;
 extern int have_down_fingerprint;
 extern uint8_t down_fingerprint[HMAC_LEN];
