]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/cache.c
Add topic TS and channel TS constraints for /LIST.
[irc/rqf/shadowircd.git] / src / cache.c
index 58a2f8e4ddfbfb5350bc6493e8108e16d40ccc2e..04766b7448d04711719a21e1cf9253cb7b418c2c 100644 (file)
@@ -29,7 +29,6 @@
  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *
- * $Id: cache.c 25119 2008-03-13 16:57:05Z androsyn $
  */
 
 #include "stdinc.h"
@@ -143,6 +142,13 @@ cache_file(const char *filename, const char *shortname, int flags)
                        rb_dlinkAddTailAlloc(emptyline, &cacheptr->contents);
        }
 
+       if (0 == rb_dlink_list_length(&cacheptr->contents))
+       {
+               /* No contents. Don't cache it after all. */
+               rb_free(cacheptr);
+               cacheptr = NULL;
+       }
+
        fclose(in);
        return cacheptr;
 }
@@ -246,6 +252,8 @@ load_help(void)
 
        while((ldirent = readdir(helpfile_dir)) != NULL)
        {
+               if(ldirent->d_name[0] == '.')
+                       continue;
                rb_snprintf(filename, sizeof(filename), "%s/%s", HPATH, ldirent->d_name);
                cacheptr = cache_file(filename, ldirent->d_name, HELP_OPER);
                irc_dictionary_add(help_dict_oper, cacheptr->name, cacheptr);
@@ -259,6 +267,8 @@ load_help(void)
 
        while((ldirent = readdir(helpfile_dir)) != NULL)
        {
+               if(ldirent->d_name[0] == '.')
+                       continue;
                rb_snprintf(filename, sizeof(filename), "%s/%s", UHPATH, ldirent->d_name);
 
 #if defined(S_ISLNK) && defined(HAVE_LSTAT)