X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Futils.c;h=fadfd05fd7d96946fe77a8118d45ca4a7b451efb;hp=c374eb5d85e0fadead7bbf2b870d78af3d4b1f54;hb=c2dc3784f127ef6db6e9960a4abecc1aab6f4e31;hpb=097c69fc6a223213302fe9ffbe00a4c05357e660 diff --git a/src/utils.c b/src/utils.c index c374eb5d..fadfd05f 100644 --- a/src/utils.c +++ b/src/utils.c @@ -191,6 +191,22 @@ bool check_id(const char *id) { return true; } +bool check_netname(const char *netname, bool strict) { + if(!netname || !*netname || *netname == '.') + return false; + + for(const char *c = netname; *c; c++) { + if(iscntrl(*c)) + return false; + if(*c == '/' || *c == '\\') + return false; + if(strict && strchr(" $%<>:`\"|?*", *c)) + return false; + } + + return true; +} + /* Windows doesn't define HOST_NAME_MAX. */ #ifndef HOST_NAME_MAX #define HOST_NAME_MAX 255