diff --git a/.gitignore b/.gitignore index 666dc76..91cbff2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,3 @@ webalizer-2.01-10-src.tar.bz2 clog *.src.rpm x86_64 -webalizer-2.20-01-src.tgz -webalizer-2.21-02-src.tar.bz2 -/webalizer-2.23-05-src.tgz -/webalizer-2.23-08-src.tgz diff --git a/02_fix_a_spelling_error.diff b/02_fix_a_spelling_error.diff deleted file mode 100644 index 5346799..0000000 --- a/02_fix_a_spelling_error.diff +++ /dev/null @@ -1,28 +0,0 @@ -From: Julien Viard de Galbert -Date: Wed, 24 Nov 2010 00:16:20 +0100 -Subject: Fix a spelling error - -Thank you lintian ;) - -Index: webalizer/wcmgr.c -=================================================================== ---- webalizer.orig/wcmgr.c 2013-10-06 14:34:50.000000000 +0200 -+++ webalizer/wcmgr.c 2013-10-06 14:45:59.000000000 +0200 -@@ -692,7 +692,7 @@ - } - dns_db->close(dns_db, 0); - if (verbose) -- printf("%s sucessfully deleted from cache file\n",addr); -+ printf("%s successfully deleted from cache file\n",addr); - } - - /*********************************************/ -@@ -770,7 +770,7 @@ - if (db_put(addr, name, (strcmp(name,addr))?0:1, runtime)==0) - dns_db->close(dns_db,0); - if (verbose) -- printf("%s sucessfully added to cache file\n",addr); -+ printf("%s successfully added to cache file\n",addr); - } - } - } diff --git a/04_Fix_cast_warnings_in_output.c.diff b/04_Fix_cast_warnings_in_output.c.diff deleted file mode 100644 index f7d7277..0000000 --- a/04_Fix_cast_warnings_in_output.c.diff +++ /dev/null @@ -1,67 +0,0 @@ -From: Julien Viard de Galbert -Date: Tue, 7 Oct 2014 23:45:04 +0200 -Subject: Fix cast warnings when building output.c - -Casts were used to cast to the same type, so discarded them. ---- - output.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/output.c b/output.c -index 838d383..81e869c 100644 ---- a/output.c -+++ b/output.c -@@ -949,7 +949,7 @@ void top_sites_table(int flag) - while(cnt--) - { - /* calculate totals */ -- switch ( (int)((HNODEPTR)(*pointer)->flag) ) -+ switch ( (*pointer)->flag ) - { - case OBJ_REG: h_reg++; break; - case OBJ_GRP: h_grp++; break; -@@ -1182,7 +1182,7 @@ void top_urls_table(int flag) - while (cnt--) - { - /* calculate totals */ -- switch ( (int)((UNODEPTR)(*pointer)->flag) ) -+ switch ( (*pointer)->flag ) - { - case OBJ_REG: u_reg++; break; - case OBJ_GRP: u_grp++; break; -@@ -1436,7 +1436,7 @@ void top_entry_table(int flag) - cnt=a_ctr; pointer=u_array; - while (cnt--) - { -- if ( (int)((UNODEPTR)(*pointer)->flag) == OBJ_REG ) -+ if ( (*pointer)->flag == OBJ_REG ) - { - if ( (u_int64_t)(((UNODEPTR)(*pointer))->entry) ) - { u_entry++; t_entry+=(u_int64_t)(((UNODEPTR)(*pointer))->entry); } -@@ -1540,7 +1540,7 @@ void top_refs_table() - while(cnt--) - { - /* calculate totals */ -- switch ( (int)((RNODEPTR)(*pointer)->flag) ) -+ switch ( (*pointer)->flag ) - { - case OBJ_REG: r_reg++; break; - case OBJ_HIDE: r_hid++; break; -@@ -1705,7 +1705,7 @@ void top_agents_table() - while(cnt--) - { - /* calculate totals */ -- switch ( (int)((ANODEPTR)(*pointer)->flag) ) -+ switch ( (*pointer)->flag ) - { - case OBJ_REG: a_reg++; break; - case OBJ_GRP: a_grp++; break; -@@ -1972,7 +1972,7 @@ void top_users_table() - while(cnt--) - { - /* calculate totals */ -- switch ( (int)((INODEPTR)(*pointer)->flag) ) -+ switch ( (*pointer)->flag ) - { - case OBJ_REG: i_reg++; break; - case OBJ_GRP: i_grp++; break; diff --git a/14_add_search_engines.diff b/14_add_search_engines.diff deleted file mode 100644 index 06535a4..0000000 --- a/14_add_search_engines.diff +++ /dev/null @@ -1,60 +0,0 @@ -From: Julien Viard de Galbert -Subject: enable and add more SearchEngines in .conf file - -Based on patch -14_add_search_engines.dpatch by Jose Carlos Medeiros -Also uncomment all SearchEngines directives. - -################################# -# SearchEngine field for the sensis.com.au search engine -# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=327496 -# From: Gavin Rogers - -################################ -# Support for French versions of Google keywords -# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=253830 -# From: Cyril Bouthors -No longer needed, the sample configuration matches the ".google." string. - -Index: webalizer/sample.conf -=================================================================== ---- webalizer.orig/sample.conf 2013-10-06 14:58:08.000000000 +0200 -+++ webalizer/sample.conf 2013-10-06 14:58:08.000000000 +0200 -@@ -710,21 +710,22 @@ - # engine, and the second is the URL variable used by that search engine - # to define its search terms. - --#SearchEngine .google. q= --#SearchEngine yahoo.com p= --#SearchEngine altavista.com q= --#SearchEngine aolsearch. query= --#SearchEngine ask.co q= --#SearchEngine eureka.com q= --#SearchEngine lycos.com query= --#SearchEngine hotbot.com MT= --#SearchEngine msn.com q= --#SearchEngine infoseek.com qt= --#SearchEngine excite search= --#SearchEngine netscape.com query= --#SearchEngine mamma.com query= --#SearchEngine alltheweb.com q= --#SearchEngine northernlight.com qr= -+SearchEngine .google. q= -+SearchEngine yahoo.com p= -+SearchEngine altavista.com q= -+SearchEngine aolsearch. query= -+SearchEngine ask.co q= -+SearchEngine eureka.com q= -+SearchEngine lycos.com query= -+SearchEngine hotbot.com MT= -+SearchEngine msn.com q= -+SearchEngine infoseek.com qt= -+SearchEngine excite search= -+SearchEngine netscape.com query= -+SearchEngine mamma.com query= -+SearchEngine alltheweb.com q= -+SearchEngine northernlight.com qr= -+SearchEngine sensis.com.au find= - - # Normally, search strings are converted to lower case in order to - # increase accuracy. The SearchCaseI option allows them to maintain diff --git a/17_fix_typo_supress_suppress_in_sample.conf.diff b/17_fix_typo_supress_suppress_in_sample.conf.diff deleted file mode 100644 index d7f2764..0000000 --- a/17_fix_typo_supress_suppress_in_sample.conf.diff +++ /dev/null @@ -1,21 +0,0 @@ -From: Julien Viard de Galbert -Date: Wed, 12 Jul 2017 23:59:31 +0200 -Subject: Fix typo supress -> suppress in sample.conf - ---- - sample.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sample.conf b/sample.conf -index 925f509..fc91d0c 100644 ---- a/sample.conf -+++ b/sample.conf -@@ -289,7 +289,7 @@ PageType cgi - - #Quiet no - --# ReallyQuiet will supress all messages including errors and -+# ReallyQuiet will suppress all messages including errors and - # warnings. Values can be 'yes' or 'no' with 'no' being the - # default. If 'yes' is used here, it cannot be overriden from - # the command line, so use with caution. A value of 'no' has diff --git a/27_fix_compilation_with_gcc-10.diff b/27_fix_compilation_with_gcc-10.diff deleted file mode 100644 index e42bdca..0000000 --- a/27_fix_compilation_with_gcc-10.diff +++ /dev/null @@ -1,25 +0,0 @@ -Description: Fix compilation with GCC 10. -Author: Logan Rosen -Bug-Debian: https://bugs.debian.org/957923 -Forwarded: no -Reviewed-By: Francisco Vilmar Cardoso Ruviaro -Last-Update: 2021-02-12 - ---- a/dns_resolv.c -+++ b/dns_resolv.c -@@ -78,11 +78,11 @@ - - struct dns_child child[MAXCHILD]; /* DNS child pipe data */ - --DNODEPTR host_table[MAXHASH]; /* hostname/ip hash table */ -+extern DNODEPTR host_table[MAXHASH]; /* hostname/ip hash table */ - --char buffer[BUFSIZE]; /* log file record buffer */ --char tmp_buf[BUFSIZE]; /* used to temp save above */ --struct utsname system_info; /* system info structure */ -+extern char buffer[BUFSIZE]; /* log file record buffer */ -+extern char tmp_buf[BUFSIZE]; /* used to temp save above */ -+extern struct utsname system_info; /* system info structure */ - - int raiseSigChild = 1; - diff --git a/dns-db1.patch b/dns-db1.patch new file mode 100644 index 0000000..abd4900 --- /dev/null +++ b/dns-db1.patch @@ -0,0 +1,11 @@ +--- webalizer-2.01-06/dns_resolv.c.orig Wed Feb 14 11:14:25 2001 ++++ webalizer-2.01-06/dns_resolv.c Wed Feb 14 11:15:08 2001 +@@ -86,7 +86,7 @@ + #ifdef HAVE_DB_185_H + #include /* on my RH6.0 system ?!? */ + #else +-#include /* DB header ****************/ ++#include /* DB header ****************/ + #endif /* HAVE_DB_185_H */ + + #include "webalizer.h" /* main header */ diff --git a/sources b/sources index 747c8fd..59aaac4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -00f1f18bd5ed462ea43bf98d867e7966 webalizer-2.23-08-src.tgz +26d0a3c142423678daed2d6f579525d8 webalizer-2.01-10-src.tar.bz2 diff --git a/webalizer-2.01-06-rh.patch b/webalizer-2.01-06-rh.patch new file mode 100644 index 0000000..c82d009 --- /dev/null +++ b/webalizer-2.01-06-rh.patch @@ -0,0 +1,42 @@ +--- webalizer-2.01-06/Makefile.in.rh Tue Oct 17 06:15:53 2000 ++++ webalizer-2.01-06/Makefile.in Tue Oct 17 15:43:59 2000 +@@ -18,10 +18,10 @@ + + prefix = @prefix@ + exec_prefix = @exec_prefix@ ++bindir = @bindir@ ++mandir = @mandir@ ++sysconfdir = @sysconfdir@ + +-BINDIR = @bindir@ +-MANDIR = @mandir@/man1 +-ETCDIR = @ETCDIR@ + CC = @CC@ + CFLAGS = @CFLAGS@ + LIBS = @LIBS@ +@@ -84,16 +84,16 @@ + @LN_S@ lang/webalizer_lang.@DEFAULT_LANG@ webalizer_lang.h + + install: all +- $(INSTALL_PROGRAM) webalizer ${BINDIR}/webalizer +- $(INSTALL_DATA) webalizer.1 ${MANDIR}/webalizer.1 +- $(INSTALL_DATA) sample.conf ${ETCDIR}/webalizer.conf.sample +- rm -f ${BINDIR}/webazolver +- @LN_S@ ${BINDIR}/webalizer ${BINDIR}/webazolver ++ $(INSTALL_PROGRAM) webalizer ${bindir}/webalizer ++ $(INSTALL_DATA) webalizer.1 ${mandir}/man1/webalizer.1 ++ $(INSTALL_DATA) sample.conf ${sysconfdir}/webalizer.conf.sample ++ rm -f ${bindir}/webazolver ++ @LN_S@ webalizer ${bindir}/webazolver + + uninstall: +- rm -f ${BINDIR}/webalizer +- rm -f ${BINDIR}/webazolver +- rm -f ${MANDIR}/webalizer.1 +- rm -f ${ETCDIR}/webalizer.conf.sample ++ rm -f ${bindir}/webalizer ++ rm -f ${bindir}/webazolver ++ rm -f ${mandir}/man1/webalizer.1 ++ rm -f ${sysconfdir}/webalizer.conf.sample + rm -f webalizer_lang.h + @LN_S@ lang/webalizer_lang.@DEFAULT_LANG@ webalizer_lang.h diff --git a/webalizer-2.01-10-agent-apple.patch b/webalizer-2.01-10-agent-apple.patch new file mode 100644 index 0000000..f3f7144 --- /dev/null +++ b/webalizer-2.01-10-agent-apple.patch @@ -0,0 +1,53 @@ +--- webalizer-2.01-10/webalizer.c.apple 2002-04-17 01:11:31.000000000 +0300 ++++ webalizer-2.01-10/webalizer.c 2006-04-07 10:11:41.000000000 +0300 +@@ -853,7 +853,41 @@ + } + *cp2='\0'; + } else { +- cp1=strstr(str,"Mozilla"); /* Netscape flavor */ ++ cp1=strstr(str,"AppleWebKit/"); /* Apple flavor */ ++ if (cp1!=NULL) ++ { ++ cp2=str; ++ while (*cp1!='/') *cp2++=*cp1++; ++ if (*(cp1+1)!='.'&&*(cp1+1)!=' '&&*(cp1+1)!='/'&& ++ *(cp1+1)!='('&&*(cp1+1)!='\0') ++ { ++ *cp2++=*cp1++; ++ while (*cp1!='.'&&*cp1!=' '&&*cp1!='/'&& ++ *cp1!='('&&*cp1!='\0') ++ *cp2++=*cp1++; ++ } ++ /* AppleWebKit versions grow so rapidly that we use <4 */ ++ if (mangle_agent<4 && *cp1=='.' && ++ *(cp1+1)>='0' && *(cp1+1)<='9') ++ { ++ *cp2++=*cp3++; ++ while (*cp1>='0'&&*cp1<='9') *cp2++=*cp1++; ++ } ++ if (mangle_agent<3 && *cp1=='.' && ++ *(cp1+1)>='0' && *(cp1+1)<='9') ++ { ++ *cp2++=*cp3++; ++ while (*cp1>='0'&&*cp1<='9') *cp2++=*cp1++; ++ } ++ if (mangle_agent<3) ++ while (*cp1!=' ' && *cp1!='/' && *cp1!='(' && ++ *cp1!='\0') ++ *cp2++=*cp1++; ++ *cp2='\0'; ++ } ++ else ++ { ++ cp1=strstr(str,"Mozilla"); /* Mozilla flavor */ + if (cp1!=NULL) + { + while (*cp1!='/'&&*cp1!=' '&&*cp1!='\0') *cp2++=*cp1++; +@@ -887,6 +921,7 @@ + *cp2='\0'; + } + } ++ } + } + } + diff --git a/webalizer-2.01-10-agent-compatible.patch b/webalizer-2.01-10-agent-compatible.patch new file mode 100644 index 0000000..6b5028b --- /dev/null +++ b/webalizer-2.01-10-agent-compatible.patch @@ -0,0 +1,15 @@ +--- webalizer-2.01-10/webalizer.c.compatible 2002-04-17 01:11:31.000000000 +0300 ++++ webalizer-2.01-10/webalizer.c 2006-04-06 18:36:27.000000000 +0300 +@@ -785,9 +785,10 @@ + str=cp2=log_rec.agent; + cp1=strstr(str,"ompatible"); /* check known fakers */ + if (cp1!=NULL) { +- while (*cp1!=';'&&*cp1!='\0') cp1++; ++ cp1+=9; ++ cp3=strstr(cp1,"Mozilla"); /* Mozilla can't be compatible :) */ + /* kludge for Mozilla/3.01 (compatible;) */ +- if (*cp1++==';' && strcmp(cp1,")\"")) { /* success! */ ++ if (cp3==NULL && *cp1++==';' && strcmp(cp1,")\"")) { /* success! */ + while (*cp1 == ' ') cp1++; /* eat spaces */ + while (*cp1!='.'&&*cp1!='\0'&&*cp1!=';') *cp2++=*cp1++; + if (mangle_agent<5) diff --git a/webalizer-2.01-10-agent-default.patch b/webalizer-2.01-10-agent-default.patch new file mode 100644 index 0000000..e883db1 --- /dev/null +++ b/webalizer-2.01-10-agent-default.patch @@ -0,0 +1,56 @@ +--- webalizer-2.01-10/webalizer.c.default 2002-04-17 01:11:31.000000000 +0300 ++++ webalizer-2.01-10/webalizer.c 2006-04-07 14:37:34.000000000 +0300 +@@ -886,6 +886,53 @@ + } + *cp2='\0'; + } ++ else /* default flavor */ ++ { ++ cp1=str+1; ++ i=0; ++ while (*cp1!='/' && *cp1!=' ' && *cp1!='(' && *cp1!='\0') ++ { ++ cp1++; ++ i++; ++ } ++ if (i&&*cp1=='/'&&*(cp1+1)>='0'&&*(cp1+1)<='9') ++ { ++ cp1=str+1; ++ while (*cp1!='/' && *cp1!=' ' && *cp1!='(' && *cp1!='\0') ++ *cp2++=*cp1++; ++ if (*cp1=='/') *cp2++=*cp1++; ++ while (*cp1>='0'&&*cp1<='9') *cp2++=*cp1++; ++ if (mangle_agent<5 && *cp1=='.' && ++ *(cp1+1)>='0' && *(cp1+1)<='9') ++ { ++ *cp2++=*cp1++; ++ while (*cp1>='0'&&*cp1<='9') *cp2++=*cp1++; ++ } ++ if (mangle_agent<4 && *cp1=='.' && ++ *(cp1+1)>='0' && *(cp1+1)<='9') ++ { ++ *cp2++=*cp1++; ++ while (*cp1>='0'&&*cp1<='9') *cp2++=*cp1++; ++ } ++ if (mangle_agent<3) ++ while (*cp1!='/' && *cp1!=' ' && *cp1!='(' && *cp1!='\0') ++ *cp2++=*cp1++; ++ if (mangle_agent<2) ++ { ++ cp1=strstr(str,"("); ++ if (cp1!=NULL) ++ { ++ cp1++; ++ *cp2++=' '; ++ *cp2++='('; ++ while (*cp1!=';'&&*cp1!=')'&&*cp1!='\0') ++ *cp2++=*cp1++; ++ *cp2++=')'; ++ } ++ } ++ *cp2='\0'; ++ } ++ } + } + } + } diff --git a/webalizer-2.01-10-agent-gecko.patch b/webalizer-2.01-10-agent-gecko.patch new file mode 100644 index 0000000..8a44d83 --- /dev/null +++ b/webalizer-2.01-10-agent-gecko.patch @@ -0,0 +1,69 @@ +--- webalizer-2.01-10/webalizer.c.gecko 2002-04-17 01:11:31.000000000 +0300 ++++ webalizer-2.01-10/webalizer.c 2006-04-07 15:13:43.000000000 +0300 +@@ -856,6 +856,20 @@ + cp1=strstr(str,"Mozilla"); /* Netscape flavor */ + if (cp1!=NULL) + { ++ cp1=strstr(str,"Mozilla/"); ++ if (cp1!=NULL) ++ { ++ cp3=cp1+8; ++ if (*cp3=='0' || *cp3=='1' || *cp3=='2' || ++ *cp3=='3' || *cp3=='4') cp3=NULL; ++ else ++ { ++ cp3=strstr(str," Gecko/"); ++ if (cp3==NULL) cp1=NULL; ++ } ++ } ++ if (cp1!=NULL) ++ { + while (*cp1!='/'&&*cp1!=' '&&*cp1!='\0') *cp2++=*cp1++; + if (*cp1==' ') *cp1='/'; + while (*cp1!='.'&&*cp1!='\0') *cp2++=*cp1++; +@@ -870,6 +884,37 @@ + if (mangle_agent<3) + while (*cp1!=' '&&*cp1!='\0'&&*cp1!='(') + *cp2++=*cp1++; ++ if (cp3!=NULL) ++ { ++ *cp2++=' '; ++ *cp2++='G'; *cp2++='e'; *cp2++='c'; *cp2++='k'; *cp2++='o'; ++ cp3=strstr(str,"rv:"); ++ if (cp3!=NULL) ++ { ++ cp3+=3; ++ if (*cp3!='.' && *cp3!='\0' && *cp3!=';' && *cp3!=')') ++ { ++ *cp2++=' '; ++ while (*cp3!='.' && *cp3!='\0' && ++ *cp3!=';' && *cp3!=')') *cp2++=*cp3++; ++ if (mangle_agent<5 && *cp3=='.' && ++ *(cp3+1)>='0' && *(cp3+1)<='9') ++ { ++ *cp2++=*cp3++; ++ while (*cp3>='0'&&*cp3<='9') *cp2++=*cp3++; ++ } ++ if (mangle_agent<4 && *cp3=='.' && ++ *(cp3+1)>='0' && *(cp3+1)<='9') ++ { ++ *cp2++=*cp3++; ++ while (*cp3>='0'&&*cp3<='9') *cp2++=*cp3++; ++ } ++ if (mangle_agent<3) ++ while (*cp3!='\0' && *cp3!=';' && *cp3!=')') ++ *cp2++=*cp3++; ++ } ++ } ++ } + if (mangle_agent<2) + { + /* Level 1 - Try to get OS */ +@@ -885,6 +930,7 @@ + } + } + *cp2='\0'; ++ } + } + } + } diff --git a/webalizer-2.01-10-agent-opera.patch b/webalizer-2.01-10-agent-opera.patch new file mode 100644 index 0000000..7169baf --- /dev/null +++ b/webalizer-2.01-10-agent-opera.patch @@ -0,0 +1,11 @@ +--- webalizer-2.01-10/webalizer.c.opera 2002-04-17 01:11:31.000000000 +0300 ++++ webalizer-2.01-10/webalizer.c 2006-04-06 16:31:29.000000000 +0300 +@@ -888,6 +888,8 @@ + } + } + } ++ if (cp1=strstr(log_rec.agent,"Opera ")) ++ if (cp1!=NULL && cp1==str) str[5] = '/'; + } + + /* if necessary, shrink referrer to fit storage */ diff --git a/webalizer-2.01-10-countrycode.patch b/webalizer-2.01-10-countrycode.patch new file mode 100644 index 0000000..b61222d --- /dev/null +++ b/webalizer-2.01-10-countrycode.patch @@ -0,0 +1,537 @@ +--- webalizer-2.01-10/webalizer.h.countrycode 2001-02-10 02:58:18.000000000 +0200 ++++ webalizer-2.01-10/webalizer.h 2006-03-30 15:58:18.000000000 +0300 +@@ -5,6 +5,8 @@ + #define IDX_2C(c1,c2) (((c1-'a'+1)<<5)+(c2-'a'+1) ) + #define IDX_3C(c1,c2,c3) (((c1-'a'+1)<<10)+((c2-'a'+1)<<5)+(c3-'a'+1) ) + #define IDX_4C(c1,c2,c3,c4) (((c1-'a'+1)<<15)+((c2-'a'+1)<<10)+((c3-'a'+1)<<5)+(c4-'a'+1) ) ++#define IDX_5C(c1,c2,c3,c4,c5) (((c1-'a'+1)<<20)+((c2-'a'+1)<<15)+((c3-'a'+1)<<10)+(c4-'a'+1)<<5+(c5-'a'+1) ) ++#define IDX_6C(c1,c2,c3,c4,c5,c6) (((c1-'a'+1)<<25)+((c2-'a'+1)<<20)+((c3-'a'+1)<<15)+(c4-'a'+1)<<10+(c5-'a'+1)<<5+(c6-'a'+1) ) + + #ifndef MAX + #define MAX(a,b) ((a) > (b) ? (a) : (b)) +--- webalizer-2.01-10/lang/webalizer_lang.english.countrycode 2000-10-06 08:27:48.000000000 +0300 ++++ webalizer-2.01-10/lang/webalizer_lang.english 2006-03-30 15:53:51.000000000 +0300 +@@ -324,257 +324,270 @@ + /* Country codes (previously in ctry.h header file) */ + + struct country_code ctry[] = { +-{ 0, "Unresolved/Unknown", 0,0,0 }, +-{ IDX_3C('c','o','m'), "US Commercial", 0,0,0 }, +-{ IDX_3C('e','d','u'), "US Educational", 0,0,0 }, +-{ IDX_3C('g','o','v'), "US Government", 0,0,0 }, +-{ IDX_3C('i','n','t'), "International (int)", 0,0,0 }, +-{ IDX_3C('m','i','l'), "US Military", 0,0,0 }, +-{ IDX_3C('n','e','t'), "Network", 0,0,0 }, +-{ IDX_3C('o','r','g'), "Non-Profit Organization", 0,0,0 }, +-{ IDX_4C('a','r','p','a'),"Old style Arpanet (arpa)", 0,0,0 }, +-{ IDX_4C('n','a','t','o'),"Nato field (nato)", 0,0,0 }, +-{ IDX_2C('a','d'), "Andorra", 0,0,0 }, +-{ IDX_2C('a','e'), "United Arab Emirates", 0,0,0 }, +-{ IDX_2C('a','f'), "Afghanistan", 0,0,0 }, +-{ IDX_2C('a','g'), "Antigua and Barbuda", 0,0,0 }, +-{ IDX_2C('a','i'), "Anguilla", 0,0,0 }, +-{ IDX_2C('a','l'), "Albania", 0,0,0 }, +-{ IDX_2C('a','m'), "Armenia", 0,0,0 }, +-{ IDX_2C('a','n'), "Netherlands Antilles", 0,0,0 }, +-{ IDX_2C('a','o'), "Angola", 0,0,0 }, +-{ IDX_2C('a','q'), "Antarctica", 0,0,0 }, +-{ IDX_2C('a','r'), "Argentina", 0,0,0 }, +-{ IDX_2C('a','s'), "American Samoa", 0,0,0 }, +-{ IDX_2C('a','t'), "Austria", 0,0,0 }, +-{ IDX_2C('a','u'), "Australia", 0,0,0 }, +-{ IDX_2C('a','w'), "Aruba", 0,0,0 }, +-{ IDX_2C('a','z'), "Azerbaijan", 0,0,0 }, +-{ IDX_2C('b','a'), "Bosnia and Herzegovina", 0,0,0 }, +-{ IDX_2C('b','b'), "Barbados", 0,0,0 }, +-{ IDX_2C('b','d'), "Bangladesh", 0,0,0 }, +-{ IDX_2C('b','e'), "Belgium", 0,0,0 }, +-{ IDX_2C('b','f'), "Burkina Faso", 0,0,0 }, +-{ IDX_2C('b','g'), "Bulgaria", 0,0,0 }, +-{ IDX_2C('b','h'), "Bahrain", 0,0,0 }, +-{ IDX_2C('b','i'), "Burundi", 0,0,0 }, +-{ IDX_2C('b','j'), "Benin", 0,0,0 }, +-{ IDX_2C('b','m'), "Bermuda", 0,0,0 }, +-{ IDX_2C('b','n'), "Brunei Darussalam", 0,0,0 }, +-{ IDX_2C('b','o'), "Bolivia", 0,0,0 }, +-{ IDX_2C('b','r'), "Brazil", 0,0,0 }, +-{ IDX_2C('b','s'), "Bahamas", 0,0,0 }, +-{ IDX_2C('b','t'), "Bhutan", 0,0,0 }, +-{ IDX_2C('b','v'), "Bouvet Island", 0,0,0 }, +-{ IDX_2C('b','w'), "Botswana", 0,0,0 }, +-{ IDX_2C('b','y'), "Belarus", 0,0,0 }, +-{ IDX_2C('b','z'), "Belize", 0,0,0 }, +-{ IDX_2C('c','a'), "Canada", 0,0,0 }, +-{ IDX_2C('c','c'), "Cocos (Keeling) Islands", 0,0,0 }, +-{ IDX_2C('c','f'), "Central African Republic", 0,0,0 }, +-{ IDX_2C('c','g'), "Congo", 0,0,0 }, +-{ IDX_2C('c','h'), "Switzerland", 0,0,0 }, +-{ IDX_2C('c','i'), "Cote D'Ivoire (Ivory Coast)", 0,0,0 }, +-{ IDX_2C('c','k'), "Cook Islands", 0,0,0 }, +-{ IDX_2C('c','l'), "Chile", 0,0,0 }, +-{ IDX_2C('c','m'), "Cameroon", 0,0,0 }, +-{ IDX_2C('c','n'), "China", 0,0,0 }, +-{ IDX_2C('c','o'), "Colombia", 0,0,0 }, +-{ IDX_2C('c','r'), "Costa Rica", 0,0,0 }, +-{ IDX_2C('c','s'), "Czechoslovakia (former)", 0,0,0 }, +-{ IDX_2C('c','u'), "Cuba", 0,0,0 }, +-{ IDX_2C('c','v'), "Cape Verde", 0,0,0 }, +-{ IDX_2C('c','x'), "Christmas Island", 0,0,0 }, +-{ IDX_2C('c','y'), "Cyprus", 0,0,0 }, +-{ IDX_2C('c','z'), "Czech Republic", 0,0,0 }, +-{ IDX_2C('d','e'), "Germany", 0,0,0 }, +-{ IDX_2C('d','j'), "Djibouti", 0,0,0 }, +-{ IDX_2C('d','k'), "Denmark", 0,0,0 }, +-{ IDX_2C('d','m'), "Dominica", 0,0,0 }, +-{ IDX_2C('d','o'), "Dominican Republic", 0,0,0 }, +-{ IDX_2C('d','z'), "Algeria", 0,0,0 }, +-{ IDX_2C('e','c'), "Ecuador", 0,0,0 }, +-{ IDX_2C('e','e'), "Estonia", 0,0,0 }, +-{ IDX_2C('e','g'), "Egypt", 0,0,0 }, +-{ IDX_2C('e','h'), "Western Sahara", 0,0,0 }, +-{ IDX_2C('e','r'), "Eritrea", 0,0,0 }, +-{ IDX_2C('e','s'), "Spain", 0,0,0 }, +-{ IDX_2C('e','t'), "Ethiopia", 0,0,0 }, +-{ IDX_2C('f','i'), "Finland", 0,0,0 }, +-{ IDX_2C('f','j'), "Fiji", 0,0,0 }, +-{ IDX_2C('f','k'), "Falkland Islands (Malvinas)", 0,0,0 }, +-{ IDX_2C('f','m'), "Micronesia", 0,0,0 }, +-{ IDX_2C('f','o'), "Faroe Islands", 0,0,0 }, +-{ IDX_2C('f','r'), "France", 0,0,0 }, +-{ IDX_2C('f','x'), "France, Metropolitan", 0,0,0 }, +-{ IDX_2C('g','a'), "Gabon", 0,0,0 }, +-{ IDX_2C('g','b'), "Great Britain (UK)", 0,0,0 }, +-{ IDX_2C('g','d'), "Grenada", 0,0,0 }, +-{ IDX_2C('g','e'), "Georgia", 0,0,0 }, +-{ IDX_2C('g','f'), "French Guiana", 0,0,0 }, +-{ IDX_2C('g','h'), "Ghana", 0,0,0 }, +-{ IDX_2C('g','i'), "Gibraltar", 0,0,0 }, +-{ IDX_2C('g','l'), "Greenland", 0,0,0 }, +-{ IDX_2C('g','m'), "Gambia", 0,0,0 }, +-{ IDX_2C('g','n'), "Guinea", 0,0,0 }, +-{ IDX_2C('g','p'), "Guadeloupe", 0,0,0 }, +-{ IDX_2C('g','q'), "Equatorial Guinea", 0,0,0 }, +-{ IDX_2C('g','r'), "Greece", 0,0,0 }, +-{ IDX_2C('g','s'), "S. Georgia and S. Sandwich Isls.", 0,0,0 }, +-{ IDX_2C('g','t'), "Guatemala", 0,0,0 }, +-{ IDX_2C('g','u'), "Guam", 0,0,0 }, +-{ IDX_2C('g','w'), "Guinea-Bissau", 0,0,0 }, +-{ IDX_2C('g','y'), "Guyana", 0,0,0 }, +-{ IDX_2C('h','k'), "Hong Kong", 0,0,0 }, +-{ IDX_2C('h','m'), "Heard and McDonald Islands", 0,0,0 }, +-{ IDX_2C('h','n'), "Honduras", 0,0,0 }, +-{ IDX_2C('h','r'), "Croatia (Hrvatska)", 0,0,0 }, +-{ IDX_2C('h','t'), "Haiti", 0,0,0 }, +-{ IDX_2C('h','u'), "Hungary", 0,0,0 }, +-{ IDX_2C('i','d'), "Indonesia", 0,0,0 }, +-{ IDX_2C('i','e'), "Ireland", 0,0,0 }, +-{ IDX_2C('i','l'), "Israel", 0,0,0 }, +-{ IDX_2C('i','n'), "India", 0,0,0 }, +-{ IDX_2C('i','o'), "British Indian Ocean Territory", 0,0,0 }, +-{ IDX_2C('i','q'), "Iraq", 0,0,0 }, +-{ IDX_2C('i','r'), "Iran", 0,0,0 }, +-{ IDX_2C('i','s'), "Iceland", 0,0,0 }, +-{ IDX_2C('i','t'), "Italy", 0,0,0 }, +-{ IDX_2C('j','m'), "Jamaica", 0,0,0 }, +-{ IDX_2C('j','o'), "Jordan", 0,0,0 }, +-{ IDX_2C('j','p'), "Japan", 0,0,0 }, +-{ IDX_2C('k','e'), "Kenya", 0,0,0 }, +-{ IDX_2C('k','g'), "Kyrgyzstan", 0,0,0 }, +-{ IDX_2C('k','h'), "Cambodia", 0,0,0 }, +-{ IDX_2C('k','i'), "Kiribati", 0,0,0 }, +-{ IDX_2C('k','m'), "Comoros", 0,0,0 }, +-{ IDX_2C('k','n'), "Saint Kitts and Nevis", 0,0,0 }, +-{ IDX_2C('k','p'), "Korea (North)", 0,0,0 }, +-{ IDX_2C('k','r'), "Korea (South)", 0,0,0 }, +-{ IDX_2C('k','w'), "Kuwait", 0,0,0 }, +-{ IDX_2C('k','y'), "Cayman Islands", 0,0,0 }, +-{ IDX_2C('k','z'), "Kazakhstan", 0,0,0 }, +-{ IDX_2C('l','a'), "Laos", 0,0,0 }, +-{ IDX_2C('l','b'), "Lebanon", 0,0,0 }, +-{ IDX_2C('l','c'), "Saint Lucia", 0,0,0 }, +-{ IDX_2C('l','i'), "Liechtenstein", 0,0,0 }, +-{ IDX_2C('l','k'), "Sri Lanka", 0,0,0 }, +-{ IDX_2C('l','r'), "Liberia", 0,0,0 }, +-{ IDX_2C('l','s'), "Lesotho", 0,0,0 }, +-{ IDX_2C('l','t'), "Lithuania", 0,0,0 }, +-{ IDX_2C('l','u'), "Luxembourg", 0,0,0 }, +-{ IDX_2C('l','v'), "Latvia", 0,0,0 }, +-{ IDX_2C('l','y'), "Libya", 0,0,0 }, +-{ IDX_2C('m','a'), "Morocco", 0,0,0 }, +-{ IDX_2C('m','c'), "Monaco", 0,0,0 }, +-{ IDX_2C('m','d'), "Moldova", 0,0,0 }, +-{ IDX_2C('m','g'), "Madagascar", 0,0,0 }, +-{ IDX_2C('m','h'), "Marshall Islands", 0,0,0 }, +-{ IDX_2C('m','k'), "Macedonia", 0,0,0 }, +-{ IDX_2C('m','l'), "Mali", 0,0,0 }, +-{ IDX_2C('m','m'), "Myanmar", 0,0,0 }, +-{ IDX_2C('m','n'), "Mongolia", 0,0,0 }, +-{ IDX_2C('m','o'), "Macau", 0,0,0 }, +-{ IDX_2C('m','p'), "Northern Mariana Islands", 0,0,0 }, +-{ IDX_2C('m','q'), "Martinique", 0,0,0 }, +-{ IDX_2C('m','r'), "Mauritania", 0,0,0 }, +-{ IDX_2C('m','s'), "Montserrat", 0,0,0 }, +-{ IDX_2C('m','t'), "Malta", 0,0,0 }, +-{ IDX_2C('m','u'), "Mauritius", 0,0,0 }, +-{ IDX_2C('m','v'), "Maldives", 0,0,0 }, +-{ IDX_2C('m','w'), "Malawi", 0,0,0 }, +-{ IDX_2C('m','x'), "Mexico", 0,0,0 }, +-{ IDX_2C('m','y'), "Malaysia", 0,0,0 }, +-{ IDX_2C('m','z'), "Mozambique", 0,0,0 }, +-{ IDX_2C('n','a'), "Namibia", 0,0,0 }, +-{ IDX_2C('n','c'), "New Caledonia", 0,0,0 }, +-{ IDX_2C('n','e'), "Niger", 0,0,0 }, +-{ IDX_2C('n','f'), "Norfolk Island", 0,0,0 }, +-{ IDX_2C('n','g'), "Nigeria", 0,0,0 }, +-{ IDX_2C('n','i'), "Nicaragua", 0,0,0 }, +-{ IDX_2C('n','l'), "Netherlands", 0,0,0 }, +-{ IDX_2C('n','o'), "Norway", 0,0,0 }, +-{ IDX_2C('n','p'), "Nepal", 0,0,0 }, +-{ IDX_2C('n','r'), "Nauru", 0,0,0 }, +-{ IDX_2C('n','t'), "Neutral Zone", 0,0,0 }, +-{ IDX_2C('n','u'), "Niue", 0,0,0 }, +-{ IDX_2C('n','z'), "New Zealand (Aotearoa)", 0,0,0 }, +-{ IDX_2C('o','m'), "Oman", 0,0,0 }, +-{ IDX_2C('p','a'), "Panama", 0,0,0 }, +-{ IDX_2C('p','e'), "Peru", 0,0,0 }, +-{ IDX_2C('p','f'), "French Polynesia", 0,0,0 }, +-{ IDX_2C('p','g'), "Papua New Guinea", 0,0,0 }, +-{ IDX_2C('p','h'), "Philippines", 0,0,0 }, +-{ IDX_2C('p','k'), "Pakistan", 0,0,0 }, +-{ IDX_2C('p','l'), "Poland", 0,0,0 }, +-{ IDX_2C('p','m'), "St. Pierre and Miquelon", 0,0,0 }, +-{ IDX_2C('p','n'), "Pitcairn", 0,0,0 }, +-{ IDX_2C('p','r'), "Puerto Rico", 0,0,0 }, +-{ IDX_2C('p','t'), "Portugal", 0,0,0 }, +-{ IDX_2C('p','w'), "Palau", 0,0,0 }, +-{ IDX_2C('p','y'), "Paraguay", 0,0,0 }, +-{ IDX_2C('q','a'), "Qatar", 0,0,0 }, +-{ IDX_2C('r','e'), "Reunion", 0,0,0 }, +-{ IDX_2C('r','o'), "Romania", 0,0,0 }, +-{ IDX_2C('r','u'), "Russian Federation", 0,0,0 }, +-{ IDX_2C('r','w'), "Rwanda", 0,0,0 }, +-{ IDX_2C('s','a'), "Saudi Arabia", 0,0,0 }, +-{ IDX_2C('s','B'), "Solomon Islands", 0,0,0 }, +-{ IDX_2C('s','c'), "Seychelles", 0,0,0 }, +-{ IDX_2C('s','d'), "Sudan", 0,0,0 }, +-{ IDX_2C('s','e'), "Sweden", 0,0,0 }, +-{ IDX_2C('s','g'), "Singapore", 0,0,0 }, +-{ IDX_2C('s','h'), "St. Helena", 0,0,0 }, +-{ IDX_2C('s','i'), "Slovenia", 0,0,0 }, +-{ IDX_2C('s','j'), "Svalbard and Jan Mayen Islands", 0,0,0 }, +-{ IDX_2C('s','k'), "Slovak Republic", 0,0,0 }, +-{ IDX_2C('s','l'), "Sierra Leone", 0,0,0 }, +-{ IDX_2C('s','m'), "San Marino", 0,0,0 }, +-{ IDX_2C('s','n'), "Senegal", 0,0,0 }, +-{ IDX_2C('s','o'), "Somalia", 0,0,0 }, +-{ IDX_2C('s','r'), "Suriname", 0,0,0 }, +-{ IDX_2C('s','t'), "Sao Tome and Principe", 0,0,0 }, +-{ IDX_2C('s','u'), "USSR (former)", 0,0,0 }, +-{ IDX_2C('s','v'), "El Salvador", 0,0,0 }, +-{ IDX_2C('s','y'), "Syria", 0,0,0 }, +-{ IDX_2C('s','z'), "Swaziland", 0,0,0 }, +-{ IDX_2C('t','c'), "Turks and Caicos Islands", 0,0,0 }, +-{ IDX_2C('t','d'), "Chad", 0,0,0 }, +-{ IDX_2C('t','f'), "French Southern Territories", 0,0,0 }, +-{ IDX_2C('t','g'), "Togo", 0,0,0 }, +-{ IDX_2C('t','h'), "Thailand", 0,0,0 }, +-{ IDX_2C('t','j'), "Tajikistan", 0,0,0 }, +-{ IDX_2C('t','k'), "Tokelau", 0,0,0 }, +-{ IDX_2C('t','m'), "Turkmenistan", 0,0,0 }, +-{ IDX_2C('t','n'), "Tunisia", 0,0,0 }, +-{ IDX_2C('t','o'), "Tonga", 0,0,0 }, +-{ IDX_2C('t','p'), "East Timor", 0,0,0 }, +-{ IDX_2C('t','r'), "Turkey", 0,0,0 }, +-{ IDX_2C('t','t'), "Trinidad and Tobago", 0,0,0 }, +-{ IDX_2C('t','v'), "Tuvalu", 0,0,0 }, +-{ IDX_2C('t','w'), "Taiwan", 0,0,0 }, +-{ IDX_2C('t','z'), "Tanzania", 0,0,0 }, +-{ IDX_2C('u','a'), "Ukraine", 0,0,0 }, +-{ IDX_2C('u','g'), "Uganda", 0,0,0 }, +-{ IDX_2C('u','k'), "United Kingdom", 0,0,0 }, +-{ IDX_2C('u','m'), "US Minor Outlying Islands", 0,0,0 }, +-{ IDX_2C('u','s'), "United States", 0,0,0 }, +-{ IDX_2C('u','y'), "Uruguay", 0,0,0 }, +-{ IDX_2C('u','z'), "Uzbekistan", 0,0,0 }, +-{ IDX_2C('v','a'), "Vatican City State (Holy See)", 0,0,0 }, +-{ IDX_2C('v','c'), "Saint Vincent and the Grenadines", 0,0,0 }, +-{ IDX_2C('v','e'), "Venezuela", 0,0,0 }, +-{ IDX_2C('v','g'), "Virgin Islands (British)", 0,0,0 }, +-{ IDX_2C('v','i'), "Virgin Islands (U.S.)", 0,0,0 }, +-{ IDX_2C('v','n'), "Viet Nam", 0,0,0 }, +-{ IDX_2C('v','u'), "Vanuatu", 0,0,0 }, +-{ IDX_2C('w','f'), "Wallis and Futuna Islands", 0,0,0 }, +-{ IDX_2C('w','s'), "Samoa", 0,0,0 }, +-{ IDX_2C('y','e'), "Yemen", 0,0,0 }, +-{ IDX_2C('y','t'), "Mayotte", 0,0,0 }, +-{ IDX_2C('y','u'), "Yugoslavia", 0,0,0 }, +-{ IDX_2C('z','a'), "South Africa", 0,0,0 }, +-{ IDX_2C('z','m'), "Zambia", 0,0,0 }, +-{ IDX_2C('z','r'), "Zaire", 0,0,0 }, +-{ IDX_2C('z','w'), "Zimbabwe", 0,0,0 }, ++{ 0, "unresolved", 0,0,0 }, ++{ IDX_4C('a','r','p','a'), "address and routing parameter area (.arpa)" ,0,0,0 }, ++{ IDX_4C('r','o','o','t'), "unknown (.root)" ,0,0,0 }, ++{ IDX_4C('a','e','r','o'), "air-transport industry (.aero)" ,0,0,0 }, ++{ IDX_3C('b','i','z'), "business (.biz)" ,0,0,0 }, ++{ IDX_3C('c','a','t'), "Catalan language/culture (.cat)" ,0,0,0 }, ++{ IDX_3C('c','o','m'), "commercial (.com)" ,0,0,0 }, ++{ IDX_4C('c','o','o','p'), "cooperatives (.coop)" ,0,0,0 }, ++{ IDX_3C('e','d','u'), "US educational (.edu)" ,0,0,0 }, ++{ IDX_3C('g','o','v'), "US governmental (.gov)" ,0,0,0 }, ++{ IDX_4C('i','n','f','o'), "information (.info)" ,0,0,0 }, ++{ IDX_3C('i','n','t'), "international organisations (.int)" ,0,0,0 }, ++{ IDX_4C('j','o','b','s'), "companies (.jobs)" ,0,0,0 }, ++{ IDX_3C('m','i','l'), "US Military (.mil)" ,0,0,0 }, ++{ IDX_4C('m','o','b','i'), "mobile devices (.mobi)" ,0,0,0 }, ++{ IDX_6C('m','u','s','e','u','m'), "museums (.museum)" ,0,0,0 }, ++{ IDX_4C('n','a','m','e'), "individuals, by name (.name)" ,0,0,0 }, ++{ IDX_3C('n','e','t'), "network (.net)" ,0,0,0 }, ++{ IDX_3C('o','r','g'), "organizations (.org)" ,0,0,0 }, ++{ IDX_3C('p','r','o'), "professions (.pro)" ,0,0,0 }, ++{ IDX_6C('t','r','a','v','e','l'), "travel and travel-agency related sites (.travel)" ,0,0,0 }, ++{ IDX_2C('a','c'), "Ascension Island" ,0,0,0 }, ++{ IDX_2C('a','d'), "Andorra" ,0,0,0 }, ++{ IDX_2C('a','e'), "United Arab Emirates" ,0,0,0 }, ++{ IDX_2C('a','f'), "Afghanistan" ,0,0,0 }, ++{ IDX_2C('a','g'), "Antigua and Barbuda" ,0,0,0 }, ++{ IDX_2C('a','i'), "Anguilla" ,0,0,0 }, ++{ IDX_2C('a','l'), "Albania" ,0,0,0 }, ++{ IDX_2C('a','m'), "Armenia" ,0,0,0 }, ++{ IDX_2C('a','n'), "Netherlands Antilles" ,0,0,0 }, ++{ IDX_2C('a','o'), "Angola" ,0,0,0 }, ++{ IDX_2C('a','q'), "Antarctica" ,0,0,0 }, ++{ IDX_2C('a','r'), "Argentina" ,0,0,0 }, ++{ IDX_2C('a','s'), "American Samoa" ,0,0,0 }, ++{ IDX_2C('a','t'), "Austria" ,0,0,0 }, ++{ IDX_2C('a','u'), "Australia" ,0,0,0 }, ++{ IDX_2C('a','w'), "Aruba" ,0,0,0 }, ++{ IDX_2C('a','z'), "Azerbaijan" ,0,0,0 }, ++{ IDX_2C('b','a'), "Bosnia and Herzegovina" ,0,0,0 }, ++{ IDX_2C('b','b'), "Barbados" ,0,0,0 }, ++{ IDX_2C('b','d'), "Bangladesh" ,0,0,0 }, ++{ IDX_2C('b','e'), "Belgium" ,0,0,0 }, ++{ IDX_2C('b','f'), "Burkina Faso" ,0,0,0 }, ++{ IDX_2C('b','g'), "Bulgaria" ,0,0,0 }, ++{ IDX_2C('b','h'), "Bahrain" ,0,0,0 }, ++{ IDX_2C('b','i'), "Burundi" ,0,0,0 }, ++{ IDX_2C('b','j'), "Benin" ,0,0,0 }, ++{ IDX_2C('b','m'), "Bermuda" ,0,0,0 }, ++{ IDX_2C('b','n'), "Brunei Darussalam" ,0,0,0 }, ++{ IDX_2C('b','o'), "Bolivia" ,0,0,0 }, ++{ IDX_2C('b','r'), "Brazil" ,0,0,0 }, ++{ IDX_2C('b','s'), "Bahamas" ,0,0,0 }, ++{ IDX_2C('b','t'), "Bhutan" ,0,0,0 }, ++{ IDX_2C('b','v'), "Bouvet Island" ,0,0,0 }, ++{ IDX_2C('b','w'), "Botswana" ,0,0,0 }, ++{ IDX_2C('b','y'), "Belarus" ,0,0,0 }, ++{ IDX_2C('b','z'), "Belize" ,0,0,0 }, ++{ IDX_2C('c','a'), "Canada" ,0,0,0 }, ++{ IDX_2C('c','c'), "Cocos (Keeling) Islands" ,0,0,0 }, ++{ IDX_2C('c','d'), "Democratic Republic of the Congo" ,0,0,0 }, ++{ IDX_2C('c','f'), "Central African Republic" ,0,0,0 }, ++{ IDX_2C('c','g'), "Republic of the Congo" ,0,0,0 }, ++{ IDX_2C('c','h'), "Switzerland" ,0,0,0 }, ++{ IDX_2C('c','i'), "Côte d'Ivoire" ,0,0,0 }, ++{ IDX_2C('c','k'), "Cook Islands" ,0,0,0 }, ++{ IDX_2C('c','l'), "Chile" ,0,0,0 }, ++{ IDX_2C('c','m'), "Cameroon" ,0,0,0 }, ++{ IDX_2C('c','n'), "People's Republic of China" ,0,0,0 }, ++{ IDX_2C('c','o'), "Colombia" ,0,0,0 }, ++{ IDX_2C('c','r'), "Costa Rica" ,0,0,0 }, ++{ IDX_2C('c','u'), "Cuba" ,0,0,0 }, ++{ IDX_2C('c','v'), "Cape Verde" ,0,0,0 }, ++{ IDX_2C('c','x'), "Christmas Island" ,0,0,0 }, ++{ IDX_2C('c','y'), "Cyprus" ,0,0,0 }, ++{ IDX_2C('c','z'), "Czech Republic" ,0,0,0 }, ++{ IDX_2C('d','e'), "Germany" ,0,0,0 }, ++{ IDX_2C('d','j'), "Djibouti" ,0,0,0 }, ++{ IDX_2C('d','k'), "Denmark" ,0,0,0 }, ++{ IDX_2C('d','m'), "Dominica" ,0,0,0 }, ++{ IDX_2C('d','o'), "Dominican Republic" ,0,0,0 }, ++{ IDX_2C('d','z'), "Algeria" ,0,0,0 }, ++{ IDX_2C('e','c'), "Ecuador" ,0,0,0 }, ++{ IDX_2C('e','e'), "Estonia" ,0,0,0 }, ++{ IDX_2C('e','g'), "Egypt" ,0,0,0 }, ++{ IDX_2C('e','r'), "Eritrea" ,0,0,0 }, ++{ IDX_2C('e','s'), "Spain" ,0,0,0 }, ++{ IDX_2C('e','t'), "Ethiopia" ,0,0,0 }, ++{ IDX_2C('e','u'), "European Union" ,0,0,0 }, ++{ IDX_2C('f','i'), "Finland" ,0,0,0 }, ++{ IDX_2C('f','j'), "Fiji" ,0,0,0 }, ++{ IDX_2C('f','k'), "Falkland Islands" ,0,0,0 }, ++{ IDX_2C('f','m'), "Federated States of Micronesia" ,0,0,0 }, ++{ IDX_2C('f','o'), "Faroe Islands" ,0,0,0 }, ++{ IDX_2C('f','r'), "France" ,0,0,0 }, ++{ IDX_2C('g','a'), "Gabon" ,0,0,0 }, ++{ IDX_2C('g','b'), "United Kingdom" ,0,0,0 }, ++{ IDX_2C('g','d'), "Grenada" ,0,0,0 }, ++{ IDX_2C('g','e'), "Georgia" ,0,0,0 }, ++{ IDX_2C('g','f'), "French Guiana" ,0,0,0 }, ++{ IDX_2C('g','g'), "Guernsey" ,0,0,0 }, ++{ IDX_2C('g','h'), "Ghana" ,0,0,0 }, ++{ IDX_2C('g','i'), "Gibraltar" ,0,0,0 }, ++{ IDX_2C('g','l'), "Greenland" ,0,0,0 }, ++{ IDX_2C('g','m'), "The Gambia" ,0,0,0 }, ++{ IDX_2C('g','n'), "Guinea" ,0,0,0 }, ++{ IDX_2C('g','p'), "Guadeloupe" ,0,0,0 }, ++{ IDX_2C('g','q'), "Equatorial Guinea" ,0,0,0 }, ++{ IDX_2C('g','r'), "Greece" ,0,0,0 }, ++{ IDX_2C('g','s'), "South Georgia and the South Sandwich Islands" ,0,0,0 }, ++{ IDX_2C('g','t'), "Guatemala" ,0,0,0 }, ++{ IDX_2C('g','u'), "Guam" ,0,0,0 }, ++{ IDX_2C('g','w'), "Guinea-Bissau" ,0,0,0 }, ++{ IDX_2C('g','y'), "Guyana" ,0,0,0 }, ++{ IDX_2C('h','k'), "Hong Kong" ,0,0,0 }, ++{ IDX_2C('h','m'), "Heard Island and McDonald Islands" ,0,0,0 }, ++{ IDX_2C('h','n'), "Honduras" ,0,0,0 }, ++{ IDX_2C('h','r'), "Croatia" ,0,0,0 }, ++{ IDX_2C('h','t'), "Haiti" ,0,0,0 }, ++{ IDX_2C('h','u'), "Hungary" ,0,0,0 }, ++{ IDX_2C('i','d'), "Indonesia" ,0,0,0 }, ++{ IDX_2C('i','e'), "Ireland" ,0,0,0 }, ++{ IDX_2C('i','l'), "Israel" ,0,0,0 }, ++{ IDX_2C('i','m'), "Isle of Man" ,0,0,0 }, ++{ IDX_2C('i','n'), "India" ,0,0,0 }, ++{ IDX_2C('i','o'), "British Indian Ocean Territory" ,0,0,0 }, ++{ IDX_2C('i','q'), "Iraq" ,0,0,0 }, ++{ IDX_2C('i','r'), "Iran" ,0,0,0 }, ++{ IDX_2C('i','s'), "Iceland" ,0,0,0 }, ++{ IDX_2C('i','t'), "Italy" ,0,0,0 }, ++{ IDX_2C('j','e'), "Jersey" ,0,0,0 }, ++{ IDX_2C('j','m'), "Jamaica" ,0,0,0 }, ++{ IDX_2C('j','o'), "Jordan" ,0,0,0 }, ++{ IDX_2C('j','p'), "Japan" ,0,0,0 }, ++{ IDX_2C('k','e'), "Kenya" ,0,0,0 }, ++{ IDX_2C('k','g'), "Kyrgyzstan" ,0,0,0 }, ++{ IDX_2C('k','h'), "Cambodia" ,0,0,0 }, ++{ IDX_2C('k','i'), "Kiribati" ,0,0,0 }, ++{ IDX_2C('k','m'), "Comoros" ,0,0,0 }, ++{ IDX_2C('k','n'), "Saint Kitts and Nevis" ,0,0,0 }, ++{ IDX_2C('k','r'), "South Korea" ,0,0,0 }, ++{ IDX_2C('k','w'), "Kuwait" ,0,0,0 }, ++{ IDX_2C('k','y'), "Cayman Islands" ,0,0,0 }, ++{ IDX_2C('k','z'), "Kazakhstan" ,0,0,0 }, ++{ IDX_2C('l','a'), "Laos" ,0,0,0 }, ++{ IDX_2C('l','b'), "Lebanon" ,0,0,0 }, ++{ IDX_2C('l','c'), "Saint Lucia" ,0,0,0 }, ++{ IDX_2C('l','i'), "Liechtenstein" ,0,0,0 }, ++{ IDX_2C('l','k'), "Sri Lanka" ,0,0,0 }, ++{ IDX_2C('l','r'), "Liberia" ,0,0,0 }, ++{ IDX_2C('l','s'), "Lesotho" ,0,0,0 }, ++{ IDX_2C('l','t'), "Lithuania" ,0,0,0 }, ++{ IDX_2C('l','u'), "Luxembourg" ,0,0,0 }, ++{ IDX_2C('l','v'), "Latvia" ,0,0,0 }, ++{ IDX_2C('l','y'), "Libya" ,0,0,0 }, ++{ IDX_2C('m','a'), "Morocco" ,0,0,0 }, ++{ IDX_2C('m','c'), "Monaco" ,0,0,0 }, ++{ IDX_2C('m','d'), "Moldova" ,0,0,0 }, ++{ IDX_2C('m','g'), "Madagascar" ,0,0,0 }, ++{ IDX_2C('m','h'), "Marshall Islands" ,0,0,0 }, ++{ IDX_2C('m','k'), "Republic of Macedonia" ,0,0,0 }, ++{ IDX_2C('m','l'), "Mali" ,0,0,0 }, ++{ IDX_2C('m','m'), "Myanmar" ,0,0,0 }, ++{ IDX_2C('m','n'), "Mongolia" ,0,0,0 }, ++{ IDX_2C('m','o'), "Macau" ,0,0,0 }, ++{ IDX_2C('m','p'), "Northern Mariana Islands" ,0,0,0 }, ++{ IDX_2C('m','q'), "Martinique" ,0,0,0 }, ++{ IDX_2C('m','r'), "Mauritania" ,0,0,0 }, ++{ IDX_2C('m','s'), "Montserrat" ,0,0,0 }, ++{ IDX_2C('m','t'), "Malta" ,0,0,0 }, ++{ IDX_2C('m','u'), "Mauritius" ,0,0,0 }, ++{ IDX_2C('m','v'), "Maldives" ,0,0,0 }, ++{ IDX_2C('m','w'), "Malawi" ,0,0,0 }, ++{ IDX_2C('m','x'), "Mexico" ,0,0,0 }, ++{ IDX_2C('m','y'), "Malaysia" ,0,0,0 }, ++{ IDX_2C('m','z'), "Mozambique" ,0,0,0 }, ++{ IDX_2C('n','a'), "Namibia" ,0,0,0 }, ++{ IDX_2C('n','c'), "New Caledonia" ,0,0,0 }, ++{ IDX_2C('n','e'), "Niger" ,0,0,0 }, ++{ IDX_2C('n','f'), "Norfolk Island" ,0,0,0 }, ++{ IDX_2C('n','g'), "Nigeria" ,0,0,0 }, ++{ IDX_2C('n','i'), "Nicaragua" ,0,0,0 }, ++{ IDX_2C('n','l'), "Netherlands" ,0,0,0 }, ++{ IDX_2C('n','o'), "Norway" ,0,0,0 }, ++{ IDX_2C('n','p'), "Nepal" ,0,0,0 }, ++{ IDX_2C('n','r'), "Nauru" ,0,0,0 }, ++{ IDX_2C('n','u'), "Niue" ,0,0,0 }, ++{ IDX_2C('n','z'), "New Zealand" ,0,0,0 }, ++{ IDX_2C('o','m'), "Oman" ,0,0,0 }, ++{ IDX_2C('p','a'), "Panama" ,0,0,0 }, ++{ IDX_2C('p','e'), "Peru" ,0,0,0 }, ++{ IDX_2C('p','f'), "French Polynesia" ,0,0,0 }, ++{ IDX_2C('p','g'), "Papua New Guinea" ,0,0,0 }, ++{ IDX_2C('p','h'), "Philippines" ,0,0,0 }, ++{ IDX_2C('p','k'), "Pakistan" ,0,0,0 }, ++{ IDX_2C('p','l'), "Poland" ,0,0,0 }, ++{ IDX_2C('p','m'), "Saint-Pierre and Miquelon" ,0,0,0 }, ++{ IDX_2C('p','n'), "Pitcairn Islands" ,0,0,0 }, ++{ IDX_2C('p','r'), "Puerto Rico" ,0,0,0 }, ++{ IDX_2C('p','s'), "Palestinian territories" ,0,0,0 }, ++{ IDX_2C('p','t'), "Portugal" ,0,0,0 }, ++{ IDX_2C('p','w'), "Palau" ,0,0,0 }, ++{ IDX_2C('p','y'), "Paraguay" ,0,0,0 }, ++{ IDX_2C('q','a'), "Qatar" ,0,0,0 }, ++{ IDX_2C('r','e'), "Réunion" ,0,0,0 }, ++{ IDX_2C('r','o'), "Romania" ,0,0,0 }, ++{ IDX_2C('r','u'), "Russia" ,0,0,0 }, ++{ IDX_2C('r','w'), "Rwanda" ,0,0,0 }, ++{ IDX_2C('s','a'), "Saudi Arabia" ,0,0,0 }, ++{ IDX_2C('s','b'), "Solomon Islands" ,0,0,0 }, ++{ IDX_2C('s','c'), "Seychelles" ,0,0,0 }, ++{ IDX_2C('s','d'), "Sudan" ,0,0,0 }, ++{ IDX_2C('s','e'), "Sweden" ,0,0,0 }, ++{ IDX_2C('s','g'), "Singapore" ,0,0,0 }, ++{ IDX_2C('s','h'), "Saint Helena" ,0,0,0 }, ++{ IDX_2C('s','i'), "Slovenia" ,0,0,0 }, ++{ IDX_2C('s','j'), "Svalbard and Jan Mayen Islands" ,0,0,0 }, ++{ IDX_2C('s','k'), "Slovakia" ,0,0,0 }, ++{ IDX_2C('s','l'), "Sierra Leone" ,0,0,0 }, ++{ IDX_2C('s','m'), "San Marino" ,0,0,0 }, ++{ IDX_2C('s','n'), "Senegal" ,0,0,0 }, ++{ IDX_2C('s','o'), "Somalia" ,0,0,0 }, ++{ IDX_2C('s','r'), "Suriname" ,0,0,0 }, ++{ IDX_2C('s','t'), "São Tomé and Príncipe" ,0,0,0 }, ++{ IDX_2C('s','u'), "former Soviet Union" ,0,0,0 }, ++{ IDX_2C('s','v'), "El Salvador" ,0,0,0 }, ++{ IDX_2C('s','y'), "Syria" ,0,0,0 }, ++{ IDX_2C('s','z'), "Swaziland" ,0,0,0 }, ++{ IDX_2C('t','c'), "Turks and Caicos Islands" ,0,0,0 }, ++{ IDX_2C('t','d'), "Chad" ,0,0,0 }, ++{ IDX_2C('t','f'), "French Southern and Antarctic Lands" ,0,0,0 }, ++{ IDX_2C('t','g'), "Togo" ,0,0,0 }, ++{ IDX_2C('t','h'), "Thailand" ,0,0,0 }, ++{ IDX_2C('t','j'), "Tajikistan" ,0,0,0 }, ++{ IDX_2C('t','k'), "Tokelau" ,0,0,0 }, ++{ IDX_2C('t','l'), "East Timor" ,0,0,0 }, ++{ IDX_2C('t','m'), "Turkmenistan" ,0,0,0 }, ++{ IDX_2C('t','n'), "Tunisia" ,0,0,0 }, ++{ IDX_2C('t','o'), "Tonga" ,0,0,0 }, ++{ IDX_2C('t','p'), "East Timor" ,0,0,0 }, ++{ IDX_2C('t','r'), "Turkey" ,0,0,0 }, ++{ IDX_2C('t','t'), "Trinidad and Tobago" ,0,0,0 }, ++{ IDX_2C('t','v'), "Tuvalu" ,0,0,0 }, ++{ IDX_2C('t','w'), "Taiwan (Republic of China)" ,0,0,0 }, ++{ IDX_2C('t','z'), "Tanzania" ,0,0,0 }, ++{ IDX_2C('u','a'), "Ukraine" ,0,0,0 }, ++{ IDX_2C('u','g'), "Uganda" ,0,0,0 }, ++{ IDX_2C('u','k'), "United Kingdom" ,0,0,0 }, ++{ IDX_2C('u','m'), "United States Minor Outlying Islands" ,0,0,0 }, ++{ IDX_2C('u','s'), "United States of America" ,0,0,0 }, ++{ IDX_2C('u','y'), "Uruguay" ,0,0,0 }, ++{ IDX_2C('u','z'), "Uzbekistan" ,0,0,0 }, ++{ IDX_2C('v','a'), "Vatican City State" ,0,0,0 }, ++{ IDX_2C('v','c'), "Saint Vincent and the Grenadines" ,0,0,0 }, ++{ IDX_2C('v','e'), "Venezuela" ,0,0,0 }, ++{ IDX_2C('v','g'), "British Virgin Islands" ,0,0,0 }, ++{ IDX_2C('v','i'), "U.S. Virgin Islands" ,0,0,0 }, ++{ IDX_2C('v','n'), "Vietnam" ,0,0,0 }, ++{ IDX_2C('v','u'), "Vanuatu" ,0,0,0 }, ++{ IDX_2C('w','f'), "Wallis and Futuna" ,0,0,0 }, ++{ IDX_2C('w','s'), "Samoa" ,0,0,0 }, ++{ IDX_2C('y','e'), "Yemen" ,0,0,0 }, ++{ IDX_2C('y','t'), "Mayotte" ,0,0,0 }, ++{ IDX_2C('y','u'), "Yugoslavia" ,0,0,0 }, ++{ IDX_2C('z','a'), "South Africa" ,0,0,0 }, ++{ IDX_2C('z','m'), "Zambia" ,0,0,0 }, ++{ IDX_2C('z','w'), "Zimbabwe" ,0,0,0 }, + { 0 , NULL, 0,0,0 }}; diff --git a/webalizer-2.23-05-groupvisit.patch b/webalizer-2.01-10-groupvisit.patch similarity index 79% rename from webalizer-2.23-05-groupvisit.patch rename to webalizer-2.01-10-groupvisit.patch index 5895311..fe8dbf7 100644 --- a/webalizer-2.23-05-groupvisit.patch +++ b/webalizer-2.01-10-groupvisit.patch @@ -1,16 +1,15 @@ -diff -uap webalizer-2.23-05/hashtab.c.groupvisit webalizer-2.23-05/hashtab.c ---- webalizer-2.23-05/hashtab.c.groupvisit 2011-01-10 01:47:49.000000000 +0000 -+++ webalizer-2.23-05/hashtab.c 2011-07-14 09:26:11.645377843 +0100 -@@ -88,6 +88,8 @@ INODEPTR im_htab[MAXHASH]; +--- webalizer-2.01-10/hashtab.c.groupvisit 2001-06-15 11:34:24.000000000 +0300 ++++ webalizer-2.01-10/hashtab.c 2006-03-30 12:52:30.000000000 +0300 +@@ -94,6 +94,8 @@ DNODEPTR host_table[MAXHASH]; /* DNS hash table */ #endif /* USE_DNS */ +u_long pre_tstamp = 0; /* prev. real record tstamp */ + + /*********************************************/ /* DEL_HTABS - clear out our hash tables */ - /*********************************************/ -@@ -186,6 +188,7 @@ int put_hnode( char *str, /* Hostn +@@ -184,6 +186,7 @@ nptr->visit=(visit-1); nptr->lasturl=find_url(lasturl); nptr->tstamp=tstamp; @@ -18,7 +17,7 @@ diff -uap webalizer-2.23-05/hashtab.c.groupvisit webalizer-2.23-05/hashtab.c return 0; } else -@@ -195,6 +198,7 @@ int put_hnode( char *str, /* Hostn +@@ -193,6 +196,7 @@ if (htab==sm_htab) update_entry(log_rec.url); nptr->lasturl=find_url(log_rec.url); nptr->tstamp=tstamp; @@ -26,7 +25,7 @@ diff -uap webalizer-2.23-05/hashtab.c.groupvisit webalizer-2.23-05/hashtab.c nptr->visit=1; } } -@@ -225,7 +229,8 @@ int put_hnode( char *str, /* Hostn +@@ -214,7 +218,8 @@ if (ispage(log_rec.url)) { @@ -36,7 +35,7 @@ diff -uap webalizer-2.23-05/hashtab.c.groupvisit webalizer-2.23-05/hashtab.c { cptr->visit++; if (htab==sm_htab) -@@ -262,6 +267,7 @@ int put_hnode( char *str, /* Hostn +@@ -247,6 +252,7 @@ nptr->visit = (visit-1); nptr->lasturl=find_url(lasturl); nptr->tstamp= tstamp; @@ -44,7 +43,7 @@ diff -uap webalizer-2.23-05/hashtab.c.groupvisit webalizer-2.23-05/hashtab.c return 0; } else -@@ -271,6 +277,7 @@ int put_hnode( char *str, /* Hostn +@@ -256,6 +262,7 @@ if (htab==sm_htab) update_entry(log_rec.url); nptr->lasturl=find_url(log_rec.url); nptr->tstamp= tstamp; @@ -52,7 +51,7 @@ diff -uap webalizer-2.23-05/hashtab.c.groupvisit webalizer-2.23-05/hashtab.c nptr->visit=1; } } -@@ -875,11 +882,16 @@ int put_inode( char *str, /* ident +@@ -840,11 +847,16 @@ { nptr->visit=(visit-1); nptr->tstamp=tstamp; @@ -70,7 +69,7 @@ diff -uap webalizer-2.23-05/hashtab.c.groupvisit webalizer-2.23-05/hashtab.c } } } -@@ -899,7 +911,8 @@ int put_inode( char *str, /* ident +@@ -864,7 +876,8 @@ if (ispage(log_rec.url)) { @@ -80,7 +79,7 @@ diff -uap webalizer-2.23-05/hashtab.c.groupvisit webalizer-2.23-05/hashtab.c cptr->visit++; cptr->tstamp=tstamp; } -@@ -923,11 +936,16 @@ int put_inode( char *str, /* ident +@@ -888,11 +901,16 @@ { nptr->visit = (visit-1); nptr->tstamp= tstamp; diff --git a/webalizer-2.01-10-hostname.patch b/webalizer-2.01-10-hostname.patch new file mode 100644 index 0000000..f9a7204 --- /dev/null +++ b/webalizer-2.01-10-hostname.patch @@ -0,0 +1,62 @@ +--- webalizer-2.01-10/webalizer.c.hostname 2002-04-17 01:11:31.000000000 +0300 ++++ webalizer-2.01-10/webalizer.c 2006-03-30 09:22:39.000000000 +0300 +@@ -251,6 +251,10 @@ + + int max_ctry; /* max countries defined */ + ++ char *ip; /* pointer to current IP */ ++ int invalid; /* flag inside hostname check */ ++ int dot; /* flag if dot has passed */ ++ + /* month names used for parsing logfile (shouldn't be lang specific) */ + char *log_month[12]={ "jan", "feb", "mar", + "apr", "may", "jun", +@@ -987,6 +991,9 @@ + f_day=l_day=rec_day; + } + ++ /* Save IP address for later checks */ ++ ip = log_rec.hostname; ++ + #ifdef USE_DNS + /* Resolve IP address if needed */ + if (dns_db) +@@ -996,13 +1003,33 @@ + } + #endif + +- /* lowercase hostname */ ++ /* lowercase hostname - and validity check */ + cp1 = log_rec.hostname; +- while (*cp1 != '\0') ++ dot = 0; ++ if (!isalnum((int)*cp1)) strncpy(log_rec.hostname,"Invalid",8); ++ else + { +- if ( (*cp1>='A') && (*cp1<='Z') ) *cp1 += 'a'-'A'; +- if ( (isalnum((int)*cp1))||(*cp1=='.')||(*cp1=='-') ) cp1++; +- else *cp1='\0'; ++ invalid = 0; ++ while (*cp1 != '\0') ++ { ++ if ( (*cp1>='A') && (*cp1<='Z') ) *cp1 += 'a'-'A'; ++ if (*cp1=='.') dot = 1; ++ if ( (isalnum((int)*cp1))||(*cp1=='.')||(*cp1=='-') || ++ (*cp1=='_' && dot==0) ) cp1++; ++ else ++ { ++ if (strcmp(log_rec.hostname,ip)!=0) ++ strcpy(log_rec.hostname,ip); ++ else ++ strncpy(log_rec.hostname,"Invalid",8); ++ invalid = 1; break; ++ } ++ } ++ if (!invalid) ++ { ++ cp1--; ++ if (!isalnum((int)*cp1)) strncpy(log_rec.hostname,"Invalid",8); ++ } + } + + /* Catch blank hostnames here */ diff --git a/webalizer-2.01-10-ipv6.patch b/webalizer-2.01-10-ipv6.patch new file mode 100644 index 0000000..ae9e065 --- /dev/null +++ b/webalizer-2.01-10-ipv6.patch @@ -0,0 +1,241 @@ +#IPv6 patch by Arkadiusz Mi¶kiewicz for webalizer >= 2.01-10 +# +#Ported to Red Hat Linux/Fedora Core by Robert Scheck +# +--- webalizer-2.01-10/dns_resolv.c 2004-05-25 01:21:50.000000000 +0200 ++++ webalizer-2.01-10/dns_resolv.c.ipv6 2004-05-25 01:35:12.000000000 +0200 +@@ -61,6 +61,11 @@ + #include + #endif + ++/* ensure getaddrinfo/getnameinfo */ ++#ifndef _NETDB_H ++#include ++#endif ++ + /* some systems need this */ + #ifdef HAVE_MATH_H + #include +@@ -266,9 +271,16 @@ + strcpy(tmp_buf, buffer); /* save buffer in case of error */ + if(parse_record(buffer)) /* parse the record */ + { +- if((log_rec.addr.s_addr = inet_addr(log_rec.hostname)) != INADDR_NONE) ++ struct addrinfo hints, *ares; ++ memset(&hints, 0, sizeof(hints)); ++ hints.ai_family = AF_UNSPEC; ++ hints.ai_socktype = SOCK_STREAM; ++ hints.ai_flags = AI_NUMERICHOST; ++ if (0 == getaddrinfo(log_rec.hostname, "0", &hints, &ares)) + { + DBT q, r; ++ memcpy(&log_rec.addr, ares->ai_addr, ares->ai_addrlen); ++ freeaddrinfo(ares); + q.data = log_rec.hostname; + q.size = strlen(log_rec.hostname); + +@@ -414,12 +426,10 @@ + { + int size; + +- struct hostent *res_ent; +- + close(child[i].inpipe[0]); + close(child[i].outpipe[1]); + +- /* get struct in_addr here */ ++ /* get struct sockaddr_storage here */ + while((size = read(child[i].outpipe[0], child_buf, MAXHOST))) + { + if(size < 0) +@@ -429,37 +439,40 @@ + } + else + { ++ char hbuf[NI_MAXHOST]; ++ + if(debug_mode) + printf("Child got work: %lx(%d)\n", +- *((unsigned long *)child_buf), size); ++ *(unsigned long *)((struct sockaddr*)child_buf)->sa_data, size); + +- if((res_ent = gethostbyaddr(child_buf, size, AF_INET))) ++ if(0 == getnameinfo((struct sockaddr*)child_buf, sizeof(struct sockaddr_storage), ++ hbuf, sizeof(hbuf), NULL, 0, NI_NAMEREQD)) + { + /* must be at least 4 chars */ +- if (strlen(res_ent->h_name)>3) ++ if (strlen(hbuf)>3) + { + if(debug_mode) +- printf("Child got %s for %lx(%d), %d bytes\n", +- res_ent->h_name, +- *((unsigned long *)child_buf), +- size,strlen(res_ent->h_name)); ++ printf("Child got %s for %x(%d), %d bytes\n", ++ hbuf, ++ *(unsigned long *)((struct sockaddr *)child_buf)->sa_data, ++ size,strlen(hbuf)); + + /* If long hostname, take max domain name part */ +- if ((size = strlen(res_ent->h_name)) > MAXHOST-2) +- strcpy(child_buf,(res_ent->h_name+(size-MAXHOST+1))); +- else strcpy(child_buf, res_ent->h_name); ++ if ((size = strlen(hbuf)) > MAXHOST-2) ++ strcpy(child_buf,(hbuf+(size-MAXHOST+1))); ++ else strcpy(child_buf, hbuf); + size = strlen(child_buf); + } + else + { + if (debug_mode) +- printf("gethostbyaddr returned bad h_name!\n"); ++ printf("getnameinfor returned bad hbuf!\n"); + } + } + else + { + if(debug_mode) +- printf("gethostbyaddr returned NULL! (%d)\n",h_errno); ++ printf("getnameinfo didn't return any usable information!\n"); + } + + if (write(child[i].inpipe[1], child_buf, size) == -1) +@@ -538,8 +551,8 @@ + + if(trav) /* something to resolve */ + { +- if (write(child[i].outpipe[1], &(trav->addr.s_addr), +- sizeof(trav->addr.s_addr)) != -1) ++ if (write(child[i].outpipe[1], &trav->addr, ++ sizeof(trav->addr)) != -1) + { + /* We will watch this child */ + child[i].cur = trav; +@@ -547,10 +560,9 @@ + max_fd = MAX(max_fd, child[i].inpipe[0]); + + if(debug_mode) +- printf("Giving %s (%lx) to Child %d for resolving\n", ++ printf("Giving %s (%x) to Child %d for resolving\n", + child[i].cur->string, +- (unsigned long)child[i].cur->addr.s_addr, i); +- ++ *(unsigned long *)((struct sockaddr *)&child[i].cur->addr)->sa_data, i); + trav = trav->llist; + } + else /* write error */ +@@ -640,8 +652,8 @@ + default: + { + dns_buf[size] = '\0'; +- if(memcmp(dns_buf, &(child[i].cur->addr.s_addr), +- sizeof(child[i].cur->addr.s_addr))) ++ if(memcmp(dns_buf, &(child[i].cur->addr), ++ sizeof(child[i].cur->addr))) + { + if(debug_mode) + printf("Got a result (%d): %s -> %s\n", +--- webalizer-2.01-10/hashtab.c 2001-06-15 10:34:24.000000000 +0200 ++++ webalizer-2.01-10/hashtab.c.ipv6 2004-05-25 01:36:24.000000000 +0200 +@@ -976,7 +976,7 @@ + /* PUT_DNODE - insert/update dns host node */ + /*********************************************/ + +-int put_dnode(char *str, struct in_addr *addr, DNODEPTR *htab) ++int put_dnode(char *str, struct sockaddr_storage *addr, DNODEPTR *htab) + { + DNODEPTR cptr,nptr; + +@@ -988,8 +988,8 @@ + /* not hashed */ + if ( (nptr=new_dnode(str)) != NULL) + { +- if (addr) memcpy(&nptr->addr, addr, sizeof(struct in_addr)); +- else memset(&nptr->addr, 0, sizeof(struct in_addr)); ++ if (addr) memcpy(&nptr->addr, addr, sizeof(struct sockaddr_storage)); ++ else memset(&nptr->addr, 0, sizeof(struct sockaddr_storage)); + nptr->next = NULL; + htab[hash(str)] = nptr; + } +@@ -1005,8 +1005,8 @@ + /* not found... */ + if ( (nptr = new_dnode(str)) != NULL) + { +- if (addr) memcpy(&nptr->addr, addr, sizeof(struct in_addr)); +- else memset(&nptr->addr, 0, sizeof(struct in_addr)); ++ if (addr) memcpy(&nptr->addr, addr, sizeof(struct sockaddr_storage)); ++ else memset(&nptr->addr, 0, sizeof(struct sockaddr_storage)); + nptr->next = htab[hash(str)]; + htab[hash(str)]=nptr; + } +--- webalizer-2.01-10/hashtab.h 2000-09-29 05:50:30.000000000 +0200 ++++ webalizer-2.01-10/hashtab.h.ipv6 2004-05-25 01:37:26.000000000 +0200 +@@ -18,7 +18,7 @@ + + #ifdef USE_DNS + struct dnode { char *string; /* DNS node hash table struct */ +- struct in_addr addr; ++ struct sockaddr_storage addr; + struct dnode *llist; + struct dnode *next; }; + #endif +@@ -87,7 +87,7 @@ + extern int put_snode(char *, u_long, SNODEPTR *); + + #ifdef USE_DNS +-extern int put_dnode(char *, struct in_addr *, DNODEPTR *); ++extern int put_dnode(char *, struct sockaddr_storage *, DNODEPTR *); + extern void del_dlist(DNODEPTR *); + #endif + +--- webalizer-2.01-10/parser.c 2001-06-15 10:34:24.000000000 +0200 ++++ webalizer-2.01-10/parser.c.ipv6 2004-05-25 01:37:56.000000000 +0200 +@@ -114,7 +114,7 @@ + log_rec.ident[0]=0; + */ + #ifdef USE_DNS +- memset(&log_rec.addr,0,sizeof(struct in_addr)); ++ memset(&log_rec.addr,0,sizeof(struct sockaddr_storage)); + #endif + + /* call appropriate handler */ +--- webalizer-2.01-10/webalizer.c 2004-05-25 01:21:50.000000000 +0200 ++++ webalizer-2.01-10/webalizer.c.ipv6 2004-05-25 01:39:31.000000000 +0200 +@@ -63,6 +63,7 @@ + #ifdef USE_DNS + #include + #include ++#include + + #ifdef HAVE_DB_185_H + #include +@@ -991,8 +992,15 @@ + /* Resolve IP address if needed */ + if (dns_db) + { +- if (inet_addr(log_rec.hostname) != INADDR_NONE) +- resolve_dns(&log_rec); ++ struct addrinfo hints, *ares; ++ memset(&hints, 0, sizeof(hints)); ++ hints.ai_family = AF_UNSPEC; ++ hints.ai_socktype = SOCK_STREAM; ++ hints.ai_flags = AI_NUMERICHOST; ++ if (0 == getaddrinfo(log_rec.hostname, "0", &hints, &ares)) { ++ freeaddrinfo(ares); ++ resolve_dns(&log_rec); ++ } + } + #endif + +--- webalizer-2.01-10/webalizer.h 2001-02-10 01:58:18.000000000 +0100 ++++ webalizer-2.01-10/webalizer.h.ipv6 2004-05-25 01:40:09.000000000 +0200 +@@ -143,7 +143,7 @@ + int resp_code; /* response code */ + u_long xfer_size; /* xfer size in bytes */ + #ifdef USE_DNS +- struct in_addr addr; /* IP address structure */ ++ struct sockaddr_storage addr; /* IP address structure */ + #endif /* USE_DNS */ + char refer[MAXREF]; /* referrer */ + char agent[MAXAGENT]; /* user agent (browser) */ diff --git a/webalizer-2.01-10-maxagent.patch b/webalizer-2.01-10-maxagent.patch new file mode 100644 index 0000000..44a2533 --- /dev/null +++ b/webalizer-2.01-10-maxagent.patch @@ -0,0 +1,11 @@ +--- webalizer-2.01-10/webalizer.h.maxagent 2001-02-10 02:58:18.000000000 +0200 ++++ webalizer-2.01-10/webalizer.h 2006-03-28 17:29:03.000000000 +0300 +@@ -17,7 +17,7 @@ + #define MAXURLH 128 /* Max URL field size in htab */ + #define MAXREF 1024 /* Max referrer field size */ + #define MAXREFH 128 /* Max referrer field size in htab */ +-#define MAXAGENT 64 /* Max user agent field size */ ++#define MAXAGENT 128 /* Max user agent field size */ + #define MAXCTRY 48 /* Max country name size */ + #define MAXSRCH 256 /* Max size of search string buffer */ + #define MAXSRCHH 64 /* Max size of search str in htab */ diff --git a/webalizer-2.01-10-overflow.patch b/webalizer-2.01-10-overflow.patch new file mode 100644 index 0000000..4dbf67c --- /dev/null +++ b/webalizer-2.01-10-overflow.patch @@ -0,0 +1,11 @@ +--- webalizer-2.01-10/dns_resolv.c.overflow 2004-01-08 14:51:04.000000000 +0000 ++++ webalizer-2.01-10/dns_resolv.c 2004-01-08 14:51:11.000000000 +0000 +@@ -156,7 +156,7 @@ + strncpy (log_rec->hostname, + ((struct dnsRecord *)response.data)->hostName, + MAXHOST); +- log_rec->hostname[MAXHOST]=0; ++ log_rec->hostname[MAXHOST-1]=0; + if (debug_mode) + fprintf(stderr," found: %s (%ld)\n", + log_rec->hostname, alignedRecord.timeStamp); diff --git a/webalizer-2.21-02-underrun.patch b/webalizer-2.01-10-underrun.patch similarity index 74% rename from webalizer-2.21-02-underrun.patch rename to webalizer-2.01-10-underrun.patch index 1940a49..a5b87b3 100644 --- a/webalizer-2.21-02-underrun.patch +++ b/webalizer-2.01-10-underrun.patch @@ -1,6 +1,6 @@ ---- webalizer-2.21-02/webalizer.c 2009-01-13 06:35:54.000000000 +0100 -+++ webalizer-2.21-02/webalizer.c.underrun 2009-03-29 14:16:21.000000000 +0200 -@@ -737,10 +737,16 @@ +--- webalizer-2.01-10/webalizer.c.underrun 2004-06-18 07:53:48.000000000 -0400 ++++ webalizer-2.01-10/webalizer.c 2004-06-18 07:59:30.000000000 -0400 +@@ -585,10 +585,16 @@ rec_sec =atoi(&log_rec.datetime[19]); /* get second number */ /* Kludge for Netscape server time (0-24?) error */ @@ -12,7 +12,7 @@ + rec_sec = 59; /* minimal sanity check on date */ -- if ((i>=12)||(rec_min>59)||(rec_sec>60)||(rec_year<1990)) +- if ((i>=12)||(rec_min>59)||(rec_sec>59)||(rec_year<1990)) + if ( i >= 12 || rec_min < 0 || rec_min > 59 || + rec_sec < 0 || rec_sec > 59 || rec_year<1990 || + rec_day < 0) diff --git a/webalizer-2.23-05-confuser.patch b/webalizer-2.01_10-confuser.patch similarity index 90% rename from webalizer-2.23-05-confuser.patch rename to webalizer-2.01_10-confuser.patch index d8981e0..ed0dae3 100644 --- a/webalizer-2.23-05-confuser.patch +++ b/webalizer-2.01_10-confuser.patch @@ -3,6 +3,15 @@ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=158174 --- webalizer-2.01-10/webalizer.c.confuser 2005-09-21 13:32:40.000000000 +0100 +++ webalizer-2.01-10/webalizer.c 2005-09-21 13:33:43.000000000 +0100 +@@ -50,6 +50,8 @@ + #include + #endif + ++#include ++ + /* some systems need this */ + #ifdef HAVE_MATH_H + #include @@ -252,6 +254,8 @@ int max_ctry; /* max countries defined */ diff --git a/webalizer-2.01_10-lfs.patch b/webalizer-2.01_10-lfs.patch new file mode 100644 index 0000000..938837e --- /dev/null +++ b/webalizer-2.01_10-lfs.patch @@ -0,0 +1,11 @@ +--- webalizer-2.01-10/webalizer.c.lfs 2002-04-16 23:11:31.000000000 +0100 ++++ webalizer-2.01-10/webalizer.c 2003-08-02 09:42:11.000000000 +0100 +@@ -419,7 +419,7 @@ + { + if (log_fname) + { +- log_fp = fopen(log_fname,"r"); ++ log_fp = fopen64(log_fname,"r"); + if (log_fp==NULL) + { + /* Error: Can't open log file ... */ diff --git a/webalizer-2.23-08-memmove.patch b/webalizer-2.23-08-memmove.patch deleted file mode 100644 index 44769da..0000000 --- a/webalizer-2.23-08-memmove.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -u new/dns_resolv.c new.1/dns_resolv.c ---- new/dns_resolv.c 2013-02-26 05:37:27.000000000 +0000 -+++ new.1/dns_resolv.c 2016-04-05 06:57:30.827715718 +0000 -@@ -886,7 +886,7 @@ - /* kludge for IPv6 6to4 (RFC3056) */ - if (addr[0]==0x20 && addr[1]==0x02) - { -- memcpy(&addr[12],&addr[2],4); -+ memmove(&addr[12],&addr[2],4); - memset(&addr,0,12); - } - -diff -u new/preserve.c new.1/preserve.c ---- new/preserve.c 2013-02-26 05:37:27.000000000 +0000 -+++ new.1/preserve.c 2016-04-05 06:56:39.023080706 +0000 -@@ -109,7 +109,7 @@ - yr = hist[i].year; - mth= hist[i].month+1; - if (mth>12) { mth=1; yr++; } -- memcpy(&hist[0], &hist[1], sizeof(hist[0])*i); -+ memmove(&hist[0], &hist[1], sizeof(hist[0])*i); - memset(&hist[i], 0, sizeof(struct hist_rec)); - hist[i].year=yr; hist[i].month=mth; n--; - } -@@ -277,7 +277,7 @@ - yr = hist[i].year; - mth= hist[i].month+1; - if (mth>12) { mth=1; yr++; } -- memcpy(&hist[0],&hist[1],sizeof(hist[0])*i); -+ memmove(&hist[0],&hist[1],sizeof(hist[0])*i); - memset(&hist[i], 0, sizeof(struct hist_rec)); - hist[i].year=yr; hist[i].month=mth; n--; - } diff --git a/webalizer-httpd.conf b/webalizer-httpd.conf index 6a352b2..556d95d 100644 --- a/webalizer-httpd.conf +++ b/webalizer-httpd.conf @@ -6,6 +6,9 @@ Alias /usage /var/www/usage - # Alternative e.g. "Require ip 192.168.10" - Require local + Order deny,allow + Deny from all + Allow from 127.0.0.1 + Allow from ::1 + # Allow from .example.com diff --git a/webalizer.cron b/webalizer.cron index 063fe51..1cf7e3b 100644 --- a/webalizer.cron +++ b/webalizer.cron @@ -1,11 +1,6 @@ -#!/bin/bash +#! /bin/bash # update access statistics for the web site -NAME=webalizer - -[ -f /etc/sysconfig/$NAME ] || exit 0 -source /etc/sysconfig/$NAME - -[ "z$WEBALIZER_CRON" != "zyes" ] && exit 0 - -exec /usr/bin/webalizer -Q +if [ -s /var/log/httpd/access_log ]; then + exec /usr/bin/webalizer -Q +fi diff --git a/webalizer.spec b/webalizer.spec index 82a2613..018ecae 100644 --- a/webalizer.spec +++ b/webalizer.spec @@ -1,38 +1,36 @@ -%define ver 2.23 -%define patchlevel 08 - -%if 0%{?fedora} < 18 && 0%{?rhel} < 7 -%global db_devel db4-devel -%else -%global db_devel libdb-devel -%endif +%define ver 2.01 +%define patchlevel 10 Name: webalizer Summary: A flexible Web server log file analysis program -Version: 2.23_08 -Release: 29%{?dist} +Group: Applications/Internet +Version: 2.01_10 +Release: 36 URL: http://www.mrunix.net/webalizer/ -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later -Source0: ftp://ftp.mrunix.net/pub/webalizer/%{name}-%{ver}-%{patchlevel}-src.tgz +License: GPLv2+ +Source0: ftp://ftp.mrunix.net/pub/webalizer/%{name}-%{ver}-%{patchlevel}-src.tar.bz2 Source1: webalizer.conf Source2: webalizer.cron Source3: webalizer-httpd.conf -Source4: webalizer.sysconfig -Patch4: webalizer-2.21-02-underrun.patch -Patch6: webalizer-2.23-05-confuser.patch -Patch9: webalizer-2.23-05-groupvisit.patch -Patch10: webalizer-2.23-08-memmove.patch -# From Debian -Patch21: 02_fix_a_spelling_error.diff -Patch22: 04_Fix_cast_warnings_in_output.c.diff -Patch23: 14_add_search_engines.diff -Patch24: 17_fix_typo_supress_suppress_in_sample.conf.diff -Patch25: 27_fix_compilation_with_gcc-10.diff -BuildRequires: make -BuildRequires: gcc -BuildRequires: gd-devel, %{db_devel}, bzip2-devel -BuildRequires: GeoIP-devel +Patch0: webalizer-2.01-06-rh.patch +Patch1: dns-db1.patch +Patch2: webalizer-2.01_10-lfs.patch +Patch3: webalizer-2.01-10-overflow.patch +Patch4: webalizer-2.01-10-underrun.patch +Patch5: webalizer-2.01-10-ipv6.patch +Patch6: webalizer-2.01_10-confuser.patch +Patch7: webalizer-2.01-10-hostname.patch +Patch8: webalizer-2.01-10-maxagent.patch +Patch9: webalizer-2.01-10-groupvisit.patch +Patch10: webalizer-2.01-10-countrycode.patch +Patch11: webalizer-2.01-10-agent-opera.patch +Patch12: webalizer-2.01-10-agent-gecko.patch +Patch13: webalizer-2.01-10-agent-apple.patch +Patch14: webalizer-2.01-10-agent-compatible.patch +Patch15: webalizer-2.01-10-agent-default.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: gd-devel, db4-devel +Requires(pre): /usr/sbin/useradd Requires: httpd, crontabs %description @@ -44,210 +42,71 @@ Web traffic is coming from easy. %prep %setup -q -n %{name}-%{ver}-%{patchlevel} -%patch -P4 -p1 -b .underrun -%patch -P6 -p1 -b .confuser -%patch -P9 -p1 -b .groupvisit -%patch -P10 -p1 -b .memmove -%patch -P21 -p1 -b .spelling_error -%patch -P22 -p1 -b .cast_warnings -%patch -P23 -p1 -b .sample_add_search_engines -%patch -P24 -p1 -b .sample_typo -%patch -P25 -p1 -b .gcc10_common_support - -# Create a sysusers.d config file -cat >webalizer.sysusers.conf </dev/null || : %files +%defattr(-,root,root) %doc README -%{_mandir}/man1/*.1* +%{_mandir}/man1/webalizer.1* %{_bindir}/* %config(noreplace) %{_sysconfdir}/webalizer.conf %{_sysconfdir}/cron.daily/00webalizer %config(noreplace) %{_sysconfdir}/httpd/conf.d/webalizer.conf -%config(noreplace) %{_sysconfdir}/sysconfig/webalizer %attr(-, webalizer, root) %dir %{_localstatedir}/www/usage %attr(-, webalizer, root) %dir %{_localstatedir}/lib/webalizer %attr(-, webalizer, root) %{_localstatedir}/www/usage/*.png -%{_sysusersdir}/webalizer.conf %changelog -* Fri Jul 25 2025 Fedora Release Engineering - 2.23_08-29 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Feb 11 2025 Zbigniew JÄ™drzejewski-Szmek - 2.23_08-28 -- Add sysusers.d config file to allow rpm to create users/groups automatically - -* Sun Jan 19 2025 Fedora Release Engineering - 2.23_08-27 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Fri Jul 26 2024 Miroslav Suchý - 2.23_08-26 -- convert license to SPDX - -* Sat Jul 20 2024 Fedora Release Engineering - 2.23_08-25 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jan 27 2024 Fedora Release Engineering - 2.23_08-24 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Jul 22 2023 Fedora Release Engineering - 2.23_08-23 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sat Jan 21 2023 Fedora Release Engineering - 2.23_08-22 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sat Jul 23 2022 Fedora Release Engineering - 2.23_08-21 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sat Jan 22 2022 Fedora Release Engineering - 2.23_08-20 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Sat Jan 15 2022 Sérgio Basto - 2.23_08-19 -- Add some patches from Debian, fix gcc10 common support - -* Sat Jan 15 2022 Sérgio Basto - 2.23_08-18 -- Fix warning message (#2040985) - -* Fri Jul 23 2021 Fedora Release Engineering - 2.23_08-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jan 27 2021 Fedora Release Engineering - 2.23_08-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Jul 29 2020 Fedora Release Engineering - 2.23_08-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jan 31 2020 Fedora Release Engineering - 2.23_08-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sat Jul 27 2019 Fedora Release Engineering - 2.23_08-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Sun Feb 03 2019 Fedora Release Engineering - 2.23_08-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Jul 14 2018 Fedora Release Engineering - 2.23_08-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Feb 09 2018 Fedora Release Engineering - 2.23_08-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Aug 03 2017 Fedora Release Engineering - 2.23_08-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 2.23_08-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Sat Feb 11 2017 Fedora Release Engineering - 2.23_08-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Jan 11 2017 Sérgio Basto - 2.23_08-6 -- Add patch to fix some undefined behaviour by switching to memmove() (#1409349) - -* Tue Dec 20 2016 Robert Scheck - 2.23_08-5 -- Build on EPEL >= 7 against libdb-devel to enable DNS/GeoDB code - -* Thu Dec 01 2016 Sérgio Basto - 2.23_08-4 -- Package review (#226536) -- Fix bogus date in changelog -- Enable-geoip -- Clean-up spec - -* Fri Feb 05 2016 Fedora Release Engineering - 2.23_08-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Fri Jun 19 2015 Fedora Release Engineering - 2.23_08-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Thu Aug 21 2014 Jan Kaluza - 2.23_08-1 -- update to new version 2.23-08 (#1119536) - -* Mon Aug 18 2014 Fedora Release Engineering - 2.23_05-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sun Jun 08 2014 Fedora Release Engineering - 2.23_05-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Sun Aug 04 2013 Fedora Release Engineering - 2.23_05-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Tue Jun 11 2013 Remi Collet - 2.23_05-8 -- rebuild for new GD 2.1.0 - -* Fri Feb 15 2013 Fedora Release Engineering - 2.23_05-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Fri Jan 4 2013 Joe Orton - 2.23_05-6 -- fix config for 2.4 (#871494) - -* Sun Jul 22 2012 Fedora Release Engineering - 2.23_05-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Wed Apr 25 2012 Joe Orton - 2.23_05-4 -- build (conditionally) against libdb-devel - -* Sat Jan 14 2012 Fedora Release Engineering - 2.23_05-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Tue Dec 06 2011 Adam Jackson - 2.23_05-2 -- Rebuild for new libpng - -* Thu Jul 14 2011 Joe Orton - 2.23_05-1 -- update to 2.23_05 - -* Mon Feb 07 2011 Fedora Release Engineering - 2.21_02-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Sun Oct 17 2010 Ruben Kerkhof 2.21_02-4 -- Don't run cronjob unless configured in /etc/sysconfig/webalizer (merge review #298203) - -* Mon Jul 27 2009 Fedora Release Engineering - 2.21_02-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Tue Apr 14 2009 Joe Orton 2.21_02-2 -- update to 2.21-02 (thanks to Robert Scheck) - -* Wed Feb 25 2009 Fedora Release Engineering - 2.20_01-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Fri Sep 5 2008 Joe Orton 2.20_01-1 -- update to 2.20_01 - -* Mon Jul 14 2008 Joe Orton 2.01_10-37 -- rebuild for new BDB - * Thu Feb 7 2008 Joe Orton 2.01_10-36 - fix build with new glibc, use _GNU_SOURCE @@ -350,7 +209,7 @@ install -m0644 -D webalizer.sysusers.conf %{buildroot}%{_sysusersdir}/webalizer. * Thu Jul 3 2003 Joe Orton - rebuilt -* Thu Jun 05 2003 Elliot Lee +* Wed Jun 05 2003 Elliot Lee - rebuilt * Thu Jun 05 2003 Florian La Roche @@ -372,7 +231,7 @@ install -m0644 -D webalizer.sysusers.conf %{buildroot}%{_sysusersdir}/webalizer. * Mon Jul 01 2002 Than Ngo 2.01_10-8 - fix a bug in pre (bug #67634) -* Thu Jun 27 2002 Than Ngo 2.01_10-7 +* Wed Jun 27 2002 Than Ngo 2.01_10-7 - add shadow-utils in prereq * Fri Jun 21 2002 Tim Powers @@ -402,7 +261,7 @@ install -m0644 -D webalizer.sysusers.conf %{buildroot}%{_sysusersdir}/webalizer. * Mon Feb 25 2002 Than Ngo 2.01_09-5 - allows multiple partial log files to be used instead of one huge one.(bug #60295) -* Thu Feb 21 2002 Than Ngo 2.01_09-4 +* Wed Feb 21 2002 Than Ngo 2.01_09-4 - add function to enable/disable webalizer (bug #59752) * Wed Jan 09 2002 Tim Powers @@ -462,7 +321,7 @@ install -m0644 -D webalizer.sysusers.conf %{buildroot}%{_sysusersdir}/webalizer. * Wed Jul 12 2000 Than Ngo - rebuilt -* Mon Jun 19 2000 Karsten Hopp +* Sun Jun 19 2000 Karsten Hopp - rebuild for 7.0 - changed mandir - changed graph output to png instead of gif diff --git a/webalizer.sysconfig b/webalizer.sysconfig deleted file mode 100644 index f436132..0000000 --- a/webalizer.sysconfig +++ /dev/null @@ -1,5 +0,0 @@ -# uncomment if you want webalizer to be run each day by -# /etc/cron.daily/00webalizer - -#WEBALIZER_CRON=yes -