+2005-05-30 Michael Poole <mdpoole@troilus.org>
+
+ * include/class.h (get_con_freq): Remove unused function.
+
+ * include/list.h (find_user_link): Remove unused function.
+
+ * include/class.c (get_con_freq): Remove.
+
+ * ircd/list.c (find_user_link): Remove.
+
+ * include/string.h (string_is_hostname, string_is_address,
+ strnChattr): Remove unused functions.
+ (init_string): Remove function that becomes a noop.
+
+ * ircd/string.h (init_string): Remove.
+ (string_is_hostname, string_is_address, strnChattr): Likewise.
+
+ * ircd/ircd.c (main): Remove call to init_string().
+
2005-05-30 Michael Poole <mdpoole@troilus.org>
* include/numeric.h (RPL_TRACELOG, RPL_MYPORTIS,
extern struct ConnectionClass *find_class(const char *name);
extern struct ConnectionClass *make_class(void);
extern void free_class(struct ConnectionClass * tmp);
-extern unsigned int get_con_freq(struct ConnectionClass * clptr);
extern char *get_conf_class(const struct ConfItem *aconf);
extern int get_conf_ping(const struct ConfItem *aconf);
extern char *get_client_class(struct Client *acptr);
/** Check whether \a x is a NULL or empty string. */
#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);
extern char* ircd_strncpy(char* dest, const char* src, size_t len);
#endif
#endif /* FORCEINLINE */
-/*
- * Proto types of other externally visible functions
- */
-extern int strnChattr(const char *s, const size_t n);
-
#endif /* INCLUDED_ircd_string_h */
extern void free_link(struct SLink *lp);
extern struct SLink *make_link(void);
-extern struct SLink *find_user_link(struct SLink *lp, struct Client *ptr);
extern void init_list(void);
extern struct Client *make_client(struct Client *from, int status);
extern void free_connection(struct Connection *con);
return "(null-class)";
}
-/** Get connection interval for a connection class.
- * @param[in] clptr Connection class to check (or NULL).
- * @return If \a clptr != NULL, its connection frequency; else default
- * connection frequency.
- */
-unsigned int get_con_freq(struct ConnectionClass * clptr)
-{
- if (clptr)
- return (ConFreq(clptr));
- else
- return feature_int(FEAT_CONNECTFREQUENCY);
-}
-
/** Make sure we have a connection class named \a name.
* If one does not exist, create it. Then set its ping frequency,
* connection frequency, maximum link count, and max SendQ according
log_init(*argv);
set_nomem_handler(outofmemory);
- if (!init_string()) {
- log_write(LS_SYSTEM, L_CRIT, 0, "Failed to initialize string module");
- return 6;
- }
-
initload();
init_list();
init_hash();
/* #include <assert.h> -- Now using assert in ircd_log.h */
#include <string.h>
-#include <regex.h>
#include <sys/types.h>
#include <netinet/in.h>
*/
#include "chattr.tab.c"
-
-/*
- * Disallow a hostname label to contain anything but a [-a-zA-Z0-9].
- * It may not start or end on a '.'.
- * A label may not end on a '-', the maximum length of a label is
- * 63 characters.
- * On top of that (which seems to be the RFC) we demand that the
- * top domain does not contain any digits.
- */
-/** Regular expression to match a hostname.
- * Matches zero or more alphanumeric labels followed by '.' and a
- * final label that may only contain alphabetic characters.
- */
-static const char* hostExpr = "^([-0-9A-Za-z]*[0-9A-Za-z]\\.)+[A-Za-z]+$";
-/** Compiled regex to match a hostname. Built from #hostExpr. */
-static regex_t hostRegex;
-
-/** Regular expression to match an IP address. */
-static const char* addrExpr =
- "^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\.){1,3}"
- "(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$";
-/** Compiled regex to match an IP address. Built from #addrExpr. */
-static regex_t addrRegex;
-
-/** Initialize the string matching code. */
-int init_string(void)
-{
- /*
- * initialize matching expressions
- * XXX - expressions MUST be correct, don't change expressions
- * without testing them. Might be a good idea to exit if these fail,
- * important code depends on them.
- * TODO: use regerror for an error message
- */
- if (regcomp(&hostRegex, hostExpr, REG_EXTENDED | REG_NOSUB))
- return 0;
-
- if (regcomp(&addrRegex, addrExpr, REG_EXTENDED | REG_NOSUB))
- return 0;
- return 1;
-}
-
-/** Check whether \a str looks like a hostname.
- * @param[in] str String that might be a hostname.
- * @return Non-zero if it conforms to the rules, zero if not.
- */
-int string_is_hostname(const char* str)
-{
- assert(0 != str);
- return (strlen(str) <= HOSTLEN && 0 == regexec(&hostRegex, str, 0, 0, 0));
-}
-
-/** Check whether \a str looks like an IP address.
- * @param[in] str String that might be an address.
- * @return Non-zero if it conforms to the rules, zero if not.
- */
-int string_is_address(const char* str)
-{
- assert(0 != str);
- return (0 == regexec(&addrRegex, str, 0, 0, 0));
-}
-
/** Check whether \a str contains wildcard characters.
* @param[in] str String that might contain wildcards.
* @return Non-zero if \a str contains naked (non-escaped) wildcards,
* Other functions visible externally
*/
-/** Find common character attributes for the start of a string.
- * @param[in] s Input string to scan.
- * @param[in] n Maximum number of bytes to check.
- * @return Bitmask of all character attributes shared by the start of \a s.
- */
-int strnChattr(const char *s, const size_t n)
-{
- const char *rs = s;
- unsigned int x = ~0;
- int r = n;
- while (*rs && r--)
- x &= IRCD_CharAttrTab[*rs++ - CHAR_MIN];
- return x;
-}
-
/** Case insensitive string comparison.
* @param[in] a First string to compare.
* @param[in] b Second string to compare.
}
#endif /* DEBUGMODE */
-/** Find the list element that corresponds to a client.
- * @param[in] lp Head of singly linked list.
- * @param[in] ptr %Client to search for.
- * @return SLink element from \a lp that contains \a ptr, or NULL if none exist.
- */
-struct SLink *find_user_link(struct SLink *lp, struct Client *ptr)
-{
- if (ptr) {
- while (lp) {
- if (lp->value.cptr == ptr)
- return (lp);
- lp = lp->next;
- }
- }
- return NULL;
-}
-
/** Allocate a new SLink element.
* Pulls from #slinkFreeList if it contains anything, else it
* allocates a new one from the heap.