]> jfr.im git - solanum.git/blobdiff - ircd/cache.c
librb mbedTLS: der_pubkey is used out of scope
[solanum.git] / ircd / cache.c
index 3b26717039d8d822ecfe41549228644918b9ed84..c720e0abdd96c542ee24e398090be45bb2541891 100644 (file)
@@ -32,7 +32,6 @@
 
 #include "stdinc.h"
 #include "ircd_defs.h"
-#include "common.h"
 #include "s_conf.h"
 #include "client.h"
 #include "hash.h"
@@ -47,8 +46,8 @@ struct cacheline *emptyline = NULL;
 rb_dlink_list links_cache_list;
 char user_motd_changed[MAX_DATE_STRING];
 
-struct Dictionary *help_dict_oper = NULL;
-struct Dictionary *help_dict_user = NULL;
+rb_dictionary *help_dict_oper = NULL;
+rb_dictionary *help_dict_user = NULL;
 
 /* init_cache()
  *
@@ -65,12 +64,12 @@ init_cache(void)
 
        user_motd_changed[0] = '\0';
 
-       user_motd = cache_file(MPATH, "ircd.motd", 0);
-       oper_motd = cache_file(OPATH, "opers.motd", 0);
+       user_motd = cache_file(ircd_paths[IRCD_PATH_IRCD_MOTD], "ircd.motd", 0);
+       oper_motd = cache_file(ircd_paths[IRCD_PATH_IRCD_OMOTD], "opers.motd", 0);
        memset(&links_cache_list, 0, sizeof(links_cache_list));
 
-       help_dict_oper = rb_dictionary_create("oper help", strcasecmp);
-       help_dict_user = rb_dictionary_create("user help", strcasecmp);
+       help_dict_oper = rb_dictionary_create("oper help", rb_strcasecmp);
+       help_dict_user = rb_dictionary_create("user help", rb_strcasecmp);
 }
 
 /*
@@ -218,6 +217,10 @@ free_cachefile(struct cachefile *cacheptr)
                        rb_free(line->data);
                        rb_free(line);
                }
+               else
+               {
+                       rb_free_rb_dlink_node(ptr);
+               }
        }
 
        rb_free(cacheptr);
@@ -237,7 +240,7 @@ load_help(void)
        struct dirent *ldirent= NULL;
        char filename[PATH_MAX];
        struct cachefile *cacheptr;
-       struct DictionaryIter iter;
+       rb_dictionary_iter iter;
 
 #if defined(S_ISLNK) && defined(HAVE_LSTAT)
        struct stat sb;
@@ -254,7 +257,7 @@ load_help(void)
                free_cachefile(cacheptr);
        }
 
-       helpfile_dir = opendir(HPATH);
+       helpfile_dir = opendir(ircd_paths[IRCD_PATH_OPERHELP]);
 
        if(helpfile_dir == NULL)
                return;
@@ -263,13 +266,13 @@ load_help(void)
        {
                if(ldirent->d_name[0] == '.')
                        continue;
-               snprintf(filename, sizeof(filename), "%s/%s", HPATH, ldirent->d_name);
+               snprintf(filename, sizeof(filename), "%s%c%s", ircd_paths[IRCD_PATH_OPERHELP], RB_PATH_SEPARATOR, ldirent->d_name);
                cacheptr = cache_file(filename, ldirent->d_name, HELP_OPER);
                rb_dictionary_add(help_dict_oper, cacheptr->name, cacheptr);
        }
 
        closedir(helpfile_dir);
-       helpfile_dir = opendir(UHPATH);
+       helpfile_dir = opendir(ircd_paths[IRCD_PATH_USERHELP]);
 
        if(helpfile_dir == NULL)
                return;
@@ -278,7 +281,7 @@ load_help(void)
        {
                if(ldirent->d_name[0] == '.')
                        continue;
-               snprintf(filename, sizeof(filename), "%s/%s", UHPATH, ldirent->d_name);
+               snprintf(filename, sizeof(filename), "%s%c%s", ircd_paths[IRCD_PATH_USERHELP], RB_PATH_SEPARATOR, ldirent->d_name);
 
 #if defined(S_ISLNK) && defined(HAVE_LSTAT)
                if(lstat(filename, &sb) < 0)
@@ -342,7 +345,7 @@ cache_user_motd(void)
        struct stat sb;
        struct tm *local_tm;
 
-       if(stat(MPATH, &sb) == 0)
+       if(stat(ircd_paths[IRCD_PATH_IRCD_MOTD], &sb) == 0)
        {
                local_tm = localtime(&sb.st_mtime);
 
@@ -356,7 +359,7 @@ cache_user_motd(void)
                }
        }
        free_cachefile(user_motd);
-       user_motd = cache_file(MPATH, "ircd.motd", 0);
+       user_motd = cache_file(ircd_paths[IRCD_PATH_IRCD_MOTD], "ircd.motd", 0);
 }