From: Alex Rousskov Date: Sat, 9 Apr 2022 04:42:51 +0000 (+0000) Subject: Remove failing-to-build and not-built-by-default ufsdump (#1013) X-Git-Tag: SQUID_6_0_1~212 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b706999c14c35bd936c550cec695a29687a4a123;p=thirdparty%2Fsquid.git Remove failing-to-build and not-built-by-default ufsdump (#1013) 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. --- diff --git a/doc/debug-sections.txt b/doc/debug-sections.txt index 4e3a879327..dc0cb6c83a 100644 --- a/doc/debug-sections.txt +++ b/doc/debug-sections.txt @@ -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 diff --git a/src/Makefile.am b/src/Makefile.am index a79b89ca73..589d5ac9cf 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 index ac7d25819a..0000000000 --- a/src/ufsdump.cc +++ /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 -#include -#include - -/* 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 { - 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; -} -