#include "../include/util.h" #include "../include/types.h" #include "../include/error.h" #include #include #include #include #include void pdebug(lm_ctx_t *ctx, const char *func, const char *fmt, ...) { if (!ctx->debug) return; va_list args; va_start(args, fmt); printf("[DEBUG] %s: ", func); vprintf(fmt, args); printf("\n"); va_end(args); } bool eq(char *s1, char *s2) { if (NULL == s1 || NULL == s2) return false; if (strlen(s1) != strlen(s2)) return false; return strcmp(s1, s2) == 0; } bool is_letter(char c) { return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'); } bool is_digit(char c) { return c >= '0' && c <= '9'; } bool contains(char *str, char s) { for (char *c = str; *c != 0; c++) if (*c == s) return true; return false; } bool parse_host(char *addr, char *host, uint16_t *port){ char *save = NULL, *portc = NULL; int portint = 0; if((host = strtok_r(addr, ":", &save)) == NULL){ lm_error_set(LM_ERR_BadHost); return false; } if((portc = strtok_r(NULL, ":", &save)) == NULL){ *port = 0; return true; } portint = atoi(portc); if(portint <= 0 || portint > UINT16_MAX){ lm_error_set(LM_ERR_BadPort); return false; } *port = portint; return true; }