From ae542f391b635d1dd6546098e044e5638bb7d4c4 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Fri, 6 Jun 2014 00:52:02 -0400 Subject: [PATCH 1/4] actually report the filename in _psl_filename --- src/psl2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/psl2c.c b/src/psl2c.c index a6b5b6c..8b1ec95 100644 --- a/src/psl2c.c +++ b/src/psl2c.c @@ -446,7 +446,7 @@ int main(int argc, const char **argv) fprintf(fpout, "static time_t _psl_file_time = %lu;\n", st.st_mtime); fprintf(fpout, "static time_t _psl_compile_time = %lu;\n", time(NULL)); fprintf(fpout, "static const char _psl_sha1_checksum[] = \"%s\";\n", checksum); - fprintf(fpout, "static const char _psl_filename[] = \"%s\";\n", checksum); + fprintf(fpout, "static const char _psl_filename[] = \"%s\";\n", argv[1]); if (fclose(fpout) != 0) ret = 4; From 9b9c3a35c13ad8a9096891846ced86ac95586d52 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Fri, 6 Jun 2014 01:10:21 -0400 Subject: [PATCH 2/4] clean up help output --- tools/psl.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/tools/psl.c b/tools/psl.c index 9d684e6..7af00ca 100644 --- a/tools/psl.c +++ b/tools/psl.c @@ -36,22 +36,22 @@ #include #include -static void usage(int err) +static void usage(int err, FILE* f) { - fprintf(stderr, "\n"); - fprintf(stderr, "Usage: psl [options] \n"); - fprintf(stderr, "\n"); - fprintf(stderr, "Options:\n"); - fprintf(stderr, " --version show library version information\n"); - fprintf(stderr, " --use-builtin-data use the builtin PSL data. [default]\n"); - fprintf(stderr, " --load-psl-file load PSL data from file.\n"); - fprintf(stderr, " --is-public-suffix check if domains are public suffixes or not. [default]\n"); - fprintf(stderr, " --is-cookie-domain-acceptable \n"); - fprintf(stderr, " check if cookie-domain is acceptable for domains.\n"); - fprintf(stderr, " --print-unreg-domain print the longest publix suffix part\n"); - fprintf(stderr, " --print-reg-domain print the shortest private suffix part\n"); - fprintf(stderr, " --print-info print info about library builtin data\n"); - fprintf(stderr, "\n"); + fprintf(f, "Usage: psl [options] \n"); + fprintf(f, "\n"); + fprintf(f, "Options:\n"); + fprintf(f, " --version show library version information\n"); + fprintf(f, " --use-builtin-data use the builtin PSL data. [default]\n"); + fprintf(f, " --load-psl-file load PSL data from file.\n"); + fprintf(f, " --is-public-suffix check if domains are public suffixes or not. [default]\n"); + fprintf(f, " --is-cookie-domain-acceptable \n"); + fprintf(f, " check if cookie-domain is acceptable for domains.\n"); + fprintf(f, " --print-unreg-domain print the longest publix suffix part\n"); + fprintf(f, " --print-reg-domain print the shortest private suffix part\n"); + fprintf(f, " --print-info print info about library builtin data\n"); + fprintf(f, "\n"); + fprintf(f, "\n"); exit(err); } @@ -102,12 +102,13 @@ int main(int argc, const char *const *argv) psl_file = NULL; } if (!(psl = psl_load_file(psl_file = *(++arg)))) { - fprintf(stderr, "Failed to load PSL data from %s\n", psl_file); + fprintf(stderr, "Failed to load PSL data from %s\n\n", psl_file); psl_file = NULL; } } else if (!strcmp(*arg, "--help")) { - usage(0); + fprintf(stdout, "`psl' explores the Public Suffix List\n\n"); + usage(0, stdout); } else if (!strcmp(*arg, "--version")) { printf("psl %s\n", PACKAGE_VERSION); @@ -123,7 +124,7 @@ int main(int argc, const char *const *argv) } else { fprintf(stderr, "Unknown option '%s'\n", *arg); - usage(1); + usage(1, stderr); } } else break; From 1addfb07a0a612a8dfa80ab6489f6e4d082fcf9d Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Fri, 6 Jun 2014 01:14:40 -0400 Subject: [PATCH 3/4] abort with failure if no domain is passed to psl in a mode where it tries to work with domains --- tools/psl.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/psl.c b/tools/psl.c index 7af00ca..3cc5bf2 100644 --- a/tools/psl.c +++ b/tools/psl.c @@ -130,9 +130,15 @@ int main(int argc, const char *const *argv) break; } - if (!psl && mode != 99) { - printf("No PSL data available - aborting\n"); - exit(2); + if (mode != 99) { + if (!psl) { + fprintf(stderr, "No PSL data available - aborting\n"); + exit(2); + } + if (arg >= argv + argc) { + fprintf(stderr, "No domains given - aborting\n"); + exit(3); + } } if (mode == 1) { From 5db3946800403c56a7e38a2d9ed1375e48097da7 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Fri, 6 Jun 2014 01:23:48 -0400 Subject: [PATCH 4/4] bin/psl should be dynamically-linked --- tools/Makefile.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/Makefile.am b/tools/Makefile.am index 38d72f5..9f28b4d 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -1,5 +1,4 @@ bin_PROGRAMS = psl AM_CPPFLAGS = -I$(top_srcdir)/include -AM_LDFLAGS = -static -LDADD = ../src/libpsl.la +AM_LDFLAGS = -lpsl -L$(top_srcdir)/src