]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Configuration cleanup.
authorwessels <>
Mon, 25 Aug 1997 09:51:46 +0000 (09:51 +0000)
committerwessels <>
Mon, 25 Aug 1997 09:51:46 +0000 (09:51 +0000)
- set up 'DEFAULT_IF_NONE' option for things like http_port
  and cache_dir where we want to set a default only if there
  is not one or more given in the config file.
- Implemented the configuration dump via cachemanager.  All the
  easy config types have dump functions; the remainder are
  unimplemented.

src/Makefile.in
src/cache_cf.cc
src/cf.data.pre
src/cf_gen.cc
src/enums.h
src/globals.h
src/mime.cc
src/protos.h
src/stat.cc

index 4a4473d186a2482b021b87a98ef7563c633cd23e..aeeed87dc2d704a7c13b0196cd3114f202d834df 100644 (file)
@@ -1,7 +1,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.85 1997/08/10 04:42:32 wessels Exp $
+#  $Id: Makefile.in,v 1.86 1997/08/25 03:51:46 wessels Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -132,8 +132,7 @@ OBJS                = \
                $(XTRA_OBJS)
 
 DEFAULTS        = \
-       -DDEFAULT_CONFIG_FILE=\"$(DEFAULT_CONFIG_FILE)\" \
-       -DDEFAULT_SWAP_DIR=\"$(DEFAULT_SWAP_DIR)\"
+       -DDEFAULT_CONFIG_FILE=\"$(DEFAULT_CONFIG_FILE)\"
 
 all:    squid.conf $(PROGS) $(UTILS) $(SUID_UTILS) $(CGIPROGS)
 
index 8714dc102cfd05640049d0e484d71cf4cdf54598..27ad50a1cc82405a9eb5be68f6093e7229f4474b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cache_cf.cc,v 1.218 1997/08/25 02:17:45 wessels Exp $
+ * $Id: cache_cf.cc,v 1.219 1997/08/25 03:51:47 wessels Exp $
  *
  * DEBUG: section 3     Configuration File Parsing
  * AUTHOR: Harvest Derived
@@ -58,6 +58,7 @@ static void parseTimeLine _PARAMS((time_t * tptr, const char *units));
 static void parse_string _PARAMS((char **));
 static void parse_wordlist _PARAMS((wordlist **));
 static void default_all _PARAMS((void));
+static void defaults_if_none _PARAMS((void));
 static int parse_line _PARAMS((char *));
 static void parseBytesLine _PARAMS((size_t * bptr, const char *units));
 static size_t parseBytesUnits _PARAMS((const char *unit));
@@ -204,6 +205,7 @@ parseConfigFile(const char *file_name)
        }
     }
     fclose(fp);
+    defaults_if_none();
     configDoConfigure();
     return 0;
 }
@@ -331,9 +333,9 @@ parseBytesUnits(const char *unit)
  *****************************************************************************/
 
 static void
-dump_acl(acl * acl)
+dump_acl(StoreEntry *entry, const char *name, acl * acl)
 {
-    assert(0);
+    storeAppendPrintf(entry, "%s -- UNIMPLEMENTED\n", name);
 }
 
 static void
@@ -349,9 +351,9 @@ free_acl(acl ** acl)
 }
 
 static void
-dump_acl_access(struct _acl_access *head)
+dump_acl_access(StoreEntry *entry, const char *name, struct _acl_access *head)
 {
-    assert(0);
+    storeAppendPrintf(entry, "%s -- UNIMPLEMENTED\n", name);
 }
 
 static void
@@ -367,9 +369,9 @@ free_acl_access(struct _acl_access **head)
 }
 
 static void
-dump_address(struct in_addr addr)
+dump_address(StoreEntry *entry, const char *name, struct in_addr addr)
 {
-    printf("%s", inet_ntoa(addr));
+    storeAppendPrintf(entry, "%s %s\n", name, inet_ntoa(addr));
 }
 
 static void
@@ -395,9 +397,25 @@ free_address(struct in_addr *addr)
 }
 
 static void
-dump_cachedir(struct _cacheSwap swap)
+dump_cachedir(StoreEntry * entry, const char *name, struct _cacheSwap swap)
 {
-    assert(0);
+    SwapDir *s;
+    int i;
+    for (i = 0; i<swap.n_configured; i++) {
+       s = swap.swapDirs+i;
+       storeAppendPrintf(entry, "%s %s %d %d %d\n",
+           name,
+           s->path,
+           s->max_size>>10,
+           s->l1,
+           s->l2);
+    }
+}
+
+static int
+check_null_cachedir(struct _cacheSwap swap)
+{
+    return swap.swapDirs == NULL;
 }
 
 static void
@@ -478,9 +496,9 @@ free_cachedir(struct _cacheSwap *swap)
 }
 
 static void
-dump_peer(peer * p)
+dump_peer(StoreEntry *entry, const char *name, peer * p)
 {
-    assert(0);
+    storeAppendPrintf(entry, "%s -- UNIMPLEMENTED\n", name);
 }
 
 static void
@@ -562,9 +580,9 @@ free_peer(peer ** P)
 }
 
 static void
-dump_cachemgrpasswd(cachemgr_passwd * list)
+dump_cachemgrpasswd(StoreEntry *entry, const char *name, cachemgr_passwd * list)
 {
-    assert(0);
+    storeAppendPrintf(entry, "%s -- UNIMPLEMENTED\n", name);
 }
 
 static void
@@ -591,9 +609,9 @@ free_cachemgrpasswd(cachemgr_passwd ** head)
 
 
 static void
-dump_denyinfo(struct _acl_deny_info_list *var)
+dump_denyinfo(StoreEntry *entry, const char *name, struct _acl_deny_info_list *var)
 {
-    assert(0);
+    storeAppendPrintf(entry, "%s -- UNIMPLEMENTED\n", name);
 }
 
 static void
@@ -714,7 +732,7 @@ parse_hostdomaintype(void)
 }
 
 static void
-dump_httpanonymizer(int var)
+dump_httpanonymizer(StoreEntry *entry, const char *name, int var)
 {
     switch (var) {
     case ANONYMIZER_NONE:
@@ -746,14 +764,20 @@ parse_httpanonymizer(int *var)
 
 
 static void
-dump_ushortlist(ushortlist * u)
+dump_ushortlist(StoreEntry *entry, const char *name, ushortlist * u)
 {
     while (u) {
-       printf("%d ", (int) u->i);
+       storeAppendPrintf(entry, "%s %d\n", name, (int) u->i);
        u = u->next;
     }
 }
 
+static int
+check_null_ushortlist(ushortlist * u)
+{
+    return u == NULL;
+}
+
 static void
 parse_ushortlist(ushortlist ** P)
 {
@@ -784,9 +808,9 @@ free_ushortlist(ushortlist ** P)
 }
 
 static void
-dump_int(int var)
+dump_int(StoreEntry *entry, const char *name, int var)
 {
-    printf("%d", var);
+    storeAppendPrintf(entry, "%s %d\n", name, var);
 }
 
 static void
@@ -805,9 +829,9 @@ free_int(int *var)
 }
 
 static void
-dump_onoff(int var)
+dump_onoff(StoreEntry *entry, const char *name, int var)
 {
-    printf(var ? "on" : "off");
+    storeAppendPrintf(entry, "%s %s\n", name, var ? "on" : "off");
 }
 
 static void
@@ -842,9 +866,9 @@ parse_pathname_stat(char **path)
 }
 
 static void
-dump_refreshpattern(refresh_t * head)
+dump_refreshpattern(StoreEntry *entry, const char *name, refresh_t * head)
 {
-    assert(0);
+    storeAppendPrintf(entry, "%s -- UNIMPLEMENTED\n", name);
 }
 
 static void
@@ -915,9 +939,9 @@ free_refreshpattern(refresh_t ** head)
 }
 
 static void
-dump_regexlist(relist * var)
+dump_regexlist(StoreEntry *entry, const char *name, relist * var)
 {
-    assert(0);
+    storeAppendPrintf(entry, "%s -- UNIMPLEMENTED\n", name);
 }
 
 static void
@@ -934,9 +958,10 @@ free_regexlist(relist ** var)
 }
 
 static void
-dump_string(char *var)
+dump_string(StoreEntry *entry, const char *name, char *var)
 {
-    printf("%s", var);
+    if (var != NULL)
+        storeAppendPrintf(entry, "%s %s\n", name, var);
 }
 
 static void
@@ -967,9 +992,9 @@ parse_eol(char *volatile *var)
 }
 
 static void
-dump_time_t(time_t var)
+dump_time_t(StoreEntry *entry, const char *name, time_t var)
 {
-    printf("%d", (int) var);
+    storeAppendPrintf(entry, "%s %d seconds\n", name, (int) var);
 }
 
 static void
@@ -985,21 +1010,21 @@ free_time_t(time_t * var)
 }
 
 static void
-dump_size_t(size_t var)
+dump_size_t(StoreEntry *entry, const char *name, size_t var)
 {
-    printf("%d", (int) var);
+    storeAppendPrintf(entry, "%s %d\n", name, (int) var);
 }
 
 static void
-dump_b_size_t(size_t var)
+dump_b_size_t(StoreEntry *entry, const char *name, size_t var)
 {
-    printf("%d bytes", (int) var);
+    storeAppendPrintf(entry, "%s %d %s\n", name, (int) var, B_BYTES_STR);
 }
 
 static void
-dump_kb_size_t(size_t var)
+dump_kb_size_t(StoreEntry *entry, const char *name, size_t var)
 {
-    printf("%d KB", (int) var);
+    storeAppendPrintf(entry, "%s %d %s\n", name, (int) var, B_KBYTES_STR);
 }
 
 static void
@@ -1035,9 +1060,9 @@ free_size_t(size_t * var)
 #define free_gb_size_t free_size_t
 
 static void
-dump_ushort(u_short var)
+dump_ushort(StoreEntry *entry, const char *name, u_short var)
 {
-    printf("%d", var);
+    storeAppendPrintf(entry, "%s %d\n", name, var);
 }
 
 static void
@@ -1059,14 +1084,12 @@ parse_ushort(u_short * var)
 }
 
 static void
-dump_wordlist(wordlist * list)
+dump_wordlist(StoreEntry *entry, const char *name, wordlist * list)
 {
-    printf("{");
     while (list != NULL) {
-       printf("%s ", list->key);
+       storeAppendPrintf(entry, "%s %s\n", name, list->key);
        list = list->next;
     }
-    printf("}");
 }
 
 static void
index 2fd6b3788af9fd7909e4c2a64234c765241174e8..d0b8b5bdf0933b574c9bce10ac8e04a2028bb9e2 100644 (file)
@@ -1,6 +1,7 @@
 NAME: http_port ascii_port
 TYPE: ushortlist
-DEFAULT: 3128
+DEFAULT: none
+DEFAULT_IF_NONE: 3128
 LOC: Config.Port.http
 DOC_START
        The port number where squid will listen for HTTP client
@@ -488,6 +489,7 @@ DOC_END
 NAME: cache_dir
 TYPE: cachedir
 DEFAULT: none
+DEFAULT_IF_NONE: @DEFAULT_SWAP_DIR@ 100 256 16
 LOC: Config.cacheSwap
 DOC_START
        Directory for on-disk cache storage.  The cache will change into
index d6036a8cf7bc9481fde6a8a402d2dbce8586d466..f1970c7f4799e5163719f09086ad37d7ba8930ec 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cf_gen.cc,v 1.7 1997/07/14 21:11:01 wessels Exp $
+ * $Id: cf_gen.cc,v 1.8 1997/08/25 03:51:48 wessels Exp $
  *
  * DEBUG: section 1     Startup and Main Loop
  * AUTHOR: Max Okumoto
@@ -34,9 +34,9 @@
  *
  *             The output files are as follows:
  *             cf_parser.c - this file contains, default_all() which
- *                       initializes
- *                       variables with the default values, parse_line() that
- *                       parses line from squid.conf, dump_all that dumps the
+ *                       initializes variables with the default
+ *                       values, parse_line() that parses line from
+ *                       squid.conf, dump_config that dumps the
  *                       current the values of the variables.
  *             squid.conf - default configuration file given to the server
  *                      administrator.
@@ -69,6 +69,7 @@ typedef struct Entry {
     char *type;
     char *loc;
     char *default_value;
+    char *default_if_none;
     char *comment;
     Line *doc;
     struct Entry *next;
@@ -82,6 +83,7 @@ static void gen_parse(Entry *, FILE *);
 static void gen_dump(Entry *, FILE *);
 static void gen_free(Entry *, FILE *);
 static void gen_conf(Entry *, FILE *);
+static void gen_default_if_none(Entry *, FILE *);
 
 int
 main(int argc, char *argv[])
@@ -151,6 +153,11 @@ main(int argc, char *argv[])
                while (isspace(*ptr))
                    ptr++;
                curr->default_value = strdup(ptr);
+           } else if (!strncmp(buff, "DEFAULT_IF_NONE:", 16)) {
+               ptr = buff + 16;
+               while (isspace(*ptr))
+                   ptr++;
+               curr->default_if_none = strdup(ptr);
            } else if (!strncmp(buff, "LOC:", 4)) {
                if ((ptr = strtok(buff + 4, WS)) == NULL) {
                    printf("Error on line %d\n", linenum);
@@ -232,7 +239,7 @@ main(int argc, char *argv[])
     /*-------------------------------------------------------------------*
      * Generate default_all()
      * Generate parse_line()
-     * Generate dump_all()
+     * Generate dump_config()
      * Generate free_all()
      * Generate example squid.conf file
      *-------------------------------------------------------------------*/
@@ -253,6 +260,7 @@ main(int argc, char *argv[])
        input_filename, argv[0]
        );
     rc = gen_default(entries, fp);
+    gen_default_if_none(entries, fp);
     gen_parse(entries, fp);
     gen_dump(entries, fp);
     gen_free(entries, fp);
@@ -285,7 +293,6 @@ gen_default(Entry * head, FILE * fp)
        "\tparse_line(tmp_line);\n"
        "}\n"
        );
-
     fprintf(fp,
        "void\n"
        "default_all(void)\n"
@@ -319,6 +326,31 @@ gen_default(Entry * head, FILE * fp)
     return rc;
 }
 
+static void
+gen_default_if_none(Entry * head, FILE * fp)
+{
+    Entry *entry;
+    fprintf(fp,
+       "void\n"
+       "defaults_if_none(void)\n"
+       "{\n"
+       );
+    for (entry = head; entry != NULL; entry = entry->next) {
+       assert(entry->name);
+       assert(entry->loc);
+       if (entry->default_if_none == NULL)
+           continue;
+       fprintf(fp,
+           "\tif (check_null_%s(%s))\n"
+           "\t\tdefault_line(\"%s %s\");\n",
+           entry->type,
+           entry->loc,
+           entry->name,
+           entry->default_if_none);
+    }
+    fprintf(fp, "}\n\n");
+}
+
 static void
 gen_parse(Entry * head, FILE * fp)
 {
@@ -369,16 +401,17 @@ gen_dump(Entry * head, FILE * fp)
     Entry *entry;
     fprintf(fp,
        "void\n"
-       "dump_all(void)\n"
+       "dump_config(StoreEntry *entry)\n"
        "{\n"
        );
     for (entry = head; entry != NULL; entry = entry->next) {
        assert(entry->loc);
        if (strcmp(entry->loc, "none") == 0)
            continue;
-       fprintf(fp, "\tprintf(\"%s = \");\n", entry->loc);
-       fprintf(fp, "\tdump_%s(%s);\n", entry->type, entry->loc);
-       fprintf(fp, "\tprintf(\"\\n\");\n");
+       fprintf(fp, "\tdump_%s(entry, \"%s\", %s);\n",
+               entry->type,
+               entry->name,
+               entry->loc);
     }
     fprintf(fp, "}\n\n");
 }
index b5f73d5b909b95c9100c6a1d43c2ff98864300cf..10b4296d41c8f051ecd5fb7cd0d8cea2e24b2d2c 100644 (file)
@@ -120,8 +120,7 @@ typedef enum {
 typedef enum {
     MGR_NONE,
     MGR_CLIENT_LIST,
-    MGR_CONFIG,
-    MGR_CONFIG_FILE,
+    MGR_CONFIGURATION,
     MGR_DNSSERVERS,
     MGR_FILEDESCRIPTORS,
     MGR_FQDNCACHE,
index 87499f795965947246fbc65bcb9ac9c43e1ce5a8..0983df277b49e021e569589010a3969c94f434f2 100644 (file)
@@ -17,7 +17,6 @@ extern char ThisCache[SQUIDHOSTNAMELEN << 1];
 extern char config_input_line[BUFSIZ];
 extern const char *AclMatchedName;     /* NULL */
 extern const char *DefaultConfigFile;  /* DEFAULT_CONFIG_FILE */
-extern const char *DefaultSwapDir;     /* DEFAULT_SWAP_DIR */
 extern const char *RequestMethodStr[];
 extern const char *ProtocolStr[];
 extern const char *cfg_filename;       /* NULL */
index 6e04f70c1cc3bf8aa0a8bbc63bd0d8bf4b76e442..e625553fa7fbd18a3438cb3e060f9f56533d63d9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: mime.cc,v 1.36 1997/07/21 07:20:59 wessels Exp $
+ * $Id: mime.cc,v 1.37 1997/08/25 03:51:50 wessels Exp $
  *
  * DEBUG: section 25    MIME Parsing
  * AUTHOR: Harvest Derived
@@ -379,6 +379,7 @@ mimeInit(char *filename)
     mimeLoadIconFile(ICON_MENU);
     mimeLoadIconFile(ICON_DIRUP);
     mimeLoadIconFile(ICON_LINK);
+    debug(25, 1) ("Loaded Icons.\n");
 }
 
 static void
@@ -430,7 +431,7 @@ mimeLoadIconFile(const char *icon)
     storeComplete(e);
     storeTimestampsSet(e);
     BIT_SET(e->flag, ENTRY_SPECIAL);
-    debug(25, 1) ("Loaded icon %s\n", url);
+    debug(25, 3) ("Loaded icon %s\n", url);
     storeUnlockObject(e);
     put_free_4k_page(buf);
 }
index b9969eb462749ce2e4f0ebc830b2df6dcbdd71e2..16d656789727f1ae1cac92be9967c6ea9f77c2a5 100644 (file)
@@ -52,7 +52,6 @@ extern int parseConfigFile _PARAMS((const char *file_name));
 extern void intlistDestroy _PARAMS((intlist **));
 extern void wordlistDestroy _PARAMS((wordlist **));
 extern void configFreeMemory _PARAMS((void));
-extern void dump_all _PARAMS((void));
 
 extern void cbdataInit _PARAMS((void));
 extern void cbdataAdd _PARAMS((void *p));
@@ -553,7 +552,7 @@ extern OBJH statFiledescriptors;
 extern OBJH log_enable;
 extern OBJH info_get;
 extern OBJH server_list;
-extern OBJH parameter_get;
+extern OBJH dump_config;
 extern OBJH storeDirStats;
 extern OBJH pconnHistDump;
 
index e38fb5136ff9bf6d29d003f2e058e9d202413e1a..621683fc817bf75e5e8c949ee4a74cb29aac73d8 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: stat.cc,v 1.154 1997/08/10 06:34:32 wessels Exp $
+ * $Id: stat.cc,v 1.155 1997/08/25 03:51:53 wessels Exp $
  *
  * DEBUG: section 18    Cache Manager Statistics
  * AUTHOR: Harvest Derived
@@ -741,43 +741,6 @@ info_get(StoreEntry * sentry)
     storeAppendPrintf(sentry, close_bracket);
 }
 
-void
-parameter_get(StoreEntry * sentry)
-{
-    storeAppendPrintf(sentry, open_bracket);
-    storeAppendPrintf(sentry,
-       "{VM-Max %d \"# Maximum hot-vm cache (MB)\"}\n",
-       Config.Mem.maxSize / (1 << 20));
-    storeAppendPrintf(sentry,
-       "{VM-High %d \"# High water mark hot-vm cache (%%)\"}\n",
-       Config.Mem.highWaterMark);
-    storeAppendPrintf(sentry,
-       "{VM-Low %d \"# Low water mark hot-vm cache (%%)\"}\n",
-       Config.Mem.lowWaterMark);
-    storeAppendPrintf(sentry,
-       "{Swap-Max %d \"# Maximum disk cache (MB)\"}\n",
-       Config.Swap.maxSize / (1 << 10));
-    storeAppendPrintf(sentry,
-       "{Swap-High %d \"# High water mark disk cache (%%)\"}\n",
-       Config.Swap.highWaterMark);
-    storeAppendPrintf(sentry,
-       "{Swap-Low %d \"# Low water mark disk cache (%%)\"}\n",
-       Config.Swap.lowWaterMark);
-    storeAppendPrintf(sentry,
-       "{Neg-TTL %d \"# TTL for negative cache (s)\"}\n",
-       Config.negativeTtl);
-    storeAppendPrintf(sentry,
-       "{ReadTimeout %d \"# Maximum idle connection (s)\"}\n",
-       Config.Timeout.read);
-    storeAppendPrintf(sentry, "{DeferTimeout %d\n", Config.Timeout.defer);
-    storeAppendPrintf(sentry, "{ClientLifetime %d\n", Config.Timeout.lifetime);
-    /* Cachemgr.cgi expects an integer in the second field of the string */
-    storeAppendPrintf(sentry,
-       "{HttpAccelMode %d \"# Is operating as an HTTP accelerator\"}\n",
-       Config2.Accel.on);
-    storeAppendPrintf(sentry, close_bracket);
-}
-
 static void
 proto_newobject(cacheinfo * obj, protocol_t proto_id, int size, int restart)
 {