X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Futils.c;h=c374eb5d85e0fadead7bbf2b870d78af3d4b1f54;hb=af9ee7ff003fb448b783ccf39347907adc239cb2;hp=797bc3f51540f00771a4275af9c47d4f58a7ace0;hpb=826ad11e419db90b66b3f76a90b54df021bb39fc;p=tinc diff --git a/src/utils.c b/src/utils.c index 797bc3f5..c374eb5d 100644 --- a/src/utils.c +++ b/src/utils.c @@ -18,11 +18,10 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include "logger.h" #include "system.h" -#include "xalloc.h" - -#include "../src/logger.h" #include "utils.h" +#include "xalloc.h" static const char hexadecimals[] = "0123456789ABCDEF"; static const char base64_original[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; @@ -159,7 +158,7 @@ int b64encode_urlsafe(const void *src, char *dst, int length) { const char *winerror(int err) { static char buf[1024], *ptr; - ptr = buf + sprintf(buf, "(%d) ", err); + ptr = buf + snprintf(buf, sizeof buf, "(%d) ", err); if (!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), ptr, sizeof(buf) - (ptr - buf), NULL)) { @@ -181,6 +180,22 @@ unsigned int bitfield_to_int(const void *bitfield, size_t size) { return value; } +bool check_id(const char *id) { + if(!id || !*id) + return false; + + for(; *id; id++) + if(!isalnum(*id) && *id != '_') + return false; + + return true; +} + +/* Windows doesn't define HOST_NAME_MAX. */ +#ifndef HOST_NAME_MAX +#define HOST_NAME_MAX 255 +#endif + char *replace_name(const char *name) { char *ret_name;