*/
#ifndef INCLUDED_ircd_string_h
#define INCLUDED_ircd_string_h
-#ifndef INCLUDED_config_h
-#include "config.h"
-#endif
#ifndef INCLUDED_ircd_chattr_h
#include "ircd_chattr.h"
#endif
+struct irc_in_addr;
+
/*
* Macros
*/
#define EmptyString(x) (!(x) || !(*x))
+/*
+ * initialize recognizers
+ */
+extern int init_string(void);
+
+extern int string_is_hostname(const char* str);
+extern int string_is_address(const char* str);
+extern int string_has_wildcards(const char* str);
+
+/*! Return hash for string using PJW algorithm */
+extern unsigned hash_pjw(const char* str);
extern char* ircd_strncpy(char* dest, const char* src, size_t len);
extern int ircd_strcmp(const char *a, const char *b);
extern int ircd_strncmp(const char *a, const char *b, size_t n);
-extern int unique_name_vector(char* names, char token, char** vector, int size);
-extern int token_vector(char* names, char token, char** vector, int size);
-extern const char* ircd_ntoa(const char* addr);
-extern const char* ircd_ntoa_r(char* buf, const char* addr);
+extern int unique_name_vector(char* names, char token,
+ char** vector, int size);
+extern int token_vector(char* names, char token,
+ char** vector, int size);
+extern const char* ircd_ntoa(const struct irc_in_addr* addr);
+extern const char* ircd_ntoa_r(char* buf, const struct irc_in_addr* addr);
+extern int ircd_aton(struct irc_in_addr *addr, const char *str);
extern char* host_from_uh(char* buf, const char* userhost, size_t len);
extern char* ircd_strtok(char** save, char* str, char* fs);
-extern char* sprintf_irc(char* str, const char* format, ...);
-
extern char* canonize(char* buf);
#define DupString(x, y) (strcpy((x = (char*) MyMalloc(strlen(y) + 1)), y))