]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Make swap log pathname configurable
authorwessels <>
Sat, 2 Nov 1996 04:24:58 +0000 (04:24 +0000)
committerwessels <>
Sat, 2 Nov 1996 04:24:58 +0000 (04:24 +0000)
src/acl.cc
src/cache_cf.cc
src/disk.cc
src/squid.h
src/stat.cc
src/store.cc

index b173017c5c8ef6de1318507d589c3b8c71f29768..36968cabc0e7ee71e4fc9ad13c0fbdd708e1caea 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: acl.cc,v 1.54 1996/10/24 23:31:11 wessels Exp $
+ * $Id: acl.cc,v 1.55 1996/11/01 21:24:58 wessels Exp $
  *
  * DEBUG: section 28    Access Control
  * AUTHOR: Duane Wessels
@@ -208,9 +208,9 @@ aclParseMethodList(void)
 static int
 decode_addr(char *asc, struct in_addr *addr, struct in_addr *mask)
 {
-    u_num32 a;
-    int a1, a2, a3, a4;
-    struct hostent *hp;
+    u_num32 a = 0;
+    int a1=0, a2=0, a3=0, a4=0;
+    struct hostent *hp = NULL;
 
     switch (sscanf(asc, "%d.%d.%d.%d", &a1, &a2, &a3, &a4)) {
     case 4:                    /* a dotted quad */
index bbbb9c8300afd6b1052ff7610eceb00be4ff20bb..64841a1023ae511ad15195e757a8f379d007d779 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cache_cf.cc,v 1.121 1996/10/30 06:02:49 wessels Exp $
+ * $Id: cache_cf.cc,v 1.122 1996/11/01 21:25:00 wessels Exp $
  *
  * DEBUG: section 3     Configuration File Parsing
  * AUTHOR: Harvest Derived
@@ -137,6 +137,7 @@ struct SquidConfig Config;
 #define DefaultCacheLogFile    DEFAULT_CACHE_LOG
 #define DefaultAccessLogFile   DEFAULT_ACCESS_LOG
 #define DefaultStoreLogFile    DEFAULT_STORE_LOG
+#define DefaultSwapLogFile     (char *)NULL    /* default swappath(0) */
 #if USE_PROXY_AUTH
 #define DefaultProxyAuthFile    (char *)NULL   /* default NONE */
 #define DefaultProxyAuthIgnoreDomain (char *)NULL      /* default NONE */
@@ -215,14 +216,12 @@ static void wordlistAdd _PARAMS((wordlist **, char *));
 
 static void configDoConfigure _PARAMS((void));
 static void configSetFactoryDefaults _PARAMS((void));
-static void parseAccessLogLine _PARAMS((void));
 static void parseAddressLine _PARAMS((struct in_addr *));
 static void parseAnnounceToLine _PARAMS((void));
 static void parseAppendDomainLine _PARAMS((void));
 static void parseCacheAnnounceLine _PARAMS((void));
 static void parseCacheHostLine _PARAMS((void));
 static void parseDebugOptionsLine _PARAMS((void));
-static void parseDnsProgramLine _PARAMS((void));
 static void parseEffectiveUserLine _PARAMS((void));
 static void parseErrHtmlLine _PARAMS((void));
 static void parseFtpOptionsLine _PARAMS((void));
@@ -238,18 +237,17 @@ static void parseIcpPortLine _PARAMS((void));
 static void parseLocalDomainFile _PARAMS((char *fname));
 static void parseLocalDomainLine _PARAMS((void));
 static void parseMcastGroupLine _PARAMS((void));
-static void parseLogLine _PARAMS((void));
 static void parseMemLine _PARAMS((void));
 static void parseMgrLine _PARAMS((void));
 static void parsePidFilenameLine _PARAMS((void));
 static void parseKilobytes _PARAMS((int *));
-static void parseStoreLogLine _PARAMS((void));
 static void parseSwapLine _PARAMS((void));
 static void parseRefreshPattern _PARAMS((int icase));
 static void parseVisibleHostnameLine _PARAMS((void));
 static void parseWAISRelayLine _PARAMS((void));
 static void parseMinutesLine _PARAMS((int *));
 static void ip_acl_destroy _PARAMS((ip_acl **));
+static void parsePathname _PARAMS((char **));
 
 static void
 self_destruct(void)
@@ -640,7 +638,6 @@ static void
 parseProxyAuthLine(void)
 {
     char *token;
-
     token = strtok(NULL, w_space);
     if (token == NULL)
        self_destruct();
@@ -658,7 +655,6 @@ parseHttpdAccelLine(void)
     char *token;
     LOCAL_ARRAY(char, buf, BUFSIZ);
     int i;
-
     token = strtok(NULL, w_space);
     if (token == NULL)
        self_destruct();
@@ -676,14 +672,12 @@ static void
 parseEffectiveUserLine(void)
 {
     char *token;
-
     token = strtok(NULL, w_space);
     if (token == NULL)
        self_destruct();
     safe_free(Config.effectiveUser);
     safe_free(Config.effectiveGroup);
     Config.effectiveUser = xstrdup(token);
-
     token = strtok(NULL, w_space);
     if (token == NULL)
        return;                 /* group is optional */
@@ -691,36 +685,14 @@ parseEffectiveUserLine(void)
 }
 
 static void
-parseLogLine(void)
-{
-    char *token;
-    token = strtok(NULL, w_space);
-    if (token == NULL)
-       self_destruct();
-    safe_free(Config.Log.log);
-    Config.Log.log = xstrdup(token);
-}
-
-static void
-parseAccessLogLine(void)
+parsePathname(char **path)
 {
     char *token;
     token = strtok(NULL, w_space);
     if (token == NULL)
        self_destruct();
-    safe_free(Config.Log.access);
-    Config.Log.access = xstrdup(token);
-}
-
-static void
-parseStoreLogLine(void)
-{
-    char *token;
-    token = strtok(NULL, w_space);
-    if (token == NULL)
-       self_destruct();
-    safe_free(Config.Log.store);
-    Config.Log.store = xstrdup(token);
+    safe_free(*path);
+    *path = xstrdup(token);
 }
 
 static void
@@ -745,28 +717,6 @@ parseFtpOptionsLine(void)
     Config.Program.ftpget_opts = xstrdup(token);
 }
 
-static void
-parseDnsProgramLine(void)
-{
-    char *token;
-    token = strtok(NULL, w_space);
-    if (token == NULL)
-       self_destruct();
-    safe_free(Config.Program.dnsserver);
-    Config.Program.dnsserver = xstrdup(token);
-}
-
-static void
-parseRedirectProgramLine(void)
-{
-    char *token;
-    token = strtok(NULL, w_space);
-    if (token == NULL)
-       self_destruct();
-    safe_free(Config.Program.redirect);
-    Config.Program.redirect = xstrdup(token);
-}
-
 static void
 parseOnOff(int *var)
 {
@@ -846,7 +796,6 @@ parseLocalDomainFile(char *fname)
     LOCAL_ARRAY(char, tmp_line, BUFSIZ);
     FILE *fp = NULL;
     char *t = NULL;
-
     if ((fp = fopen(fname, "r")) == NULL) {
        debug(3, 1, "parseLocalDomainFile: %s: %s\n", fname, xstrerror());
        return;
@@ -924,17 +873,6 @@ parseDebugOptionsLine(void)
     Config.debugOptions = xstrdup(token);
 }
 
-static void
-parsePidFilenameLine(void)
-{
-    char *token;
-    token = strtok(NULL, w_space);
-    safe_free(Config.pidFilename);
-    if (token == NULL)
-       self_destruct();
-    Config.pidFilename = xstrdup(token);
-}
-
 static void
 parseVisibleHostnameLine(void)
 {
@@ -1010,9 +948,6 @@ parseVizHackLine(void)
        self_destruct();
     if (sscanf(token, "%d", &i) == 1)
        Config.vizHackAddr.sin_port = htons(i);
-    debug(0, 0, "parseVizHackLine: got %s %d\n",
-       inet_ntoa(Config.vizHackAddr.sin_addr),
-       ntohs(Config.vizHackAddr.sin_port));
 }
 
 static void
@@ -1107,13 +1042,16 @@ parseConfigFile(char *file_name)
            parseWordlist(&Config.cache_dirs);
 
        else if (!strcmp(token, "cache_log"))
-           parseLogLine();
+           parsePathname(&Config.Log.log);
 
        else if (!strcmp(token, "cache_access_log"))
-           parseAccessLogLine();
+           parsePathname(&Config.Log.access);
 
        else if (!strcmp(token, "cache_store_log"))
-           parseStoreLogLine();
+           parsePathname(&Config.Log.store);
+
+       else if (!strcmp(token, "cache_swap_log"))
+           parsePathname(&Config.Log.swap);
 
        else if (!strcmp(token, "logfile_rotate"))
            parseIntegerValue(&Config.Log.rotateNumber);
@@ -1217,13 +1155,13 @@ parseConfigFile(char *file_name)
            parseFtpOptionsLine();
 
        else if (!strcmp(token, "cache_dns_program"))
-           parseDnsProgramLine();
+           parsePathname(&Config.Program.dnsserver);
 
        else if (!strcmp(token, "dns_children"))
            parseIntegerValue(&Config.dnsChildren);
 
        else if (!strcmp(token, "redirect_program"))
-           parseRedirectProgramLine();
+           parsePathname(&Config.Program.redirect);
 
        else if (!strcmp(token, "redirect_children"))
            parseIntegerValue(&Config.redirectChildren);
@@ -1311,7 +1249,7 @@ parseConfigFile(char *file_name)
            parseDebugOptionsLine();
 
        else if (!strcmp(token, "pid_filename"))
-           parsePidFilenameLine();
+           parsePathname(&Config.pidFilename);
 
        else if (!strcmp(token, "visible_hostname"))
            parseVisibleHostnameLine();
@@ -1435,6 +1373,7 @@ configFreeMemory(void)
     safe_free(Config.Log.log);
     safe_free(Config.Log.access);
     safe_free(Config.Log.store);
+    safe_free(Config.Log.swap);
     safe_free(Config.adminEmail);
     safe_free(Config.effectiveUser);
     safe_free(Config.effectiveGroup);
@@ -1520,6 +1459,7 @@ configSetFactoryDefaults(void)
     Config.Log.log = safe_xstrdup(DefaultCacheLogFile);
     Config.Log.access = safe_xstrdup(DefaultAccessLogFile);
     Config.Log.store = safe_xstrdup(DefaultStoreLogFile);
+    Config.Log.swap = safe_xstrdup(DefaultSwapLogFile);
     Config.Log.rotateNumber = DefaultLogRotateNumber;
     Config.Program.ftpget = safe_xstrdup(DefaultFtpgetProgram);
     Config.Program.ftpget_opts = safe_xstrdup(DefaultFtpgetOptions);
index 08e644d6cc86d018a007420b08b0554354f005e4..470ecb939e922e6422aff229d6985c4e9ce09d2b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: disk.cc,v 1.35 1996/10/11 23:11:53 wessels Exp $
+ * $Id: disk.cc,v 1.36 1996/11/01 21:25:02 wessels Exp $
  *
  * DEBUG: section 6     Disk I/O Routines
  * AUTHOR: Harvest Derived
@@ -173,7 +173,7 @@ file_open(char *path, int (*handler) _PARAMS((void)), int mode)
     commSetCloseOnExec(fd);
 
     /* init table */
-    strncpy(file_table[fd].filename, path, MAX_FILE_NAME_LEN);
+    strncpy(file_table[fd].filename, path, SQUID_MAXPATHLEN);
     file_table[fd].at_eof = NO;
     file_table[fd].open_stat = FILE_OPEN;
     file_table[fd].close_request = NOT_REQUEST;
index a37521c0bb34047325d8dfdcec9a7d661febd31e..ea514179ba6311e23a42f1efcb4917d4d86dfd5f 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: squid.h,v 1.63 1996/10/27 07:12:00 wessels Exp $
+ * $Id: squid.h,v 1.64 1996/11/01 21:25:05 wessels Exp $
  *
  * AUTHOR: Duane Wessels
  *
 #define SQUIDHOSTNAMELEN MAXHOSTNAMELEN
 #endif
 
+#define SQUID_MAXPATHLEN 256
+
 #ifndef INADDR_NONE
 #define INADDR_NONE ((unsigned long) -1)
 #endif
index 46660acaa5f345d329db0781bdd3609b3ac7b4d3..caad9df83a427f6a80a7d85031de048d0771ea4a 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: stat.cc,v 1.96 1996/10/29 02:40:13 wessels Exp $
+ * $Id: stat.cc,v 1.97 1996/11/01 21:25:06 wessels Exp $
  *
  * DEBUG: section 18    Cache Manager Statistics
  * AUTHOR: Harvest Derived
@@ -1279,8 +1279,8 @@ stat_init(cacheinfo ** object, char *logfilename)
     obj->parameter_get = parameter_get;
     obj->server_list = server_list;
     if (logfilename) {
-       memset(obj->logfilename, '0', MAX_FILE_NAME_LEN);
-       strncpy(obj->logfilename, logfilename, MAX_FILE_NAME_LEN - 1);
+       memset(obj->logfilename, '0', SQUID_MAXPATHLEN);
+       strncpy(obj->logfilename, logfilename, SQUID_MAXPATHLEN - 1);
        obj->logfile_fd = file_open(obj->logfilename, NULL, O_WRONLY | O_CREAT);
        if (obj->logfile_fd == DISK_ERROR) {
            debug(18, 0, "%s: %s\n", obj->logfilename, xstrerror());
index 9618247b26dc38bbce9c840f4791b9456334a44e..92eaf4249361ee7a696982edf56691141a5d1f45 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store.cc,v 1.144 1996/10/30 09:28:04 wessels Exp $
+ * $Id: store.cc,v 1.145 1996/11/01 21:25:09 wessels Exp $
  *
  * DEBUG: section 20    Storeage Manager
  * AUTHOR: Harvest Derived
@@ -262,8 +262,8 @@ static int storelog_fd = -1;
 
 /* key temp buffer */
 static char key_temp_buffer[MAX_URL + 100];
-static char swaplog_file[MAX_FILE_NAME_LEN];
-static char tmp_filename[MAX_FILE_NAME_LEN];
+static char swaplog_file[SQUID_MAXPATHLEN+1];
+static char tmp_filename[SQUID_MAXPATHLEN+1];
 
 /* patch cache_dir to accomodate multiple disk storage */
 static char **CacheDirs = NULL;
@@ -1065,6 +1065,8 @@ storeAddSwapDisk(char *path)
 {
     char **tmp = NULL;
     int i;
+    if (strlen(path) > (SQUID_MAXPATHLEN-32))
+       fatal_dump("cache_dir pathname is too long");
     if (CacheDirs == NULL) {
        CacheDirsAllocated = 4;
        CacheDirs = xcalloc(CacheDirsAllocated, sizeof(char *));
@@ -1093,7 +1095,7 @@ swappath(int n)
 static char *
 storeSwapFullPath(int fn, char *fullpath)
 {
-    LOCAL_ARRAY(char, fullfilename, MAX_FILE_NAME_LEN);
+    LOCAL_ARRAY(char, fullfilename, SQUID_MAXPATHLEN+1);
     if (!fullpath)
        fullpath = fullfilename;
     fullpath[0] = '\0';
@@ -1249,7 +1251,7 @@ storeSwapLog(StoreEntry * e)
 static void
 storeSwapOutHandle(int fd, int flag, StoreEntry * e)
 {
-    LOCAL_ARRAY(char, filename, MAX_FILE_NAME_LEN);
+    LOCAL_ARRAY(char, filename, SQUID_MAXPATHLEN+1);
     MemObject *mem = e->mem_obj;
 
     debug(20, 3, "storeSwapOutHandle: '%s'\n", e->key);
@@ -1334,7 +1336,7 @@ storeSwapOutStart(StoreEntry * e)
 {
     int fd;
     int x;
-    LOCAL_ARRAY(char, swapfilename, MAX_FILE_NAME_LEN);
+    LOCAL_ARRAY(char, swapfilename, SQUID_MAXPATHLEN+1);
     MemObject *mem = e->mem_obj;
     /* Suggest a new swap file number */
     swapfileno = (swapfileno + 1) % (MAX_SWAP_FILE);
@@ -1577,7 +1579,7 @@ storeStartRebuildFromDisk(void)
     data->start = getCurrentTime();
 
     /* Check if log is clean */
-    sprintf(tmp_filename, "%s/log-last-clean", swappath(0));
+    sprintf(tmp_filename, "%s-last-clean", swaplog_file);
     if (stat(tmp_filename, &sb) >= 0) {
        last_clean = sb.st_mtime;
        if (stat(swaplog_file, &sb) >= 0)
@@ -2478,7 +2480,10 @@ storeInit(void)
        storeAddSwapDisk(w->key);
     storeSanityCheck();
     dir_created = storeVerifySwapDirs(opt_zap_disk_store);
-    sprintf(swaplog_file, "%s/log", swappath(0));
+    if (Config.Log.swap)
+        strncpy(swaplog_file, Config.Log.swap, SQUID_MAXPATHLEN);
+    else
+       sprintf(swaplog_file, "%s/log", swappath(0));
     swaplog_fd = file_open(swaplog_file, NULL, O_WRONLY | O_CREAT);
     debug(20, 3, "swaplog_fd %d is now '%s'\n", swaplog_fd, swaplog_file);
     if (swaplog_fd < 0) {
@@ -2617,7 +2622,6 @@ int
 storeWriteCleanLog(void)
 {
     StoreEntry *e = NULL;
-    LOCAL_ARRAY(char, swapfilename, MAX_FILE_NAME_LEN);
     FILE *fp = NULL;
     int n = 0;
     int x = 0;
@@ -2630,7 +2634,7 @@ storeWriteCleanLog(void)
     }
     debug(20, 1, "storeWriteCleanLog: Starting...\n");
     start = getCurrentTime();
-    sprintf(tmp_filename, "%s/log_clean", swappath(0));
+    sprintf(tmp_filename, "%s_clean", swaplog_file);
     if ((fp = fopen(tmp_filename, "a+")) == NULL) {
        debug(20, 0, "storeWriteCleanLog: %s: %s\n", tmp_filename, xstrerror());
        return 0;
@@ -2646,7 +2650,6 @@ storeWriteCleanLog(void)
            continue;
        if (BIT_TEST(e->flag, KEY_PRIVATE))
            continue;
-       storeSwapFullPath(e->swap_file_number, swapfilename);
        x = fprintf(fp, "%08x %08x %08x %08x %9d %s\n",
            (int) e->swap_file_number,
            (int) e->timestamp,
@@ -2697,7 +2700,7 @@ storeWriteCleanLog(void)
        r > 0 ? r : 0, (double) n / (r > 0 ? r : 1));
 
     /* touch a timestamp file */
-    sprintf(tmp_filename, "%s/log-last-clean", swappath(0));
+    sprintf(tmp_filename, "%s-last-clean", swaplog_file);
     file_close(file_open(tmp_filename, NULL, O_WRONLY | O_CREAT | O_TRUNC));
     return n;
 }