]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Remove failing-to-build and not-built-by-default ufsdump (#1013)
authorAlex Rousskov <rousskov@measurement-factory.com>
Sat, 9 Apr 2022 04:42:51 +0000 (04:42 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Mon, 11 Apr 2022 03:27:23 +0000 (03:27 +0000)
The program was not built by default since 2010 (see commit 2d94e2d).
Its build has been failing since before 2017 (see commit 4c2f8b7).

Judging by commit log, other ufsdump problems were discovered and often
left unaddressed throughout the years. Addressing some of them probably
requires serious work. The program source code and its dependencies have
been neglected for a long time and are a distraction. If we decide the
Project should have this tool, it should be rewritten from scratch.

The program does not support newer STORE_META_ TLVs and rock cache_dirs.

There are no signs that the program is in demand. No official bug
reports mention ufsdump since 2013. I could only find irrelevant
squid-dev references and no squid-users references at all since 2012.

doc/debug-sections.txt
src/Makefile.am
src/ufsdump.cc [deleted file]

index 4e3a879327a1bbe156c537dfb2dd6134b3d636ab..dc0cb6c83a51867c3d195def67909f0edd7f78ee 100644 (file)
@@ -10,7 +10,6 @@
 section 00    Client Database
 section 00    Debug Routines
 section 00    Hash Tables
-section 00    UFS Store Dump Tool
 section 01    Main Loop
 section 01    Startup and Main Loop
 section 02    Unlink Daemon
index a79b89ca73890dc28d8fc151ded7817e415d0330..589d5ac9cf9e151e608d2607f2a9402f8b71aadc 100644 (file)
@@ -158,12 +158,9 @@ endif
 noinst_LTLIBRARIES = libsquid.la
 
 EXTRA_PROGRAMS = \
-       unlinkd \
-       ufsdump
+       unlinkd
 
 ## cfgen is used when building squid
-## ufsdump is a debug utility, it is possibly useful for end users with cache
-## corruption, but at this point we do not install it.
 noinst_PROGRAMS = \
        cf_gen
 
@@ -582,89 +579,6 @@ unlinkd_LDADD = \
        $(COMPAT_LIB) \
        $(XTRA_LIBS)
 
-## What requires what..
-## many things want ACLChecklist.cc
-## ACLChecklist.cc wants AuthUserRequest.cc
-## ACLChecklist.cc wants AuthScheme.cc
-## ACLChecklist.cc wants ACLProxyAuth.cc directly
-## ACLProxyAuth.cc wants ACLUserData
-## ACLProxyAuth.cc wants ACLRegexData
-## cache_cf.cc wants $(AUTH_LIBS)
-## cache_cf.cc wants store/libstore.la
-## cache_cf.cc wants AnyP::PortCfg
-## client_side wants client_db
-## client_db wants SNMP_SOURCE
-## snmp_core wants ACLStringData
-## tools.cc wants ip/libip.la
-## client_side.cc wants ip/libip.la
-## libbase.la wants cbdata.*
-## libbase.la wants MemBuf.*
-ufsdump_SOURCES = \
-       $(WIN32_SOURCE) \
-       ClientInfo.h \
-       tests/stub_HelperChildConfig.cc \
-       MemBuf.cc \
-       MemBuf.h \
-       Parsing.h \
-       RemovalPolicy.cc \
-       tests/stub_StoreMeta.cc \
-       StoreMetaUnpacker.cc \
-       String.cc \
-       cbdata.cc \
-       cbdata.h \
-       dlink.cc \
-       dlink.h \
-       tests/stub_fd.cc \
-       fd.h \
-       helper/ChildConfig.h \
-       int.cc \
-       int.h \
-       mem/forward.h \
-       store_key_md5.cc \
-       store_key_md5.h \
-       tests/stub_time.cc \
-       ufsdump.cc
-ufsdump_LDADD = \
-       ident/libident.la \
-       acl/libacls.la \
-       eui/libeui.la \
-       acl/libstate.la \
-       acl/libapi.la \
-       base/libbase.la \
-       libsquid.la \
-       ip/libip.la \
-       fs/libfs.la \
-       ipc/libipc.la \
-       mgr/libmgr.la \
-       debug/libdebug.la \
-       $(XTRA_OBJS) \
-       $(REPL_OBJS) \
-       $(NETTLELIB) \
-       $(CRYPTLIB) \
-       $(REGEXLIB) \
-       $(SSLLIB) \
-       $(COMPAT_LIB) \
-       $(EPOLL_LIBS) \
-       $(MINGW_LIBS) \
-       $(XTRA_LIBS)
-ufsdump_DEPENDENCIES = \
-       ident/libident.la \
-       acl/libacls.la \
-       eui/libeui.la \
-       acl/libstate.la \
-       acl/libapi.la \
-       base/libbase.la \
-       libsquid.la \
-       ip/libip.la \
-       fs/libfs.la \
-       ipc/libipc.la \
-       mgr/libmgr.la \
-       DiskIO/libdiskio.la \
-       $(REPL_OBJS)
-
-nodist_ufsdump_SOURCES = \
-       globals.cc
-
 sysconf_DATA = \
        squid.conf.default \
        squid.conf.documented \
diff --git a/src/ufsdump.cc b/src/ufsdump.cc
deleted file mode 100644 (file)
index ac7d258..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (C) 1996-2022 The Squid Software Foundation and contributors
- *
- * Squid software is distributed under GPLv2+ license and includes
- * contributions from numerous individuals and organizations.
- * Please see the COPYING and CONTRIBUTORS files for details.
- */
-
-/* DEBUG: section 00    UFS Store Dump Tool */
-
-#include "squid.h"
-#include "Generic.h"
-#include "md5.h"
-#include "mgr/Registration.h"
-#include "Store.h"
-#include "store_key_md5.h"
-#include "StoreMeta.h"
-#include "StoreMetaUnpacker.h"
-
-#undef malloc
-#undef free
-
-#include <cassert>
-#include <iostream>
-#include <stdexcept>
-
-/* stub functions for parts of squid not factored to be dynamic yet */
-void
-eventAdd(const char *name, EVH * func, void *arg, double when, int, bool cbdata)
-{}
-
-// required by storeKeyPublicByRequest*
-// XXX: what pulls in storeKeyPublicByRequest?
-const char *urlCanonical(HttpRequest *) { assert(false); return NULL; }
-
-void
-storeAppendPrintf(StoreEntry * e, const char *fmt,...)
-{
-    va_list args;
-    va_start(args, fmt);
-
-    assert(false);
-
-    va_end(args);
-}
-
-void
-Mgr::RegisterAction(char const * action, char const * desc, OBJH * handler, int pw_req_flag, int atomic) {}
-
-/* MinGW needs also a stub of death() */
-void
-death(int sig)
-{
-    std::cout << "Fatal: Signal " <<  sig;
-    exit(EXIT_FAILURE);
-}
-
-void
-fatal(const char *message)
-{
-    fprintf(stderr, "FATAL: %s\n", message);
-    exit(EXIT_FAILURE);
-}
-
-/* end stub functions */
-
-struct MetaStd {
-    time_t timestamp;
-    time_t lastref;
-    time_t expires;
-    time_t lastmod;
-    size_t swap_file_sz;
-    uint16_t refcount;
-    uint16_t flags;
-};
-
-struct MetaStdLfs {
-    time_t timestamp;
-    time_t lastref;
-    time_t expires;
-    time_t lastmod;
-    uint64_t swap_file_sz;
-    uint16_t refcount;
-    uint16_t flags;
-};
-
-struct DumpStoreMeta : public unary_function<StoreMeta, void> {
-    DumpStoreMeta() {}
-
-    void operator()(StoreMeta const &x) {
-        switch (x.getType()) {
-
-        case STORE_META_KEY:
-            std::cout << "MD5: " << storeKeyText((const cache_key *)x.value) << std::endl;
-            break;
-
-        case STORE_META_STD:
-            std::cout << "STD, Size:" << ((struct MetaStd*)x.value)->swap_file_sz <<
-                      " Flags: 0x" << std::hex << ((struct MetaStd*)x.value)->flags << std::dec <<
-                      " Refcount: " << ((struct MetaStd*)x.value)->refcount <<
-                      std::endl;
-            break;
-
-        case STORE_META_STD_LFS:
-            std::cout << "STD_LFS, Size: " << ((struct MetaStdLfs*)x.value)->swap_file_sz <<
-                      " Flags: 0x" << std::hex << ((struct MetaStdLfs*)x.value)->flags << std::dec <<
-                      " Refcount: " << ((struct MetaStdLfs*)x.value)->refcount <<
-                      std::endl;
-            break;
-
-        case STORE_META_URL:
-            assert (((char *)x.value)[x.length - 1] == 0);
-            std::cout << "URL: " << (char *)x.value << std::endl;
-            break;
-
-        default:
-            std::cout << "Unknown store meta type: " << (int)x.getType() <<
-                      " of length " << x.length << std::endl;
-            break;
-        }
-    }
-};
-
-int
-main(int argc, char *argv[])
-{
-    int fd = -1;
-    StoreMeta *metadata = NULL;
-
-    try {
-        if (argc != 2)
-            throw std::runtime_error("No filename provided");
-
-        fd = open (argv[1], O_RDONLY | O_BINARY);
-
-        if (fd < 0)
-            throw std::runtime_error("Could not open file.");
-
-        char tempbuf[SM_PAGE_SIZE];
-
-        int len = read(fd, tempbuf, SM_PAGE_SIZE);
-
-        if (len < 0)
-            throw std::runtime_error("Could not read header into memory.");
-
-        close (fd);
-
-        fd = -1;
-
-        int hdr_len;
-
-        StoreMetaUnpacker aBuilder(tempbuf, len, &hdr_len);
-
-        metadata = aBuilder.createStoreMeta ();
-
-        cache_key key[SQUID_MD5_DIGEST_LENGTH];
-
-        memset(key, '\0', SQUID_MD5_DIGEST_LENGTH);
-
-        DumpStoreMeta dumper;
-
-        for_each(*metadata, dumper);
-
-    } catch (const std::exception &e) {
-        std::cout << "Failed : " << e.what() << std::endl;
-
-        if (fd >= 0)
-            close(fd);
-
-        if (metadata)
-            StoreMeta::FreeList(&metadata);
-
-        return EXIT_FAILURE;
-    }
-
-    return EXIT_SUCCESS;
-}
-