From a44790b647b40130187fdaff4cec710bbaad7ed9 Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Tue, 2 Dec 2014 18:49:07 +0100 Subject: [PATCH 001/210] groff: Update to 1.22.3 --- config/rootfiles/common/groff | 1180 +++++++++++++++++---------------- lfs/groff | 6 +- 2 files changed, 595 insertions(+), 591 deletions(-) diff --git a/config/rootfiles/common/groff b/config/rootfiles/common/groff index c27e5947e..714b4201b 100644 --- a/config/rootfiles/common/groff +++ b/config/rootfiles/common/groff @@ -1,588 +1,592 @@ -#usr/bin/addftinfo -#usr/bin/afmtodit -#usr/bin/chem -#usr/bin/eqn -#usr/bin/eqn2graph -#usr/bin/gdiffmk -#usr/bin/geqn -#usr/bin/grap2graph -#usr/bin/grn -#usr/bin/grodvi -#usr/bin/groff -#usr/bin/groffer -#usr/bin/grog -#usr/bin/grolbp -#usr/bin/grolj4 -#usr/bin/grops -#usr/bin/grotty -#usr/bin/gtbl -#usr/bin/hpftodit -#usr/bin/indxbib -#usr/bin/lkbib -#usr/bin/lookbib -#usr/bin/mmroff -#usr/bin/neqn -#usr/bin/nroff -#usr/bin/pdfroff -#usr/bin/pfbtops -#usr/bin/pic -#usr/bin/pic2graph -#usr/bin/post-grohtml -#usr/bin/pre-grohtml -#usr/bin/preconv -#usr/bin/refer -#usr/bin/roff2dvi -#usr/bin/roff2html -#usr/bin/roff2pdf -#usr/bin/roff2ps -#usr/bin/roff2text -#usr/bin/roff2x -#usr/bin/soelim -#usr/bin/tbl -#usr/bin/tfmtodit -#usr/bin/troff -#usr/lib/groff -#usr/lib/groff/groffer -#usr/lib/groff/groffer/func.pl -#usr/lib/groff/groffer/man.pl -#usr/lib/groff/groffer/perl_test.pl -#usr/lib/groff/groffer/split_env.sh -#usr/lib/groff/groffer/version.sh -#usr/lib/groff/site-tmac -#usr/share/doc/groff-1.21 -#usr/share/doc/groff-1.21/examples -#usr/share/doc/groff-1.21/examples/chem -#usr/share/doc/groff-1.21/examples/chem/122 -#usr/share/doc/groff-1.21/examples/chem/122/README -#usr/share/doc/groff-1.21/examples/chem/122/ch2a_ethyl.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch2b_benzene.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch2c_benzene_right.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4a_stick.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4b_methyl_acetate.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4c_colon.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4d_HCl.H2O.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4e_CaSO4.2H2O.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4f_C.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4g_BP.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4h_methacrylate.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4i_cyclo.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4j_ring4.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4k_ring3.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4l_vertex.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4m_double.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4n_triple.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4o_aromatic.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4p_cholestanol.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4q_rings.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4r_spiro.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4s_heteroatoms.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4t_polycyclic.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4u_nicotine.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4v_histidine.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4w_lsd.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4x_anisole.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4y_reserpine.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4z1_eqn_glutamic.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch4z2_text.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch5a_size.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch6a_pic.chem -#usr/share/doc/groff-1.21/examples/chem/122/ch6b_dna.chem -#usr/share/doc/groff-1.21/examples/chem/122/chAa_polymer.chem -#usr/share/doc/groff-1.21/examples/chem/122/chAb_vinyl_chloro.chem -#usr/share/doc/groff-1.21/examples/chem/122/chAc_morphine.chem -#usr/share/doc/groff-1.21/examples/chem/122/chAd_chlorophyll.chem -#usr/share/doc/groff-1.21/examples/chem/122/chAe_chair.chem -#usr/share/doc/groff-1.21/examples/chem/122/chAf_arrow.chem -#usr/share/doc/groff-1.21/examples/chem/122/chAg_circle.chem -#usr/share/doc/groff-1.21/examples/chem/122/chAh_brackets.chem -#usr/share/doc/groff-1.21/examples/chem/122/chAi_poly_vinyl_chloride.chem -#usr/share/doc/groff-1.21/examples/chem/122/chBa_jump.chem -#usr/share/doc/groff-1.21/examples/chem/122/chBb_bonds.chem -#usr/share/doc/groff-1.21/examples/chem/122/chBc_rings.chem -#usr/share/doc/groff-1.21/examples/chem/README -#usr/share/doc/groff-1.21/examples/chem/atp.chem -#usr/share/doc/groff-1.21/examples/chem/cholesterin.chem -#usr/share/doc/groff-1.21/examples/chem/ethamivan.chem -#usr/share/doc/groff-1.21/examples/chem/lsd.chem -#usr/share/doc/groff-1.21/examples/chem/morphine.chem -#usr/share/doc/groff-1.21/examples/chem/penicillin.chem -#usr/share/doc/groff-1.21/examples/chem/reserpine.chem -#usr/share/doc/groff-1.21/examples/gnu.eps -#usr/share/doc/groff-1.21/examples/grnexmpl.g -#usr/share/doc/groff-1.21/examples/grnexmpl.me -#usr/share/doc/groff-1.21/examples/grnexmpl.ps -#usr/share/doc/groff-1.21/examples/groff.css -#usr/share/doc/groff-1.21/examples/hdtbl -#usr/share/doc/groff-1.21/examples/hdtbl/chess_board.ps -#usr/share/doc/groff-1.21/examples/hdtbl/chess_board.roff -#usr/share/doc/groff-1.21/examples/hdtbl/col_rowspan_colors.ps -#usr/share/doc/groff-1.21/examples/hdtbl/col_rowspan_colors.roff -#usr/share/doc/groff-1.21/examples/hdtbl/color_boxes.ps -#usr/share/doc/groff-1.21/examples/hdtbl/color_boxes.roff -#usr/share/doc/groff-1.21/examples/hdtbl/color_nested_tables.ps -#usr/share/doc/groff-1.21/examples/hdtbl/color_nested_tables.roff -#usr/share/doc/groff-1.21/examples/hdtbl/color_table_cells.ps -#usr/share/doc/groff-1.21/examples/hdtbl/color_table_cells.roff -#usr/share/doc/groff-1.21/examples/hdtbl/color_transitions.ps -#usr/share/doc/groff-1.21/examples/hdtbl/color_transitions.roff -#usr/share/doc/groff-1.21/examples/hdtbl/common.roff -#usr/share/doc/groff-1.21/examples/hdtbl/fonts_n.ps -#usr/share/doc/groff-1.21/examples/hdtbl/fonts_n.roff -#usr/share/doc/groff-1.21/examples/hdtbl/fonts_x.ps -#usr/share/doc/groff-1.21/examples/hdtbl/fonts_x.roff -#usr/share/doc/groff-1.21/examples/hdtbl/gnu.eps -#usr/share/doc/groff-1.21/examples/hdtbl/mixed_pickles.ps -#usr/share/doc/groff-1.21/examples/hdtbl/mixed_pickles.roff -#usr/share/doc/groff-1.21/examples/hdtbl/rainbow.ps -#usr/share/doc/groff-1.21/examples/hdtbl/rainbow.roff -#usr/share/doc/groff-1.21/examples/hdtbl/short_reference.ps -#usr/share/doc/groff-1.21/examples/hdtbl/short_reference.roff -#usr/share/doc/groff-1.21/examples/mom -#usr/share/doc/groff-1.21/examples/mom/README.txt -#usr/share/doc/groff-1.21/examples/mom/elvis_syntax -#usr/share/doc/groff-1.21/examples/mom/elvis_syntax.new -#usr/share/doc/groff-1.21/examples/mom/letter.mom -#usr/share/doc/groff-1.21/examples/mom/letter.ps -#usr/share/doc/groff-1.21/examples/mom/penguin.ps -#usr/share/doc/groff-1.21/examples/mom/sample_docs.mom -#usr/share/doc/groff-1.21/examples/mom/sample_docs.ps -#usr/share/doc/groff-1.21/examples/mom/typesetting.mom -#usr/share/doc/groff-1.21/examples/mom/typesetting.ps -#usr/share/doc/groff-1.21/examples/webpage.ms -#usr/share/doc/groff-1.21/examples/webpage.ps -#usr/share/doc/groff-1.21/html -#usr/share/doc/groff-1.21/html/mom -#usr/share/doc/groff-1.21/html/mom/appendices.html -#usr/share/doc/groff-1.21/html/mom/color.html -#usr/share/doc/groff-1.21/html/mom/cover.html -#usr/share/doc/groff-1.21/html/mom/definitions.html -#usr/share/doc/groff-1.21/html/mom/docelement.html -#usr/share/doc/groff-1.21/html/mom/docprocessing.html -#usr/share/doc/groff-1.21/html/mom/goodies.html -#usr/share/doc/groff-1.21/html/mom/graphical.html -#usr/share/doc/groff-1.21/html/mom/headfootpage.html -#usr/share/doc/groff-1.21/html/mom/images.html -#usr/share/doc/groff-1.21/html/mom/inlines.html -#usr/share/doc/groff-1.21/html/mom/intro.html -#usr/share/doc/groff-1.21/html/mom/letters.html -#usr/share/doc/groff-1.21/html/mom/macrolist.html -#usr/share/doc/groff-1.21/html/mom/rectoverso.html -#usr/share/doc/groff-1.21/html/mom/refer.html -#usr/share/doc/groff-1.21/html/mom/reserved.html -#usr/share/doc/groff-1.21/html/mom/stylesheet.css -#usr/share/doc/groff-1.21/html/mom/tables-of-contents.html -#usr/share/doc/groff-1.21/html/mom/toc.html -#usr/share/doc/groff-1.21/html/mom/typesetting.html -#usr/share/doc/groff-1.21/html/mom/using.html -#usr/share/doc/groff-1.21/meintro.me -#usr/share/doc/groff-1.21/meintro.ps -#usr/share/doc/groff-1.21/meref.me -#usr/share/doc/groff-1.21/meref.ps -#usr/share/doc/groff-1.21/pic.ms -#usr/share/doc/groff-1.21/pic.ps -#usr/share/groff -#usr/share/groff/1.21 -#usr/share/groff/1.21/eign -#usr/share/groff/1.21/font -#usr/share/groff/1.21/font/devascii -#usr/share/groff/1.21/font/devascii/B -#usr/share/groff/1.21/font/devascii/BI -#usr/share/groff/1.21/font/devascii/DESC -#usr/share/groff/1.21/font/devascii/I -#usr/share/groff/1.21/font/devascii/R -#usr/share/groff/1.21/font/devdvi -#usr/share/groff/1.21/font/devdvi/CW -#usr/share/groff/1.21/font/devdvi/CWEC -#usr/share/groff/1.21/font/devdvi/CWI -#usr/share/groff/1.21/font/devdvi/CWIEC -#usr/share/groff/1.21/font/devdvi/CWITC -#usr/share/groff/1.21/font/devdvi/CWTC -#usr/share/groff/1.21/font/devdvi/DESC -#usr/share/groff/1.21/font/devdvi/EX -#usr/share/groff/1.21/font/devdvi/HB -#usr/share/groff/1.21/font/devdvi/HBEC -#usr/share/groff/1.21/font/devdvi/HBI -#usr/share/groff/1.21/font/devdvi/HBIEC -#usr/share/groff/1.21/font/devdvi/HBITC -#usr/share/groff/1.21/font/devdvi/HBTC -#usr/share/groff/1.21/font/devdvi/HI -#usr/share/groff/1.21/font/devdvi/HIEC -#usr/share/groff/1.21/font/devdvi/HITC -#usr/share/groff/1.21/font/devdvi/HR -#usr/share/groff/1.21/font/devdvi/HREC -#usr/share/groff/1.21/font/devdvi/HRTC -#usr/share/groff/1.21/font/devdvi/MI -#usr/share/groff/1.21/font/devdvi/S -#usr/share/groff/1.21/font/devdvi/SA -#usr/share/groff/1.21/font/devdvi/SB -#usr/share/groff/1.21/font/devdvi/SC -#usr/share/groff/1.21/font/devdvi/TB -#usr/share/groff/1.21/font/devdvi/TBEC -#usr/share/groff/1.21/font/devdvi/TBI -#usr/share/groff/1.21/font/devdvi/TBIEC -#usr/share/groff/1.21/font/devdvi/TBITC -#usr/share/groff/1.21/font/devdvi/TBTC -#usr/share/groff/1.21/font/devdvi/TI -#usr/share/groff/1.21/font/devdvi/TIEC -#usr/share/groff/1.21/font/devdvi/TITC -#usr/share/groff/1.21/font/devdvi/TR -#usr/share/groff/1.21/font/devdvi/TREC -#usr/share/groff/1.21/font/devdvi/TRTC -#usr/share/groff/1.21/font/devdvi/generate -#usr/share/groff/1.21/font/devdvi/generate/CompileFonts -#usr/share/groff/1.21/font/devdvi/generate/Makefile -#usr/share/groff/1.21/font/devdvi/generate/ec.map -#usr/share/groff/1.21/font/devdvi/generate/msam.map -#usr/share/groff/1.21/font/devdvi/generate/msbm.map -#usr/share/groff/1.21/font/devdvi/generate/tc.map -#usr/share/groff/1.21/font/devdvi/generate/texb.map -#usr/share/groff/1.21/font/devdvi/generate/texex.map -#usr/share/groff/1.21/font/devdvi/generate/texi.map -#usr/share/groff/1.21/font/devdvi/generate/texmi.map -#usr/share/groff/1.21/font/devdvi/generate/texr.map -#usr/share/groff/1.21/font/devdvi/generate/texsy.map -#usr/share/groff/1.21/font/devdvi/generate/textex.map -#usr/share/groff/1.21/font/devdvi/generate/textt.map -#usr/share/groff/1.21/font/devhtml -#usr/share/groff/1.21/font/devhtml/B -#usr/share/groff/1.21/font/devhtml/BI -#usr/share/groff/1.21/font/devhtml/CB -#usr/share/groff/1.21/font/devhtml/CBI -#usr/share/groff/1.21/font/devhtml/CI -#usr/share/groff/1.21/font/devhtml/CR -#usr/share/groff/1.21/font/devhtml/DESC -#usr/share/groff/1.21/font/devhtml/I -#usr/share/groff/1.21/font/devhtml/R -#usr/share/groff/1.21/font/devhtml/S -#usr/share/groff/1.21/font/devlatin1 -#usr/share/groff/1.21/font/devlatin1/B -#usr/share/groff/1.21/font/devlatin1/BI -#usr/share/groff/1.21/font/devlatin1/DESC -#usr/share/groff/1.21/font/devlatin1/I -#usr/share/groff/1.21/font/devlatin1/R -#usr/share/groff/1.21/font/devlbp -#usr/share/groff/1.21/font/devlbp/CB -#usr/share/groff/1.21/font/devlbp/CI -#usr/share/groff/1.21/font/devlbp/CR -#usr/share/groff/1.21/font/devlbp/DESC -#usr/share/groff/1.21/font/devlbp/EB -#usr/share/groff/1.21/font/devlbp/EI -#usr/share/groff/1.21/font/devlbp/ER -#usr/share/groff/1.21/font/devlbp/HB -#usr/share/groff/1.21/font/devlbp/HBI -#usr/share/groff/1.21/font/devlbp/HI -#usr/share/groff/1.21/font/devlbp/HNB -#usr/share/groff/1.21/font/devlbp/HNBI -#usr/share/groff/1.21/font/devlbp/HNI -#usr/share/groff/1.21/font/devlbp/HNR -#usr/share/groff/1.21/font/devlbp/HR -#usr/share/groff/1.21/font/devlbp/TB -#usr/share/groff/1.21/font/devlbp/TBI -#usr/share/groff/1.21/font/devlbp/TI -#usr/share/groff/1.21/font/devlbp/TR -#usr/share/groff/1.21/font/devlj4 -#usr/share/groff/1.21/font/devlj4/AB -#usr/share/groff/1.21/font/devlj4/ABI -#usr/share/groff/1.21/font/devlj4/AI -#usr/share/groff/1.21/font/devlj4/ALBB -#usr/share/groff/1.21/font/devlj4/ALBR -#usr/share/groff/1.21/font/devlj4/AOB -#usr/share/groff/1.21/font/devlj4/AOI -#usr/share/groff/1.21/font/devlj4/AOR -#usr/share/groff/1.21/font/devlj4/AR -#usr/share/groff/1.21/font/devlj4/CB -#usr/share/groff/1.21/font/devlj4/CBI -#usr/share/groff/1.21/font/devlj4/CI -#usr/share/groff/1.21/font/devlj4/CLARENDON -#usr/share/groff/1.21/font/devlj4/CORONET -#usr/share/groff/1.21/font/devlj4/CR -#usr/share/groff/1.21/font/devlj4/DESC -#usr/share/groff/1.21/font/devlj4/GB -#usr/share/groff/1.21/font/devlj4/GBI -#usr/share/groff/1.21/font/devlj4/GI -#usr/share/groff/1.21/font/devlj4/GR -#usr/share/groff/1.21/font/devlj4/LGB -#usr/share/groff/1.21/font/devlj4/LGI -#usr/share/groff/1.21/font/devlj4/LGR -#usr/share/groff/1.21/font/devlj4/MARIGOLD -#usr/share/groff/1.21/font/devlj4/OB -#usr/share/groff/1.21/font/devlj4/OBI -#usr/share/groff/1.21/font/devlj4/OI -#usr/share/groff/1.21/font/devlj4/OR -#usr/share/groff/1.21/font/devlj4/S -#usr/share/groff/1.21/font/devlj4/SYMBOL -#usr/share/groff/1.21/font/devlj4/TB -#usr/share/groff/1.21/font/devlj4/TBI -#usr/share/groff/1.21/font/devlj4/TI -#usr/share/groff/1.21/font/devlj4/TNRB -#usr/share/groff/1.21/font/devlj4/TNRBI -#usr/share/groff/1.21/font/devlj4/TNRI -#usr/share/groff/1.21/font/devlj4/TNRR -#usr/share/groff/1.21/font/devlj4/TR -#usr/share/groff/1.21/font/devlj4/UB -#usr/share/groff/1.21/font/devlj4/UBI -#usr/share/groff/1.21/font/devlj4/UCB -#usr/share/groff/1.21/font/devlj4/UCBI -#usr/share/groff/1.21/font/devlj4/UCI -#usr/share/groff/1.21/font/devlj4/UCR -#usr/share/groff/1.21/font/devlj4/UI -#usr/share/groff/1.21/font/devlj4/UR -#usr/share/groff/1.21/font/devlj4/WINGDINGS -#usr/share/groff/1.21/font/devlj4/generate -#usr/share/groff/1.21/font/devlj4/generate/Makefile -#usr/share/groff/1.21/font/devlj4/generate/special.awk -#usr/share/groff/1.21/font/devlj4/generate/special.map -#usr/share/groff/1.21/font/devlj4/generate/symbol.map -#usr/share/groff/1.21/font/devlj4/generate/text.map -#usr/share/groff/1.21/font/devlj4/generate/wingdings.map -#usr/share/groff/1.21/font/devps -#usr/share/groff/1.21/font/devps/AB -#usr/share/groff/1.21/font/devps/ABI -#usr/share/groff/1.21/font/devps/AI -#usr/share/groff/1.21/font/devps/AR -#usr/share/groff/1.21/font/devps/BMB -#usr/share/groff/1.21/font/devps/BMBI -#usr/share/groff/1.21/font/devps/BMI -#usr/share/groff/1.21/font/devps/BMR -#usr/share/groff/1.21/font/devps/CB -#usr/share/groff/1.21/font/devps/CBI -#usr/share/groff/1.21/font/devps/CI -#usr/share/groff/1.21/font/devps/CR -#usr/share/groff/1.21/font/devps/DESC -#usr/share/groff/1.21/font/devps/EURO -#usr/share/groff/1.21/font/devps/HB -#usr/share/groff/1.21/font/devps/HBI -#usr/share/groff/1.21/font/devps/HI -#usr/share/groff/1.21/font/devps/HNB -#usr/share/groff/1.21/font/devps/HNBI -#usr/share/groff/1.21/font/devps/HNI -#usr/share/groff/1.21/font/devps/HNR -#usr/share/groff/1.21/font/devps/HR -#usr/share/groff/1.21/font/devps/NB -#usr/share/groff/1.21/font/devps/NBI -#usr/share/groff/1.21/font/devps/NI -#usr/share/groff/1.21/font/devps/NR -#usr/share/groff/1.21/font/devps/PB -#usr/share/groff/1.21/font/devps/PBI -#usr/share/groff/1.21/font/devps/PI -#usr/share/groff/1.21/font/devps/PR -#usr/share/groff/1.21/font/devps/S -#usr/share/groff/1.21/font/devps/SS -#usr/share/groff/1.21/font/devps/TB -#usr/share/groff/1.21/font/devps/TBI -#usr/share/groff/1.21/font/devps/TI -#usr/share/groff/1.21/font/devps/TR -#usr/share/groff/1.21/font/devps/ZCMI -#usr/share/groff/1.21/font/devps/ZD -#usr/share/groff/1.21/font/devps/ZDR -#usr/share/groff/1.21/font/devps/download -#usr/share/groff/1.21/font/devps/freeeuro.afm -#usr/share/groff/1.21/font/devps/freeeuro.pfa -#usr/share/groff/1.21/font/devps/generate -#usr/share/groff/1.21/font/devps/generate/Makefile -#usr/share/groff/1.21/font/devps/generate/afmname -#usr/share/groff/1.21/font/devps/generate/dingbats.map -#usr/share/groff/1.21/font/devps/generate/dingbats.rmap -#usr/share/groff/1.21/font/devps/generate/lgreekmap -#usr/share/groff/1.21/font/devps/generate/symbol.sed -#usr/share/groff/1.21/font/devps/generate/symbolchars -#usr/share/groff/1.21/font/devps/generate/symbolsl.afm -#usr/share/groff/1.21/font/devps/generate/textmap -#usr/share/groff/1.21/font/devps/prologue -#usr/share/groff/1.21/font/devps/symbolsl.pfa -#usr/share/groff/1.21/font/devps/text.enc -#usr/share/groff/1.21/font/devps/zapfdr.pfa -#usr/share/groff/1.21/font/devutf8 -#usr/share/groff/1.21/font/devutf8/B -#usr/share/groff/1.21/font/devutf8/BI -#usr/share/groff/1.21/font/devutf8/DESC -#usr/share/groff/1.21/font/devutf8/I -#usr/share/groff/1.21/font/devutf8/R -#usr/share/groff/1.21/oldfont -#usr/share/groff/1.21/oldfont/devps -#usr/share/groff/1.21/oldfont/devps/CB -#usr/share/groff/1.21/oldfont/devps/CBI -#usr/share/groff/1.21/oldfont/devps/CI -#usr/share/groff/1.21/oldfont/devps/CR -#usr/share/groff/1.21/oldfont/devps/HB -#usr/share/groff/1.21/oldfont/devps/HBI -#usr/share/groff/1.21/oldfont/devps/HI -#usr/share/groff/1.21/oldfont/devps/HNB -#usr/share/groff/1.21/oldfont/devps/HNBI -#usr/share/groff/1.21/oldfont/devps/HNI -#usr/share/groff/1.21/oldfont/devps/HNR -#usr/share/groff/1.21/oldfont/devps/HR -#usr/share/groff/1.21/oldfont/devps/NB -#usr/share/groff/1.21/oldfont/devps/NBI -#usr/share/groff/1.21/oldfont/devps/NI -#usr/share/groff/1.21/oldfont/devps/NR -#usr/share/groff/1.21/oldfont/devps/PB -#usr/share/groff/1.21/oldfont/devps/PBI -#usr/share/groff/1.21/oldfont/devps/PI -#usr/share/groff/1.21/oldfont/devps/PR -#usr/share/groff/1.21/oldfont/devps/S -#usr/share/groff/1.21/oldfont/devps/SS -#usr/share/groff/1.21/oldfont/devps/TB -#usr/share/groff/1.21/oldfont/devps/TBI -#usr/share/groff/1.21/oldfont/devps/TI -#usr/share/groff/1.21/oldfont/devps/TR -#usr/share/groff/1.21/oldfont/devps/symbol.afm -#usr/share/groff/1.21/oldfont/devps/symbolsl.afm -#usr/share/groff/1.21/oldfont/devps/zapfdr.afm -#usr/share/groff/1.21/oldfont/devps/zapfdr.ps -#usr/share/groff/1.21/pic -#usr/share/groff/1.21/pic/chem.pic -#usr/share/groff/1.21/tmac -#usr/share/groff/1.21/tmac/62bit.tmac -#usr/share/groff/1.21/tmac/X.tmac -#usr/share/groff/1.21/tmac/Xps.tmac -#usr/share/groff/1.21/tmac/a4.tmac -#usr/share/groff/1.21/tmac/an-ext.tmac -#usr/share/groff/1.21/tmac/an-old.tmac -#usr/share/groff/1.21/tmac/an.tmac -#usr/share/groff/1.21/tmac/andoc.tmac -#usr/share/groff/1.21/tmac/composite.tmac -#usr/share/groff/1.21/tmac/cp1047.tmac -#usr/share/groff/1.21/tmac/cs.tmac -#usr/share/groff/1.21/tmac/de.tmac -#usr/share/groff/1.21/tmac/den.tmac -#usr/share/groff/1.21/tmac/devtag.tmac -#usr/share/groff/1.21/tmac/doc-old.tmac -#usr/share/groff/1.21/tmac/doc.tmac -#usr/share/groff/1.21/tmac/dvi.tmac -#usr/share/groff/1.21/tmac/e.tmac -#usr/share/groff/1.21/tmac/ec.tmac -#usr/share/groff/1.21/tmac/eqnrc -#usr/share/groff/1.21/tmac/europs.tmac -#usr/share/groff/1.21/tmac/fr.tmac -#usr/share/groff/1.21/tmac/hdmisc.tmac -#usr/share/groff/1.21/tmac/hdtbl.tmac -#usr/share/groff/1.21/tmac/html-end.tmac -#usr/share/groff/1.21/tmac/html.tmac -#usr/share/groff/1.21/tmac/hyphen.cs -#usr/share/groff/1.21/tmac/hyphen.den -#usr/share/groff/1.21/tmac/hyphen.det -#usr/share/groff/1.21/tmac/hyphen.fr -#usr/share/groff/1.21/tmac/hyphen.sv -#usr/share/groff/1.21/tmac/hyphen.us -#usr/share/groff/1.21/tmac/hyphenex.cs -#usr/share/groff/1.21/tmac/hyphenex.det -#usr/share/groff/1.21/tmac/hyphenex.us -#usr/share/groff/1.21/tmac/ja.tmac -#usr/share/groff/1.21/tmac/latin1.tmac -#usr/share/groff/1.21/tmac/latin2.tmac -#usr/share/groff/1.21/tmac/latin5.tmac -#usr/share/groff/1.21/tmac/latin9.tmac -#usr/share/groff/1.21/tmac/lbp.tmac -#usr/share/groff/1.21/tmac/lj4.tmac -#usr/share/groff/1.21/tmac/m.tmac -#usr/share/groff/1.21/tmac/man.tmac -#usr/share/groff/1.21/tmac/mandoc.tmac -#usr/share/groff/1.21/tmac/mdoc -#usr/share/groff/1.21/tmac/mdoc.tmac -#usr/share/groff/1.21/tmac/mdoc/doc-common -#usr/share/groff/1.21/tmac/mdoc/doc-ditroff -#usr/share/groff/1.21/tmac/mdoc/doc-nroff -#usr/share/groff/1.21/tmac/mdoc/doc-syms -#usr/share/groff/1.21/tmac/me.tmac -#usr/share/groff/1.21/tmac/mm -#usr/share/groff/1.21/tmac/mm.tmac -#usr/share/groff/1.21/tmac/mm/0.MT -#usr/share/groff/1.21/tmac/mm/4.MT -#usr/share/groff/1.21/tmac/mm/5.MT -#usr/share/groff/1.21/tmac/mm/locale -#usr/share/groff/1.21/tmac/mm/ms.cov -#usr/share/groff/1.21/tmac/mm/se_locale -#usr/share/groff/1.21/tmac/mm/se_ms.cov -#usr/share/groff/1.21/tmac/mmse.tmac -#usr/share/groff/1.21/tmac/mom.tmac -#usr/share/groff/1.21/tmac/ms.tmac -#usr/share/groff/1.21/tmac/mse.tmac -#usr/share/groff/1.21/tmac/om.tmac -#usr/share/groff/1.21/tmac/papersize.tmac -#usr/share/groff/1.21/tmac/pdfmark.tmac -#usr/share/groff/1.21/tmac/pic.tmac -#usr/share/groff/1.21/tmac/ps.tmac -#usr/share/groff/1.21/tmac/psatk.tmac -#usr/share/groff/1.21/tmac/psold.tmac -#usr/share/groff/1.21/tmac/pspic.tmac -#usr/share/groff/1.21/tmac/s.tmac -#usr/share/groff/1.21/tmac/safer.tmac -#usr/share/groff/1.21/tmac/spdf.tmac -#usr/share/groff/1.21/tmac/sv.tmac -#usr/share/groff/1.21/tmac/trace.tmac -#usr/share/groff/1.21/tmac/trans.tmac -#usr/share/groff/1.21/tmac/troffrc -#usr/share/groff/1.21/tmac/troffrc-end -#usr/share/groff/1.21/tmac/tty-char.tmac -#usr/share/groff/1.21/tmac/tty.tmac -#usr/share/groff/1.21/tmac/unicode.tmac -#usr/share/groff/1.21/tmac/www.tmac -#usr/share/groff/current -#usr/share/groff/site-font -#usr/share/groff/site-tmac -#usr/share/groff/site-tmac/man.local -#usr/share/groff/site-tmac/mdoc.local -#usr/share/info/groff.info -#usr/share/info/groff.info-1 -#usr/share/info/groff.info-2 -#usr/share/info/groff.info-3 -#usr/share/man/man1/addftinfo.1 -#usr/share/man/man1/afmtodit.1 -#usr/share/man/man1/chem.1 -#usr/share/man/man1/eqn.1 -#usr/share/man/man1/eqn2graph.1 -#usr/share/man/man1/gdiffmk.1 -#usr/share/man/man1/grap2graph.1 -#usr/share/man/man1/grn.1 -#usr/share/man/man1/grodvi.1 -#usr/share/man/man1/groff.1 -#usr/share/man/man1/groffer.1 -#usr/share/man/man1/grog.1 -#usr/share/man/man1/grohtml.1 -#usr/share/man/man1/grolbp.1 -#usr/share/man/man1/grolj4.1 -#usr/share/man/man1/grops.1 -#usr/share/man/man1/grotty.1 -#usr/share/man/man1/hpftodit.1 -#usr/share/man/man1/indxbib.1 -#usr/share/man/man1/lkbib.1 -#usr/share/man/man1/lookbib.1 -#usr/share/man/man1/mmroff.1 -#usr/share/man/man1/neqn.1 -#usr/share/man/man1/nroff.1 -#usr/share/man/man1/pdfroff.1 -#usr/share/man/man1/pfbtops.1 -#usr/share/man/man1/pic.1 -#usr/share/man/man1/pic2graph.1 -#usr/share/man/man1/preconv.1 -#usr/share/man/man1/refer.1 -#usr/share/man/man1/roff2dvi.1 -#usr/share/man/man1/roff2html.1 -#usr/share/man/man1/roff2pdf.1 -#usr/share/man/man1/roff2ps.1 -#usr/share/man/man1/roff2text.1 -#usr/share/man/man1/roff2x.1 -#usr/share/man/man1/soelim.1 -#usr/share/man/man1/tbl.1 -#usr/share/man/man1/tfmtodit.1 -#usr/share/man/man1/troff.1 -#usr/share/man/man5/groff_font.5 -#usr/share/man/man5/groff_out.5 -#usr/share/man/man5/groff_tmac.5 -#usr/share/man/man5/lj4_font.5 -#usr/share/man/man7/ditroff.7 -#usr/share/man/man7/groff.7 -#usr/share/man/man7/groff_char.7 -#usr/share/man/man7/groff_diff.7 -#usr/share/man/man7/groff_hdtbl.7 -#usr/share/man/man7/groff_man.7 -#usr/share/man/man7/groff_mdoc.7 -#usr/share/man/man7/groff_me.7 -#usr/share/man/man7/groff_mm.7 -#usr/share/man/man7/groff_mmse.7 -#usr/share/man/man7/groff_mom.7 -#usr/share/man/man7/groff_ms.7 -#usr/share/man/man7/groff_trace.7 -#usr/share/man/man7/groff_www.7 -#usr/share/man/man7/roff.7 +#usr/bin/glilypond +#usr/bin/gperl +#usr/bin/gpinyin +#usr/bin/gropdf +#usr/bin/pdfmom +#usr/lib/groff/glilypond +#usr/lib/groff/glilypond/args.pl +#usr/lib/groff/glilypond/oop_fh.pl +#usr/lib/groff/glilypond/subs.pl +#usr/lib/groff/gpinyin +#usr/lib/groff/gpinyin/subs.pl +#usr/lib/groff/groff_opts_no_arg.txt +#usr/lib/groff/groff_opts_with_arg.txt +#usr/lib/groff/groffer/main_subs.pl +#usr/lib/groff/groffer/subs.pl +#usr/lib/groff/grog +#usr/lib/groff/grog/subs.pl +#usr/lib/groff/refer +#usr/share/doc/groff-1.22.3 +#usr/share/doc/groff-1.22.3/examples +#usr/share/doc/groff-1.22.3/examples/chem +#usr/share/doc/groff-1.22.3/examples/chem/122 +#usr/share/doc/groff-1.22.3/examples/chem/122/README +#usr/share/doc/groff-1.22.3/examples/chem/122/ch2a_ethyl.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch2b_benzene.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch2c_benzene_right.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4a_stick.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4b_methyl_acetate.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4c_colon.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4d_HCl.H2O.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4e_CaSO4.2H2O.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4f_C.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4g_BP.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4h_methacrylate.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4i_cyclo.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4j_ring4.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4k_ring3.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4l_vertex.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4m_double.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4n_triple.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4o_aromatic.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4p_cholestanol.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4q_rings.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4r_spiro.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4s_heteroatoms.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4t_polycyclic.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4u_nicotine.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4v_histidine.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4w_lsd.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4x_anisole.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4y_reserpine.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4z1_eqn_glutamic.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch4z2_text.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch5a_size.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch6a_pic.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/ch6b_dna.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chAa_polymer.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chAb_vinyl_chloro.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chAc_morphine.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chAd_chlorophyll.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chAe_chair.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chAf_arrow.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chAg_circle.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chAh_brackets.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chAi_poly_vinyl_chloride.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chBa_jump.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chBb_bonds.chem +#usr/share/doc/groff-1.22.3/examples/chem/122/chBc_rings.chem +#usr/share/doc/groff-1.22.3/examples/chem/README +#usr/share/doc/groff-1.22.3/examples/chem/atp.chem +#usr/share/doc/groff-1.22.3/examples/chem/cholesterin.chem +#usr/share/doc/groff-1.22.3/examples/chem/ethamivan.chem +#usr/share/doc/groff-1.22.3/examples/chem/lsd.chem +#usr/share/doc/groff-1.22.3/examples/chem/morphine.chem +#usr/share/doc/groff-1.22.3/examples/chem/penicillin.chem +#usr/share/doc/groff-1.22.3/examples/chem/reserpine.chem +#usr/share/doc/groff-1.22.3/examples/gnu.eps +#usr/share/doc/groff-1.22.3/examples/grnexmpl.g +#usr/share/doc/groff-1.22.3/examples/grnexmpl.me +#usr/share/doc/groff-1.22.3/examples/grnexmpl.ps +#usr/share/doc/groff-1.22.3/examples/groff.css +#usr/share/doc/groff-1.22.3/examples/hdtbl +#usr/share/doc/groff-1.22.3/examples/hdtbl/chess_board.ps +#usr/share/doc/groff-1.22.3/examples/hdtbl/chess_board.roff +#usr/share/doc/groff-1.22.3/examples/hdtbl/col_rowspan_colors.ps +#usr/share/doc/groff-1.22.3/examples/hdtbl/col_rowspan_colors.roff +#usr/share/doc/groff-1.22.3/examples/hdtbl/color_boxes.ps +#usr/share/doc/groff-1.22.3/examples/hdtbl/color_boxes.roff +#usr/share/doc/groff-1.22.3/examples/hdtbl/color_nested_tables.ps +#usr/share/doc/groff-1.22.3/examples/hdtbl/color_nested_tables.roff +#usr/share/doc/groff-1.22.3/examples/hdtbl/color_table_cells.ps +#usr/share/doc/groff-1.22.3/examples/hdtbl/color_table_cells.roff +#usr/share/doc/groff-1.22.3/examples/hdtbl/color_transitions.ps +#usr/share/doc/groff-1.22.3/examples/hdtbl/color_transitions.roff +#usr/share/doc/groff-1.22.3/examples/hdtbl/common.roff +#usr/share/doc/groff-1.22.3/examples/hdtbl/fonts_n.ps +#usr/share/doc/groff-1.22.3/examples/hdtbl/fonts_n.roff +#usr/share/doc/groff-1.22.3/examples/hdtbl/fonts_x.ps +#usr/share/doc/groff-1.22.3/examples/hdtbl/fonts_x.roff +#usr/share/doc/groff-1.22.3/examples/hdtbl/gnu.eps +#usr/share/doc/groff-1.22.3/examples/hdtbl/mixed_pickles.ps +#usr/share/doc/groff-1.22.3/examples/hdtbl/mixed_pickles.roff +#usr/share/doc/groff-1.22.3/examples/hdtbl/rainbow.ps +#usr/share/doc/groff-1.22.3/examples/hdtbl/rainbow.roff +#usr/share/doc/groff-1.22.3/examples/hdtbl/short_reference.ps +#usr/share/doc/groff-1.22.3/examples/hdtbl/short_reference.roff +#usr/share/doc/groff-1.22.3/examples/mom +#usr/share/doc/groff-1.22.3/examples/mom/README.txt +#usr/share/doc/groff-1.22.3/examples/mom/elvis_syntax +#usr/share/doc/groff-1.22.3/examples/mom/elvis_syntax.new +#usr/share/doc/groff-1.22.3/examples/mom/letter.mom +#usr/share/doc/groff-1.22.3/examples/mom/letter.pdf +#usr/share/doc/groff-1.22.3/examples/mom/mom-pdf.mom +#usr/share/doc/groff-1.22.3/examples/mom/mom-pdf.pdf +#usr/share/doc/groff-1.22.3/examples/mom/mom.vim +#usr/share/doc/groff-1.22.3/examples/mom/penguin.pdf +#usr/share/doc/groff-1.22.3/examples/mom/penguin.ps +#usr/share/doc/groff-1.22.3/examples/mom/sample_docs.mom +#usr/share/doc/groff-1.22.3/examples/mom/sample_docs.pdf +#usr/share/doc/groff-1.22.3/examples/mom/typesetting.mom +#usr/share/doc/groff-1.22.3/examples/mom/typesetting.pdf +#usr/share/doc/groff-1.22.3/examples/webpage.ms +#usr/share/doc/groff-1.22.3/examples/webpage.ps +#usr/share/doc/groff-1.22.3/html +#usr/share/doc/groff-1.22.3/html/mom +#usr/share/doc/groff-1.22.3/html/mom/appendices.html +#usr/share/doc/groff-1.22.3/html/mom/color.html +#usr/share/doc/groff-1.22.3/html/mom/cover.html +#usr/share/doc/groff-1.22.3/html/mom/definitions.html +#usr/share/doc/groff-1.22.3/html/mom/docelement.html +#usr/share/doc/groff-1.22.3/html/mom/docprocessing.html +#usr/share/doc/groff-1.22.3/html/mom/goodies.html +#usr/share/doc/groff-1.22.3/html/mom/graphical.html +#usr/share/doc/groff-1.22.3/html/mom/headfootpage.html +#usr/share/doc/groff-1.22.3/html/mom/images.html +#usr/share/doc/groff-1.22.3/html/mom/inlines.html +#usr/share/doc/groff-1.22.3/html/mom/intro.html +#usr/share/doc/groff-1.22.3/html/mom/letters.html +#usr/share/doc/groff-1.22.3/html/mom/macrolist.html +#usr/share/doc/groff-1.22.3/html/mom/rectoverso.html +#usr/share/doc/groff-1.22.3/html/mom/refer.html +#usr/share/doc/groff-1.22.3/html/mom/reserved.html +#usr/share/doc/groff-1.22.3/html/mom/stylesheet.css +#usr/share/doc/groff-1.22.3/html/mom/tables-of-contents.html +#usr/share/doc/groff-1.22.3/html/mom/toc.html +#usr/share/doc/groff-1.22.3/html/mom/typesetting.html +#usr/share/doc/groff-1.22.3/html/mom/using.html +#usr/share/doc/groff-1.22.3/html/mom/version-2.html +#usr/share/doc/groff-1.22.3/meintro.me +#usr/share/doc/groff-1.22.3/meintro.ps +#usr/share/doc/groff-1.22.3/meintro_fr.me +#usr/share/doc/groff-1.22.3/meintro_fr.ps +#usr/share/doc/groff-1.22.3/meref.me +#usr/share/doc/groff-1.22.3/meref.ps +#usr/share/doc/groff-1.22.3/pdf +#usr/share/doc/groff-1.22.3/pdf/mom-pdf.pdf +#usr/share/doc/groff-1.22.3/pdf/pdfmark.pdf +#usr/share/doc/groff-1.22.3/pic.ms +#usr/share/doc/groff-1.22.3/pic.ps +#usr/share/groff/1.22.3 +#usr/share/groff/1.22.3/eign +#usr/share/groff/1.22.3/font +#usr/share/groff/1.22.3/font/devascii +#usr/share/groff/1.22.3/font/devascii/B +#usr/share/groff/1.22.3/font/devascii/BI +#usr/share/groff/1.22.3/font/devascii/DESC +#usr/share/groff/1.22.3/font/devascii/I +#usr/share/groff/1.22.3/font/devascii/R +#usr/share/groff/1.22.3/font/devdvi +#usr/share/groff/1.22.3/font/devdvi/CW +#usr/share/groff/1.22.3/font/devdvi/CWEC +#usr/share/groff/1.22.3/font/devdvi/CWI +#usr/share/groff/1.22.3/font/devdvi/CWIEC +#usr/share/groff/1.22.3/font/devdvi/CWITC +#usr/share/groff/1.22.3/font/devdvi/CWTC +#usr/share/groff/1.22.3/font/devdvi/DESC +#usr/share/groff/1.22.3/font/devdvi/EX +#usr/share/groff/1.22.3/font/devdvi/HB +#usr/share/groff/1.22.3/font/devdvi/HBEC +#usr/share/groff/1.22.3/font/devdvi/HBI +#usr/share/groff/1.22.3/font/devdvi/HBIEC +#usr/share/groff/1.22.3/font/devdvi/HBITC +#usr/share/groff/1.22.3/font/devdvi/HBTC +#usr/share/groff/1.22.3/font/devdvi/HI +#usr/share/groff/1.22.3/font/devdvi/HIEC +#usr/share/groff/1.22.3/font/devdvi/HITC +#usr/share/groff/1.22.3/font/devdvi/HR +#usr/share/groff/1.22.3/font/devdvi/HREC +#usr/share/groff/1.22.3/font/devdvi/HRTC +#usr/share/groff/1.22.3/font/devdvi/MI +#usr/share/groff/1.22.3/font/devdvi/S +#usr/share/groff/1.22.3/font/devdvi/SA +#usr/share/groff/1.22.3/font/devdvi/SB +#usr/share/groff/1.22.3/font/devdvi/SC +#usr/share/groff/1.22.3/font/devdvi/TB +#usr/share/groff/1.22.3/font/devdvi/TBEC +#usr/share/groff/1.22.3/font/devdvi/TBI +#usr/share/groff/1.22.3/font/devdvi/TBIEC +#usr/share/groff/1.22.3/font/devdvi/TBITC +#usr/share/groff/1.22.3/font/devdvi/TBTC +#usr/share/groff/1.22.3/font/devdvi/TI +#usr/share/groff/1.22.3/font/devdvi/TIEC +#usr/share/groff/1.22.3/font/devdvi/TITC +#usr/share/groff/1.22.3/font/devdvi/TR +#usr/share/groff/1.22.3/font/devdvi/TREC +#usr/share/groff/1.22.3/font/devdvi/TRTC +#usr/share/groff/1.22.3/font/devdvi/generate +#usr/share/groff/1.22.3/font/devdvi/generate/CompileFonts +#usr/share/groff/1.22.3/font/devdvi/generate/Makefile +#usr/share/groff/1.22.3/font/devdvi/generate/ec.map +#usr/share/groff/1.22.3/font/devdvi/generate/msam.map +#usr/share/groff/1.22.3/font/devdvi/generate/msbm.map +#usr/share/groff/1.22.3/font/devdvi/generate/tc.map +#usr/share/groff/1.22.3/font/devdvi/generate/texb.map +#usr/share/groff/1.22.3/font/devdvi/generate/texex.map +#usr/share/groff/1.22.3/font/devdvi/generate/texi.map +#usr/share/groff/1.22.3/font/devdvi/generate/texmi.map +#usr/share/groff/1.22.3/font/devdvi/generate/texr.map +#usr/share/groff/1.22.3/font/devdvi/generate/texsy.map +#usr/share/groff/1.22.3/font/devdvi/generate/textex.map +#usr/share/groff/1.22.3/font/devdvi/generate/textt.map +#usr/share/groff/1.22.3/font/devhtml +#usr/share/groff/1.22.3/font/devhtml/B +#usr/share/groff/1.22.3/font/devhtml/BI +#usr/share/groff/1.22.3/font/devhtml/CB +#usr/share/groff/1.22.3/font/devhtml/CBI +#usr/share/groff/1.22.3/font/devhtml/CI +#usr/share/groff/1.22.3/font/devhtml/CR +#usr/share/groff/1.22.3/font/devhtml/DESC +#usr/share/groff/1.22.3/font/devhtml/I +#usr/share/groff/1.22.3/font/devhtml/R +#usr/share/groff/1.22.3/font/devhtml/S +#usr/share/groff/1.22.3/font/devlatin1 +#usr/share/groff/1.22.3/font/devlatin1/B +#usr/share/groff/1.22.3/font/devlatin1/BI +#usr/share/groff/1.22.3/font/devlatin1/DESC +#usr/share/groff/1.22.3/font/devlatin1/I +#usr/share/groff/1.22.3/font/devlatin1/R +#usr/share/groff/1.22.3/font/devlbp +#usr/share/groff/1.22.3/font/devlbp/CB +#usr/share/groff/1.22.3/font/devlbp/CI +#usr/share/groff/1.22.3/font/devlbp/CR +#usr/share/groff/1.22.3/font/devlbp/DESC +#usr/share/groff/1.22.3/font/devlbp/EB +#usr/share/groff/1.22.3/font/devlbp/EI +#usr/share/groff/1.22.3/font/devlbp/ER +#usr/share/groff/1.22.3/font/devlbp/HB +#usr/share/groff/1.22.3/font/devlbp/HBI +#usr/share/groff/1.22.3/font/devlbp/HI +#usr/share/groff/1.22.3/font/devlbp/HNB +#usr/share/groff/1.22.3/font/devlbp/HNBI +#usr/share/groff/1.22.3/font/devlbp/HNI +#usr/share/groff/1.22.3/font/devlbp/HNR +#usr/share/groff/1.22.3/font/devlbp/HR +#usr/share/groff/1.22.3/font/devlbp/TB +#usr/share/groff/1.22.3/font/devlbp/TBI +#usr/share/groff/1.22.3/font/devlbp/TI +#usr/share/groff/1.22.3/font/devlbp/TR +#usr/share/groff/1.22.3/font/devlj4 +#usr/share/groff/1.22.3/font/devlj4/AB +#usr/share/groff/1.22.3/font/devlj4/ABI +#usr/share/groff/1.22.3/font/devlj4/AI +#usr/share/groff/1.22.3/font/devlj4/ALBB +#usr/share/groff/1.22.3/font/devlj4/ALBR +#usr/share/groff/1.22.3/font/devlj4/AOB +#usr/share/groff/1.22.3/font/devlj4/AOI +#usr/share/groff/1.22.3/font/devlj4/AOR +#usr/share/groff/1.22.3/font/devlj4/AR +#usr/share/groff/1.22.3/font/devlj4/CB +#usr/share/groff/1.22.3/font/devlj4/CBI +#usr/share/groff/1.22.3/font/devlj4/CI +#usr/share/groff/1.22.3/font/devlj4/CLARENDON +#usr/share/groff/1.22.3/font/devlj4/CORONET +#usr/share/groff/1.22.3/font/devlj4/CR +#usr/share/groff/1.22.3/font/devlj4/DESC +#usr/share/groff/1.22.3/font/devlj4/GB +#usr/share/groff/1.22.3/font/devlj4/GBI +#usr/share/groff/1.22.3/font/devlj4/GI +#usr/share/groff/1.22.3/font/devlj4/GR +#usr/share/groff/1.22.3/font/devlj4/LGB +#usr/share/groff/1.22.3/font/devlj4/LGI +#usr/share/groff/1.22.3/font/devlj4/LGR +#usr/share/groff/1.22.3/font/devlj4/MARIGOLD +#usr/share/groff/1.22.3/font/devlj4/OB +#usr/share/groff/1.22.3/font/devlj4/OBI +#usr/share/groff/1.22.3/font/devlj4/OI +#usr/share/groff/1.22.3/font/devlj4/OR +#usr/share/groff/1.22.3/font/devlj4/S +#usr/share/groff/1.22.3/font/devlj4/SYMBOL +#usr/share/groff/1.22.3/font/devlj4/TB +#usr/share/groff/1.22.3/font/devlj4/TBI +#usr/share/groff/1.22.3/font/devlj4/TI +#usr/share/groff/1.22.3/font/devlj4/TNRB +#usr/share/groff/1.22.3/font/devlj4/TNRBI +#usr/share/groff/1.22.3/font/devlj4/TNRI +#usr/share/groff/1.22.3/font/devlj4/TNRR +#usr/share/groff/1.22.3/font/devlj4/TR +#usr/share/groff/1.22.3/font/devlj4/UB +#usr/share/groff/1.22.3/font/devlj4/UBI +#usr/share/groff/1.22.3/font/devlj4/UCB +#usr/share/groff/1.22.3/font/devlj4/UCBI +#usr/share/groff/1.22.3/font/devlj4/UCI +#usr/share/groff/1.22.3/font/devlj4/UCR +#usr/share/groff/1.22.3/font/devlj4/UI +#usr/share/groff/1.22.3/font/devlj4/UR +#usr/share/groff/1.22.3/font/devlj4/WINGDINGS +#usr/share/groff/1.22.3/font/devlj4/generate +#usr/share/groff/1.22.3/font/devlj4/generate/Makefile +#usr/share/groff/1.22.3/font/devlj4/generate/special.awk +#usr/share/groff/1.22.3/font/devlj4/generate/special.map +#usr/share/groff/1.22.3/font/devlj4/generate/symbol.map +#usr/share/groff/1.22.3/font/devlj4/generate/text.map +#usr/share/groff/1.22.3/font/devlj4/generate/wingdings.map +#usr/share/groff/1.22.3/font/devpdf +#usr/share/groff/1.22.3/font/devpdf/AB +#usr/share/groff/1.22.3/font/devpdf/ABI +#usr/share/groff/1.22.3/font/devpdf/AI +#usr/share/groff/1.22.3/font/devpdf/AR +#usr/share/groff/1.22.3/font/devpdf/BMB +#usr/share/groff/1.22.3/font/devpdf/BMBI +#usr/share/groff/1.22.3/font/devpdf/BMI +#usr/share/groff/1.22.3/font/devpdf/BMR +#usr/share/groff/1.22.3/font/devpdf/CB +#usr/share/groff/1.22.3/font/devpdf/CBI +#usr/share/groff/1.22.3/font/devpdf/CI +#usr/share/groff/1.22.3/font/devpdf/CR +#usr/share/groff/1.22.3/font/devpdf/DESC +#usr/share/groff/1.22.3/font/devpdf/EURO +#usr/share/groff/1.22.3/font/devpdf/Foundry +#usr/share/groff/1.22.3/font/devpdf/HB +#usr/share/groff/1.22.3/font/devpdf/HBI +#usr/share/groff/1.22.3/font/devpdf/HI +#usr/share/groff/1.22.3/font/devpdf/HNB +#usr/share/groff/1.22.3/font/devpdf/HNBI +#usr/share/groff/1.22.3/font/devpdf/HNI +#usr/share/groff/1.22.3/font/devpdf/HNR +#usr/share/groff/1.22.3/font/devpdf/HR +#usr/share/groff/1.22.3/font/devpdf/NB +#usr/share/groff/1.22.3/font/devpdf/NBI +#usr/share/groff/1.22.3/font/devpdf/NI +#usr/share/groff/1.22.3/font/devpdf/NR +#usr/share/groff/1.22.3/font/devpdf/PB +#usr/share/groff/1.22.3/font/devpdf/PBI +#usr/share/groff/1.22.3/font/devpdf/PI +#usr/share/groff/1.22.3/font/devpdf/PR +#usr/share/groff/1.22.3/font/devpdf/S +#usr/share/groff/1.22.3/font/devpdf/TB +#usr/share/groff/1.22.3/font/devpdf/TBI +#usr/share/groff/1.22.3/font/devpdf/TI +#usr/share/groff/1.22.3/font/devpdf/TR +#usr/share/groff/1.22.3/font/devpdf/U-AB +#usr/share/groff/1.22.3/font/devpdf/U-ABI +#usr/share/groff/1.22.3/font/devpdf/U-AI +#usr/share/groff/1.22.3/font/devpdf/U-AR +#usr/share/groff/1.22.3/font/devpdf/U-BMB +#usr/share/groff/1.22.3/font/devpdf/U-BMBI +#usr/share/groff/1.22.3/font/devpdf/U-BMI +#usr/share/groff/1.22.3/font/devpdf/U-BMR +#usr/share/groff/1.22.3/font/devpdf/U-CB +#usr/share/groff/1.22.3/font/devpdf/U-CBI +#usr/share/groff/1.22.3/font/devpdf/U-CI +#usr/share/groff/1.22.3/font/devpdf/U-CR +#usr/share/groff/1.22.3/font/devpdf/U-HB +#usr/share/groff/1.22.3/font/devpdf/U-HBI +#usr/share/groff/1.22.3/font/devpdf/U-HI +#usr/share/groff/1.22.3/font/devpdf/U-HNB +#usr/share/groff/1.22.3/font/devpdf/U-HNBI +#usr/share/groff/1.22.3/font/devpdf/U-HNI +#usr/share/groff/1.22.3/font/devpdf/U-HNR +#usr/share/groff/1.22.3/font/devpdf/U-HR +#usr/share/groff/1.22.3/font/devpdf/U-NB +#usr/share/groff/1.22.3/font/devpdf/U-NBI +#usr/share/groff/1.22.3/font/devpdf/U-NI +#usr/share/groff/1.22.3/font/devpdf/U-NR +#usr/share/groff/1.22.3/font/devpdf/U-PB +#usr/share/groff/1.22.3/font/devpdf/U-PBI +#usr/share/groff/1.22.3/font/devpdf/U-PI +#usr/share/groff/1.22.3/font/devpdf/U-PR +#usr/share/groff/1.22.3/font/devpdf/U-S +#usr/share/groff/1.22.3/font/devpdf/U-TB +#usr/share/groff/1.22.3/font/devpdf/U-TBI +#usr/share/groff/1.22.3/font/devpdf/U-TI +#usr/share/groff/1.22.3/font/devpdf/U-TR +#usr/share/groff/1.22.3/font/devpdf/U-ZCMI +#usr/share/groff/1.22.3/font/devpdf/U-ZD +#usr/share/groff/1.22.3/font/devpdf/ZCMI +#usr/share/groff/1.22.3/font/devpdf/ZD +#usr/share/groff/1.22.3/font/devpdf/download +#usr/share/groff/1.22.3/font/devpdf/enc +#usr/share/groff/1.22.3/font/devpdf/enc/text.enc +#usr/share/groff/1.22.3/font/devpdf/map +#usr/share/groff/1.22.3/font/devpdf/map/dingbats.map +#usr/share/groff/1.22.3/font/devpdf/map/symbolchars +#usr/share/groff/1.22.3/font/devpdf/map/symbolmap +#usr/share/groff/1.22.3/font/devpdf/map/textmap +#usr/share/groff/1.22.3/font/devpdf/util +#usr/share/groff/1.22.3/font/devpdf/util/BuildFoundries +#usr/share/groff/1.22.3/font/devps +#usr/share/groff/1.22.3/font/devps/AB +#usr/share/groff/1.22.3/font/devps/ABI +#usr/share/groff/1.22.3/font/devps/AI +#usr/share/groff/1.22.3/font/devps/AR +#usr/share/groff/1.22.3/font/devps/BMB +#usr/share/groff/1.22.3/font/devps/BMBI +#usr/share/groff/1.22.3/font/devps/BMI +#usr/share/groff/1.22.3/font/devps/BMR +#usr/share/groff/1.22.3/font/devps/CB +#usr/share/groff/1.22.3/font/devps/CBI +#usr/share/groff/1.22.3/font/devps/CI +#usr/share/groff/1.22.3/font/devps/CR +#usr/share/groff/1.22.3/font/devps/DESC +#usr/share/groff/1.22.3/font/devps/EURO +#usr/share/groff/1.22.3/font/devps/HB +#usr/share/groff/1.22.3/font/devps/HBI +#usr/share/groff/1.22.3/font/devps/HI +#usr/share/groff/1.22.3/font/devps/HNB +#usr/share/groff/1.22.3/font/devps/HNBI +#usr/share/groff/1.22.3/font/devps/HNI +#usr/share/groff/1.22.3/font/devps/HNR +#usr/share/groff/1.22.3/font/devps/HR +#usr/share/groff/1.22.3/font/devps/NB +#usr/share/groff/1.22.3/font/devps/NBI +#usr/share/groff/1.22.3/font/devps/NI +#usr/share/groff/1.22.3/font/devps/NR +#usr/share/groff/1.22.3/font/devps/PB +#usr/share/groff/1.22.3/font/devps/PBI +#usr/share/groff/1.22.3/font/devps/PI +#usr/share/groff/1.22.3/font/devps/PR +#usr/share/groff/1.22.3/font/devps/S +#usr/share/groff/1.22.3/font/devps/SS +#usr/share/groff/1.22.3/font/devps/TB +#usr/share/groff/1.22.3/font/devps/TBI +#usr/share/groff/1.22.3/font/devps/TI +#usr/share/groff/1.22.3/font/devps/TR +#usr/share/groff/1.22.3/font/devps/ZCMI +#usr/share/groff/1.22.3/font/devps/ZD +#usr/share/groff/1.22.3/font/devps/ZDR +#usr/share/groff/1.22.3/font/devps/download +#usr/share/groff/1.22.3/font/devps/freeeuro.afm +#usr/share/groff/1.22.3/font/devps/freeeuro.pfa +#usr/share/groff/1.22.3/font/devps/generate +#usr/share/groff/1.22.3/font/devps/generate/Makefile +#usr/share/groff/1.22.3/font/devps/generate/afmname +#usr/share/groff/1.22.3/font/devps/generate/dingbats.map +#usr/share/groff/1.22.3/font/devps/generate/dingbats.rmap +#usr/share/groff/1.22.3/font/devps/generate/lgreekmap +#usr/share/groff/1.22.3/font/devps/generate/symbol.sed +#usr/share/groff/1.22.3/font/devps/generate/symbolchars +#usr/share/groff/1.22.3/font/devps/generate/symbolsl.afm +#usr/share/groff/1.22.3/font/devps/generate/textmap +#usr/share/groff/1.22.3/font/devps/prologue +#usr/share/groff/1.22.3/font/devps/symbolsl.pfa +#usr/share/groff/1.22.3/font/devps/text.enc +#usr/share/groff/1.22.3/font/devps/zapfdr.pfa +#usr/share/groff/1.22.3/font/devutf8 +#usr/share/groff/1.22.3/font/devutf8/B +#usr/share/groff/1.22.3/font/devutf8/BI +#usr/share/groff/1.22.3/font/devutf8/DESC +#usr/share/groff/1.22.3/font/devutf8/I +#usr/share/groff/1.22.3/font/devutf8/R +#usr/share/groff/1.22.3/oldfont +#usr/share/groff/1.22.3/oldfont/devps +#usr/share/groff/1.22.3/oldfont/devps/CB +#usr/share/groff/1.22.3/oldfont/devps/CBI +#usr/share/groff/1.22.3/oldfont/devps/CI +#usr/share/groff/1.22.3/oldfont/devps/CR +#usr/share/groff/1.22.3/oldfont/devps/HB +#usr/share/groff/1.22.3/oldfont/devps/HBI +#usr/share/groff/1.22.3/oldfont/devps/HI +#usr/share/groff/1.22.3/oldfont/devps/HNB +#usr/share/groff/1.22.3/oldfont/devps/HNBI +#usr/share/groff/1.22.3/oldfont/devps/HNI +#usr/share/groff/1.22.3/oldfont/devps/HNR +#usr/share/groff/1.22.3/oldfont/devps/HR +#usr/share/groff/1.22.3/oldfont/devps/NB +#usr/share/groff/1.22.3/oldfont/devps/NBI +#usr/share/groff/1.22.3/oldfont/devps/NI +#usr/share/groff/1.22.3/oldfont/devps/NR +#usr/share/groff/1.22.3/oldfont/devps/PB +#usr/share/groff/1.22.3/oldfont/devps/PBI +#usr/share/groff/1.22.3/oldfont/devps/PI +#usr/share/groff/1.22.3/oldfont/devps/PR +#usr/share/groff/1.22.3/oldfont/devps/S +#usr/share/groff/1.22.3/oldfont/devps/SS +#usr/share/groff/1.22.3/oldfont/devps/TB +#usr/share/groff/1.22.3/oldfont/devps/TBI +#usr/share/groff/1.22.3/oldfont/devps/TI +#usr/share/groff/1.22.3/oldfont/devps/TR +#usr/share/groff/1.22.3/oldfont/devps/symbol.afm +#usr/share/groff/1.22.3/oldfont/devps/symbolsl.afm +#usr/share/groff/1.22.3/oldfont/devps/zapfdr.afm +#usr/share/groff/1.22.3/oldfont/devps/zapfdr.ps +#usr/share/groff/1.22.3/pic +#usr/share/groff/1.22.3/pic/chem.pic +#usr/share/groff/1.22.3/tmac +#usr/share/groff/1.22.3/tmac/62bit.tmac +#usr/share/groff/1.22.3/tmac/X.tmac +#usr/share/groff/1.22.3/tmac/Xps.tmac +#usr/share/groff/1.22.3/tmac/a4.tmac +#usr/share/groff/1.22.3/tmac/an-ext.tmac +#usr/share/groff/1.22.3/tmac/an-old.tmac +#usr/share/groff/1.22.3/tmac/an.tmac +#usr/share/groff/1.22.3/tmac/andoc.tmac +#usr/share/groff/1.22.3/tmac/composite.tmac +#usr/share/groff/1.22.3/tmac/cp1047.tmac +#usr/share/groff/1.22.3/tmac/cs.tmac +#usr/share/groff/1.22.3/tmac/de.tmac +#usr/share/groff/1.22.3/tmac/den.tmac +#usr/share/groff/1.22.3/tmac/devtag.tmac +#usr/share/groff/1.22.3/tmac/doc-old.tmac +#usr/share/groff/1.22.3/tmac/doc.tmac +#usr/share/groff/1.22.3/tmac/dvi.tmac +#usr/share/groff/1.22.3/tmac/e.tmac +#usr/share/groff/1.22.3/tmac/ec.tmac +#usr/share/groff/1.22.3/tmac/eqnrc +#usr/share/groff/1.22.3/tmac/europs.tmac +#usr/share/groff/1.22.3/tmac/fallbacks.tmac +#usr/share/groff/1.22.3/tmac/fr.tmac +#usr/share/groff/1.22.3/tmac/hdmisc.tmac +#usr/share/groff/1.22.3/tmac/hdtbl.tmac +#usr/share/groff/1.22.3/tmac/html-end.tmac +#usr/share/groff/1.22.3/tmac/html.tmac +#usr/share/groff/1.22.3/tmac/hyphen.cs +#usr/share/groff/1.22.3/tmac/hyphen.den +#usr/share/groff/1.22.3/tmac/hyphen.det +#usr/share/groff/1.22.3/tmac/hyphen.fr +#usr/share/groff/1.22.3/tmac/hyphen.sv +#usr/share/groff/1.22.3/tmac/hyphen.us +#usr/share/groff/1.22.3/tmac/hyphenex.cs +#usr/share/groff/1.22.3/tmac/hyphenex.det +#usr/share/groff/1.22.3/tmac/hyphenex.us +#usr/share/groff/1.22.3/tmac/ja.tmac +#usr/share/groff/1.22.3/tmac/latin1.tmac +#usr/share/groff/1.22.3/tmac/latin2.tmac +#usr/share/groff/1.22.3/tmac/latin5.tmac +#usr/share/groff/1.22.3/tmac/latin9.tmac +#usr/share/groff/1.22.3/tmac/lbp.tmac +#usr/share/groff/1.22.3/tmac/lj4.tmac +#usr/share/groff/1.22.3/tmac/m.tmac +#usr/share/groff/1.22.3/tmac/man.tmac +#usr/share/groff/1.22.3/tmac/mandoc.tmac +#usr/share/groff/1.22.3/tmac/mdoc +#usr/share/groff/1.22.3/tmac/mdoc.tmac +#usr/share/groff/1.22.3/tmac/mdoc/doc-common +#usr/share/groff/1.22.3/tmac/mdoc/doc-ditroff +#usr/share/groff/1.22.3/tmac/mdoc/doc-nroff +#usr/share/groff/1.22.3/tmac/mdoc/doc-syms +#usr/share/groff/1.22.3/tmac/me.tmac +#usr/share/groff/1.22.3/tmac/mm +#usr/share/groff/1.22.3/tmac/mm.tmac +#usr/share/groff/1.22.3/tmac/mm/0.MT +#usr/share/groff/1.22.3/tmac/mm/4.MT +#usr/share/groff/1.22.3/tmac/mm/5.MT +#usr/share/groff/1.22.3/tmac/mm/locale +#usr/share/groff/1.22.3/tmac/mm/ms.cov +#usr/share/groff/1.22.3/tmac/mm/se_locale +#usr/share/groff/1.22.3/tmac/mm/se_ms.cov +#usr/share/groff/1.22.3/tmac/mmse.tmac +#usr/share/groff/1.22.3/tmac/mom.tmac +#usr/share/groff/1.22.3/tmac/ms.tmac +#usr/share/groff/1.22.3/tmac/mse.tmac +#usr/share/groff/1.22.3/tmac/om.tmac +#usr/share/groff/1.22.3/tmac/papersize.tmac +#usr/share/groff/1.22.3/tmac/pdf.tmac +#usr/share/groff/1.22.3/tmac/pdfmark.tmac +#usr/share/groff/1.22.3/tmac/pic.tmac +#usr/share/groff/1.22.3/tmac/ps.tmac +#usr/share/groff/1.22.3/tmac/psatk.tmac +#usr/share/groff/1.22.3/tmac/psold.tmac +#usr/share/groff/1.22.3/tmac/pspic.tmac +#usr/share/groff/1.22.3/tmac/refer-me.tmac +#usr/share/groff/1.22.3/tmac/refer-mm.tmac +#usr/share/groff/1.22.3/tmac/refer-ms.tmac +#usr/share/groff/1.22.3/tmac/refer.tmac +#usr/share/groff/1.22.3/tmac/s.tmac +#usr/share/groff/1.22.3/tmac/safer.tmac +#usr/share/groff/1.22.3/tmac/spdf.tmac +#usr/share/groff/1.22.3/tmac/sv.tmac +#usr/share/groff/1.22.3/tmac/trace.tmac +#usr/share/groff/1.22.3/tmac/trans.tmac +#usr/share/groff/1.22.3/tmac/troffrc +#usr/share/groff/1.22.3/tmac/troffrc-end +#usr/share/groff/1.22.3/tmac/tty-char.tmac +#usr/share/groff/1.22.3/tmac/tty.tmac +#usr/share/groff/1.22.3/tmac/unicode.tmac +#usr/share/groff/1.22.3/tmac/www.tmac +#usr/share/man/man1/glilypond.1 +#usr/share/man/man1/gperl.1 +#usr/share/man/man1/gpinyin.1 +#usr/share/man/man1/gropdf.1 +#usr/share/man/man1/pdfmom.1 +#usr/share/man/man7/groff_filenames.7 diff --git a/lfs/groff b/lfs/groff index 1739fee23..a303c684a 100644 --- a/lfs/groff +++ b/lfs/groff @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2014 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 1.21 +VER = 1.22.3 THISAPP = groff-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 8b8cd29385b97616a0f0d96d0951c5bf +$(DL_FILE)_MD5 = cc825fa64bc7306a885f2fb2268d3ec5 install : $(TARGET) From 4acb9a1a9b8ef9e51635de6545609d3a6455dd83 Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Sun, 14 Dec 2014 00:46:13 +0100 Subject: [PATCH 002/210] logrotate: Update to 3.8.1 --- config/rootfiles/common/logrotate | 1 + lfs/logrotate | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/config/rootfiles/common/logrotate b/config/rootfiles/common/logrotate index 8410c395f..248a624ba 100644 --- a/config/rootfiles/common/logrotate +++ b/config/rootfiles/common/logrotate @@ -1,3 +1,4 @@ +#usr/man/man5/logrotate.5 #usr/man/man8/logrotate.8 usr/sbin/logrotate var/lib/logrotate.status diff --git a/lfs/logrotate b/lfs/logrotate index 54afba1d3..240f42548 100644 --- a/lfs/logrotate +++ b/lfs/logrotate @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2014 Michael Tremer & Christian Schmidt # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 3.7.1 +VER = 3.8.1 THISAPP = logrotate-$(VER) DL_FILE = logrotate_$(VER).orig.tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 552639142e163745f6bcd4f1f3816d8a +$(DL_FILE)_MD5 = bd2e20d8dc644291b08f9215397d28a5 install : $(TARGET) From 67716b19bb5ab806fdd63f630e53c158dabedf2d Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 20 Dec 2014 16:02:29 +0100 Subject: [PATCH 003/210] perl-Text-CSV_XS: New package. This is a dependency for the xtables-geoip module to convert the only in the cvs provided geoip list into a compatible binary format. --- lfs/perl-Text-CSV_XS | 83 ++++++++++++++++++++++++++++++++++++++++++++ make.sh | 1 + 2 files changed, 84 insertions(+) create mode 100644 lfs/perl-Text-CSV_XS diff --git a/lfs/perl-Text-CSV_XS b/lfs/perl-Text-CSV_XS new file mode 100644 index 000000000..0f948e6c2 --- /dev/null +++ b/lfs/perl-Text-CSV_XS @@ -0,0 +1,83 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2014 IPFire Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + + +############################################################################### +# Definitions +############################################################################### + +include Config +VER = 1.12 + +THISAPP = Text-CSV_XS-$(VER) +DL_FILE = ${THISAPP}.tgz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = perl-Text-CSV_XS +DEPS = "" +PAK_VER = 1 + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = b91f2d806054b68c2a29d3da5821fe87 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && perl Makefile.PL + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/make.sh b/make.sh index 40075916e..a5e847ebb 100755 --- a/make.sh +++ b/make.sh @@ -804,6 +804,7 @@ buildipfire() { ipfiremake squid-accounting ipfiremake pigz ipfiremake tmux + ipfiremake perl-Text-CSV_XS } buildinstaller() { From 15809a0166b58ce30d39c40603d01cc783cf8f3d Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Fri, 26 Dec 2014 07:46:13 +0100 Subject: [PATCH 004/210] iputils: Update to s20121221 --- lfs/iputils | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lfs/iputils b/lfs/iputils index 7741c0ed0..bb0879369 100644 --- a/lfs/iputils +++ b/lfs/iputils @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2014 Michael Tremer & Christian Schmidt # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,12 +24,12 @@ include Config -VER = ss020927 +VER = s20121221 THISAPP = iputils-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/iputils +DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = b5493f7a2997130a4f86c486c9993b86 +$(DL_FILE)_MD5 = 6072aef64205720dd1893b375e184171 install : $(TARGET) @@ -69,10 +69,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/iputils-20020927-headers.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/iputils-20020927-rh.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/iputils-glibckernheaders.patch + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make ping tracepath cd $(DIR_APP) && install -m 4755 ping /usr/bin cd $(DIR_APP) && install -m 0755 tracepath /usr/bin From bf235e962cdd2d0d95d9a6ccfef0b449d181bb04 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 3 Jan 2015 14:01:43 +0100 Subject: [PATCH 005/210] perl-Locale-Country: Update country codes to version 3.33. --- lfs/Locale-Country | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lfs/Locale-Country b/lfs/Locale-Country index b2c1455ef..02bf7a026 100644 --- a/lfs/Locale-Country +++ b/lfs/Locale-Country @@ -24,7 +24,7 @@ include Config -VER = 2.07 +VER = 3.33 THISAPP = Locale-Codes-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = af0537cc4a882096d0320612c440df6d +$(DL_FILE)_MD5 = bc7496f97889de8504e80addaa0ee40c install : $(TARGET) From 72074fcdd2169a4698d5a5dec288e2adeca9af67 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 3 Jan 2015 14:03:20 +0100 Subject: [PATCH 006/210] perl-Text-CSV_XS: New package. This perl module is required to convert the provided geoip databases in CSV format into a useable binary format for the geoip module. --- config/rootfiles/common/perl-Text-CSV_XS | 8 ++++++++ lfs/perl-Text-CSV_XS | 6 ------ 2 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 config/rootfiles/common/perl-Text-CSV_XS diff --git a/config/rootfiles/common/perl-Text-CSV_XS b/config/rootfiles/common/perl-Text-CSV_XS new file mode 100644 index 000000000..ca2f64228 --- /dev/null +++ b/config/rootfiles/common/perl-Text-CSV_XS @@ -0,0 +1,8 @@ +#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/Text +usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/Text/CSV_XS.pm +#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Text +#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Text/CSV_XS +#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Text/CSV_XS/.packlist +#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Text/CSV_XS/CSV_XS.bs +usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Text/CSV_XS/CSV_XS.so +#usr/share/man/man3/Text::CSV_XS.3 diff --git a/lfs/perl-Text-CSV_XS b/lfs/perl-Text-CSV_XS index 0f948e6c2..f94593f98 100644 --- a/lfs/perl-Text-CSV_XS +++ b/lfs/perl-Text-CSV_XS @@ -31,9 +31,6 @@ DL_FILE = ${THISAPP}.tgz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) -PROG = perl-Text-CSV_XS -DEPS = "" -PAK_VER = 1 ############################################################################### # Top-level Rules @@ -53,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects)) md5 : $(subst %,%_MD5,$(objects)) -dist: - @$(PAK) - ############################################################################### # Downloading, checking, md5sum ############################################################################### From b8e0573b5c698df6ba5587da9c4fc9595288ae79 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 3 Jan 2015 14:07:49 +0100 Subject: [PATCH 007/210] xtables-addons: New package. The xtables-addons package provides many additional filter modules for iptables. Currently we are only building the "geoip" module which can be used to create firewall rules which will do actions based on the country membership of the senders/targets address. In order to build the required kernel modules I had to change build order for several packages as well. --- config/rootfiles/common/xtables-addons | 7 ++ config/xtables-addons/mconfig | 24 ++++++ lfs/xtables-addons | 110 +++++++++++++++++++++++++ make.sh | 12 ++- 4 files changed, 150 insertions(+), 3 deletions(-) create mode 100644 config/rootfiles/common/xtables-addons create mode 100644 config/xtables-addons/mconfig create mode 100644 lfs/xtables-addons diff --git a/config/rootfiles/common/xtables-addons b/config/rootfiles/common/xtables-addons new file mode 100644 index 000000000..9053c280c --- /dev/null +++ b/config/rootfiles/common/xtables-addons @@ -0,0 +1,7 @@ +lib/xtables/libxt_geoip.so +#usr/libexec/xtables-addons +usr/libexec/xtables-addons/xt_geoip_build +usr/libexec/xtables-addons/xt_geoip_dl +#usr/share/man/man1/xt_geoip_build.1 +#usr/share/man/man1/xt_geoip_dl.1 +#usr/share/man/man8/xtables-addons.8 diff --git a/config/xtables-addons/mconfig b/config/xtables-addons/mconfig new file mode 100644 index 000000000..92e47f0ad --- /dev/null +++ b/config/xtables-addons/mconfig @@ -0,0 +1,24 @@ +# -*- Makefile -*- +# +build_ACCOUNT=n +build_CHAOS=n +build_DELUDE=n +build_DHCPMAC=n +build_DNETMAP=n +build_ECHO=n +build_IPMARK=n +build_LOGMARK=n +build_SYSRQ=n +build_TARPIT=n +build_condition=n +build_fuzzy=n +build_geoip=m +build_gradm=n +build_iface=n +build_ipp2p=n +build_ipv4options=n +build_length2=n +build_lscan=n +build_pknock=n +build_psd=n +build_quota2=n diff --git a/lfs/xtables-addons b/lfs/xtables-addons new file mode 100644 index 000000000..1848dc908 --- /dev/null +++ b/lfs/xtables-addons @@ -0,0 +1,110 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2014 IPFire Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VERSUFIX = ipfire$(KCFG) +MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/extra/ + +VER = 2.6 + +THISAPP = xtables-addons-$(VER) +DL_FILE = $(THISAPP).tar.xz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) + +ifeq "$(USPACE)" "1" + TARGET = $(DIR_INFO)/$(THISAPP) +else + TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) +endif + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 087835ba7e564481b6fd398692268340 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + $(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + + # Only build the specified modules. + cp -avf $(DIR_SRC)/config/xtables-addons/mconfig \ + $(DIR_APP)/mconfig + +# Check if we build the modules for a kernel or the userspace parts. +ifeq "$(USPACE)" "1" + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --without-kbuild + + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install +else + cd $(DIR_APP) && ./configure \ + --with-kbuild=/usr/src/linux-$(KVER)/ + + cd $(DIR_APP) && make $(MAKETUNING) + + # Install the built kernel modules. + cd $(DIR_APP) && for f in $$(ls extensions/*.ko); do \ + install -m 644 $$f $(MODPATH); \ + done +endif + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/make.sh b/make.sh index a5e847ebb..d4899f9a3 100755 --- a/make.sh +++ b/make.sh @@ -383,6 +383,7 @@ buildipfire() { export LOGFILE ipfiremake configroot ipfiremake backup + ipfiremake pkg-config ipfiremake libusb ipfiremake libusbx ipfiremake libpcap @@ -403,6 +404,8 @@ buildipfire() { ipfiremake multipath-tools ipfiremake freetype ipfiremake grub + ipfiremake libmnl + ipfiremake iptables case "${TARGET_ARCH}" in i586) @@ -412,6 +415,7 @@ buildipfire() { ipfiremake e1000e KCFG="-pae" ipfiremake igb KCFG="-pae" ipfiremake ixgbe KCFG="-pae" + ipfiremake xtables-addons KCFG="-pae" ipfiremake linux-initrd KCFG="-pae" # x86 kernel build @@ -420,6 +424,7 @@ buildipfire() { ipfiremake e1000e KCFG="" ipfiremake igb KCFG="" ipfiremake ixgbe KCFG="" + ipfiremake xtables-addons KCFG="" ipfiremake linux-initrd KCFG="" ;; @@ -427,6 +432,7 @@ buildipfire() { # arm-rpi (Raspberry Pi) kernel build ipfiremake linux KCFG="-rpi" ipfiremake cryptodev KCFG="-rpi" + ipfiremake xtables-addons KCFG="-rpi" ipfiremake linux-initrd KCFG="-rpi" # arm multi platform (Panda, Wandboard ...) kernel build @@ -435,6 +441,7 @@ buildipfire() { ipfiremake e1000e KCFG="-multi" ipfiremake igb KCFG="-multi" ipfiremake ixgbe KCFG="-multi" + ipfiremake xtables-addons KCFG="-multi" ipfiremake linux-initrd KCFG="-multi" # arm-kirkwood (Dreamplug, ICY-Box ...) kernel build @@ -443,10 +450,11 @@ buildipfire() { ipfiremake e1000e KCFG="-kirkwood" ipfiremake igb KCFG="-kirkwood" ipfiremake ixgbe KCFG="-kirkwood" + ipfiremake xtables-addons KCFG="-kirkwood" ipfiremake linux-initrd KCFG="-kirkwood" ;; esac - ipfiremake pkg-config + ipfiremake xtables-addons USPACE="1" ipfiremake openssl ipfiremake openssl-compat ipfiremake libgpg-error @@ -521,8 +529,6 @@ buildipfire() { ipfiremake mtools ipfiremake initscripts ipfiremake whatmask - ipfiremake libmnl - ipfiremake iptables ipfiremake conntrack-tools ipfiremake libupnp ipfiremake ipaddr From cebb1b7cb1327b87e3fa6932eee151a26a9f85c2 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 3 Jan 2015 20:15:28 +0100 Subject: [PATCH 008/210] general-functions.pl: Add function to get full country name. This function will return the full name a country specified by it's country shortcut. It also will provide some additional names which are not handled by the perl locale module but are parts of ISO 3166. --- config/cfgroot/general-functions.pl | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index 35ae7c093..bd5ad0ac8 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -17,6 +17,7 @@ package General; use strict; use Socket; use IO::Socket; +use Locale::Country; use Net::SSLeay; use Net::IPv4Addr qw(:all); $|=1; # line buffering @@ -1123,4 +1124,30 @@ sub get_red_interface() { return $interface; } +# Function to get the county name by a given country code. +sub get_full_country_name($) { + my ($input) = @_; + my $name; + + # Remove whitespaces. + chomp($input); + + # Convert input into lower case format. + my $code = lc($input); + + # Handle country codes which are not in the list. + if ($code eq "a1") { $name = "Anonymous Proxy" } + elsif ($code eq "a2") { $name = "Satellite Provider" } + elsif ($code eq "o1") { $name = "Other Country" } + elsif ($code eq "ap") { $name = "Asia/Pacific Region" } + elsif ($code eq "eu") { $name = "Europe" } + elsif ($code eq "yu") { $name = "Yugoslavia" } + else { + # Use perl built-in module to get the country code. + $name = &Locale::Country::code2country($code); + } + + return $name; +} + 1; From 91634dbe88cc85a77b1b30246e527d3dac908f24 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 3 Jan 2015 20:20:10 +0100 Subject: [PATCH 009/210] geoip-block.cgi: New CGI for managing geoip blocking. --- html/cgi-bin/geoip-block.cgi | 292 +++++++++++++++++++++++++++++++++++ 1 file changed, 292 insertions(+) create mode 100644 html/cgi-bin/geoip-block.cgi diff --git a/html/cgi-bin/geoip-block.cgi b/html/cgi-bin/geoip-block.cgi new file mode 100644 index 000000000..eb1871919 --- /dev/null +++ b/html/cgi-bin/geoip-block.cgi @@ -0,0 +1,292 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2014 IPFire Developemnt Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +use strict; +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +# Directory which contains flag icons. +my $flagdir = "/srv/web/ipfire/html/images/flags"; +# File extension of the country flags. +my $extension = "png"; + +my $settingsfile = "${General::swroot}/firewall/geoipblock"; + +my %color = (); +my %mainsettings = (); +my %settings = (); +my %cgiparams = (); + +# Read configuration file. +&General::readhash("$settingsfile", \%settings); + +&General::readhash("${General::swroot}/main/settings", \%mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color); + +&Header::showhttpheaders(); + +#Get GUI values +&Header::getcgihash(\%cgiparams); + +# Call subfunction to get all available locations. +my @locations = &get_geoip_locations(); + +if ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) { + # Check if we want to disable geoipblock. + if (exists $cgiparams{'GEOIPBLOCK_ENABLED'}) { + $settings{'GEOIPBLOCK_ENABLED'} = "on"; + } else { + $settings{'GEOIPBLOCK_ENABLED'} = "off"; + } + + # Loop through our locations array to prevent from + # non existing countries or code. + foreach my $cn (@locations) { + # Check if blocking for this country should be enabled/disabled. + if (exists $cgiparams{$cn}) { + $settings{$cn} = "on"; + } else { + $settings{$cn} = "off"; + } + } + + &General::writehash("$settingsfile", \%settings); + +# &General::firewall_config_changed(); +# +# $notice = $Lang::tr{'p2p block save notice'}; +} + +&Header::openpage($Lang::tr{'geoipblock configuration'}, 1, ''); + +# Checkbox pre-selection. +my $checked; +if ($settings{'GEOIPBLOCK_ENABLED'} eq "on") { + $checked = "checked='checked'"; +} + +# Print box to enable/disable geoipblock. +print"
\n"; + +&Header::openbox('100%', 'center', $Lang::tr{'geoipblock'}); +print < + + $Lang::tr{'geoipblock enable feature'} + + + +
+ + + +
+ + + + + +
+END + +&Header::closebox(); + +&Header::openbox('100%', 'center', $Lang::tr{'geoipblock block countries'}); +### JAVA SCRIPT ### +print < + // Function to allow checking all checkboxes at once. + function check_all() { + \$("#countries").find(":checkbox").prop("checked", true); + } + + function uncheck_all() { + \$("#countries").find(":checkbox").prop("checked", false); + } + + + + + + + + + + + + + + + + +END + +my $lines; +my $lines2; +my $col; +foreach my $location (@locations) { + # Country code in upper case. (DE) + my $ccode_uc = $location; + + # County code in lower case. (de) + my $ccode_lc = lc($location); + + # Full name of the country based on the country code. + my $cname = &General::get_full_country_name($ccode_lc); + + # Generate flag filename, based on the lower case written contry code + # and the defined file extension of the image files. (de.png) + my $flagfile = join('.', $ccode_lc,$extension); + + # Generate the full path to the flagfile, based on the given path and + # the previously generated filename. + my $flagpath = join('/', $flagdir,$flagfile); + + my $flag; + # Check if a flag for the country is available. + if (-e "$flagpath") { + $flag="$ccode_uc"; + } else { + $flag="N/A"; + } + + # Checkbox pre-selection. + my $checked; + if ($settings{$ccode_uc} eq "on") { + $checked = "checked='checked'"; + } + + # Colour lines. + if ($lines % 2) { + $col="bgcolor='$color{'color20'}'"; + } else { + $col="bgcolor='$color{'color22'}'"; + } + + # Grouping elements. + my $line_start; + my $line_end; + if ($lines2 % 2) { + # Increase lines (background color by once. + $lines++; + + # Add empty column in front. + $line_start=""; + + # When the line number can be diveded by "2", + # we are going to close the line. + $line_end=""; + } else { + # When the line number is not divideable by "2", + # we are starting a new line. + $line_start=""; + $line_end; + } + + print "$line_start\n"; + print "\n"; + print "\n"; + print "$line_end\n"; + +$lines2++; +} + +print < + +
+ $Lang::tr{'flag'} + + $Lang::tr{'countrycode'} + + $Lang::tr{'country'} +   + $Lang::tr{'flag'} + + $Lang::tr{'countrycode'} + + $Lang::tr{'country'} +
 
$flag$ccode_uc$cname
+ + + + + + +
+ $Lang::tr{'check all'} / + $Lang::tr{'uncheck all'} +
+ +
+ + + + + + + + +
$Lang::tr{'geoipblock country is blocked'}$Lang::tr{'geoipblock country is allowed'}
+END + +&Header::closebox(); +print"\n"; + +&Header::closebigbox(); +&Header::closepage(); + +sub get_geoip_locations() { + # Path to the directory which contains the binary geoip + # databases. + my $directory="/usr/share/xt_geoip/BE"; + + # Array with the final contry codes list. + my @contry_codes; + + # Open location and do a directory listing. + opendir(DIR, "$directory"); + my @locations = readdir(DIR); + closedir(DIR); + + # Loop through the directory listing, and cut of the file extensions. + foreach my $location (sort @locations) { + # skip . and .. + next if($location =~ /^\.$/); + next if($location =~ /^\.\.$/); + + # Remove whitespaces. + chomp($location); + + # Cut-off file extension. + my ($contry_code, $extension) = split(/\./, $location); + + # Add country code to array. + push(@contry_codes, $contry_code); + } + + return @contry_codes; +} From 11ad82532e54fedd2a9b55f5c4a7b2f7a62a2002 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 3 Jan 2015 20:20:45 +0100 Subject: [PATCH 010/210] Language file update for geoip blocking. --- langs/en/cgi-bin/en.pl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 198640934..3e972ffc0 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -550,6 +550,7 @@ 'chain' => 'Chain', 'change passwords' => 'Change passwords', 'change share' => 'edit share options', +'check all' =>'Check all', 'check for net traffic update' => 'Check for Net-Traffic updates', 'check vpn lr' => 'Check', 'choose config' => 'Choose config', @@ -1191,6 +1192,15 @@ 'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generating the root and host certificates may take a long time. It can take up to several minutes on older hardware. Please be patient.', 'genkey' => 'Generate PSK', 'genre' => 'Genre', +'geoipblock' => 'GeoIP based blocking', +'geoipblock block countries' => 'Block countries', +'geoipblock configuration' => 'GeoIP Configuration', +'geoipblock country code' => 'Country Code', +'geoipblock country is allowed' => 'Traffic from this country is allowed', +'geoipblock country is blocked' => 'Traffic from this country will be blocked', +'geoipblock country name' => 'Country Name', +'geoipblock enable feature' => 'Enable GeoIP based blocking:', +'geoipblock flag' => 'Flag', 'global settings' => 'Global Settings', 'gpl i accept these terms and conditions' => 'I accept these terms and conditions', 'gpl license agreement' => 'License Agreement', @@ -2245,6 +2255,7 @@ 'tripwirewarningpolicy' => 'WARNING - Your policy will be rebuild, after that your database will be reinitalised. Therefor the site-key and the local-key are neeeded.', 'tuesday' => 'Tuesday', 'type' => 'Type', +'uncheck all' => 'Uncheck all', 'umount' => 'Umount', 'umount removable media before to unplug' => 'Umount removable media before unplugging the device', 'unable to alter profiles while red is active' => 'Unable to alter profiles while RED is active.', From cc26ba71a193700177d8bc118e79b050964562f7 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 3 Jan 2015 20:22:05 +0100 Subject: [PATCH 011/210] header.pl: Increase maximum allowed size of hashes. The "getcgihash" function only allowed hashes with a maximum size of 512kb, which was to small for the new geoip-block.cgi. As a result of this some form data were cut-off and couldn't be processed correctly. --- config/cfgroot/header.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl index cf895bf24..974c4d8b2 100644 --- a/config/cfgroot/header.pl +++ b/config/cfgroot/header.pl @@ -263,7 +263,7 @@ sub getcgihash { return if ($ENV{'REQUEST_METHOD'} ne 'POST'); if (!$params->{'wantfile'}) { $CGI::DISABLE_UPLOADS = 1; - $CGI::POST_MAX = 512 * 1024; + $CGI::POST_MAX = 1024 * 1024; } else { $CGI::POST_MAX = 10 * 1024 * 1024; } From ca842e182227d69ea70e90e18f5a81d458cf06d3 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 00:54:46 +0100 Subject: [PATCH 012/210] xt_geoip_build: Script to convert GeoIP CSV into compatible binary databases. This is a cleaned up version of the original build script shipped by the xtables-addons source code. The following abilities have been removed: * IPv6 support * Big Endian --- src/scripts/xt_geoip_build | 89 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 src/scripts/xt_geoip_build diff --git a/src/scripts/xt_geoip_build b/src/scripts/xt_geoip_build new file mode 100644 index 000000000..202156f13 --- /dev/null +++ b/src/scripts/xt_geoip_build @@ -0,0 +1,89 @@ +#!/usr/bin/perl +# +# Converter for MaxMind CSV database to binary, for xt_geoip +# Copyright © Jan Engelhardt, 2008-2011 +# +use Getopt::Long; +use IO::Handle; +use Text::CSV_XS; # or trade for Text::CSV +use strict; + +my $csv = Text::CSV_XS->new({ + allow_whitespace => 1, + binary => 1, + eol => $/, +}); # or Text::CSV +my $target_dir = "."; + +&Getopt::Long::Configure(qw(bundling)); +&GetOptions( + "D=s" => \$target_dir, +); + +if (!-d $target_dir) { + print STDERR "Target directory $target_dir does not exist.\n"; + exit 1; +} + +my $dir = "$target_dir/LE"; +if (!-e $dir && !mkdir($dir)) { + print STDERR "Could not mkdir $dir: $!\n"; + exit 1; +} + +&dump(&collect()); + +sub collect +{ + my %country; + + while (my $row = $csv->getline(*ARGV)) { + if (!defined($country{$row->[4]})) { + $country{$row->[4]} = { + name => $row->[5], + pool_v4 => [], + pool_v6 => [], + }; + } + my $c = $country{$row->[4]}; + + push(@{$c->{pool_v4}}, [$row->[2], $row->[3]]); + + if ($. % 4096 == 0) { + print STDERR "\r\e[2K$. entries"; + } + } + + print STDERR "\r\e[2K$. entries total\n"; + return \%country; +} + +sub dump +{ + my $country = shift @_; + + foreach my $iso_code (sort keys %$country) { + &dump_one($iso_code, $country->{$iso_code}); + } +} + +sub dump_one +{ + my($iso_code, $country) = @_; + my($file, $fh_le, $fh_be); + + printf "%5u IPv4 ranges for %s %s\n", + scalar(@{$country->{pool_v4}}), + $iso_code, $country->{name}; + + $file = "$target_dir/LE/".uc($iso_code).".iv4"; + if (!open($fh_le, "> $file")) { + print STDERR "Error opening $file: $!\n"; + exit 1; + } + foreach my $range (@{$country->{pool_v4}}) { + print $fh_le pack("VV", $range->[0], $range->[1]); + #print $fh_be pack("NN", $range->[0], $range->[1]); + } + close $fh_le; +} From 2285f9da225d245dda6653ce05de9665bd9a792d Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 00:55:17 +0100 Subject: [PATCH 013/210] Add xt_geoip_update script. This script will download the latest available geoip database, convert it into a compatible binary format and move it to the correct destination. --- src/scripts/xt_geoip_update | 118 ++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 src/scripts/xt_geoip_update diff --git a/src/scripts/xt_geoip_update b/src/scripts/xt_geoip_update new file mode 100644 index 000000000..3ad34d0c6 --- /dev/null +++ b/src/scripts/xt_geoip_update @@ -0,0 +1,118 @@ +#!/bin/bash +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2014 IPFire Development Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +TMP_PATH=$(mktemp -d) +TMP_FILE=$(mktemp) + +SCRIPT_PATH=/usr/libexec/xtables-addons +DEST_PATH=/usr/share/xt_geoip + +DL_URL=http://geolite.maxmind.com/download/geoip/database +DL_FILE=GeoIPCountryCSV.zip + +CSV_FILE=GeoIPCountryWhois.csv + +ARCH=LE + +function download() { + echo "Downloading latest GeoIP ruleset..." + + # Get the latest GeoIP database from server. + wget $DL_URL/$DL_FILE -O $TMP_PATH/$TMP_FILE + + # Extract files. + unzip $TMP_PATH/$TMP_FILE -d $TMP_PATH + + return 0 +} + +function build() { + echo "Convert database..." + + # Check if the csv file exists. + if [ ! -e $TMP_PATH/$CSV_FILE ]; then + echo "$TMP_PATH/$CSV_FILE not found. Exiting." + return 1 + fi + + # Run script to convert the CSV file into several xtables + # compatible binary files. + if ! $SCRIPT_PATH/xt_geoip_build $TMP_DIR/$CSV_FILE -D $TMP_DIR; then + echo "Could not convert ruleset. Aborting." >&2 + return 1 + fi + + return 0 +} + +function install() { + echo "Install databases..." + + # Check if our destination exist. + if [ ! -e "$DEST_PATH" ]; then + mkdir -p $DEST_PATH &>/dev/null + fi + + # Install databases. + if ! cp -af $TMP_PATH/$ARCH $DEST_PATH &>/dev/null; then + echo "Could not copy files. Aborting." >&2 + return 1 + fi + + return 0 +} + +function cleanup() { + echo "Cleaning up temporary files..." + if ! rm -rf $TMP_PATH &>/dev/null; then + echo "Could not remove files. Aborting." >&2 + return 1 + fi + + return 0 +} + +function main() { + # Download ruleset. + download || exit $? + + # Convert the ruleset. + if ! build; then + # Do cleanup. + cleanup || exit $? + exit 1 + fi + + # Install the converted ruleset. + if ! install; then + # Do cleanup. + cleanup || exit $? + exit 1 + fi + + # Finaly remove temporary files. + cleanup || exit $? + + return 0 +} + +# Run the main function. +main From 484e01fc3791c7cce818c4d578b5e883846b4c51 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 00:56:00 +0100 Subject: [PATCH 014/210] Add default config file for geoipblock. --- config/firewall/geoipblock | 1 + 1 file changed, 1 insertion(+) create mode 100644 config/firewall/geoipblock diff --git a/config/firewall/geoipblock b/config/firewall/geoipblock new file mode 100644 index 000000000..4d483d3b8 --- /dev/null +++ b/config/firewall/geoipblock @@ -0,0 +1 @@ +GEOIPBLOCK_ENABLED=off From cab02e2a5f77eaf0bc12f7c115348baf2a04b699 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 00:57:23 +0100 Subject: [PATCH 015/210] Add "GEOIPBLOCK" chains to firewall initscript. --- src/initscripts/init.d/firewall | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/initscripts/init.d/firewall b/src/initscripts/init.d/firewall index c383652e0..8ca02bc9d 100644 --- a/src/initscripts/init.d/firewall +++ b/src/initscripts/init.d/firewall @@ -179,6 +179,11 @@ iptables_init() { iptables -A OUTPUT -o "${BLUE_DEV}" -j DHCPBLUEOUTPUT fi + # GeoIP block + iptables -N GEOIPBLOCK + iptables -A INPUT -j GEOIPBLOCK + iptables -A FORWARD -j GEOIPBLOCK + # trafic from ipsecX/TUN/TAP interfaces, before "-i GREEN_DEV" accept everything iptables -N IPSECINPUT iptables -N IPSECFORWARD From 593c32275adf2b5bc7a887ad1d14350863ee57e4 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 01:03:21 +0100 Subject: [PATCH 016/210] Move "sub get_geoip_locations" to firewall-lib. --- config/firewall/firewall-lib.pl | 33 +++++++++++++++++++++ html/cgi-bin/geoip-block.cgi | 51 ++++++++++----------------------- 2 files changed, 48 insertions(+), 36 deletions(-) diff --git a/config/firewall/firewall-lib.pl b/config/firewall/firewall-lib.pl index f3cd67fb0..3fa702f35 100755 --- a/config/firewall/firewall-lib.pl +++ b/config/firewall/firewall-lib.pl @@ -552,4 +552,37 @@ sub get_internal_firewall_ip_address return 0; } +sub get_geoip_locations() { + # Path to the directory which contains the binary geoip + # databases. + my $directory="/usr/share/xt_geoip/LE"; + + # Array to store the final country list. + my @country_codes = (); + + # Open location and do a directory listing. + opendir(DIR, "$directory"); + my @locations = readdir(DIR); + closedir(DIR); + + # Loop through the directory listing, and cut of the file extensions. + foreach my $location (sort @locations) { + # skip . and .. + next if($location =~ /^\.$/); + next if($location =~ /^\.\.$/); + + # Remove whitespaces. + chomp($location); + + # Cut-off file extension. + my ($contry_code, $extension) = split(/\./, $location); + + # Add country code to array. + push(@contry_codes, $contry_code); + } + + # Return final array. + return @country_codes; +} + return 1; diff --git a/html/cgi-bin/geoip-block.cgi b/html/cgi-bin/geoip-block.cgi index eb1871919..f973351cb 100644 --- a/html/cgi-bin/geoip-block.cgi +++ b/html/cgi-bin/geoip-block.cgi @@ -33,6 +33,7 @@ my $flagdir = "/srv/web/ipfire/html/images/flags"; # File extension of the country flags. my $extension = "png"; +my $notice; my $settingsfile = "${General::swroot}/firewall/geoipblock"; my %color = (); @@ -52,7 +53,7 @@ my %cgiparams = (); &Header::getcgihash(\%cgiparams); # Call subfunction to get all available locations. -my @locations = &get_geoip_locations(); +my @locations = &fwlib::get_geoip_locations(); if ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) { # Check if we want to disable geoipblock. @@ -75,13 +76,23 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) { &General::writehash("$settingsfile", \%settings); -# &General::firewall_config_changed(); -# -# $notice = $Lang::tr{'p2p block save notice'}; + # Mark the firewall config as changed. + &General::firewall_config_changed(); + + # Assign reload notice. We directly can use + # the notice from p2p block. + $notice = $Lang::tr{'p2p block save notice'}; } &Header::openpage($Lang::tr{'geoipblock configuration'}, 1, ''); +# Print notice that a firewall reload is required. +if ($notice) { + &Header::openbox('100%', 'left', $Lang::tr{'notice'}); + print "$notice"; + &Header::closebox(); +} + # Checkbox pre-selection. my $checked; if ($settings{'GEOIPBLOCK_ENABLED'} eq "on") { @@ -258,35 +269,3 @@ print"\n"; &Header::closebigbox(); &Header::closepage(); - -sub get_geoip_locations() { - # Path to the directory which contains the binary geoip - # databases. - my $directory="/usr/share/xt_geoip/BE"; - - # Array with the final contry codes list. - my @contry_codes; - - # Open location and do a directory listing. - opendir(DIR, "$directory"); - my @locations = readdir(DIR); - closedir(DIR); - - # Loop through the directory listing, and cut of the file extensions. - foreach my $location (sort @locations) { - # skip . and .. - next if($location =~ /^\.$/); - next if($location =~ /^\.\.$/); - - # Remove whitespaces. - chomp($location); - - # Cut-off file extension. - my ($contry_code, $extension) = split(/\./, $location); - - # Add country code to array. - push(@contry_codes, $contry_code); - } - - return @contry_codes; -} From 211694e588cf65dba21b6f9eb32f1ca7fd4520eb Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 01:05:45 +0100 Subject: [PATCH 017/210] firewall: Add support for geoipblock to rules.pl. --- config/firewall/rules.pl | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) mode change 100755 => 100644 config/firewall/rules.pl diff --git a/config/firewall/rules.pl b/config/firewall/rules.pl old mode 100755 new mode 100644 index 75a9357f6..834e24871 --- a/config/firewall/rules.pl +++ b/config/firewall/rules.pl @@ -60,6 +60,7 @@ my $configfwdfw = "${General::swroot}/firewall/config"; my $configinput = "${General::swroot}/firewall/input"; my $configoutgoing = "${General::swroot}/firewall/outgoing"; my $p2pfile = "${General::swroot}/firewall/p2protocols"; +my $geoipfile = "${General::swroot}/firewall/geoipblock"; my $configgrp = "${General::swroot}/fwhosts/customgroups"; my $netsettings = "${General::swroot}/ethernet/settings"; @@ -94,6 +95,9 @@ sub main { # Load P2P block rules. &p2pblock(); + # Load GeoIP block rules. + &geoipblock(); + # Reload firewall policy. run("/usr/sbin/firewall-policy"); } @@ -570,6 +574,40 @@ sub p2pblock { } } +sub geoipblock { + my %geoipsettings = (); + + # Check if the geoip settings file exists + if (-e "$geoipfile") { + # Read settings file + &General::readhash("$geoipfile", \%geoipsettings); + } else { + # Exit submodule, go on processing the remaining script + return; + } + + # If geoip blocking is not enabled, we are finished here. + if ($geoipsettings{'GEOIPBLOCK_ENABLED'} ne "on") { + # Exit submodule. Process remaining script. + return; + } + + # Get supported locations. + my @locations = &fwlib::get_geoip_locations(); + + # Create iptables chain. + run("$IPTABLES -F GEOIPBLOCK"); + + # Loop through all supported geoip locations and + # create iptables rules, if blocking this country + # is enabled. + foreach my $location (@locations) { + if($geoipsettings{$location} eq "on") { + run("$IPTABLES -A GEOIPBLOCK -m geoip --src-cc $location -j DROP"); + } + } +} + sub get_protocols { my $hash = shift; my $key = shift; From f2d941436b9721cdbfc37f0c7769088d14621d13 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 08:23:53 +0100 Subject: [PATCH 018/210] Rootfile update. --- config/rootfiles/common/Locale-Country | 63 ++++++++++++++++++++------ 1 file changed, 50 insertions(+), 13 deletions(-) diff --git a/config/rootfiles/common/Locale-Country b/config/rootfiles/common/Locale-Country index bbe51eee7..0ed312f43 100644 --- a/config/rootfiles/common/Locale-Country +++ b/config/rootfiles/common/Locale-Country @@ -1,13 +1,50 @@ -#usr/lib/perl5/site_perl/5.12.3/Locale -usr/lib/perl5/site_perl/5.12.3/Locale/Constants.pm -usr/lib/perl5/site_perl/5.12.3/Locale/Constants.pod -usr/lib/perl5/site_perl/5.12.3/Locale/Country.pm -usr/lib/perl5/site_perl/5.12.3/Locale/Country.pod -usr/lib/perl5/site_perl/5.12.3/Locale/Currency.pm -usr/lib/perl5/site_perl/5.12.3/Locale/Currency.pod -usr/lib/perl5/site_perl/5.12.3/Locale/Language.pm -usr/lib/perl5/site_perl/5.12.3/Locale/Language.pod -usr/lib/perl5/site_perl/5.12.3/Locale/Script.pm -usr/lib/perl5/site_perl/5.12.3/Locale/Script.pod -#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Locale-Codes -#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Locale-Codes/.packlist +#usr/lib/perl5/5.12.3/Locale/Codes +usr/lib/perl5/5.12.3/Locale/Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes.pod +usr/lib/perl5/5.12.3/Locale/Codes/API.pod +usr/lib/perl5/5.12.3/Locale/Codes/Changes.pod +usr/lib/perl5/5.12.3/Locale/Codes/Constants.pm +usr/lib/perl5/5.12.3/Locale/Codes/Constants.pod +usr/lib/perl5/5.12.3/Locale/Codes/Country.pm +usr/lib/perl5/5.12.3/Locale/Codes/Country.pod +usr/lib/perl5/5.12.3/Locale/Codes/Country_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/Country_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/Currency.pm +usr/lib/perl5/5.12.3/Locale/Codes/Currency.pod +usr/lib/perl5/5.12.3/Locale/Codes/Currency_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/Currency_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangExt.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangExt.pod +usr/lib/perl5/5.12.3/Locale/Codes/LangExt_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangExt_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangFam.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangFam.pod +usr/lib/perl5/5.12.3/Locale/Codes/LangFam_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangFam_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangVar.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangVar.pod +usr/lib/perl5/5.12.3/Locale/Codes/LangVar_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangVar_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/Language.pm +usr/lib/perl5/5.12.3/Locale/Codes/Language.pod +usr/lib/perl5/5.12.3/Locale/Codes/Language_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/Language_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/Script.pm +usr/lib/perl5/5.12.3/Locale/Codes/Script.pod +usr/lib/perl5/5.12.3/Locale/Codes/Script_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/Script_Retired.pm +#usr/lib/perl5/5.12.3/i586-linux-thread-multi/auto/Locale +#usr/lib/perl5/5.12.3/i586-linux-thread-multi/auto/Locale/Codes +#usr/lib/perl5/5.12.3/i586-linux-thread-multi/auto/Locale/Codes/.packlist +#usr/share/man/man3/Locale::Codes.3 +#usr/share/man/man3/Locale::Codes::API.3 +#usr/share/man/man3/Locale::Codes::Changes.3 +#usr/share/man/man3/Locale::Codes::Constants.3 +#usr/share/man/man3/Locale::Codes::Country.3 +#usr/share/man/man3/Locale::Codes::Currency.3 +#usr/share/man/man3/Locale::Codes::LangExt.3 +#usr/share/man/man3/Locale::Codes::LangFam.3 +#usr/share/man/man3/Locale::Codes::LangFam_Retired.3 +#usr/share/man/man3/Locale::Codes::LangVar.3 +#usr/share/man/man3/Locale::Codes::Language.3 +#usr/share/man/man3/Locale::Codes::Script.3 From 58c74d078780b88bf060fa179bd55dd483164b87 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 13:36:06 +0100 Subject: [PATCH 019/210] lfs/stage2: Add directory for geoip databases. --- config/rootfiles/common/stage2 | 1 + lfs/stage2 | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/config/rootfiles/common/stage2 b/config/rootfiles/common/stage2 index eb9704076..cbfde185c 100644 --- a/config/rootfiles/common/stage2 +++ b/config/rootfiles/common/stage2 @@ -136,6 +136,7 @@ usr/share/doc/licenses/GPLv3 #usr/share/man/man8 #usr/share/misc #usr/share/terminfo +#usr/share/xt_geoip #usr/share/zoneinfo run #var diff --git a/lfs/stage2 b/lfs/stage2 index 19d955379..ede9d2bdd 100644 --- a/lfs/stage2 +++ b/lfs/stage2 @@ -55,7 +55,7 @@ $(TARGET) : -install -dv -m 1777 /tmp /var/tmp -mkdir -pv /usr/{,local/}{bin,include,lib{,/sse2},sbin,src} -mkdir -pv /usr/{,local/}share/{doc,info,locale,man} - -mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo} + -mkdir -v /usr/{,local/}share/{misc,terminfo,xt_geoip,zoneinfo} -mkdir -pv /usr/{,local/}share/man/man{1..8} #-for dir in /usr /usr/local; do \ # ln -sv share/{man,doc,info} $$dir; \ From 0909c0d15058ddf023369afefab634781cc2702d Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 13:40:34 +0100 Subject: [PATCH 020/210] Automatically download and update GeoIP Databases. --- config/cron/crontab | 3 +++ .../networking/red.up/99-geoip-database | 20 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 src/initscripts/init.d/networking/red.up/99-geoip-database diff --git a/config/cron/crontab b/config/cron/crontab index d78d08f59..54e9b5fee 100644 --- a/config/cron/crontab +++ b/config/cron/crontab @@ -57,3 +57,6 @@ HOME=/ # Re-read firewall rules every Sunday in March, October and November to take care of daylight saving time 00 3 * 3 0 /usr/local/bin/timezone-transition /usr/local/bin/firewallctrl 00 2 * 10-11 0 /usr/local/bin/timezone-transition /usr/local/bin/firewallctrl + +# Update GeoIP database once a month. +3 2 1 * * * [ -f "/var/ipfire/red/active" ] && /usr/local/bin/xt_geoip_update >/dev/null 2>&1 diff --git a/src/initscripts/init.d/networking/red.up/99-geoip-database b/src/initscripts/init.d/networking/red.up/99-geoip-database new file mode 100644 index 000000000..020f2fa2d --- /dev/null +++ b/src/initscripts/init.d/networking/red.up/99-geoip-database @@ -0,0 +1,20 @@ +#!/bin/bash + +# Get the GeoIP database if no one exists yet. + +DIR=/usr/share/xt_geoip + +found=false + +# Check if the directory contains any data. +for i in $DIR/*; do + found=true + break +done + +# Download ruleset if none has been found. +if ! ${found}; then + /us/local/bin/xt_geoip_update >/dev/null 2>&1 +fi + +exit 0 From e497310ee02c7b6f2071bf021f26bc254d97f439 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 13:51:28 +0100 Subject: [PATCH 021/210] Add "GeoIP Block" to firewall menu. --- config/menu/50-firewall.menu | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config/menu/50-firewall.menu b/config/menu/50-firewall.menu index e872e6428..7271b3212 100644 --- a/config/menu/50-firewall.menu +++ b/config/menu/50-firewall.menu @@ -22,6 +22,12 @@ 'title' => "P2P-Block", 'enabled' => 1, }; + $subfirewall->{'50.geoipblock'} = { + 'caption' => $Lang::tr{'geoipblock'}, + 'uri' => '/cgi-bin/geoip-block.cgi', + 'title' => $Lang::tr{'geoipblock'}, + 'enabled' => 1, + }; $subfirewall->{'60.wireless'} = { 'caption' => $Lang::tr{'blue access'}, 'uri' => '/cgi-bin/wireless.cgi', From a2b7328a265fb414929d8194b509580054f5c753 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 13:52:29 +0100 Subject: [PATCH 022/210] Language file update. --- langs/en/cgi-bin/en.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 3e972ffc0..0374c60f9 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -1192,7 +1192,7 @@ 'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generating the root and host certificates may take a long time. It can take up to several minutes on older hardware. Please be patient.', 'genkey' => 'Generate PSK', 'genre' => 'Genre', -'geoipblock' => 'GeoIP based blocking', +'geoipblock' => 'GeoIP Block', 'geoipblock block countries' => 'Block countries', 'geoipblock configuration' => 'GeoIP Configuration', 'geoipblock country code' => 'Country Code', From 192a8266e2571a324a793fa512a9c852661ae25b Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 4 Jan 2015 14:07:06 +0100 Subject: [PATCH 023/210] geoip-block.cgi: Requires firewall-lib.pl. --- config/firewall/firewall-lib.pl | 4 ++-- html/cgi-bin/geoip-block.cgi | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/config/firewall/firewall-lib.pl b/config/firewall/firewall-lib.pl index 3fa702f35..f73d84f29 100755 --- a/config/firewall/firewall-lib.pl +++ b/config/firewall/firewall-lib.pl @@ -575,10 +575,10 @@ sub get_geoip_locations() { chomp($location); # Cut-off file extension. - my ($contry_code, $extension) = split(/\./, $location); + my ($country_code, $extension) = split(/\./, $location); # Add country code to array. - push(@contry_codes, $contry_code); + push(@country_codes, $country_code); } # Return final array. diff --git a/html/cgi-bin/geoip-block.cgi b/html/cgi-bin/geoip-block.cgi index f973351cb..6a7d1d96e 100644 --- a/html/cgi-bin/geoip-block.cgi +++ b/html/cgi-bin/geoip-block.cgi @@ -27,6 +27,7 @@ use strict; require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; +require "/usr/lib/firewall/firewall-lib.pl"; # Directory which contains flag icons. my $flagdir = "/srv/web/ipfire/html/images/flags"; From 6a71b0b013fbc0fa73319e4ed1daa34524a17a4f Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Mon, 19 Jan 2015 20:16:41 +0100 Subject: [PATCH 024/210] curl: Update to 7.40.0 --- config/rootfiles/common/curl | 227 ++++++++++++++++++++++++++++++++++- lfs/curl | 6 +- 2 files changed, 228 insertions(+), 5 deletions(-) diff --git a/config/rootfiles/common/curl b/config/rootfiles/common/curl index c5567519b..af32dfa6a 100644 --- a/config/rootfiles/common/curl +++ b/config/rootfiles/common/curl @@ -10,7 +10,6 @@ usr/bin/curl #usr/include/curl/multi.h #usr/include/curl/stdcheaders.h #usr/include/curl/typecheck-gcc.h -#usr/include/curl/types.h #usr/lib/libcurl.a #usr/lib/libcurl.la usr/lib/libcurl.so @@ -18,9 +17,233 @@ usr/lib/libcurl.so.3 usr/lib/libcurl.so.4 usr/lib/libcurl.so.4.3.0 #usr/lib/pkgconfig/libcurl.pc +#usr/share/aclocal/libcurl.m4 #usr/share/man/man1/curl-config.1 #usr/share/man/man1/curl.1 -#usr/share/man/man1/mk-ca-bundle.1 +#usr/share/man/man3/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3 +#usr/share/man/man3/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3 +#usr/share/man/man3/CURLMOPT_MAXCONNECTS.3 +#usr/share/man/man3/CURLMOPT_MAX_HOST_CONNECTIONS.3 +#usr/share/man/man3/CURLMOPT_MAX_PIPELINE_LENGTH.3 +#usr/share/man/man3/CURLMOPT_MAX_TOTAL_CONNECTIONS.3 +#usr/share/man/man3/CURLMOPT_PIPELINING.3 +#usr/share/man/man3/CURLMOPT_PIPELINING_SERVER_BL.3 +#usr/share/man/man3/CURLMOPT_PIPELINING_SITE_BL.3 +#usr/share/man/man3/CURLMOPT_SOCKETDATA.3 +#usr/share/man/man3/CURLMOPT_SOCKETFUNCTION.3 +#usr/share/man/man3/CURLMOPT_TIMERDATA.3 +#usr/share/man/man3/CURLMOPT_TIMERFUNCTION.3 +#usr/share/man/man3/CURLOPT_ACCEPTTIMEOUT_MS.3 +#usr/share/man/man3/CURLOPT_ACCEPT_ENCODING.3 +#usr/share/man/man3/CURLOPT_ADDRESS_SCOPE.3 +#usr/share/man/man3/CURLOPT_APPEND.3 +#usr/share/man/man3/CURLOPT_AUTOREFERER.3 +#usr/share/man/man3/CURLOPT_BUFFERSIZE.3 +#usr/share/man/man3/CURLOPT_CAINFO.3 +#usr/share/man/man3/CURLOPT_CAPATH.3 +#usr/share/man/man3/CURLOPT_CERTINFO.3 +#usr/share/man/man3/CURLOPT_CHUNK_BGN_FUNCTION.3 +#usr/share/man/man3/CURLOPT_CHUNK_DATA.3 +#usr/share/man/man3/CURLOPT_CHUNK_END_FUNCTION.3 +#usr/share/man/man3/CURLOPT_CLOSESOCKETDATA.3 +#usr/share/man/man3/CURLOPT_CLOSESOCKETFUNCTION.3 +#usr/share/man/man3/CURLOPT_CONNECTTIMEOUT.3 +#usr/share/man/man3/CURLOPT_CONNECTTIMEOUT_MS.3 +#usr/share/man/man3/CURLOPT_CONNECT_ONLY.3 +#usr/share/man/man3/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3 +#usr/share/man/man3/CURLOPT_CONV_FROM_UTF8_FUNCTION.3 +#usr/share/man/man3/CURLOPT_CONV_TO_NETWORK_FUNCTION.3 +#usr/share/man/man3/CURLOPT_COOKIE.3 +#usr/share/man/man3/CURLOPT_COOKIEFILE.3 +#usr/share/man/man3/CURLOPT_COOKIEJAR.3 +#usr/share/man/man3/CURLOPT_COOKIELIST.3 +#usr/share/man/man3/CURLOPT_COOKIESESSION.3 +#usr/share/man/man3/CURLOPT_COPYPOSTFIELDS.3 +#usr/share/man/man3/CURLOPT_CRLF.3 +#usr/share/man/man3/CURLOPT_CRLFILE.3 +#usr/share/man/man3/CURLOPT_CUSTOMREQUEST.3 +#usr/share/man/man3/CURLOPT_DEBUGDATA.3 +#usr/share/man/man3/CURLOPT_DEBUGFUNCTION.3 +#usr/share/man/man3/CURLOPT_DIRLISTONLY.3 +#usr/share/man/man3/CURLOPT_DNS_CACHE_TIMEOUT.3 +#usr/share/man/man3/CURLOPT_DNS_INTERFACE.3 +#usr/share/man/man3/CURLOPT_DNS_LOCAL_IP4.3 +#usr/share/man/man3/CURLOPT_DNS_LOCAL_IP6.3 +#usr/share/man/man3/CURLOPT_DNS_SERVERS.3 +#usr/share/man/man3/CURLOPT_DNS_USE_GLOBAL_CACHE.3 +#usr/share/man/man3/CURLOPT_EGDSOCKET.3 +#usr/share/man/man3/CURLOPT_ERRORBUFFER.3 +#usr/share/man/man3/CURLOPT_EXPECT_100_TIMEOUT_MS.3 +#usr/share/man/man3/CURLOPT_FAILONERROR.3 +#usr/share/man/man3/CURLOPT_FILETIME.3 +#usr/share/man/man3/CURLOPT_FNMATCH_DATA.3 +#usr/share/man/man3/CURLOPT_FNMATCH_FUNCTION.3 +#usr/share/man/man3/CURLOPT_FOLLOWLOCATION.3 +#usr/share/man/man3/CURLOPT_FORBID_REUSE.3 +#usr/share/man/man3/CURLOPT_FRESH_CONNECT.3 +#usr/share/man/man3/CURLOPT_FTPPORT.3 +#usr/share/man/man3/CURLOPT_FTPSSLAUTH.3 +#usr/share/man/man3/CURLOPT_FTP_ACCOUNT.3 +#usr/share/man/man3/CURLOPT_FTP_ALTERNATIVE_TO_USER.3 +#usr/share/man/man3/CURLOPT_FTP_CREATE_MISSING_DIRS.3 +#usr/share/man/man3/CURLOPT_FTP_FILEMETHOD.3 +#usr/share/man/man3/CURLOPT_FTP_RESPONSE_TIMEOUT.3 +#usr/share/man/man3/CURLOPT_FTP_SKIP_PASV_IP.3 +#usr/share/man/man3/CURLOPT_FTP_SSL_CCC.3 +#usr/share/man/man3/CURLOPT_FTP_USE_EPRT.3 +#usr/share/man/man3/CURLOPT_FTP_USE_EPSV.3 +#usr/share/man/man3/CURLOPT_FTP_USE_PRET.3 +#usr/share/man/man3/CURLOPT_GSSAPI_DELEGATION.3 +#usr/share/man/man3/CURLOPT_HEADER.3 +#usr/share/man/man3/CURLOPT_HEADERDATA.3 +#usr/share/man/man3/CURLOPT_HEADERFUNCTION.3 +#usr/share/man/man3/CURLOPT_HEADEROPT.3 +#usr/share/man/man3/CURLOPT_HTTP200ALIASES.3 +#usr/share/man/man3/CURLOPT_HTTPAUTH.3 +#usr/share/man/man3/CURLOPT_HTTPGET.3 +#usr/share/man/man3/CURLOPT_HTTPHEADER.3 +#usr/share/man/man3/CURLOPT_HTTPPOST.3 +#usr/share/man/man3/CURLOPT_HTTPPROXYTUNNEL.3 +#usr/share/man/man3/CURLOPT_HTTP_CONTENT_DECODING.3 +#usr/share/man/man3/CURLOPT_HTTP_TRANSFER_DECODING.3 +#usr/share/man/man3/CURLOPT_HTTP_VERSION.3 +#usr/share/man/man3/CURLOPT_IGNORE_CONTENT_LENGTH.3 +#usr/share/man/man3/CURLOPT_INFILESIZE.3 +#usr/share/man/man3/CURLOPT_INFILESIZE_LARGE.3 +#usr/share/man/man3/CURLOPT_INTERFACE.3 +#usr/share/man/man3/CURLOPT_INTERLEAVEDATA.3 +#usr/share/man/man3/CURLOPT_INTERLEAVEFUNCTION.3 +#usr/share/man/man3/CURLOPT_IOCTLDATA.3 +#usr/share/man/man3/CURLOPT_IOCTLFUNCTION.3 +#usr/share/man/man3/CURLOPT_IPRESOLVE.3 +#usr/share/man/man3/CURLOPT_ISSUERCERT.3 +#usr/share/man/man3/CURLOPT_KEYPASSWD.3 +#usr/share/man/man3/CURLOPT_KRBLEVEL.3 +#usr/share/man/man3/CURLOPT_LOCALPORT.3 +#usr/share/man/man3/CURLOPT_LOCALPORTRANGE.3 +#usr/share/man/man3/CURLOPT_LOGIN_OPTIONS.3 +#usr/share/man/man3/CURLOPT_LOW_SPEED_LIMIT.3 +#usr/share/man/man3/CURLOPT_LOW_SPEED_TIME.3 +#usr/share/man/man3/CURLOPT_MAIL_AUTH.3 +#usr/share/man/man3/CURLOPT_MAIL_FROM.3 +#usr/share/man/man3/CURLOPT_MAIL_RCPT.3 +#usr/share/man/man3/CURLOPT_MAXCONNECTS.3 +#usr/share/man/man3/CURLOPT_MAXFILESIZE.3 +#usr/share/man/man3/CURLOPT_MAXFILESIZE_LARGE.3 +#usr/share/man/man3/CURLOPT_MAXREDIRS.3 +#usr/share/man/man3/CURLOPT_MAX_RECV_SPEED_LARGE.3 +#usr/share/man/man3/CURLOPT_MAX_SEND_SPEED_LARGE.3 +#usr/share/man/man3/CURLOPT_NETRC.3 +#usr/share/man/man3/CURLOPT_NETRC_FILE.3 +#usr/share/man/man3/CURLOPT_NEW_DIRECTORY_PERMS.3 +#usr/share/man/man3/CURLOPT_NEW_FILE_PERMS.3 +#usr/share/man/man3/CURLOPT_NOBODY.3 +#usr/share/man/man3/CURLOPT_NOPROGRESS.3 +#usr/share/man/man3/CURLOPT_NOPROXY.3 +#usr/share/man/man3/CURLOPT_NOSIGNAL.3 +#usr/share/man/man3/CURLOPT_OPENSOCKETDATA.3 +#usr/share/man/man3/CURLOPT_OPENSOCKETFUNCTION.3 +#usr/share/man/man3/CURLOPT_PASSWORD.3 +#usr/share/man/man3/CURLOPT_PORT.3 +#usr/share/man/man3/CURLOPT_POST.3 +#usr/share/man/man3/CURLOPT_POSTFIELDS.3 +#usr/share/man/man3/CURLOPT_POSTFIELDSIZE.3 +#usr/share/man/man3/CURLOPT_POSTFIELDSIZE_LARGE.3 +#usr/share/man/man3/CURLOPT_POSTQUOTE.3 +#usr/share/man/man3/CURLOPT_POSTREDIR.3 +#usr/share/man/man3/CURLOPT_PREQUOTE.3 +#usr/share/man/man3/CURLOPT_PRIVATE.3 +#usr/share/man/man3/CURLOPT_PROGRESSDATA.3 +#usr/share/man/man3/CURLOPT_PROGRESSFUNCTION.3 +#usr/share/man/man3/CURLOPT_PROTOCOLS.3 +#usr/share/man/man3/CURLOPT_PROXY.3 +#usr/share/man/man3/CURLOPT_PROXYAUTH.3 +#usr/share/man/man3/CURLOPT_PROXYHEADER.3 +#usr/share/man/man3/CURLOPT_PROXYPASSWORD.3 +#usr/share/man/man3/CURLOPT_PROXYPORT.3 +#usr/share/man/man3/CURLOPT_PROXYTYPE.3 +#usr/share/man/man3/CURLOPT_PROXYUSERNAME.3 +#usr/share/man/man3/CURLOPT_PROXYUSERPWD.3 +#usr/share/man/man3/CURLOPT_PROXY_TRANSFER_MODE.3 +#usr/share/man/man3/CURLOPT_PUT.3 +#usr/share/man/man3/CURLOPT_QUOTE.3 +#usr/share/man/man3/CURLOPT_RANDOM_FILE.3 +#usr/share/man/man3/CURLOPT_RANGE.3 +#usr/share/man/man3/CURLOPT_READDATA.3 +#usr/share/man/man3/CURLOPT_READFUNCTION.3 +#usr/share/man/man3/CURLOPT_REDIR_PROTOCOLS.3 +#usr/share/man/man3/CURLOPT_REFERER.3 +#usr/share/man/man3/CURLOPT_RESOLVE.3 +#usr/share/man/man3/CURLOPT_RESUME_FROM.3 +#usr/share/man/man3/CURLOPT_RESUME_FROM_LARGE.3 +#usr/share/man/man3/CURLOPT_RTSP_CLIENT_CSEQ.3 +#usr/share/man/man3/CURLOPT_RTSP_REQUEST.3 +#usr/share/man/man3/CURLOPT_RTSP_SERVER_CSEQ.3 +#usr/share/man/man3/CURLOPT_RTSP_SESSION_ID.3 +#usr/share/man/man3/CURLOPT_RTSP_STREAM_URI.3 +#usr/share/man/man3/CURLOPT_RTSP_TRANSPORT.3 +#usr/share/man/man3/CURLOPT_SASL_IR.3 +#usr/share/man/man3/CURLOPT_SEEKDATA.3 +#usr/share/man/man3/CURLOPT_SEEKFUNCTION.3 +#usr/share/man/man3/CURLOPT_SHARE.3 +#usr/share/man/man3/CURLOPT_SOCKOPTDATA.3 +#usr/share/man/man3/CURLOPT_SOCKOPTFUNCTION.3 +#usr/share/man/man3/CURLOPT_SOCKS5_GSSAPI_NEC.3 +#usr/share/man/man3/CURLOPT_SOCKS5_GSSAPI_SERVICE.3 +#usr/share/man/man3/CURLOPT_SSH_AUTH_TYPES.3 +#usr/share/man/man3/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3 +#usr/share/man/man3/CURLOPT_SSH_KEYDATA.3 +#usr/share/man/man3/CURLOPT_SSH_KEYFUNCTION.3 +#usr/share/man/man3/CURLOPT_SSH_KNOWNHOSTS.3 +#usr/share/man/man3/CURLOPT_SSH_PRIVATE_KEYFILE.3 +#usr/share/man/man3/CURLOPT_SSH_PUBLIC_KEYFILE.3 +#usr/share/man/man3/CURLOPT_SSLCERT.3 +#usr/share/man/man3/CURLOPT_SSLCERTTYPE.3 +#usr/share/man/man3/CURLOPT_SSLENGINE.3 +#usr/share/man/man3/CURLOPT_SSLENGINE_DEFAULT.3 +#usr/share/man/man3/CURLOPT_SSLKEY.3 +#usr/share/man/man3/CURLOPT_SSLKEYTYPE.3 +#usr/share/man/man3/CURLOPT_SSLVERSION.3 +#usr/share/man/man3/CURLOPT_SSL_CIPHER_LIST.3 +#usr/share/man/man3/CURLOPT_SSL_CTX_DATA.3 +#usr/share/man/man3/CURLOPT_SSL_CTX_FUNCTION.3 +#usr/share/man/man3/CURLOPT_SSL_ENABLE_ALPN.3 +#usr/share/man/man3/CURLOPT_SSL_ENABLE_NPN.3 +#usr/share/man/man3/CURLOPT_SSL_OPTIONS.3 +#usr/share/man/man3/CURLOPT_SSL_SESSIONID_CACHE.3 +#usr/share/man/man3/CURLOPT_SSL_VERIFYHOST.3 +#usr/share/man/man3/CURLOPT_SSL_VERIFYPEER.3 +#usr/share/man/man3/CURLOPT_STDERR.3 +#usr/share/man/man3/CURLOPT_TCP_KEEPALIVE.3 +#usr/share/man/man3/CURLOPT_TCP_KEEPIDLE.3 +#usr/share/man/man3/CURLOPT_TCP_KEEPINTVL.3 +#usr/share/man/man3/CURLOPT_TCP_NODELAY.3 +#usr/share/man/man3/CURLOPT_TELNETOPTIONS.3 +#usr/share/man/man3/CURLOPT_TFTP_BLKSIZE.3 +#usr/share/man/man3/CURLOPT_TIMECONDITION.3 +#usr/share/man/man3/CURLOPT_TIMEOUT.3 +#usr/share/man/man3/CURLOPT_TIMEOUT_MS.3 +#usr/share/man/man3/CURLOPT_TIMEVALUE.3 +#usr/share/man/man3/CURLOPT_TLSAUTH_PASSWORD.3 +#usr/share/man/man3/CURLOPT_TLSAUTH_TYPE.3 +#usr/share/man/man3/CURLOPT_TLSAUTH_USERNAME.3 +#usr/share/man/man3/CURLOPT_TRANSFERTEXT.3 +#usr/share/man/man3/CURLOPT_TRANSFER_ENCODING.3 +#usr/share/man/man3/CURLOPT_UNIX_SOCKET_PATH.3 +#usr/share/man/man3/CURLOPT_UNRESTRICTED_AUTH.3 +#usr/share/man/man3/CURLOPT_UPLOAD.3 +#usr/share/man/man3/CURLOPT_URL.3 +#usr/share/man/man3/CURLOPT_USERAGENT.3 +#usr/share/man/man3/CURLOPT_USERNAME.3 +#usr/share/man/man3/CURLOPT_USERPWD.3 +#usr/share/man/man3/CURLOPT_USE_SSL.3 +#usr/share/man/man3/CURLOPT_VERBOSE.3 +#usr/share/man/man3/CURLOPT_WILDCARDMATCH.3 +#usr/share/man/man3/CURLOPT_WRITEDATA.3 +#usr/share/man/man3/CURLOPT_WRITEFUNCTION.3 +#usr/share/man/man3/CURLOPT_XFERINFODATA.3 +#usr/share/man/man3/CURLOPT_XFERINFOFUNCTION.3 +#usr/share/man/man3/CURLOPT_XOAUTH2_BEARER.3 #usr/share/man/man3/curl_easy_cleanup.3 #usr/share/man/man3/curl_easy_duphandle.3 #usr/share/man/man3/curl_easy_escape.3 diff --git a/lfs/curl b/lfs/curl index 715d79d07..0fd92c184 100644 --- a/lfs/curl +++ b/lfs/curl @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2015 Michael Tremer & Christian Schmidt # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 7.31.0 +VER = 7.40.0 THISAPP = curl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 6f26843f7e3a2fb06e02f68a55efe8c7 +$(DL_FILE)_MD5 = 58943642ea0ed050ab0431ea1caf3a6f install : $(TARGET) From 2e7c1bcb98af17284681b86435f8f753209aa292 Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Sun, 1 Feb 2015 17:17:32 +0100 Subject: [PATCH 025/210] expat: Update to 2.1.0 --- config/rootfiles/common/expat | 15 ++++++++------- lfs/expat | 10 +++++----- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/config/rootfiles/common/expat b/config/rootfiles/common/expat index 17081c415..aaa8265cc 100644 --- a/config/rootfiles/common/expat +++ b/config/rootfiles/common/expat @@ -5,10 +5,11 @@ #usr/lib/libexpat.la usr/lib/libexpat.so usr/lib/libexpat.so.1 -usr/lib/libexpat.so.1.5.0 -#usr/man/man1/xmlwf.1 -#usr/share/doc/expat-2.0.0 -#usr/share/doc/expat-2.0.0/expat.png -#usr/share/doc/expat-2.0.0/reference.html -#usr/share/doc/expat-2.0.0/style.css -#usr/share/doc/expat-2.0.0/valid-xhtml10.png +usr/lib/libexpat.so.1.6.0 +#usr/lib/pkgconfig/expat.pc +#usr/share/doc/expat-2.1.0 +#usr/share/doc/expat-2.1.0/expat.png +#usr/share/doc/expat-2.1.0/reference.html +#usr/share/doc/expat-2.1.0/style.css +#usr/share/doc/expat-2.1.0/valid-xhtml10.png +#usr/share/man/man1/xmlwf.1 diff --git a/lfs/expat b/lfs/expat index 8e4db7559..99e458d15 100644 --- a/lfs/expat +++ b/lfs/expat @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2014 Michael Tremer & Christian Schmidt # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 2.0.0 +VER = 2.1.0 THISAPP = expat-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = d945df7f1c0868c5c73cf66ba9596f3f +$(DL_FILE)_MD5 = dd7dab7a5fea97d2a6a43f511449b7cd install : $(TARGET) @@ -73,7 +73,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install - cd $(DIR_APP) && install -v -m755 -d /usr/share/doc/expat-2.0.0 - cd $(DIR_APP) && install -v -m644 doc/*.{html,png,css} /usr/share/doc/expat-2.0.0 + cd $(DIR_APP) && install -v -m755 -d /usr/share/doc/expat-2.1.0 + cd $(DIR_APP) && install -v -m644 doc/*.{html,png,css} /usr/share/doc/expat-2.1.0 @rm -rf $(DIR_APP) @$(POSTBUILD) From eea2501f5fe935eabd34781baff06beb7e275898 Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Sun, 1 Feb 2015 17:23:28 +0100 Subject: [PATCH 026/210] groff: Update to 1.22.3 --- config/rootfiles/common/groff | 180 ++++++++++++++++++++++------------ lfs/groff | 2 +- 2 files changed, 118 insertions(+), 64 deletions(-) diff --git a/config/rootfiles/common/groff b/config/rootfiles/common/groff index 714b4201b..de5908498 100644 --- a/config/rootfiles/common/groff +++ b/config/rootfiles/common/groff @@ -1,8 +1,52 @@ +#usr/bin/addftinfo +#usr/bin/afmtodit +#usr/bin/chem +#usr/bin/eqn +#usr/bin/eqn2graph +#usr/bin/gdiffmk +#usr/bin/geqn #usr/bin/glilypond #usr/bin/gperl #usr/bin/gpinyin +#usr/bin/grap2graph +#usr/bin/grn +#usr/bin/grodvi +#usr/bin/groff +#usr/bin/groffer +#usr/bin/grog +#usr/bin/grolbp +#usr/bin/grolj4 #usr/bin/gropdf +#usr/bin/grops +#usr/bin/grotty +#usr/bin/gtbl +#usr/bin/hpftodit +#usr/bin/indxbib +#usr/bin/lkbib +#usr/bin/lookbib +#usr/bin/mmroff +#usr/bin/neqn +#usr/bin/nroff #usr/bin/pdfmom +#usr/bin/pdfroff +#usr/bin/pfbtops +#usr/bin/pic +#usr/bin/pic2graph +#usr/bin/post-grohtml +#usr/bin/pre-grohtml +#usr/bin/preconv +#usr/bin/refer +#usr/bin/roff2dvi +#usr/bin/roff2html +#usr/bin/roff2pdf +#usr/bin/roff2ps +#usr/bin/roff2text +#usr/bin/roff2x +#usr/bin/soelim +#usr/bin/tbl +#usr/bin/tfmtodit +#usr/bin/troff +#usr/lib/groff #usr/lib/groff/glilypond #usr/lib/groff/glilypond/args.pl #usr/lib/groff/glilypond/oop_fh.pl @@ -11,11 +55,16 @@ #usr/lib/groff/gpinyin/subs.pl #usr/lib/groff/groff_opts_no_arg.txt #usr/lib/groff/groff_opts_with_arg.txt +#usr/lib/groff/groffer #usr/lib/groff/groffer/main_subs.pl +#usr/lib/groff/groffer/man.pl +#usr/lib/groff/groffer/split_env.sh #usr/lib/groff/groffer/subs.pl +#usr/lib/groff/groffer/version.sh #usr/lib/groff/grog #usr/lib/groff/grog/subs.pl #usr/lib/groff/refer +#usr/lib/groff/site-tmac #usr/share/doc/groff-1.22.3 #usr/share/doc/groff-1.22.3/examples #usr/share/doc/groff-1.22.3/examples/chem @@ -109,16 +158,12 @@ #usr/share/doc/groff-1.22.3/examples/mom/elvis_syntax #usr/share/doc/groff-1.22.3/examples/mom/elvis_syntax.new #usr/share/doc/groff-1.22.3/examples/mom/letter.mom -#usr/share/doc/groff-1.22.3/examples/mom/letter.pdf #usr/share/doc/groff-1.22.3/examples/mom/mom-pdf.mom -#usr/share/doc/groff-1.22.3/examples/mom/mom-pdf.pdf #usr/share/doc/groff-1.22.3/examples/mom/mom.vim #usr/share/doc/groff-1.22.3/examples/mom/penguin.pdf #usr/share/doc/groff-1.22.3/examples/mom/penguin.ps #usr/share/doc/groff-1.22.3/examples/mom/sample_docs.mom -#usr/share/doc/groff-1.22.3/examples/mom/sample_docs.pdf #usr/share/doc/groff-1.22.3/examples/mom/typesetting.mom -#usr/share/doc/groff-1.22.3/examples/mom/typesetting.pdf #usr/share/doc/groff-1.22.3/examples/webpage.ms #usr/share/doc/groff-1.22.3/examples/webpage.ps #usr/share/doc/groff-1.22.3/html @@ -152,11 +197,9 @@ #usr/share/doc/groff-1.22.3/meintro_fr.ps #usr/share/doc/groff-1.22.3/meref.me #usr/share/doc/groff-1.22.3/meref.ps -#usr/share/doc/groff-1.22.3/pdf -#usr/share/doc/groff-1.22.3/pdf/mom-pdf.pdf -#usr/share/doc/groff-1.22.3/pdf/pdfmark.pdf #usr/share/doc/groff-1.22.3/pic.ms #usr/share/doc/groff-1.22.3/pic.ps +#usr/share/groff #usr/share/groff/1.22.3 #usr/share/groff/1.22.3/eign #usr/share/groff/1.22.3/font @@ -312,14 +355,6 @@ #usr/share/groff/1.22.3/font/devlj4/generate/text.map #usr/share/groff/1.22.3/font/devlj4/generate/wingdings.map #usr/share/groff/1.22.3/font/devpdf -#usr/share/groff/1.22.3/font/devpdf/AB -#usr/share/groff/1.22.3/font/devpdf/ABI -#usr/share/groff/1.22.3/font/devpdf/AI -#usr/share/groff/1.22.3/font/devpdf/AR -#usr/share/groff/1.22.3/font/devpdf/BMB -#usr/share/groff/1.22.3/font/devpdf/BMBI -#usr/share/groff/1.22.3/font/devpdf/BMI -#usr/share/groff/1.22.3/font/devpdf/BMR #usr/share/groff/1.22.3/font/devpdf/CB #usr/share/groff/1.22.3/font/devpdf/CBI #usr/share/groff/1.22.3/font/devpdf/CI @@ -330,60 +365,12 @@ #usr/share/groff/1.22.3/font/devpdf/HB #usr/share/groff/1.22.3/font/devpdf/HBI #usr/share/groff/1.22.3/font/devpdf/HI -#usr/share/groff/1.22.3/font/devpdf/HNB -#usr/share/groff/1.22.3/font/devpdf/HNBI -#usr/share/groff/1.22.3/font/devpdf/HNI -#usr/share/groff/1.22.3/font/devpdf/HNR #usr/share/groff/1.22.3/font/devpdf/HR -#usr/share/groff/1.22.3/font/devpdf/NB -#usr/share/groff/1.22.3/font/devpdf/NBI -#usr/share/groff/1.22.3/font/devpdf/NI -#usr/share/groff/1.22.3/font/devpdf/NR -#usr/share/groff/1.22.3/font/devpdf/PB -#usr/share/groff/1.22.3/font/devpdf/PBI -#usr/share/groff/1.22.3/font/devpdf/PI -#usr/share/groff/1.22.3/font/devpdf/PR #usr/share/groff/1.22.3/font/devpdf/S #usr/share/groff/1.22.3/font/devpdf/TB #usr/share/groff/1.22.3/font/devpdf/TBI #usr/share/groff/1.22.3/font/devpdf/TI #usr/share/groff/1.22.3/font/devpdf/TR -#usr/share/groff/1.22.3/font/devpdf/U-AB -#usr/share/groff/1.22.3/font/devpdf/U-ABI -#usr/share/groff/1.22.3/font/devpdf/U-AI -#usr/share/groff/1.22.3/font/devpdf/U-AR -#usr/share/groff/1.22.3/font/devpdf/U-BMB -#usr/share/groff/1.22.3/font/devpdf/U-BMBI -#usr/share/groff/1.22.3/font/devpdf/U-BMI -#usr/share/groff/1.22.3/font/devpdf/U-BMR -#usr/share/groff/1.22.3/font/devpdf/U-CB -#usr/share/groff/1.22.3/font/devpdf/U-CBI -#usr/share/groff/1.22.3/font/devpdf/U-CI -#usr/share/groff/1.22.3/font/devpdf/U-CR -#usr/share/groff/1.22.3/font/devpdf/U-HB -#usr/share/groff/1.22.3/font/devpdf/U-HBI -#usr/share/groff/1.22.3/font/devpdf/U-HI -#usr/share/groff/1.22.3/font/devpdf/U-HNB -#usr/share/groff/1.22.3/font/devpdf/U-HNBI -#usr/share/groff/1.22.3/font/devpdf/U-HNI -#usr/share/groff/1.22.3/font/devpdf/U-HNR -#usr/share/groff/1.22.3/font/devpdf/U-HR -#usr/share/groff/1.22.3/font/devpdf/U-NB -#usr/share/groff/1.22.3/font/devpdf/U-NBI -#usr/share/groff/1.22.3/font/devpdf/U-NI -#usr/share/groff/1.22.3/font/devpdf/U-NR -#usr/share/groff/1.22.3/font/devpdf/U-PB -#usr/share/groff/1.22.3/font/devpdf/U-PBI -#usr/share/groff/1.22.3/font/devpdf/U-PI -#usr/share/groff/1.22.3/font/devpdf/U-PR -#usr/share/groff/1.22.3/font/devpdf/U-S -#usr/share/groff/1.22.3/font/devpdf/U-TB -#usr/share/groff/1.22.3/font/devpdf/U-TBI -#usr/share/groff/1.22.3/font/devpdf/U-TI -#usr/share/groff/1.22.3/font/devpdf/U-TR -#usr/share/groff/1.22.3/font/devpdf/U-ZCMI -#usr/share/groff/1.22.3/font/devpdf/U-ZD -#usr/share/groff/1.22.3/font/devpdf/ZCMI #usr/share/groff/1.22.3/font/devpdf/ZD #usr/share/groff/1.22.3/font/devpdf/download #usr/share/groff/1.22.3/font/devpdf/enc @@ -584,9 +571,76 @@ #usr/share/groff/1.22.3/tmac/tty.tmac #usr/share/groff/1.22.3/tmac/unicode.tmac #usr/share/groff/1.22.3/tmac/www.tmac +#usr/share/groff/current +#usr/share/groff/site-font +#usr/share/groff/site-tmac +#usr/share/groff/site-tmac/man.local +#usr/share/groff/site-tmac/mdoc.local +#usr/share/info/groff.info +#usr/share/info/groff.info-1 +#usr/share/info/groff.info-2 +#usr/share/man/man1/addftinfo.1 +#usr/share/man/man1/afmtodit.1 +#usr/share/man/man1/chem.1 +#usr/share/man/man1/eqn.1 +#usr/share/man/man1/eqn2graph.1 +#usr/share/man/man1/gdiffmk.1 #usr/share/man/man1/glilypond.1 #usr/share/man/man1/gperl.1 #usr/share/man/man1/gpinyin.1 +#usr/share/man/man1/grap2graph.1 +#usr/share/man/man1/grn.1 +#usr/share/man/man1/grodvi.1 +#usr/share/man/man1/groff.1 +#usr/share/man/man1/groffer.1 +#usr/share/man/man1/grog.1 +#usr/share/man/man1/grohtml.1 +#usr/share/man/man1/grolbp.1 +#usr/share/man/man1/grolj4.1 #usr/share/man/man1/gropdf.1 +#usr/share/man/man1/grops.1 +#usr/share/man/man1/grotty.1 +#usr/share/man/man1/hpftodit.1 +#usr/share/man/man1/indxbib.1 +#usr/share/man/man1/lkbib.1 +#usr/share/man/man1/lookbib.1 +#usr/share/man/man1/mmroff.1 +#usr/share/man/man1/neqn.1 +#usr/share/man/man1/nroff.1 #usr/share/man/man1/pdfmom.1 +#usr/share/man/man1/pdfroff.1 +#usr/share/man/man1/pfbtops.1 +#usr/share/man/man1/pic.1 +#usr/share/man/man1/pic2graph.1 +#usr/share/man/man1/preconv.1 +#usr/share/man/man1/refer.1 +#usr/share/man/man1/roff2dvi.1 +#usr/share/man/man1/roff2html.1 +#usr/share/man/man1/roff2pdf.1 +#usr/share/man/man1/roff2ps.1 +#usr/share/man/man1/roff2text.1 +#usr/share/man/man1/roff2x.1 +#usr/share/man/man1/soelim.1 +#usr/share/man/man1/tbl.1 +#usr/share/man/man1/tfmtodit.1 +#usr/share/man/man1/troff.1 +#usr/share/man/man5/groff_font.5 +#usr/share/man/man5/groff_out.5 +#usr/share/man/man5/groff_tmac.5 +#usr/share/man/man5/lj4_font.5 +#usr/share/man/man7/ditroff.7 +#usr/share/man/man7/groff.7 +#usr/share/man/man7/groff_char.7 +#usr/share/man/man7/groff_diff.7 #usr/share/man/man7/groff_filenames.7 +#usr/share/man/man7/groff_hdtbl.7 +#usr/share/man/man7/groff_man.7 +#usr/share/man/man7/groff_mdoc.7 +#usr/share/man/man7/groff_me.7 +#usr/share/man/man7/groff_mm.7 +#usr/share/man/man7/groff_mmse.7 +#usr/share/man/man7/groff_mom.7 +#usr/share/man/man7/groff_ms.7 +#usr/share/man/man7/groff_trace.7 +#usr/share/man/man7/groff_www.7 +#usr/share/man/man7/roff.7 diff --git a/lfs/groff b/lfs/groff index a303c684a..a0bb0bd3f 100644 --- a/lfs/groff +++ b/lfs/groff @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2014 IPFire Team # +# Copyright (C) 2007-2015 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # From 4313aa18e9e3b3f6717946b88c8a67f79dea40be Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 8 Feb 2015 13:37:06 +0100 Subject: [PATCH 027/210] fwhosts.cgi: Add support for GeoIP groups. --- html/cgi-bin/fwhosts.cgi | 531 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 530 insertions(+), 1 deletion(-) diff --git a/html/cgi-bin/fwhosts.cgi b/html/cgi-bin/fwhosts.cgi index c3642f0f0..395dca83c 100644 --- a/html/cgi-bin/fwhosts.cgi +++ b/html/cgi-bin/fwhosts.cgi @@ -27,6 +27,8 @@ use Sort::Naturally; use CGI::Carp 'fatalsToBrowser'; no warnings 'uninitialized'; require '/var/ipfire/general-functions.pl'; +require "/var/ipfire/geoip-functions.pl"; +require "/usr/lib/firewall/firewall-lib.pl"; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; @@ -36,6 +38,7 @@ my %customhost=(); my %customgrp=(); my %customservice=(); my %customservicegrp=(); +my %customgeoipgrp=(); my %ccdnet=(); my %ccdhost=(); my %ipsecconf=(); @@ -62,6 +65,7 @@ my $configccdhost = "${General::swroot}/ovpn/ovpnconfig"; my $configipsec = "${General::swroot}/vpn/config"; my $configsrv = "${General::swroot}/fwhosts/customservices"; my $configsrvgrp = "${General::swroot}/fwhosts/customservicegrp"; +my $configgeoipgrp = "${General::swroot}/fwhosts/customgeoipgrp"; my $fwconfigfwd = "${General::swroot}/firewall/config"; my $fwconfiginp = "${General::swroot}/firewall/input"; my $fwconfigout = "${General::swroot}/firewall/outgoing"; @@ -73,6 +77,7 @@ unless (-e $confighost) { system("touch $confighost"); } unless (-e $configgrp) { system("touch $configgrp"); } unless (-e $configsrv) { system("touch $configsrv"); } unless (-e $configsrvgrp) { system("touch $configsrvgrp"); } +unless (-e $configgeoipgrp) { system("touch $configgeoipgrp"); } &General::readhash("${General::swroot}/main/settings", \%mainsettings); &General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color); @@ -671,6 +676,84 @@ if ($fwhostsettings{'ACTION'} eq 'savegrp') &addgrp; &viewtablegrp; } +if ($fwhostsettings{'ACTION'} eq 'savegeoipgrp') +{ + my $grp=$fwhostsettings{'grp_name'}; + my $rem=$fwhostsettings{'remark'}; + my $count; + my $type; + my @target; + my @newgrp; + &General::readhasharray("$configgeoipgrp", \%customgeoipgrp); + + # Check for existing group name. + if (!&checkgroup($grp) && $fwhostsettings{'update'} ne 'on'){ + $errormessage = $Lang::tr{'fwhost err grpexist'}; + } + + # Check remark. + if ($rem ne '' && !&validremark($rem) && $fwhostsettings{'update'} ne 'on'){ + $errormessage = $Lang::tr{'fwhost err remark'}; + } + + if ($fwhostsettings{'update'} eq 'on'){ + @target=$fwhostsettings{'COUNTRY_CODE'}; + $type='GeoIP Group'; + + #check if host/net exists in grp + my $test="$grp,$fwhostsettings{'oldremark'},@target"; + foreach my $key (keys %customgeoipgrp) { + my $test1="$customgeoipgrp{$key}[0],$customgeoipgrp{$key}[1],$customgeoipgrp{$key}[2]"; + if ($test1 eq $test){ + $errormessage=$Lang::tr{'fwhost err isingrp'}; + $fwhostsettings{'update'} = 'on'; + } + } + } + + if (!$errormessage){ + #on first save, we have an empty @target, so fill it with nothing + my $targetvalues=@target; + if ($targetvalues == '0'){ + @target="none"; + } + #on update, we have to delete the dummy entry + foreach my $key (keys %customgeoipgrp){ + if ($customgeoipgrp{$key}[0] eq $grp && $customgeoipgrp{$key}[2] eq "none"){ + delete $customgeoipgrp{$key}; + last; + } + } + &General::writehasharray("$configgeoipgrp", \%customgeoipgrp); + &General::readhasharray("$configgeoipgrp", \%customgeoipgrp); + #create array with new lines + foreach my $line (@target){ + push (@newgrp,"$grp,$rem,$line"); + } + #append new entries + my $key = &General::findhasharraykey (\%customgeoipgrp); + foreach my $line (@newgrp){ + foreach my $i (0 .. 3) { $customgeoipgrp{$key}[$i] = "";} + my ($a,$b,$c,$d) = split (",",$line); + $customgeoipgrp{$key}[0] = $a; + $customgeoipgrp{$key}[1] = $b; + $customgeoipgrp{$key}[2] = $c; + $customgeoipgrp{$key}[3] = $type; + } + &General::writehasharray("$configgeoipgrp", \%customgeoipgrp); + #update counter in Host/Net + $fwhostsettings{'update'}='on'; + } + #check if ruleupdate is needed + my $geoipgrpcount=0; + $geoipgrpcount=&getgeoipcount($grp); + if($geoipgrpcount > 0 ) + { + &General::firewall_config_changed(); + } + &addgeoipgrp; + &viewtablegeoipgrp; +} if ($fwhostsettings{'ACTION'} eq 'saveservice') { my $ICMP; @@ -798,6 +881,12 @@ if ($fwhostsettings{'ACTION'} eq 'editgrp') &addgrp; &viewtablegrp; } +if ($fwhostsettings{'ACTION'} eq 'editgeoipgrp') +{ + $fwhostsettings{'update'}='on'; + &addgeoipgrp; + &viewtablegeoipgrp; +} if ($fwhostsettings{'ACTION'} eq 'editservice') { $fwhostsettings{'updatesrv'}='on'; @@ -830,6 +919,12 @@ if ($fwhostsettings{'ACTION'} eq 'resetgrp') $fwhostsettings{'remark'} =""; &showmenu; } +if ($fwhostsettings{'ACTION'} eq 'resetgeoipgrp') +{ + $fwhostsettings{'grp_name'} =""; + $fwhostsettings{'remark'} =""; + &showmenu; +} # delete if ($fwhostsettings{'ACTION'} eq 'delnet') { @@ -887,6 +982,37 @@ if ($fwhostsettings{'ACTION'} eq 'deletegrphost') &addgrp; &viewtablegrp; } +if ($fwhostsettings{'ACTION'} eq 'deletegeoipgrpentry') +{ + my $grpremark; + my $grpname; + &General::readhasharray("$configgeoipgrp", \%customgeoipgrp); + foreach my $key (keys %customgeoipgrp){ + if($customgeoipgrp{$key}[0].",".$customgeoipgrp{$key}[1].",".$customgeoipgrp{$key}[2].",".$customgeoipgrp{$key}[3] eq $fwhostsettings{'delentry'}){ + $grpname=$customgeoipgrp{$key}[0]; + $grpremark=$customgeoipgrp{$key}[1]; + #check if we delete the last entry, then generate dummy + if ($fwhostsettings{'last'} eq 'on'){ + $customgeoipgrp{$key}[1] = ''; + $customgeoipgrp{$key}[2] = 'none'; + $customgeoipgrp{$key}[3] = ''; + $fwhostsettings{'last'}=''; + last; + }else{ + delete $customgeoipgrp{$key}; + } + } + } + &General::writehasharray("$configgeoipgrp", \%customgeoipgrp); + &General::firewall_config_changed(); + if ($fwhostsettings{'update'} eq 'on'){ + $fwhostsettings{'remark'}= $grpremark; + $fwhostsettings{'grp_name'}=$grpname; + } + &addgeoipgrp; + &viewtablegeoipgrp; +} + if ($fwhostsettings{'ACTION'} eq 'delgrp') { &General::readhasharray("$configgrp", \%customgrp); @@ -903,6 +1029,22 @@ if ($fwhostsettings{'ACTION'} eq 'delgrp') &addgrp; &viewtablegrp; } +if ($fwhostsettings{'ACTION'} eq 'delgeoipgrp') +{ + &General::readhasharray("$configgeoipgrp", \%customgeoipgrp); + &decrease($fwhostsettings{'grp_name'}); + foreach my $key (sort keys %customgeoipgrp) + { + if($customgeoipgrp{$key}[0] eq $fwhostsettings{'grp_name'}) + { + delete $customgeoipgrp{$key}; + } + } + &General::writehasharray("$configgeoipgrp", \%customgeoipgrp); + $fwhostsettings{'grp_name'}=''; + &addgeoipgrp; + &viewtablegeoipgrp; +} if ($fwhostsettings{'ACTION'} eq 'delservice') { &General::readhasharray("$configsrv", \%customservice); @@ -977,6 +1119,11 @@ if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newgrp'}) &addgrp; &viewtablegrp; } +if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newgeoipgrp'}) +{ + &addgeoipgrp; + &viewtablegeoipgrp; +} if ($fwhostsettings{'ACTION'} eq $Lang::tr{'fwhost newservice'}) { &addservice; @@ -1011,6 +1158,31 @@ if ($fwhostsettings{'ACTION'} eq 'changegrpremark') &addgrp; &viewtablegrp; } +if ($fwhostsettings{'ACTION'} eq 'changegeoipgrpremark') +{ + &General::readhasharray("$configgeoipgrp", \%customgeoipgrp); + if ($fwhostsettings{'oldrem'} ne $fwhostsettings{'newrem'} && (&validremark($fwhostsettings{'newrem'}) || $fwhostsettings{'newrem'} eq '')){ + foreach my $key (sort keys %customgeoipgrp) + { + if($customgeoipgrp{$key}[0] eq $fwhostsettings{'grp'} && $customgeoipgrp{$key}[1] eq $fwhostsettings{'oldrem'}) + { + $customgeoipgrp{$key}[1]=''; + $customgeoipgrp{$key}[1]=$fwhostsettings{'newrem'}; + } + } + &General::writehasharray("$configgeoipgrp", \%customgeoipgrp); + $fwhostsettings{'update'}='on'; + $fwhostsettings{'remark'}=$fwhostsettings{'newrem'}; + }else{ + $errormessage=$Lang::tr{'fwhost err remark'}; + $fwhostsettings{'remark'}=$fwhostsettings{'oldrem'}; + $fwhostsettings{'grp_name'}=$fwhostsettings{'grp'}; + $fwhostsettings{'update'} = 'on'; + } + $fwhostsettings{'grp_name'}=$fwhostsettings{'grp'}; + &addgeoipgrp; + &viewtablegeoipgrp; +} if ($fwhostsettings{'ACTION'} eq 'changesrvgrpremark') { &General::readhasharray("$configsrvgrp", \%customservicegrp ); @@ -1085,6 +1257,29 @@ if ($fwhostsettings{'ACTION'} eq 'changegrpname') &addgrp; &viewtablegrp; } +if ($fwhostsettings{'ACTION'} eq 'changegeoipgrpname') +{ + &General::readhasharray("$configgeoipgrp", \%customgeoipgrp ); + if ($fwhostsettings{'oldgrpname'} ne $fwhostsettings{'grp'}){ + #Check new groupname + if (!&validhostname($fwhostsettings{'grp'})){ + $errormessage.=$Lang::tr{'fwhost err name'}."
"; + } + if (!$errormessage){ + # Rename group. + foreach my $key (keys %customgeoipgrp) { + if($customgeoipgrp{$key}[0] eq $fwhostsettings{'oldgrpname'}){ + $customgeoipgrp{$key}[0]=$fwhostsettings{'grp'}; + } + } + &General::writehasharray("$configgeoipgrp", \%customgeoipgrp ); + #change name in FW Rules + &changenameinfw($fwhostsettings{'oldgrpname'},$fwhostsettings{'grp'},6); + } + } + &addgeoipgrp; + &viewtablegeoipgrp; +} ### VIEW ### if($fwhostsettings{'ACTION'} eq '') { @@ -1096,7 +1291,7 @@ sub showmenu { print "$Lang::tr{'fwhost welcome'}"; print<
- +
END @@ -1381,6 +1576,113 @@ END print"
"; &Header::closebox(); } +sub addgeoipgrp +{ + &hint; + &error; + &showmenu; + &Header::openbox('100%', 'left', $Lang::tr{'fwhost addgeoipgrp'}); + + my %checked=(); + my $show=''; + $checked{'check1'}{'off'} = ''; + $checked{'check1'}{'on'} = ''; + $checked{'grp2'}{$fwhostsettings{'grp2'}} = 'CHECKED'; + $fwhostsettings{'oldremark'}=$fwhostsettings{'remark'}; + $fwhostsettings{'oldgrpname'}=$fwhostsettings{'grp_name'}; + my $grp=$fwhostsettings{'grp_name'}; + my $rem=$fwhostsettings{'remark'}; + if ($fwhostsettings{'update'} eq ''){ + print< + + $Lang::tr{'fwhost addgrpname'} +
+ + + $Lang::tr{'remark'}: + + + +
+ + +END + } else { + print< + + $Lang::tr{'fwhost addgrpname'} + + + + + + + + +
+ $Lang::tr{'remark'}: + + + + + + + + + +
+ +

+END + } + if ($fwhostsettings{'update'} eq 'on') { + my @geoip_locations = &fwlib::get_geoip_locations(); + + print< + + + + + + + +
+
+

+END + } + print < + + + + + + + +
+ + + + +
+ +END + &Header::closebox(); +} sub addservice { &error; @@ -1838,6 +2140,195 @@ sub viewtablegrp &Header::closebox(); } +} +sub viewtablegeoipgrp +{ + # If our filesize is "zero" there is nothing to read-in. + if (-z "$configgeoipgrp") { + return; + } + + &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust geoipgrp'}); + &General::readhasharray("$configgeoipgrp", \%customgeoipgrp); + &General::readhasharray("$fwconfigfwd", \%fwfwd); + &General::readhasharray("$fwconfiginp", \%fwinp); + &General::readhasharray("$fwconfigout", \%fwout); + my @grp=(); + my $helper=''; + my $count=1; + my $country_code; + my $grpname; + my $remark; + my $number; + my $delflag; + my @counter; + my %hash; + + # If there are no groups we are finished here. + if (!keys %customgeoipgrp) { + print "
$Lang::tr{'fwhost err emptytable'}"; + return; + } + + # Put all groups in a hash. + foreach my $key (sort { ncmp($customgeoipgrp{$a}[0],$customgeoipgrp{$b}[0]) } + sort { ncmp($customgeoipgrp{$a}[2],$customgeoipgrp{$b}[2]) } keys %customgeoipgrp) { + push (@counter,$customgeoipgrp{$key}[0]); + } + + # Increase current used key. + foreach my $key1 (@counter) { + $hash{$key1}++ ; + } + + # Sort hash. + foreach my $key (sort { ncmp($customgeoipgrp{$a}[0],$customgeoipgrp{$b}[0]) } + sort { ncmp($customgeoipgrp{$a}[2],$customgeoipgrp{$b}[2]) } keys %customgeoipgrp) { + $count++; + if ($helper ne $customgeoipgrp{$key}[0]) { + $delflag='0'; + + foreach my $key1 (sort { ncmp($customgeoipgrp{$a}[0],$customgeoipgrp{$b}[0]) } + sort { ncmp($customgeoipgrp{$a}[2],$customgeoipgrp{$b}[2]) } keys %customgeoipgrp) { + + if ($customgeoipgrp{$key}[0] eq $customgeoipgrp{$key1}[0]) + { + $delflag++; + } + if($delflag > 1){ + last; + } + } + + $number=1; + + # Groupname. + $grpname=$customgeoipgrp{$key}[0]; + + # Group remark. + $remark="$customgeoipgrp{$key}[1]"; + + # Country code. + $country_code="$customgeoipgrp{$key}[2]"; + + if ($count gt 1){ + print""; + $count=1; + } + + # Display groups header. + print "
$grpname   \n"; + print "$Lang::tr{'remark'}:  $remark  \n" if ($remark ne ''); + + # Get group count. + my $geoipgrpcount=&getgeoipcount($grpname); + print "$Lang::tr{'used'}: $geoipgrpcount x"; + + # Only display delete icon, if the group is not used by a firewall rule. + if($geoipgrpcount == '0') { + print"
\n"; + print"\n"; + print"\n"; + print"\n"; + print"
"; + } + + # Icon for group editing. +print < + + + + + + + +END + # Display headlines if the group contains any entries. + if ($country_code ne "none") { +print < + + + + + + + + +END + } + } + + # Check if our group contains any entries. + if ($country_code eq "none") { + print "\n"; + } else { + # Check if we are currently editing a group and assign column backgound colors. + my $col=''; + if ( ($fwhostsettings{'ACTION'} eq 'editgeoipgrp' || $fwhostsettings{'update'} ne '') + && $fwhostsettings{'grp_name'} eq $customgeoipgrp{$key}[0]) { + $col="bgcolor='${Header::colouryellow}'"; + } elsif ($count %2 == 0){ + $col="bgcolor='$color{'color20'}'"; + } else { + $col="bgcolor='$color{'color22'}'"; + } + + # Get country flag. + my $icon = &GeoIP::get_flag_icon($customgeoipgrp{$key}[2]); + + # Print column with flag icon. + my $col_content; + if ($icon) { + $col_content = "$customgeoipgrp{$key}[2]"; + } else { + $col_content = "N/A"; + } + + print "\n"; + + # Print column with country code. + print "\n"; + + # Print column with full country name. + my $country_name = &GeoIP::get_full_country_name($customgeoipgrp{$key}[2]); + print "\n"; + + # Generate from for removing entries from a group. + print "\n"; + print "\n"; + } + + $helper=$customgeoipgrp{$key}[0]; + $number++; + } + + print"
+ $Lang::tr{'flag'} + + $Lang::tr{'countrycode'} + + $Lang::tr{'country'} +
$Lang::tr{'fwhost err emptytable'}
$col_content$customgeoipgrp{$key}[2]$country_name
\n"; + + if ($delflag > 0){ + print"\n"; + + # Check if this group only has a single entry. + foreach my $key2 (keys %hash) { + if ($hash{$key2}<2 && $key2 eq $customgeoipgrp{$key}[0]){ + print "" ; + } + } + } + + print "\n"; + print "\n"; + print "\n"; + print "
\n"; + print "
\n"; + &Header::closebox(); } sub viewtableservice { @@ -2196,6 +2687,44 @@ sub gethostcount } return $srvcounter; } +sub getgeoipcount +{ + my $groupname=shift; + my $counter=0; + + # GeoIP groups are stored as "group:groupname" in the + # firewall settings files. + my $searchstring = join(':', "group",$groupname); + + # Count services used in firewall - forward + foreach my $key1 (keys %fwfwd) { + if($fwfwd{$key1}[4] eq $searchstring){ + $counter++; + } + if($fwfwd{$key1}[6] eq $searchstring){ + $counter++; + } + } + #Count services used in firewall - input + foreach my $key2 (keys %fwinp) { + if($fwinp{$key2}[4] eq $searchstring){ + $counter++; + } + if($fwinp{$key2}[6] eq $searchstring){ + $counter++; + } + } + #Count services used in firewall - outgoing + foreach my $key3 (keys %fwout) { + if($fwout{$key3}[4] eq $searchstring){ + $counter++; + } + if($fwout{$key3}[6] eq $searchstring){ + $counter++; + } + } + return $counter; +} sub getnetcount { my $searchstring=shift; From 8996f5a3bb3f6daa9df6190042bb0927d5f5b470 Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Sun, 8 Feb 2015 14:22:03 +0100 Subject: [PATCH 028/210] acpid: Update to 2.0.23 --- lfs/acpid | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lfs/acpid b/lfs/acpid index ff85e1cb5..686fadad1 100644 --- a/lfs/acpid +++ b/lfs/acpid @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2015 Michael Tremer & Christian Schmidt # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 2.0.16 +VER = 2.0.23 THISAPP = acpid-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -41,7 +41,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = d59fc02c9c34f0d5c137495302e2c074 +$(DL_FILE)_MD5 = d7bcdcdefcd53b03730e50ba842554ea install : $(TARGET) From d5781436789241a7891dbdd80d4b256c76d9aedf Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Sun, 8 Feb 2015 14:35:49 +0100 Subject: [PATCH 029/210] libjpeg: Update to 1.3.1 --- lfs/libjpeg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lfs/libjpeg b/lfs/libjpeg index 5e0785926..8b4c0778c 100644 --- a/lfs/libjpeg +++ b/lfs/libjpeg @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2015 Michael Tremer & Christian Schmidt # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 1.3.0 +VER = 1.3.1 THISAPP = libjpeg-turbo-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -42,7 +42,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = e1e65cc711a1ade1322c06ad4a647741 +$(DL_FILE)_MD5 = 2c3a68129dac443a72815ff5bb374b05 install : $(TARGET) From 2b7fe21aa71ff782dc36e0400cc3367d2f106e47 Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Sun, 8 Feb 2015 15:04:35 +0100 Subject: [PATCH 030/210] nasm: Update to 2.11.06 --- lfs/nasm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lfs/nasm b/lfs/nasm index f6aeac7a8..b77e7cbfd 100644 --- a/lfs/nasm +++ b/lfs/nasm @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2015 Michael Tremer & Christian Schmidt # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 2.10.03 +VER = 2.11.06 THISAPP = nasm-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = a5d0ed070476a7c5b4f0893dc4a4ea4b +$(DL_FILE)_MD5 = 2b958e9f5d200641e6fc9564977aecc5 install : $(TARGET) From 1dcd87157d4b52ee304094a586674dcb4919c3ba Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 8 Feb 2015 18:23:01 +0100 Subject: [PATCH 031/210] geoip-functions.pl: A collection of functions dealing with GeoIP. --- config/cfgroot/general-functions.pl | 26 --------- config/cfgroot/geoip-functions.pl | 90 +++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 26 deletions(-) create mode 100644 config/cfgroot/geoip-functions.pl diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index bd5ad0ac8..29f7e8c6b 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -1124,30 +1124,4 @@ sub get_red_interface() { return $interface; } -# Function to get the county name by a given country code. -sub get_full_country_name($) { - my ($input) = @_; - my $name; - - # Remove whitespaces. - chomp($input); - - # Convert input into lower case format. - my $code = lc($input); - - # Handle country codes which are not in the list. - if ($code eq "a1") { $name = "Anonymous Proxy" } - elsif ($code eq "a2") { $name = "Satellite Provider" } - elsif ($code eq "o1") { $name = "Other Country" } - elsif ($code eq "ap") { $name = "Asia/Pacific Region" } - elsif ($code eq "eu") { $name = "Europe" } - elsif ($code eq "yu") { $name = "Yugoslavia" } - else { - # Use perl built-in module to get the country code. - $name = &Locale::Country::code2country($code); - } - - return $name; -} - 1; diff --git a/config/cfgroot/geoip-functions.pl b/config/cfgroot/geoip-functions.pl new file mode 100644 index 000000000..68b6f503d --- /dev/null +++ b/config/cfgroot/geoip-functions.pl @@ -0,0 +1,90 @@ +#!/usr/bin/perl -w +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2015 IPFire Team . # +# # +############################################################################ + +package GeoIP; + +use Locale::Country; + +# Function to get the flag icon for a specified country code. +sub get_flag_icon($) { + my ($input) = @_; + + # Webserver's root dir. (Required for generating full path) + my $webroot = "/srv/web/ipfire/html"; + + # Directory which contains the flag icons. + my $flagdir = "/images/flags"; + + # File extension of the country flags. + my $ext = "png"; + + # Remove whitespaces. + chomp($input); + + # Convert given country code to lower case. + my $ccode = lc($input); + + # Generate filename, based on the contry code in lower case + # and the defined file extension. + my $file = join('.', $ccode,$ext); + + # Generate path inside webroot to the previously generated file. + my $flag_icon = join('/', $flagdir,$file); + + # Generate absolute path to the icon file. + my $absolute_path = join('', $webroot,$flag_icon); + + # Check if the a icon file exists. + if (-e "$absolute_path") { + # Return content of flag_icon. + return $flag_icon; + } +} + +# Function to get the county name by a given country code. +sub get_full_country_name($) { + my ($input) = @_; + my $name; + + # Remove whitespaces. + chomp($input); + + # Convert input into lower case format. + my $code = lc($input); + + # Handle country codes which are not in the list. + if ($code eq "a1") { $name = "Anonymous Proxy" } + elsif ($code eq "a2") { $name = "Satellite Provider" } + elsif ($code eq "o1") { $name = "Other Country" } + elsif ($code eq "ap") { $name = "Asia/Pacific Region" } + elsif ($code eq "eu") { $name = "Europe" } + elsif ($code eq "yu") { $name = "Yugoslavia" } + else { + # Use perl built-in module to get the country code. + $name = &Locale::Country::code2country($code); + } + + return $name; +} + +1; From e472a10de91406b6440add5245de388cb4ab34f5 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 8 Feb 2015 18:24:51 +0100 Subject: [PATCH 032/210] geoip-block.cgi: Use geoip-functions.pl. --- html/cgi-bin/geoip-block.cgi | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/html/cgi-bin/geoip-block.cgi b/html/cgi-bin/geoip-block.cgi index 6a7d1d96e..ccbfa926a 100644 --- a/html/cgi-bin/geoip-block.cgi +++ b/html/cgi-bin/geoip-block.cgi @@ -25,15 +25,11 @@ use strict; #use CGI::Carp 'fatalsToBrowser'; require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/geoip-functions.pl"; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; require "/usr/lib/firewall/firewall-lib.pl"; -# Directory which contains flag icons. -my $flagdir = "/srv/web/ipfire/html/images/flags"; -# File extension of the country flags. -my $extension = "png"; - my $notice; my $settingsfile = "${General::swroot}/firewall/geoipblock"; @@ -179,20 +175,15 @@ foreach my $location (@locations) { my $ccode_lc = lc($location); # Full name of the country based on the country code. - my $cname = &General::get_full_country_name($ccode_lc); + my $cname = &GeoIP::get_full_country_name($ccode_lc); - # Generate flag filename, based on the lower case written contry code - # and the defined file extension of the image files. (de.png) - my $flagfile = join('.', $ccode_lc,$extension); - - # Generate the full path to the flagfile, based on the given path and - # the previously generated filename. - my $flagpath = join('/', $flagdir,$flagfile); + # Get flag icon for of the country. + my $flag_icon = &GeoIP::get_flag_icon($ccode_uc); my $flag; # Check if a flag for the country is available. - if (-e "$flagpath") { - $flag="$ccode_uc"; + if ($flag_icon) { + $flag="$ccode_uc"; } else { $flag="N/A"; } From c0a97a0f4a9c7787801015301a34a01da39596f5 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 8 Feb 2015 18:41:44 +0100 Subject: [PATCH 033/210] firewall.cgi: Add support for GeoIP locations / GeoIP groups. --- html/cgi-bin/firewall.cgi | 67 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/html/cgi-bin/firewall.cgi b/html/cgi-bin/firewall.cgi index badee6b3c..12152700f 100644 --- a/html/cgi-bin/firewall.cgi +++ b/html/cgi-bin/firewall.cgi @@ -33,6 +33,7 @@ no warnings 'uninitialized'; require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; +require "${General::swroot}/geoip-functions.pl"; require "/usr/lib/firewall/firewall-lib.pl"; unless (-d "${General::swroot}/firewall") { system("mkdir ${General::swroot}/firewall"); } @@ -47,6 +48,7 @@ my %defaultNetworks=(); my %netsettings=(); my %customhost=(); my %customgrp=(); +my %customgeoipgrp=(); my %customnetworks=(); my %customservice=(); my %customservicegrp=(); @@ -73,6 +75,7 @@ my $color; my $confignet = "${General::swroot}/fwhosts/customnetworks"; my $confighost = "${General::swroot}/fwhosts/customhosts"; my $configgrp = "${General::swroot}/fwhosts/customgroups"; +my $configgeoipgrp = "${General::swroot}/fwhosts/customgeoipgrp"; my $configsrv = "${General::swroot}/fwhosts/customservices"; my $configsrvgrp = "${General::swroot}/fwhosts/customservicegrp"; my $configccdnet = "${General::swroot}/ovpn/ccd.conf"; @@ -1135,6 +1138,54 @@ END } print""; } + # geoip locations / groups. + my @geoip_locations = &fwlib::get_geoip_locations(); + + print "\n"; + print "\n"; + print "$Lang::tr{'geoip'}\n"; + print "\n"; + #End left table. start right table (vpn) print""; # CCD networks @@ -1472,6 +1523,7 @@ sub newrule &General::readhasharray("$confighost", \%customhost); &General::readhasharray("$configccdhost", \%ccdhost); &General::readhasharray("$configgrp", \%customgrp); + &General::readhasharray("$configgeoipgrp", \%customgeoipgrp); &General::readhasharray("$configipsec", \%ipsecconf); &General::get_aliases(\%aliases); my %checked=(); @@ -2600,6 +2652,13 @@ END }else{ print $$hash{$key}[4]; } + }elsif ($$hash{$key}[3] eq 'cust_geoip_src') { + my ($split1,$split2) = split(":", $$hash{$key}[4]); + if ($split2) { + print "$split2\n"; + }else{ + print "$Lang::tr{'geoip'}: $$hash{$key}[4]\n"; + } }elsif ($$hash{$key}[4] eq 'RED1'){ print "$ipfireiface $Lang::tr{'fwdfw red'}"; }elsif ($$hash{$key}[4] eq 'ALL'){ @@ -2676,6 +2735,13 @@ END }else{ print $$hash{$key}[6]; } + }elsif ($$hash{$key}[5] eq 'cust_geoip_tgt') { + my ($split1,$split2) = split(":", $$hash{$key}[6]); + if ($split2) { + print "$split2\n"; + }else{ + print "$Lang::tr{'geoip'}: $$hash{$key}[6]\n"; + } }elsif ($$hash{$key}[5] eq 'tgt_addr'){ my ($split1,$split2) = split("/",$$hash{$key}[6]); if ($split2 eq '32'){ @@ -2693,7 +2759,6 @@ END #RULE ACTIVE if($$hash{$key}[2] eq 'ON'){ $gif="/images/on.gif" - }else{ $gif="/images/off.gif" } From d9bf6d8b2f195e8d1f0287af19cf9fed331e9377 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Thu, 12 Feb 2015 20:10:05 +0100 Subject: [PATCH 034/210] Language file update. --- langs/en/cgi-bin/en.pl | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 0374c60f9..fa014a92f 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -435,6 +435,7 @@ 'bit' => 'bit', 'bitrate' => 'Bitrate', 'bleeding rules' => 'Bleeding Edge Snort Rules', +'block' => 'Block', 'blue' => 'BLUE', 'blue access' => 'Blue Access', 'blue access use hint' => 'You have to enter the MAC or the IP Address for a device. To enter both is also possible', @@ -1095,6 +1096,7 @@ 'fwhost OpenVPN static host' => 'OpenVPN static host', 'fwhost OpenVPN static network' => 'OpenVPN static network', 'fwhost Standard Network' => 'Standard network', +'fwhost addgeoipgrp' => 'Add new GeoIP group', 'fwhost addgrp' => 'Add new network/host group', 'fwhost addgrpname' => 'Group name:', 'fwhost addhost' => 'Add new host', @@ -1110,6 +1112,9 @@ 'fwhost change' => 'Modify', 'fwhost changeremark' => 'You modified just the remark', 'fwhost cust addr' => 'Hosts', +'fwhost cust geoip' => 'GeoIP Groups', +'fwhost cust geoipgroup' => 'GeoIP Groups', +'fwhost cust geoiplocation' => 'GeoIP Locations', 'fwhost cust grp' => 'Network/Host Groups', 'fwhost cust net' => 'Networks', 'fwhost cust service' => 'Services', @@ -1156,6 +1161,7 @@ 'fwhost ipsec net' => 'IPsec networks:', 'fwhost menu' => 'Firewall Groups', 'fwhost netaddress' => 'Network address', +'fwhost newgeoipgrp' => 'GeoIP Groups', 'fwhost newgrp' => 'Network/Host Groups', 'fwhost newhost' => 'Hosts', 'fwhost newnet' => 'Networks', @@ -1192,6 +1198,7 @@ 'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generating the root and host certificates may take a long time. It can take up to several minutes on older hardware. Please be patient.', 'genkey' => 'Generate PSK', 'genre' => 'Genre', +'geoip' => 'GeoIP', 'geoipblock' => 'GeoIP Block', 'geoipblock block countries' => 'Block countries', 'geoipblock configuration' => 'GeoIP Configuration', @@ -2255,11 +2262,13 @@ 'tripwirewarningpolicy' => 'WARNING - Your policy will be rebuild, after that your database will be reinitalised. Therefor the site-key and the local-key are neeeded.', 'tuesday' => 'Tuesday', 'type' => 'Type', -'uncheck all' => 'Uncheck all', 'umount' => 'Umount', 'umount removable media before to unplug' => 'Umount removable media before unplugging the device', +'uncheck all' => 'Uncheck all', 'unable to alter profiles while red is active' => 'Unable to alter profiles while RED is active.', 'unable to contact' => 'Unable to contact', +'unblock' => 'Unblock', +'unblock all' => 'Unblock all', 'unencrypted' => 'Unencrypted', 'uninstall' => 'Uninstall', 'unix charset' => 'UNIX Charset', From 2e3cb8edbc9f203adf6d702cfddf465ccaf2e2d7 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 14 Feb 2015 19:18:27 +0100 Subject: [PATCH 035/210] stage2: Rootfile update. --- config/rootfiles/common/stage2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/rootfiles/common/stage2 b/config/rootfiles/common/stage2 index 4e8b750c8..6c9325fd1 100644 --- a/config/rootfiles/common/stage2 +++ b/config/rootfiles/common/stage2 @@ -103,6 +103,8 @@ usr/local/bin/timecheck usr/local/bin/timezone-transition usr/local/bin/update-bootloader usr/local/bin/update-lang-cache +usr/local/bin/xt_geoip_build +usr/local/bin/xt_geoip_update #usr/local/include #usr/local/lib #usr/local/lib/sse2 @@ -122,6 +124,7 @@ usr/local/bin/update-lang-cache #usr/local/share/man/man8 #usr/local/share/misc #usr/local/share/terminfo +#usr/local/share/xt_geoip #usr/local/share/zoneinfo #usr/local/src #usr/sbin From 6897c329b5b323567267d364fefdf01a9bff5688 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Tue, 17 Feb 2015 08:41:16 +0100 Subject: [PATCH 036/210] xt_geoip_update: Fix mktemp calls. --- src/scripts/xt_geoip_update | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/scripts/xt_geoip_update b/src/scripts/xt_geoip_update index 3ad34d0c6..294af58e0 100644 --- a/src/scripts/xt_geoip_update +++ b/src/scripts/xt_geoip_update @@ -20,7 +20,7 @@ ############################################################################### TMP_PATH=$(mktemp -d) -TMP_FILE=$(mktemp) +TMP_FILE=$(mktemp -p $TMP_PATH) SCRIPT_PATH=/usr/libexec/xtables-addons DEST_PATH=/usr/share/xt_geoip @@ -35,11 +35,14 @@ ARCH=LE function download() { echo "Downloading latest GeoIP ruleset..." + # Create temporary directory. + mkdir -pv $TMP_PATH + # Get the latest GeoIP database from server. - wget $DL_URL/$DL_FILE -O $TMP_PATH/$TMP_FILE + wget $DL_URL/$DL_FILE -O $TMP_FILE # Extract files. - unzip $TMP_PATH/$TMP_FILE -d $TMP_PATH + unzip $TMP_FILE -d $TMP_PATH return 0 } @@ -55,7 +58,7 @@ function build() { # Run script to convert the CSV file into several xtables # compatible binary files. - if ! $SCRIPT_PATH/xt_geoip_build $TMP_DIR/$CSV_FILE -D $TMP_DIR; then + if ! $SCRIPT_PATH/xt_geoip_build $TMP_PATH/$CSV_FILE -D $TMP_PATH; then echo "Could not convert ruleset. Aborting." >&2 return 1 fi From b9ca2fa60f1ac0127d0bbddb016d0acb578e660d Mon Sep 17 00:00:00 2001 From: Alexander Marx Date: Tue, 17 Feb 2015 17:01:42 +0100 Subject: [PATCH 037/210] Add support for generating GeoIP-based firewall rules. This commit adds support to the rules.pl and firewall-lib.pl to generate correct iptables commands for inserting GeoIP-based firewall rules into the kernel. --- config/firewall/firewall-lib.pl | 28 ++++++++++++++++++++++++++++ config/firewall/rules.pl | 8 ++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) mode change 100755 => 100644 config/firewall/firewall-lib.pl diff --git a/config/firewall/firewall-lib.pl b/config/firewall/firewall-lib.pl old mode 100755 new mode 100644 index f73d84f29..b389fac3c --- a/config/firewall/firewall-lib.pl +++ b/config/firewall/firewall-lib.pl @@ -27,6 +27,7 @@ package fwlib; my %customnetwork=(); my %customhost=(); my %customgrp=(); +my %customgeoipgrp=(); my %customservice=(); my %customservicegrp=(); my %ccdnet=(); @@ -42,6 +43,7 @@ require '/var/ipfire/general-functions.pl'; my $confignet = "${General::swroot}/fwhosts/customnetworks"; my $confighost = "${General::swroot}/fwhosts/customhosts"; my $configgrp = "${General::swroot}/fwhosts/customgroups"; +my $configgeoipgrp = "${General::swroot}/fwhosts/customgeoipgrp"; my $configsrv = "${General::swroot}/fwhosts/customservices"; my $configsrvgrp = "${General::swroot}/fwhosts/customservicegrp"; my $configccdnet = "${General::swroot}/ovpn/ccd.conf"; @@ -59,6 +61,7 @@ my $netsettings = "${General::swroot}/ethernet/settings"; &General::readhasharray("$confignet", \%customnetwork); &General::readhasharray("$confighost", \%customhost); &General::readhasharray("$configgrp", \%customgrp); +&General::readhasharray("$configgeoipgrp", \%customgeoipgrp); &General::readhasharray("$configccdnet", \%ccdnet); &General::readhasharray("$configccdhost", \%ccdhost); &General::readhasharray("$configipsec", \%ipsecconf); @@ -295,6 +298,17 @@ sub get_addresses if ($customgrp{$grp}[0] eq $value) { my @address = &get_address($customgrp{$grp}[3], $customgrp{$grp}[2], $type); + if (@address) { + push(@addresses, @address); + } + } + } + }elsif ($addr_type ~~ ["cust_geoip_src", "cust_geoip_tgt"] && $value =~ "group:") { + $value=substr($value,6); + foreach my $grp (sort {$a <=> $b} keys %customgeoipgrp) { + if ($customgeoipgrp{$grp}[0] eq $value) { + my @address = &get_address($addr_type, $customgeoipgrp{$grp}[2], $type); + if (@address) { push(@addresses, @address); } @@ -414,6 +428,20 @@ sub get_address } } + # Handle rule options with GeoIP as source. + } elsif ($key eq "cust_geoip_src") { + # Get external interface. + my $external_interface = &get_external_interface(); + + push(@ret, ["-m geoip --src-cc $value", "$external_interface"]); + + # Handle rule options with GeoIP as target. + } elsif ($key eq "cust_geoip_tgt") { + # Get external interface. + my $external_interface = &get_external_interface(); + + push(@ret, ["-m geoip --dst-cc $value", "$external_interface"]); + # If nothing was selected, we assume "any". } else { push(@ret, ["0/0", ""]); diff --git a/config/firewall/rules.pl b/config/firewall/rules.pl index cd2f3a635..a12ab5667 100644 --- a/config/firewall/rules.pl +++ b/config/firewall/rules.pl @@ -368,13 +368,17 @@ sub buildrules { my @source_options = (); if ($source =~ /mac/) { push(@source_options, $source); - } elsif ($source) { + } elsif ($source =~ /-m geoip/) { + push(@source_options, $source); + } elsif($source) { push(@source_options, ("-s", $source)); } # Prepare destination options. my @destination_options = (); - if ($destination) { + if ($destination =~ /-m geoip/) { + push(@destination_options, $destination); + } elsif ($destination) { push(@destination_options, ("-d", $destination)); } From 899a422790a6fc56a7eeaf5070332232af0d6879 Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Wed, 18 Feb 2015 12:24:10 +0100 Subject: [PATCH 038/210] dhcpcd: Update to 6.7.1 --- config/rootfiles/common/dhcpcd | 5 +++++ lfs/dhcpcd | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/config/rootfiles/common/dhcpcd b/config/rootfiles/common/dhcpcd index 3f62fc655..ffbe04ae4 100644 --- a/config/rootfiles/common/dhcpcd +++ b/config/rootfiles/common/dhcpcd @@ -1,3 +1,6 @@ +#lib/dhcpcd +#lib/dhcpcd/dev +#lib/dhcpcd/dev/udev.so sbin/dhcpcd #usr/share/man/man5/dhcpcd.conf.5 #usr/share/man/man8/dhcpcd-run-hooks.8 @@ -6,6 +9,8 @@ var/ipfire/dhcpc/dhcpcd-hooks #var/ipfire/dhcpc/dhcpcd-hooks/01-test #var/ipfire/dhcpc/dhcpcd-hooks/02-dump #var/ipfire/dhcpc/dhcpcd-hooks/10-mtu +#var/ipfire/dhcpc/dhcpcd-hooks/10-wpa_supplicant +#var/ipfire/dhcpc/dhcpcd-hooks/15-timezone #var/ipfire/dhcpc/dhcpcd-hooks/29-lookup-hostname #var/ipfire/dhcpc/dhcpcd-hooks/30-hostname #var/ipfire/dhcpc/dhcpcd-hooks/70-dhcpcd.exe diff --git a/lfs/dhcpcd b/lfs/dhcpcd index f7a8c361c..e73d99c65 100644 --- a/lfs/dhcpcd +++ b/lfs/dhcpcd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2012 IPFire Team # +# Copyright (C) 2015 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 5.2.9 +VER = 6.7.1 THISAPP = dhcpcd-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = aabe4a3c1f23c55f2c99a416c9085de9 +$(DL_FILE)_MD5 = ffb716b0e9327968e7200d519e1d4c0d install : $(TARGET) From c1e9ba671ef74ad305067e4d82e81bcd3b5863a2 Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Wed, 18 Feb 2015 12:47:37 +0100 Subject: [PATCH 039/210] dhcp: Update to 4.3.1 --- config/rootfiles/common/dhcp | 3 +- lfs/dhcp | 65 ++-- .../dhcp-4.2.0-add_timeout_when_NULL.patch | 14 - src/patches/dhcp-4.2.0-errwarn-message.patch | 30 -- src/patches/dhcp-4.2.0-garbage-chars.patch | 12 - src/patches/dhcp-4.2.0-inherit-leases.patch | 34 --- src/patches/dhcp-4.2.0-logpid.patch | 12 - .../dhcp-4.2.0-missing-ipv6-not-fatal.patch | 40 --- src/patches/dhcp-4.2.0-noprefixavail.patch | 140 --------- .../dhcp-4.2.1-64_bit_lease_parse.patch | 94 ------ .../dhcp-4.2.1-invalid-dhclient-conf.patch | 12 - src/patches/dhcp-4.2.1-retransmission.patch | 48 --- src/patches/dhcp-4.2.2-dhclient-usage.patch | 14 - src/patches/dhcp-4.2.2-remove-bind.patch | 149 ---------- src/patches/dhcp-4.2.2-sharedlib.patch | 119 -------- .../dhcp/dhcp-64_bit_lease_parse.patch | 75 +++++ .../dhcp-CLOEXEC.patch} | 239 +++++---------- .../dhcp-PPP.patch} | 126 ++++---- .../dhcp-UseMulticast.patch} | 58 ++-- .../dhcp/dhcp-add_timeout_when_NULL.patch | 14 + .../dhcp-capability.patch} | 165 +++------- .../dhcp-default-requested-options.patch} | 8 +- .../dhcp-dhclient-decline-backoff.patch} | 36 +-- .../dhcp-dhclient-options.patch} | 220 ++++++++++---- src/patches/dhcp/dhcp-errwarn-message.patch | 22 ++ src/patches/dhcp/dhcp-garbage-chars.patch | 12 + .../dhcp-gpxe-cid.patch} | 79 +---- .../dhcp-honor-expired.patch} | 10 +- .../dhcp-improved-xid.patch} | 40 +-- src/patches/dhcp/dhcp-logpid.patch | 11 + .../dhcp-lpf-ib.patch} | 281 ++++++++++-------- .../dhcp-manpages.patch} | 223 ++++---------- src/patches/dhcp/dhcp-paranoia.patch | 156 ++++++++++ .../dhcp-paths.patch} | 11 +- .../dhcp-release-by-ifup.patch} | 10 +- src/patches/dhcp/dhcp-remove-bind.patch | 192 ++++++++++++ ...hcp-rfc3442-classless-static-routes.patch} | 124 ++++---- .../dhcp-sendDecline.patch} | 22 +- src/patches/dhcp/dhcp-sharedlib.patch | 107 +++++++ .../dhcp/dhcp-stateless-DUID-LLT.patch | 48 +++ .../dhcp-unicast-bootp.patch} | 32 +- .../dhcp-xen-checksum.patch} | 90 +++--- 42 files changed, 1481 insertions(+), 1716 deletions(-) delete mode 100644 src/patches/dhcp-4.2.0-add_timeout_when_NULL.patch delete mode 100644 src/patches/dhcp-4.2.0-errwarn-message.patch delete mode 100644 src/patches/dhcp-4.2.0-garbage-chars.patch delete mode 100644 src/patches/dhcp-4.2.0-inherit-leases.patch delete mode 100644 src/patches/dhcp-4.2.0-logpid.patch delete mode 100644 src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch delete mode 100644 src/patches/dhcp-4.2.0-noprefixavail.patch delete mode 100644 src/patches/dhcp-4.2.1-64_bit_lease_parse.patch delete mode 100644 src/patches/dhcp-4.2.1-invalid-dhclient-conf.patch delete mode 100644 src/patches/dhcp-4.2.1-retransmission.patch delete mode 100644 src/patches/dhcp-4.2.2-dhclient-usage.patch delete mode 100644 src/patches/dhcp-4.2.2-remove-bind.patch delete mode 100644 src/patches/dhcp-4.2.2-sharedlib.patch create mode 100644 src/patches/dhcp/dhcp-64_bit_lease_parse.patch rename src/patches/{dhcp-4.2.2-CLOEXEC.patch => dhcp/dhcp-CLOEXEC.patch} (52%) rename src/patches/{dhcp-4.2.0-PPP.patch => dhcp/dhcp-PPP.patch} (59%) rename src/patches/{dhcp-4.2.0-UseMulticast.patch => dhcp/dhcp-UseMulticast.patch} (83%) create mode 100644 src/patches/dhcp/dhcp-add_timeout_when_NULL.patch rename src/patches/{dhcp-4.2.2-capability.patch => dhcp/dhcp-capability.patch} (51%) rename src/patches/{dhcp-4.2.0-default-requested-options.patch => dhcp/dhcp-default-requested-options.patch} (81%) rename src/patches/{dhcp-4.2.0-dhclient-decline-backoff.patch => dhcp/dhcp-dhclient-decline-backoff.patch} (58%) rename src/patches/{dhcp-4.2.2-options.patch => dhcp/dhcp-dhclient-options.patch} (65%) create mode 100644 src/patches/dhcp/dhcp-errwarn-message.patch create mode 100644 src/patches/dhcp/dhcp-garbage-chars.patch rename src/patches/{dhcp-4.2.2-gpxe-cid.patch => dhcp/dhcp-gpxe-cid.patch} (50%) rename src/patches/{dhcp-4.2.0-honor-expired.patch => dhcp/dhcp-honor-expired.patch} (77%) rename src/patches/{dhcp-4.2.2-improved-xid.patch => dhcp/dhcp-improved-xid.patch} (78%) create mode 100644 src/patches/dhcp/dhcp-logpid.patch rename src/patches/{dhcp-4.2.2-lpf-ib.patch => dhcp/dhcp-lpf-ib.patch} (67%) rename src/patches/{dhcp-4.2.1-manpages.patch => dhcp/dhcp-manpages.patch} (53%) create mode 100644 src/patches/dhcp/dhcp-paranoia.patch rename src/patches/{dhcp-4.2.0-paths.patch => dhcp/dhcp-paths.patch} (72%) rename src/patches/{dhcp-4.2.0-release-by-ifup.patch => dhcp/dhcp-release-by-ifup.patch} (88%) create mode 100644 src/patches/dhcp/dhcp-remove-bind.patch rename src/patches/{dhcp-4.2.2-rfc3442-classless-static-routes.patch => dhcp/dhcp-rfc3442-classless-static-routes.patch} (74%) rename src/patches/{dhcp-4.2.1-sendDecline.patch => dhcp/dhcp-sendDecline.patch} (89%) create mode 100644 src/patches/dhcp/dhcp-sharedlib.patch create mode 100644 src/patches/dhcp/dhcp-stateless-DUID-LLT.patch rename src/patches/{dhcp-4.2.0-unicast-bootp.patch => dhcp/dhcp-unicast-bootp.patch} (72%) rename src/patches/{dhcp-4.2.2-xen-checksum.patch => dhcp/dhcp-xen-checksum.patch} (71%) diff --git a/config/rootfiles/common/dhcp b/config/rootfiles/common/dhcp index 2c2cfeeb3..ff225a571 100644 --- a/config/rootfiles/common/dhcp +++ b/config/rootfiles/common/dhcp @@ -1,6 +1,7 @@ #etc/dhcp -#etc/dhcp/dhclient.conf +#etc/dhcp/dhclient.conf.example etc/dhcp/dhcpd.conf +#etc/dhcp/dhcpd.conf.example #usr/bin/omshell #usr/include/dhcpctl #usr/include/dhcpctl/dhcpctl.h diff --git a/lfs/dhcp b/lfs/dhcp index 083c31fa1..9a89d40bf 100644 --- a/lfs/dhcp +++ b/lfs/dhcp @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team # +# Copyright (C) 2007-2015 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 4.2.2 +VER = 4.3.1 THISAPP = dhcp-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = bb0f0434cd796f76aa7cead391d71f31 +$(DL_FILE)_MD5 = b3a42ece3c7f2cd2e74a3e12ca881d20 install : $(TARGET) @@ -71,38 +71,33 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-remove-bind.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-errwarn-message.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-options.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-release-by-ifup.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-dhclient-decline-backoff.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-unicast-bootp.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-dhclient-usage.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-default-requested-options.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-xen-checksum.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-manpages.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-paths.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-CLOEXEC.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-inherit-leases.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-garbage-chars.patch - # ??? - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-add_timeout_when_NULL.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-64_bit_lease_parse.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-capability.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-logpid.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-UseMulticast.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-sendDecline.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-retransmission.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-rfc3442-classless-static-routes.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-honor-expired.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-noprefixavail.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-sharedlib.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-PPP.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-lpf-ib.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-improved-xid.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-gpxe-cid.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-invalid-dhclient-conf.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-remove-bind.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-errwarn-message.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-dhclient-options.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-release-by-ifup.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-dhclient-decline-backoff.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-unicast-bootp.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-default-requested-options.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-xen-checksum.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-manpages.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-paths.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-CLOEXEC.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-garbage-chars.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-add_timeout_when_NULL.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-64_bit_lease_parse.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-capability.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-logpid.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-UseMulticast.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-sendDecline.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-rfc3442-classless-static-routes.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-honor-expired.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-sharedlib.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-PPP.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-paranoia.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-lpf-ib.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-improved-xid.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-gpxe-cid.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-stateless-DUID-LLT.patch # Remove bundled BIND stuff. # (requires newer autoconf) diff --git a/src/patches/dhcp-4.2.0-add_timeout_when_NULL.patch b/src/patches/dhcp-4.2.0-add_timeout_when_NULL.patch deleted file mode 100644 index 4784d5a68..000000000 --- a/src/patches/dhcp-4.2.0-add_timeout_when_NULL.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up dhcp-4.2.0/common/dispatch.c.dracut dhcp-4.2.0/common/dispatch.c ---- dhcp-4.2.0/common/dispatch.c.dracut 2010-06-01 19:29:59.000000000 +0200 -+++ dhcp-4.2.0/common/dispatch.c 2010-07-21 16:10:09.000000000 +0200 -@@ -189,6 +189,10 @@ void add_timeout (when, where, what, ref - isc_interval_t interval; - isc_time_t expires; - -+ if (when == NULL) { -+ return; -+ } -+ - /* See if this timeout supersedes an existing timeout. */ - t = (struct timeout *)0; - for (q = timeouts; q; q = q->next) { diff --git a/src/patches/dhcp-4.2.0-errwarn-message.patch b/src/patches/dhcp-4.2.0-errwarn-message.patch deleted file mode 100644 index a0f70cd04..000000000 --- a/src/patches/dhcp-4.2.0-errwarn-message.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -up dhcp-4.2.0/omapip/errwarn.c.errwarn dhcp-4.2.0/omapip/errwarn.c ---- dhcp-4.2.0/omapip/errwarn.c.errwarn 2009-07-23 20:52:21.000000000 +0200 -+++ dhcp-4.2.0/omapip/errwarn.c 2010-07-21 13:23:47.000000000 +0200 -@@ -76,20 +76,13 @@ void log_fatal (const char * fmt, ... ) - - #if !defined (NOMINUM) - log_error ("%s", ""); -- log_error ("If you did not get this software from ftp.isc.org, please"); -- log_error ("get the latest from ftp.isc.org and install that before"); -- log_error ("requesting help."); -+ log_error ("This version of ISC DHCP is based on the release available"); -+ log_error ("on ftp.isc.org. Features have been added and other changes"); -+ log_error ("have been made to the base software release in order to make"); -+ log_error ("it work better with this distribution."); - log_error ("%s", ""); -- log_error ("If you did get this software from ftp.isc.org and have not"); -- log_error ("yet read the README, please read it before requesting help."); -- log_error ("If you intend to request help from the dhcp-server@isc.org"); -- log_error ("mailing list, please read the section on the README about"); -- log_error ("submitting bug reports and requests for help."); -- log_error ("%s", ""); -- log_error ("Please do not under any circumstances send requests for"); -- log_error ("help directly to the authors of this software - please"); -- log_error ("send them to the appropriate mailing list as described in"); -- log_error ("the README file."); -+ log_error ("Please report for this software via the Red Hat Bugzilla site:"); -+ log_error (" http://bugzilla.redhat.com"); - log_error ("%s", ""); - log_error ("exiting."); - #endif diff --git a/src/patches/dhcp-4.2.0-garbage-chars.patch b/src/patches/dhcp-4.2.0-garbage-chars.patch deleted file mode 100644 index 118ff3fc1..000000000 --- a/src/patches/dhcp-4.2.0-garbage-chars.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up dhcp-4.2.0/common/tables.c.garbage dhcp-4.2.0/common/tables.c ---- dhcp-4.2.0/common/tables.c.garbage 2009-11-20 02:49:01.000000000 +0100 -+++ dhcp-4.2.0/common/tables.c 2010-07-21 14:40:56.000000000 +0200 -@@ -207,7 +207,7 @@ static struct option dhcp_options[] = { - { "netinfo-server-tag", "t", &dhcp_universe, 113, 1 }, - { "default-url", "t", &dhcp_universe, 114, 1 }, - { "subnet-selection", "I", &dhcp_universe, 118, 1 }, -- { "domain-search", "Dc", &dhcp_universe, 119, 1 }, -+ { "domain-search", "D", &dhcp_universe, 119, 1 }, - { "vivco", "Evendor-class.", &dhcp_universe, 124, 1 }, - { "vivso", "Evendor.", &dhcp_universe, 125, 1 }, - #if 0 diff --git a/src/patches/dhcp-4.2.0-inherit-leases.patch b/src/patches/dhcp-4.2.0-inherit-leases.patch deleted file mode 100644 index 052f64259..000000000 --- a/src/patches/dhcp-4.2.0-inherit-leases.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff -up dhcp-4.2.0/client/dhclient.c.inherit dhcp-4.2.0/client/dhclient.c ---- dhcp-4.2.0/client/dhclient.c.inherit 2010-07-21 14:33:44.000000000 +0200 -+++ dhcp-4.2.0/client/dhclient.c 2010-07-21 14:40:05.000000000 +0200 -@@ -2322,6 +2322,7 @@ void send_request (cpp) - { - struct client_state *client = cpp; - -+ int i; - int result; - int interval; - struct sockaddr_in destination; -@@ -2381,6 +2382,22 @@ void send_request (cpp) - /* Now do a preinit on the interface so that we can - discover a new address. */ - script_init (client, "PREINIT", (struct string_list *)0); -+ -+ /* Has an active lease */ -+ if (client -> interface -> addresses != NULL) { -+ for (i = 0; i < client -> interface -> address_count; i++) { -+ if (client -> active && -+ client -> active -> is_bootp && -+ client -> active -> expiry > cur_time && -+ client -> interface -> addresses[i].s_addr != 0 && -+ client -> active -> address.len == 4 && -+ memcpy (client -> active -> address.iabuf, &(client -> interface -> addresses[i]), 4) == 0) { -+ client_envadd (client, "", "keep_old_ip", "%s", "yes"); -+ break; -+ } -+ } -+ } -+ - if (client -> alias) - script_write_params (client, "alias_", - client -> alias); diff --git a/src/patches/dhcp-4.2.0-logpid.patch b/src/patches/dhcp-4.2.0-logpid.patch deleted file mode 100644 index c24adb14a..000000000 --- a/src/patches/dhcp-4.2.0-logpid.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up dhcp-4.2.0/client/dhclient.c.logpid dhcp-4.2.0/client/dhclient.c ---- dhcp-4.2.0/client/dhclient.c.logpid 2010-07-21 16:13:52.000000000 +0200 -+++ dhcp-4.2.0/client/dhclient.c 2010-07-21 16:16:51.000000000 +0200 -@@ -154,7 +154,7 @@ main(int argc, char **argv) { - else if (fd != -1) - close(fd); - -- openlog("dhclient", LOG_NDELAY, LOG_DAEMON); -+ openlog("dhclient", LOG_NDELAY | LOG_PID, LOG_DAEMON); - - #if !(defined(DEBUG) || defined(__CYGWIN32__)) - setlogmask(LOG_UPTO(LOG_INFO)); diff --git a/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch b/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch deleted file mode 100644 index b60411545..000000000 --- a/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -up dhcp-4.2.0/common/discover.c.noipv6 dhcp-4.2.0/common/discover.c ---- dhcp-4.2.0/common/discover.c.noipv6 2010-07-21 14:31:13.000000000 +0200 -+++ dhcp-4.2.0/common/discover.c 2010-07-21 16:04:57.000000000 +0200 -@@ -443,7 +443,7 @@ begin_iface_scan(struct iface_conf_list - } - - #ifdef DHCPv6 -- if (local_family == AF_INET6) { -+ if ((local_family == AF_INET6) && !access("/proc/net/if_inet6", R_OK)) { - ifaces->fp6 = fopen("/proc/net/if_inet6", "re"); - if (ifaces->fp6 == NULL) { - log_error("Error opening '/proc/net/if_inet6' to " -@@ -454,6 +454,8 @@ begin_iface_scan(struct iface_conf_list - ifaces->fp = NULL; - return 0; - } -+ } else { -+ ifaces->fp6 = NULL; - } - #endif - -@@ -721,7 +723,7 @@ next_iface(struct iface_info *info, int - return 1; - } - #ifdef DHCPv6 -- if (!(*err)) { -+ if (!(*err) && ifaces->fp6) { - if (local_family == AF_INET6) - return next_iface6(info, err, ifaces); - } -@@ -740,7 +742,8 @@ end_iface_scan(struct iface_conf_list *i - ifaces->sock = -1; - #ifdef DHCPv6 - if (local_family == AF_INET6) { -- fclose(ifaces->fp6); -+ if (ifaces->fp6) -+ fclose(ifaces->fp6); - ifaces->fp6 = NULL; - } - #endif diff --git a/src/patches/dhcp-4.2.0-noprefixavail.patch b/src/patches/dhcp-4.2.0-noprefixavail.patch deleted file mode 100644 index 729a1726a..000000000 --- a/src/patches/dhcp-4.2.0-noprefixavail.patch +++ /dev/null @@ -1,140 +0,0 @@ -diff -up dhcp-4.2.0/server/dhcpv6.c.noprefixavail dhcp-4.2.0/server/dhcpv6.c ---- dhcp-4.2.0/server/dhcpv6.c.noprefixavail 2010-10-07 13:48:45.000000000 +0200 -+++ dhcp-4.2.0/server/dhcpv6.c 2010-10-13 11:00:25.000000000 +0200 -@@ -1134,7 +1134,7 @@ try_client_v6_prefix(struct iasubopt **p - return DHCP_R_INVALIDARG; - } - tmp_plen = (int) requested_pref->data[0]; -- if ((tmp_plen < 3) || (tmp_plen > 128)) { -+ if ((tmp_plen < 3) || (tmp_plen > 128) ||((int)tmp_plen != pool->units)) { - return ISC_R_FAILURE; - } - memcpy(&tmp_pref, requested_pref->data + 1, sizeof(tmp_pref)); -@@ -1147,9 +1147,8 @@ try_client_v6_prefix(struct iasubopt **p - return ISC_R_FAILURE; - } - -- if (((int)tmp_plen != pool->units) || -- !ipv6_in_pool(&tmp_pref, pool)) { -- return ISC_R_FAILURE; -+ if (!ipv6_in_pool(&tmp_pref, pool)) { -+ return ISC_R_ADDRNOTAVAIL; - } - - if (prefix6_exists(pool, &tmp_pref, tmp_plen)) { -@@ -1409,13 +1408,6 @@ lease_to_client(struct data_string *repl - if ((status != ISC_R_SUCCESS) && - (status != ISC_R_NORESOURCES)) - goto exit; -- -- /* -- * If any prefix cannot be given to any IA_PD, then -- * set the NoPrefixAvail status code. -- */ -- if (reply.client_resources == 0) -- no_resources_avail = ISC_TRUE; - } - - /* -@@ -1549,36 +1541,6 @@ lease_to_client(struct data_string *repl - reply.opt_state, reply.packet, - required_opts_NAA, - NULL); -- } else if (no_resources_avail && (reply.ia_count == 0) && -- (reply.packet->dhcpv6_msg_type == DHCPV6_SOLICIT)) -- { -- /* Set the NoPrefixAvail status code. */ -- if (!set_status_code(STATUS_NoPrefixAvail, -- "No prefixes available for this " -- "interface.", reply.opt_state)) { -- log_error("lease_to_client: Unable to set " -- "NoPrefixAvail status code."); -- goto exit; -- } -- -- /* Rewind the cursor to the start. */ -- reply.cursor = REPLY_OPTIONS_INDEX; -- -- /* -- * Produce an advertise that includes only: -- * -- * Status code. -- * Server DUID. -- * Client DUID. -- */ -- reply.buf.reply.msg_type = DHCPV6_ADVERTISE; -- reply.cursor += store_options6((char *)reply.buf.data + -- reply.cursor, -- sizeof(reply.buf) - -- reply.cursor, -- reply.opt_state, reply.packet, -- required_opts_NAA, -- NULL); - } else { - /* - * Having stored the client's IA's, store any options that -@@ -2793,16 +2755,18 @@ find_client_temporaries(struct reply_sta - */ - static isc_result_t - reply_process_try_addr(struct reply_state *reply, struct iaddr *addr) { -- isc_result_t status = ISC_R_NORESOURCES; -+ isc_result_t status = ISC_R_ADDRNOTAVAIL; - struct ipv6_pool *pool; - int i; - struct data_string data_addr; - - if ((reply == NULL) || (reply->shared == NULL) || -- (reply->shared->ipv6_pools == NULL) || (addr == NULL) || -- (reply->lease != NULL)) -+ (addr == NULL) || (reply->lease != NULL)) - return DHCP_R_INVALIDARG; - -+ if (reply->shared->ipv6_pools == NULL) -+ return ISC_R_ADDRNOTAVAIL; -+ - memset(&data_addr, 0, sizeof(data_addr)); - data_addr.len = addr->len; - data_addr.data = addr->iabuf; -@@ -3314,7 +3278,9 @@ reply_process_ia_pd(struct reply_state * - if (status == ISC_R_CANCELED) - break; - -- if ((status != ISC_R_SUCCESS) && (status != ISC_R_ADDRINUSE)) -+ if ((status != ISC_R_SUCCESS) && -+ (status != ISC_R_ADDRINUSE) && -+ (status != ISC_R_ADDRNOTAVAIL)) - goto cleanup; - } - -@@ -3594,7 +3560,8 @@ reply_process_prefix(struct reply_state - - /* Either error out or skip this prefix. */ - if ((status != ISC_R_SUCCESS) && -- (status != ISC_R_ADDRINUSE)) -+ (status != ISC_R_ADDRINUSE) && -+ (status != ISC_R_ADDRNOTAVAIL)) - goto cleanup; - - if (reply->lease == NULL) { -@@ -3773,16 +3740,18 @@ prefix_is_owned(struct reply_state *repl - static isc_result_t - reply_process_try_prefix(struct reply_state *reply, - struct iaddrcidrnet *pref) { -- isc_result_t status = ISC_R_NORESOURCES; -+ isc_result_t status = ISC_R_ADDRNOTAVAIL; - struct ipv6_pool *pool; - int i; - struct data_string data_pref; - - if ((reply == NULL) || (reply->shared == NULL) || -- (reply->shared->ipv6_pools == NULL) || (pref == NULL) || -- (reply->lease != NULL)) -+ (pref == NULL) || (reply->lease != NULL)) - return DHCP_R_INVALIDARG; - -+ if (reply->shared->ipv6_pools == NULL) -+ return ISC_R_ADDRNOTAVAIL; -+ - memset(&data_pref, 0, sizeof(data_pref)); - data_pref.len = 17; - if (!buffer_allocate(&data_pref.buffer, data_pref.len, MDL)) { diff --git a/src/patches/dhcp-4.2.1-64_bit_lease_parse.patch b/src/patches/dhcp-4.2.1-64_bit_lease_parse.patch deleted file mode 100644 index a540bc19f..000000000 --- a/src/patches/dhcp-4.2.1-64_bit_lease_parse.patch +++ /dev/null @@ -1,94 +0,0 @@ -diff -up dhcp-4.2.1b1/common/dispatch.c.64-bit_lease_parse dhcp-4.2.1b1/common/dispatch.c -diff -up dhcp-4.2.1b1/common/parse.c.64-bit_lease_parse dhcp-4.2.1b1/common/parse.c ---- dhcp-4.2.1b1/common/parse.c.64-bit_lease_parse 2010-12-30 00:01:42.000000000 +0100 -+++ dhcp-4.2.1b1/common/parse.c 2011-01-28 08:01:10.000000000 +0100 -@@ -909,8 +909,8 @@ TIME - parse_date_core(cfile) - struct parse *cfile; - { -- int guess; -- int tzoff, wday, year, mon, mday, hour, min, sec; -+ TIME guess; -+ long int tzoff, wday, year, mon, mday, hour, min, sec; - const char *val; - enum dhcp_token token; - static int months[11] = { 31, 59, 90, 120, 151, 181, -@@ -936,7 +936,7 @@ parse_date_core(cfile) - } - - token = next_token(&val, NULL, cfile); /* consume number */ -- guess = atoi(val); -+ guess = atol(val); - - return((TIME)guess); - } -@@ -948,7 +948,7 @@ parse_date_core(cfile) - return((TIME)0); - } - token = next_token(&val, NULL, cfile); /* consume day of week */ -- wday = atoi(val); -+ wday = atol(val); - - /* Year... */ - token = peek_token(&val, NULL, cfile); -@@ -964,7 +964,7 @@ parse_date_core(cfile) - somebody invents a time machine, I think we can safely disregard - it. This actually works around a stupid Y2K bug that was present - in a very early beta release of dhcpd. */ -- year = atoi(val); -+ year = atol(val); - if (year > 1900) - year -= 1900; - -@@ -988,7 +988,7 @@ parse_date_core(cfile) - return((TIME)0); - } - token = next_token(&val, NULL, cfile); /* consume month */ -- mon = atoi(val) - 1; -+ mon = atol(val) - 1; - - /* Slash separating month from day... */ - token = peek_token(&val, NULL, cfile); -@@ -1010,7 +1010,7 @@ parse_date_core(cfile) - return((TIME)0); - } - token = next_token(&val, NULL, cfile); /* consume day of month */ -- mday = atoi(val); -+ mday = atol(val); - - /* Hour... */ - token = peek_token(&val, NULL, cfile); -@@ -1021,7 +1021,7 @@ parse_date_core(cfile) - return((TIME)0); - } - token = next_token(&val, NULL, cfile); /* consume hour */ -- hour = atoi(val); -+ hour = atol(val); - - /* Colon separating hour from minute... */ - token = peek_token(&val, NULL, cfile); -@@ -1043,7 +1043,7 @@ parse_date_core(cfile) - return((TIME)0); - } - token = next_token(&val, NULL, cfile); /* consume minute */ -- min = atoi(val); -+ min = atol(val); - - /* Colon separating minute from second... */ - token = peek_token(&val, NULL, cfile); -@@ -1065,13 +1065,13 @@ parse_date_core(cfile) - return((TIME)0); - } - token = next_token(&val, NULL, cfile); /* consume second */ -- sec = atoi(val); -+ sec = atol(val); - - tzoff = 0; - token = peek_token(&val, NULL, cfile); - if (token == NUMBER) { - token = next_token(&val, NULL, cfile); /* consume tzoff */ -- tzoff = atoi(val); -+ tzoff = atol(val); - } else if (token != SEMI) { - token = next_token(&val, NULL, cfile); - parse_warn(cfile, diff --git a/src/patches/dhcp-4.2.1-invalid-dhclient-conf.patch b/src/patches/dhcp-4.2.1-invalid-dhclient-conf.patch deleted file mode 100644 index eeeea84fd..000000000 --- a/src/patches/dhcp-4.2.1-invalid-dhclient-conf.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up dhcp-4.2.1b1/client/dhclient.conf.supersede dhcp-4.2.1b1/client/dhclient.conf ---- dhcp-4.2.1b1/client/dhclient.conf.supersede 2010-09-15 01:03:56.000000000 +0200 -+++ dhcp-4.2.1b1/client/dhclient.conf 2011-01-27 18:38:28.000000000 +0100 -@@ -4,7 +4,7 @@ send dhcp-lease-time 3600; - supersede domain-search "fugue.com", "home.vix.com"; - prepend domain-name-servers 127.0.0.1; - request subnet-mask, broadcast-address, time-offset, routers, -- domain-name, domain-name-servers, host-name; -+ domain-search, domain-name-servers, host-name; - require subnet-mask, domain-name-servers; - timeout 60; - retry 60; diff --git a/src/patches/dhcp-4.2.1-retransmission.patch b/src/patches/dhcp-4.2.1-retransmission.patch deleted file mode 100644 index 18e447f6a..000000000 --- a/src/patches/dhcp-4.2.1-retransmission.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff -up dhcp-4.2.1b1/client/dhc6.c.retransmission dhcp-4.2.1b1/client/dhc6.c ---- dhcp-4.2.1b1/client/dhc6.c.retransmission 2011-01-28 08:40:56.000000000 +0100 -+++ dhcp-4.2.1b1/client/dhc6.c 2011-01-28 08:39:22.000000000 +0100 -@@ -361,7 +361,7 @@ dhc6_retrans_init(struct client_state *c - static void - dhc6_retrans_advance(struct client_state *client) - { -- struct timeval elapsed; -+ struct timeval elapsed, elapsed_after_RT; - - /* elapsed = cur - start */ - elapsed.tv_sec = cur_tv.tv_sec - client->start_time.tv_sec; -@@ -378,6 +378,8 @@ dhc6_retrans_advance(struct client_state - elapsed.tv_sec += 1; - elapsed.tv_usec -= 1000000; - } -+ elapsed_after_RT.tv_sec = elapsed.tv_sec; -+ elapsed_after_RT.tv_usec = elapsed.tv_usec; - - /* - * RT for each subsequent message transmission is based on the previous -@@ -415,13 +417,10 @@ dhc6_retrans_advance(struct client_state - elapsed.tv_usec -= 1000000; - } - if (elapsed.tv_sec >= client->MRD) { -- /* -- * wake at RT + cur = start + MRD -- */ -- client->RT = client->MRD + -- (client->start_time.tv_sec - cur_tv.tv_sec); -- client->RT = client->RT * 100 + -- (client->start_time.tv_usec - cur_tv.tv_usec) / 10000; -+ client->RT = client->MRD - elapsed_after_RT.tv_sec; -+ client->RT = client->RT * 100 - elapsed_after_RT.tv_usec / 10000; -+ if (client->RT < 0) -+ client->RT = 0; - } - client->txcount++; - } -@@ -1497,7 +1496,7 @@ check_timing6 (struct client_state *clie - } - - /* Check if finished (-1 argument). */ -- if ((client->MRD != 0) && (elapsed.tv_sec > client->MRD)) { -+ if ((client->MRD != 0) && (elapsed.tv_sec >= client->MRD)) { - log_info("Max retransmission duration exceeded."); - return(CHK_TIM_MRD_EXCEEDED); - } diff --git a/src/patches/dhcp-4.2.2-dhclient-usage.patch b/src/patches/dhcp-4.2.2-dhclient-usage.patch deleted file mode 100644 index 0d4194396..000000000 --- a/src/patches/dhcp-4.2.2-dhclient-usage.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up dhcp-4.2.2b1/client/dhclient.c.usage dhcp-4.2.2b1/client/dhclient.c ---- dhcp-4.2.2b1/client/dhclient.c.usage 2011-07-01 13:55:16.000000000 +0200 -+++ dhcp-4.2.2b1/client/dhclient.c 2011-07-01 13:58:55.243800602 +0200 -@@ -1047,6 +1047,10 @@ static void usage() - " [-s server-addr] [-cf config-file] " - "[-lf lease-file]\n" - " [-pf pid-file] [--no-pid] [-e VAR=val]\n" -+ " [-I ] [-B]\n" -+ " [-H | -F ] [-timeout ]\n" -+ " [-V ]\n" -+ " [-R ]\n" - " [-sf script-file] [interface]"); - } - diff --git a/src/patches/dhcp-4.2.2-remove-bind.patch b/src/patches/dhcp-4.2.2-remove-bind.patch deleted file mode 100644 index 629777227..000000000 --- a/src/patches/dhcp-4.2.2-remove-bind.patch +++ /dev/null @@ -1,149 +0,0 @@ -diff -up dhcp-4.2.2/client/Makefile.am.rh637017 dhcp-4.2.2/client/Makefile.am ---- dhcp-4.2.2/client/Makefile.am.rh637017 2010-09-15 00:32:36.000000000 +0200 -+++ dhcp-4.2.2/client/Makefile.am 2011-08-11 17:28:58.923897561 +0200 -@@ -5,7 +5,7 @@ dhclient_SOURCES = clparse.c dhclient.c - scripts/netbsd scripts/nextstep scripts/openbsd \ - scripts/solaris scripts/openwrt - dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../bind/lib/libdns.a ../bind/lib/libisc.a -+ $(BIND9_LIBDIR) -ldns-export -lisc-export - man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 - EXTRA_DIST = $(man_MANS) - -diff -up dhcp-4.2.2/common/tests/Makefile.am.rh637017 dhcp-4.2.2/common/tests/Makefile.am ---- dhcp-4.2.2/common/tests/Makefile.am.rh637017 2009-10-28 05:12:30.000000000 +0100 -+++ dhcp-4.2.2/common/tests/Makefile.am 2011-08-11 17:33:45.258637236 +0200 -@@ -6,6 +6,5 @@ TESTS = test_alloc - - test_alloc_SOURCES = test_alloc.c - test_alloc_LDADD = ../libdhcp.a ../../tests/libt_api.a \ -- ../../omapip/libomapi.a ../../bind/lib/libdns.a \ -- ../../bind/lib/libisc.a -- -+ ../../omapip/libomapi.a \ -+ $(BIND9_LIBDIR) -ldns-export -lisc-export -diff -up dhcp-4.2.2/configure.ac.rh637017 dhcp-4.2.2/configure.ac ---- dhcp-4.2.2/configure.ac.rh637017 2011-07-20 02:32:18.000000000 +0200 -+++ dhcp-4.2.2/configure.ac 2011-08-11 17:28:58.924897535 +0200 -@@ -512,20 +512,37 @@ AC_CHECK_MEMBER(struct msghdr.msg_contro - libbind= - AC_ARG_WITH(libbind, - AC_HELP_STRING([--with-libbind=PATH], -- [bind includes and libraries are in PATH -- (default is ./bind)]), -+ [bind includes are in PATH -+ (default is ./bind/includes)]), - use_libbind="$withval", use_libbind="no") - case "$use_libbind" in -+yes|no) -+ libbind="\${top_srcdir}/bind/include" -+ ;; -+*) -+ libbind="$use_libbind" -+ ;; -+esac -+ -+BIND9_LIBDIR='-L$(top_builddir)/bind/lib' -+AC_ARG_WITH(libbind-libs, -+ AC_HELP_STRING([--with-libbind-libs=PATH], -+ [bind9 export libraries are in PATH]), -+ [libbind_libs="$withval"], [libbind_libs='no']) -+case "$libbind_libs" in - yes) -- libbind="\${top_srcdir}/bind" -+ AC_MSG_ERROR([Specify path to bind9 libraries]) - ;; - no) -- libbind="\${top_srcdir}/bind" -+ BUNDLED_BIND=yes - ;; - *) -- libbind="$use_libbind" -+ BIND9_LIBDIR="-L$libbind_libs" -+ BUNDLED_BIND=no - ;; - esac -+AM_CONDITIONAL([BUNDLED_BIND], [test "$BUNDLED_BIND" = yes]) -+AC_SUBST([BIND9_LIBDIR]) - - # OpenLDAP support. - AC_ARG_WITH(ldap, -@@ -562,7 +579,7 @@ fi - CFLAGS="$CFLAGS $STD_CWARNINGS" - - # Try to add the bind include directory --CFLAGS="$CFLAGS -I$libbind/include" -+CFLAGS="$CFLAGS -I$libbind" - - AC_C_FLEXIBLE_ARRAY_MEMBER - -diff -up dhcp-4.2.2/dhcpctl/Makefile.am.rh637017 dhcp-4.2.2/dhcpctl/Makefile.am ---- dhcp-4.2.2/dhcpctl/Makefile.am.rh637017 2009-10-28 05:12:30.000000000 +0100 -+++ dhcp-4.2.2/dhcpctl/Makefile.am 2011-08-11 17:28:58.924897535 +0200 -@@ -6,10 +6,10 @@ EXTRA_DIST = $(man_MANS) - - omshell_SOURCES = omshell.c - omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -- ../bind/lib/libdns.a ../bind/lib/libisc.a -+ $(BIND9_LIBDIR) -ldns-export -lisc-export - - libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c - - cltest_SOURCES = cltest.c - cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -- ../bind/lib/libdns.a ../bind/lib/libisc.a -\ No newline at end of file -+ $(BIND9_LIBDIR) -ldns-export -lisc-export -diff -up dhcp-4.2.2/Makefile.am.rh637017 dhcp-4.2.2/Makefile.am ---- dhcp-4.2.2/Makefile.am.rh637017 2010-03-25 00:30:38.000000000 +0100 -+++ dhcp-4.2.2/Makefile.am 2011-08-11 17:28:58.925897509 +0200 -@@ -21,7 +21,13 @@ EXTRA_DIST = RELNOTES LICENSE \ - util/bindvar.sh \ - bind/Makefile bind/bind.tar.gz bind/version.tmp - --SUBDIRS = bind includes tests common dst omapip client dhcpctl relay server -+if BUNDLED_BIND -+SUBDIRS = bind -+else -+SUBDIRS = -+endif -+ -+SUBDIRS += includes tests common dst omapip client dhcpctl relay server - - nobase_include_HEADERS = dhcpctl/dhcpctl.h - -diff -up dhcp-4.2.2/omapip/Makefile.am.rh637017 dhcp-4.2.2/omapip/Makefile.am ---- dhcp-4.2.2/omapip/Makefile.am.rh637017 2010-02-12 01:13:54.000000000 +0100 -+++ dhcp-4.2.2/omapip/Makefile.am 2011-08-11 17:28:58.939897149 +0200 -@@ -10,5 +10,5 @@ man_MANS = omapi.3 - EXTRA_DIST = $(man_MANS) - - svtest_SOURCES = test.c --svtest_LDADD = libomapi.a ../bind/lib/libdns.a ../bind/lib/libisc.a -+svtest_LDADD = libomapi.a $(BIND9_LIBDIR) -ldns-export -lisc-export - -diff -up dhcp-4.2.2/relay/Makefile.am.rh637017 dhcp-4.2.2/relay/Makefile.am ---- dhcp-4.2.2/relay/Makefile.am.rh637017 2009-10-28 05:12:30.000000000 +0100 -+++ dhcp-4.2.2/relay/Makefile.am 2011-08-11 17:28:58.940897123 +0200 -@@ -3,7 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst - sbin_PROGRAMS = dhcrelay - dhcrelay_SOURCES = dhcrelay.c - dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../bind/lib/libdns.a ../bind/lib/libisc.a -+ $(BIND9_LIBDIR) -ldns-export -lisc-export - man_MANS = dhcrelay.8 - EXTRA_DIST = $(man_MANS) - -diff -up dhcp-4.2.2/server/Makefile.am.rh637017 dhcp-4.2.2/server/Makefile.am ---- dhcp-4.2.2/server/Makefile.am.rh637017 2010-03-24 22:49:47.000000000 +0100 -+++ dhcp-4.2.2/server/Makefile.am 2011-08-11 17:28:58.944897021 +0200 -@@ -8,8 +8,7 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c - - dhcpd_CFLAGS = $(LDAP_CFLAGS) - dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../dhcpctl/libdhcpctl.a ../bind/lib/libdns.a \ -- ../bind/lib/libisc.a -+ ../dhcpctl/libdhcpctl.a $(BIND9_LIBDIR) -ldns-export -lisc-export - - man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 - EXTRA_DIST = $(man_MANS) diff --git a/src/patches/dhcp-4.2.2-sharedlib.patch b/src/patches/dhcp-4.2.2-sharedlib.patch deleted file mode 100644 index 74fe9f1c0..000000000 --- a/src/patches/dhcp-4.2.2-sharedlib.patch +++ /dev/null @@ -1,119 +0,0 @@ -diff -up dhcp-4.2.2/client/Makefile.am.sharedlib dhcp-4.2.2/client/Makefile.am ---- dhcp-4.2.2/client/Makefile.am.sharedlib 2011-09-09 16:35:56.000000000 +0200 -+++ dhcp-4.2.2/client/Makefile.am 2011-09-09 16:36:29.849007951 +0200 -@@ -4,7 +4,7 @@ dhclient_SOURCES = clparse.c dhclient.c - scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ - scripts/netbsd scripts/nextstep scripts/openbsd \ - scripts/solaris scripts/openwrt --dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -+dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \ - $(BIND9_LIBDIR) -ldns-export -lisc-export $(CAPNG_LDADD) - man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 - EXTRA_DIST = $(man_MANS) -diff -up dhcp-4.2.2/configure.ac.sharedlib dhcp-4.2.2/configure.ac ---- dhcp-4.2.2/configure.ac.sharedlib 2011-09-09 16:35:56.097000001 +0200 -+++ dhcp-4.2.2/configure.ac 2011-09-09 16:35:56.383000000 +0200 -@@ -30,7 +30,8 @@ fi - # Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API. - AC_USE_SYSTEM_EXTENSIONS - --AC_PROG_RANLIB -+# Use libtool to simplify building of shared libraries -+AC_PROG_LIBTOOL - AC_CONFIG_HEADERS([includes/config.h]) - - # we sometimes need to know byte order for building packets -diff -up dhcp-4.2.2/dhcpctl/Makefile.am.sharedlib dhcp-4.2.2/dhcpctl/Makefile.am ---- dhcp-4.2.2/dhcpctl/Makefile.am.sharedlib 2011-09-09 16:35:55.459000001 +0200 -+++ dhcp-4.2.2/dhcpctl/Makefile.am 2011-09-09 16:35:56.384000000 +0200 -@@ -1,15 +1,15 @@ - bin_PROGRAMS = omshell --lib_LIBRARIES = libdhcpctl.a -+lib_LTLIBRARIES = libdhcpctl.la - noinst_PROGRAMS = cltest - man_MANS = omshell.1 dhcpctl.3 - EXTRA_DIST = $(man_MANS) - - omshell_SOURCES = omshell.c --omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -+omshell_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \ - $(BIND9_LIBDIR) -ldns-export -lisc-export - --libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c -+libdhcpctl_la_SOURCES = dhcpctl.c callback.c remote.c - - cltest_SOURCES = cltest.c --cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -+cltest_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \ - $(BIND9_LIBDIR) -ldns-export -lisc-export -diff -up dhcp-4.2.2/dst/base64.c.sharedlib dhcp-4.2.2/dst/base64.c ---- dhcp-4.2.2/dst/base64.c.sharedlib 2009-11-20 02:49:01.000000000 +0100 -+++ dhcp-4.2.2/dst/base64.c 2011-09-09 16:35:56.385000000 +0200 -@@ -64,6 +64,7 @@ static const char rcsid[] = "$Id: base64 - - #include - -+#include "dst_internal.h" - #include "cdefs.h" - #include "osdep.h" - #include "arpa/nameser.h" -diff -up dhcp-4.2.2/dst/Makefile.am.sharedlib dhcp-4.2.2/dst/Makefile.am ---- dhcp-4.2.2/dst/Makefile.am.sharedlib 2007-05-29 18:32:10.000000000 +0200 -+++ dhcp-4.2.2/dst/Makefile.am 2011-09-09 16:35:56.386000000 +0200 -@@ -1,8 +1,8 @@ - AM_CPPFLAGS = -DMINIRES_LIB -DHMAC_MD5 - --lib_LIBRARIES = libdst.a -+lib_LTLIBRARIES = libdst.la - --libdst_a_SOURCES = dst_support.c dst_api.c hmac_link.c md5_dgst.c \ -+libdst_la_SOURCES = dst_support.c dst_api.c hmac_link.c md5_dgst.c \ - base64.c prandom.c - - EXTRA_DIST = dst_internal.h md5.h md5_locl.h -diff -up dhcp-4.2.2/omapip/Makefile.am.sharedlib dhcp-4.2.2/omapip/Makefile.am ---- dhcp-4.2.2/omapip/Makefile.am.sharedlib 2011-09-09 16:35:55.000000000 +0200 -+++ dhcp-4.2.2/omapip/Makefile.am 2011-09-09 16:37:36.734000324 +0200 -@@ -1,7 +1,7 @@ --lib_LIBRARIES = libomapi.a -+lib_LTLIBRARIES = libomapi.la - noinst_PROGRAMS = svtest - --libomapi_a_SOURCES = protocol.c buffer.c alloc.c result.c connection.c \ -+libomapi_la_SOURCES = protocol.c buffer.c alloc.c result.c connection.c \ - errwarn.c listener.c dispatch.c generic.c support.c \ - handle.c message.c convert.c hash.c auth.c inet_addr.c \ - array.c trace.c toisc.c iscprint.c isclib.c -@@ -10,5 +10,5 @@ man_MANS = omapi.3 - EXTRA_DIST = $(man_MANS) - - svtest_SOURCES = test.c --svtest_LDADD = libomapi.a $(BIND9_LIBDIR) -ldns-export -lisc-export -+svtest_LDADD = libomapi.la $(BIND9_LIBDIR) -ldns-export -lisc-export - -diff -up dhcp-4.2.2/relay/Makefile.am.sharedlib dhcp-4.2.2/relay/Makefile.am ---- dhcp-4.2.2/relay/Makefile.am.sharedlib 2011-09-09 16:35:56.000000000 +0200 -+++ dhcp-4.2.2/relay/Makefile.am 2011-09-09 16:37:57.058019749 +0200 -@@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst - - sbin_PROGRAMS = dhcrelay - dhcrelay_SOURCES = dhcrelay.c --dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -+dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \ - $(BIND9_LIBDIR) -ldns-export -lisc-export $(CAPNG_LDADD) - man_MANS = dhcrelay.8 - EXTRA_DIST = $(man_MANS) -diff -up dhcp-4.2.2/server/Makefile.am.sharedlib dhcp-4.2.2/server/Makefile.am ---- dhcp-4.2.2/server/Makefile.am.sharedlib 2011-09-09 16:35:56.000000000 +0200 -+++ dhcp-4.2.2/server/Makefile.am 2011-09-09 16:38:56.291004599 +0200 -@@ -7,8 +7,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c - dhcpv6.c mdb6.c ldap.c ldap_casa.c - - dhcpd_CFLAGS = $(LDAP_CFLAGS) --dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../dhcpctl/libdhcpctl.a $(BIND9_LIBDIR) -ldns-export -lisc-export \ -+dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \ -+ ../dhcpctl/libdhcpctl.la $(BIND9_LIBDIR) -ldns-export -lisc-export \ - $(CAPNG_LDADD) - - man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 diff --git a/src/patches/dhcp/dhcp-64_bit_lease_parse.patch b/src/patches/dhcp/dhcp-64_bit_lease_parse.patch new file mode 100644 index 000000000..a07b5b032 --- /dev/null +++ b/src/patches/dhcp/dhcp-64_bit_lease_parse.patch @@ -0,0 +1,75 @@ +diff -up dhcp-4.3.0a1/common/parse.c.64-bit_lease_parse dhcp-4.3.0a1/common/parse.c +--- dhcp-4.3.0a1/common/parse.c.64-bit_lease_parse 2013-12-11 01:25:12.000000000 +0100 ++++ dhcp-4.3.0a1/common/parse.c 2013-12-19 15:45:25.990771814 +0100 +@@ -938,8 +938,8 @@ TIME + parse_date_core(cfile) + struct parse *cfile; + { +- int guess; +- int tzoff, year, mon, mday, hour, min, sec; ++ TIME guess; ++ long int tzoff, year, mon, mday, hour, min, sec; + const char *val; + enum dhcp_token token; + static int months[11] = { 31, 59, 90, 120, 151, 181, +@@ -965,7 +965,7 @@ parse_date_core(cfile) + } + + skip_token(&val, NULL, cfile); /* consume number */ +- guess = atoi(val); ++ guess = atol(val); + + return((TIME)guess); + } +@@ -993,7 +993,7 @@ parse_date_core(cfile) + somebody invents a time machine, I think we can safely disregard + it. This actually works around a stupid Y2K bug that was present + in a very early beta release of dhcpd. */ +- year = atoi(val); ++ year = atol(val); + if (year > 1900) + year -= 1900; + +@@ -1039,7 +1039,7 @@ parse_date_core(cfile) + return((TIME)0); + } + skip_token(&val, NULL, cfile); /* consume day of month */ +- mday = atoi(val); ++ mday = atol(val); + + /* Hour... */ + token = peek_token(&val, NULL, cfile); +@@ -1050,7 +1050,7 @@ parse_date_core(cfile) + return((TIME)0); + } + skip_token(&val, NULL, cfile); /* consume hour */ +- hour = atoi(val); ++ hour = atol(val); + + /* Colon separating hour from minute... */ + token = peek_token(&val, NULL, cfile); +@@ -1072,7 +1072,7 @@ parse_date_core(cfile) + return((TIME)0); + } + skip_token(&val, NULL, cfile); /* consume minute */ +- min = atoi(val); ++ min = atol(val); + + /* Colon separating minute from second... */ + token = peek_token(&val, NULL, cfile); +@@ -1094,13 +1094,13 @@ parse_date_core(cfile) + return((TIME)0); + } + skip_token(&val, NULL, cfile); /* consume second */ +- sec = atoi(val); ++ sec = atol(val); + + tzoff = 0; + token = peek_token(&val, NULL, cfile); + if (token == NUMBER) { + skip_token(&val, NULL, cfile); /* consume tzoff */ +- tzoff = atoi(val); ++ tzoff = atol(val); + } else if (token != SEMI) { + skip_token(&val, NULL, cfile); + parse_warn(cfile, diff --git a/src/patches/dhcp-4.2.2-CLOEXEC.patch b/src/patches/dhcp/dhcp-CLOEXEC.patch similarity index 52% rename from src/patches/dhcp-4.2.2-CLOEXEC.patch rename to src/patches/dhcp/dhcp-CLOEXEC.patch index b07e2ff06..722865e4f 100644 --- a/src/patches/dhcp-4.2.2-CLOEXEC.patch +++ b/src/patches/dhcp/dhcp-CLOEXEC.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.2.2b1/client/clparse.c.cloexec dhcp-4.2.2b1/client/clparse.c ---- dhcp-4.2.2b1/client/clparse.c.cloexec 2011-07-01 14:13:30.973887714 +0200 -+++ dhcp-4.2.2b1/client/clparse.c 2011-07-01 14:15:15.021580693 +0200 -@@ -246,7 +246,7 @@ int read_client_conf_file (const char *n +diff -up dhcp-4.3.0a1/client/clparse.c.cloexec dhcp-4.3.0a1/client/clparse.c +--- dhcp-4.3.0a1/client/clparse.c.cloexec 2013-12-19 15:34:41.638886256 +0100 ++++ dhcp-4.3.0a1/client/clparse.c 2013-12-19 15:34:41.657885985 +0100 +@@ -253,7 +253,7 @@ int read_client_conf_file (const char *n int token; isc_result_t status; @@ -10,7 +10,7 @@ diff -up dhcp-4.2.2b1/client/clparse.c.cloexec dhcp-4.2.2b1/client/clparse.c return uerr2isc (errno); cfile = NULL; -@@ -283,7 +283,7 @@ void read_client_leases () +@@ -290,7 +290,7 @@ void read_client_leases () /* Open the lease file. If we can't open it, just return - we can safely trust the server to remember our state. */ @@ -19,9 +19,9 @@ diff -up dhcp-4.2.2b1/client/clparse.c.cloexec dhcp-4.2.2b1/client/clparse.c return; cfile = NULL; -diff -up dhcp-4.2.2b1/client/dhclient.c.cloexec dhcp-4.2.2b1/client/dhclient.c ---- dhcp-4.2.2b1/client/dhclient.c.cloexec 2011-07-01 14:13:30.970887717 +0200 -+++ dhcp-4.2.2b1/client/dhclient.c 2011-07-01 14:16:51.485930388 +0200 +diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c +--- dhcp-4.3.0a1/client/dhclient.c.cloexec 2013-12-19 15:34:41.629886384 +0100 ++++ dhcp-4.3.0a1/client/dhclient.c 2013-12-19 15:36:41.608180467 +0100 @@ -148,11 +148,11 @@ main(int argc, char **argv) { /* Make sure that file descriptors 0 (stdin), 1, (stdout), and 2 (stderr) are open. To do this, we assume that when we @@ -37,16 +37,16 @@ diff -up dhcp-4.2.2b1/client/dhclient.c.cloexec dhcp-4.2.2b1/client/dhclient.c if (fd == 2) log_perror = 0; /* No sense logging to /dev/null. */ else if (fd != -1) -@@ -506,7 +506,7 @@ main(int argc, char **argv) { +@@ -504,7 +504,7 @@ main(int argc, char **argv) { + long temp; int e; - oldpid = 0; - if ((pidfd = fopen(path_dhclient_pid, "r")) != NULL) { + if ((pidfd = fopen(path_dhclient_pid, "re")) != NULL) { e = fscanf(pidfd, "%ld\n", &temp); oldpid = (pid_t)temp; -@@ -548,7 +548,7 @@ main(int argc, char **argv) { +@@ -554,7 +554,7 @@ main(int argc, char **argv) { strncpy(new_path_dhclient_pid, path_dhclient_pid, pfx); sprintf(new_path_dhclient_pid + pfx, "-%s.pid", ip->name); @@ -55,7 +55,7 @@ diff -up dhcp-4.2.2b1/client/dhclient.c.cloexec dhcp-4.2.2b1/client/dhclient.c e = fscanf(pidfd, "%ld\n", &temp); oldpid = (pid_t)temp; -@@ -573,7 +573,7 @@ main(int argc, char **argv) { +@@ -579,7 +579,7 @@ main(int argc, char **argv) { int dhc_running = 0; char procfn[256] = ""; @@ -64,7 +64,7 @@ diff -up dhcp-4.2.2b1/client/dhclient.c.cloexec dhcp-4.2.2b1/client/dhclient.c if ((fscanf(pidfp, "%ld", &temp)==1) && ((dhcpid=(pid_t)temp) > 0)) { snprintf(procfn,256,"/proc/%u",dhcpid); dhc_running = (access(procfn, F_OK) == 0); -@@ -2995,7 +2995,7 @@ void rewrite_client_leases () +@@ -3077,7 +3077,7 @@ void rewrite_client_leases () if (leaseFile != NULL) fclose (leaseFile); @@ -73,7 +73,7 @@ diff -up dhcp-4.2.2b1/client/dhclient.c.cloexec dhcp-4.2.2b1/client/dhclient.c if (leaseFile == NULL) { log_error ("can't create %s: %m", path_dhclient_db); return; -@@ -3105,7 +3105,7 @@ write_duid(struct data_string *duid) +@@ -3261,7 +3261,7 @@ write_duid(struct data_string *duid) return DHCP_R_INVALIDARG; if (leaseFile == NULL) { /* XXX? */ @@ -82,7 +82,7 @@ diff -up dhcp-4.2.2b1/client/dhclient.c.cloexec dhcp-4.2.2b1/client/dhclient.c if (leaseFile == NULL) { log_error("can't create %s: %m", path_dhclient_db); return ISC_R_IOERROR; -@@ -3285,7 +3285,7 @@ int write_client_lease (client, lease, r +@@ -3441,7 +3441,7 @@ int write_client_lease (client, lease, r return 1; if (leaseFile == NULL) { /* XXX */ @@ -91,20 +91,20 @@ diff -up dhcp-4.2.2b1/client/dhclient.c.cloexec dhcp-4.2.2b1/client/dhclient.c if (leaseFile == NULL) { log_error ("can't create %s: %m", path_dhclient_db); return 0; -@@ -3772,9 +3772,9 @@ void go_daemon () - close(2); +@@ -3952,9 +3952,9 @@ void go_daemon () + (void) close(2); /* Reopen them on /dev/null. */ -- open("/dev/null", O_RDWR); -- open("/dev/null", O_RDWR); -- open("/dev/null", O_RDWR); -+ open("/dev/null", O_RDWR | O_CLOEXEC); -+ open("/dev/null", O_RDWR | O_CLOEXEC); -+ open("/dev/null", O_RDWR | O_CLOEXEC); +- (void) open("/dev/null", O_RDWR); +- (void) open("/dev/null", O_RDWR); +- (void) open("/dev/null", O_RDWR); ++ (void) open("/dev/null", O_RDWR | O_CLOEXEC); ++ (void) open("/dev/null", O_RDWR | O_CLOEXEC); ++ (void) open("/dev/null", O_RDWR | O_CLOEXEC); write_client_pid_file (); -@@ -3791,14 +3791,14 @@ void write_client_pid_file () +@@ -3971,14 +3971,14 @@ void write_client_pid_file () return; } @@ -121,10 +121,10 @@ diff -up dhcp-4.2.2b1/client/dhclient.c.cloexec dhcp-4.2.2b1/client/dhclient.c if (!pf) { close(pfdesc); log_error ("Can't fdopen %s: %m", path_dhclient_pid); -diff -up dhcp-4.2.2b1/common/bpf.c.cloexec dhcp-4.2.2b1/common/bpf.c ---- dhcp-4.2.2b1/common/bpf.c.cloexec 2011-07-01 14:13:30.976887712 +0200 -+++ dhcp-4.2.2b1/common/bpf.c 2011-07-01 14:13:31.030887673 +0200 -@@ -94,7 +94,7 @@ int if_register_bpf (info) +diff -up dhcp-4.3.0a1/common/bpf.c.cloexec dhcp-4.3.0a1/common/bpf.c +--- dhcp-4.3.0a1/common/bpf.c.cloexec 2013-12-19 15:34:41.640886227 +0100 ++++ dhcp-4.3.0a1/common/bpf.c 2013-12-19 15:34:41.661885928 +0100 +@@ -95,7 +95,7 @@ int if_register_bpf (info) for (b = 0; 1; b++) { /* %Audit% 31 bytes max. %2004.06.17,Safe% */ sprintf(filename, BPF_FORMAT, b); @@ -133,31 +133,10 @@ diff -up dhcp-4.2.2b1/common/bpf.c.cloexec dhcp-4.2.2b1/common/bpf.c if (sock < 0) { if (errno == EBUSY) { continue; -diff -up dhcp-4.2.2b1/common/discover.c.cloexec dhcp-4.2.2b1/common/discover.c ---- dhcp-4.2.2b1/common/discover.c.cloexec 2011-06-27 18:18:20.000000000 +0200 -+++ dhcp-4.2.2b1/common/discover.c 2011-07-01 14:13:31.031887673 +0200 -@@ -421,7 +421,7 @@ begin_iface_scan(struct iface_conf_list - int len; - int i; - -- ifaces->fp = fopen("/proc/net/dev", "r"); -+ ifaces->fp = fopen("/proc/net/dev", "re"); - if (ifaces->fp == NULL) { - log_error("Error opening '/proc/net/dev' to list interfaces"); - return 0; -@@ -456,7 +456,7 @@ begin_iface_scan(struct iface_conf_list - - #ifdef DHCPv6 - if (local_family == AF_INET6) { -- ifaces->fp6 = fopen("/proc/net/if_inet6", "r"); -+ ifaces->fp6 = fopen("/proc/net/if_inet6", "re"); - if (ifaces->fp6 == NULL) { - log_error("Error opening '/proc/net/if_inet6' to " - "list IPv6 interfaces; %m"); -diff -up dhcp-4.2.2b1/common/dlpi.c.cloexec dhcp-4.2.2b1/common/dlpi.c ---- dhcp-4.2.2b1/common/dlpi.c.cloexec 2011-07-01 14:13:30.977887712 +0200 -+++ dhcp-4.2.2b1/common/dlpi.c 2011-07-01 14:13:31.032887673 +0200 -@@ -806,7 +806,7 @@ dlpiopen(const char *ifname) { +diff -up dhcp-4.3.0a1/common/dlpi.c.cloexec dhcp-4.3.0a1/common/dlpi.c +--- dhcp-4.3.0a1/common/dlpi.c.cloexec 2013-12-19 15:34:41.641886213 +0100 ++++ dhcp-4.3.0a1/common/dlpi.c 2013-12-19 15:34:41.662885914 +0100 +@@ -804,7 +804,7 @@ dlpiopen(const char *ifname) { } *dp = '\0'; @@ -166,9 +145,9 @@ diff -up dhcp-4.2.2b1/common/dlpi.c.cloexec dhcp-4.2.2b1/common/dlpi.c } /* -diff -up dhcp-4.2.2b1/common/nit.c.cloexec dhcp-4.2.2b1/common/nit.c ---- dhcp-4.2.2b1/common/nit.c.cloexec 2011-07-01 14:13:30.978887712 +0200 -+++ dhcp-4.2.2b1/common/nit.c 2011-07-01 14:13:31.033887672 +0200 +diff -up dhcp-4.3.0a1/common/nit.c.cloexec dhcp-4.3.0a1/common/nit.c +--- dhcp-4.3.0a1/common/nit.c.cloexec 2013-12-19 15:34:41.642886199 +0100 ++++ dhcp-4.3.0a1/common/nit.c 2013-12-19 15:34:41.662885914 +0100 @@ -81,7 +81,7 @@ int if_register_nit (info) struct strioctl sio; @@ -178,10 +157,10 @@ diff -up dhcp-4.2.2b1/common/nit.c.cloexec dhcp-4.2.2b1/common/nit.c if (sock < 0) log_fatal ("Can't open NIT device for %s: %m", info -> name); -diff -up dhcp-4.2.2b1/common/resolv.c.cloexec dhcp-4.2.2b1/common/resolv.c ---- dhcp-4.2.2b1/common/resolv.c.cloexec 2009-11-20 02:49:01.000000000 +0100 -+++ dhcp-4.2.2b1/common/resolv.c 2011-07-01 14:13:31.033887672 +0200 -@@ -49,7 +49,7 @@ void read_resolv_conf (parse_time) +diff -up dhcp-4.3.0a1/common/resolv.c.cloexec dhcp-4.3.0a1/common/resolv.c +--- dhcp-4.3.0a1/common/resolv.c.cloexec 2013-12-11 01:25:12.000000000 +0100 ++++ dhcp-4.3.0a1/common/resolv.c 2013-12-19 15:34:41.663885900 +0100 +@@ -50,7 +50,7 @@ void read_resolv_conf (parse_time) struct domain_search_list *dp, *dl, *nd; isc_result_t status; @@ -190,9 +169,9 @@ diff -up dhcp-4.2.2b1/common/resolv.c.cloexec dhcp-4.2.2b1/common/resolv.c log_error ("Can't open %s: %m", path_resolv_conf); return; } -diff -up dhcp-4.2.2b1/common/upf.c.cloexec dhcp-4.2.2b1/common/upf.c ---- dhcp-4.2.2b1/common/upf.c.cloexec 2011-07-01 14:13:30.979887712 +0200 -+++ dhcp-4.2.2b1/common/upf.c 2011-07-01 14:13:31.034887671 +0200 +diff -up dhcp-4.3.0a1/common/upf.c.cloexec dhcp-4.3.0a1/common/upf.c +--- dhcp-4.3.0a1/common/upf.c.cloexec 2013-12-19 15:34:41.642886199 +0100 ++++ dhcp-4.3.0a1/common/upf.c 2013-12-19 15:34:41.663885900 +0100 @@ -77,7 +77,7 @@ int if_register_upf (info) /* %Audit% Cannot exceed 36 bytes. %2004.06.17,Safe% */ sprintf(filename, "/dev/pf/pfilt%d", b); @@ -202,70 +181,10 @@ diff -up dhcp-4.2.2b1/common/upf.c.cloexec dhcp-4.2.2b1/common/upf.c if (sock < 0) { if (errno == EBUSY) { continue; -diff -up dhcp-4.2.2b1/dst/dst_api.c.cloexec dhcp-4.2.2b1/dst/dst_api.c ---- dhcp-4.2.2b1/dst/dst_api.c.cloexec 2009-10-29 01:46:48.000000000 +0100 -+++ dhcp-4.2.2b1/dst/dst_api.c 2011-07-01 14:13:31.035887670 +0200 -@@ -437,7 +437,7 @@ dst_s_write_private_key(const DST_KEY *k - PRIVATE_KEY, PATH_MAX); - - /* Do not overwrite an existing file */ -- if ((fp = dst_s_fopen(file, "w", 0600)) != NULL) { -+ if ((fp = dst_s_fopen(file, "we", 0600)) != NULL) { - int nn; - if ((nn = fwrite(encoded_block, 1, len, fp)) != len) { - EREPORT(("dst_write_private_key(): Write failure on %s %d != %d errno=%d\n", -@@ -494,7 +494,7 @@ dst_s_read_public_key(const char *in_nam - * flags, proto, alg stored as decimal (or hex numbers FIXME). - * (FIXME: handle parentheses for line continuation.) - */ -- if ((fp = dst_s_fopen(name, "r", 0)) == NULL) { -+ if ((fp = dst_s_fopen(name, "re", 0)) == NULL) { - EREPORT(("dst_read_public_key(): Public Key not found %s\n", - name)); - return (NULL); -@@ -620,7 +620,7 @@ dst_s_write_public_key(const DST_KEY *ke - return (0); - } - /* create public key file */ -- if ((fp = dst_s_fopen(filename, "w+", 0644)) == NULL) { -+ if ((fp = dst_s_fopen(filename, "w+e", 0644)) == NULL) { - EREPORT(("DST_write_public_key: open of file:%s failed (errno=%d)\n", - filename, errno)); - return (0); -@@ -854,7 +854,7 @@ dst_s_read_private_key_file(char *name, - return (0); - } - /* first check if we can find the key file */ -- if ((fp = dst_s_fopen(filename, "r", 0)) == NULL) { -+ if ((fp = dst_s_fopen(filename, "re", 0)) == NULL) { - EREPORT(("dst_s_read_private_key_file: Could not open file %s in directory %s\n", - filename, dst_path[0] ? dst_path : - (char *) getcwd(NULL, PATH_MAX - 1))); -diff -up dhcp-4.2.2b1/dst/prandom.c.cloexec dhcp-4.2.2b1/dst/prandom.c ---- dhcp-4.2.2b1/dst/prandom.c.cloexec 2009-11-20 02:49:01.000000000 +0100 -+++ dhcp-4.2.2b1/dst/prandom.c 2011-07-01 14:13:31.035887670 +0200 -@@ -269,7 +269,7 @@ get_dev_random(u_char *output, unsigned - - s = stat("/dev/random", &st); - if (s == 0 && S_ISCHR(st.st_mode)) { -- if ((fd = open("/dev/random", O_RDONLY | O_NONBLOCK)) != -1) { -+ if ((fd = open("/dev/random", O_RDONLY | O_NONBLOCK | O_CLOEXEC)) != -1) { - if ((n = read(fd, output, size)) < 0) - n = 0; - close(fd); -@@ -480,7 +480,7 @@ digest_file(dst_work *work) - work->file_digest = dst_free_key(work->file_digest); - return (0); - } -- if ((fp = fopen(name, "r")) == NULL) -+ if ((fp = fopen(name, "re")) == NULL) - return (0); - for (no = 0; (i = fread(buf, sizeof(*buf), sizeof(buf), fp)) > 0; - no += i) -diff -up dhcp-4.2.2b1/omapip/trace.c.cloexec dhcp-4.2.2b1/omapip/trace.c ---- dhcp-4.2.2b1/omapip/trace.c.cloexec 2010-05-27 02:34:57.000000000 +0200 -+++ dhcp-4.2.2b1/omapip/trace.c 2011-07-01 14:13:31.036887669 +0200 -@@ -141,10 +141,10 @@ isc_result_t trace_begin (const char *fi +diff -up dhcp-4.3.0a1/omapip/trace.c.cloexec dhcp-4.3.0a1/omapip/trace.c +--- dhcp-4.3.0a1/omapip/trace.c.cloexec 2013-12-11 01:01:03.000000000 +0100 ++++ dhcp-4.3.0a1/omapip/trace.c 2013-12-19 15:34:41.663885900 +0100 +@@ -142,10 +142,10 @@ isc_result_t trace_begin (const char *fi return DHCP_R_INVALIDARG; } @@ -278,7 +197,7 @@ diff -up dhcp-4.2.2b1/omapip/trace.c.cloexec dhcp-4.2.2b1/omapip/trace.c 0600); } -@@ -431,7 +431,7 @@ void trace_file_replay (const char *file +@@ -433,7 +433,7 @@ void trace_file_replay (const char *file isc_result_t result; int len; @@ -287,10 +206,10 @@ diff -up dhcp-4.2.2b1/omapip/trace.c.cloexec dhcp-4.2.2b1/omapip/trace.c if (!traceinfile) { log_error("Can't open tracefile %s: %m", filename); return; -diff -up dhcp-4.2.2b1/relay/dhcrelay.c.cloexec dhcp-4.2.2b1/relay/dhcrelay.c ---- dhcp-4.2.2b1/relay/dhcrelay.c.cloexec 2011-05-10 15:07:37.000000000 +0200 -+++ dhcp-4.2.2b1/relay/dhcrelay.c 2011-07-01 14:18:07.630209767 +0200 -@@ -183,11 +183,11 @@ main(int argc, char **argv) { +diff -up dhcp-4.3.0a1/relay/dhcrelay.c.cloexec dhcp-4.3.0a1/relay/dhcrelay.c +--- dhcp-4.3.0a1/relay/dhcrelay.c.cloexec 2013-12-13 22:26:21.000000000 +0100 ++++ dhcp-4.3.0a1/relay/dhcrelay.c 2013-12-19 15:34:41.664885886 +0100 +@@ -193,11 +193,11 @@ main(int argc, char **argv) { /* Make sure that file descriptors 0(stdin), 1,(stdout), and 2(stderr) are open. To do this, we assume that when we open a file the lowest available file descriptor is used. */ @@ -305,7 +224,7 @@ diff -up dhcp-4.2.2b1/relay/dhcrelay.c.cloexec dhcp-4.2.2b1/relay/dhcrelay.c if (fd == 2) log_perror = 0; /* No sense logging to /dev/null. */ else if (fd != -1) -@@ -540,13 +540,13 @@ main(int argc, char **argv) { +@@ -564,13 +564,13 @@ main(int argc, char **argv) { if (no_pid_file == ISC_FALSE) { pfdesc = open(path_dhcrelay_pid, @@ -321,10 +240,10 @@ diff -up dhcp-4.2.2b1/relay/dhcrelay.c.cloexec dhcp-4.2.2b1/relay/dhcrelay.c if (!pf) log_error("Can't fdopen %s: %m", path_dhcrelay_pid); -diff -up dhcp-4.2.2b1/server/confpars.c.cloexec dhcp-4.2.2b1/server/confpars.c ---- dhcp-4.2.2b1/server/confpars.c.cloexec 2010-10-14 00:34:45.000000000 +0200 -+++ dhcp-4.2.2b1/server/confpars.c 2011-07-01 14:13:31.039887666 +0200 -@@ -116,7 +116,7 @@ isc_result_t read_conf_file (const char +diff -up dhcp-4.3.0a1/server/confpars.c.cloexec dhcp-4.3.0a1/server/confpars.c +--- dhcp-4.3.0a1/server/confpars.c.cloexec 2013-12-11 01:25:12.000000000 +0100 ++++ dhcp-4.3.0a1/server/confpars.c 2013-12-19 15:34:41.665885871 +0100 +@@ -117,7 +117,7 @@ isc_result_t read_conf_file (const char } #endif @@ -333,10 +252,10 @@ diff -up dhcp-4.2.2b1/server/confpars.c.cloexec dhcp-4.2.2b1/server/confpars.c if (leasep) { log_error ("Can't open lease database %s: %m --", path_dhcpd_db); -diff -up dhcp-4.2.2b1/server/db.c.cloexec dhcp-4.2.2b1/server/db.c ---- dhcp-4.2.2b1/server/db.c.cloexec 2010-09-14 00:15:26.000000000 +0200 -+++ dhcp-4.2.2b1/server/db.c 2011-07-01 14:13:31.040887665 +0200 -@@ -1035,7 +1035,7 @@ void db_startup (testp) +diff -up dhcp-4.3.0a1/server/db.c.cloexec dhcp-4.3.0a1/server/db.c +--- dhcp-4.3.0a1/server/db.c.cloexec 2013-12-11 01:25:12.000000000 +0100 ++++ dhcp-4.3.0a1/server/db.c 2013-12-19 15:34:41.666885857 +0100 +@@ -1081,7 +1081,7 @@ void db_startup (testp) } #endif if (!testp) { @@ -345,7 +264,7 @@ diff -up dhcp-4.2.2b1/server/db.c.cloexec dhcp-4.2.2b1/server/db.c if (!db_file) log_fatal ("Can't open %s for append.", path_dhcpd_db); expire_all_pools (); -@@ -1083,12 +1083,12 @@ int new_lease_file () +@@ -1129,12 +1129,12 @@ int new_lease_file () path_dhcpd_db, (int)t) >= sizeof newfname) log_fatal("new_lease_file: lease file path too long"); @@ -360,10 +279,10 @@ diff -up dhcp-4.2.2b1/server/db.c.cloexec dhcp-4.2.2b1/server/db.c log_error("Can't fdopen new lease file: %m"); close(db_fd); goto fdfail; -diff -up dhcp-4.2.2b1/server/dhcpd.c.cloexec dhcp-4.2.2b1/server/dhcpd.c ---- dhcp-4.2.2b1/server/dhcpd.c.cloexec 2011-04-21 16:08:15.000000000 +0200 -+++ dhcp-4.2.2b1/server/dhcpd.c 2011-07-01 14:19:40.354124505 +0200 -@@ -270,11 +270,11 @@ main(int argc, char **argv) { +diff -up dhcp-4.3.0a1/server/dhcpd.c.cloexec dhcp-4.3.0a1/server/dhcpd.c +--- dhcp-4.3.0a1/server/dhcpd.c.cloexec 2013-12-13 22:26:01.000000000 +0100 ++++ dhcp-4.3.0a1/server/dhcpd.c 2013-12-19 15:37:17.258674472 +0100 +@@ -193,11 +193,11 @@ main(int argc, char **argv) { /* Make sure that file descriptors 0 (stdin), 1, (stdout), and 2 (stderr) are open. To do this, we assume that when we open a file the lowest available file descriptor is used. */ @@ -378,7 +297,7 @@ diff -up dhcp-4.2.2b1/server/dhcpd.c.cloexec dhcp-4.2.2b1/server/dhcpd.c if (fd == 2) log_perror = 0; /* No sense logging to /dev/null. */ else if (fd != -1) -@@ -793,7 +793,7 @@ main(int argc, char **argv) { +@@ -716,7 +716,7 @@ main(int argc, char **argv) { */ if (no_pid_file == ISC_FALSE) { /*Read previous pid file. */ @@ -387,7 +306,7 @@ diff -up dhcp-4.2.2b1/server/dhcpd.c.cloexec dhcp-4.2.2b1/server/dhcpd.c status = read(i, pbuf, (sizeof pbuf) - 1); close (i); if (status > 0) { -@@ -812,7 +812,7 @@ main(int argc, char **argv) { +@@ -735,7 +735,7 @@ main(int argc, char **argv) { } /* Write new pid file. */ @@ -396,23 +315,23 @@ diff -up dhcp-4.2.2b1/server/dhcpd.c.cloexec dhcp-4.2.2b1/server/dhcpd.c if (i >= 0) { sprintf(pbuf, "%d\n", (int) getpid()); IGNORE_RET (write(i, pbuf, strlen(pbuf))); -@@ -840,9 +840,9 @@ main(int argc, char **argv) { - close(2); +@@ -763,9 +763,9 @@ main(int argc, char **argv) { + (void) close(2); /* Reopen them on /dev/null. */ -- open("/dev/null", O_RDWR); -- open("/dev/null", O_RDWR); -- open("/dev/null", O_RDWR); -+ open("/dev/null", O_RDWR | O_CLOEXEC); -+ open("/dev/null", O_RDWR | O_CLOEXEC); -+ open("/dev/null", O_RDWR | O_CLOEXEC); +- (void) open("/dev/null", O_RDWR); +- (void) open("/dev/null", O_RDWR); +- (void) open("/dev/null", O_RDWR); ++ (void) open("/dev/null", O_RDWR | O_CLOEXEC); ++ (void) open("/dev/null", O_RDWR | O_CLOEXEC); ++ (void) open("/dev/null", O_RDWR | O_CLOEXEC); log_perror = 0; /* No sense logging to /dev/null. */ IGNORE_RET (chdir("/")); -diff -up dhcp-4.2.2b1/server/ldap.c.cloexec dhcp-4.2.2b1/server/ldap.c ---- dhcp-4.2.2b1/server/ldap.c.cloexec 2010-03-25 16:26:58.000000000 +0100 -+++ dhcp-4.2.2b1/server/ldap.c 2011-07-01 14:13:31.043887665 +0200 -@@ -685,7 +685,7 @@ ldap_start (void) +diff -up dhcp-4.3.0a1/server/ldap.c.cloexec dhcp-4.3.0a1/server/ldap.c +--- dhcp-4.3.0a1/server/ldap.c.cloexec 2013-12-11 01:25:12.000000000 +0100 ++++ dhcp-4.3.0a1/server/ldap.c 2013-12-19 15:34:41.667885843 +0100 +@@ -684,7 +684,7 @@ ldap_start (void) if (ldap_debug_file != NULL && ldap_debug_fd == -1) { diff --git a/src/patches/dhcp-4.2.0-PPP.patch b/src/patches/dhcp/dhcp-PPP.patch similarity index 59% rename from src/patches/dhcp-4.2.0-PPP.patch rename to src/patches/dhcp/dhcp-PPP.patch index bef2be7f0..5d022e432 100644 --- a/src/patches/dhcp-4.2.0-PPP.patch +++ b/src/patches/dhcp/dhcp-PPP.patch @@ -1,7 +1,31 @@ -diff -up dhcp-4.2.0-P1/client/dhc6.c.PPP dhcp-4.2.0-P1/client/dhc6.c ---- dhcp-4.2.0-P1/client/dhc6.c.PPP 2010-11-05 10:47:37.000000000 +0100 -+++ dhcp-4.2.0-P1/client/dhc6.c 2010-11-09 15:54:12.000000000 +0100 -@@ -129,7 +129,7 @@ extern int stateless; +diff -up dhcp-4.3.1b1/client/dhc6.c.mRfpsB dhcp-4.3.1b1/client/dhc6.c +--- dhcp-4.3.1b1/client/dhc6.c.mRfpsB 2014-07-10 17:48:03.779424870 +0200 ++++ dhcp-4.3.1b1/client/dhc6.c 2014-07-10 17:48:03.795424644 +0200 +@@ -5088,7 +5088,8 @@ make_client6_options(struct client_state + */ + if ((oc = lookup_option(&dhcpv6_universe, *op, + D6O_CLIENTID)) == NULL) { +- if (!option_cache(&oc, &default_duid, NULL, clientid_option, ++ if (default_duid.len == 0 || ++ !option_cache(&oc, &default_duid, NULL, clientid_option, + MDL)) + log_fatal("Failure assembling a DUID."); + +diff -up dhcp-4.3.1b1/client/dhclient.c.mRfpsB dhcp-4.3.1b1/client/dhclient.c +--- dhcp-4.3.1b1/client/dhclient.c.mRfpsB 2014-07-10 17:39:25.853763858 +0200 ++++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:49:49.882925843 +0200 +@@ -948,8 +948,8 @@ main(int argc, char **argv) { + if (default_duid.buffer != NULL) + data_string_forget(&default_duid, MDL); + +- form_duid(&default_duid, MDL); +- write_duid(&default_duid); ++ if (form_duid(&default_duid, MDL) == ISC_R_SUCCESS) ++ write_duid(&default_duid); + } + } + +@@ -3267,7 +3267,7 @@ write_options(struct client_state *clien * is not how it is intended. Upcoming rearchitecting the client should * address this "one daemon model." */ @@ -10,7 +34,7 @@ diff -up dhcp-4.2.0-P1/client/dhc6.c.PPP dhcp-4.2.0-P1/client/dhc6.c form_duid(struct data_string *duid, const char *file, int line) { struct interface_info *ip; -@@ -141,6 +141,15 @@ form_duid(struct data_string *duid, cons +@@ -3280,6 +3280,15 @@ form_duid(struct data_string *duid, cons if (ip == NULL) log_fatal("Impossible condition at %s:%d.", MDL); @@ -26,43 +50,19 @@ diff -up dhcp-4.2.0-P1/client/dhc6.c.PPP dhcp-4.2.0-P1/client/dhc6.c if ((ip->hw_address.hlen == 0) || (ip->hw_address.hlen > sizeof(ip->hw_address.hbuf))) log_fatal("Impossible hardware address length at %s:%d.", MDL); -@@ -176,6 +185,8 @@ form_duid(struct data_string *duid, cons - memcpy(duid->buffer->data + 4, ip->hw_address.hbuf + 1, - ip->hw_address.hlen - 1); +@@ -3323,6 +3332,8 @@ form_duid(struct data_string *duid, cons + log_info("Created duid %s.", str); + dfree(str, MDL); } -+ ++ + return ISC_R_SUCCESS; } - /* -@@ -5289,7 +5300,8 @@ make_client6_options(struct client_state - */ - if ((oc = lookup_option(&dhcpv6_universe, *op, - D6O_CLIENTID)) == NULL) { -- if (!option_cache(&oc, &default_duid, NULL, clientid_option, -+ if (default_duid.len == 0 || -+ !option_cache(&oc, &default_duid, NULL, clientid_option, - MDL)) - log_fatal("Failure assembling a DUID."); - -diff -up dhcp-4.2.0-P1/client/dhclient.c.PPP dhcp-4.2.0-P1/client/dhclient.c ---- dhcp-4.2.0-P1/client/dhclient.c.PPP 2010-11-05 10:47:37.000000000 +0100 -+++ dhcp-4.2.0-P1/client/dhclient.c 2010-11-09 15:37:26.000000000 +0100 -@@ -911,8 +911,8 @@ main(int argc, char **argv) { - if (default_duid.buffer != NULL) - data_string_forget(&default_duid, MDL); - -- form_duid(&default_duid, MDL); -- write_duid(&default_duid); -+ if (form_duid(&default_duid, MDL) == ISC_R_SUCCESS) -+ write_duid(&default_duid); - } - - for (ip = interfaces ; ip != NULL ; ip = ip->next) { -diff -up dhcp-4.2.0-P1/common/bpf.c.PPP dhcp-4.2.0-P1/common/bpf.c ---- dhcp-4.2.0-P1/common/bpf.c.PPP 2010-11-05 10:47:37.000000000 +0100 -+++ dhcp-4.2.0-P1/common/bpf.c 2010-11-09 15:42:42.000000000 +0100 -@@ -599,6 +599,22 @@ get_hw_addr(const char *name, struct har + /* Write the default DUID to the lease store. */ +diff -up dhcp-4.3.1b1/common/bpf.c.mRfpsB dhcp-4.3.1b1/common/bpf.c +--- dhcp-4.3.1b1/common/bpf.c.mRfpsB 2014-07-10 17:39:25.797764653 +0200 ++++ dhcp-4.3.1b1/common/bpf.c 2014-07-10 17:48:03.797424616 +0200 +@@ -600,6 +600,22 @@ get_hw_addr(const char *name, struct har memcpy(&hw->hbuf[1], LLADDR(sa), sa->sdl_alen); break; #endif /* IFT_FDDI */ @@ -85,12 +85,12 @@ diff -up dhcp-4.2.0-P1/common/bpf.c.PPP dhcp-4.2.0-P1/common/bpf.c default: log_fatal("Unsupported device type %d for \"%s\"", sa->sdl_type, name); -diff -up dhcp-4.2.0-P1/common/lpf.c.PPP dhcp-4.2.0-P1/common/lpf.c ---- dhcp-4.2.0-P1/common/lpf.c.PPP 2010-11-05 10:47:37.000000000 +0100 -+++ dhcp-4.2.0-P1/common/lpf.c 2010-11-09 15:45:40.000000000 +0100 -@@ -502,6 +502,22 @@ get_hw_addr(const char *name, struct har +diff -up dhcp-4.3.1b1/common/lpf.c.mRfpsB dhcp-4.3.1b1/common/lpf.c +--- dhcp-4.3.1b1/common/lpf.c.mRfpsB 2014-07-10 17:39:25.744765404 +0200 ++++ dhcp-4.3.1b1/common/lpf.c 2014-07-10 17:48:03.797424616 +0200 +@@ -511,6 +511,22 @@ get_hw_addr(const char *name, struct har hw->hbuf[0] = HTYPE_FDDI; - memcpy(&hw->hbuf[1], sa->sa_data, 16); + memcpy(&hw->hbuf[1], sa->sa_data, 6); break; +#if defined(ARPHRD_PPP) + case ARPHRD_PPP: @@ -111,34 +111,34 @@ diff -up dhcp-4.2.0-P1/common/lpf.c.PPP dhcp-4.2.0-P1/common/lpf.c default: log_fatal("Unsupported device type %ld for \"%s\"", (long int)sa->sa_family, name); -diff -up dhcp-4.2.0-P1/includes/dhcpd.h.PPP dhcp-4.2.0-P1/includes/dhcpd.h ---- dhcp-4.2.0-P1/includes/dhcpd.h.PPP 2010-11-05 10:47:37.000000000 +0100 -+++ dhcp-4.2.0-P1/includes/dhcpd.h 2010-11-09 15:46:58.000000000 +0100 -@@ -2733,7 +2733,7 @@ void dhcpv4_client_assignments(void); - void dhcpv6_client_assignments(void); +diff -up dhcp-4.3.1b1/includes/dhcpd.h.mRfpsB dhcp-4.3.1b1/includes/dhcpd.h +--- dhcp-4.3.1b1/includes/dhcpd.h.mRfpsB 2014-07-10 17:48:03.761425124 +0200 ++++ dhcp-4.3.1b1/includes/dhcpd.h 2014-07-10 17:48:03.798424601 +0200 +@@ -2839,7 +2839,7 @@ void client_dns_remove(struct client_sta - /* dhc6.c */ + void dhcpv4_client_assignments(void); + void dhcpv6_client_assignments(void); -void form_duid(struct data_string *duid, const char *file, int line); +isc_result_t form_duid(struct data_string *duid, const char *file, int line); - void dhc6_lease_destroy(struct dhc6_lease **src, const char *file, int line); - void start_init6(struct client_state *client); - void start_info_request6(struct client_state *client); -diff -up dhcp-4.2.0-P1/includes/dhcp.h.PPP dhcp-4.2.0-P1/includes/dhcp.h ---- dhcp-4.2.0-P1/includes/dhcp.h.PPP 2010-11-05 10:47:37.000000000 +0100 -+++ dhcp-4.2.0-P1/includes/dhcp.h 2010-11-09 15:48:53.000000000 +0100 -@@ -80,6 +80,8 @@ struct dhcp_packet { - #define HTYPE_IEEE802 6 /* IEEE 802.2 Token Ring... */ - #define HTYPE_FDDI 8 /* FDDI... */ -+#define HTYPE_RESERVED 0 /* RFC 5494 */ + /* dhc6.c */ + void dhc6_lease_destroy(struct dhc6_lease **src, const char *file, int line); +diff -up dhcp-4.3.1b1/includes/dhcp.h.mRfpsB dhcp-4.3.1b1/includes/dhcp.h +--- dhcp-4.3.1b1/includes/dhcp.h.mRfpsB 2014-07-10 17:48:03.761425124 +0200 ++++ dhcp-4.3.1b1/includes/dhcp.h 2014-07-10 17:48:03.798424601 +0200 +@@ -81,6 +81,8 @@ struct dhcp_packet { + * is no standard for this so we + * just steal a type */ + ++#define HTYPE_RESERVED 0 /* RFC 5494 */ + /* Magic cookie validating dhcp options field (and bootp vendor extensions field). */ #define DHCP_OPTIONS_COOKIE "\143\202\123\143" -diff -up dhcp-4.2.0-P1/server/dhcpv6.c.PPP dhcp-4.2.0-P1/server/dhcpv6.c ---- dhcp-4.2.0-P1/server/dhcpv6.c.PPP 2010-11-05 10:47:37.000000000 +0100 -+++ dhcp-4.2.0-P1/server/dhcpv6.c 2010-11-09 15:50:17.000000000 +0100 -@@ -300,6 +300,9 @@ generate_new_server_duid(void) { +diff -up dhcp-4.3.1b1/server/dhcpv6.c.mRfpsB dhcp-4.3.1b1/server/dhcpv6.c +--- dhcp-4.3.1b1/server/dhcpv6.c.mRfpsB 2014-07-10 17:47:31.464881409 +0200 ++++ dhcp-4.3.1b1/server/dhcpv6.c 2014-07-10 17:48:03.800424573 +0200 +@@ -330,6 +330,9 @@ generate_new_server_duid(void) { if (p->hw_address.hlen > 0) { break; } diff --git a/src/patches/dhcp-4.2.0-UseMulticast.patch b/src/patches/dhcp/dhcp-UseMulticast.patch similarity index 83% rename from src/patches/dhcp-4.2.0-UseMulticast.patch rename to src/patches/dhcp/dhcp-UseMulticast.patch index 319344aa5..ee0ea6b9a 100644 --- a/src/patches/dhcp-4.2.0-UseMulticast.patch +++ b/src/patches/dhcp/dhcp-UseMulticast.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.2.0/server/dhcpv6.c.UseMulticast dhcp-4.2.0/server/dhcpv6.c ---- dhcp-4.2.0/server/dhcpv6.c.UseMulticast 2010-06-01 19:30:00.000000000 +0200 -+++ dhcp-4.2.0/server/dhcpv6.c 2010-07-21 16:17:30.000000000 +0200 -@@ -346,6 +346,48 @@ generate_new_server_duid(void) { +diff -up dhcp-4.3.1b1/server/dhcpv6.c.UseMulticast dhcp-4.3.1b1/server/dhcpv6.c +--- dhcp-4.3.1b1/server/dhcpv6.c.UseMulticast 2014-07-02 19:58:40.000000000 +0200 ++++ dhcp-4.3.1b1/server/dhcpv6.c 2014-07-10 18:20:03.066256219 +0200 +@@ -376,6 +376,48 @@ generate_new_server_duid(void) { } /* @@ -35,7 +35,7 @@ diff -up dhcp-4.2.0/server/dhcpv6.c.UseMulticast dhcp-4.2.0/server/dhcpv6.c + } + + execute_statements_in_scope(NULL, NULL, NULL, NULL, NULL, -+ opt_state, &global_scope, root_group, NULL); ++ opt_state, &global_scope, root_group, NULL, NULL); + + oc = lookup_option(&dhcpv6_universe, opt_state, D6O_UNICAST); + unicast_option_defined = (oc != NULL); @@ -50,8 +50,21 @@ diff -up dhcp-4.2.0/server/dhcpv6.c.UseMulticast dhcp-4.2.0/server/dhcpv6.c * Get the client identifier from the packet. */ isc_result_t -@@ -1405,6 +1447,56 @@ lease_to_client(struct data_string *repl - reply.shared->group); +@@ -706,6 +748,12 @@ static const int required_opts[] = { + D6O_PREFERENCE, + 0 + }; ++static const int required_opts_NAA[] = { ++ D6O_CLIENTID, ++ D6O_SERVERID, ++ D6O_STATUS_CODE, ++ 0 ++}; + static const int required_opts_solicit[] = { + D6O_CLIENTID, + D6O_SERVERID, +@@ -1587,6 +1635,56 @@ lease_to_client(struct data_string *repl + reply.shared->group, NULL); } + /* reject unicast message, unless we set unicast option */ @@ -102,21 +115,20 @@ diff -up dhcp-4.2.0/server/dhcpv6.c.UseMulticast dhcp-4.2.0/server/dhcpv6.c + reply.opt_state, reply.packet, + required_opts_NAA, + NULL); -+ } else if (no_resources_avail && (reply.ia_count != 0) && -+ (reply.packet->dhcpv6_msg_type == DHCPV6_SOLICIT)) ++ } ++ /* * RFC3315 section 17.2.2 (Solicit): * -@@ -1429,8 +1521,6 @@ lease_to_client(struct data_string *repl - * the server. - * Sends a Renew/Rebind if the IA is not in the Reply message. +@@ -1619,6 +1717,7 @@ lease_to_client(struct data_string *repl + * Having stored the client's IA's, store any options that + * will fit in the remaining space. */ -- if (no_resources_avail && (reply.ia_count != 0) && -- (reply.packet->dhcpv6_msg_type == DHCPV6_SOLICIT)) - { - /* Set the NoAddrsAvail status code. */ - if (!set_status_code(STATUS_NoAddrsAvail, -@@ -4128,7 +4218,6 @@ dhcpv6_solicit(struct data_string *reply ++ else + reply.cursor += store_options6((char *)reply.buf.data + reply.cursor, + sizeof(reply.buf) - reply.cursor, + reply.opt_state, reply.packet, +@@ -4748,7 +4847,6 @@ dhcpv6_solicit(struct data_string *reply * Very similar to Solicit handling, except the server DUID is required. */ @@ -124,7 +136,7 @@ diff -up dhcp-4.2.0/server/dhcpv6.c.UseMulticast dhcp-4.2.0/server/dhcpv6.c static void dhcpv6_request(struct data_string *reply_ret, struct packet *packet) { struct data_string client_id; -@@ -4443,7 +4532,6 @@ exit: +@@ -5078,7 +5176,6 @@ exit: * except for the error code of when addresses don't match. */ @@ -132,7 +144,7 @@ diff -up dhcp-4.2.0/server/dhcpv6.c.UseMulticast dhcp-4.2.0/server/dhcpv6.c static void dhcpv6_renew(struct data_string *reply, struct packet *packet) { struct data_string client_id; -@@ -4688,18 +4776,60 @@ iterate_over_ia_na(struct data_string *r +@@ -5322,18 +5419,60 @@ iterate_over_ia_na(struct data_string *r goto exit; } @@ -203,7 +215,7 @@ diff -up dhcp-4.2.0/server/dhcpv6.c.UseMulticast dhcp-4.2.0/server/dhcpv6.c /* * Loop through the IA_NA reported by the client, and deal with -@@ -4838,6 +4968,7 @@ iterate_over_ia_na(struct data_string *r +@@ -5471,6 +5610,7 @@ iterate_over_ia_na(struct data_string *r /* * Return our reply to the caller. */ @@ -211,7 +223,7 @@ diff -up dhcp-4.2.0/server/dhcpv6.c.UseMulticast dhcp-4.2.0/server/dhcpv6.c reply_ret->len = reply_ofs; reply_ret->buffer = NULL; if (!buffer_allocate(&reply_ret->buffer, reply_ofs, MDL)) { -@@ -4883,7 +5014,6 @@ exit: +@@ -5516,7 +5656,6 @@ exit: * we still need to be aware of this possibility. */ @@ -219,7 +231,7 @@ diff -up dhcp-4.2.0/server/dhcpv6.c.UseMulticast dhcp-4.2.0/server/dhcpv6.c /* TODO: IA_TA */ static void dhcpv6_decline(struct data_string *reply, struct packet *packet) { -@@ -5355,7 +5485,6 @@ exit: +@@ -5986,7 +6125,6 @@ exit: * Release means a client is done with the leases. */ diff --git a/src/patches/dhcp/dhcp-add_timeout_when_NULL.patch b/src/patches/dhcp/dhcp-add_timeout_when_NULL.patch new file mode 100644 index 000000000..103824c38 --- /dev/null +++ b/src/patches/dhcp/dhcp-add_timeout_when_NULL.patch @@ -0,0 +1,14 @@ +diff -up dhcp-4.3.0a1/common/dispatch.c.dracut dhcp-4.3.0a1/common/dispatch.c +--- dhcp-4.3.0a1/common/dispatch.c.dracut 2013-12-11 01:25:12.000000000 +0100 ++++ dhcp-4.3.0a1/common/dispatch.c 2013-12-19 15:39:50.350505860 +0100 +@@ -210,6 +210,10 @@ void add_timeout (when, where, what, ref + isc_interval_t interval; + isc_time_t expires; + ++ if (when == NULL) { ++ return; ++ } ++ + /* See if this timeout supersedes an existing timeout. */ + t = (struct timeout *)0; + for (q = timeouts; q; q = q->next) { diff --git a/src/patches/dhcp-4.2.2-capability.patch b/src/patches/dhcp/dhcp-capability.patch similarity index 51% rename from src/patches/dhcp-4.2.2-capability.patch rename to src/patches/dhcp/dhcp-capability.patch index 79af036f2..91a1baef5 100644 --- a/src/patches/dhcp-4.2.2-capability.patch +++ b/src/patches/dhcp/dhcp-capability.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.2.2b1/client/dhclient.8.capability dhcp-4.2.2b1/client/dhclient.8 ---- dhcp-4.2.2b1/client/dhclient.8.capability 2011-07-01 15:09:06.603784531 +0200 -+++ dhcp-4.2.2b1/client/dhclient.8 2011-07-01 15:09:06.663783913 +0200 -@@ -118,6 +118,9 @@ dhclient - Dynamic Host Configuration Pr +diff -up dhcp-4.3.1b1/client/dhclient.8.zzftXp dhcp-4.3.1b1/client/dhclient.8 +--- dhcp-4.3.1b1/client/dhclient.8.zzftXp 2014-07-10 17:38:26.938599402 +0200 ++++ dhcp-4.3.1b1/client/dhclient.8 2014-07-10 17:39:25.852763873 +0200 +@@ -128,6 +128,9 @@ dhclient - Dynamic Host Configuration Pr .B -w ] [ @@ -11,7 +11,7 @@ diff -up dhcp-4.2.2b1/client/dhclient.8.capability dhcp-4.2.2b1/client/dhclient. .B -B ] [ -@@ -296,6 +299,32 @@ has been added or removed, so that the c +@@ -304,6 +307,32 @@ has been added or removed, so that the c address on that interface. .TP @@ -44,9 +44,9 @@ diff -up dhcp-4.2.2b1/client/dhclient.8.capability dhcp-4.2.2b1/client/dhclient. .BI \-B Set the BOOTP broadcast flag in request packets so servers will always broadcast replies. -diff -up dhcp-4.2.2b1/client/dhclient.c.capability dhcp-4.2.2b1/client/dhclient.c ---- dhcp-4.2.2b1/client/dhclient.c.capability 2011-07-01 15:09:06.644784107 +0200 -+++ dhcp-4.2.2b1/client/dhclient.c 2011-07-01 15:09:06.664783903 +0200 +diff -up dhcp-4.3.1b1/client/dhclient.c.zzftXp dhcp-4.3.1b1/client/dhclient.c +--- dhcp-4.3.1b1/client/dhclient.c.zzftXp 2014-07-10 17:39:25.797764653 +0200 ++++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:39:25.853763858 +0200 @@ -39,6 +39,10 @@ #include #include @@ -58,7 +58,7 @@ diff -up dhcp-4.2.2b1/client/dhclient.c.capability dhcp-4.2.2b1/client/dhclient. /* * Defined in stdio.h when _GNU_SOURCE is set, but we don't want to define * that when building ISC code. -@@ -141,6 +145,9 @@ main(int argc, char **argv) { +@@ -143,6 +147,9 @@ main(int argc, char **argv) { int timeout_arg = 0; char *arg_conf = NULL; int arg_conf_len = 0; @@ -68,7 +68,7 @@ diff -up dhcp-4.2.2b1/client/dhclient.c.capability dhcp-4.2.2b1/client/dhclient. /* Initialize client globals. */ memset(&default_duid, 0, sizeof(default_duid)); -@@ -410,6 +417,10 @@ main(int argc, char **argv) { +@@ -425,6 +432,10 @@ main(int argc, char **argv) { } dhclient_request_options = argv[i]; @@ -79,7 +79,7 @@ diff -up dhcp-4.2.2b1/client/dhclient.c.capability dhcp-4.2.2b1/client/dhclient. } else if (argv[i][0] == '-') { usage(); } else if (interfaces_requested < 0) { -@@ -458,6 +469,19 @@ main(int argc, char **argv) { +@@ -473,6 +484,19 @@ main(int argc, char **argv) { path_dhclient_script = s; } @@ -99,10 +99,10 @@ diff -up dhcp-4.2.2b1/client/dhclient.c.capability dhcp-4.2.2b1/client/dhclient. /* Set up the initial dhcp option universe. */ initialize_common_option_spaces(); -diff -up dhcp-4.2.2b1/client/dhclient-script.8.capability dhcp-4.2.2b1/client/dhclient-script.8 ---- dhcp-4.2.2b1/client/dhclient-script.8.capability 2011-07-01 15:09:06.604784521 +0200 -+++ dhcp-4.2.2b1/client/dhclient-script.8 2011-07-01 15:09:06.666783883 +0200 -@@ -239,6 +239,16 @@ repeatedly initialized to the values pro +diff -up dhcp-4.3.1b1/client/dhclient-script.8.zzftXp dhcp-4.3.1b1/client/dhclient-script.8 +--- dhcp-4.3.1b1/client/dhclient-script.8.zzftXp 2014-07-10 17:39:25.761765163 +0200 ++++ dhcp-4.3.1b1/client/dhclient-script.8 2014-07-10 17:39:25.851763887 +0200 +@@ -243,6 +243,16 @@ repeatedly initialized to the values pro the other. Assuming the information provided by both servers is valid, this shouldn't cause any real problems, but it could be confusing. @@ -119,22 +119,22 @@ diff -up dhcp-4.2.2b1/client/dhclient-script.8.capability dhcp-4.2.2b1/client/dh .SH SEE ALSO dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and dhclient.leases(5). -diff -up dhcp-4.2.2b1/client/Makefile.am.capability dhcp-4.2.2b1/client/Makefile.am ---- dhcp-4.2.2b1/client/Makefile.am.capability 2011-07-01 15:09:06.526785327 +0200 -+++ dhcp-4.2.2b1/client/Makefile.am 2011-07-01 15:09:06.667783873 +0200 -@@ -5,7 +5,7 @@ dhclient_SOURCES = clparse.c dhclient.c +diff -up dhcp-4.3.1b1/client/Makefile.am.zzftXp dhcp-4.3.1b1/client/Makefile.am +--- dhcp-4.3.1b1/client/Makefile.am.zzftXp 2014-07-10 17:38:10.778828583 +0200 ++++ dhcp-4.3.1b1/client/Makefile.am 2014-07-10 17:39:25.851763887 +0200 +@@ -10,7 +10,7 @@ dhclient_SOURCES = clparse.c dhclient.c + scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ scripts/netbsd scripts/nextstep scripts/openbsd \ scripts/solaris scripts/openwrt - dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- $(BIND9_LIBDIR) -ldns-export -lisc-export -+ $(BIND9_LIBDIR) -ldns-export -lisc-export $(CAPNG_LDADD) +-dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ ++dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(CAPNG_LDADD) \ + $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 EXTRA_DIST = $(man_MANS) - -diff -up dhcp-4.2.2b1/configure.ac.capability dhcp-4.2.2b1/configure.ac ---- dhcp-4.2.2b1/configure.ac.capability 2011-07-01 15:09:06.527785317 +0200 -+++ dhcp-4.2.2b1/configure.ac 2011-07-01 15:09:06.667783873 +0200 -@@ -449,6 +449,41 @@ AC_TRY_LINK( +diff -up dhcp-4.3.1b1/configure.ac.zzftXp dhcp-4.3.1b1/configure.ac +--- dhcp-4.3.1b1/configure.ac.zzftXp 2014-07-10 17:38:10.779828569 +0200 ++++ dhcp-4.3.1b1/configure.ac 2014-07-10 17:39:25.854763844 +0200 +@@ -499,6 +499,41 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], # Look for optional headers. AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h) @@ -176,11 +176,11 @@ diff -up dhcp-4.2.2b1/configure.ac.capability dhcp-4.2.2b1/configure.ac # Solaris needs some libraries for functions AC_SEARCH_LIBS(socket, [socket]) AC_SEARCH_LIBS(inet_ntoa, [nsl]) -diff -up dhcp-4.2.2b1/relay/dhcrelay.c.capability dhcp-4.2.2b1/relay/dhcrelay.c ---- dhcp-4.2.2b1/relay/dhcrelay.c.capability 2011-07-01 15:09:06.626784295 +0200 -+++ dhcp-4.2.2b1/relay/dhcrelay.c 2011-07-01 15:12:05.362223794 +0200 -@@ -36,6 +36,11 @@ - #include +diff -up dhcp-4.3.1b1/relay/dhcrelay.c.zzftXp dhcp-4.3.1b1/relay/dhcrelay.c +--- dhcp-4.3.1b1/relay/dhcrelay.c.zzftXp 2014-07-10 17:39:25.799764624 +0200 ++++ dhcp-4.3.1b1/relay/dhcrelay.c 2014-07-10 17:40:19.191007421 +0200 +@@ -31,6 +31,11 @@ + #include #include +#ifdef HAVE_LIBCAP_NG @@ -191,9 +191,9 @@ diff -up dhcp-4.2.2b1/relay/dhcrelay.c.capability dhcp-4.2.2b1/relay/dhcrelay.c TIME default_lease_time = 43200; /* 12 hours... */ TIME max_lease_time = 86400; /* 24 hours... */ struct tree_cache *global_options[256]; -@@ -356,6 +361,10 @@ main(int argc, char **argv) { - sl->next = upstreams; - upstreams = sl; +@@ -376,6 +381,10 @@ main(int argc, char **argv) { + usage(); + dhcrelay_sub_id = argv[i]; #endif + } else if (!strcmp(argv[i], "-nc")) { +#ifdef HAVE_LIBCAP_NG @@ -202,7 +202,7 @@ diff -up dhcp-4.2.2b1/relay/dhcrelay.c.capability dhcp-4.2.2b1/relay/dhcrelay.c } else if (!strcmp(argv[i], "-pf")) { if (++i == argc) usage(); -@@ -426,6 +435,17 @@ main(int argc, char **argv) { +@@ -446,6 +455,17 @@ main(int argc, char **argv) { #endif } @@ -220,8 +220,8 @@ diff -up dhcp-4.2.2b1/relay/dhcrelay.c.capability dhcp-4.2.2b1/relay/dhcrelay.c if (!quiet) { log_info("%s %s", message, PACKAGE_VERSION); log_info(copyright); -@@ -573,6 +593,15 @@ main(int argc, char **argv) { - dhcpv6_packet_handler = do_packet6; +@@ -598,6 +618,15 @@ main(int argc, char **argv) { + signal(SIGTERM, dhcp_signal_handler); /* kill */ #endif +#ifdef HAVE_LIBCAP_NG @@ -236,88 +236,15 @@ diff -up dhcp-4.2.2b1/relay/dhcrelay.c.capability dhcp-4.2.2b1/relay/dhcrelay.c /* Start dispatching packets and timeouts... */ dispatch(); -diff -up dhcp-4.2.2b1/relay/Makefile.am.capability dhcp-4.2.2b1/relay/Makefile.am ---- dhcp-4.2.2b1/relay/Makefile.am.capability 2011-07-01 15:09:06.546785121 +0200 -+++ dhcp-4.2.2b1/relay/Makefile.am 2011-07-01 15:09:06.670783841 +0200 -@@ -3,7 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst +diff -up dhcp-4.3.1b1/relay/Makefile.am.zzftXp dhcp-4.3.1b1/relay/Makefile.am +--- dhcp-4.3.1b1/relay/Makefile.am.zzftXp 2014-07-10 17:38:10.780828554 +0200 ++++ dhcp-4.3.1b1/relay/Makefile.am 2014-07-10 17:39:25.854763844 +0200 +@@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst + sbin_PROGRAMS = dhcrelay dhcrelay_SOURCES = dhcrelay.c - dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- $(BIND9_LIBDIR) -ldns-export -lisc-export -+ $(BIND9_LIBDIR) -ldns-export -lisc-export $(CAPNG_LDADD) +-dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ ++dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(CAPNG_LDADD) \ + $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc man_MANS = dhcrelay.8 EXTRA_DIST = $(man_MANS) - -diff -up dhcp-4.2.2b1/server/dhcpd.c.capability dhcp-4.2.2b1/server/dhcpd.c ---- dhcp-4.2.2b1/server/dhcpd.c.capability 2011-07-01 15:09:06.636784192 +0200 -+++ dhcp-4.2.2b1/server/dhcpd.c 2011-07-01 15:09:06.670783841 +0200 -@@ -58,6 +58,11 @@ static const char url [] = - # undef group - #endif /* PARANOIA */ - -+#ifdef HAVE_LIBCAP_NG -+# include -+ int keep_capabilities = 0; -+#endif -+ - static void usage(void); - - struct iaddr server_identifier; -@@ -403,6 +408,10 @@ main(int argc, char **argv) { - traceinfile = argv [i]; - trace_replay_init (); - #endif /* TRACING */ -+ } else if (!strcmp(argv[i], "-nc")) { -+#ifdef HAVE_LIBCAP_NG -+ keep_capabilities = 1; -+#endif - } else if (argv [i][0] == '-') { - usage (); - } else { -@@ -459,6 +468,17 @@ main(int argc, char **argv) { - } - #endif /* DHCPv6 */ - -+#ifdef HAVE_LIBCAP_NG -+ /* Drop capabilities */ -+ if (!keep_capabilities) { -+ capng_clear(CAPNG_SELECT_BOTH); -+ capng_updatev(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, -+ CAP_NET_RAW, CAP_NET_BIND_SERVICE, CAP_SYS_CHROOT, CAP_SETUID, CAP_SETGID, -1); -+ capng_apply(CAPNG_SELECT_BOTH); -+ log_info ("Dropped all unnecessary capabilities."); -+ } -+#endif -+ - /* - * convert relative path names to absolute, for files that need - * to be reopened after chdir() has been called -@@ -859,6 +879,15 @@ main(int argc, char **argv) { - omapi_set_int_value ((omapi_object_t *)dhcp_control_object, - (omapi_object_t *)0, "state", server_running); - -+#ifdef HAVE_LIBCAP_NG -+ /* Drop all capabilities */ -+ if (!keep_capabilities) { -+ capng_clear(CAPNG_SELECT_BOTH); -+ capng_apply(CAPNG_SELECT_BOTH); -+ log_info ("Dropped all capabilities."); -+ } -+#endif -+ - /* Receive packets and dispatch them... */ - dispatch (); - -diff -up dhcp-4.2.2b1/server/Makefile.am.capability dhcp-4.2.2b1/server/Makefile.am ---- dhcp-4.2.2b1/server/Makefile.am.capability 2011-07-01 15:09:06.546785121 +0200 -+++ dhcp-4.2.2b1/server/Makefile.am 2011-07-01 15:09:06.671783830 +0200 -@@ -8,7 +8,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c - - dhcpd_CFLAGS = $(LDAP_CFLAGS) - dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../dhcpctl/libdhcpctl.a $(BIND9_LIBDIR) -ldns-export -lisc-export -+ ../dhcpctl/libdhcpctl.a $(BIND9_LIBDIR) -ldns-export -lisc-export \ -+ $(CAPNG_LDADD) - - man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 - EXTRA_DIST = $(man_MANS) diff --git a/src/patches/dhcp-4.2.0-default-requested-options.patch b/src/patches/dhcp/dhcp-default-requested-options.patch similarity index 81% rename from src/patches/dhcp-4.2.0-default-requested-options.patch rename to src/patches/dhcp/dhcp-default-requested-options.patch index fea8a4b99..afda222e6 100644 --- a/src/patches/dhcp-4.2.0-default-requested-options.patch +++ b/src/patches/dhcp/dhcp-default-requested-options.patch @@ -1,6 +1,6 @@ -diff -up dhcp-4.2.0/client/clparse.c.requested dhcp-4.2.0/client/clparse.c ---- dhcp-4.2.0/client/clparse.c.requested 2010-07-21 13:29:05.000000000 +0200 -+++ dhcp-4.2.0/client/clparse.c 2010-07-21 13:50:29.000000000 +0200 +diff -up dhcp-4.3.0a1/client/clparse.c.requested dhcp-4.3.0a1/client/clparse.c +--- dhcp-4.3.0a1/client/clparse.c.requested 2013-12-19 15:13:27.276631307 +0100 ++++ dhcp-4.3.0a1/client/clparse.c 2013-12-19 15:13:27.313630789 +0100 @@ -37,7 +37,7 @@ struct client_config top_level_config; @@ -10,7 +10,7 @@ diff -up dhcp-4.2.0/client/clparse.c.requested dhcp-4.2.0/client/clparse.c struct option *default_requested_options[NUM_DEFAULT_REQUESTED_OPTS + 1]; static void parse_client_default_duid(struct parse *cfile); -@@ -111,6 +111,31 @@ isc_result_t read_client_conf () +@@ -119,6 +119,31 @@ isc_result_t read_client_conf () option_code_hash_lookup(&default_requested_options[8], dhcpv6_universe.code_hash, &code, 0, MDL); diff --git a/src/patches/dhcp-4.2.0-dhclient-decline-backoff.patch b/src/patches/dhcp/dhcp-dhclient-decline-backoff.patch similarity index 58% rename from src/patches/dhcp-4.2.0-dhclient-decline-backoff.patch rename to src/patches/dhcp/dhcp-dhclient-decline-backoff.patch index 81bec7bd4..3e52e6400 100644 --- a/src/patches/dhcp-4.2.0-dhclient-decline-backoff.patch +++ b/src/patches/dhcp/dhcp-dhclient-decline-backoff.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.2.0/client/dhclient.c.backoff dhcp-4.2.0/client/dhclient.c ---- dhcp-4.2.0/client/dhclient.c.backoff 2010-07-21 13:37:03.000000000 +0200 -+++ dhcp-4.2.0/client/dhclient.c 2010-07-21 13:38:31.000000000 +0200 -@@ -1208,6 +1208,8 @@ void state_init (cpp) +diff -up dhcp-4.3.1b1/client/dhclient.c.JwFUZj dhcp-4.3.1b1/client/dhclient.c +--- dhcp-4.3.1b1/client/dhclient.c.JwFUZj 2014-07-10 17:38:50.511265091 +0200 ++++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:39:16.164901267 +0200 +@@ -1281,6 +1281,8 @@ void state_init (cpp) void *cpp; { struct client_state *client = cpp; @@ -10,7 +10,7 @@ diff -up dhcp-4.2.0/client/dhclient.c.backoff dhcp-4.2.0/client/dhclient.c ASSERT_STATE(state, S_INIT); -@@ -1220,9 +1222,18 @@ void state_init (cpp) +@@ -1293,9 +1295,18 @@ void state_init (cpp) client -> first_sending = cur_time; client -> interval = client -> config -> initial_interval; @@ -32,15 +32,15 @@ diff -up dhcp-4.2.0/client/dhclient.c.backoff dhcp-4.2.0/client/dhclient.c } /* -@@ -1501,6 +1512,7 @@ void bind_lease (client) - send_decline (client); - destroy_client_lease (client -> new); - client -> new = (struct client_lease *)0; -+ client -> state = S_DECLINED; - state_init (client); - return; - } -@@ -3711,6 +3723,7 @@ void client_location_changed () +@@ -1592,6 +1603,7 @@ void bind_lease (client) + "try (declined). Exiting."); + exit(2); + } else { ++ client -> state = S_DECLINED; + state_init(client); + return; + } +@@ -4059,6 +4071,7 @@ void client_location_changed () case S_INIT: case S_REBINDING: case S_STOPPED: @@ -48,10 +48,10 @@ diff -up dhcp-4.2.0/client/dhclient.c.backoff dhcp-4.2.0/client/dhclient.c break; } client -> state = S_INIT; -diff -up dhcp-4.2.0/includes/dhcpd.h.backoff dhcp-4.2.0/includes/dhcpd.h ---- dhcp-4.2.0/includes/dhcpd.h.backoff 2010-07-21 13:29:05.000000000 +0200 -+++ dhcp-4.2.0/includes/dhcpd.h 2010-07-21 13:38:31.000000000 +0200 -@@ -1056,7 +1056,8 @@ enum dhcp_state { +diff -up dhcp-4.3.1b1/includes/dhcpd.h.JwFUZj dhcp-4.3.1b1/includes/dhcpd.h +--- dhcp-4.3.1b1/includes/dhcpd.h.JwFUZj 2014-07-10 17:38:26.941599360 +0200 ++++ dhcp-4.3.1b1/includes/dhcpd.h 2014-07-10 17:38:50.526264878 +0200 +@@ -1087,7 +1087,8 @@ enum dhcp_state { S_BOUND = 5, S_RENEWING = 6, S_REBINDING = 7, diff --git a/src/patches/dhcp-4.2.2-options.patch b/src/patches/dhcp/dhcp-dhclient-options.patch similarity index 65% rename from src/patches/dhcp-4.2.2-options.patch rename to src/patches/dhcp/dhcp-dhclient-options.patch index 32e2add77..67f144ecb 100644 --- a/src/patches/dhcp-4.2.2-options.patch +++ b/src/patches/dhcp/dhcp-dhclient-options.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.2.2b1/client/clparse.c.options dhcp-4.2.2b1/client/clparse.c ---- dhcp-4.2.2b1/client/clparse.c.options 2011-04-21 16:08:14.000000000 +0200 -+++ dhcp-4.2.2b1/client/clparse.c 2011-07-01 13:51:52.935755570 +0200 -@@ -146,6 +146,7 @@ isc_result_t read_client_conf () +diff -up dhcp-4.3.1b1/client/clparse.c.fLPqYB dhcp-4.3.1b1/client/clparse.c +--- dhcp-4.3.1b1/client/clparse.c.fLPqYB 2014-07-02 19:58:38.000000000 +0200 ++++ dhcp-4.3.1b1/client/clparse.c 2014-07-10 17:38:26.938599402 +0200 +@@ -148,6 +148,7 @@ isc_result_t read_client_conf () /* Requested lease time, used by DHCPv6 (DHCPv4 uses the option cache) */ top_level_config.requested_lease = 7200; @@ -9,7 +9,7 @@ diff -up dhcp-4.2.2b1/client/clparse.c.options dhcp-4.2.2b1/client/clparse.c group_allocate (&top_level_config.on_receipt, MDL); if (!top_level_config.on_receipt) -@@ -313,7 +314,8 @@ void read_client_leases () +@@ -353,7 +354,8 @@ void read_client_leases () interface-declaration | LEASE client-lease-statement | ALIAS client-lease-statement | @@ -19,7 +19,7 @@ diff -up dhcp-4.2.2b1/client/clparse.c.options dhcp-4.2.2b1/client/clparse.c void parse_client_statement (cfile, ip, config) struct parse *cfile; -@@ -732,6 +734,12 @@ void parse_client_statement (cfile, ip, +@@ -771,6 +773,12 @@ void parse_client_statement (cfile, ip, parse_reject_statement (cfile, config); return; @@ -32,9 +32,116 @@ diff -up dhcp-4.2.2b1/client/clparse.c.options dhcp-4.2.2b1/client/clparse.c default: lose = 0; stmt = (struct executable_statement *)0; -diff -up dhcp-4.2.2b1/client/dhclient.c.options dhcp-4.2.2b1/client/dhclient.c ---- dhcp-4.2.2b1/client/dhclient.c.options 2011-05-11 16:20:59.000000000 +0200 -+++ dhcp-4.2.2b1/client/dhclient.c 2011-07-01 13:51:52.936755545 +0200 +diff -up dhcp-4.3.1b1/client/dhclient.8.fLPqYB dhcp-4.3.1b1/client/dhclient.8 +--- dhcp-4.3.1b1/client/dhclient.8.fLPqYB 2014-07-02 19:58:38.000000000 +0200 ++++ dhcp-4.3.1b1/client/dhclient.8 2014-07-10 17:38:26.938599402 +0200 +@@ -128,6 +128,33 @@ dhclient - Dynamic Host Configuration Pr + .B -w + ] + [ ++.B -B ++] ++[ ++.B -C ++.I dhcp-client-identifier ++] ++[ ++.B -H ++.I host-name ++] ++[ ++.B -F ++.I fqdn.fqdn ++] ++[ ++.B -V ++.I vendor-class-identifier ++] ++[ ++.B -R ++.I request-option-list ++] ++[ ++.B -timeout ++.I timeout ++] ++[ + .B -v + ] + [ +@@ -275,6 +302,69 @@ not to exit when it doesn't find any suc + program can then be used to notify the client when a network interface + has been added or removed, so that the client can attempt to configure an IP + address on that interface. ++ ++.TP ++.BI \-B ++Set the BOOTP broadcast flag in request packets so servers will always ++broadcast replies. ++ ++.TP ++.BI \-C\ ++Specify the dhcp-client-identifier option to send to the DHCP server. ++ ++.TP ++.BI \-H\ ++Specify the host-name option to send to the DHCP server. The host-name ++string only contains the client's hostname prefix, to which the server will ++append the ddns-domainname or domain-name options, if any, to derive the ++fully qualified domain name of the client. The ++.B -H ++option cannot be used with the ++.B -F ++option. ++ ++.TP ++.BI \-F\ ++Specify the fqdn.fqdn option to send to the DHCP server. This option cannot ++be used with the ++.B -H ++option. The fqdn.fqdn option must specify the complete domain name of the ++client host, which the server may use for dynamic DNS updates. ++ ++.TP ++.BI \-V\ ++Specify the vendor-class-identifier option to send to the DHCP server. ++ ++.TP ++.BI \-R\ diff --git a/lfs/strongswan b/lfs/strongswan index 43995b5a1..77c287a09 100644 --- a/lfs/strongswan +++ b/lfs/strongswan @@ -93,6 +93,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) --enable-farp \ --enable-openssl \ --enable-gcrypt \ + --enable-gcm \ --enable-xauth-eap \ --enable-xauth-noauth \ --enable-eap-radius \ From e60cd3a4042e95cf2748aac2de9d991c724ef24d Mon Sep 17 00:00:00 2001 From: Dominik Hassler Date: Fri, 13 Mar 2015 10:56:03 +0100 Subject: [PATCH 052/210] use colour of destination network for DNAT --- html/cgi-bin/connections.cgi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/html/cgi-bin/connections.cgi b/html/cgi-bin/connections.cgi index f1ed2125a..5c17d33e2 100644 --- a/html/cgi-bin/connections.cgi +++ b/html/cgi-bin/connections.cgi @@ -520,7 +520,8 @@ foreach my $line (@conntrack) { } my $sip_colour = ipcolour($sip); - my $dip_colour = ipcolour($dip); + # use colour of destination network for DNAT + my $dip_colour = $dip ne $dip_ret ? ipcolour($dip_ret) : ipcolour($dip); my $sserv = ''; if ($sport < 1024) { From 16bbdeb988cec0e4af25a0be334e23842ad9414a Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 7 Mar 2015 21:30:19 +0100 Subject: [PATCH 053/210] networking/red.up/99-geoip-database: Fix typo. --- src/initscripts/init.d/networking/red.up/99-geoip-database | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/initscripts/init.d/networking/red.up/99-geoip-database b/src/initscripts/init.d/networking/red.up/99-geoip-database index 020f2fa2d..c79eda15d 100644 --- a/src/initscripts/init.d/networking/red.up/99-geoip-database +++ b/src/initscripts/init.d/networking/red.up/99-geoip-database @@ -14,7 +14,7 @@ done # Download ruleset if none has been found. if ! ${found}; then - /us/local/bin/xt_geoip_update >/dev/null 2>&1 + /usr/local/bin/xt_geoip_update >/dev/null 2>&1 fi exit 0 From 663221a256af64d3bfe8c9bc0fe534059eb7dcee Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 7 Mar 2015 21:31:27 +0100 Subject: [PATCH 054/210] xt_geoip_update: Fix script path. --- src/scripts/xt_geoip_update | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/xt_geoip_update b/src/scripts/xt_geoip_update index 294af58e0..42e214366 100644 --- a/src/scripts/xt_geoip_update +++ b/src/scripts/xt_geoip_update @@ -22,7 +22,7 @@ TMP_PATH=$(mktemp -d) TMP_FILE=$(mktemp -p $TMP_PATH) -SCRIPT_PATH=/usr/libexec/xtables-addons +SCRIPT_PATH=/usr/local/bin DEST_PATH=/usr/share/xt_geoip DL_URL=http://geolite.maxmind.com/download/geoip/database From e24668f99a053d2073de80fe2d0dc8c5d73d2cbc Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 7 Mar 2015 22:39:32 +0100 Subject: [PATCH 055/210] networking/red.up/99-geoip-database: Fix empty folder check. --- .../init.d/networking/red.up/99-geoip-database | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/initscripts/init.d/networking/red.up/99-geoip-database b/src/initscripts/init.d/networking/red.up/99-geoip-database index c79eda15d..4bd3ee2ab 100644 --- a/src/initscripts/init.d/networking/red.up/99-geoip-database +++ b/src/initscripts/init.d/networking/red.up/99-geoip-database @@ -2,14 +2,17 @@ # Get the GeoIP database if no one exists yet. -DIR=/usr/share/xt_geoip +DIR="/usr/share/xt_geoip/*" found=false # Check if the directory contains any data. -for i in $DIR/*; do - found=true - break +for i in $DIR; do + # Ignore "." and ".." + if [ -d "$i" ]; then + found=true + break + fi done # Download ruleset if none has been found. From 0bb4b135d121cec8efbae6c63b3ea6cf85eacb97 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 8 Mar 2015 10:09:16 +0100 Subject: [PATCH 056/210] rules.pl: Flush GEOIPBLOCK chain when the feature will be switched off. Otherwise existing rules still remain in the chain and will be processed even geoipblock has been disabled. --- config/firewall/rules.pl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/config/firewall/rules.pl b/config/firewall/rules.pl index fa7edee1b..535899611 100644 --- a/config/firewall/rules.pl +++ b/config/firewall/rules.pl @@ -586,6 +586,9 @@ sub geoipblock { # Read settings file &General::readhash("$geoipfile", \%geoipsettings); } else { + # Drop active rules. + run("$IPTABLES -F GEOIPBLOCK"); + # Exit submodule, go on processing the remaining script return; } @@ -599,7 +602,7 @@ sub geoipblock { # Get supported locations. my @locations = &fwlib::get_geoip_locations(); - # Create iptables chain. + # Flush iptables chain. run("$IPTABLES -F GEOIPBLOCK"); # Loop through all supported geoip locations and From 1ed8aedfdb9af8deaafac797b85b68c407feb6d7 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 15 Mar 2015 11:41:50 +0100 Subject: [PATCH 057/210] fwhosts.cgi: Fix fw-reload detection when adding new entries to a geoip group. Read-in firewall config files for detection if the current group is used by at least one firewall rule and mark the firewall to need a reload if neccessary. Fixes #10771. --- html/cgi-bin/fwhosts.cgi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/html/cgi-bin/fwhosts.cgi b/html/cgi-bin/fwhosts.cgi index 8aedd8a22..994a50a10 100644 --- a/html/cgi-bin/fwhosts.cgi +++ b/html/cgi-bin/fwhosts.cgi @@ -685,6 +685,9 @@ if ($fwhostsettings{'ACTION'} eq 'savegeoipgrp') my @target; my @newgrp; &General::readhasharray("$configgeoipgrp", \%customgeoipgrp); + &General::readhasharray("$fwconfigfwd", \%fwfwd); + &General::readhasharray("$fwconfiginp", \%fwinp); + &General::readhasharray("$fwconfigout", \%fwout); # Check for existing group name. if (!&checkgroup($grp) && $fwhostsettings{'update'} ne 'on'){ From 53103ab55c63eda3cd302c9b8af743429b62726c Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 16 Mar 2015 16:10:03 +0100 Subject: [PATCH 058/210] installer: Don't accept the license in unattended mode --- src/installer/main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/installer/main.c b/src/installer/main.c index 358b2c46f..75c8c5ae0 100644 --- a/src/installer/main.c +++ b/src/installer/main.c @@ -833,8 +833,11 @@ int main(int argc, char *argv[]) { newtPopWindow(); - /* Set marker that the user has already accepted the gpl */ - mysystem(logfile, "/usr/bin/touch /harddisk/var/ipfire/main/gpl_accepted"); + /* Set marker that the user has already accepted the GPL if the license has been shown + * in the installation process. In unatteded mode, the user will be presented the + * license when he or she logs on to the web user interface for the first time. */ + if (!config.unattended) + mysystem(logfile, "/usr/bin/touch /harddisk/var/ipfire/main/gpl_accepted"); /* Copy restore file from cdrom */ char* backup_file = hw_find_backup_file(logfile, SOURCE_MOUNT_PATH); From a8fda3e94150bc3087e09b141b5f2c73721a4517 Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Sun, 8 Feb 2015 15:30:30 +0100 Subject: [PATCH 059/210] openssl-compat: Update to 0.9.8ze --- lfs/openssl-compat | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lfs/openssl-compat b/lfs/openssl-compat index 52a8e9113..d2f52ae2a 100644 --- a/lfs/openssl-compat +++ b/lfs/openssl-compat @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2014 IPFire Team # +# Copyright (C) 2007-2015 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 0.9.8zd +VER = 0.9.8ze THISAPP = openssl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = e9b9ee12f2911e1a378e2458d9bfff77 +$(DL_FILE)_MD5 = edcca64ac2fbf2b03461936d5e42a262 install : $(TARGET) From 3847730c176a3ff5a710ec5400d13c35f8d16fd1 Mon Sep 17 00:00:00 2001 From: Wolfgang Apolinarski Date: Sat, 14 Mar 2015 15:33:35 +0100 Subject: [PATCH 060/210] Applied patches for not using md5. Additionally, the root CA is no 4096 bits, host/clients are 2048 bits (both RSA). Openssl is now choosing the random seed automatically, removed the '-rand' parameter. --- config/ssl/openssl.cnf | 4 ++-- html/cgi-bin/vpnmain.cgi | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/ssl/openssl.cnf b/config/ssl/openssl.cnf index f0906e547..9d1e6e1ff 100644 --- a/config/ssl/openssl.cnf +++ b/config/ssl/openssl.cnf @@ -21,7 +21,7 @@ RANDFILE = $dir/tmp/.rand x509_extensions = usr_cert default_days = 999999 default_crl_days= 30 -default_md = md5 +default_md = sha256 preserve = no policy = policy_match email_in_dn = no @@ -35,7 +35,7 @@ commonName = supplied emailAddress = optional [ req ] -default_bits = 1024 +default_bits = 2048 default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi index 26f6f5311..b0041ef42 100644 --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -961,9 +961,9 @@ END if (!$errormessage) { &General::log("ipsec", "Creating cacert..."); if (open(STDIN, "-|")) { - my $opt = " req -x509 -nodes -rand /proc/interrupts:/proc/net/rt_cache"; + my $opt = " req -x509 -sha256 -nodes"; $opt .= " -days 999999"; - $opt .= " -newkey rsa:2048"; + $opt .= " -newkey rsa:4096"; $opt .= " -keyout ${General::swroot}/private/cakey.pem"; $opt .= " -out ${General::swroot}/ca/cacert.pem"; @@ -984,8 +984,8 @@ END if (!$errormessage) { &General::log("ipsec", "Creating host cert..."); if (open(STDIN, "-|")) { - my $opt = " req -nodes -rand /proc/interrupts:/proc/net/rt_cache"; - $opt .= " -newkey rsa:1024"; + my $opt = " req -sha256 -nodes"; + $opt .= " -newkey rsa:2048"; $opt .= " -keyout ${General::swroot}/certs/hostkey.pem"; $opt .= " -out ${General::swroot}/certs/hostreq.pem"; $errormessage = &callssl ($opt); @@ -1020,7 +1020,7 @@ END print $fh "subjectAltName=$cgiparams{'SUBJECTALTNAME'}" if ($cgiparams{'SUBJECTALTNAME'}); close ($fh); - my $opt = " ca -days 999999"; + my $opt = " ca -md sha256 -days 999999"; $opt .= " -batch -notext"; $opt .= " -in ${General::swroot}/certs/hostreq.pem"; $opt .= " -out ${General::swroot}/certs/hostcert.pem"; @@ -1443,7 +1443,7 @@ END # Sign the certificate request &General::log("ipsec", "Signing your cert $cgiparams{'NAME'}..."); - my $opt = " ca -days 999999"; + my $opt = " ca -md sha256 -days 999999"; $opt .= " -batch -notext"; $opt .= " -in $filename"; $opt .= " -out ${General::swroot}/certs/$cgiparams{'NAME'}cert.pem"; @@ -1678,7 +1678,7 @@ END if (open(STDIN, "-|")) { my $opt = " req -nodes -rand /proc/interrupts:/proc/net/rt_cache"; - $opt .= " -newkey rsa:1024"; + $opt .= " -newkey rsa:2048"; $opt .= " -keyout ${General::swroot}/certs/$cgiparams{'NAME'}key.pem"; $opt .= " -out ${General::swroot}/certs/$cgiparams{'NAME'}req.pem"; @@ -1715,7 +1715,7 @@ END print $fh "subjectAltName=$cgiparams{'SUBJECTALTNAME'}" if ($cgiparams{'SUBJECTALTNAME'}); close ($fh); - my $opt = " ca -days 999999 -batch -notext"; + my $opt = " ca -md sha256 -days 999999 -batch -notext"; $opt .= " -in ${General::swroot}/certs/$cgiparams{'NAME'}req.pem"; $opt .= " -out ${General::swroot}/certs/$cgiparams{'NAME'}cert.pem"; $opt .= " -extfile $v3extname"; @@ -2148,7 +2148,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(sha2_512|sha2_384|sha2_256|sha|md5|aesxcbc)$/) { + if ($val !~ /^(sha2_(512|384|256)|sha|md5|aesxcbc)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2189,7 +2189,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(sha2_512|sha2_384|sha2_256|sha1|md5|aesxcbc)$/) { + if ($val !~ /^(sha2_(512|384|256)|sha1|md5|aesxcbc)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } From 261121f1dff82f158289368bafedc9a1c89e9261 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 18 Mar 2015 15:18:14 +0100 Subject: [PATCH 061/210] Remove some left-over files --- config/backup/includes/esniper | 5 ----- config/httpd/vhosts.d/esniper.conf | 22 ---------------------- config/httpd/vhosts.d/phpaj.conf | 16 ---------------- 3 files changed, 43 deletions(-) delete mode 100644 config/backup/includes/esniper delete mode 100644 config/httpd/vhosts.d/esniper.conf delete mode 100644 config/httpd/vhosts.d/phpaj.conf diff --git a/config/backup/includes/esniper b/config/backup/includes/esniper deleted file mode 100644 index 14434aaae..000000000 --- a/config/backup/includes/esniper +++ /dev/null @@ -1,5 +0,0 @@ -/srv/web/esniper/.htaccess -/srv/web/esniper/.config.php -/srv/web/esniper/.config.state.php -/srv/web/esniper/local/ -/srv/web/esniper/.run/ diff --git a/config/httpd/vhosts.d/esniper.conf b/config/httpd/vhosts.d/esniper.conf deleted file mode 100644 index e1c4dd48b..000000000 --- a/config/httpd/vhosts.d/esniper.conf +++ /dev/null @@ -1,22 +0,0 @@ -Listen 1006 - - - - SSLEngine on - SSLProtocol all -SSLv2 - SSLCipherSuite ALL:!ADH:!EXPORT56:!eNULL:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP - SSLCertificateFile /etc/httpd/server.crt - SSLCertificateKeyFile /etc/httpd/server.key - - DocumentRoot /srv/web/esniper - - Include /etc/httpd/conf/conf.d/php*.conf - - - Options None - AllowOverride None - Order allow,deny - Allow from all - - - diff --git a/config/httpd/vhosts.d/phpaj.conf b/config/httpd/vhosts.d/phpaj.conf deleted file mode 100644 index a6b764ea1..000000000 --- a/config/httpd/vhosts.d/phpaj.conf +++ /dev/null @@ -1,16 +0,0 @@ -Listen 1002 - - - - DocumentRoot /srv/web/phpaj - - Include /etc/httpd/conf/conf.d/php*.conf - - - Options None - AllowOverride None - Order allow,deny - Allow from all - - - From c3c2e81c6fd50e102b10891c980e515d1bb072a0 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 18 Mar 2015 15:51:37 +0100 Subject: [PATCH 062/210] openssh: Update to version 6.8p1 --- lfs/openssh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lfs/openssh b/lfs/openssh index bc6fa3cad..d8f337baf 100644 --- a/lfs/openssh +++ b/lfs/openssh @@ -24,7 +24,7 @@ include Config -VER = 6.6p1 +VER = 6.8p1 THISAPP = openssh-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 3e9800e6bca1fbac0eea4d41baa7f239 +$(DL_FILE)_MD5 = 08f72de6751acfbd0892b5f003922701 install : $(TARGET) From 857a15f38b1c48c6eeb8109ae18d1c2ad1fbb95c Mon Sep 17 00:00:00 2001 From: Dirk Wagner Date: Thu, 19 Mar 2015 13:31:05 +0100 Subject: [PATCH 063/210] monit addon: update to 5.12.1 --- lfs/monit | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lfs/monit b/lfs/monit index e455a3589..f57ad011c 100644 --- a/lfs/monit +++ b/lfs/monit @@ -24,7 +24,7 @@ include Config -VER = 5.12 +VER = 5.12.1 THISAPP = monit-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = monit -PAK_VER = 4 +PAK_VER = 5 DEPS = "" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = b11821062a43b951d73ccc16fcda939d +$(DL_FILE)_MD5 = 1ffde79207270925f6f7df787d19100a install : $(TARGET) From 7f5795c65fa65e4835cfcb60408a64581813e9ca Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 19 Mar 2015 19:18:23 +0100 Subject: [PATCH 064/210] apache2: Update to version 2.2.29 --- lfs/apache2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lfs/apache2 b/lfs/apache2 index 5e8862546..0d7b11ed0 100644 --- a/lfs/apache2 +++ b/lfs/apache2 @@ -25,7 +25,7 @@ include Config -VER = 2.2.27 +VER = 2.2.29 THISAPP = httpd-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -47,7 +47,7 @@ objects = $(DL_FILE) \ $(DL_FILE) = $(DL_FROM)/$(DL_FILE) httpd-2.2.2-config-1.patch = $(DL_FROM)/httpd-2.2.2-config-1.patch -$(DL_FILE)_MD5 = 8faef0decf3fa7e69b2568eb2105a3d8 +$(DL_FILE)_MD5 = 579342fdeaa7b8b68d17fee91f8fab6e httpd-2.2.2-config-1.patch_MD5 = e02a3ec5925eb9e111400b9aa229f822 install : $(TARGET) From 2acac5421f03eccd0e603106093489b985c65cb8 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 19 Mar 2015 19:18:49 +0100 Subject: [PATCH 065/210] cyrus-sasl: Update to version 2.1.26 --- lfs/cyrus-sasl | 8 ++++---- src/patches/cyrus-sasl-2.1.22-bad-elif.patch | 21 -------------------- 2 files changed, 4 insertions(+), 25 deletions(-) delete mode 100644 src/patches/cyrus-sasl-2.1.22-bad-elif.patch diff --git a/lfs/cyrus-sasl b/lfs/cyrus-sasl index af2b14889..84f49d935 100644 --- a/lfs/cyrus-sasl +++ b/lfs/cyrus-sasl @@ -24,7 +24,7 @@ include Config -VER = 2.1.21 +VER = 2.1.26 THISAPP = cyrus-sasl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -49,7 +49,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = dde02db234dea892bee298390890502e +$(DL_FILE)_MD5 = a7f4e5e559a0e37b3ffc438c9456e425 install : $(TARGET) @@ -82,7 +82,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cyrus-sasl-2.1.22-bad-elif.patch cd $(DIR_APP) && sed -i '/sasl_global/s/^static //' lib/client.c cd $(DIR_APP) && sed -i 's/cat8/man8/' saslauthd/Makefile.am cd $(DIR_APP) && autoconf @@ -90,7 +89,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) ifeq "$(PASS)" "" cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ --with-dbpath=/var/lib/sasl/sasldb2 \ - --with-saslauthd=/var/run/saslauthd + --with-saslauthd=/var/run/saslauthd \ + --with-des=no --with-rc4=no cd $(DIR_APP) && make cd $(DIR_APP) && make install install -v -m700 -d /var/lib/sasl diff --git a/src/patches/cyrus-sasl-2.1.22-bad-elif.patch b/src/patches/cyrus-sasl-2.1.22-bad-elif.patch deleted file mode 100644 index 33550c428..000000000 --- a/src/patches/cyrus-sasl-2.1.22-bad-elif.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up cyrus-sasl-2.1.22/plugins/digestmd5.c.elif cyrus-sasl-2.1.22/plugins/digestmd5.c ---- cyrus-sasl-2.1.22/plugins/digestmd5.c.elif 2009-01-23 09:40:31.000000000 +0100 -+++ cyrus-sasl-2.1.22/plugins/digestmd5.c 2009-02-06 15:20:15.000000000 +0100 -@@ -2743,7 +2743,7 @@ static sasl_server_plug_t digestmd5_serv - "DIGEST-MD5", /* mech_name */ - #ifdef WITH_RC4 - 128, /* max_ssf */ --#elif WITH_DES -+#elif defined(WITH_DES) - 112, - #else - 1, -@@ -4071,7 +4071,7 @@ static sasl_client_plug_t digestmd5_clie - "DIGEST-MD5", - #ifdef WITH_RC4 /* mech_name */ - 128, /* max ssf */ --#elif WITH_DES -+#elif defined(WITH_DES) - 112, - #else - 1, From d9f47d9b9e5041ee9b9d5fc40471cffe67d2a35e Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Thu, 19 Mar 2015 22:09:24 +0100 Subject: [PATCH 066/210] xt_geoip_update: Add support for upstream proxy. --- src/scripts/xt_geoip_update | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/scripts/xt_geoip_update b/src/scripts/xt_geoip_update index 42e214366..0ee774470 100644 --- a/src/scripts/xt_geoip_update +++ b/src/scripts/xt_geoip_update @@ -32,14 +32,30 @@ CSV_FILE=GeoIPCountryWhois.csv ARCH=LE +eval $(/usr/local/bin/readhash /var/ipfire/proxy/settings) + function download() { echo "Downloading latest GeoIP ruleset..." # Create temporary directory. mkdir -pv $TMP_PATH + # Proxy settings. + # Check if a proxy should be used. + if [[ $UPSTREAM_PROXY ]]; then + PROXYSETTINGS="-e http_proxy=http://" + + # Check if authentication against the proxy is configured. + if [[ $UPSTREAM_USER && $UPSTREAM_PASSWORD ]]; then + PROXYSETTINGS="$PROXYSETTINGS$UPSTREAM_USER:$UPSTREAM_PASSWORD@" + fi + + # Add proxy server. + PROXYSETTINGS="$PROXYSETTINGS$UPSTREAM_PROXY" + fi + # Get the latest GeoIP database from server. - wget $DL_URL/$DL_FILE -O $TMP_FILE + wget $DL_URL/$DL_FILE $PROXYSETTINGS -O $TMP_FILE # Extract files. unzip $TMP_FILE -d $TMP_PATH From 3b9b58f95646c95b0fd7b2e8de90d074cb70cc70 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Fri, 20 Mar 2015 18:53:44 +0100 Subject: [PATCH 067/210] ddns.cgi: Drop code for proto handling. --- html/cgi-bin/ddns.cgi | 5 ----- 1 file changed, 5 deletions(-) diff --git a/html/cgi-bin/ddns.cgi b/html/cgi-bin/ddns.cgi index 044aa9718..3e6f72f98 100644 --- a/html/cgi-bin/ddns.cgi +++ b/html/cgi-bin/ddns.cgi @@ -700,11 +700,6 @@ sub GenerateDDNSConfigFile { print FILE "password = $password\n"; } - # These providers need to be set to only use IPv4. - if ($provider ~~ ["freedns.afraid.org", "nsupdate.info", "opendns.com", "variomedia.de", "zoneedit.com"]) { - print FILE "proto = ipv4\n"; - } - print FILE "\n"; } From 85abe3323a0b43976686d1c8e875861c7510abce Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 22 Mar 2015 18:53:17 +0100 Subject: [PATCH 068/210] Add spanish translations for GeoIP related strings. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A big thanks to Roberto Peña to provide them on the IPFire forum. http://forum.ipfire.org/viewtopic.php?f=52&t=11950&sid=f50fe6f51e0f45f1402c7a2164225398&start=30#p82360 --- langs/es/cgi-bin/es.pl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl index b7c50ff10..90f4237fb 100644 --- a/langs/es/cgi-bin/es.pl +++ b/langs/es/cgi-bin/es.pl @@ -866,6 +866,16 @@ 'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generar los certificador root y host puede tomar mucho tiempo. Puede durar varios minutos en equipos antiguos. Por favor sea paciente.', 'genkey' => 'Generar PSK', 'genre' => 'Género', +'geoip' => 'GeoIP', +'geoipblock' => 'GeoIP Block', +'geoipblock block countries' => 'Países bloqueados', +'geoipblock configuration' => 'Configuración GeoIP', +'geoipblock country code' => 'Código del País', +'geoipblock country is allowed' => 'Se permite el tráfico procedente de este País', +'geoipblock country is blocked' => 'Se deniega el tráfico procedente de este País', +'geoipblock country name' => 'Nombre del País', +'geoipblock enable feature' => 'Habilitar bloqueo basado GeoIP:', +'geoipblock flag' => 'Bandera', 'global settings' => 'Configuraciones globales', 'gpl i accept these terms and conditions' => 'I accept these terms and conditions', 'gpl license agreement' => 'License Agreement', From a40a1e25f7d1e6ec648afd10c8873611d139bfd9 Mon Sep 17 00:00:00 2001 From: Dirk Wagner Date: Sun, 22 Mar 2015 22:33:30 +0100 Subject: [PATCH 069/210] mont addon: added missing dir /var/lib/monit to distribution --- config/rootfiles/packages/monit | 1 + lfs/monit | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/config/rootfiles/packages/monit b/config/rootfiles/packages/monit index 049bab351..4477ea3d2 100644 --- a/config/rootfiles/packages/monit +++ b/config/rootfiles/packages/monit @@ -1,6 +1,7 @@ etc/monitrc usr/bin/monit #usr/share/man/man1/monit.1 +var/lib/monit var/ipfire/backup/addons/includes/monit etc/rc.d/init.d/monit etc/rc.d/rc0.d/K40monit diff --git a/lfs/monit b/lfs/monit index f57ad011c..92e076002 100644 --- a/lfs/monit +++ b/lfs/monit @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = monit -PAK_VER = 5 +PAK_VER = 6 DEPS = "" @@ -81,6 +81,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + mkdir -p /var/lib/monit + install -v -m 644 $(DIR_SRC)/config/backup/includes/monit \ /var/ipfire/backup/addons/includes/monit From e0b9a600e19f3829dcdf9858c776d7a169ea2ccc Mon Sep 17 00:00:00 2001 From: Justin Luth Date: Sat, 28 Mar 2015 12:39:47 +0300 Subject: [PATCH 070/210] Allow flash-images to compile on Ubuntu: delay to allow automount/dismount --- lfs/flash-images | 1 + 1 file changed, 1 insertion(+) diff --git a/lfs/flash-images b/lfs/flash-images index 6c8818059..530bf339b 100644 --- a/lfs/flash-images +++ b/lfs/flash-images @@ -211,6 +211,7 @@ endif -fsck.ext4 -f -y $(PART_ROOT) fsck.ext4 -f -y $(PART_ROOT) + sleep 10 #Ubuntu compiling: allow time to automount/dismount kpartx -d -v $(DEVICE) losetup -d $(DEVICE) From fffb0165b6f85068a60c9bb816ba09a4d6934fb2 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sun, 29 Mar 2015 19:29:55 +0200 Subject: [PATCH 071/210] kernel: update to 3.14.37 --- .../kernel.config.armv5tel-ipfire-kirkwood | 4 +- .../kernel.config.armv5tel-ipfire-multi | 4 +- .../kernel/kernel.config.armv5tel-ipfire-rpi | 4 +- config/kernel/kernel.config.i586-ipfire | 5 +- config/kernel/kernel.config.i586-ipfire-pae | 5 +- config/rootfiles/common/armv5tel/linux-multi | 1 + lfs/linux | 20 ++++---- .../linux-3.14.x-lamobo-r1-fix-sata-pwr.patch | 49 ------------------- 8 files changed, 22 insertions(+), 70 deletions(-) delete mode 100644 src/patches/linux-3.14.x-lamobo-r1-fix-sata-pwr.patch diff --git a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood index 18ffcd77c..cf44486e5 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood +++ b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 3.14.30 Kernel Configuration +# Linux/arm 3.14.37 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -5042,7 +5042,6 @@ CONFIG_DEBUG_KERNEL=y # # Memory Debugging # -# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set @@ -5275,6 +5274,7 @@ CONFIG_GRKERNSEC_CHROOT_UNIX=y CONFIG_GRKERNSEC_CHROOT_FINDTASK=y CONFIG_GRKERNSEC_CHROOT_NICE=y CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +CONFIG_GRKERNSEC_CHROOT_RENAME=y # CONFIG_GRKERNSEC_CHROOT_CAPS is not set CONFIG_GRKERNSEC_CHROOT_INITRD=y diff --git a/config/kernel/kernel.config.armv5tel-ipfire-multi b/config/kernel/kernel.config.armv5tel-ipfire-multi index e3fa93e9d..25de266d5 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-multi +++ b/config/kernel/kernel.config.armv5tel-ipfire-multi @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 3.14.30 Kernel Configuration +# Linux/arm 3.14.37 Kernel Configuration # CONFIG_ARM=y CONFIG_MIGHT_HAVE_PCI=y @@ -5530,7 +5530,6 @@ CONFIG_DEBUG_KERNEL=y # # Memory Debugging # -# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y @@ -5764,6 +5763,7 @@ CONFIG_GRKERNSEC_CHROOT_UNIX=y CONFIG_GRKERNSEC_CHROOT_FINDTASK=y CONFIG_GRKERNSEC_CHROOT_NICE=y CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +CONFIG_GRKERNSEC_CHROOT_RENAME=y # CONFIG_GRKERNSEC_CHROOT_CAPS is not set CONFIG_GRKERNSEC_CHROOT_INITRD=y diff --git a/config/kernel/kernel.config.armv5tel-ipfire-rpi b/config/kernel/kernel.config.armv5tel-ipfire-rpi index 17a7305eb..b25210a17 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-rpi +++ b/config/kernel/kernel.config.armv5tel-ipfire-rpi @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 3.14.30 Kernel Configuration +# Linux/arm 3.14.37 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -3643,7 +3643,6 @@ CONFIG_DEBUG_KERNEL=y # # Memory Debugging # -# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set @@ -3858,6 +3857,7 @@ CONFIG_GRKERNSEC_CHROOT_UNIX=y CONFIG_GRKERNSEC_CHROOT_FINDTASK=y CONFIG_GRKERNSEC_CHROOT_NICE=y CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +CONFIG_GRKERNSEC_CHROOT_RENAME=y # CONFIG_GRKERNSEC_CHROOT_CAPS is not set CONFIG_GRKERNSEC_CHROOT_INITRD=y diff --git a/config/kernel/kernel.config.i586-ipfire b/config/kernel/kernel.config.i586-ipfire index 87687d962..f5ff73efb 100644 --- a/config/kernel/kernel.config.i586-ipfire +++ b/config/kernel/kernel.config.i586-ipfire @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 3.14.30 Kernel Configuration +# Linux/x86 3.14.37 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -410,6 +410,7 @@ CONFIG_SCHED_MC=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set +CONFIG_X86_UP_APIC_MSI=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y @@ -5494,7 +5495,6 @@ CONFIG_DEBUG_KERNEL=y # # Memory Debugging # -# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set @@ -5766,6 +5766,7 @@ CONFIG_GRKERNSEC_CHROOT_UNIX=y CONFIG_GRKERNSEC_CHROOT_FINDTASK=y CONFIG_GRKERNSEC_CHROOT_NICE=y CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +CONFIG_GRKERNSEC_CHROOT_RENAME=y # CONFIG_GRKERNSEC_CHROOT_CAPS is not set CONFIG_GRKERNSEC_CHROOT_INITRD=y diff --git a/config/kernel/kernel.config.i586-ipfire-pae b/config/kernel/kernel.config.i586-ipfire-pae index c5a437a59..8e7220184 100644 --- a/config/kernel/kernel.config.i586-ipfire-pae +++ b/config/kernel/kernel.config.i586-ipfire-pae @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 3.14.30 Kernel Configuration +# Linux/x86 3.14.37 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -420,6 +420,7 @@ CONFIG_SCHED_MC=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set +CONFIG_X86_UP_APIC_MSI=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y @@ -5537,7 +5538,6 @@ CONFIG_DEBUG_KERNEL=y # # Memory Debugging # -# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set @@ -5807,6 +5807,7 @@ CONFIG_GRKERNSEC_CHROOT_UNIX=y CONFIG_GRKERNSEC_CHROOT_FINDTASK=y CONFIG_GRKERNSEC_CHROOT_NICE=y CONFIG_GRKERNSEC_CHROOT_SYSCTL=y +CONFIG_GRKERNSEC_CHROOT_RENAME=y # CONFIG_GRKERNSEC_CHROOT_CAPS is not set CONFIG_GRKERNSEC_CHROOT_INITRD=y diff --git a/config/rootfiles/common/armv5tel/linux-multi b/config/rootfiles/common/armv5tel/linux-multi index fa07629b8..c2d3cd276 100644 --- a/config/rootfiles/common/armv5tel/linux-multi +++ b/config/rootfiles/common/armv5tel/linux-multi @@ -53,6 +53,7 @@ boot/dtb-KVER-ipfire-multi #boot/dtb-KVER-ipfire-multi/imx6dl-sabresd.dtb #boot/dtb-KVER-ipfire-multi/imx6dl-wandboard.dtb #boot/dtb-KVER-ipfire-multi/imx6q-arm2.dtb +#boot/dtb-KVER-ipfire-multi/imx6q-cm-fx6.dtb #boot/dtb-KVER-ipfire-multi/imx6q-cubox-i.dtb #boot/dtb-KVER-ipfire-multi/imx6q-gw51xx.dtb #boot/dtb-KVER-ipfire-multi/imx6q-gw52xx.dtb diff --git a/lfs/linux b/lfs/linux index ef30fa673..17a1297b7 100644 --- a/lfs/linux +++ b/lfs/linux @@ -24,11 +24,11 @@ include Config -VER = 3.14.33 +VER = 3.14.37 -RPI_PATCHES = 3.14.33-grsec-ipfire1 -A7M_PATCHES = 3.14.33-grsec-ipfire1 -GRS_PATCHES = grsecurity-3.0-3.14.33-201502180832.patch.xz +RPI_PATCHES = 3.14.37-grsec-ipfire1 +A7M_PATCHES = 3.14.37-grsec-ipfire1 +GRS_PATCHES = grsecurity-3.1-3.14.37-201503270048.patch.xz THISAPP = linux-$(VER) DL_FILE = linux-$(VER).tar.xz @@ -37,7 +37,7 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) CFLAGS = CXXFLAGS = -PAK_VER = 58 +PAK_VER = 59 DEPS = "" VERSUFIX=ipfire$(KCFG) @@ -77,10 +77,10 @@ rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES). arm7-multi-patches-$(A7M_PATCHES).patch.xz = $(URL_IPFIRE)/arm7-multi-patches-$(A7M_PATCHES).patch.xz $(GRS_PATCHES) = $(URL_IPFIRE)/$(GRS_PATCHES) -$(DL_FILE)_MD5 = c19feb0646fde7e96602ac313fb7e5d6 -rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = e423c8b3a408f23b9a26f8f0f4384c50 -arm7-multi-patches-$(A7M_PATCHES).patch.xz_MD5 = f147ce7c81889d2c5134304f3a6e60e3 -$(GRS_PATCHES)_MD5 = 119943451628ff5a62437637d60a585d +$(DL_FILE)_MD5 = 43abcb454054c53fb07296e84119edc5 +rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 375dc501711ff3ffeffdfc9848675d26 +arm7-multi-patches-$(A7M_PATCHES).patch.xz_MD5 = 8a0a0d6ef78d53b3095691499dac4b71 +$(GRS_PATCHES)_MD5 = d83ca635c83bbd5efc4372992ab58094 install : $(TARGET) @@ -178,8 +178,6 @@ ifeq "$(KCFG)" "-multi" # Install switch api userspace header cd $(DIR_APP) && install -v -m644 include/uapi/linux/switch.h /usr/include/linux/ - # Fix Lamobo-R1 SATA Power - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.x-lamobo-r1-fix-sata-pwr.patch endif ifeq "$(KCFG)" "-rpi" diff --git a/src/patches/linux-3.14.x-lamobo-r1-fix-sata-pwr.patch b/src/patches/linux-3.14.x-lamobo-r1-fix-sata-pwr.patch deleted file mode 100644 index 1c0f994b2..000000000 --- a/src/patches/linux-3.14.x-lamobo-r1-fix-sata-pwr.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 7f558e6e8abee42cc966e2cb64be0de875797e07 Mon Sep 17 00:00:00 2001 -From: Arne Fitzenreiter -Date: Fri, 20 Feb 2015 10:01:26 +0100 -Subject: [PATCH] sun7i: dts: lamobo-r1: fix sata pwr regulator pin. - -Lamobo-R1 use PB3 instead of PB8 for controlling the SATA power regulator. ---- - arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts -index 1eb6c9b..d634d2f 100644 ---- a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts -+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts -@@ -166,6 +166,16 @@ - reg = <1>; - }; - }; -+ -+ pio: pinctrl@01c20800 { -+ ahci_pwr_pin_a: ahci_pwr_pin@0 { -+ allwinner,pins = "PB3"; -+ allwinner,function = "gpio_out"; -+ allwinner,drive = <0>; -+ allwinner,pull = <0>; -+ }; -+ }; -+ - }; - - leds { -@@ -181,6 +191,14 @@ - }; - - reg_ahci_5v: ahci-5v { -+ compatible = "regulator-fixed"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&ahci_pwr_pin_a>; -+ regulator-name = "ahci-5v"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ enable-active-high; -+ gpio = <&pio 1 3 0>; - status = "okay"; - }; - --- -1.8.5.2 - From b63c35cae117ed4fb0871955b741016915ba61da Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sun, 29 Mar 2015 19:38:12 +0200 Subject: [PATCH 072/210] kernel: disable igb vendor modul build the igb that is included to driver backports seems to be better. --- make.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/make.sh b/make.sh index 4deb3c882..0326a9064 100755 --- a/make.sh +++ b/make.sh @@ -411,7 +411,7 @@ buildipfire() { ipfiremake backports KCFG="-pae" ipfiremake cryptodev KCFG="-pae" ipfiremake e1000e KCFG="-pae" - ipfiremake igb KCFG="-pae" +# ipfiremake igb KCFG="-pae" ipfiremake ixgbe KCFG="-pae" ipfiremake linux-initrd KCFG="-pae" @@ -420,7 +420,7 @@ buildipfire() { ipfiremake backports KCFG="" ipfiremake cryptodev KCFG="" ipfiremake e1000e KCFG="" - ipfiremake igb KCFG="" +# ipfiremake igb KCFG="" ipfiremake ixgbe KCFG="" ipfiremake linux-initrd KCFG="" ;; @@ -437,7 +437,7 @@ buildipfire() { ipfiremake backports KCFG="-multi" ipfiremake cryptodev KCFG="-multi" ipfiremake e1000e KCFG="-multi" - ipfiremake igb KCFG="-multi" +# ipfiremake igb KCFG="-multi" ipfiremake ixgbe KCFG="-multi" ipfiremake linux-initrd KCFG="-multi" @@ -446,7 +446,7 @@ buildipfire() { ipfiremake backports KCFG="-kirkwood" ipfiremake cryptodev KCFG="-kirkwood" ipfiremake e1000e KCFG="-kirkwood" - ipfiremake igb KCFG="-kirkwood" +# ipfiremake igb KCFG="-kirkwood" ipfiremake ixgbe KCFG="-kirkwood" ipfiremake linux-initrd KCFG="-kirkwood" ;; From 5b3bd19f310f8389eef1bb0d4107bce4aab26cb1 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sun, 29 Mar 2015 19:46:14 +0200 Subject: [PATCH 073/210] kernel: fix hyperv net driver for legacy hyperv 2008. --- lfs/linux | 3 ++ .../linux-3.14.x-hyperv-2008-fix.patch | 50 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 src/patches/linux-3.14.x-hyperv-2008-fix.patch diff --git a/lfs/linux b/lfs/linux index 17a1297b7..7ac13d6b4 100644 --- a/lfs/linux +++ b/lfs/linux @@ -164,6 +164,9 @@ endif # r8169 L23 patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.32-r8169_disable_L23.patch + # HyperV 2008 patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.x-hyperv-2008-fix.patch + ifeq "$(KCFG)" "-kirkwood" cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.22-kirkwood_legacy_boot.patch diff --git a/src/patches/linux-3.14.x-hyperv-2008-fix.patch b/src/patches/linux-3.14.x-hyperv-2008-fix.patch new file mode 100644 index 000000000..e538e08e5 --- /dev/null +++ b/src/patches/linux-3.14.x-hyperv-2008-fix.patch @@ -0,0 +1,50 @@ +From 99d3016de4f2a29635f5382b0e9bd0e5f2151487 Mon Sep 17 00:00:00 2001 +From: Haiyang Zhang +Date: Sun, 9 Mar 2014 16:10:59 -0700 +Subject: hyperv: Change the receive buffer size for legacy hosts + +Due to a bug in the Hyper-V host verion 2008R2, we need to use a slightly smaller +receive buffer size, otherwise the buffer will not be accepted by the legacy hosts. + +Signed-off-by: Haiyang Zhang +Signed-off-by: David S. Miller + +diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h +index 7d06b49..13010b4 100644 +--- a/drivers/net/hyperv/hyperv_net.h ++++ b/drivers/net/hyperv/hyperv_net.h +@@ -513,6 +513,7 @@ struct nvsp_message { + #define NETVSC_MTU 65536 + + #define NETVSC_RECEIVE_BUFFER_SIZE (1024*1024*16) /* 16MB */ ++#define NETVSC_RECEIVE_BUFFER_SIZE_LEGACY (1024*1024*15) /* 15MB */ + + #define NETVSC_RECEIVE_BUFFER_ID 0xcafe + +diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c +index 1a0280d..daddea2 100644 +--- a/drivers/net/hyperv/netvsc.c ++++ b/drivers/net/hyperv/netvsc.c +@@ -365,6 +365,11 @@ static int netvsc_connect_vsp(struct hv_device *device) + goto cleanup; + + /* Post the big receive buffer to NetVSP */ ++ if (net_device->nvsp_version <= NVSP_PROTOCOL_VERSION_2) ++ net_device->recv_buf_size = NETVSC_RECEIVE_BUFFER_SIZE_LEGACY; ++ else ++ net_device->recv_buf_size = NETVSC_RECEIVE_BUFFER_SIZE; ++ + ret = netvsc_init_recv_buf(device); + + cleanup: +@@ -898,7 +903,6 @@ int netvsc_device_add(struct hv_device *device, void *additional_info) + ndev = net_device->ndev; + + /* Initialize the NetVSC channel extension */ +- net_device->recv_buf_size = NETVSC_RECEIVE_BUFFER_SIZE; + spin_lock_init(&net_device->recv_pkt_list_lock); + + INIT_LIST_HEAD(&net_device->recv_pkt_list); +-- +cgit v0.10.2 + From 0a565414dd9e4ed8a050430e18490ad0ef61b4d3 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sun, 29 Mar 2015 22:43:56 +0200 Subject: [PATCH 074/210] kernel: backports: rt2800usb: suppress more queue warnings --- lfs/backports | 1 + ...-1_rt2800usb_suppress_queue_warnings.patch | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/patches/backports-3.18.1-1_rt2800usb_suppress_queue_warnings.patch diff --git a/lfs/backports b/lfs/backports index 0eebe818d..96de955d6 100644 --- a/lfs/backports +++ b/lfs/backports @@ -90,6 +90,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-drivers-3.8.3-ath_ignore_eeprom_regdomain.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.22-iwlwifi-noibss_only_on_radar_chan.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.37-rt2800usb_add_dlink_dwa137_usbid.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/backports-3.18.1-1_rt2800usb_suppress_queue_warnings.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/backports-3.18.1-1_add_libertas_uap.patch # smsc mac address patch for pandaboard and raspberry pi diff --git a/src/patches/backports-3.18.1-1_rt2800usb_suppress_queue_warnings.patch b/src/patches/backports-3.18.1-1_rt2800usb_suppress_queue_warnings.patch new file mode 100644 index 000000000..8270d311d --- /dev/null +++ b/src/patches/backports-3.18.1-1_rt2800usb_suppress_queue_warnings.patch @@ -0,0 +1,30 @@ +diff -Naur backports-3.18.1-1.org/drivers/net/wireless/rt2x00/rt2800usb.c backports-3.18.1-1/drivers/net/wireless/rt2x00/rt2800usb.c +--- backports-3.18.1-1.org/drivers/net/wireless/rt2x00/rt2800usb.c 2014-12-21 22:37:14.000000000 +0100 ++++ backports-3.18.1-1/drivers/net/wireless/rt2x00/rt2800usb.c 2015-03-29 21:42:13.865183543 +0200 +@@ -444,7 +444,7 @@ + + rt2x00usb_register_read(rt2x00dev, TXRXQ_PCNT, ®); + if (rt2x00_get_field32(reg, TXRXQ_PCNT_TX0Q)) { +- rt2x00_warn(rt2x00dev, "TX HW queue 0 timed out, invoke forced kick\n"); ++ rt2x00_dbg(rt2x00dev, "TX HW queue 0 timed out, invoke forced kick\n"); + + rt2x00usb_register_write(rt2x00dev, PBF_CFG, 0xf40012); + +@@ -459,7 +459,7 @@ + + rt2x00usb_register_read(rt2x00dev, TXRXQ_PCNT, ®); + if (rt2x00_get_field32(reg, TXRXQ_PCNT_TX1Q)) { +- rt2x00_warn(rt2x00dev, "TX HW queue 1 timed out, invoke forced kick\n"); ++ rt2x00_dbg(rt2x00dev, "TX HW queue 1 timed out, invoke forced kick\n"); + + rt2x00usb_register_write(rt2x00dev, PBF_CFG, 0xf4000a); + +@@ -609,7 +609,7 @@ + + if (unlikely(test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) || + !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))) { +- rt2x00_warn(rt2x00dev, "Data pending for entry %u in queue %u\n", ++ rt2x00_dbg(rt2x00dev, "Data pending for entry %u in queue %u\n", + entry->entry_idx, qid); + break; + } From e0d006cd8e186d28ce11d20a9ab6f8462de882fe Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Mon, 30 Mar 2015 13:11:40 +0200 Subject: [PATCH 075/210] installer: add option to disable grafic mode for grub. add novga to kernel commandline for the installer to add GFXMODE="none" to /etc/default/grub. --- config/syslinux/syslinux.cfg | 1 + src/installer/main.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/config/syslinux/syslinux.cfg b/config/syslinux/syslinux.cfg index cfb8113cf..39521675d 100644 --- a/config/syslinux/syslinux.cfg +++ b/config/syslinux/syslinux.cfg @@ -50,6 +50,7 @@ Run the installer in text mode. ENDTEXT KERNEL vmlinuz INITRD instroot + APPEND novga LABEL unattended MENU LABEL Unattended installation diff --git a/src/installer/main.c b/src/installer/main.c index 75c8c5ae0..c420de3a1 100644 --- a/src/installer/main.c +++ b/src/installer/main.c @@ -271,6 +271,7 @@ static struct lang { static struct config { int unattended; int serial_console; + int novga; int require_networking; int perform_download; int disable_swap; @@ -280,6 +281,7 @@ static struct config { } config = { .unattended = 0, .serial_console = 0, + .novga = 0, .require_networking = 0, .perform_download = 0, .disable_swap = 0, @@ -309,6 +311,10 @@ static void parse_command_line(struct config* c) { if ((strcmp(key, "console") == 0) && (strncmp(val, "ttyS", 4) == 0)) c->serial_console = 1; + // novga + else if (strcmp(key, "novga") == 0) + c->novga = 1; + // enable networking? else if (strcmp(token, "installer.net") == 0) c->require_networking = 1; @@ -825,6 +831,19 @@ int main(int argc, char *argv[]) { replace("/harddisk/etc/inittab", "#7:2345:respawn:", "7:2345:respawn:"); } + /* novga */ + if (config.novga) { + /* grub */ + FILE* f = fopen(DESTINATION_MOUNT_PATH "/etc/default/grub", "a"); + if (!f) { + errorbox(_("Unable to open /etc/default/grub for writing.")); + goto EXIT; + } + + fprintf(f, "GRUB_GFXMODE=\"none\"\n"); + fclose(f); + } + rc = hw_install_bootloader(destination, logfile); if (rc) { errorbox(_("Unable to install the bootloader.")); From bac04b5e3c86e269a7674da16798bc22edda85bb Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Mon, 30 Mar 2015 20:30:03 +0200 Subject: [PATCH 076/210] rootfile update: apache2 cyrus-sasl logrotate --- config/rootfiles/common/apache2 | 2 +- config/rootfiles/common/cyrus-sasl | 42 ++++++++++++++++++------------ config/rootfiles/common/logrotate | 2 +- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index 3eabe9f76..55dd04ee5 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -1336,7 +1336,7 @@ usr/lib/apr-util-1/apr_dbd_sqlite3.so #usr/lib/libapr-1.la usr/lib/libapr-1.so usr/lib/libapr-1.so.0 -usr/lib/libapr-1.so.0.5.0 +usr/lib/libapr-1.so.0.5.1 #usr/lib/libaprutil-1.a #usr/lib/libaprutil-1.la usr/lib/libaprutil-1.so diff --git a/config/rootfiles/common/cyrus-sasl b/config/rootfiles/common/cyrus-sasl index 08a732182..7934c1cf9 100644 --- a/config/rootfiles/common/cyrus-sasl +++ b/config/rootfiles/common/cyrus-sasl @@ -1,4 +1,3 @@ -etc/rc.d/init.d/cyrus-sasl #usr/include/sasl #usr/include/sasl/hmac-md5.h #usr/include/sasl/md5.h @@ -9,39 +8,44 @@ etc/rc.d/init.d/cyrus-sasl #usr/include/sasl/saslutil.h #usr/lib/libsasl2.la usr/lib/libsasl2.so -usr/lib/libsasl2.so.2 -usr/lib/libsasl2.so.2.0.21 +usr/lib/libsasl2.so.3 +usr/lib/libsasl2.so.3.0.0 +#usr/lib/pkgconfig/libsasl2.pc #usr/lib/sasl2 #usr/lib/sasl2/libanonymous.la usr/lib/sasl2/libanonymous.so -usr/lib/sasl2/libanonymous.so.2 -usr/lib/sasl2/libanonymous.so.2.0.21 +usr/lib/sasl2/libanonymous.so.3 +usr/lib/sasl2/libanonymous.so.3.0.0 #usr/lib/sasl2/libcrammd5.la usr/lib/sasl2/libcrammd5.so -usr/lib/sasl2/libcrammd5.so.2 -usr/lib/sasl2/libcrammd5.so.2.0.21 +usr/lib/sasl2/libcrammd5.so.3 +usr/lib/sasl2/libcrammd5.so.3.0.0 #usr/lib/sasl2/libdigestmd5.la usr/lib/sasl2/libdigestmd5.so -usr/lib/sasl2/libdigestmd5.so.2 -usr/lib/sasl2/libdigestmd5.so.2.0.21 +usr/lib/sasl2/libdigestmd5.so.3 +usr/lib/sasl2/libdigestmd5.so.3.0.0 #usr/lib/sasl2/libotp.la usr/lib/sasl2/libotp.so -usr/lib/sasl2/libotp.so.2 -usr/lib/sasl2/libotp.so.2.0.21 +usr/lib/sasl2/libotp.so.3 +usr/lib/sasl2/libotp.so.3.0.0 #usr/lib/sasl2/libplain.la usr/lib/sasl2/libplain.so -usr/lib/sasl2/libplain.so.2 -usr/lib/sasl2/libplain.so.2.0.21 +usr/lib/sasl2/libplain.so.3 +usr/lib/sasl2/libplain.so.3.0.0 #usr/lib/sasl2/libsasldb.la usr/lib/sasl2/libsasldb.so -usr/lib/sasl2/libsasldb.so.2 -usr/lib/sasl2/libsasldb.so.2.0.21 +usr/lib/sasl2/libsasldb.so.3 +usr/lib/sasl2/libsasldb.so.3.0.0 +#usr/lib/sasl2/libscram.la +usr/lib/sasl2/libscram.so +usr/lib/sasl2/libscram.so.3 +usr/lib/sasl2/libscram.so.3.0.0 usr/lib/sasl2/smtpd.conf -#usr/man/cat8 -#usr/man/cat8/saslauthd.8 +usr/sbin/pluginviewer usr/sbin/saslauthd usr/sbin/sasldblistusers2 usr/sbin/saslpasswd2 +usr/sbin/testsaslauthd #usr/share/man/man3/sasl.3 #usr/share/man/man3/sasl_authorize_t.3 #usr/share/man/man3/sasl_auxprop.3 @@ -64,6 +68,7 @@ usr/sbin/saslpasswd2 #usr/share/man/man3/sasl_errdetail.3 #usr/share/man/man3/sasl_errors.3 #usr/share/man/man3/sasl_errstring.3 +#usr/share/man/man3/sasl_getconfpath_t.3 #usr/share/man/man3/sasl_getopt_t.3 #usr/share/man/man3/sasl_getpath_t.3 #usr/share/man/man3/sasl_getprop.3 @@ -84,6 +89,9 @@ usr/sbin/saslpasswd2 #usr/share/man/man3/sasl_setprop.3 #usr/share/man/man3/sasl_user_exists.3 #usr/share/man/man3/sasl_verifyfile_t.3 +#usr/share/man/man8/pluginviewer.8 +#usr/share/man/man8/saslauthd.8 #usr/share/man/man8/sasldblistusers2.8 #usr/share/man/man8/saslpasswd2.8 var/lib/sasl +etc/rc.d/init.d/cyrus-sasl diff --git a/config/rootfiles/common/logrotate b/config/rootfiles/common/logrotate index 5800a0486..8ef728c94 100644 --- a/config/rootfiles/common/logrotate +++ b/config/rootfiles/common/logrotate @@ -1,6 +1,6 @@ #etc/logrotate.d etc/logrotate.d/.empty -#usr/man/man5/logrotate.5 +#usr/man/man5/logrotate.conf.5 #usr/man/man8/logrotate.8 usr/sbin/logrotate var/lib/logrotate.status From 23e591db40e7dc6b02e2d826cf80cfac2dc32f9a Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 31 Mar 2015 00:55:21 +0200 Subject: [PATCH 077/210] strongswan: Update to 5.3.0 Enable support for CCM and CTR --- .../strongswan-5.2.2-issue-816-650a3ad.patch | 35 ------------- .../strongswan-5.2.2-issue-816-dd0ebb.patch | 42 ---------------- .../strongswan-5.2.2-issue-816-eb25190.patch | 31 ------------ .../strongswan-5.2.2-issue-819-cd2c30a.patch | 50 ------------------- ...2_ipfire.patch => strongswan-ipfire.patch} | 0 5 files changed, 158 deletions(-) delete mode 100644 src/patches/strongswan-5.2.2-issue-816-650a3ad.patch delete mode 100644 src/patches/strongswan-5.2.2-issue-816-dd0ebb.patch delete mode 100644 src/patches/strongswan-5.2.2-issue-816-eb25190.patch delete mode 100644 src/patches/strongswan-5.2.2-issue-819-cd2c30a.patch rename src/patches/{strongswan-5.0.2_ipfire.patch => strongswan-ipfire.patch} (100%) diff --git a/src/patches/strongswan-5.2.2-issue-816-650a3ad.patch b/src/patches/strongswan-5.2.2-issue-816-650a3ad.patch deleted file mode 100644 index 44b247e6d..000000000 --- a/src/patches/strongswan-5.2.2-issue-816-650a3ad.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit 650a3ad5151958b99a95836fb8b84b8aa18da1be -Author: Tobias Brunner -Date: Wed Feb 25 08:09:11 2015 +0100 - - ike-sa-manager: Make sure the message ID of initial messages is 0 - - It is mandated by the RFCs and it is expected by the task managers. - - Initial messages with invalid MID will be treated like regular messages, - so no IKE_SA will be created for them. Instead, if the responder SPI is 0 - no SA will be found and the message is rejected with ALERT_INVALID_IKE_SPI. - If an SPI is set and we do find an SA, then we either ignore the message - because the MID is unexpected, or because we don't allow initial messages - on established connections. - - There is one exception, though, if an attacker can slip in an IKE_SA_INIT - with both SPIs set before the client's IKE_AUTH is handled by the server, - it does get processed (see next commit). - - References #816. - -diff --git a/src/libcharon/sa/ike_sa_manager.c b/src/libcharon/sa/ike_sa_manager.c -index d0cbd47..5e2b925 100644 ---- a/src/libcharon/sa/ike_sa_manager.c -+++ b/src/libcharon/sa/ike_sa_manager.c -@@ -1184,7 +1184,8 @@ METHOD(ike_sa_manager_t, checkout_by_message, ike_sa_t*, - - DBG2(DBG_MGR, "checkout IKE_SA by message"); - -- if (id->get_responder_spi(id) == 0) -+ if (id->get_responder_spi(id) == 0 && -+ message->get_message_id(message) == 0) - { - if (message->get_major_version(message) == IKEV2_MAJOR_VERSION) - { diff --git a/src/patches/strongswan-5.2.2-issue-816-dd0ebb.patch b/src/patches/strongswan-5.2.2-issue-816-dd0ebb.patch deleted file mode 100644 index 4d76e7c24..000000000 --- a/src/patches/strongswan-5.2.2-issue-816-dd0ebb.patch +++ /dev/null @@ -1,42 +0,0 @@ -commit dd0ebb54837298c869389d36a0b42eefdb893dd6 -Author: Tobias Brunner -Date: Wed Feb 25 08:30:33 2015 +0100 - - ikev2: Only accept initial messages in specific states - - The previous code allowed an attacker to slip in an IKE_SA_INIT with - both SPIs and MID 1 set when an IKE_AUTH would be expected instead. - - References #816. - -diff --git a/src/libcharon/sa/ikev2/task_manager_v2.c b/src/libcharon/sa/ikev2/task_manager_v2.c -index be84e71..540d4dc 100644 ---- a/src/libcharon/sa/ikev2/task_manager_v2.c -+++ b/src/libcharon/sa/ikev2/task_manager_v2.c -@@ -1304,17 +1304,16 @@ METHOD(task_manager_t, process_message, status_t, - { - if (mid == this->responding.mid) - { -- /* reject initial messages once established */ -- if (msg->get_exchange_type(msg) == IKE_SA_INIT || -- msg->get_exchange_type(msg) == IKE_AUTH) -+ /* reject initial messages if not received in specific states */ -+ if ((msg->get_exchange_type(msg) == IKE_SA_INIT && -+ this->ike_sa->get_state(this->ike_sa) != IKE_CREATED) || -+ (msg->get_exchange_type(msg) == IKE_AUTH && -+ this->ike_sa->get_state(this->ike_sa) != IKE_CONNECTING)) - { -- if (this->ike_sa->get_state(this->ike_sa) != IKE_CREATED && -- this->ike_sa->get_state(this->ike_sa) != IKE_CONNECTING) -- { -- DBG1(DBG_IKE, "ignoring %N in established IKE_SA state", -- exchange_type_names, msg->get_exchange_type(msg)); -- return FAILED; -- } -+ DBG1(DBG_IKE, "ignoring %N in IKE_SA state %N", -+ exchange_type_names, msg->get_exchange_type(msg), -+ ike_sa_state_names, this->ike_sa->get_state(this->ike_sa)); -+ return FAILED; - } - if (!this->ike_sa->supports_extension(this->ike_sa, EXT_MOBIKE)) - { /* with MOBIKE, we do no implicit updates */ diff --git a/src/patches/strongswan-5.2.2-issue-816-eb25190.patch b/src/patches/strongswan-5.2.2-issue-816-eb25190.patch deleted file mode 100644 index 8dcb32b0b..000000000 --- a/src/patches/strongswan-5.2.2-issue-816-eb25190.patch +++ /dev/null @@ -1,31 +0,0 @@ -commit eb251906298b529fa53b8a99746a9a7a9f318dd5 -Author: Tobias Brunner -Date: Wed Feb 25 08:18:58 2015 +0100 - - ikev2: Don't destroy the SA if an IKE_SA_INIT with unexpected MID is received - - This reverts 8f727d800751 ("Clean up IKE_SA state if IKE_SA_INIT request - does not have message ID 0") because it allowed to close any IKE_SA by - sending an IKE_SA_INIT with an unexpected MID and both SPIs set to those - of that SA. - - The next commit will prevent SAs from getting created for IKE_SA_INIT messages - with invalid MID. - - Fixes #816. - -diff --git a/src/libcharon/sa/ikev2/task_manager_v2.c b/src/libcharon/sa/ikev2/task_manager_v2.c -index 48266aa..be84e71 100644 ---- a/src/libcharon/sa/ikev2/task_manager_v2.c -+++ b/src/libcharon/sa/ikev2/task_manager_v2.c -@@ -1355,10 +1355,6 @@ METHOD(task_manager_t, process_message, status_t, - { - DBG1(DBG_IKE, "received message ID %d, expected %d. Ignored", - mid, this->responding.mid); -- if (msg->get_exchange_type(msg) == IKE_SA_INIT) -- { /* clean up IKE_SA state if IKE_SA_INIT has invalid msg ID */ -- return DESTROY_ME; -- } - } - } - else diff --git a/src/patches/strongswan-5.2.2-issue-819-cd2c30a.patch b/src/patches/strongswan-5.2.2-issue-819-cd2c30a.patch deleted file mode 100644 index 0c54812fe..000000000 --- a/src/patches/strongswan-5.2.2-issue-819-cd2c30a.patch +++ /dev/null @@ -1,50 +0,0 @@ -From cd2c30a56ec9bdab8b3923851509f27a4fd6f537 Mon Sep 17 00:00:00 2001 -From: Tobias Brunner -Date: Tue, 10 Feb 2015 19:03:44 +0100 -Subject: [PATCH] ikev1: Set protocol ID and SPIs in INITIAL-CONTACT - notification payloads - -The payload we sent before is not compliant with RFC 2407 and thus some -peers might abort negotiation (e.g. with an INVALID-PROTOCOL-ID error). - - #819 ---- - src/libcharon/sa/ikev1/tasks/main_mode.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/src/libcharon/sa/ikev1/tasks/main_mode.c b/src/libcharon/sa/ikev1/tasks/main_mode.c -index 5065e70..3ea4a2a 100644 ---- a/src/libcharon/sa/ikev1/tasks/main_mode.c -+++ b/src/libcharon/sa/ikev1/tasks/main_mode.c -@@ -213,6 +213,10 @@ static void add_initial_contact(private_main_mode_t *this, message_t *message, - { - identification_t *idr; - host_t *host; -+ notify_payload_t *notify; -+ ike_sa_id_t *ike_sa_id; -+ u_int64_t spi_i, spi_r; -+ chunk_t spi; - - idr = this->ph1->get_id(this->ph1, this->peer_cfg, FALSE); - if (idr && !idr->contains_wildcards(idr)) -@@ -224,8 +228,15 @@ static void add_initial_contact(private_main_mode_t *this, message_t *message, - if (!charon->ike_sa_manager->has_contact(charon->ike_sa_manager, - idi, idr, host->get_family(host))) - { -- message->add_notify(message, FALSE, INITIAL_CONTACT_IKEV1, -- chunk_empty); -+ notify = notify_payload_create_from_protocol_and_type( -+ PLV1_NOTIFY, PROTO_IKE, INITIAL_CONTACT_IKEV1); -+ ike_sa_id = this->ike_sa->get_id(this->ike_sa); -+ spi_i = ike_sa_id->get_initiator_spi(ike_sa_id); -+ spi_r = ike_sa_id->get_responder_spi(ike_sa_id); -+ spi = chunk_cata("cc", chunk_from_thing(spi_i), -+ chunk_from_thing(spi_r)); -+ notify->set_spi_data(notify, spi); -+ message->add_payload(message, (payload_t*)notify); - } - } - } --- -1.7.9.5 - diff --git a/src/patches/strongswan-5.0.2_ipfire.patch b/src/patches/strongswan-ipfire.patch similarity index 100% rename from src/patches/strongswan-5.0.2_ipfire.patch rename to src/patches/strongswan-ipfire.patch From df5fbff5319a798146ecf1365a4638b5c1a1c888 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 31 Mar 2015 00:55:21 +0200 Subject: [PATCH 078/210] strongswan: Update to 5.3.0 Enable support for CCM and CTR --- config/rootfiles/common/strongswan | 6 +++ lfs/strongswan | 12 ++--- .../strongswan-5.2.2-issue-816-650a3ad.patch | 35 ------------- .../strongswan-5.2.2-issue-816-dd0ebb.patch | 42 ---------------- .../strongswan-5.2.2-issue-816-eb25190.patch | 31 ------------ .../strongswan-5.2.2-issue-819-cd2c30a.patch | 50 ------------------- ...2_ipfire.patch => strongswan-ipfire.patch} | 46 ++++++++--------- 7 files changed, 34 insertions(+), 188 deletions(-) delete mode 100644 src/patches/strongswan-5.2.2-issue-816-650a3ad.patch delete mode 100644 src/patches/strongswan-5.2.2-issue-816-dd0ebb.patch delete mode 100644 src/patches/strongswan-5.2.2-issue-816-eb25190.patch delete mode 100644 src/patches/strongswan-5.2.2-issue-819-cd2c30a.patch rename src/patches/{strongswan-5.0.2_ipfire.patch => strongswan-ipfire.patch} (95%) diff --git a/config/rootfiles/common/strongswan b/config/rootfiles/common/strongswan index a26a86c3e..2abb58e5d 100644 --- a/config/rootfiles/common/strongswan +++ b/config/rootfiles/common/strongswan @@ -16,8 +16,10 @@ etc/strongswan.d/charon-logging.conf etc/strongswan.d/charon.conf etc/strongswan.d/charon/aes.conf etc/strongswan.d/charon/attr.conf +etc/strongswan.d/charon/ccm.conf etc/strongswan.d/charon/cmac.conf etc/strongswan.d/charon/constraints.conf +etc/strongswan.d/charon/ctr.conf etc/strongswan.d/charon/curl.conf etc/strongswan.d/charon/des.conf etc/strongswan.d/charon/dhcp.conf @@ -94,8 +96,10 @@ usr/lib/ipsec/libtls.so.0.0.0 #usr/lib/ipsec/plugins usr/lib/ipsec/plugins/libstrongswan-aes.so usr/lib/ipsec/plugins/libstrongswan-attr.so +usr/lib/ipsec/plugins/libstrongswan-ccm.so usr/lib/ipsec/plugins/libstrongswan-cmac.so usr/lib/ipsec/plugins/libstrongswan-constraints.so +usr/lib/ipsec/plugins/libstrongswan-ctr.so usr/lib/ipsec/plugins/libstrongswan-curl.so usr/lib/ipsec/plugins/libstrongswan-dhcp.so usr/lib/ipsec/plugins/libstrongswan-des.so @@ -175,8 +179,10 @@ usr/sbin/ipsec #usr/share/strongswan/templates/config/plugins #usr/share/strongswan/templates/config/plugins/aes.conf #usr/share/strongswan/templates/config/plugins/attr.conf +#usr/share/strongswan/templates/config/plugins/ccm.conf #usr/share/strongswan/templates/config/plugins/cmac.conf #usr/share/strongswan/templates/config/plugins/constraints.conf +#usr/share/strongswan/templates/config/plugins/ctr.conf #usr/share/strongswan/templates/config/plugins/curl.conf #usr/share/strongswan/templates/config/plugins/des.conf #usr/share/strongswan/templates/config/plugins/dhcp.conf diff --git a/lfs/strongswan b/lfs/strongswan index 77c287a09..1de432005 100644 --- a/lfs/strongswan +++ b/lfs/strongswan @@ -24,7 +24,7 @@ include Config -VER = 5.2.2 +VER = 5.3.0 THISAPP = strongswan-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -48,7 +48,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 7ee1a33060b2bde35be0f6d78a1d26d0 +$(DL_FILE)_MD5 = c52d4228231c2025d9c320d0e9990327 install : $(TARGET) @@ -78,11 +78,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-5.0.2_ipfire.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-5.2.2-issue-816-eb25190.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-5.2.2-issue-816-650a3ad.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-5.2.2-issue-816-dd0ebb.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-5.2.2-issue-819-cd2c30a.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-ipfire.patch cd $(DIR_APP) && [ -x "configure" ] || ./autogen.sh cd $(DIR_APP) && ./configure \ @@ -93,6 +89,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) --enable-farp \ --enable-openssl \ --enable-gcrypt \ + --enable-ccm \ + --enable-ctr \ --enable-gcm \ --enable-xauth-eap \ --enable-xauth-noauth \ diff --git a/src/patches/strongswan-5.2.2-issue-816-650a3ad.patch b/src/patches/strongswan-5.2.2-issue-816-650a3ad.patch deleted file mode 100644 index 44b247e6d..000000000 --- a/src/patches/strongswan-5.2.2-issue-816-650a3ad.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit 650a3ad5151958b99a95836fb8b84b8aa18da1be -Author: Tobias Brunner -Date: Wed Feb 25 08:09:11 2015 +0100 - - ike-sa-manager: Make sure the message ID of initial messages is 0 - - It is mandated by the RFCs and it is expected by the task managers. - - Initial messages with invalid MID will be treated like regular messages, - so no IKE_SA will be created for them. Instead, if the responder SPI is 0 - no SA will be found and the message is rejected with ALERT_INVALID_IKE_SPI. - If an SPI is set and we do find an SA, then we either ignore the message - because the MID is unexpected, or because we don't allow initial messages - on established connections. - - There is one exception, though, if an attacker can slip in an IKE_SA_INIT - with both SPIs set before the client's IKE_AUTH is handled by the server, - it does get processed (see next commit). - - References #816. - -diff --git a/src/libcharon/sa/ike_sa_manager.c b/src/libcharon/sa/ike_sa_manager.c -index d0cbd47..5e2b925 100644 ---- a/src/libcharon/sa/ike_sa_manager.c -+++ b/src/libcharon/sa/ike_sa_manager.c -@@ -1184,7 +1184,8 @@ METHOD(ike_sa_manager_t, checkout_by_message, ike_sa_t*, - - DBG2(DBG_MGR, "checkout IKE_SA by message"); - -- if (id->get_responder_spi(id) == 0) -+ if (id->get_responder_spi(id) == 0 && -+ message->get_message_id(message) == 0) - { - if (message->get_major_version(message) == IKEV2_MAJOR_VERSION) - { diff --git a/src/patches/strongswan-5.2.2-issue-816-dd0ebb.patch b/src/patches/strongswan-5.2.2-issue-816-dd0ebb.patch deleted file mode 100644 index 4d76e7c24..000000000 --- a/src/patches/strongswan-5.2.2-issue-816-dd0ebb.patch +++ /dev/null @@ -1,42 +0,0 @@ -commit dd0ebb54837298c869389d36a0b42eefdb893dd6 -Author: Tobias Brunner -Date: Wed Feb 25 08:30:33 2015 +0100 - - ikev2: Only accept initial messages in specific states - - The previous code allowed an attacker to slip in an IKE_SA_INIT with - both SPIs and MID 1 set when an IKE_AUTH would be expected instead. - - References #816. - -diff --git a/src/libcharon/sa/ikev2/task_manager_v2.c b/src/libcharon/sa/ikev2/task_manager_v2.c -index be84e71..540d4dc 100644 ---- a/src/libcharon/sa/ikev2/task_manager_v2.c -+++ b/src/libcharon/sa/ikev2/task_manager_v2.c -@@ -1304,17 +1304,16 @@ METHOD(task_manager_t, process_message, status_t, - { - if (mid == this->responding.mid) - { -- /* reject initial messages once established */ -- if (msg->get_exchange_type(msg) == IKE_SA_INIT || -- msg->get_exchange_type(msg) == IKE_AUTH) -+ /* reject initial messages if not received in specific states */ -+ if ((msg->get_exchange_type(msg) == IKE_SA_INIT && -+ this->ike_sa->get_state(this->ike_sa) != IKE_CREATED) || -+ (msg->get_exchange_type(msg) == IKE_AUTH && -+ this->ike_sa->get_state(this->ike_sa) != IKE_CONNECTING)) - { -- if (this->ike_sa->get_state(this->ike_sa) != IKE_CREATED && -- this->ike_sa->get_state(this->ike_sa) != IKE_CONNECTING) -- { -- DBG1(DBG_IKE, "ignoring %N in established IKE_SA state", -- exchange_type_names, msg->get_exchange_type(msg)); -- return FAILED; -- } -+ DBG1(DBG_IKE, "ignoring %N in IKE_SA state %N", -+ exchange_type_names, msg->get_exchange_type(msg), -+ ike_sa_state_names, this->ike_sa->get_state(this->ike_sa)); -+ return FAILED; - } - if (!this->ike_sa->supports_extension(this->ike_sa, EXT_MOBIKE)) - { /* with MOBIKE, we do no implicit updates */ diff --git a/src/patches/strongswan-5.2.2-issue-816-eb25190.patch b/src/patches/strongswan-5.2.2-issue-816-eb25190.patch deleted file mode 100644 index 8dcb32b0b..000000000 --- a/src/patches/strongswan-5.2.2-issue-816-eb25190.patch +++ /dev/null @@ -1,31 +0,0 @@ -commit eb251906298b529fa53b8a99746a9a7a9f318dd5 -Author: Tobias Brunner -Date: Wed Feb 25 08:18:58 2015 +0100 - - ikev2: Don't destroy the SA if an IKE_SA_INIT with unexpected MID is received - - This reverts 8f727d800751 ("Clean up IKE_SA state if IKE_SA_INIT request - does not have message ID 0") because it allowed to close any IKE_SA by - sending an IKE_SA_INIT with an unexpected MID and both SPIs set to those - of that SA. - - The next commit will prevent SAs from getting created for IKE_SA_INIT messages - with invalid MID. - - Fixes #816. - -diff --git a/src/libcharon/sa/ikev2/task_manager_v2.c b/src/libcharon/sa/ikev2/task_manager_v2.c -index 48266aa..be84e71 100644 ---- a/src/libcharon/sa/ikev2/task_manager_v2.c -+++ b/src/libcharon/sa/ikev2/task_manager_v2.c -@@ -1355,10 +1355,6 @@ METHOD(task_manager_t, process_message, status_t, - { - DBG1(DBG_IKE, "received message ID %d, expected %d. Ignored", - mid, this->responding.mid); -- if (msg->get_exchange_type(msg) == IKE_SA_INIT) -- { /* clean up IKE_SA state if IKE_SA_INIT has invalid msg ID */ -- return DESTROY_ME; -- } - } - } - else diff --git a/src/patches/strongswan-5.2.2-issue-819-cd2c30a.patch b/src/patches/strongswan-5.2.2-issue-819-cd2c30a.patch deleted file mode 100644 index 0c54812fe..000000000 --- a/src/patches/strongswan-5.2.2-issue-819-cd2c30a.patch +++ /dev/null @@ -1,50 +0,0 @@ -From cd2c30a56ec9bdab8b3923851509f27a4fd6f537 Mon Sep 17 00:00:00 2001 -From: Tobias Brunner -Date: Tue, 10 Feb 2015 19:03:44 +0100 -Subject: [PATCH] ikev1: Set protocol ID and SPIs in INITIAL-CONTACT - notification payloads - -The payload we sent before is not compliant with RFC 2407 and thus some -peers might abort negotiation (e.g. with an INVALID-PROTOCOL-ID error). - - #819 ---- - src/libcharon/sa/ikev1/tasks/main_mode.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/src/libcharon/sa/ikev1/tasks/main_mode.c b/src/libcharon/sa/ikev1/tasks/main_mode.c -index 5065e70..3ea4a2a 100644 ---- a/src/libcharon/sa/ikev1/tasks/main_mode.c -+++ b/src/libcharon/sa/ikev1/tasks/main_mode.c -@@ -213,6 +213,10 @@ static void add_initial_contact(private_main_mode_t *this, message_t *message, - { - identification_t *idr; - host_t *host; -+ notify_payload_t *notify; -+ ike_sa_id_t *ike_sa_id; -+ u_int64_t spi_i, spi_r; -+ chunk_t spi; - - idr = this->ph1->get_id(this->ph1, this->peer_cfg, FALSE); - if (idr && !idr->contains_wildcards(idr)) -@@ -224,8 +228,15 @@ static void add_initial_contact(private_main_mode_t *this, message_t *message, - if (!charon->ike_sa_manager->has_contact(charon->ike_sa_manager, - idi, idr, host->get_family(host))) - { -- message->add_notify(message, FALSE, INITIAL_CONTACT_IKEV1, -- chunk_empty); -+ notify = notify_payload_create_from_protocol_and_type( -+ PLV1_NOTIFY, PROTO_IKE, INITIAL_CONTACT_IKEV1); -+ ike_sa_id = this->ike_sa->get_id(this->ike_sa); -+ spi_i = ike_sa_id->get_initiator_spi(ike_sa_id); -+ spi_r = ike_sa_id->get_responder_spi(ike_sa_id); -+ spi = chunk_cata("cc", chunk_from_thing(spi_i), -+ chunk_from_thing(spi_r)); -+ notify->set_spi_data(notify, spi); -+ message->add_payload(message, (payload_t*)notify); - } - } - } --- -1.7.9.5 - diff --git a/src/patches/strongswan-5.0.2_ipfire.patch b/src/patches/strongswan-ipfire.patch similarity index 95% rename from src/patches/strongswan-5.0.2_ipfire.patch rename to src/patches/strongswan-ipfire.patch index 71eb24e48..79bee0469 100644 --- a/src/patches/strongswan-5.0.2_ipfire.patch +++ b/src/patches/strongswan-ipfire.patch @@ -1,8 +1,8 @@ ---- a/src/_updown/_updown.in -+++ b/src/_updown/_updown.in -@@ -178,6 +178,29 @@ - ;; - esac +--- strongswan-5.3.0/src/_updown/_updown.in.old 2015-03-17 18:17:43.000000000 +0000 ++++ strongswan-5.3.0/src/_updown/_updown.in 2015-03-30 22:48:27.084030719 +0000 +@@ -122,6 +122,29 @@ + # address family. + # +function ip_encode() { + local IFS=. @@ -27,10 +27,10 @@ + [ $vlsm -eq 0 ] && echo 0 || echo $(( -1 << $(( 32 - $vlsm )) )) +} + - # utility functions for route manipulation - # Meddling with this stuff should not be necessary and requires great care. - uproute() { -@@ -407,12 +430,12 @@ + # define a minimum PATH environment in case it is not set + PATH="/sbin:/bin:/usr/sbin:/usr/bin:@sbindir@" + export PATH +@@ -232,12 +255,12 @@ # connection to me, with (left/right)firewall=yes, coming up # This is used only by the default updown script, not by your custom # ones, so do not mess with it; see CAUTION comment up at top. @@ -46,7 +46,7 @@ # # allow IPIP traffic because of the implicit SA created by the kernel if # IPComp is used (for small inbound packets that are not compressed) -@@ -428,10 +451,10 @@ +@@ -253,10 +276,10 @@ if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] then logger -t $TAG -p $FAC_PRIO \ @@ -59,7 +59,7 @@ fi fi ;; -@@ -439,12 +462,12 @@ +@@ -264,12 +287,12 @@ # connection to me, with (left/right)firewall=yes, going down # This is used only by the default updown script, not by your custom # ones, so do not mess with it; see CAUTION comment up at top. @@ -75,7 +75,7 @@ # # IPIP exception teardown if [ -n "$PLUTO_IPCOMP" ] -@@ -459,10 +482,10 @@ +@@ -284,10 +307,10 @@ if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] then logger -t $TAG -p $FAC_PRIO -- \ @@ -88,7 +88,7 @@ fi fi ;; -@@ -472,24 +495,24 @@ +@@ -297,24 +320,24 @@ # ones, so do not mess with it; see CAUTION comment up at top. if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] then @@ -121,7 +121,7 @@ fi # # allow IPIP traffic because of the implicit SA created by the kernel if -@@ -497,7 +520,7 @@ +@@ -322,7 +345,7 @@ # INPUT is correct here even for forwarded traffic. if [ -n "$PLUTO_IPCOMP" ] then @@ -130,7 +130,7 @@ -s $PLUTO_PEER -d $PLUTO_ME $IPSEC_POLICY_IN -j ACCEPT fi # -@@ -507,12 +530,51 @@ +@@ -332,12 +355,51 @@ if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] then logger -t $TAG -p $FAC_PRIO \ @@ -184,7 +184,7 @@ ;; down-client:iptables) # connection to client subnet, with (left/right)firewall=yes, going down -@@ -520,34 +582,34 @@ +@@ -345,34 +407,34 @@ # ones, so do not mess with it; see CAUTION comment up at top. if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] then @@ -228,7 +228,7 @@ -s $PLUTO_PEER -d $PLUTO_ME $IPSEC_POLICY_IN -j ACCEPT fi # -@@ -557,12 +619,51 @@ +@@ -382,12 +444,51 @@ if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] then logger -t $TAG -p $FAC_PRIO -- \ @@ -282,7 +282,7 @@ ;; # # IPv6 -@@ -597,10 +698,10 @@ +@@ -412,10 +513,10 @@ # connection to me, with (left/right)firewall=yes, coming up # This is used only by the default updown script, not by your custom # ones, so do not mess with it; see CAUTION comment up at top. @@ -295,7 +295,7 @@ -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT # -@@ -621,10 +722,10 @@ +@@ -436,10 +537,10 @@ # connection to me, with (left/right)firewall=yes, going down # This is used only by the default updown script, not by your custom # ones, so do not mess with it; see CAUTION comment up at top. @@ -308,7 +308,7 @@ -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT # -@@ -647,10 +748,10 @@ +@@ -462,10 +563,10 @@ # ones, so do not mess with it; see CAUTION comment up at top. if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] then @@ -321,7 +321,7 @@ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT fi -@@ -659,10 +760,10 @@ +@@ -474,10 +575,10 @@ # or sometimes host access via the internal IP is needed if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] then @@ -334,7 +334,7 @@ -s $PLUTO_MY_CLIENT $S_MY_PORT \ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT fi -@@ -686,11 +787,11 @@ +@@ -501,11 +602,11 @@ # ones, so do not mess with it; see CAUTION comment up at top. if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] then @@ -348,7 +348,7 @@ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_MY_CLIENT $D_MY_PORT \ $IPSEC_POLICY_IN -j ACCEPT -@@ -700,11 +801,11 @@ +@@ -515,11 +616,11 @@ # or sometimes host access via the internal IP is needed if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] then From 0d573e226f956e32035a41674e6f79e169305172 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Tue, 31 Mar 2015 10:09:46 +0200 Subject: [PATCH 079/210] dnsmasq: fix initskript -add timestamp filename -pull user config after define default parameter --- src/initscripts/init.d/dnsmasq | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/initscripts/init.d/dnsmasq b/src/initscripts/init.d/dnsmasq index 4e3792517..ce7689f4e 100644 --- a/src/initscripts/init.d/dnsmasq +++ b/src/initscripts/init.d/dnsmasq @@ -15,18 +15,19 @@ . /etc/sysconfig/rc . ${rc_functions} +CACHE_SIZE=2500 +ENABLE_DNSSEC=1 +SHOW_SRV=1 +TRUST_ANCHOR=".,19036,8,2,49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5" +TIMESTAMP_FILE="/var/ipfire/dns/dnssec-timestamp" + # Pull custom configuration file if [ -e "/etc/sysconfig/dnsmasq" ]; then . /etc/sysconfig/dnsmasq fi -CACHE_SIZE=2500 -ENABLE_DNSSEC=1 -SHOW_SRV=1 -TRUST_ANCHOR=".,19036,8,2,49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5" - function dnssec_args() { - local cmdline="--dnssec --dnssec-timestamp" + local cmdline="--dnssec --dnssec-timestamp ${TIMESTAMP_FILE}" if [ -n "${TRUST_ANCHOR}" ]; then cmdline="${cmdline} --trust-anchor=${TRUST_ANCHOR}" From 64d886f53f0dcd5c6284b56b4965ad19eaf4d80a Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Tue, 31 Mar 2015 18:56:32 +0200 Subject: [PATCH 080/210] crontab: Call xt_geoip_update random once a month. --- config/cron/crontab | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/cron/crontab b/config/cron/crontab index 54e9b5fee..3353092f6 100644 --- a/config/cron/crontab +++ b/config/cron/crontab @@ -59,4 +59,4 @@ HOME=/ 00 2 * 10-11 0 /usr/local/bin/timezone-transition /usr/local/bin/firewallctrl # Update GeoIP database once a month. -3 2 1 * * * [ -f "/var/ipfire/red/active" ] && /usr/local/bin/xt_geoip_update >/dev/null 2>&1 +%monthly,random * * [ -f "/var/ipfire/red/active" ] && /usr/local/bin/xt_geoip_update >/dev/null 2>&1 From 0ff5b2b0ac39be6954e0b727e21d98c631bb051b Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Tue, 31 Mar 2015 19:45:15 +0200 Subject: [PATCH 081/210] GeoIP: Add german translation. --- langs/de/cgi-bin/de.pl | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index eb29b5fbf..a1578b91d 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -416,6 +416,7 @@ 'bit' => 'Bit', 'bitrate' => 'Bitrate', 'bleeding rules' => 'Bleeding Edge Snort Rules', +'block' => 'Blocken', 'blue' => 'BLAU', 'blue access' => 'Zugriff auf Blau', 'blue access use hint' => 'Sie müssen mindestens die MAC- oder die IP-Adresse für ein Gerät angeben. Optional können Sie sowohl MAC- als auch IP-Adresse angeben.', @@ -532,6 +533,7 @@ 'chain' => 'Verknüpfung', 'change passwords' => 'Passwörter Ã¤ndern', 'change share' => 'Freigabeeinstellungen ändern', +'check all' =>'Alle auswÃhlen', 'check for net traffic update' => 'Prüfe auf Net-Traffic-Updates', 'check vpn lr' => 'Überprüfen', 'choose config' => 'Konfiguration auswählen', @@ -1067,6 +1069,7 @@ 'fwhost OpenVPN static host' => 'OpenVPN statischer Host', 'fwhost OpenVPN static network' => 'OpenVPN statisches Netzwerk', 'fwhost Standard Network' => 'Standard-Netzwerk', +'fwhost addgeoipgrp' => 'Neue GeoIP-Gruppe hinzufÃgen', 'fwhost addgrp' => 'Neue Gruppe hinzufügen', 'fwhost addgrpname' => 'Gruppenname:', 'fwhost addhost' => 'Neuen Host hinzufügen', @@ -1082,6 +1085,9 @@ 'fwhost change' => 'Ändern', 'fwhost changeremark' => 'Es wurde nur die Bemerkung angepasst.', 'fwhost cust addr' => 'Hosts', +'fwhost cust geoip' => 'GeoIP-Gruppen', +'fwhost cust geoipgroup' => 'GeoIP-Gruppen', +'fwhost cust geoiplocation' => 'GeoIP LÃndercodes', 'fwhost cust grp' => 'Gruppen', 'fwhost cust net' => 'Netzwerke', 'fwhost cust service' => 'Dienste', @@ -1128,6 +1134,7 @@ 'fwhost ipsec net' => 'IPsec-Netzwerke:', 'fwhost menu' => 'Firewallgruppen', 'fwhost netaddress' => 'Netzwerkadresse', +'fwhost newgeoipgrp' => 'GeoIP-Gruppen', 'fwhost newgrp' => 'Netzwerk-/Hostgruppen', 'fwhost newhost' => 'Hosts', 'fwhost newnet' => 'Netzwerke', @@ -1162,6 +1169,16 @@ 'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Die Erzeugung der Root- und Host-Zertifikate kann lange Zeit dauern. Auf älterer Hardware kann es mehrere Minuten lang dauern. Bitte haben Sie etwas Geduld.', 'genkey' => 'PSK erzeugen', 'genre' => 'Genre', +'geoip' => 'GeoIP', +'geoipblock' => 'GeoIP Block', +'geoipblock block countries' => 'LÃnderfilter', +'geoipblock configuration' => 'GeoIP Konfiguration', +'geoipblock country code' => 'Ländercode', +'geoipblock country is allowed' => 'Eingehende Verbindungen aus diesem Land sind erlaubt.', +'geoipblock country is blocked' => 'Eingehende Verbindungen aus diesem Land werden blockiert.', +'geoipblock country name' => 'Ländername', +'geoipblock enable feature' => 'GeoIP basierte Filterung aktivieren:', +'geoipblock flag' => 'Flagge', 'global settings' => 'Globale Einstellungen', 'gpl i accept these terms and conditions' => 'Ich akzeptiere diese Bedingungen und Konditionen', 'gpl license agreement' => 'Lizenz-Vereinbarung', @@ -2214,8 +2231,11 @@ 'type' => 'Typ', 'umount' => 'Abmelden', 'umount removable media before to unplug' => 'Wechselmedien vor dem Entfernen unbedingt abmelden', +'uncheck all' => 'Alle abwählen', 'unable to alter profiles while red is active' => 'Profile können nicht geändert werden, solange ROT aktiv ist.', 'unable to contact' => 'Kann nicht erreicht werden', +'unblock' => 'Entblocken', +'unblock all' => 'Alle entblocken', 'unencrypted' => 'Nicht verschlüsselt', 'uninstall' => 'Deinstallieren', 'unix charset' => 'UNIX-Charset', From a8e59d803594f5af0ac1532e89aac6bd11600ecf Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Tue, 31 Mar 2015 22:14:56 +0200 Subject: [PATCH 082/210] GeoIP: Update english translation. --- langs/en/cgi-bin/en.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index d8cb5aa67..9d75f579d 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -1203,8 +1203,8 @@ 'geoipblock block countries' => 'Block countries', 'geoipblock configuration' => 'GeoIP Configuration', 'geoipblock country code' => 'Country Code', -'geoipblock country is allowed' => 'Traffic from this country is allowed', -'geoipblock country is blocked' => 'Traffic from this country will be blocked', +'geoipblock country is allowed' => 'Incoming traffic from this country is allowed', +'geoipblock country is blocked' => 'Incoming traffic from this country will be blocked', 'geoipblock country name' => 'Country Name', 'geoipblock enable feature' => 'Enable GeoIP based blocking:', 'geoipblock flag' => 'Flag', From ef4edcfb203a3610efb7e47cb6f4e3337cb2e312 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Wed, 1 Apr 2015 20:29:00 +0200 Subject: [PATCH 083/210] crontab: Fix syntax for xt_geoip_update call. --- config/cron/crontab | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/cron/crontab b/config/cron/crontab index 3353092f6..d5e5d7e9f 100644 --- a/config/cron/crontab +++ b/config/cron/crontab @@ -59,4 +59,4 @@ HOME=/ 00 2 * 10-11 0 /usr/local/bin/timezone-transition /usr/local/bin/firewallctrl # Update GeoIP database once a month. -%monthly,random * * [ -f "/var/ipfire/red/active" ] && /usr/local/bin/xt_geoip_update >/dev/null 2>&1 +%monthly,random * * * [ -f "/var/ipfire/red/active" ] && /usr/local/bin/xt_geoip_update >/dev/null 2>&1 From 79b269802d00653f32c43899767c9bea53d83702 Mon Sep 17 00:00:00 2001 From: Jan Paul Tuecking Date: Fri, 3 Apr 2015 03:05:24 +0200 Subject: [PATCH 084/210] tor: update to 0.2.5.11 --- config/rootfiles/packages/tor | 2 -- lfs/tor | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/config/rootfiles/packages/tor b/config/rootfiles/packages/tor index f9c657c88..972b20775 100644 --- a/config/rootfiles/packages/tor +++ b/config/rootfiles/packages/tor @@ -1,11 +1,9 @@ -#etc/logrotate.d etc/logrotate.d/tor etc/rc.d/init.d/tor etc/rc.d/rc0.d/K40tor etc/rc.d/rc3.d/S60tor etc/rc.d/rc6.d/K40tor #etc/tor -#etc/tor/tor-tsocks.conf etc/tor/torrc srv/web/ipfire/cgi-bin/tor.cgi usr/bin/tor diff --git a/lfs/tor b/lfs/tor index 0cc2957ed..9176fee03 100644 --- a/lfs/tor +++ b/lfs/tor @@ -24,7 +24,7 @@ include Config -VER = 0.2.4.23 +VER = 0.2.5.11 THISAPP = tor-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = tor -PAK_VER = 8 +PAK_VER = 9 DEPS = "libevent2" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 9e39928e310612c3bffee727f554c63f +$(DL_FILE)_MD5 = 9ca64f76996cb8a750e50c792e2c4c52 install : $(TARGET) From 668ea5d311f10b63dd69718b9a43aa5d03029d5d Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Fri, 3 Apr 2015 18:59:12 +0200 Subject: [PATCH 085/210] nfs-server: Fix kernel version check in initscript. nfsd requires a mounted nfsd filesystem which has been introduced in the kernel 2.6 tree. To determine the current running kernel, a check was included in the initscript which works fine until we switched to a kernel version 3.x. This commit fixes this check, so the nfs-server will startup again. Fixes #10760. --- lfs/nfs | 2 +- src/initscripts/init.d/nfs-server | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lfs/nfs b/lfs/nfs index d18487baa..417f155fd 100644 --- a/lfs/nfs +++ b/lfs/nfs @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = nfs -PAK_VER = 5 +PAK_VER = 6 DEPS = "portmap" diff --git a/src/initscripts/init.d/nfs-server b/src/initscripts/init.d/nfs-server index 397722c1c..41055ad5b 100644 --- a/src/initscripts/init.d/nfs-server +++ b/src/initscripts/init.d/nfs-server @@ -27,8 +27,8 @@ case "$1" in loadproc /usr/sbin/rpc.rquotad fi - # NFSD support only in 2.6 kernel - /bin/uname -r | /bin/grep "2.6" 2>&1 > /dev/null + # NFSD support requires kernel 2.6 or newer. + /bin/uname -r | /bin/grep -E "^2.6|^3" 2>&1 > /dev/null if [ $? = 0 ]; then boot_mesg "Mounting nfsd virtual filesystem..." /bin/mount -t nfsd none /proc/fs/nfsd 2>&1 > /dev/null @@ -62,8 +62,8 @@ case "$1" in /usr/sbin/exportfs -au 2>&1 > /dev/null evaluate_retval - # NFSD support only in 2.6 kernel - /bin/uname -r | /bin/grep "2.6" 2>&1 > /dev/null + # NFSD support requires kernel 2.6 or newer. + /bin/uname -r | /bin/grep -E "^2.6|^3" 2>&1 > /dev/null if [ $? = 0 ]; then boot_mesg "Unmounting NFS Virtual Filesystem..." /bin/umount /proc/fs/nfsd 2>&1 > /dev/null From ca6be40f92988ec3202e1f669c1a033bbbf3cd38 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 4 Apr 2015 13:17:34 +0200 Subject: [PATCH 086/210] Update translations --- doc/language_issues.de | 2 + doc/language_issues.en | 2 + doc/language_issues.es | 2 + doc/language_issues.fr | 2 + doc/language_issues.it | 702 ++++++++++++++++++++++++++++++++++++++ doc/language_issues.nl | 2 + doc/language_issues.pl | 2 + doc/language_issues.ru | 2 + doc/language_issues.tr | 2 + src/installer/po/pt_BR.po | 19 +- src/setup/po/pt_BR.po | 65 ++-- src/setup/po/tr.po | 4 +- 12 files changed, 763 insertions(+), 43 deletions(-) create mode 100644 doc/language_issues.it diff --git a/doc/language_issues.de b/doc/language_issues.de index e41f48b77..59bbe9673 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -275,6 +275,7 @@ WARNING: translation string unused: ike encryption WARNING: translation string unused: ike grouptype WARNING: translation string unused: ike integrity WARNING: translation string unused: ike lifetime +WARNING: translation string unused: ike lifetime should be between 1 and 24 hours WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -632,6 +633,7 @@ WARNING: untranslated string: community rules WARNING: untranslated string: dead peer detection WARNING: untranslated string: emerging rules WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: no data WARNING: untranslated string: qos add subclass WARNING: untranslated string: route config changed diff --git a/doc/language_issues.en b/doc/language_issues.en index 290da0275..53e5f963c 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -300,6 +300,7 @@ WARNING: translation string unused: ike encryption WARNING: translation string unused: ike grouptype WARNING: translation string unused: ike integrity WARNING: translation string unused: ike lifetime +WARNING: translation string unused: ike lifetime should be between 1 and 24 hours WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -664,6 +665,7 @@ WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs WARNING: untranslated string: bytes WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: no data WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added diff --git a/doc/language_issues.es b/doc/language_issues.es index c93d40cb4..58945abe9 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -250,6 +250,7 @@ WARNING: translation string unused: ike encryption WARNING: translation string unused: ike grouptype WARNING: translation string unused: ike integrity WARNING: translation string unused: ike lifetime +WARNING: translation string unused: ike lifetime should be between 1 and 24 hours WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -862,6 +863,7 @@ WARNING: untranslated string: gen dh WARNING: untranslated string: generate dh key WARNING: untranslated string: grouptype WARNING: untranslated string: hardware support +WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: imei WARNING: untranslated string: imsi WARNING: untranslated string: incoming compression in bytes per second diff --git a/doc/language_issues.fr b/doc/language_issues.fr index c1dedc59c..943b19717 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -250,6 +250,7 @@ WARNING: translation string unused: ike encryption WARNING: translation string unused: ike grouptype WARNING: translation string unused: ike integrity WARNING: translation string unused: ike lifetime +WARNING: translation string unused: ike lifetime should be between 1 and 24 hours WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -873,6 +874,7 @@ WARNING: untranslated string: gen dh WARNING: untranslated string: generate dh key WARNING: untranslated string: grouptype WARNING: untranslated string: hardware support +WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: imei WARNING: untranslated string: imsi WARNING: untranslated string: incoming compression in bytes per second diff --git a/doc/language_issues.it b/doc/language_issues.it new file mode 100644 index 000000000..0f69ce835 --- /dev/null +++ b/doc/language_issues.it @@ -0,0 +1,702 @@ +WARNING: translation string unused: Client status and controlc +WARNING: translation string unused: ConnSched scheduler +WARNING: translation string unused: ConnSched select profile +WARNING: translation string unused: HDD temperature +WARNING: translation string unused: Level7 rule +WARNING: translation string unused: Local VPN IP +WARNING: translation string unused: Ping +WARNING: translation string unused: Queuelenght +WARNING: translation string unused: Remote IP +WARNING: translation string unused: Remote VPN IP +WARNING: translation string unused: Resolv +WARNING: translation string unused: TOS Bits +WARNING: translation string unused: Verbose +WARNING: translation string unused: access allowed +WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add a new rule +WARNING: translation string unused: add network +WARNING: translation string unused: add new ovpn +WARNING: translation string unused: add service +WARNING: translation string unused: add xtaccess +WARNING: translation string unused: add-route +WARNING: translation string unused: admin user password has been changed +WARNING: translation string unused: administrator user password +WARNING: translation string unused: advproxy LDAP auth +WARNING: translation string unused: advproxy NTLM auth +WARNING: translation string unused: advproxy advanced proxy +WARNING: translation string unused: advproxy chgwebpwd ERROR +WARNING: translation string unused: advproxy chgwebpwd SUCCESS +WARNING: translation string unused: advproxy chgwebpwd change password +WARNING: translation string unused: advproxy chgwebpwd change web password +WARNING: translation string unused: advproxy chgwebpwd new password +WARNING: translation string unused: advproxy chgwebpwd new password confirm +WARNING: translation string unused: advproxy chgwebpwd old password +WARNING: translation string unused: advproxy chgwebpwd username +WARNING: translation string unused: advproxy cre disabled +WARNING: translation string unused: advproxy errmsg change fail +WARNING: translation string unused: advproxy errmsg change success +WARNING: translation string unused: advproxy errmsg invalid user +WARNING: translation string unused: advproxy errmsg no password +WARNING: translation string unused: advproxy errmsg password incorrect +WARNING: translation string unused: advproxy no cre groups +WARNING: translation string unused: advproxy ssadvanced proxy +WARNING: translation string unused: advproxy update information +WARNING: translation string unused: advproxy update notification +WARNING: translation string unused: again +WARNING: translation string unused: age seconds +WARNING: translation string unused: age shour +WARNING: translation string unused: age sminute +WARNING: translation string unused: age ssecond +WARNING: translation string unused: alcatelusb help +WARNING: translation string unused: alcatelusb upload +WARNING: translation string unused: all interfaces +WARNING: translation string unused: all updates installed +WARNING: translation string unused: allmsg +WARNING: translation string unused: alt information +WARNING: translation string unused: alt ovpn +WARNING: translation string unused: alt vpn +WARNING: translation string unused: and +WARNING: translation string unused: ansi t1.483 +WARNING: translation string unused: apply +WARNING: translation string unused: archive not exist +WARNING: translation string unused: attemps +WARNING: translation string unused: available updates +WARNING: translation string unused: avoid dod +WARNING: translation string unused: backup archive +WARNING: translation string unused: backup clear archive +WARNING: translation string unused: backup config floppy +WARNING: translation string unused: backup configuration +WARNING: translation string unused: backup erase key +WARNING: translation string unused: backup explain key +WARNING: translation string unused: backup explain key li1 +WARNING: translation string unused: backup explain key li2 +WARNING: translation string unused: backup explain key li3 +WARNING: translation string unused: backup explain key no1 +WARNING: translation string unused: backup explain key no2 +WARNING: translation string unused: backup export key +WARNING: translation string unused: backup extract key +WARNING: translation string unused: backup generate key +WARNING: translation string unused: backup import dat file +WARNING: translation string unused: backup import key +WARNING: translation string unused: backup key +WARNING: translation string unused: backup key file +WARNING: translation string unused: backup key info +WARNING: translation string unused: backup media info +WARNING: translation string unused: backup missing key +WARNING: translation string unused: backup password +WARNING: translation string unused: backup protect key password +WARNING: translation string unused: backup sets +WARNING: translation string unused: backup to floppy +WARNING: translation string unused: bad characters in +WARNING: translation string unused: behind a proxy +WARNING: translation string unused: bewan adsl pci st +WARNING: translation string unused: bewan adsl usb +WARNING: translation string unused: bitrate +WARNING: translation string unused: bleeding rules +WARNING: translation string unused: blue access use hint +WARNING: translation string unused: blue interface +WARNING: translation string unused: cache management +WARNING: translation string unused: cache size +WARNING: translation string unused: calamaris report interval (in minutes) +WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: cant enable xtaccess +WARNING: translation string unused: capsinactive +WARNING: translation string unused: ccd err iroute +WARNING: translation string unused: ccd err netadr +WARNING: translation string unused: cfg restart +WARNING: translation string unused: check for net traffic update +WARNING: translation string unused: choose config +WARNING: translation string unused: choose media +WARNING: translation string unused: clear cache +WARNING: translation string unused: compression +WARNING: translation string unused: connect +WARNING: translation string unused: connect the modem +WARNING: translation string unused: core notice 1 +WARNING: translation string unused: core notice 2 +WARNING: translation string unused: core notice 3 +WARNING: translation string unused: could not connect to +WARNING: translation string unused: could not connect to www ipcop org +WARNING: translation string unused: could not connect to www ipfire org +WARNING: translation string unused: could not create directory +WARNING: translation string unused: could not download latest patch list +WARNING: translation string unused: could not download the available updates list +WARNING: translation string unused: could not open available updates file +WARNING: translation string unused: could not open installed updates file +WARNING: translation string unused: could not open update information file +WARNING: translation string unused: create +WARNING: translation string unused: create new backup +WARNING: translation string unused: current dynamic leases +WARNING: translation string unused: current media +WARNING: translation string unused: current ovpn +WARNING: translation string unused: current profile +WARNING: translation string unused: custom networks +WARNING: translation string unused: custom services +WARNING: translation string unused: daily firewallhits +WARNING: translation string unused: dat without key +WARNING: translation string unused: day-graph +WARNING: translation string unused: dbfile +WARNING: translation string unused: ddns help dnsmadeeasy +WARNING: translation string unused: ddns help freedns +WARNING: translation string unused: ddns help plus +WARNING: translation string unused: ddns minimize updates +WARNING: translation string unused: ddns noip prefix +WARNING: translation string unused: debugme +WARNING: translation string unused: deep scan directories +WARNING: translation string unused: default ip +WARNING: translation string unused: default networks +WARNING: translation string unused: default services +WARNING: translation string unused: description +WARNING: translation string unused: destination ip bad +WARNING: translation string unused: destination ip or net +WARNING: translation string unused: destination net +WARNING: translation string unused: destination port overlaps +WARNING: translation string unused: dh name is invalid +WARNING: translation string unused: dhcp base ip fixed lease +WARNING: translation string unused: dhcp create fixed leases +WARNING: translation string unused: dhcp fixed lease err1 +WARNING: translation string unused: dhcp fixed lease help1 +WARNING: translation string unused: dhcp mode +WARNING: translation string unused: dhcp server disabled on blue interface +WARNING: translation string unused: dhcp server enabled on blue interface +WARNING: translation string unused: dial user password +WARNING: translation string unused: dial user password has been changed +WARNING: translation string unused: dialup settings +WARNING: translation string unused: disconnect +WARNING: translation string unused: disconnects +WARNING: translation string unused: display traffic at home +WARNING: translation string unused: display webinterface effects +WARNING: translation string unused: dmz pinhole configuration +WARNING: translation string unused: dmz pinhole rule added +WARNING: translation string unused: dmz pinhole rule removed +WARNING: translation string unused: dmzpinholes for same net not necessary +WARNING: translation string unused: dns server +WARNING: translation string unused: do not log this port list +WARNING: translation string unused: domain not set +WARNING: translation string unused: donation-link +WARNING: translation string unused: done +WARNING: translation string unused: download dh parameter +WARNING: translation string unused: driver +WARNING: translation string unused: dstprt range overlaps +WARNING: translation string unused: dstprt within existing +WARNING: translation string unused: dynamic dns client +WARNING: translation string unused: eciadsl help +WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit a rule +WARNING: translation string unused: edit network +WARNING: translation string unused: edit service +WARNING: translation string unused: editor +WARNING: translation string unused: eg +WARNING: translation string unused: email server can not be empty +WARNING: translation string unused: enable javascript +WARNING: translation string unused: enable wildcards +WARNING: translation string unused: enabled on +WARNING: translation string unused: enabledtitle +WARNING: translation string unused: encrypted +WARNING: translation string unused: err bk 1 +WARNING: translation string unused: err bk 10 password +WARNING: translation string unused: err bk 2 key +WARNING: translation string unused: err bk 3 tar +WARNING: translation string unused: err bk 4 gz +WARNING: translation string unused: err bk 5 encrypt +WARNING: translation string unused: err rs 1 +WARNING: translation string unused: err rs 6 decrypt +WARNING: translation string unused: err rs 7 untartst +WARNING: translation string unused: err rs 8 untar +WARNING: translation string unused: error config +WARNING: translation string unused: error external access +WARNING: translation string unused: esp encryption +WARNING: translation string unused: esp grouptype +WARNING: translation string unused: esp integrity +WARNING: translation string unused: esp keylife +WARNING: translation string unused: expected +WARNING: translation string unused: expertoptions +WARNING: translation string unused: exportkey +WARNING: translation string unused: external access +WARNING: translation string unused: external access configuration +WARNING: translation string unused: external access rule added +WARNING: translation string unused: external access rule changed +WARNING: translation string unused: external access rule removed +WARNING: translation string unused: extrahd +WARNING: translation string unused: extrahd unable to read +WARNING: translation string unused: extrahd unable to write +WARNING: translation string unused: filename +WARNING: translation string unused: firewall graphs +WARNING: translation string unused: firewall log viewer +WARNING: translation string unused: firmware +WARNING: translation string unused: firmware upload +WARNING: translation string unused: force update +WARNING: translation string unused: forward firewall +WARNING: translation string unused: forwarding rule added +WARNING: translation string unused: forwarding rule removed +WARNING: translation string unused: forwarding rule updated +WARNING: translation string unused: frequency +WARNING: translation string unused: fritzdsl help +WARNING: translation string unused: fritzdsl upload +WARNING: translation string unused: from email adr +WARNING: translation string unused: from email pw +WARNING: translation string unused: from email server +WARNING: translation string unused: from email user +WARNING: translation string unused: from warn email bad +WARNING: translation string unused: fwdfw MODE1 +WARNING: translation string unused: fwdfw MODE2 +WARNING: translation string unused: fwdfw addrule +WARNING: translation string unused: fwdfw err nosrcip +WARNING: translation string unused: fwdfw err notgtip +WARNING: translation string unused: fwdfw err prot_port1 +WARNING: translation string unused: fwdfw final_rule +WARNING: translation string unused: fwdfw from +WARNING: translation string unused: fwdfw ipsec network +WARNING: translation string unused: fwdfw man port +WARNING: translation string unused: fwdfw menu +WARNING: translation string unused: fwdfw natport used +WARNING: translation string unused: fwdfw p2p txt +WARNING: translation string unused: fwdfw rule action +WARNING: translation string unused: fwdfw rules +WARNING: translation string unused: fwdfw std network +WARNING: translation string unused: fwdfw till +WARNING: translation string unused: fwdfw time +WARNING: translation string unused: fwdfw xt access +WARNING: translation string unused: fwhost Custom Host +WARNING: translation string unused: fwhost Custom Network +WARNING: translation string unused: fwhost IpSec Host +WARNING: translation string unused: fwhost IpSec Network +WARNING: translation string unused: fwhost OpenVPN static host +WARNING: translation string unused: fwhost OpenVPN static network +WARNING: translation string unused: fwhost Standard Network +WARNING: translation string unused: fwhost attention +WARNING: translation string unused: fwhost blue +WARNING: translation string unused: fwhost changeremark +WARNING: translation string unused: fwhost err addrgrp +WARNING: translation string unused: fwhost err hostorip +WARNING: translation string unused: fwhost err mac +WARNING: translation string unused: fwhost err partofnet +WARNING: translation string unused: fwhost green +WARNING: translation string unused: fwhost hosts +WARNING: translation string unused: fwhost ipadr +WARNING: translation string unused: fwhost ipsec host +WARNING: translation string unused: fwhost orange +WARNING: translation string unused: fwhost reread +WARNING: translation string unused: fwhost reset +WARNING: translation string unused: fwhost wo subnet +WARNING: translation string unused: g.dtm +WARNING: translation string unused: g.lite +WARNING: translation string unused: gen static key +WARNING: translation string unused: generate +WARNING: translation string unused: genkey +WARNING: translation string unused: green interface +WARNING: translation string unused: gz with key +WARNING: translation string unused: hint +WARNING: translation string unused: host +WARNING: translation string unused: host configuration +WARNING: translation string unused: hostname and domain already in use +WARNING: translation string unused: hour-graph +WARNING: translation string unused: hours2 +WARNING: translation string unused: ibod for dual isdn only +WARNING: translation string unused: icmp selected but no type +WARNING: translation string unused: icmp type +WARNING: translation string unused: id +WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: ike encryption +WARNING: translation string unused: ike grouptype +WARNING: translation string unused: ike integrity +WARNING: translation string unused: ike lifetime +WARNING: translation string unused: ike lifetime should be between 1 and 24 hours +WARNING: translation string unused: import +WARNING: translation string unused: importkey +WARNING: translation string unused: in +WARNING: translation string unused: incorrect password +WARNING: translation string unused: insert floppy +WARNING: translation string unused: insert removable device +WARNING: translation string unused: install new update +WARNING: translation string unused: installed +WARNING: translation string unused: installed updates +WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: intrusion detection system2 +WARNING: translation string unused: invalid cache size +WARNING: translation string unused: invalid date entered +WARNING: translation string unused: invalid downlink speed +WARNING: translation string unused: invalid loaded file +WARNING: translation string unused: invalid md5sum +WARNING: translation string unused: invalid port list +WARNING: translation string unused: invalid time entered +WARNING: translation string unused: invalid uplink speed +WARNING: translation string unused: invalid upstream proxy username or password setting +WARNING: translation string unused: invert +WARNING: translation string unused: ip address in use +WARNING: translation string unused: ipfire side +WARNING: translation string unused: ipsec no connections +WARNING: translation string unused: iptable rules +WARNING: translation string unused: isdn +WARNING: translation string unused: isdn settings +WARNING: translation string unused: isdn1 +WARNING: translation string unused: isdn2 +WARNING: translation string unused: javascript menu error1 +WARNING: translation string unused: javascript menu error2 +WARNING: translation string unused: kernel version +WARNING: translation string unused: key stuff +WARNING: translation string unused: lateprompting +WARNING: translation string unused: length +WARNING: translation string unused: line +WARNING: translation string unused: loaded modules +WARNING: translation string unused: local hard disk +WARNING: translation string unused: localkeyfile +WARNING: translation string unused: log enabled +WARNING: translation string unused: log viewer +WARNING: translation string unused: logging +WARNING: translation string unused: loosedirectorychecking +WARNING: translation string unused: ls_dhcpd +WARNING: translation string unused: ls_disk space +WARNING: translation string unused: ls_free/swan +WARNING: translation string unused: ls_httpd +WARNING: translation string unused: ls_init +WARNING: translation string unused: ls_kernel +WARNING: translation string unused: ls_modprobe +WARNING: translation string unused: ls_pam_unix +WARNING: translation string unused: ls_sshd +WARNING: translation string unused: ls_syslogd +WARNING: translation string unused: mac address error not 00 +WARNING: translation string unused: manage ovpn +WARNING: translation string unused: manual control and status +WARNING: translation string unused: marked +WARNING: translation string unused: max incoming size +WARNING: translation string unused: max outgoing size +WARNING: translation string unused: max size +WARNING: translation string unused: mbmon fan in +WARNING: translation string unused: mbmon graphs +WARNING: translation string unused: mbmon temp in +WARNING: translation string unused: mbmon value +WARNING: translation string unused: min size +WARNING: translation string unused: missing dat +WARNING: translation string unused: missing gz +WARNING: translation string unused: mode +WARNING: translation string unused: modem on com1 +WARNING: translation string unused: modem on com2 +WARNING: translation string unused: modem on com3 +WARNING: translation string unused: modem on com4 +WARNING: translation string unused: modem on com5 +WARNING: translation string unused: modulation +WARNING: translation string unused: month-graph +WARNING: translation string unused: monthly firewallhits +WARNING: translation string unused: monthly start day bad +WARNING: translation string unused: monthly traffic bad +WARNING: translation string unused: monthly volume +WARNING: translation string unused: monthly volume start day +WARNING: translation string unused: monthly volume start day short +WARNING: translation string unused: mount +WARNING: translation string unused: mtu QoS +WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net +WARNING: translation string unused: net address +WARNING: translation string unused: net config type +WARNING: translation string unused: net config type help +WARNING: translation string unused: net-traffic configuration +WARNING: translation string unused: network added +WARNING: translation string unused: network configuration +WARNING: translation string unused: network removed +WARNING: translation string unused: network status information +WARNING: translation string unused: network time +WARNING: translation string unused: network traffic graphs +WARNING: translation string unused: network updated +WARNING: translation string unused: networks settings +WARNING: translation string unused: never +WARNING: translation string unused: new optionsfw must boot +WARNING: translation string unused: no alcatelusb firmware +WARNING: translation string unused: no cfg upload +WARNING: translation string unused: no eciadsl synch.bin file +WARNING: translation string unused: no fritzdsl driver +WARNING: translation string unused: no information available +WARNING: translation string unused: no modem selected +WARNING: translation string unused: no set selected +WARNING: translation string unused: nonetworkname +WARNING: translation string unused: noservicename +WARNING: translation string unused: notes +WARNING: translation string unused: o-no +WARNING: translation string unused: o-yes +WARNING: translation string unused: online help en +WARNING: translation string unused: only red +WARNING: translation string unused: open to all +WARNING: translation string unused: openvpn disabled +WARNING: translation string unused: openvpn enabled +WARNING: translation string unused: optional data +WARNING: translation string unused: optionsfw portlist hint +WARNING: translation string unused: optionsfw warning +WARNING: translation string unused: or +WARNING: translation string unused: original +WARNING: translation string unused: our donors +WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall +WARNING: translation string unused: outgoing firewall add ip group +WARNING: translation string unused: outgoing firewall add mac group +WARNING: translation string unused: outgoing firewall edit ip group +WARNING: translation string unused: outgoing firewall edit mac group +WARNING: translation string unused: outgoing firewall group error +WARNING: translation string unused: outgoing firewall groups +WARNING: translation string unused: outgoing firewall ip groups +WARNING: translation string unused: outgoing firewall mac groups +WARNING: translation string unused: outgoing firewall mode0 +WARNING: translation string unused: outgoing firewall mode1 +WARNING: translation string unused: outgoing firewall mode2 +WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: outgoing firewall p2p description 1 +WARNING: translation string unused: outgoing firewall p2p description 2 +WARNING: translation string unused: outgoing firewall p2p description 3 +WARNING: translation string unused: outgoing firewall reset +WARNING: translation string unused: outgoing firewall view group +WARNING: translation string unused: outgoing firewall warning +WARNING: translation string unused: override mtu +WARNING: translation string unused: ovpn config +WARNING: translation string unused: ovpn dl +WARNING: translation string unused: ovpn engines +WARNING: translation string unused: ovpn log +WARNING: translation string unused: ovpn reneg sec +WARNING: translation string unused: ovpn_fastio +WARNING: translation string unused: ovpn_mssfix +WARNING: translation string unused: ovpn_mtudisc +WARNING: translation string unused: ovpn_processprio +WARNING: translation string unused: ovpn_processprioD +WARNING: translation string unused: ovpn_processprioED +WARNING: translation string unused: ovpn_processprioEH +WARNING: translation string unused: ovpn_processprioEN +WARNING: translation string unused: ovpn_processprioH +WARNING: translation string unused: ovpn_processprioLN +WARNING: translation string unused: ovpn_processprioN +WARNING: translation string unused: ovpn_processprioVD +WARNING: translation string unused: ovpn_processprioVH +WARNING: translation string unused: ovpnstatus log +WARNING: translation string unused: ovpnsys log +WARNING: translation string unused: package failed to install +WARNING: translation string unused: pakfire core update auto +WARNING: translation string unused: pakfire updates +WARNING: translation string unused: password contains illegal characters +WARNING: translation string unused: password crypting key +WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phase1 group +WARNING: translation string unused: phonebook entry +WARNING: translation string unused: ping disabled +WARNING: translation string unused: polfile +WARNING: translation string unused: port forwarding configuration +WARNING: translation string unused: ports +WARNING: translation string unused: pots +WARNING: translation string unused: pppoe +WARNING: translation string unused: present +WARNING: translation string unused: profiles +WARNING: translation string unused: proxy +WARNING: translation string unused: proxy access graphs +WARNING: translation string unused: proxy no proxy extend +WARNING: translation string unused: proxy no proxy local +WARNING: translation string unused: proxy port +WARNING: translation string unused: psk +WARNING: translation string unused: quick control +WARNING: translation string unused: reboot ask +WARNING: translation string unused: reboot question +WARNING: translation string unused: reboot schedule +WARNING: translation string unused: reboot sure +WARNING: translation string unused: refresh update list +WARNING: translation string unused: released +WARNING: translation string unused: removable device advice +WARNING: translation string unused: reportfile +WARNING: translation string unused: requested data +WARNING: translation string unused: reserved dst port +WARNING: translation string unused: reserved src port +WARNING: translation string unused: restore hardware settings +WARNING: translation string unused: root +WARNING: translation string unused: root path +WARNING: translation string unused: root user password +WARNING: translation string unused: route subnet is invalid +WARNING: translation string unused: router ip +WARNING: translation string unused: rsvd dst port overlap +WARNING: translation string unused: rsvd src port overlap +WARNING: translation string unused: rules already up to date +WARNING: translation string unused: safe removal of umounted device +WARNING: translation string unused: save error +WARNING: translation string unused: select dest net +WARNING: translation string unused: select media +WARNING: translation string unused: select source net +WARNING: translation string unused: selecttraffic +WARNING: translation string unused: send email notification +WARNING: translation string unused: send test mail +WARNING: translation string unused: server reserved +WARNING: translation string unused: service added +WARNING: translation string unused: service removed +WARNING: translation string unused: service updated +WARNING: translation string unused: servicename +WARNING: translation string unused: services settings +WARNING: translation string unused: shaping add options +WARNING: translation string unused: shaping list options +WARNING: translation string unused: show areas +WARNING: translation string unused: show lines +WARNING: translation string unused: shutdown ask +WARNING: translation string unused: shutdown sure +WARNING: translation string unused: shutdown2 +WARNING: translation string unused: sitekeyfile +WARNING: translation string unused: smbreload +WARNING: translation string unused: source ip bad +WARNING: translation string unused: source ip in use +WARNING: translation string unused: source ip or net +WARNING: translation string unused: source net +WARNING: translation string unused: source network +WARNING: translation string unused: source port in use +WARNING: translation string unused: source port overlaps +WARNING: translation string unused: squid extension methods +WARNING: translation string unused: squid extension methods invalid +WARNING: translation string unused: squid fix cache +WARNING: translation string unused: srcprt range overlaps +WARNING: translation string unused: srcprt within existing +WARNING: translation string unused: ssdmz pinholes +WARNING: translation string unused: ssh access tip +WARNING: translation string unused: ssh1 disabled +WARNING: translation string unused: ssh1 enabled +WARNING: translation string unused: ssh1 support +WARNING: translation string unused: ssnetwork status +WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssport forwarding +WARNING: translation string unused: ssproxy graphs +WARNING: translation string unused: sssystem status +WARNING: translation string unused: sstraffic graphs +WARNING: translation string unused: subject test +WARNING: translation string unused: subject warn +WARNING: translation string unused: subnet +WARNING: translation string unused: subnet is invalid +WARNING: translation string unused: successfully refreshed updates list +WARNING: translation string unused: system graphs +WARNING: translation string unused: system log viewer +WARNING: translation string unused: system status information +WARNING: translation string unused: teovpn_fragment +WARNING: translation string unused: test +WARNING: translation string unused: test email could not be sent +WARNING: translation string unused: test email was sent +WARNING: translation string unused: the following update was successfully installed +WARNING: translation string unused: there are updates +WARNING: translation string unused: there are updates available +WARNING: translation string unused: this feature has been sponsored by +WARNING: translation string unused: this is not a valid archive +WARNING: translation string unused: this is not an authorised update +WARNING: translation string unused: this months volume +WARNING: translation string unused: this update is already installed +WARNING: translation string unused: this weeks volume +WARNING: translation string unused: time date manually reset +WARNING: translation string unused: to email adr +WARNING: translation string unused: to install an update +WARNING: translation string unused: to warn email bad +WARNING: translation string unused: too long 80 char max +WARNING: translation string unused: tor 0 = disabled +WARNING: translation string unused: tor accounting period daily +WARNING: translation string unused: tor accounting period monthly +WARNING: translation string unused: tor accounting period weekly +WARNING: translation string unused: tor bridge enabled +WARNING: translation string unused: tor errmsg invalid node id +WARNING: translation string unused: tor exit country +WARNING: translation string unused: total connection time +WARNING: translation string unused: traffic back +WARNING: translation string unused: traffic calc time +WARNING: translation string unused: traffic calc time bad +WARNING: translation string unused: traffic info messages +WARNING: translation string unused: traffic monitor +WARNING: translation string unused: traffic shaping +WARNING: translation string unused: traffic shaping settings +WARNING: translation string unused: traffic warn level bad +WARNING: translation string unused: trafficblue +WARNING: translation string unused: trafficdate +WARNING: translation string unused: trafficfrom +WARNING: translation string unused: trafficgreen +WARNING: translation string unused: trafficin +WARNING: translation string unused: trafficorange +WARNING: translation string unused: trafficout +WARNING: translation string unused: trafficred +WARNING: translation string unused: trafficsum +WARNING: translation string unused: trafficto +WARNING: translation string unused: transfer limits +WARNING: translation string unused: transparent on +WARNING: translation string unused: umount +WARNING: translation string unused: umount removable media before to unplug +WARNING: translation string unused: unencrypted +WARNING: translation string unused: update transcript +WARNING: translation string unused: updates +WARNING: translation string unused: updates is old1 +WARNING: translation string unused: updates is old2 +WARNING: translation string unused: updxlrtr children +WARNING: translation string unused: updxlrtr invalid num of children +WARNING: translation string unused: updxlrtr sources +WARNING: translation string unused: updxlrtr standard view +WARNING: translation string unused: updxlrtr unknown +WARNING: translation string unused: updxlrtr update information +WARNING: translation string unused: updxlrtr update notification +WARNING: translation string unused: updxlrtr used by +WARNING: translation string unused: upload fcdsl.o +WARNING: translation string unused: upload file +WARNING: translation string unused: upload static key +WARNING: translation string unused: upload successful +WARNING: translation string unused: upload synch.bin +WARNING: translation string unused: upload update file +WARNING: translation string unused: upstream password +WARNING: translation string unused: upstream proxy host:port +WARNING: translation string unused: upstream username +WARNING: translation string unused: uptime +WARNING: translation string unused: uptime and users +WARNING: translation string unused: urlfilter background image +WARNING: translation string unused: urlfilter background text +WARNING: translation string unused: urlfilter enable jpeg +WARNING: translation string unused: urlfilter update information +WARNING: translation string unused: urlfilter update notification +WARNING: translation string unused: urlfilter update results +WARNING: translation string unused: urlfilter upload background +WARNING: translation string unused: use +WARNING: translation string unused: use dov +WARNING: translation string unused: use ibod +WARNING: translation string unused: view log +WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn configuration main +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid +WARNING: translation string unused: vpn on blue +WARNING: translation string unused: vpn on green +WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch +WARNING: translation string unused: warn when traffic reaches +WARNING: translation string unused: web proxy configuration +WARNING: translation string unused: week-graph +WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: wildcards +WARNING: translation string unused: wlanap wlan services +WARNING: translation string unused: xtaccess all error +WARNING: translation string unused: xtaccess bad transfert +WARNING: translation string unused: year-graph +WARNING: translation string unused: yearly firewallhits +WARNING: untranslated string: MTU settings +WARNING: untranslated string: Number of Countries for the pie chart +WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: administrator password +WARNING: untranslated string: administrator username +WARNING: untranslated string: advproxy AUTH method ntlm auth +WARNING: untranslated string: advproxy basic authentication +WARNING: untranslated string: advproxy group access control +WARNING: untranslated string: advproxy group required +WARNING: untranslated string: bytes +WARNING: untranslated string: fwdfw err concon +WARNING: untranslated string: fwdfw err ratecon +WARNING: untranslated string: fwdfw limitconcon +WARNING: untranslated string: fwdfw maxconcon +WARNING: untranslated string: fwdfw numcon +WARNING: untranslated string: fwdfw ratelimit +WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: ike lifetime should be between 1 and 8 hours +WARNING: untranslated string: incoming compression in bytes per second +WARNING: untranslated string: incoming overhead in bytes per second +WARNING: untranslated string: invalid input for valid till days +WARNING: untranslated string: masquerade blue +WARNING: untranslated string: masquerade green +WARNING: untranslated string: masquerade orange +WARNING: untranslated string: masquerading +WARNING: untranslated string: masquerading disabled +WARNING: untranslated string: masquerading enabled +WARNING: untranslated string: messages +WARNING: untranslated string: no data +WARNING: untranslated string: outgoing compression in bytes per second +WARNING: untranslated string: outgoing overhead in bytes per second +WARNING: untranslated string: ovpn add conf +WARNING: untranslated string: route config changed +WARNING: untranslated string: routing config added +WARNING: untranslated string: routing config changed +WARNING: untranslated string: routing table +WARNING: untranslated string: samba join a domain +WARNING: untranslated string: samba join domain diff --git a/doc/language_issues.nl b/doc/language_issues.nl index 859cc1fd1..309fbc79c 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -299,6 +299,7 @@ WARNING: translation string unused: ike encryption WARNING: translation string unused: ike grouptype WARNING: translation string unused: ike integrity WARNING: translation string unused: ike lifetime +WARNING: translation string unused: ike lifetime should be between 1 and 24 hours WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -693,6 +694,7 @@ WARNING: untranslated string: fwdfw ratelimit WARNING: untranslated string: fwhost err hostip WARNING: untranslated string: gen dh WARNING: untranslated string: generate dh key +WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: imei WARNING: untranslated string: imsi WARNING: untranslated string: incoming compression in bytes per second diff --git a/doc/language_issues.pl b/doc/language_issues.pl index c93d40cb4..58945abe9 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -250,6 +250,7 @@ WARNING: translation string unused: ike encryption WARNING: translation string unused: ike grouptype WARNING: translation string unused: ike integrity WARNING: translation string unused: ike lifetime +WARNING: translation string unused: ike lifetime should be between 1 and 24 hours WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -862,6 +863,7 @@ WARNING: untranslated string: gen dh WARNING: untranslated string: generate dh key WARNING: untranslated string: grouptype WARNING: untranslated string: hardware support +WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: imei WARNING: untranslated string: imsi WARNING: untranslated string: incoming compression in bytes per second diff --git a/doc/language_issues.ru b/doc/language_issues.ru index 17e3199b1..de929418d 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -245,6 +245,7 @@ WARNING: translation string unused: ike encryption WARNING: translation string unused: ike grouptype WARNING: translation string unused: ike integrity WARNING: translation string unused: ike lifetime +WARNING: translation string unused: ike lifetime should be between 1 and 24 hours WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -857,6 +858,7 @@ WARNING: untranslated string: gen dh WARNING: untranslated string: generate dh key WARNING: untranslated string: grouptype WARNING: untranslated string: hardware support +WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: imei WARNING: untranslated string: imsi WARNING: untranslated string: incoming compression in bytes per second diff --git a/doc/language_issues.tr b/doc/language_issues.tr index 0ebd3988f..679bc7627 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -300,6 +300,7 @@ WARNING: translation string unused: ike encryption WARNING: translation string unused: ike grouptype WARNING: translation string unused: ike integrity WARNING: translation string unused: ike lifetime +WARNING: translation string unused: ike lifetime should be between 1 and 24 hours WARNING: translation string unused: import WARNING: translation string unused: importkey WARNING: translation string unused: in @@ -664,6 +665,7 @@ WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs WARNING: untranslated string: bytes WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: incoming compression in bytes per second WARNING: untranslated string: incoming overhead in bytes per second WARNING: untranslated string: invalid input for valid till days diff --git a/src/installer/po/pt_BR.po b/src/installer/po/pt_BR.po index 4a5d137a6..e78c1b452 100644 --- a/src/installer/po/pt_BR.po +++ b/src/installer/po/pt_BR.po @@ -6,13 +6,14 @@ # André Felipe Morro , 2014 # Evertton de Lima , 2015 # Leandro Luquetti Basilio da Silva , 2014 +# Moisés Bites Borges de Castro , 2015 msgid "" msgstr "" "Project-Id-Version: IPFire Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-11-05 01:29+0000\n" -"PO-Revision-Date: 2015-02-16 23:04+0000\n" -"Last-Translator: Evertton de Lima \n" +"PO-Revision-Date: 2015-03-24 21:30+0000\n" +"Last-Translator: Moisés Bites Borges de Castro \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/ipfire/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -76,13 +77,13 @@ msgid "" "No source drive could be found.\n" "\n" "You can try downloading the required installation image." -msgstr "" +msgstr "Nenhum Drive de origem foi encontrado.\n\nVocê pode tentar baixar a imagem da instalação solicitada. " #: main.c:456 msgid "" "Please make sure to connect your machine to a network and the installer will" " try connect to acquire an IP address." -msgstr "" +msgstr "Por favor certifique que sua máquina está conectada com uma rede e o instalador irá tentar conectar para pegar um endereço IP;" #: main.c:460 msgid "Download installation image" @@ -110,7 +111,7 @@ msgstr "Baixando imagem de instalação..." #: main.c:510 #, c-format msgid "MD5 checksum mismatch" -msgstr "" +msgstr "Assinatura MD5 incompatível" #: main.c:513 #, c-format @@ -301,15 +302,15 @@ msgstr "Não" #: main.c:834 msgid "An error occured when the backup file was restored." -msgstr "Um erro ocorreu enquanto a cópia de segurança foi restaurada." +msgstr "Um erro ocorreu enquanto a cópia de segurança era restaurada." #: main.c:869 msgid "Running post-install script..." -msgstr "Executando post-install script..." +msgstr "Executando script pós instalação..." #: main.c:870 msgid "Post-install script failed." -msgstr "Post-install script falhou." +msgstr "Script de pós instalação falhou." #: main.c:877 #, c-format @@ -317,7 +318,7 @@ msgid "" "%s was successfully installed!\n" "\n" "Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console." -msgstr "" +msgstr "%s está instalado com sucesso!\n\nPor favor, remova qualquer mídia de instalação desse sistema e o reinicie. Assim que o sistema for reiniciado você será solicitado a configurar a rede e especificar as senhas de sistema. Após isso, você deve apontar seu navegador para https://%s:444 (ou use nome de %s) para a página de configuração web." #: main.c:882 msgid "Congratulations!" diff --git a/src/setup/po/pt_BR.po b/src/setup/po/pt_BR.po index b1ea09c51..eb408edc5 100644 --- a/src/setup/po/pt_BR.po +++ b/src/setup/po/pt_BR.po @@ -5,14 +5,15 @@ # Translators: # douglasdiasn , 2015 # Evertton de Lima , 2015 +# Moisés Bites Borges de Castro , 2015 # Rafael Tavares , 2015 msgid "" msgstr "" "Project-Id-Version: IPFire Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-08-21 15:12+0000\n" -"PO-Revision-Date: 2015-02-16 23:15+0000\n" -"Last-Translator: Evertton de Lima \n" +"PO-Revision-Date: 2015-03-24 21:31+0000\n" +"Last-Translator: Moisés Bites Borges de Castro \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/ipfire/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,7 +23,7 @@ msgstr "" #: dhcp.c:50 msgid "Start address:" -msgstr "Endereço de Inicial:" +msgstr "Endereço inicial:" #: dhcp.c:51 msgid "End address:" @@ -38,15 +39,15 @@ msgstr "DNS Secundário:" #: dhcp.c:54 msgid "Default lease (mins):" -msgstr "Tempo padrão (mins):" +msgstr "Concessão padrão (min):" #: dhcp.c:55 msgid "Max lease (mins):" -msgstr "Tempo máximo (mins)" +msgstr "Concessão máxima (min)" #: dhcp.c:56 msgid "Domain name suffix:" -msgstr "" +msgstr "Sufixo do nome de Domínio:" #: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70 #: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704 @@ -58,7 +59,7 @@ msgstr "Não foi possível abrir o arquivo de configurações" #: dhcp.c:111 msgid "DHCP server configuration" -msgstr "Configurar servidor DHCP" +msgstr "Configuração do servidor DHCP" #: dhcp.c:116 msgid "Configure the DHCP server by entering the settings information." @@ -87,11 +88,11 @@ msgstr "Cancelar" msgid "" "The following fields are invalid:\n" "\n" -msgstr "Os campos a seguir são inválidos: \n" +msgstr "Os campos a seguir são inválidos: \n\n" #: dhcp.c:159 msgid "Start address" -msgstr "Endereço de Inicial" +msgstr "Endereço inicial" #: dhcp.c:165 msgid "End address" @@ -107,19 +108,19 @@ msgstr "DNS Secundário" #: dhcp.c:189 msgid "Default lease time" -msgstr "Tempo padrão" +msgstr "Tempo de concessão padrão" #: dhcp.c:195 msgid "Max. lease time" -msgstr "Tempo máximo padrão" +msgstr "Tempo de concessão máximo" #: domainname.c:42 main.c:70 msgid "Domain name" -msgstr "Domínio " +msgstr "Nome de Domínio " #: domainname.c:42 msgid "Enter Domain name" -msgstr "Entre com o nome do Domínio" +msgstr "Digite o nome do Domínio" #: domainname.c:48 msgid "Domain name cannot be empty." @@ -135,11 +136,11 @@ msgstr "O nome de Domínio pode conter somente letras, números, hífens e ponto #: hostname.c:46 main.c:69 msgid "Hostname" -msgstr "Hostname" +msgstr "Nome do Host" #: hostname.c:46 msgid "Enter the machine's hostname." -msgstr "Entre com o nome do host." +msgstr "Entre com o nome de Host da máquina." #: hostname.c:53 msgid "Hostname cannot be empty." @@ -260,7 +261,7 @@ msgstr "Estático " #: netstuff.c:104 msgid "DHCP" -msgstr "Automático " +msgstr "DHCP" #: netstuff.c:105 msgid "PPP DIALUP (PPPoE, modem, ATM ...)" @@ -300,7 +301,7 @@ msgstr "Nome do Host DHCP:" #: netstuff.c:396 netstuff.c:709 msgid "Unset" -msgstr "" +msgstr "Desativado" #: netstuff.c:669 #, c-format @@ -342,11 +343,11 @@ msgstr "Você realmente quer remover a interface %s associada?" #: netstuff.c:755 msgid "Select network driver" -msgstr "Selecionar driver de rede" +msgstr "Selecionar o driver de rede" #: netstuff.c:755 msgid "Set additional module parameters" -msgstr "" +msgstr "Especifique os parâmetros adicionais" #: netstuff.c:762 msgid "Loading module..." @@ -354,11 +355,11 @@ msgstr "Carregando modulo..." #: netstuff.c:777 msgid "Unable to load driver module." -msgstr "" +msgstr "Não foi possível carregar o driver." #: netstuff.c:780 msgid "Module name cannot be blank." -msgstr "" +msgstr "O nome do módulo não pode ficar vazio." #: networking.c:110 msgid "Stopping network..." @@ -459,7 +460,7 @@ msgid "" "list those interfaces which have ethernet attached. If you change this " "setting, a network restart will be required, and you will have to " "reconfigure the network driver assignments." -msgstr "" +msgstr "Selecione a configuração de rede para %s. Os tipos de configuração seguintes lista as interfaces cabo Ethernet. Se você alterar estas configurações, uma reinicialização de rede será exigida, e você terá que reconfigurar os drivers de rede especificados." #: networking.c:307 #, c-format @@ -467,13 +468,13 @@ msgid "" "Not enough netcards for your choice.\n" "\n" "Needed: %d - Available: %d\n" -msgstr "" +msgstr "Não há dispositivos de rede suficientes para sua escolha.\n\nNecessárias: %d - Disponíveis: %d\n" #: networking.c:359 msgid "" "Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n" "\n" -msgstr "" +msgstr "Configure os drivers de rede, e a placa de rede que a interface está relacionada. A configuração atual é a seguinte:\n\n" #: networking.c:408 msgid "Do you wish to change these settings?" @@ -487,7 +488,7 @@ msgstr "Reiniciando rede non-local..." msgid "" "Please choose the interface you wish to change.\n" "\n" -msgstr "" +msgstr "Por favor, escolha a interface de rede que quer alterar.\n\n" #: networking.c:519 msgid "Assigned Cards" @@ -504,11 +505,11 @@ msgid "" "connection to the %s machine will be broken, and you will have to reconnect " "on the new IP. This is a risky operation, and should only be attempted if " "you have physical access to the machine, should something go wrong." -msgstr "" +msgstr "Se você alterar o endereço IP, e você estiver logado remotamente, sua conexão com a máquina %s cairá, e você terá que reconectar através do novo IP. Esta é uma operação arriscada, e somente deve ser feita se você tem acesso físico à máquina, caso algo errado aconteça." #: networking.c:641 msgid "Select the interface you wish to reconfigure." -msgstr "" +msgstr "Selecione a interface que deseja reconfigurar." #: networking.c:729 msgid "Default gateway:" @@ -518,7 +519,7 @@ msgstr "Gateway padrão:" msgid "" "Enter the DNS and gateway information. These settings are used only with " "Static IP (and DHCP if DNS set) on the RED interface." -msgstr "" +msgstr "Digite as informações de DNS e roteador. Estas configurações são usada somente com IP estático (e DHCP se o DNS está habilitado) para a inerface VERMELHA." #: networking.c:773 msgid "Default gateway" @@ -531,7 +532,7 @@ msgstr "DNS secundário especificado sem um DNS primário" #: passwords.c:33 msgid "" "Enter the 'root' user password. Login as this user for commandline access." -msgstr "" +msgstr "Digite a senha do usuário 'root'. Autentique com este usuário para acesso à linha de comando." #: passwords.c:38 passwords.c:61 msgid "Setting password" @@ -550,17 +551,17 @@ msgstr "Problema ao configurar senha 'root'" msgid "" "Enter %s 'admin' user password. This is the user to use for logging into the" " %s web administration pages." -msgstr "" +msgstr "Digite a senha do usuário 'admin' do %s. Este é o usuário para autenticação na interface web de administração do %s." #: passwords.c:60 #, c-format msgid "Setting %s 'admin' user password..." -msgstr "" +msgstr "Especificando a senha do usuário 'admin' do %s..." #: passwords.c:62 #, c-format msgid "Problem setting %s 'admin' user password." -msgstr "" +msgstr "Tem um problema ao gravar senha do usuário 'admin' do %s." #: passwords.c:76 msgid "Password:" diff --git a/src/setup/po/tr.po b/src/setup/po/tr.po index 4e684182d..9e52d072c 100644 --- a/src/setup/po/tr.po +++ b/src/setup/po/tr.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: IPFire Project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-08-21 15:12+0000\n" -"PO-Revision-Date: 2015-02-28 22:59+0000\n" +"PO-Revision-Date: 2015-03-20 15:05+0000\n" "Last-Translator: Ersan YILDIRIM \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/ipfire/language/tr/)\n" "MIME-Version: 1.0\n" @@ -503,7 +503,7 @@ msgid "" "connection to the %s machine will be broken, and you will have to reconnect " "on the new IP. This is a risky operation, and should only be attempted if " "you have physical access to the machine, should something go wrong." -msgstr "EÄŸer bu IP adresini deÄŸiÅŸtirirseniz, ve uzaktan oturum açmışsanız, %s makinesine olan baÄŸlantınız kopacaktır ve yeni IP adresine tekrar baÄŸlanmanız gerekecektir. Bu riskli bir iÅŸlemdir ve bir ÅŸeylerin ters gitmesi durumunda makineye fiziksel eriÅŸiminiz varsa kullanmalısınız." +msgstr "Uzaktan oturum açtığınızda bu IP adresini deÄŸiÅŸtirirseniz %s makinesine olan baÄŸlantınız kopacaktır ve yeni IP adresine tekrar baÄŸlanmanız gerekecektir. Bu riskli bir iÅŸlemdir ve bir ÅŸeylerin ters gitmesi durumunda makineye fiziksel eriÅŸiminiz varsa kullanmalısınız." #: networking.c:641 msgid "Select the interface you wish to reconfigure." From 2be0bc4410b7d2f5039eae7b464db7b8ee6564db Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 4 Apr 2015 13:59:11 +0200 Subject: [PATCH 087/210] nfs-server: Drop kernel version check from initscript. As suggested on the bugtracker, the kernel version check completely has been removed. Fixes #10760. --- src/initscripts/init.d/nfs-server | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/initscripts/init.d/nfs-server b/src/initscripts/init.d/nfs-server index 41055ad5b..15284e88a 100644 --- a/src/initscripts/init.d/nfs-server +++ b/src/initscripts/init.d/nfs-server @@ -27,13 +27,9 @@ case "$1" in loadproc /usr/sbin/rpc.rquotad fi - # NFSD support requires kernel 2.6 or newer. - /bin/uname -r | /bin/grep -E "^2.6|^3" 2>&1 > /dev/null - if [ $? = 0 ]; then - boot_mesg "Mounting nfsd virtual filesystem..." - /bin/mount -t nfsd none /proc/fs/nfsd 2>&1 > /dev/null - evaluate_retval - fi + boot_mesg "Mounting nfsd virtual filesystem..." + /bin/mount -t nfsd none /proc/fs/nfsd 2>&1 > /dev/null + evaluate_retval # Make ceratin that the list is refreshed on # a restart. @@ -62,13 +58,9 @@ case "$1" in /usr/sbin/exportfs -au 2>&1 > /dev/null evaluate_retval - # NFSD support requires kernel 2.6 or newer. - /bin/uname -r | /bin/grep -E "^2.6|^3" 2>&1 > /dev/null - if [ $? = 0 ]; then - boot_mesg "Unmounting NFS Virtual Filesystem..." - /bin/umount /proc/fs/nfsd 2>&1 > /dev/null - evaluate_retval - fi + boot_mesg "Unmounting NFS Virtual Filesystem..." + /bin/umount /proc/fs/nfsd 2>&1 > /dev/null + evaluate_retval # Remove a pid file that isn't done automatically boot_mesg "Removing the rpc.statd pid file if it exists" From b0b61056a72dad063e56a4093e0bfbc087eb7985 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 4 Apr 2015 14:38:38 +0200 Subject: [PATCH 088/210] haproxy: Provide a better example configuration that works --- config/haproxy/haproxy.cfg | 4 ++-- lfs/haproxy | 2 +- src/paks/haproxy/install.sh | 30 ++++++++++++++++++++++++++++++ src/paks/haproxy/uninstall.sh | 26 ++++++++++++++++++++++++++ src/paks/haproxy/update.sh | 26 ++++++++++++++++++++++++++ 5 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 src/paks/haproxy/install.sh create mode 100644 src/paks/haproxy/uninstall.sh create mode 100644 src/paks/haproxy/update.sh diff --git a/config/haproxy/haproxy.cfg b/config/haproxy/haproxy.cfg index 324ad5e22..9d372f63f 100644 --- a/config/haproxy/haproxy.cfg +++ b/config/haproxy/haproxy.cfg @@ -28,8 +28,8 @@ global chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 - user haproxy - group haproxy + user nobody + group nobody daemon # turn on stats unix socket diff --git a/lfs/haproxy b/lfs/haproxy index febb65a5d..4af227307 100644 --- a/lfs/haproxy +++ b/lfs/haproxy @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = haproxy -PAK_VER = 1 +PAK_VER = 2 DEPS = "" diff --git a/src/paks/haproxy/install.sh b/src/paks/haproxy/install.sh new file mode 100644 index 000000000..45b2161b1 --- /dev/null +++ b/src/paks/haproxy/install.sh @@ -0,0 +1,30 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +extract_files + +# Enable autostart +ln -sf ../init.d/haproxy /etc/rc.d/rc0.d/K25haproxy +ln -sf ../init.d/haproxy /etc/rc.d/rc3.d/S35haproxy +ln -sf ../init.d/haproxy /etc/rc.d/rc6.d/K25haproxy diff --git a/src/paks/haproxy/uninstall.sh b/src/paks/haproxy/uninstall.sh new file mode 100644 index 000000000..b01ee1147 --- /dev/null +++ b/src/paks/haproxy/uninstall.sh @@ -0,0 +1,26 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +remove_files +rm -rfv /etc/rc.d/rc*.d/*haproxy diff --git a/src/paks/haproxy/update.sh b/src/paks/haproxy/update.sh new file mode 100644 index 000000000..89c40d0d7 --- /dev/null +++ b/src/paks/haproxy/update.sh @@ -0,0 +1,26 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +./uninstall.sh +./install.sh From c6ce1e7ecb8f053bff2cbca975fa1246b75c0bdf Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 4 Apr 2015 15:23:17 +0200 Subject: [PATCH 089/210] dnsmasq: Import latest patches from upstream --- lfs/dnsmasq | 14 + ...ne-at-the-end-of-example-config-file.patch | 2 +- ...-when-an-empty-suffix-is-supplied-to.patch | 2 +- ...0003-Debian-build-fixes-for-kFreeBSD.patch | 2 +- ...t-conntrack-mark-before-connect-call.patch | 2 +- .../0005-Fix-typo-in-new-Dbus-code.patch | 2 +- .../0006-Fit-example-conf-file-typo.patch | 2 +- ...liance-when-unable-to-supply-address.patch | 2 +- ...8-Fix-conntrack-with-bind-interfaces.patch | 2 +- ...-inotify-instead-of-polling-on-Linux.patch | 2 +- ...-the-new-inotify-code-about-symlinks.patch | 2 +- ...oor-on-EDNS0-packet-size-with-DNSSEC.patch | 2 +- .../dnsmasq/0012-CHANGELOG-re.-inotify.patch | 2 +- ...eakage-of-domain-domain-subnet-local.patch | 2 +- ...dundant-IN6_IS_ADDR_ULA-a-macro-defn.patch | 2 +- ...rivacy-addresses-from-interface-name.patch | 2 +- ...h-in-cache-dump-to-avoid-truncating-.patch | 2 +- ...SEC-code-when-attempting-to-verify-l.patch | 2 +- ...k-for-CNAMEs-pointing-to-A-AAAA-reco.patch | 2 +- ...blems-validating-NSEC3-and-wildcards.patch | 2 +- .../0020-Initialise-return-value.patch | 2 +- .../0021-Add-ignore-address-option.patch | 2 +- .../dnsmasq/0022-Bad-packet-protection.patch | 2 +- ...d-failure-in-new-inotify-code-on-BSD.patch | 2 +- ...efile-dependencies-on-COPTS-variable.patch | 2 +- ...Fix-race-condition-issue-in-makefile.patch | 2 +- ...wn-search-for-limit-of-secure-delega.patch | 2 +- ...extra-option-for-more-complete-loggi.patch | 2 +- .../0028-Add-min-cache-ttl-option.patch | 2 +- ...f-requestor-when-doing-extra-logging.patch | 2 +- ...m-cache-RRsets-from-wildcards-as-we-.patch | 2 +- .../0031-Logs-for-DS-records-consistent.patch | 2 +- ...le-interfaces-with-the-same-LL-addre.patch | 2 +- ...reat-SERVFAIL-as-a-recoverable-error.patch | 2 +- ...0034-Add-dhcp-hostsdir-config-option.patch | 2 +- .../0035-Update-German-translation.patch | 2 +- ...HCPv6-SOLICIT-messages-when-not-conf.patch | 2 +- ...-be-disabled-at-compile-time-on-Linu.patch | 2 +- ...ode-to-dhcp-hostsdir-dhcp-optsdir-an.patch | 2 +- ...9-Update-copyrights-for-dawn-of-2015.patch | 2 +- .../0040-inotify-documentation-updates.patch | 2 +- ...1-Fix-broken-ECDSA-DNSSEC-signatures.patch | 2 +- .../dnsmasq/0042-BSD-make-support.patch | 2 +- .../0043-Fix-build-failure-on-openBSD.patch | 2 +- .../dnsmasq/0044-Manpage-typo-fix.patch | 2 +- ...gs-after-reading-extra-hostfiles-wit.patch | 2 +- .../0046-Extra-logging-for-inotify-code.patch | 2 +- src/patches/dnsmasq/0047-man-page-typo.patch | 2 +- ...script-which-returned-wrong-tag-in-s.patch | 2 +- src/patches/dnsmasq/0049-Typos.patch | 2 +- ...c-hosts-files-work-when-no-hosts-set.patch | 2 +- ...ial-memory-leaks-to-quieten-valgrind.patch | 2 +- ...ialized-value-used-in-get_client_mac.patch | 2 +- ...parsing-utils-in-contrib-reverse-dns.patch | 41 +- ...dnssec-timestamp-option-and-facility.patch | 2 +- ...to-not-crash-if-uid-changing-not-con.patch | 2 +- ...6-New-version-of-contrib-reverse-dns.patch | 2 +- ...estamp-code-to-create-file-later-rem.patch | 2 +- ...code-for-re-running-system-calls-on-.patch | 458 + ...mple.com-equivalent-to-server-exampl.patch | 75 + ...d-interface-via-cmsg-in-unicast-repl.patch | 80 + ...C-when-a-signed-CNAME-dangles-into-a.patch | 27 + ...n-SERVFAIL-when-validation-abandoned.patch | 48 + ...tect-against-broken-DNSSEC-upstreams.patch | 37 + ...x-for-non-ascii-characters-in-labels.patch | 197 + ...aracters-in-names-in-the-cache-handl.patch | 246 + .../0066-Fix-crash-in-last-commit.patch | 30 + .../0067-Merge-message-translations.patch | 20329 ++++++++++++++++ ...-no-fail-to-ignore-missing-tftp-root.patch | 199 + .../dnsmasq/0069-Whitespace-fixes.patch | 85 + ...rather-than-BOGUS-when-DS-proved-not.patch | 254 + ...er-warning-when-not-including-DNSSEC.patch | 26 + 72 files changed, 22163 insertions(+), 95 deletions(-) create mode 100644 src/patches/dnsmasq/0058-Fix-boilerplate-code-for-re-running-system-calls-on-.patch create mode 100644 src/patches/dnsmasq/0059-Make-address-example.com-equivalent-to-server-exampl.patch create mode 100644 src/patches/dnsmasq/0060-dhcp-set-outbound-interface-via-cmsg-in-unicast-repl.patch create mode 100644 src/patches/dnsmasq/0061-Don-t-fail-DNSSEC-when-a-signed-CNAME-dangles-into-a.patch create mode 100644 src/patches/dnsmasq/0062-Return-SERVFAIL-when-validation-abandoned.patch create mode 100644 src/patches/dnsmasq/0063-Protect-against-broken-DNSSEC-upstreams.patch create mode 100644 src/patches/dnsmasq/0064-DNSSEC-fix-for-non-ascii-characters-in-labels.patch create mode 100644 src/patches/dnsmasq/0065-Allow-control-characters-in-names-in-the-cache-handl.patch create mode 100644 src/patches/dnsmasq/0066-Fix-crash-in-last-commit.patch create mode 100644 src/patches/dnsmasq/0067-Merge-message-translations.patch create mode 100644 src/patches/dnsmasq/0068-add-tftp-no-fail-to-ignore-missing-tftp-root.patch create mode 100644 src/patches/dnsmasq/0069-Whitespace-fixes.patch create mode 100644 src/patches/dnsmasq/0070-Return-INSECURE-rather-than-BOGUS-when-DS-proved-not.patch create mode 100644 src/patches/dnsmasq/0071-Fix-compiler-warning-when-not-including-DNSSEC.patch diff --git a/lfs/dnsmasq b/lfs/dnsmasq index 4bb7f9f0d..15a86a57d 100644 --- a/lfs/dnsmasq +++ b/lfs/dnsmasq @@ -130,6 +130,20 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0055-Fix-last-commit-to-not-crash-if-uid-changing-not-con.patch cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0056-New-version-of-contrib-reverse-dns.patch cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0057-Tweak-DNSSEC-timestamp-code-to-create-file-later-rem.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0058-Fix-boilerplate-code-for-re-running-system-calls-on-.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0059-Make-address-example.com-equivalent-to-server-exampl.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0060-dhcp-set-outbound-interface-via-cmsg-in-unicast-repl.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0061-Don-t-fail-DNSSEC-when-a-signed-CNAME-dangles-into-a.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0062-Return-SERVFAIL-when-validation-abandoned.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0063-Protect-against-broken-DNSSEC-upstreams.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0064-DNSSEC-fix-for-non-ascii-characters-in-labels.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0065-Allow-control-characters-in-names-in-the-cache-handl.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0066-Fix-crash-in-last-commit.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0067-Merge-message-translations.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0068-add-tftp-no-fail-to-ignore-missing-tftp-root.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0069-Whitespace-fixes.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0070-Return-INSECURE-rather-than-BOGUS-when-DS-proved-not.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0071-Fix-compiler-warning-when-not-including-DNSSEC.patch cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq-Add-support-to-read-ISC-DHCP-lease-file.patch cd $(DIR_APP) && sed -i src/config.h \ -e 's|/\* #define HAVE_IDN \*/|#define HAVE_IDN|g' \ diff --git a/src/patches/dnsmasq/0001-Add-newline-at-the-end-of-example-config-file.patch b/src/patches/dnsmasq/0001-Add-newline-at-the-end-of-example-config-file.patch index adcb44fff..09e385878 100644 --- a/src/patches/dnsmasq/0001-Add-newline-at-the-end-of-example-config-file.patch +++ b/src/patches/dnsmasq/0001-Add-newline-at-the-end-of-example-config-file.patch @@ -1,7 +1,7 @@ From f2658275b25ebfe691cdcb9fede85a3088cca168 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Thu, 25 Sep 2014 21:51:25 +0100 -Subject: [PATCH 01/55] Add newline at the end of example config file. +Subject: [PATCH 01/71] Add newline at the end of example config file. --- dnsmasq.conf.example | 2 +- diff --git a/src/patches/dnsmasq/0002-crash-at-startup-when-an-empty-suffix-is-supplied-to.patch b/src/patches/dnsmasq/0002-crash-at-startup-when-an-empty-suffix-is-supplied-to.patch index b84440baf..bcaac85db 100644 --- a/src/patches/dnsmasq/0002-crash-at-startup-when-an-empty-suffix-is-supplied-to.patch +++ b/src/patches/dnsmasq/0002-crash-at-startup-when-an-empty-suffix-is-supplied-to.patch @@ -1,7 +1,7 @@ From 00cd9d551998307225312fd21f761cfa8868bd2c Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Thu, 2 Oct 2014 21:44:21 +0100 -Subject: [PATCH 02/55] crash at startup when an empty suffix is supplied to +Subject: [PATCH 02/71] crash at startup when an empty suffix is supplied to --conf-dir --- diff --git a/src/patches/dnsmasq/0003-Debian-build-fixes-for-kFreeBSD.patch b/src/patches/dnsmasq/0003-Debian-build-fixes-for-kFreeBSD.patch index fe73acd64..a7ef61187 100644 --- a/src/patches/dnsmasq/0003-Debian-build-fixes-for-kFreeBSD.patch +++ b/src/patches/dnsmasq/0003-Debian-build-fixes-for-kFreeBSD.patch @@ -1,7 +1,7 @@ From 6ac3bc0452a74e16e3d620a0757b0f8caab182ec Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Fri, 3 Oct 2014 08:48:11 +0100 -Subject: [PATCH 03/55] Debian build fixes for kFreeBSD +Subject: [PATCH 03/71] Debian build fixes for kFreeBSD --- src/tables.c | 6 +++++- diff --git a/src/patches/dnsmasq/0004-Set-conntrack-mark-before-connect-call.patch b/src/patches/dnsmasq/0004-Set-conntrack-mark-before-connect-call.patch index 5d7c3c4e8..e64e31484 100644 --- a/src/patches/dnsmasq/0004-Set-conntrack-mark-before-connect-call.patch +++ b/src/patches/dnsmasq/0004-Set-conntrack-mark-before-connect-call.patch @@ -1,7 +1,7 @@ From e9828b6f66b22ce8873f8d30a773137d1aef1b92 Mon Sep 17 00:00:00 2001 From: Karl Vogel Date: Fri, 3 Oct 2014 21:45:15 +0100 -Subject: [PATCH 04/55] Set conntrack mark before connect() call. +Subject: [PATCH 04/71] Set conntrack mark before connect() call. SO_MARK has to be done before issuing the connect() call on the TCP socket. diff --git a/src/patches/dnsmasq/0005-Fix-typo-in-new-Dbus-code.patch b/src/patches/dnsmasq/0005-Fix-typo-in-new-Dbus-code.patch index 80c55f684..48ed92eee 100644 --- a/src/patches/dnsmasq/0005-Fix-typo-in-new-Dbus-code.patch +++ b/src/patches/dnsmasq/0005-Fix-typo-in-new-Dbus-code.patch @@ -1,7 +1,7 @@ From 17b475912f6a4e72797a543dad59d4d5dde6bb1b Mon Sep 17 00:00:00 2001 From: Daniel Collins Date: Fri, 3 Oct 2014 21:58:43 +0100 -Subject: [PATCH 05/55] Fix typo in new Dbus code. +Subject: [PATCH 05/71] Fix typo in new Dbus code. Simon's fault. --- diff --git a/src/patches/dnsmasq/0006-Fit-example-conf-file-typo.patch b/src/patches/dnsmasq/0006-Fit-example-conf-file-typo.patch index 5f9f57276..c8c516961 100644 --- a/src/patches/dnsmasq/0006-Fit-example-conf-file-typo.patch +++ b/src/patches/dnsmasq/0006-Fit-example-conf-file-typo.patch @@ -1,7 +1,7 @@ From 3d9d2dd0018603a2ae4b9cd65ac6ff959f4fd8c7 Mon Sep 17 00:00:00 2001 From: Tomas Hozza Date: Mon, 6 Oct 2014 10:46:48 +0100 -Subject: [PATCH 06/55] Fit example conf file typo. +Subject: [PATCH 06/71] Fit example conf file typo. --- dnsmasq.conf.example | 2 +- diff --git a/src/patches/dnsmasq/0007-Improve-RFC-compliance-when-unable-to-supply-address.patch b/src/patches/dnsmasq/0007-Improve-RFC-compliance-when-unable-to-supply-address.patch index 370d1065c..c21ece4f7 100644 --- a/src/patches/dnsmasq/0007-Improve-RFC-compliance-when-unable-to-supply-address.patch +++ b/src/patches/dnsmasq/0007-Improve-RFC-compliance-when-unable-to-supply-address.patch @@ -1,7 +1,7 @@ From b9ff5c8f435173cfa616e3c398bdc089ef690a07 Mon Sep 17 00:00:00 2001 From: Vladislav Grishenko Date: Mon, 6 Oct 2014 14:34:24 +0100 -Subject: [PATCH 07/55] Improve RFC-compliance when unable to supply addresses +Subject: [PATCH 07/71] Improve RFC-compliance when unable to supply addresses in DHCPv6 While testing https://github.com/sbyx/odhcp6c client I have noticed it diff --git a/src/patches/dnsmasq/0008-Fix-conntrack-with-bind-interfaces.patch b/src/patches/dnsmasq/0008-Fix-conntrack-with-bind-interfaces.patch index 3f8bad331..227cab79c 100644 --- a/src/patches/dnsmasq/0008-Fix-conntrack-with-bind-interfaces.patch +++ b/src/patches/dnsmasq/0008-Fix-conntrack-with-bind-interfaces.patch @@ -1,7 +1,7 @@ From 98906275a02ae260fe3f82133bd79054f8315f06 Mon Sep 17 00:00:00 2001 From: Hans Dedecker Date: Tue, 9 Dec 2014 22:22:53 +0000 -Subject: [PATCH 08/55] Fix conntrack with --bind-interfaces +Subject: [PATCH 08/71] Fix conntrack with --bind-interfaces Make sure dst_addr is assigned the correct address in receive_query when OPTNOWILD is enabled so the assigned mark can be correctly retrieved and set in forward_query when diff --git a/src/patches/dnsmasq/0009-Use-inotify-instead-of-polling-on-Linux.patch b/src/patches/dnsmasq/0009-Use-inotify-instead-of-polling-on-Linux.patch index 81939202b..7773e0bf4 100644 --- a/src/patches/dnsmasq/0009-Use-inotify-instead-of-polling-on-Linux.patch +++ b/src/patches/dnsmasq/0009-Use-inotify-instead-of-polling-on-Linux.patch @@ -1,7 +1,7 @@ From 193de4abf59e49c6b70d54cfe9720fcb95ca2f71 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Wed, 10 Dec 2014 17:32:16 +0000 -Subject: [PATCH 09/55] Use inotify instead of polling on Linux. +Subject: [PATCH 09/71] Use inotify instead of polling on Linux. This should solve problems people are seeing when a file changes twice within a second and thus is missed for polling. diff --git a/src/patches/dnsmasq/0010-Teach-the-new-inotify-code-about-symlinks.patch b/src/patches/dnsmasq/0010-Teach-the-new-inotify-code-about-symlinks.patch index 70fc5c3f8..f5e0ccdd7 100644 --- a/src/patches/dnsmasq/0010-Teach-the-new-inotify-code-about-symlinks.patch +++ b/src/patches/dnsmasq/0010-Teach-the-new-inotify-code-about-symlinks.patch @@ -1,7 +1,7 @@ From 857973e6f7e0a3d03535a9df7f9373fd7a0b65cc Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 15 Dec 2014 15:58:13 +0000 -Subject: [PATCH 10/55] Teach the new inotify code about symlinks. +Subject: [PATCH 10/71] Teach the new inotify code about symlinks. --- src/inotify.c | 43 +++++++++++++++++++++++++++---------------- diff --git a/src/patches/dnsmasq/0011-Remove-floor-on-EDNS0-packet-size-with-DNSSEC.patch b/src/patches/dnsmasq/0011-Remove-floor-on-EDNS0-packet-size-with-DNSSEC.patch index 095253b18..800cfb6bf 100644 --- a/src/patches/dnsmasq/0011-Remove-floor-on-EDNS0-packet-size-with-DNSSEC.patch +++ b/src/patches/dnsmasq/0011-Remove-floor-on-EDNS0-packet-size-with-DNSSEC.patch @@ -1,7 +1,7 @@ From 800c5cc1e7438818fd80f08c2d472df249a6942d Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 15 Dec 2014 17:50:15 +0000 -Subject: [PATCH 11/55] Remove floor on EDNS0 packet size with DNSSEC. +Subject: [PATCH 11/71] Remove floor on EDNS0 packet size with DNSSEC. --- CHANGELOG | 6 +++++- diff --git a/src/patches/dnsmasq/0012-CHANGELOG-re.-inotify.patch b/src/patches/dnsmasq/0012-CHANGELOG-re.-inotify.patch index b71e58b75..1a0925a6e 100644 --- a/src/patches/dnsmasq/0012-CHANGELOG-re.-inotify.patch +++ b/src/patches/dnsmasq/0012-CHANGELOG-re.-inotify.patch @@ -1,7 +1,7 @@ From ad946d555dce44eb690c7699933b6ff40ab85bb6 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 15 Dec 2014 17:52:22 +0000 -Subject: [PATCH 12/55] CHANGELOG re. inotify. +Subject: [PATCH 12/71] CHANGELOG re. inotify. --- CHANGELOG | 4 ++++ diff --git a/src/patches/dnsmasq/0013-Fix-breakage-of-domain-domain-subnet-local.patch b/src/patches/dnsmasq/0013-Fix-breakage-of-domain-domain-subnet-local.patch index 2ff5acd14..d467a9e0b 100644 --- a/src/patches/dnsmasq/0013-Fix-breakage-of-domain-domain-subnet-local.patch +++ b/src/patches/dnsmasq/0013-Fix-breakage-of-domain-domain-subnet-local.patch @@ -1,7 +1,7 @@ From 3ad3f3bbd4ee716a7d2fb1e115cf89bd1b1a5de9 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 16 Dec 2014 18:25:17 +0000 -Subject: [PATCH 13/55] Fix breakage of --domain=,,local +Subject: [PATCH 13/71] Fix breakage of --domain=,,local --- CHANGELOG | 4 ++++ diff --git a/src/patches/dnsmasq/0014-Remove-redundant-IN6_IS_ADDR_ULA-a-macro-defn.patch b/src/patches/dnsmasq/0014-Remove-redundant-IN6_IS_ADDR_ULA-a-macro-defn.patch index a0e647f8a..b77acce78 100644 --- a/src/patches/dnsmasq/0014-Remove-redundant-IN6_IS_ADDR_ULA-a-macro-defn.patch +++ b/src/patches/dnsmasq/0014-Remove-redundant-IN6_IS_ADDR_ULA-a-macro-defn.patch @@ -1,7 +1,7 @@ From bd9520b7ade7098ee423acc38965376aa57feb07 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 16 Dec 2014 20:41:29 +0000 -Subject: [PATCH 14/55] Remove redundant IN6_IS_ADDR_ULA(a) macro defn. +Subject: [PATCH 14/71] Remove redundant IN6_IS_ADDR_ULA(a) macro defn. --- src/network.c | 4 ---- diff --git a/src/patches/dnsmasq/0015-Eliminate-IPv6-privacy-addresses-from-interface-name.patch b/src/patches/dnsmasq/0015-Eliminate-IPv6-privacy-addresses-from-interface-name.patch index 114a4f371..06804232b 100644 --- a/src/patches/dnsmasq/0015-Eliminate-IPv6-privacy-addresses-from-interface-name.patch +++ b/src/patches/dnsmasq/0015-Eliminate-IPv6-privacy-addresses-from-interface-name.patch @@ -1,7 +1,7 @@ From 476693678e778886b64d0b56e27eb7695cbcca99 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Wed, 17 Dec 2014 12:41:56 +0000 -Subject: [PATCH 15/55] Eliminate IPv6 privacy addresses from --interface-name +Subject: [PATCH 15/71] Eliminate IPv6 privacy addresses from --interface-name answers. --- diff --git a/src/patches/dnsmasq/0016-Tweak-field-width-in-cache-dump-to-avoid-truncating-.patch b/src/patches/dnsmasq/0016-Tweak-field-width-in-cache-dump-to-avoid-truncating-.patch index d072c0379..6b3537877 100644 --- a/src/patches/dnsmasq/0016-Tweak-field-width-in-cache-dump-to-avoid-truncating-.patch +++ b/src/patches/dnsmasq/0016-Tweak-field-width-in-cache-dump-to-avoid-truncating-.patch @@ -1,7 +1,7 @@ From 3267804598047bd1781cab91508d1bc516e5ddbb Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Wed, 17 Dec 2014 20:38:20 +0000 -Subject: [PATCH 16/55] Tweak field width in cache dump to avoid truncating +Subject: [PATCH 16/71] Tweak field width in cache dump to avoid truncating IPv6 addresses. --- diff --git a/src/patches/dnsmasq/0017-Fix-crash-in-DNSSEC-code-when-attempting-to-verify-l.patch b/src/patches/dnsmasq/0017-Fix-crash-in-DNSSEC-code-when-attempting-to-verify-l.patch index 944afaf15..01095a21d 100644 --- a/src/patches/dnsmasq/0017-Fix-crash-in-DNSSEC-code-when-attempting-to-verify-l.patch +++ b/src/patches/dnsmasq/0017-Fix-crash-in-DNSSEC-code-when-attempting-to-verify-l.patch @@ -1,7 +1,7 @@ From 094b5c3d904bae9aeb3206d9f3b8348926b84975 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 21 Dec 2014 16:11:52 +0000 -Subject: [PATCH 17/55] Fix crash in DNSSEC code when attempting to verify +Subject: [PATCH 17/71] Fix crash in DNSSEC code when attempting to verify large RRs. --- diff --git a/src/patches/dnsmasq/0018-Make-caching-work-for-CNAMEs-pointing-to-A-AAAA-reco.patch b/src/patches/dnsmasq/0018-Make-caching-work-for-CNAMEs-pointing-to-A-AAAA-reco.patch index de66adb9b..49adf8572 100644 --- a/src/patches/dnsmasq/0018-Make-caching-work-for-CNAMEs-pointing-to-A-AAAA-reco.patch +++ b/src/patches/dnsmasq/0018-Make-caching-work-for-CNAMEs-pointing-to-A-AAAA-reco.patch @@ -1,7 +1,7 @@ From cbc652423403e3cef00e00240f6beef713142246 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 21 Dec 2014 21:21:53 +0000 -Subject: [PATCH 18/55] Make caching work for CNAMEs pointing to A/AAAA records +Subject: [PATCH 18/71] Make caching work for CNAMEs pointing to A/AAAA records shadowed in /etc/hosts If the answer to an upstream query is a CNAME which points to an diff --git a/src/patches/dnsmasq/0019-Fix-problems-validating-NSEC3-and-wildcards.patch b/src/patches/dnsmasq/0019-Fix-problems-validating-NSEC3-and-wildcards.patch index 0ee2e657b..33e518033 100644 --- a/src/patches/dnsmasq/0019-Fix-problems-validating-NSEC3-and-wildcards.patch +++ b/src/patches/dnsmasq/0019-Fix-problems-validating-NSEC3-and-wildcards.patch @@ -1,7 +1,7 @@ From fbc5205702c7f6f431d9f1043c553d7fb62ddfdb Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 23 Dec 2014 15:46:08 +0000 -Subject: [PATCH 19/55] Fix problems validating NSEC3 and wildcards. +Subject: [PATCH 19/71] Fix problems validating NSEC3 and wildcards. --- src/dnssec.c | 253 ++++++++++++++++++++++++++++++----------------------------- diff --git a/src/patches/dnsmasq/0020-Initialise-return-value.patch b/src/patches/dnsmasq/0020-Initialise-return-value.patch index 2f70ee587..c0493df84 100644 --- a/src/patches/dnsmasq/0020-Initialise-return-value.patch +++ b/src/patches/dnsmasq/0020-Initialise-return-value.patch @@ -1,7 +1,7 @@ From 83d2ed09fc0216b567d7fb2197e4ff3eae150b0d Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 23 Dec 2014 18:42:38 +0000 -Subject: [PATCH 20/55] Initialise return value. +Subject: [PATCH 20/71] Initialise return value. --- src/dnssec.c | 7 +++++-- diff --git a/src/patches/dnsmasq/0021-Add-ignore-address-option.patch b/src/patches/dnsmasq/0021-Add-ignore-address-option.patch index 6c88f2d18..e5422a113 100644 --- a/src/patches/dnsmasq/0021-Add-ignore-address-option.patch +++ b/src/patches/dnsmasq/0021-Add-ignore-address-option.patch @@ -1,7 +1,7 @@ From 32fc6dbe03569d70dd394420ceb73532cf303c33 Mon Sep 17 00:00:00 2001 From: Glen Huang Date: Sat, 27 Dec 2014 15:28:12 +0000 -Subject: [PATCH 21/55] Add --ignore-address option. +Subject: [PATCH 21/71] Add --ignore-address option. --- CHANGELOG | 8 ++++++++ diff --git a/src/patches/dnsmasq/0022-Bad-packet-protection.patch b/src/patches/dnsmasq/0022-Bad-packet-protection.patch index 1b37202c4..1fbe54c29 100644 --- a/src/patches/dnsmasq/0022-Bad-packet-protection.patch +++ b/src/patches/dnsmasq/0022-Bad-packet-protection.patch @@ -1,7 +1,7 @@ From 0b1008d367d44e77352134a4c5178f896f0db3e7 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 27 Dec 2014 15:33:32 +0000 -Subject: [PATCH 22/55] Bad packet protection. +Subject: [PATCH 22/71] Bad packet protection. --- src/dnssec.c | 2 +- diff --git a/src/patches/dnsmasq/0023-Fix-build-failure-in-new-inotify-code-on-BSD.patch b/src/patches/dnsmasq/0023-Fix-build-failure-in-new-inotify-code-on-BSD.patch index 3bc3f7926..6e57877fd 100644 --- a/src/patches/dnsmasq/0023-Fix-build-failure-in-new-inotify-code-on-BSD.patch +++ b/src/patches/dnsmasq/0023-Fix-build-failure-in-new-inotify-code-on-BSD.patch @@ -1,7 +1,7 @@ From d310ab7ecbffce79d3d90debba621e0222f9bced Mon Sep 17 00:00:00 2001 From: Matthias Andree Date: Sat, 27 Dec 2014 15:36:38 +0000 -Subject: [PATCH 23/55] Fix build failure in new inotify code on BSD. +Subject: [PATCH 23/71] Fix build failure in new inotify code on BSD. --- src/inotify.c | 4 ++-- diff --git a/src/patches/dnsmasq/0024-Implement-makefile-dependencies-on-COPTS-variable.patch b/src/patches/dnsmasq/0024-Implement-makefile-dependencies-on-COPTS-variable.patch index e3074fa3e..867a95d5a 100644 --- a/src/patches/dnsmasq/0024-Implement-makefile-dependencies-on-COPTS-variable.patch +++ b/src/patches/dnsmasq/0024-Implement-makefile-dependencies-on-COPTS-variable.patch @@ -1,7 +1,7 @@ From 81c538efcebfce2ce4a1d3a420b6c885b8f08df9 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Sat, 3 Jan 2015 16:36:14 +0000 -Subject: [PATCH 24/55] Implement makefile dependencies on COPTS variable. +Subject: [PATCH 24/71] Implement makefile dependencies on COPTS variable. --- .gitignore | 2 +- diff --git a/src/patches/dnsmasq/0025-Fix-race-condition-issue-in-makefile.patch b/src/patches/dnsmasq/0025-Fix-race-condition-issue-in-makefile.patch index b1c42aef4..4a379c1a7 100644 --- a/src/patches/dnsmasq/0025-Fix-race-condition-issue-in-makefile.patch +++ b/src/patches/dnsmasq/0025-Fix-race-condition-issue-in-makefile.patch @@ -1,7 +1,7 @@ From d8dbd903d024f84a149dac2f8a674a68dfed47a3 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Mon, 5 Jan 2015 17:03:35 +0000 -Subject: [PATCH 25/55] Fix race condition issue in makefile. +Subject: [PATCH 25/71] Fix race condition issue in makefile. --- Makefile | 4 +++- diff --git a/src/patches/dnsmasq/0026-DNSSEC-do-top-down-search-for-limit-of-secure-delega.patch b/src/patches/dnsmasq/0026-DNSSEC-do-top-down-search-for-limit-of-secure-delega.patch index 7f01ee73e..837c124f5 100644 --- a/src/patches/dnsmasq/0026-DNSSEC-do-top-down-search-for-limit-of-secure-delega.patch +++ b/src/patches/dnsmasq/0026-DNSSEC-do-top-down-search-for-limit-of-secure-delega.patch @@ -1,7 +1,7 @@ From 97e618a0e3f29465acc689d87288596b006f197e Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Wed, 7 Jan 2015 21:55:43 +0000 -Subject: [PATCH 26/55] DNSSEC: do top-down search for limit of secure +Subject: [PATCH 26/71] DNSSEC: do top-down search for limit of secure delegation. --- diff --git a/src/patches/dnsmasq/0027-Add-log-queries-extra-option-for-more-complete-loggi.patch b/src/patches/dnsmasq/0027-Add-log-queries-extra-option-for-more-complete-loggi.patch index e258d56da..23b94711a 100644 --- a/src/patches/dnsmasq/0027-Add-log-queries-extra-option-for-more-complete-loggi.patch +++ b/src/patches/dnsmasq/0027-Add-log-queries-extra-option-for-more-complete-loggi.patch @@ -1,7 +1,7 @@ From 25cf5e373eb41c088d4ee5e625209c4cf6a5659e Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Fri, 9 Jan 2015 15:53:03 +0000 -Subject: [PATCH 27/55] Add --log-queries=extra option for more complete +Subject: [PATCH 27/71] Add --log-queries=extra option for more complete logging. --- diff --git a/src/patches/dnsmasq/0028-Add-min-cache-ttl-option.patch b/src/patches/dnsmasq/0028-Add-min-cache-ttl-option.patch index e8a61b7c1..6f7f27cb6 100644 --- a/src/patches/dnsmasq/0028-Add-min-cache-ttl-option.patch +++ b/src/patches/dnsmasq/0028-Add-min-cache-ttl-option.patch @@ -1,7 +1,7 @@ From 28de38768e2c7d763b9aa5b7a4d251d5e56bab0b Mon Sep 17 00:00:00 2001 From: RinSatsuki Date: Sat, 10 Jan 2015 15:22:21 +0000 -Subject: [PATCH 28/55] Add --min-cache-ttl option. +Subject: [PATCH 28/71] Add --min-cache-ttl option. --- CHANGELOG | 7 +++++++ diff --git a/src/patches/dnsmasq/0029-Log-port-of-requestor-when-doing-extra-logging.patch b/src/patches/dnsmasq/0029-Log-port-of-requestor-when-doing-extra-logging.patch index d3c484727..4834269e6 100644 --- a/src/patches/dnsmasq/0029-Log-port-of-requestor-when-doing-extra-logging.patch +++ b/src/patches/dnsmasq/0029-Log-port-of-requestor-when-doing-extra-logging.patch @@ -1,7 +1,7 @@ From 9f79ee4ae34886c0319f06d8f162b81ef79d62fb Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 12 Jan 2015 20:18:18 +0000 -Subject: [PATCH 29/55] Log port of requestor when doing extra logging. +Subject: [PATCH 29/71] Log port of requestor when doing extra logging. --- src/cache.c | 6 +++--- diff --git a/src/patches/dnsmasq/0030-Don-t-answer-from-cache-RRsets-from-wildcards-as-we-.patch b/src/patches/dnsmasq/0030-Don-t-answer-from-cache-RRsets-from-wildcards-as-we-.patch index 5f489e214..fef0e1162 100644 --- a/src/patches/dnsmasq/0030-Don-t-answer-from-cache-RRsets-from-wildcards-as-we-.patch +++ b/src/patches/dnsmasq/0030-Don-t-answer-from-cache-RRsets-from-wildcards-as-we-.patch @@ -1,7 +1,7 @@ From 5e321739db381a1d7b5964d76e9c81471d2564c9 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 12 Jan 2015 23:16:56 +0000 -Subject: [PATCH 30/55] Don't answer from cache RRsets from wildcards, as we +Subject: [PATCH 30/71] Don't answer from cache RRsets from wildcards, as we don't have NSECs. --- diff --git a/src/patches/dnsmasq/0031-Logs-for-DS-records-consistent.patch b/src/patches/dnsmasq/0031-Logs-for-DS-records-consistent.patch index 1a2d3e464..8ebe4696a 100644 --- a/src/patches/dnsmasq/0031-Logs-for-DS-records-consistent.patch +++ b/src/patches/dnsmasq/0031-Logs-for-DS-records-consistent.patch @@ -1,7 +1,7 @@ From ae4624bf46b5e37ff1a9a2ba3c927e0dede95adb Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 12 Jan 2015 23:22:08 +0000 -Subject: [PATCH 31/55] Logs for DS records consistent. +Subject: [PATCH 31/71] Logs for DS records consistent. --- src/rfc1035.c | 2 +- diff --git a/src/patches/dnsmasq/0032-Cope-with-multiple-interfaces-with-the-same-LL-addre.patch b/src/patches/dnsmasq/0032-Cope-with-multiple-interfaces-with-the-same-LL-addre.patch index 81b02cc47..60a44b9a7 100644 --- a/src/patches/dnsmasq/0032-Cope-with-multiple-interfaces-with-the-same-LL-addre.patch +++ b/src/patches/dnsmasq/0032-Cope-with-multiple-interfaces-with-the-same-LL-addre.patch @@ -1,7 +1,7 @@ From 393415597c8b5b09558b789ab9ac238dbe3db65d Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 18 Jan 2015 22:11:10 +0000 -Subject: [PATCH 32/55] Cope with multiple interfaces with the same LL address. +Subject: [PATCH 32/71] Cope with multiple interfaces with the same LL address. --- CHANGELOG | 4 ++++ diff --git a/src/patches/dnsmasq/0033-Don-t-treat-SERVFAIL-as-a-recoverable-error.patch b/src/patches/dnsmasq/0033-Don-t-treat-SERVFAIL-as-a-recoverable-error.patch index e88a94b96..f426e8f05 100644 --- a/src/patches/dnsmasq/0033-Don-t-treat-SERVFAIL-as-a-recoverable-error.patch +++ b/src/patches/dnsmasq/0033-Don-t-treat-SERVFAIL-as-a-recoverable-error.patch @@ -1,7 +1,7 @@ From 2ae195f5a71f7c5a75717845de1bd72fc7dd67f3 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 18 Jan 2015 22:20:48 +0000 -Subject: [PATCH 33/55] Don't treat SERVFAIL as a recoverable error..... +Subject: [PATCH 33/71] Don't treat SERVFAIL as a recoverable error..... --- src/forward.c | 2 +- diff --git a/src/patches/dnsmasq/0034-Add-dhcp-hostsdir-config-option.patch b/src/patches/dnsmasq/0034-Add-dhcp-hostsdir-config-option.patch index c6b6703b0..53780b28c 100644 --- a/src/patches/dnsmasq/0034-Add-dhcp-hostsdir-config-option.patch +++ b/src/patches/dnsmasq/0034-Add-dhcp-hostsdir-config-option.patch @@ -1,7 +1,7 @@ From 5f4dc5c6ca50655ab14f572c7e30815ed74cd51a Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 20 Jan 2015 20:51:02 +0000 -Subject: [PATCH 34/55] Add --dhcp-hostsdir config option. +Subject: [PATCH 34/71] Add --dhcp-hostsdir config option. --- CHANGELOG | 5 +++ diff --git a/src/patches/dnsmasq/0035-Update-German-translation.patch b/src/patches/dnsmasq/0035-Update-German-translation.patch index af45a1c3e..2d18e760d 100644 --- a/src/patches/dnsmasq/0035-Update-German-translation.patch +++ b/src/patches/dnsmasq/0035-Update-German-translation.patch @@ -1,7 +1,7 @@ From fbf01f7046e75f9aa73fd4aab2a94e43386d9052 Mon Sep 17 00:00:00 2001 From: Conrad Kostecki Date: Tue, 20 Jan 2015 21:07:56 +0000 -Subject: [PATCH 35/55] Update German translation. +Subject: [PATCH 35/71] Update German translation. --- po/de.po | 101 +++++++++++++++++++++++++++++---------------------------------- diff --git a/src/patches/dnsmasq/0036-Don-t-reply-to-DHCPv6-SOLICIT-messages-when-not-conf.patch b/src/patches/dnsmasq/0036-Don-t-reply-to-DHCPv6-SOLICIT-messages-when-not-conf.patch index 25007de58..ffe4cf6cb 100644 --- a/src/patches/dnsmasq/0036-Don-t-reply-to-DHCPv6-SOLICIT-messages-when-not-conf.patch +++ b/src/patches/dnsmasq/0036-Don-t-reply-to-DHCPv6-SOLICIT-messages-when-not-conf.patch @@ -1,7 +1,7 @@ From 61b838dd574c51d96fef100285a0d225824534f9 Mon Sep 17 00:00:00 2001 From: Win King Wan Date: Wed, 21 Jan 2015 20:41:48 +0000 -Subject: [PATCH 36/55] Don't reply to DHCPv6 SOLICIT messages when not +Subject: [PATCH 36/71] Don't reply to DHCPv6 SOLICIT messages when not configured for statefull DHCPv6. --- diff --git a/src/patches/dnsmasq/0037-Allow-inotify-to-be-disabled-at-compile-time-on-Linu.patch b/src/patches/dnsmasq/0037-Allow-inotify-to-be-disabled-at-compile-time-on-Linu.patch index 731868871..3cd799971 100644 --- a/src/patches/dnsmasq/0037-Allow-inotify-to-be-disabled-at-compile-time-on-Linu.patch +++ b/src/patches/dnsmasq/0037-Allow-inotify-to-be-disabled-at-compile-time-on-Linu.patch @@ -1,7 +1,7 @@ From 0491805d2ff6e7727f0272c94fd97d9897d1e22c Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 26 Jan 2015 11:23:43 +0000 -Subject: [PATCH 37/55] Allow inotify to be disabled at compile time on Linux. +Subject: [PATCH 37/71] Allow inotify to be disabled at compile time on Linux. --- CHANGELOG | 4 +++- diff --git a/src/patches/dnsmasq/0038-Expand-inotify-code-to-dhcp-hostsdir-dhcp-optsdir-an.patch b/src/patches/dnsmasq/0038-Expand-inotify-code-to-dhcp-hostsdir-dhcp-optsdir-an.patch index 75140347b..08eb5b553 100644 --- a/src/patches/dnsmasq/0038-Expand-inotify-code-to-dhcp-hostsdir-dhcp-optsdir-an.patch +++ b/src/patches/dnsmasq/0038-Expand-inotify-code-to-dhcp-hostsdir-dhcp-optsdir-an.patch @@ -1,7 +1,7 @@ From 70d1873dd9e70041ed4bb88c69d5b886b7cc634c Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 31 Jan 2015 19:59:29 +0000 -Subject: [PATCH 38/55] Expand inotify code to dhcp-hostsdir, dhcp-optsdir and +Subject: [PATCH 38/71] Expand inotify code to dhcp-hostsdir, dhcp-optsdir and hostsdir. --- diff --git a/src/patches/dnsmasq/0039-Update-copyrights-for-dawn-of-2015.patch b/src/patches/dnsmasq/0039-Update-copyrights-for-dawn-of-2015.patch index 11bde00b0..7303df472 100644 --- a/src/patches/dnsmasq/0039-Update-copyrights-for-dawn-of-2015.patch +++ b/src/patches/dnsmasq/0039-Update-copyrights-for-dawn-of-2015.patch @@ -1,7 +1,7 @@ From aff3396280e944833f0e23d834aa6acd5fe2605a Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 31 Jan 2015 20:13:40 +0000 -Subject: [PATCH 39/55] Update copyrights for dawn of 2015. +Subject: [PATCH 39/71] Update copyrights for dawn of 2015. --- Makefile | 2 +- diff --git a/src/patches/dnsmasq/0040-inotify-documentation-updates.patch b/src/patches/dnsmasq/0040-inotify-documentation-updates.patch index 981e553e9..9c3ac9c54 100644 --- a/src/patches/dnsmasq/0040-inotify-documentation-updates.patch +++ b/src/patches/dnsmasq/0040-inotify-documentation-updates.patch @@ -1,7 +1,7 @@ From 3d04f46334d0e345f589eda1372e638b946fe637 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 31 Jan 2015 21:59:13 +0000 -Subject: [PATCH 40/55] inotify documentation updates. +Subject: [PATCH 40/71] inotify documentation updates. --- man/dnsmasq.8 | 11 +++++++++-- diff --git a/src/patches/dnsmasq/0041-Fix-broken-ECDSA-DNSSEC-signatures.patch b/src/patches/dnsmasq/0041-Fix-broken-ECDSA-DNSSEC-signatures.patch index 0c8aa9be3..1fc1c73f0 100644 --- a/src/patches/dnsmasq/0041-Fix-broken-ECDSA-DNSSEC-signatures.patch +++ b/src/patches/dnsmasq/0041-Fix-broken-ECDSA-DNSSEC-signatures.patch @@ -1,7 +1,7 @@ From 6ef15b34ca83c62a939f69356d5c3f7a6bfef3d0 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 31 Jan 2015 22:44:26 +0000 -Subject: [PATCH 41/55] Fix broken ECDSA DNSSEC signatures. +Subject: [PATCH 41/71] Fix broken ECDSA DNSSEC signatures. --- CHANGELOG | 2 ++ diff --git a/src/patches/dnsmasq/0042-BSD-make-support.patch b/src/patches/dnsmasq/0042-BSD-make-support.patch index 76f76ef75..750f113b1 100644 --- a/src/patches/dnsmasq/0042-BSD-make-support.patch +++ b/src/patches/dnsmasq/0042-BSD-make-support.patch @@ -1,7 +1,7 @@ From 106266761828a0acb006346ae47bf031dee46a5d Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 1 Feb 2015 00:15:16 +0000 -Subject: [PATCH 42/55] BSD make support +Subject: [PATCH 42/71] BSD make support --- Makefile | 6 ++++-- diff --git a/src/patches/dnsmasq/0043-Fix-build-failure-on-openBSD.patch b/src/patches/dnsmasq/0043-Fix-build-failure-on-openBSD.patch index a3df61b89..aa55fe28f 100644 --- a/src/patches/dnsmasq/0043-Fix-build-failure-on-openBSD.patch +++ b/src/patches/dnsmasq/0043-Fix-build-failure-on-openBSD.patch @@ -1,7 +1,7 @@ From 8d8a54ec79d9f96979fabbd97b1dd2ddebc7d78f Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 1 Feb 2015 21:48:46 +0000 -Subject: [PATCH 43/55] Fix build failure on openBSD. +Subject: [PATCH 43/71] Fix build failure on openBSD. --- src/tables.c | 2 +- diff --git a/src/patches/dnsmasq/0044-Manpage-typo-fix.patch b/src/patches/dnsmasq/0044-Manpage-typo-fix.patch index e0e384f54..bbc4d4873 100644 --- a/src/patches/dnsmasq/0044-Manpage-typo-fix.patch +++ b/src/patches/dnsmasq/0044-Manpage-typo-fix.patch @@ -1,7 +1,7 @@ From d36b732c4cfa91ea09af64b5dc0f3a85a075e5bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thi=C3=A9baud=20Weksteen?= Date: Mon, 2 Feb 2015 21:37:27 +0000 -Subject: [PATCH 44/55] Manpage typo fix. +Subject: [PATCH 44/71] Manpage typo fix. --- man/dnsmasq.8 | 2 +- diff --git a/src/patches/dnsmasq/0045-Fixup-dhcp-configs-after-reading-extra-hostfiles-wit.patch b/src/patches/dnsmasq/0045-Fixup-dhcp-configs-after-reading-extra-hostfiles-wit.patch index fc1b98a70..2d43b9311 100644 --- a/src/patches/dnsmasq/0045-Fixup-dhcp-configs-after-reading-extra-hostfiles-wit.patch +++ b/src/patches/dnsmasq/0045-Fixup-dhcp-configs-after-reading-extra-hostfiles-wit.patch @@ -1,7 +1,7 @@ From 2941d3ac898cf84b544e47c9735c5e4111711db1 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 2 Feb 2015 22:36:42 +0000 -Subject: [PATCH 45/55] Fixup dhcp-configs after reading extra hostfiles with +Subject: [PATCH 45/71] Fixup dhcp-configs after reading extra hostfiles with inotify. --- diff --git a/src/patches/dnsmasq/0046-Extra-logging-for-inotify-code.patch b/src/patches/dnsmasq/0046-Extra-logging-for-inotify-code.patch index 803174af0..8b173f275 100644 --- a/src/patches/dnsmasq/0046-Extra-logging-for-inotify-code.patch +++ b/src/patches/dnsmasq/0046-Extra-logging-for-inotify-code.patch @@ -1,7 +1,7 @@ From f9c863708c6b0aea31ff7a466647685dc739de50 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 3 Feb 2015 21:52:48 +0000 -Subject: [PATCH 46/55] Extra logging for inotify code. +Subject: [PATCH 46/71] Extra logging for inotify code. --- src/cache.c | 9 ++++----- diff --git a/src/patches/dnsmasq/0047-man-page-typo.patch b/src/patches/dnsmasq/0047-man-page-typo.patch index 6606a7ac4..9710dfb09 100644 --- a/src/patches/dnsmasq/0047-man-page-typo.patch +++ b/src/patches/dnsmasq/0047-man-page-typo.patch @@ -1,7 +1,7 @@ From efb8b5566aafc1f3ce18514a2df93af5a2e4998c Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 7 Feb 2015 22:36:34 +0000 -Subject: [PATCH 47/55] man page typo. +Subject: [PATCH 47/71] man page typo. --- man/dnsmasq.8 | 1 + diff --git a/src/patches/dnsmasq/0048-Fix-get-version-script-which-returned-wrong-tag-in-s.patch b/src/patches/dnsmasq/0048-Fix-get-version-script-which-returned-wrong-tag-in-s.patch index 5633d9d00..fb7753c67 100644 --- a/src/patches/dnsmasq/0048-Fix-get-version-script-which-returned-wrong-tag-in-s.patch +++ b/src/patches/dnsmasq/0048-Fix-get-version-script-which-returned-wrong-tag-in-s.patch @@ -1,7 +1,7 @@ From f4f400776b3c1aa303d1a0fcd500f0ab5bc970f2 Mon Sep 17 00:00:00 2001 From: Shantanu Gadgil Date: Wed, 11 Feb 2015 20:16:59 +0000 -Subject: [PATCH 48/55] Fix get-version script which returned wrong tag in some +Subject: [PATCH 48/71] Fix get-version script which returned wrong tag in some situations. --- diff --git a/src/patches/dnsmasq/0049-Typos.patch b/src/patches/dnsmasq/0049-Typos.patch index 8f64b39d5..c843bf25e 100644 --- a/src/patches/dnsmasq/0049-Typos.patch +++ b/src/patches/dnsmasq/0049-Typos.patch @@ -1,7 +1,7 @@ From 8ff70de618eb7de9147dbfbd4deca4a2dd62f0cb Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 14 Feb 2015 20:02:37 +0000 -Subject: [PATCH 49/55] Typos. +Subject: [PATCH 49/71] Typos. --- src/inotify.c | 3 ++- diff --git a/src/patches/dnsmasq/0050-Make-dynamic-hosts-files-work-when-no-hosts-set.patch b/src/patches/dnsmasq/0050-Make-dynamic-hosts-files-work-when-no-hosts-set.patch index af7980202..7b9a1b3d2 100644 --- a/src/patches/dnsmasq/0050-Make-dynamic-hosts-files-work-when-no-hosts-set.patch +++ b/src/patches/dnsmasq/0050-Make-dynamic-hosts-files-work-when-no-hosts-set.patch @@ -1,7 +1,7 @@ From caeea190f12efd20139f694aac4942d1ac00019f Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 14 Feb 2015 20:08:56 +0000 -Subject: [PATCH 50/55] Make dynamic hosts files work when --no-hosts set. +Subject: [PATCH 50/71] Make dynamic hosts files work when --no-hosts set. --- src/cache.c | 21 +++++++++++---------- diff --git a/src/patches/dnsmasq/0051-Fix-trivial-memory-leaks-to-quieten-valgrind.patch b/src/patches/dnsmasq/0051-Fix-trivial-memory-leaks-to-quieten-valgrind.patch index 2c38cfc1a..a65ed2161 100644 --- a/src/patches/dnsmasq/0051-Fix-trivial-memory-leaks-to-quieten-valgrind.patch +++ b/src/patches/dnsmasq/0051-Fix-trivial-memory-leaks-to-quieten-valgrind.patch @@ -1,7 +1,7 @@ From 28b879ac47b872af6e8c5e86d76806c69338434d Mon Sep 17 00:00:00 2001 From: Chen Wei Date: Tue, 17 Feb 2015 22:07:35 +0000 -Subject: [PATCH 51/55] Fix trivial memory leaks to quieten valgrind. +Subject: [PATCH 51/71] Fix trivial memory leaks to quieten valgrind. --- src/dnsmasq.c | 2 ++ diff --git a/src/patches/dnsmasq/0052-Fix-uninitialized-value-used-in-get_client_mac.patch b/src/patches/dnsmasq/0052-Fix-uninitialized-value-used-in-get_client_mac.patch index 46277fb4a..69aeb9277 100644 --- a/src/patches/dnsmasq/0052-Fix-uninitialized-value-used-in-get_client_mac.patch +++ b/src/patches/dnsmasq/0052-Fix-uninitialized-value-used-in-get_client_mac.patch @@ -1,7 +1,7 @@ From 0705a7e2d57654b27c7e14f35ca77241c1821f4d Mon Sep 17 00:00:00 2001 From: Tomas Hozza Date: Mon, 23 Feb 2015 21:26:26 +0000 -Subject: [PATCH 52/55] Fix uninitialized value used in get_client_mac() +Subject: [PATCH 52/71] Fix uninitialized value used in get_client_mac() --- src/dhcp6.c | 4 +++- diff --git a/src/patches/dnsmasq/0053-Log-parsing-utils-in-contrib-reverse-dns.patch b/src/patches/dnsmasq/0053-Log-parsing-utils-in-contrib-reverse-dns.patch index 95270301f..b37498edc 100644 --- a/src/patches/dnsmasq/0053-Log-parsing-utils-in-contrib-reverse-dns.patch +++ b/src/patches/dnsmasq/0053-Log-parsing-utils-in-contrib-reverse-dns.patch @@ -1,15 +1,13 @@ From 47b9ac59c715827252ae6e6732903c3dabb697fb Mon Sep 17 00:00:00 2001 From: Joachim Zobel Date: Mon, 23 Feb 2015 21:38:11 +0000 -Subject: [PATCH 53/55] Log parsing utils in contrib/reverse-dns +Subject: [PATCH 53/71] Log parsing utils in contrib/reverse-dns --- contrib/reverse-dns/README | 18 ++++++++++++++++++ - contrib/reverse-dns/reverse_dns.sh | 29 +++++++++++++++++++++++++++++ contrib/reverse-dns/reverse_replace.sh | 28 ++++++++++++++++++++++++++++ - 3 files changed, 75 insertions(+) + 2 files changed, 46 insertions(+) create mode 100644 contrib/reverse-dns/README - create mode 100644 contrib/reverse-dns/reverse_dns.sh create mode 100644 contrib/reverse-dns/reverse_replace.sh diff --git a/contrib/reverse-dns/README b/contrib/reverse-dns/README @@ -36,41 +34,6 @@ index 000000000000..f87eb77c4c22 +Joachim + + -diff --git a/contrib/reverse-dns/reverse_dns.sh b/contrib/reverse-dns/reverse_dns.sh -new file mode 100644 -index 000000000000..c0fff300a947 ---- /dev/null -+++ b/contrib/reverse-dns/reverse_dns.sh -@@ -0,0 +1,29 @@ -+#!/bin/bash -+# $Id: reverse_dns.sh 4 2015-02-17 20:14:59Z jo $ -+# -+# Usage: reverse_dns.sh IP -+# Uses the dnsmasq query log to lookup the name -+# that was last queried to return the given IP. -+# -+ -+IP=$1 -+qmIP=`echo $IP | sed 's#\.#\\.#g'` -+LOG=/var/log/dnsmasq.log -+ -+IP_regex='^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' -+ -+if ! [[ $IP =~ $IP_regex ]]; then -+ echo -n $IP -+ exit -+fi -+ -+NAME=`tac $LOG | \ -+ grep " is $IP" | head -1 | \ -+ sed "s#.* \([^ ]*\) is $qmIP.*#\1#" ` -+ -+if [ -z "$NAME" ]; then -+ echo -n $IP -+else -+ echo -n $NAME -+fi -+ diff --git a/contrib/reverse-dns/reverse_replace.sh b/contrib/reverse-dns/reverse_replace.sh new file mode 100644 index 000000000000..a11c164b7f19 diff --git a/src/patches/dnsmasq/0054-Add-dnssec-timestamp-option-and-facility.patch b/src/patches/dnsmasq/0054-Add-dnssec-timestamp-option-and-facility.patch index 2ff79d526..507344055 100644 --- a/src/patches/dnsmasq/0054-Add-dnssec-timestamp-option-and-facility.patch +++ b/src/patches/dnsmasq/0054-Add-dnssec-timestamp-option-and-facility.patch @@ -1,7 +1,7 @@ From f6e62e2af96f5fa0d1e3d93167a93a8f09bf6e61 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 1 Mar 2015 18:17:54 +0000 -Subject: [PATCH 54/55] Add --dnssec-timestamp option and facility. +Subject: [PATCH 54/71] Add --dnssec-timestamp option and facility. --- CHANGELOG | 6 +++++ diff --git a/src/patches/dnsmasq/0055-Fix-last-commit-to-not-crash-if-uid-changing-not-con.patch b/src/patches/dnsmasq/0055-Fix-last-commit-to-not-crash-if-uid-changing-not-con.patch index 54bb5d597..768e14a9c 100644 --- a/src/patches/dnsmasq/0055-Fix-last-commit-to-not-crash-if-uid-changing-not-con.patch +++ b/src/patches/dnsmasq/0055-Fix-last-commit-to-not-crash-if-uid-changing-not-con.patch @@ -1,7 +1,7 @@ From 9003b50b13da624ca45f3e0cf99abb623b8d026b Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 2 Mar 2015 22:47:23 +0000 -Subject: [PATCH 55/55] Fix last commit to not crash if uid changing not +Subject: [PATCH 55/71] Fix last commit to not crash if uid changing not configured. --- diff --git a/src/patches/dnsmasq/0056-New-version-of-contrib-reverse-dns.patch b/src/patches/dnsmasq/0056-New-version-of-contrib-reverse-dns.patch index 9a052152c..d39a058ed 100644 --- a/src/patches/dnsmasq/0056-New-version-of-contrib-reverse-dns.patch +++ b/src/patches/dnsmasq/0056-New-version-of-contrib-reverse-dns.patch @@ -1,7 +1,7 @@ From 4c960fa90a975d20f75a1ecabd217247f1922c8f Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Wed, 4 Mar 2015 20:32:26 +0000 -Subject: [PATCH 56/57] New version of contrib/reverse-dns +Subject: [PATCH 56/71] New version of contrib/reverse-dns --- contrib/reverse-dns/README | 22 +++--- diff --git a/src/patches/dnsmasq/0057-Tweak-DNSSEC-timestamp-code-to-create-file-later-rem.patch b/src/patches/dnsmasq/0057-Tweak-DNSSEC-timestamp-code-to-create-file-later-rem.patch index df47cd0e3..462d57250 100644 --- a/src/patches/dnsmasq/0057-Tweak-DNSSEC-timestamp-code-to-create-file-later-rem.patch +++ b/src/patches/dnsmasq/0057-Tweak-DNSSEC-timestamp-code-to-create-file-later-rem.patch @@ -1,7 +1,7 @@ From 360f2513ab12a9bf1e262d388dd2ea8a566590a3 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 7 Mar 2015 18:28:06 +0000 -Subject: [PATCH 57/57] Tweak DNSSEC timestamp code to create file later, +Subject: [PATCH 57/71] Tweak DNSSEC timestamp code to create file later, removing need to chown it. --- diff --git a/src/patches/dnsmasq/0058-Fix-boilerplate-code-for-re-running-system-calls-on-.patch b/src/patches/dnsmasq/0058-Fix-boilerplate-code-for-re-running-system-calls-on-.patch new file mode 100644 index 000000000..aa30241ae --- /dev/null +++ b/src/patches/dnsmasq/0058-Fix-boilerplate-code-for-re-running-system-calls-on-.patch @@ -0,0 +1,458 @@ +From ff841ebf5a5d6864ff48571f607c32ce80dbb75a Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Wed, 11 Mar 2015 21:36:30 +0000 +Subject: [PATCH 58/71] Fix boilerplate code for re-running system calls on + EINTR and EAGAIN etc. + +The nasty code with static variable in retry_send() which +avoids looping forever needs to be called on success of the syscall, +to reset the static variable. +--- + src/bpf.c | 2 +- + src/dhcp.c | 2 +- + src/dhcp6.c | 6 +++--- + src/dnsmasq.c | 35 +++++++++++++++++---------------- + src/dnsmasq.h | 2 +- + src/forward.c | 41 ++++++++++++++++++-------------------- + src/ipset.c | 8 ++++---- + src/loop.c | 5 +++-- + src/netlink.c | 8 ++++---- + src/radv.c | 5 +++-- + src/util.c | 63 ++++++++++++++++++++++++++++++++++------------------------- + 11 files changed, 93 insertions(+), 84 deletions(-) + +diff --git a/src/bpf.c b/src/bpf.c +index 997d87421bed..a066641f969f 100644 +--- a/src/bpf.c ++++ b/src/bpf.c +@@ -359,7 +359,7 @@ void send_via_bpf(struct dhcp_packet *mess, size_t len, + iov[3].iov_base = mess; + iov[3].iov_len = len; + +- while (writev(daemon->dhcp_raw_fd, iov, 4) == -1 && retry_send()); ++ while (retry_send(writev(daemon->dhcp_raw_fd, iov, 4))); + } + + #endif /* defined(HAVE_BSD_NETWORK) && defined(HAVE_DHCP) */ +diff --git a/src/dhcp.c b/src/dhcp.c +index f29be9b489a7..5c3089ab94ff 100644 +--- a/src/dhcp.c ++++ b/src/dhcp.c +@@ -443,7 +443,7 @@ void dhcp_packet(time_t now, int pxe_fd) + setsockopt(fd, IPPROTO_IP, IP_BOUND_IF, &iface_index, sizeof(iface_index)); + #endif + +- while(sendmsg(fd, &msg, 0) == -1 && retry_send()); ++ while(retry_send(sendmsg(fd, &msg, 0))); + } + + /* check against secondary interface addresses */ +diff --git a/src/dhcp6.c b/src/dhcp6.c +index c7144f5fee7c..ee2aa5d3bf3c 100644 +--- a/src/dhcp6.c ++++ b/src/dhcp6.c +@@ -225,9 +225,9 @@ void dhcp6_packet(time_t now) + if (port != 0) + { + from.sin6_port = htons(port); +- while (sendto(daemon->dhcp6fd, daemon->outpacket.iov_base, save_counter(0), +- 0, (struct sockaddr *)&from, sizeof(from)) == -1 && +- retry_send()); ++ while (retry_send(sendto(daemon->dhcp6fd, daemon->outpacket.iov_base, ++ save_counter(0), 0, (struct sockaddr *)&from, ++ sizeof(from)))); + } + } + +diff --git a/src/dnsmasq.c b/src/dnsmasq.c +index f3e5bcffec4f..b784951950d4 100644 +--- a/src/dnsmasq.c ++++ b/src/dnsmasq.c +@@ -444,7 +444,7 @@ int main (int argc, char **argv) + char *msg; + + /* close our copy of write-end */ +- close(err_pipe[1]); ++ while (retry_send(close(err_pipe[1]))); + + /* check for errors after the fork */ + if (read_event(err_pipe[0], &ev, &msg)) +@@ -453,7 +453,7 @@ int main (int argc, char **argv) + _exit(EC_GOOD); + } + +- close(err_pipe[0]); ++ while (retry_send(close(err_pipe[0]))); + + /* NO calls to die() from here on. */ + +@@ -505,10 +505,12 @@ int main (int argc, char **argv) + { + if (!read_write(fd, (unsigned char *)daemon->namebuff, strlen(daemon->namebuff), 0)) + err = 1; +- +- while (!err && close(fd) == -1) +- if (!retry_send()) +- err = 1; ++ else ++ { ++ while (retry_send(close(fd))); ++ if (errno != 0) ++ err = 1; ++ } + } + + if (err) +@@ -813,7 +815,7 @@ int main (int argc, char **argv) + + /* finished start-up - release original process */ + if (err_pipe[1] != -1) +- close(err_pipe[1]); ++ while (retry_send(close(err_pipe[1]))); + + if (daemon->port != 0) + check_servers(); +@@ -1319,7 +1321,7 @@ static void async_event(int pipe, time_t now) + do { + helper_write(); + } while (!helper_buf_empty() || do_script_run(now)); +- close(daemon->helperfd); ++ while (retry_send(close(daemon->helperfd))); + } + #endif + +@@ -1544,7 +1546,7 @@ static void check_dns_listeners(fd_set *set, time_t now) + + if (getsockname(confd, (struct sockaddr *)&tcp_addr, &tcp_len) == -1) + { +- close(confd); ++ while (retry_send(close(confd))); + continue; + } + +@@ -1609,7 +1611,7 @@ static void check_dns_listeners(fd_set *set, time_t now) + if (!client_ok) + { + shutdown(confd, SHUT_RDWR); +- close(confd); ++ while (retry_send(close(confd))); + } + #ifndef NO_FORK + else if (!option_bool(OPT_DEBUG) && (p = fork()) != 0) +@@ -1624,7 +1626,7 @@ static void check_dns_listeners(fd_set *set, time_t now) + break; + } + } +- close(confd); ++ while (retry_send(close(confd))); + + /* The child can use up to TCP_MAX_QUERIES ids, so skip that many. */ + daemon->log_id += TCP_MAX_QUERIES; +@@ -1669,7 +1671,7 @@ static void check_dns_listeners(fd_set *set, time_t now) + buff = tcp_request(confd, now, &tcp_addr, netmask, auth_dns); + + shutdown(confd, SHUT_RDWR); +- close(confd); ++ while (retry_send(close(confd))); + + if (buff) + free(buff); +@@ -1678,7 +1680,7 @@ static void check_dns_listeners(fd_set *set, time_t now) + if (s->tcpfd != -1) + { + shutdown(s->tcpfd, SHUT_RDWR); +- close(s->tcpfd); ++ while (retry_send(close(s->tcpfd))); + } + #ifndef NO_FORK + if (!option_bool(OPT_DEBUG)) +@@ -1756,9 +1758,8 @@ int icmp_ping(struct in_addr addr) + j = (j & 0xffff) + (j >> 16); + packet.icmp.icmp_cksum = (j == 0xffff) ? j : ~j; + +- while (sendto(fd, (char *)&packet.icmp, sizeof(struct icmp), 0, +- (struct sockaddr *)&saddr, sizeof(saddr)) == -1 && +- retry_send()); ++ while (retry_send(sendto(fd, (char *)&packet.icmp, sizeof(struct icmp), 0, ++ (struct sockaddr *)&saddr, sizeof(saddr)))); + + for (now = start = dnsmasq_time(); + difftime(now, start) < (float)PING_WAIT;) +@@ -1820,7 +1821,7 @@ int icmp_ping(struct in_addr addr) + } + + #if defined(HAVE_LINUX_NETWORK) || defined(HAVE_SOLARIS_NETWORK) +- close(fd); ++ while (retry_send(close(fd))); + #else + opt = 1; + setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &opt, sizeof(opt)); +diff --git a/src/dnsmasq.h b/src/dnsmasq.h +index fc7259881358..de95d0e875e3 100644 +--- a/src/dnsmasq.h ++++ b/src/dnsmasq.h +@@ -1177,7 +1177,7 @@ int is_same_net6(struct in6_addr *a, struct in6_addr *b, int prefixlen); + u64 addr6part(struct in6_addr *addr); + void setaddr6part(struct in6_addr *addr, u64 host); + #endif +-int retry_send(void); ++int retry_send(ssize_t rc); + void prettyprint_time(char *buf, unsigned int t); + int prettyprint_addr(union mysockaddr *addr, char *buf); + int parse_hex(char *in, unsigned char *out, int maxlen, +diff --git a/src/forward.c b/src/forward.c +index 438e9fa490b8..7c0fa8da3fdf 100644 +--- a/src/forward.c ++++ b/src/forward.c +@@ -103,15 +103,11 @@ int send_from(int fd, int nowild, char *packet, size_t len, + #endif + } + +- while (sendmsg(fd, &msg, 0) == -1) ++ while (retry_send(sendmsg(fd, &msg, 0))); ++ ++ /* If interface is still in DAD, EINVAL results - ignore that. */ ++ if (errno != 0 && errno != EINVAL) + { +- if (retry_send()) +- continue; +- +- /* If interface is still in DAD, EINVAL results - ignore that. */ +- if (errno == EINVAL) +- break; +- + my_syslog(LOG_ERR, _("failed to send packet: %s"), strerror(errno)); + return 0; + } +@@ -297,9 +293,9 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr, + fd = forward->rfd4->fd; + } + +- while (sendto(fd, (char *)header, plen, 0, +- &forward->sentto->addr.sa, +- sa_len(&forward->sentto->addr)) == -1 && retry_send()); ++ while (retry_send( sendto(fd, (char *)header, plen, 0, ++ &forward->sentto->addr.sa, ++ sa_len(&forward->sentto->addr)))); + + return 1; + } +@@ -469,14 +465,12 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr, + #endif + } + +- if (sendto(fd, (char *)header, plen, 0, +- &start->addr.sa, +- sa_len(&start->addr)) == -1) +- { +- if (retry_send()) +- continue; +- } +- else ++ if (retry_send(sendto(fd, (char *)header, plen, 0, ++ &start->addr.sa, ++ sa_len(&start->addr)))) ++ continue; ++ ++ if (errno == 0) + { + /* Keep info in case we want to re-send this packet */ + daemon->srv_save = start; +@@ -932,7 +926,9 @@ void reply_query(int fd, int family, time_t now) + + if (fd != -1) + { +- while (sendto(fd, (char *)header, nn, 0, &server->addr.sa, sa_len(&server->addr)) == -1 && retry_send()); ++ while (retry_send(sendto(fd, (char *)header, nn, 0, ++ &server->addr.sa, ++ sa_len(&server->addr)))); + server->queries++; + } + +@@ -2228,8 +2224,9 @@ void resend_query() + else + return; + +- while(sendto(fd, daemon->packet, daemon->packet_len, 0, +- &daemon->srv_save->addr.sa, sa_len(&daemon->srv_save->addr)) == -1 && retry_send()); ++ while(retry_send(sendto(fd, daemon->packet, daemon->packet_len, 0, ++ &daemon->srv_save->addr.sa, ++ sa_len(&daemon->srv_save->addr)))); + } + } + +diff --git a/src/ipset.c b/src/ipset.c +index 8c5b72722371..a315e86bc7f4 100644 +--- a/src/ipset.c ++++ b/src/ipset.c +@@ -121,7 +121,6 @@ static int new_add_to_ipset(const char *setname, const struct all_addr *ipaddr, + struct my_nlattr *nested[2]; + uint8_t proto; + int addrsz = INADDRSZ; +- ssize_t rc; + + #ifdef HAVE_IPV6 + if (af == AF_INET6) +@@ -162,9 +161,10 @@ static int new_add_to_ipset(const char *setname, const struct all_addr *ipaddr, + nested[1]->nla_len = (void *)buffer + NL_ALIGN(nlh->nlmsg_len) - (void *)nested[1]; + nested[0]->nla_len = (void *)buffer + NL_ALIGN(nlh->nlmsg_len) - (void *)nested[0]; + +- while ((rc = sendto(ipset_sock, buffer, nlh->nlmsg_len, 0, +- (struct sockaddr *)&snl, sizeof(snl))) == -1 && retry_send()); +- return rc; ++ while (retry_send(sendto(ipset_sock, buffer, nlh->nlmsg_len, 0, ++ (struct sockaddr *)&snl, sizeof(snl)))); ++ ++ return errno == 0 ? 0 : -1; + } + + +diff --git a/src/loop.c b/src/loop.c +index 565f7d8e58e0..c9ed075670de 100644 +--- a/src/loop.c ++++ b/src/loop.c +@@ -45,8 +45,9 @@ void loop_send_probes() + fd = rfd->fd; + } + +- while (sendto(fd, daemon->packet, len, 0, &serv->addr.sa, sa_len(&serv->addr)) == -1 && retry_send()); +- ++ while (retry_send(sendto(fd, daemon->packet, len, 0, ++ &serv->addr.sa, sa_len(&serv->addr)))); ++ + free_rfd(rfd); + } + } +diff --git a/src/netlink.c b/src/netlink.c +index 10f94db25a14..753784dc20b4 100644 +--- a/src/netlink.c ++++ b/src/netlink.c +@@ -169,10 +169,10 @@ int iface_enumerate(int family, void *parm, int (*callback)()) + req.g.rtgen_family = family; + + /* Don't block in recvfrom if send fails */ +- while((len = sendto(daemon->netlinkfd, (void *)&req, sizeof(req), 0, +- (struct sockaddr *)&addr, sizeof(addr))) == -1 && retry_send()); +- +- if (len == -1) ++ while(retry_send(sendto(daemon->netlinkfd, (void *)&req, sizeof(req), 0, ++ (struct sockaddr *)&addr, sizeof(addr)))); ++ ++ if (errno != 0) + return 0; + + while (1) +diff --git a/src/radv.c b/src/radv.c +index 6da125b864ae..d0faddf8684a 100644 +--- a/src/radv.c ++++ b/src/radv.c +@@ -479,8 +479,9 @@ static void send_ra(time_t now, int iface, char *iface_name, struct in6_addr *de + setsockopt(daemon->icmp6fd, IPPROTO_IPV6, IPV6_MULTICAST_IF, &iface, sizeof(iface)); + } + +- while (sendto(daemon->icmp6fd, daemon->outpacket.iov_base, save_counter(0), 0, +- (struct sockaddr *)&addr, sizeof(addr)) == -1 && retry_send()); ++ while (retry_send(sendto(daemon->icmp6fd, daemon->outpacket.iov_base, ++ save_counter(0), 0, (struct sockaddr *)&addr, ++ sizeof(addr)))); + + } + +diff --git a/src/util.c b/src/util.c +index 91d02410b13f..648bc4d4b428 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -569,17 +569,27 @@ void bump_maxfd(int fd, int *max) + *max = fd; + } + +-int retry_send(void) ++/* rc is return from sendto and friends. ++ Return 1 if we should retry. ++ Set errno to zero if we succeeded. */ ++int retry_send(ssize_t rc) + { ++ static int retries = 0; ++ struct timespec waiter; ++ ++ if (rc != -1) ++ { ++ retries = 0; ++ errno = 0; ++ return 0; ++ } ++ + /* Linux kernels can return EAGAIN in perpetuity when calling + sendmsg() and the relevant interface has gone. Here we loop + retrying in EAGAIN for 1 second max, to avoid this hanging + dnsmasq. */ + +- static int retries = 0; +- struct timespec waiter; +- +- if (errno == EAGAIN || errno == EWOULDBLOCK) ++ if (errno == EAGAIN || errno == EWOULDBLOCK) + { + waiter.tv_sec = 0; + waiter.tv_nsec = 10000; +@@ -587,13 +597,13 @@ int retry_send(void) + if (retries++ < 1000) + return 1; + } +- +- retries = 0; +- +- if (errno == EINTR) +- return 1; +- +- return 0; ++ ++ retries = 0; ++ ++ if (errno == EINTR) ++ return 1; ++ ++ return 0; + } + + int read_write(int fd, unsigned char *packet, int size, int rw) +@@ -602,22 +612,21 @@ int read_write(int fd, unsigned char *packet, int size, int rw) + + for (done = 0; done < size; done += n) + { +- retry: +- if (rw) +- n = read(fd, &packet[done], (size_t)(size - done)); +- else +- n = write(fd, &packet[done], (size_t)(size - done)); +- +- if (n == 0) +- return 0; +- else if (n == -1) +- { +- if (retry_send() || errno == ENOMEM || errno == ENOBUFS) +- goto retry; +- else +- return 0; +- } ++ do { ++ if (rw) ++ n = read(fd, &packet[done], (size_t)(size - done)); ++ else ++ n = write(fd, &packet[done], (size_t)(size - done)); ++ ++ if (n == 0) ++ return 0; ++ ++ } while (retry_send(n) || errno == ENOMEM || errno == ENOBUFS); ++ ++ if (errno != 0) ++ return 0; + } ++ + return 1; + } + +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0059-Make-address-example.com-equivalent-to-server-exampl.patch b/src/patches/dnsmasq/0059-Make-address-example.com-equivalent-to-server-exampl.patch new file mode 100644 index 000000000..6a2a0f41f --- /dev/null +++ b/src/patches/dnsmasq/0059-Make-address-example.com-equivalent-to-server-exampl.patch @@ -0,0 +1,75 @@ +From 979fe86bc8693f660eddea232ae39cbbb50b294c Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Thu, 19 Mar 2015 22:50:22 +0000 +Subject: [PATCH 59/71] Make --address=/example.com/ equivalent to + --server=/example.com/ + +--- + man/dnsmasq.8 | 7 +++++-- + src/network.c | 4 ++-- + src/option.c | 2 -- + 3 files changed, 7 insertions(+), 6 deletions(-) + +diff --git a/man/dnsmasq.8 b/man/dnsmasq.8 +index 2db780d90987..1f1dd7b69c53 100644 +--- a/man/dnsmasq.8 ++++ b/man/dnsmasq.8 +@@ -460,7 +460,7 @@ but provides some syntactic sugar to make specifying address-to-name queries eas + is exactly equivalent to + .B --server=/3.2.1.in-addr.arpa/192.168.0.1 + .TP +-.B \-A, --address=//[domain/] ++.B \-A, --address=//[domain/][] + Specify an IP address to return for any host in the given domains. + Queries in the domains are never forwarded and always replied to + with the specified IP address which may be IPv4 or IPv6. To give +@@ -472,7 +472,10 @@ domain specification works in the same was as for --server, with the + additional facility that /#/ matches any domain. Thus + --address=/#/1.2.3.4 will always return 1.2.3.4 for any query not + answered from /etc/hosts or DHCP and not sent to an upstream +-nameserver by a more specific --server directive. ++nameserver by a more specific --server directive. As for --server, ++one or more domains with no address returns a no-such-domain answer, so ++--address=/example.com/ is equivalent to --server=/example.com/ and returns ++NXDOMAIN for example.com and all its subdomains. + .TP + .B --ipset=//[domain/][,] + Places the resolved IP addresses of queries for the specified domains +diff --git a/src/network.c b/src/network.c +index 7045253d467b..992f023c31de 100644 +--- a/src/network.c ++++ b/src/network.c +@@ -1459,7 +1459,7 @@ void check_servers(void) + } + } + +- if (!(serv->flags & SERV_NO_REBIND)) ++ if (!(serv->flags & SERV_NO_REBIND) && !(serv->flags & SERV_LITERAL_ADDRESS)) + { + if (serv->flags & (SERV_HAS_DOMAIN | SERV_FOR_NODOTS | SERV_USE_RESOLV)) + { +@@ -1475,7 +1475,7 @@ void check_servers(void) + my_syslog(LOG_INFO, _("using local addresses only for %s %s"), s1, s2); + else if (serv->flags & SERV_USE_RESOLV) + my_syslog(LOG_INFO, _("using standard nameservers for %s %s"), s1, s2); +- else if (!(serv->flags & SERV_LITERAL_ADDRESS)) ++ else + my_syslog(LOG_INFO, _("using nameserver %s#%d for %s %s"), daemon->namebuff, port, s1, s2); + } + #ifdef HAVE_LOOP +diff --git a/src/option.c b/src/option.c +index eace40bb566c..3009eb545fde 100644 +--- a/src/option.c ++++ b/src/option.c +@@ -2284,8 +2284,6 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma + { + if (!(newlist->flags & SERV_NO_REBIND)) + newlist->flags |= SERV_NO_ADDR; /* no server */ +- if (newlist->flags & SERV_LITERAL_ADDRESS) +- ret_err(gen_err); + } + + else if (strcmp(arg, "#") == 0) +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0060-dhcp-set-outbound-interface-via-cmsg-in-unicast-repl.patch b/src/patches/dnsmasq/0060-dhcp-set-outbound-interface-via-cmsg-in-unicast-repl.patch new file mode 100644 index 000000000..1eb504be6 --- /dev/null +++ b/src/patches/dnsmasq/0060-dhcp-set-outbound-interface-via-cmsg-in-unicast-repl.patch @@ -0,0 +1,80 @@ +From 65c721200023ef0023114459a8d12f8b0a24cfd8 Mon Sep 17 00:00:00 2001 +From: Lung-Pin Chang +Date: Thu, 19 Mar 2015 23:22:21 +0000 +Subject: [PATCH 60/71] dhcp: set outbound interface via cmsg in unicast reply + + If multiple routes to the same network exist, Linux blindly picks + the first interface (route) based on destination address, which might not be + the one we're actually offering leases. Rather than relying on this, + always set the interface for outgoing unicast DHCP packets. +--- + src/dhcp.c | 45 +++++++++++++++++++++++++-------------------- + 1 file changed, 25 insertions(+), 20 deletions(-) + +diff --git a/src/dhcp.c b/src/dhcp.c +index 5c3089ab94ff..f1f43f8d8f90 100644 +--- a/src/dhcp.c ++++ b/src/dhcp.c +@@ -376,10 +376,9 @@ void dhcp_packet(time_t now, int pxe_fd) + } + } + #if defined(HAVE_LINUX_NETWORK) +- else if ((ntohs(mess->flags) & 0x8000) || mess->hlen == 0 || +- mess->hlen > sizeof(ifr.ifr_addr.sa_data) || mess->htype == 0) ++ else + { +- /* broadcast to 255.255.255.255 (or mac address invalid) */ ++ /* fill cmsg for outbound interface (both broadcast & unicast) */ + struct in_pktinfo *pkt; + msg.msg_control = control_u.control; + msg.msg_controllen = sizeof(control_u); +@@ -389,23 +388,29 @@ void dhcp_packet(time_t now, int pxe_fd) + pkt->ipi_spec_dst.s_addr = 0; + msg.msg_controllen = cmptr->cmsg_len = CMSG_LEN(sizeof(struct in_pktinfo)); + cmptr->cmsg_level = IPPROTO_IP; +- cmptr->cmsg_type = IP_PKTINFO; +- dest.sin_addr.s_addr = INADDR_BROADCAST; +- dest.sin_port = htons(daemon->dhcp_client_port); +- } +- else +- { +- /* unicast to unconfigured client. Inject mac address direct into ARP cache. +- struct sockaddr limits size to 14 bytes. */ +- dest.sin_addr = mess->yiaddr; +- dest.sin_port = htons(daemon->dhcp_client_port); +- memcpy(&arp_req.arp_pa, &dest, sizeof(struct sockaddr_in)); +- arp_req.arp_ha.sa_family = mess->htype; +- memcpy(arp_req.arp_ha.sa_data, mess->chaddr, mess->hlen); +- /* interface name already copied in */ +- arp_req.arp_flags = ATF_COM; +- if (ioctl(daemon->dhcpfd, SIOCSARP, &arp_req) == -1) +- my_syslog(MS_DHCP | LOG_ERR, _("ARP-cache injection failed: %s"), strerror(errno)); ++ cmptr->cmsg_type = IP_PKTINFO; ++ ++ if ((ntohs(mess->flags) & 0x8000) || mess->hlen == 0 || ++ mess->hlen > sizeof(ifr.ifr_addr.sa_data) || mess->htype == 0) ++ { ++ /* broadcast to 255.255.255.255 (or mac address invalid) */ ++ dest.sin_addr.s_addr = INADDR_BROADCAST; ++ dest.sin_port = htons(daemon->dhcp_client_port); ++ } ++ else ++ { ++ /* unicast to unconfigured client. Inject mac address direct into ARP cache. ++ struct sockaddr limits size to 14 bytes. */ ++ dest.sin_addr = mess->yiaddr; ++ dest.sin_port = htons(daemon->dhcp_client_port); ++ memcpy(&arp_req.arp_pa, &dest, sizeof(struct sockaddr_in)); ++ arp_req.arp_ha.sa_family = mess->htype; ++ memcpy(arp_req.arp_ha.sa_data, mess->chaddr, mess->hlen); ++ /* interface name already copied in */ ++ arp_req.arp_flags = ATF_COM; ++ if (ioctl(daemon->dhcpfd, SIOCSARP, &arp_req) == -1) ++ my_syslog(MS_DHCP | LOG_ERR, _("ARP-cache injection failed: %s"), strerror(errno)); ++ } + } + #elif defined(HAVE_SOLARIS_NETWORK) + else if ((ntohs(mess->flags) & 0x8000) || mess->hlen != ETHER_ADDR_LEN || mess->htype != ARPHRD_ETHER) +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0061-Don-t-fail-DNSSEC-when-a-signed-CNAME-dangles-into-a.patch b/src/patches/dnsmasq/0061-Don-t-fail-DNSSEC-when-a-signed-CNAME-dangles-into-a.patch new file mode 100644 index 000000000..b566ebf0d --- /dev/null +++ b/src/patches/dnsmasq/0061-Don-t-fail-DNSSEC-when-a-signed-CNAME-dangles-into-a.patch @@ -0,0 +1,27 @@ +From 8805283088d670baecb92569252c01cf754cda51 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Thu, 26 Mar 2015 21:15:43 +0000 +Subject: [PATCH 61/71] Don't fail DNSSEC when a signed CNAME dangles into an + unsigned zone. + +--- + src/dnssec.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/dnssec.c b/src/dnssec.c +index ad0d6f072ba2..db5c768bd751 100644 +--- a/src/dnssec.c ++++ b/src/dnssec.c +@@ -2032,7 +2032,8 @@ int dnssec_validate_reply(time_t now, struct dns_header *header, size_t plen, ch + /* NXDOMAIN or NODATA reply, prove that (name, class1, type1) can't exist */ + /* First marshall the NSEC records, if we've not done it previously */ + if (!nsec_type && !(nsec_type = find_nsec_records(header, plen, &nsecs, &nsec_count, qclass))) +- return STAT_BOGUS; /* No NSECs */ ++ return STAT_NO_SIG; /* No NSECs, this is probably a dangling CNAME pointing into ++ an unsigned zone. Return STAT_NO_SIG to cause this to be proved. */ + + /* Get name of missing answer */ + if (!extract_name(header, plen, &qname, name, 1, 0)) +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0062-Return-SERVFAIL-when-validation-abandoned.patch b/src/patches/dnsmasq/0062-Return-SERVFAIL-when-validation-abandoned.patch new file mode 100644 index 000000000..a660450c2 --- /dev/null +++ b/src/patches/dnsmasq/0062-Return-SERVFAIL-when-validation-abandoned.patch @@ -0,0 +1,48 @@ +From 150162bc37170a6edae9d488435e836b1e4e3a4e Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Fri, 27 Mar 2015 09:58:26 +0000 +Subject: [PATCH 62/71] Return SERVFAIL when validation abandoned. + +--- + src/forward.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/src/forward.c b/src/forward.c +index 7c0fa8da3fdf..985814c3aec5 100644 +--- a/src/forward.c ++++ b/src/forward.c +@@ -663,6 +663,7 @@ static size_t process_reply(struct dns_header *header, time_t now, struct server + header->ancount = htons(0); + header->nscount = htons(0); + header->arcount = htons(0); ++ header->hb3 &= ~HB3_TC; + } + + /* the bogus-nxdomain stuff, doctor and NXDOMAIN->NODATA munging can all elide +@@ -991,7 +992,10 @@ void reply_query(int fd, int family, time_t now) + char *result; + + if (forward->work_counter == 0) +- result = "ABANDONED"; ++ { ++ result = "ABANDONED"; ++ status = STAT_BOGUS; ++ } + else + result = (status == STAT_SECURE ? "SECURE" : (status == STAT_INSECURE ? "INSECURE" : "BOGUS")); + +@@ -1938,7 +1942,10 @@ unsigned char *tcp_request(int confd, time_t now, + char *result; + + if (keycount == 0) +- result = "ABANDONED"; ++ { ++ result = "ABANDONED"; ++ status = STAT_BOGUS; ++ } + else + result = (status == STAT_SECURE ? "SECURE" : (status == STAT_INSECURE ? "INSECURE" : "BOGUS")); + +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0063-Protect-against-broken-DNSSEC-upstreams.patch b/src/patches/dnsmasq/0063-Protect-against-broken-DNSSEC-upstreams.patch new file mode 100644 index 000000000..93161d06f --- /dev/null +++ b/src/patches/dnsmasq/0063-Protect-against-broken-DNSSEC-upstreams.patch @@ -0,0 +1,37 @@ +From 0b8a5a30a77331974ba24a04e43e720585dfbc61 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Fri, 27 Mar 2015 11:44:55 +0000 +Subject: [PATCH 63/71] Protect against broken DNSSEC upstreams. + +--- + src/dnssec.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/dnssec.c b/src/dnssec.c +index db5c768bd751..14bae7e9bf75 100644 +--- a/src/dnssec.c ++++ b/src/dnssec.c +@@ -1177,7 +1177,7 @@ int dnssec_validate_by_ds(time_t now, struct dns_header *header, size_t plen, ch + STAT_NO_DS It's proved there's no DS here. + STAT_NO_NS It's proved there's no DS _or_ NS here. + STAT_BOGUS no DS in reply or not signed, fails validation, bad packet. +- STAT_NEED_DNSKEY DNSKEY records to validate a DS not found, name in keyname ++ STAT_NEED_KEY DNSKEY records to validate a DS not found, name in keyname + */ + + int dnssec_validate_ds(time_t now, struct dns_header *header, size_t plen, char *name, char *keyname, int class) +@@ -1208,7 +1208,10 @@ int dnssec_validate_ds(time_t now, struct dns_header *header, size_t plen, char + if (!(p = skip_section(p, ntohs(header->ancount), header, plen))) + val = STAT_BOGUS; + +- if (val == STAT_BOGUS) ++ /* If the key needed to validate the DS is on the same domain as the DS, we'll ++ loop getting nowhere. Stop that now. This can happen of the DS answer comes ++ from the DS's zone, and not the parent zone. */ ++ if (val == STAT_BOGUS || (val == STAT_NEED_KEY && hostname_isequal(name, keyname))) + { + log_query(F_NOEXTRA | F_UPSTREAM, name, NULL, "BOGUS DS"); + return STAT_BOGUS; +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0064-DNSSEC-fix-for-non-ascii-characters-in-labels.patch b/src/patches/dnsmasq/0064-DNSSEC-fix-for-non-ascii-characters-in-labels.patch new file mode 100644 index 000000000..389beee08 --- /dev/null +++ b/src/patches/dnsmasq/0064-DNSSEC-fix-for-non-ascii-characters-in-labels.patch @@ -0,0 +1,197 @@ +From 1e153945def3c50d1e59ceea6a768db0ac770f98 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Sat, 28 Mar 2015 21:34:07 +0000 +Subject: [PATCH 64/71] DNSSEC fix for non-ascii characters in labels. + +--- + src/dnssec.c | 34 +++++++++++++++++----------------- + src/rfc1035.c | 5 +++-- + 2 files changed, 20 insertions(+), 19 deletions(-) + +diff --git a/src/dnssec.c b/src/dnssec.c +index 14bae7e9bf75..8bd5294ce773 100644 +--- a/src/dnssec.c ++++ b/src/dnssec.c +@@ -552,7 +552,7 @@ static int get_rdata(struct dns_header *header, size_t plen, unsigned char *end, + + (*desc)++; + +- if (d == 0 && extract_name(header, plen, p, buff, 1, 0)) ++ if (d == 0 && extract_name(header, plen, p, buff, 2, 0)) + /* domain-name, canonicalise */ + return to_wire(buff); + else +@@ -811,7 +811,7 @@ static int validate_rrset(time_t now, struct dns_header *header, size_t plen, in + GETLONG(sig_inception, p); + GETSHORT(key_tag, p); + +- if (!extract_name(header, plen, &p, keyname, 1, 0)) ++ if (!extract_name(header, plen, &p, keyname, 2, 0)) + return STAT_BOGUS; + + /* RFC 4035 5.3.1 says that the Signer's Name field MUST equal +@@ -866,7 +866,7 @@ static int validate_rrset(time_t now, struct dns_header *header, size_t plen, in + u16 len, *dp; + + p = rrset[i]; +- if (!extract_name(header, plen, &p, name, 1, 10)) ++ if (!extract_name(header, plen, &p, name, 2, 10)) + return STAT_BOGUS; + + name_start = name; +@@ -923,7 +923,7 @@ static int validate_rrset(time_t now, struct dns_header *header, size_t plen, in + + /* namebuff used for workspace above, restore to leave unchanged on exit */ + p = (unsigned char*)(rrset[0]); +- extract_name(header, plen, &p, name, 1, 0); ++ extract_name(header, plen, &p, name, 2, 0); + + if (key) + { +@@ -963,7 +963,7 @@ int dnssec_validate_by_ds(time_t now, struct dns_header *header, size_t plen, ch + struct all_addr a; + + if (ntohs(header->qdcount) != 1 || +- !extract_name(header, plen, &p, name, 1, 4)) ++ !extract_name(header, plen, &p, name, 2, 4)) + return STAT_BOGUS; + + GETSHORT(qtype, p); +@@ -1202,7 +1202,7 @@ int dnssec_validate_ds(time_t now, struct dns_header *header, size_t plen, char + val = STAT_BOGUS; + + p = (unsigned char *)(header+1); +- extract_name(header, plen, &p, name, 1, 4); ++ extract_name(header, plen, &p, name, 2, 4); + p += 4; /* qtype, qclass */ + + if (!(p = skip_section(p, ntohs(header->ancount), header, plen))) +@@ -1419,12 +1419,12 @@ static int prove_non_existence_nsec(struct dns_header *header, size_t plen, unsi + for (i = 0; i < nsec_count; i++) + { + p = nsecs[i]; +- if (!extract_name(header, plen, &p, workspace1, 1, 10)) ++ if (!extract_name(header, plen, &p, workspace1, 2, 10)) + return STAT_BOGUS; + p += 8; /* class, type, TTL */ + GETSHORT(rdlen, p); + psave = p; +- if (!extract_name(header, plen, &p, workspace2, 1, 10)) ++ if (!extract_name(header, plen, &p, workspace2, 2, 10)) + return STAT_BOGUS; + + rc = hostname_cmp(workspace1, name); +@@ -1553,7 +1553,7 @@ static int check_nsec3_coverage(struct dns_header *header, size_t plen, int dige + for (i = 0; i < nsec_count; i++) + if ((p = nsecs[i])) + { +- if (!extract_name(header, plen, &p, workspace1, 1, 0) || ++ if (!extract_name(header, plen, &p, workspace1, 2, 0) || + !(base32_len = base32_decode(workspace1, (unsigned char *)workspace2))) + return 0; + +@@ -1730,7 +1730,7 @@ static int prove_non_existence_nsec3(struct dns_header *header, size_t plen, uns + for (i = 0; i < nsec_count; i++) + if ((p = nsecs[i])) + { +- if (!extract_name(header, plen, &p, workspace1, 1, 0) || ++ if (!extract_name(header, plen, &p, workspace1, 2, 0) || + !(base32_len = base32_decode(workspace1, (unsigned char *)workspace2))) + return STAT_BOGUS; + +@@ -1796,7 +1796,7 @@ int dnssec_validate_reply(time_t now, struct dns_header *header, size_t plen, ch + + qname = p1 = (unsigned char *)(header+1); + +- if (!extract_name(header, plen, &p1, name, 1, 4)) ++ if (!extract_name(header, plen, &p1, name, 2, 4)) + return STAT_BOGUS; + + GETSHORT(qtype, p1); +@@ -1836,7 +1836,7 @@ int dnssec_validate_reply(time_t now, struct dns_header *header, size_t plen, ch + qname = p1; + + /* looped CNAMES */ +- if (!cname_count-- || !extract_name(header, plen, &p1, name, 1, 0)) ++ if (!cname_count-- || !extract_name(header, plen, &p1, name, 2, 0)) + return STAT_BOGUS; + + p1 = ans_start; +@@ -1857,7 +1857,7 @@ int dnssec_validate_reply(time_t now, struct dns_header *header, size_t plen, ch + + for (p1 = ans_start, i = 0; i < ntohs(header->ancount) + ntohs(header->nscount); i++) + { +- if (!extract_name(header, plen, &p1, name, 1, 10)) ++ if (!extract_name(header, plen, &p1, name, 2, 10)) + return STAT_BOGUS; /* bad packet */ + + GETSHORT(type1, p1); +@@ -2039,7 +2039,7 @@ int dnssec_validate_reply(time_t now, struct dns_header *header, size_t plen, ch + an unsigned zone. Return STAT_NO_SIG to cause this to be proved. */ + + /* Get name of missing answer */ +- if (!extract_name(header, plen, &qname, name, 1, 0)) ++ if (!extract_name(header, plen, &qname, name, 2, 0)) + return STAT_BOGUS; + + if (nsec_type == T_NSEC) +@@ -2061,7 +2061,7 @@ int dnssec_chase_cname(time_t now, struct dns_header *header, size_t plen, char + int cname_count = CNAME_CHAIN; + + /* Get question */ +- if (!extract_name(header, plen, &p, name, 1, 4)) ++ if (!extract_name(header, plen, &p, name, 2, 4)) + return STAT_BOGUS; + + p +=2; /* type */ +@@ -2102,7 +2102,7 @@ int dnssec_chase_cname(time_t now, struct dns_header *header, size_t plen, char + + /* Loop down CNAME chain/ */ + if (!cname_count-- || +- !extract_name(header, plen, &p, name, 1, 0) || ++ !extract_name(header, plen, &p, name, 2, 0) || + !(p = skip_questions(header, plen))) + return STAT_BOGUS; + +@@ -2419,7 +2419,7 @@ unsigned char* hash_questions(struct dns_header *header, size_t plen, char *name + + for (q = ntohs(header->qdcount); q != 0; q--) + { +- if (!extract_name(header, plen, &p, name, 1, 4)) ++ if (!extract_name(header, plen, &p, name, 2, 4)) + break; /* bad packet */ + + len = to_wire(name); +diff --git a/src/rfc1035.c b/src/rfc1035.c +index 5ef5ddb7485e..10832a3d5d2e 100644 +--- a/src/rfc1035.c ++++ b/src/rfc1035.c +@@ -16,6 +16,7 @@ + + #include "dnsmasq.h" + ++/* isExtract == 2 -> DNSSEC mode, no bitstrings, no ascii checks. */ + int extract_name(struct dns_header *header, size_t plen, unsigned char **pp, + char *name, int isExtract, int extrabytes) + { +@@ -86,7 +87,7 @@ int extract_name(struct dns_header *header, size_t plen, unsigned char **pp, + if ((l & 0x3f) != 1) + return 0; /* we only understand bitstrings */ + +- if (!isExtract) ++ if (isExtract != 1) + return 0; /* Cannot compare bitsrings */ + + count = *p++; +@@ -128,7 +129,7 @@ int extract_name(struct dns_header *header, size_t plen, unsigned char **pp, + if (isExtract) + { + unsigned char c = *p; +- if (isascii(c) && !iscntrl(c) && c != '.') ++ if ((isExtract == 2 || (isascii(c) && !iscntrl(c))) && c != '.') + *cp++ = *p; + else + return 0; +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0065-Allow-control-characters-in-names-in-the-cache-handl.patch b/src/patches/dnsmasq/0065-Allow-control-characters-in-names-in-the-cache-handl.patch new file mode 100644 index 000000000..69f6081f0 --- /dev/null +++ b/src/patches/dnsmasq/0065-Allow-control-characters-in-names-in-the-cache-handl.patch @@ -0,0 +1,246 @@ +From 394ff492da6af5da7e7d356be9586683bc5fc011 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Sun, 29 Mar 2015 22:17:14 +0100 +Subject: [PATCH 65/71] Allow control characters in names in the cache, handle + when logging. + +--- + src/cache.c | 19 +++++++++++++++++-- + src/dnssec.c | 34 +++++++++++++++++----------------- + src/rfc1035.c | 7 +++---- + 3 files changed, 37 insertions(+), 23 deletions(-) + +diff --git a/src/cache.c b/src/cache.c +index c95624c42b1c..873c5779044c 100644 +--- a/src/cache.c ++++ b/src/cache.c +@@ -1399,6 +1399,19 @@ int cache_make_stat(struct txt_record *t) + return 1; + } + ++/* There can be names in the cache containing control chars, don't ++ mess up logging or open security holes. */ ++static char *sanitise(char *name) ++{ ++ unsigned char *r; ++ for (r = (unsigned char *)name; *r; r++) ++ if (!isprint((int)*r)) ++ return ""; ++ ++ return name; ++} ++ ++ + void dump_cache(time_t now) + { + struct server *serv, *serv1; +@@ -1452,9 +1465,9 @@ void dump_cache(time_t now) + *a = 0; + if (strlen(n) == 0 && !(cache->flags & F_REVERSE)) + n = ""; +- p += sprintf(p, "%-30.30s ", n); ++ p += sprintf(p, "%-30.30s ", sanitise(n)); + if ((cache->flags & F_CNAME) && !is_outdated_cname_pointer(cache)) +- a = cache_get_cname_target(cache); ++ a = sanitise(cache_get_cname_target(cache)); + #ifdef HAVE_DNSSEC + else if (cache->flags & F_DS) + { +@@ -1587,6 +1600,8 @@ void log_query(unsigned int flags, char *name, struct all_addr *addr, char *arg) + if (!option_bool(OPT_LOG)) + return; + ++ name = sanitise(name); ++ + if (addr) + { + if (flags & F_KEYTAG) +diff --git a/src/dnssec.c b/src/dnssec.c +index 8bd5294ce773..14bae7e9bf75 100644 +--- a/src/dnssec.c ++++ b/src/dnssec.c +@@ -552,7 +552,7 @@ static int get_rdata(struct dns_header *header, size_t plen, unsigned char *end, + + (*desc)++; + +- if (d == 0 && extract_name(header, plen, p, buff, 2, 0)) ++ if (d == 0 && extract_name(header, plen, p, buff, 1, 0)) + /* domain-name, canonicalise */ + return to_wire(buff); + else +@@ -811,7 +811,7 @@ static int validate_rrset(time_t now, struct dns_header *header, size_t plen, in + GETLONG(sig_inception, p); + GETSHORT(key_tag, p); + +- if (!extract_name(header, plen, &p, keyname, 2, 0)) ++ if (!extract_name(header, plen, &p, keyname, 1, 0)) + return STAT_BOGUS; + + /* RFC 4035 5.3.1 says that the Signer's Name field MUST equal +@@ -866,7 +866,7 @@ static int validate_rrset(time_t now, struct dns_header *header, size_t plen, in + u16 len, *dp; + + p = rrset[i]; +- if (!extract_name(header, plen, &p, name, 2, 10)) ++ if (!extract_name(header, plen, &p, name, 1, 10)) + return STAT_BOGUS; + + name_start = name; +@@ -923,7 +923,7 @@ static int validate_rrset(time_t now, struct dns_header *header, size_t plen, in + + /* namebuff used for workspace above, restore to leave unchanged on exit */ + p = (unsigned char*)(rrset[0]); +- extract_name(header, plen, &p, name, 2, 0); ++ extract_name(header, plen, &p, name, 1, 0); + + if (key) + { +@@ -963,7 +963,7 @@ int dnssec_validate_by_ds(time_t now, struct dns_header *header, size_t plen, ch + struct all_addr a; + + if (ntohs(header->qdcount) != 1 || +- !extract_name(header, plen, &p, name, 2, 4)) ++ !extract_name(header, plen, &p, name, 1, 4)) + return STAT_BOGUS; + + GETSHORT(qtype, p); +@@ -1202,7 +1202,7 @@ int dnssec_validate_ds(time_t now, struct dns_header *header, size_t plen, char + val = STAT_BOGUS; + + p = (unsigned char *)(header+1); +- extract_name(header, plen, &p, name, 2, 4); ++ extract_name(header, plen, &p, name, 1, 4); + p += 4; /* qtype, qclass */ + + if (!(p = skip_section(p, ntohs(header->ancount), header, plen))) +@@ -1419,12 +1419,12 @@ static int prove_non_existence_nsec(struct dns_header *header, size_t plen, unsi + for (i = 0; i < nsec_count; i++) + { + p = nsecs[i]; +- if (!extract_name(header, plen, &p, workspace1, 2, 10)) ++ if (!extract_name(header, plen, &p, workspace1, 1, 10)) + return STAT_BOGUS; + p += 8; /* class, type, TTL */ + GETSHORT(rdlen, p); + psave = p; +- if (!extract_name(header, plen, &p, workspace2, 2, 10)) ++ if (!extract_name(header, plen, &p, workspace2, 1, 10)) + return STAT_BOGUS; + + rc = hostname_cmp(workspace1, name); +@@ -1553,7 +1553,7 @@ static int check_nsec3_coverage(struct dns_header *header, size_t plen, int dige + for (i = 0; i < nsec_count; i++) + if ((p = nsecs[i])) + { +- if (!extract_name(header, plen, &p, workspace1, 2, 0) || ++ if (!extract_name(header, plen, &p, workspace1, 1, 0) || + !(base32_len = base32_decode(workspace1, (unsigned char *)workspace2))) + return 0; + +@@ -1730,7 +1730,7 @@ static int prove_non_existence_nsec3(struct dns_header *header, size_t plen, uns + for (i = 0; i < nsec_count; i++) + if ((p = nsecs[i])) + { +- if (!extract_name(header, plen, &p, workspace1, 2, 0) || ++ if (!extract_name(header, plen, &p, workspace1, 1, 0) || + !(base32_len = base32_decode(workspace1, (unsigned char *)workspace2))) + return STAT_BOGUS; + +@@ -1796,7 +1796,7 @@ int dnssec_validate_reply(time_t now, struct dns_header *header, size_t plen, ch + + qname = p1 = (unsigned char *)(header+1); + +- if (!extract_name(header, plen, &p1, name, 2, 4)) ++ if (!extract_name(header, plen, &p1, name, 1, 4)) + return STAT_BOGUS; + + GETSHORT(qtype, p1); +@@ -1836,7 +1836,7 @@ int dnssec_validate_reply(time_t now, struct dns_header *header, size_t plen, ch + qname = p1; + + /* looped CNAMES */ +- if (!cname_count-- || !extract_name(header, plen, &p1, name, 2, 0)) ++ if (!cname_count-- || !extract_name(header, plen, &p1, name, 1, 0)) + return STAT_BOGUS; + + p1 = ans_start; +@@ -1857,7 +1857,7 @@ int dnssec_validate_reply(time_t now, struct dns_header *header, size_t plen, ch + + for (p1 = ans_start, i = 0; i < ntohs(header->ancount) + ntohs(header->nscount); i++) + { +- if (!extract_name(header, plen, &p1, name, 2, 10)) ++ if (!extract_name(header, plen, &p1, name, 1, 10)) + return STAT_BOGUS; /* bad packet */ + + GETSHORT(type1, p1); +@@ -2039,7 +2039,7 @@ int dnssec_validate_reply(time_t now, struct dns_header *header, size_t plen, ch + an unsigned zone. Return STAT_NO_SIG to cause this to be proved. */ + + /* Get name of missing answer */ +- if (!extract_name(header, plen, &qname, name, 2, 0)) ++ if (!extract_name(header, plen, &qname, name, 1, 0)) + return STAT_BOGUS; + + if (nsec_type == T_NSEC) +@@ -2061,7 +2061,7 @@ int dnssec_chase_cname(time_t now, struct dns_header *header, size_t plen, char + int cname_count = CNAME_CHAIN; + + /* Get question */ +- if (!extract_name(header, plen, &p, name, 2, 4)) ++ if (!extract_name(header, plen, &p, name, 1, 4)) + return STAT_BOGUS; + + p +=2; /* type */ +@@ -2102,7 +2102,7 @@ int dnssec_chase_cname(time_t now, struct dns_header *header, size_t plen, char + + /* Loop down CNAME chain/ */ + if (!cname_count-- || +- !extract_name(header, plen, &p, name, 2, 0) || ++ !extract_name(header, plen, &p, name, 1, 0) || + !(p = skip_questions(header, plen))) + return STAT_BOGUS; + +@@ -2419,7 +2419,7 @@ unsigned char* hash_questions(struct dns_header *header, size_t plen, char *name + + for (q = ntohs(header->qdcount); q != 0; q--) + { +- if (!extract_name(header, plen, &p, name, 2, 4)) ++ if (!extract_name(header, plen, &p, name, 1, 4)) + break; /* bad packet */ + + len = to_wire(name); +diff --git a/src/rfc1035.c b/src/rfc1035.c +index 10832a3d5d2e..7a07b0cee906 100644 +--- a/src/rfc1035.c ++++ b/src/rfc1035.c +@@ -16,7 +16,6 @@ + + #include "dnsmasq.h" + +-/* isExtract == 2 -> DNSSEC mode, no bitstrings, no ascii checks. */ + int extract_name(struct dns_header *header, size_t plen, unsigned char **pp, + char *name, int isExtract, int extrabytes) + { +@@ -87,7 +86,7 @@ int extract_name(struct dns_header *header, size_t plen, unsigned char **pp, + if ((l & 0x3f) != 1) + return 0; /* we only understand bitstrings */ + +- if (isExtract != 1) ++ if (!isExtract) + return 0; /* Cannot compare bitsrings */ + + count = *p++; +@@ -129,8 +128,8 @@ int extract_name(struct dns_header *header, size_t plen, unsigned char **pp, + if (isExtract) + { + unsigned char c = *p; +- if ((isExtract == 2 || (isascii(c) && !iscntrl(c))) && c != '.') +- *cp++ = *p; ++ if (c != 0 && c != '.') ++ *cp++ = c; + else + return 0; + } +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0066-Fix-crash-in-last-commit.patch b/src/patches/dnsmasq/0066-Fix-crash-in-last-commit.patch new file mode 100644 index 000000000..04a865f71 --- /dev/null +++ b/src/patches/dnsmasq/0066-Fix-crash-in-last-commit.patch @@ -0,0 +1,30 @@ +From 794fccca7ffebfba4468bfffc6276b68bbf6afd9 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Sun, 29 Mar 2015 22:35:44 +0100 +Subject: [PATCH 66/71] Fix crash in last commit. + +--- + src/cache.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/cache.c b/src/cache.c +index 873c5779044c..d7bea574c0d8 100644 +--- a/src/cache.c ++++ b/src/cache.c +@@ -1404,9 +1404,10 @@ int cache_make_stat(struct txt_record *t) + static char *sanitise(char *name) + { + unsigned char *r; +- for (r = (unsigned char *)name; *r; r++) +- if (!isprint((int)*r)) +- return ""; ++ if (name) ++ for (r = (unsigned char *)name; *r; r++) ++ if (!isprint((int)*r)) ++ return ""; + + return name; + } +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0067-Merge-message-translations.patch b/src/patches/dnsmasq/0067-Merge-message-translations.patch new file mode 100644 index 000000000..090da5c9a --- /dev/null +++ b/src/patches/dnsmasq/0067-Merge-message-translations.patch @@ -0,0 +1,20329 @@ +From fd6ad9e481ab7c812a6b1515244908818cbb0442 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Mon, 30 Mar 2015 07:52:21 +0100 +Subject: [PATCH 67/71] Merge message translations. + +--- + po/de.po | 803 +++++++++++++++++++++++++++++++++-------------------------- + po/es.po | 798 ++++++++++++++++++++++++++++++++-------------------------- + po/fi.po | 786 +++++++++++++++++++++++++++++++-------------------------- + po/fr.po | 799 ++++++++++++++++++++++++++++++++-------------------------- + po/id.po | 814 +++++++++++++++++++++++++++++++++--------------------------- + po/it.po | 786 +++++++++++++++++++++++++++++++-------------------------- + po/no.po | 797 ++++++++++++++++++++++++++++++++-------------------------- + po/pl.po | 803 +++++++++++++++++++++++++++++++++-------------------------- + po/pt_BR.po | 786 +++++++++++++++++++++++++++++++-------------------------- + po/ro.po | 797 ++++++++++++++++++++++++++++++++-------------------------- + 10 files changed, 4396 insertions(+), 3573 deletions(-) + +diff --git a/po/de.po b/po/de.po +index 4c93c5b28ef2..a03173845b35 100644 +--- a/po/de.po ++++ b/po/de.po +@@ -23,70 +23,70 @@ msgstr "" + "X-Generator: Poedit 1.7.3\n" + "X-Poedit-SourceCharset: UTF-8\n" + +-#: cache.c:505 ++#: cache.c:523 + msgid "Internal error in cache." + msgstr "Interner Fehler im Cache." + +-#: cache.c:908 ++#: cache.c:941 + #, c-format + msgid "failed to load names from %s: %s" + msgstr "Fehler beim Laden der Namen von %s: %s" + +-#: cache.c:934 dhcp.c:820 ++#: cache.c:967 dhcp.c:825 + #, c-format + msgid "bad address at %s line %d" + msgstr "Fehlerhafte Adresse in %s Zeile %d" + +-#: cache.c:985 dhcp.c:836 ++#: cache.c:1018 dhcp.c:841 + #, c-format + msgid "bad name at %s line %d" + msgstr "Fehlerhafter Name in %s Zeile %d" + +-#: cache.c:992 dhcp.c:911 ++#: cache.c:1027 dhcp.c:916 + #, c-format + msgid "read %s - %d addresses" + msgstr "%s gelesen - %d Adressen" + +-#: cache.c:1100 ++#: cache.c:1135 + msgid "cleared cache" + msgstr "Cache geleert" + +-#: cache.c:1123 ++#: cache.c:1164 + #, c-format + msgid "No IPv4 address found for %s" + msgstr "Keine IPv4-Adresse für %s gefunden" + +-#: cache.c:1201 ++#: cache.c:1242 + #, c-format + msgid "%s is a CNAME, not giving it to the DHCP lease of %s" + msgstr "%s ist ein CNAME, weise es der DHCP-Lease von %s nicht zu" + +-#: cache.c:1225 ++#: cache.c:1266 + #, c-format + msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s" + msgstr "Name %s wurde dem DHCP-Lease von %s nicht zugewiesen, da der Name in %s bereits mit Adresse %s existiert" + +-#: cache.c:1366 ++#: cache.c:1421 + #, c-format + msgid "time %lu" + msgstr "Zeit %lu" + +-#: cache.c:1367 ++#: cache.c:1422 + #, c-format + msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries." + msgstr "Cache Größe %d, %d/%d Cache-Einfügungen verwendeten nicht abgelaufene Cache-Einträge wieder." + +-#: cache.c:1369 ++#: cache.c:1424 + #, c-format + msgid "queries forwarded %u, queries answered locally %u" + msgstr "%u weitergeleitete Anfragen, %u lokal beantwortete Anfragen" + +-#: cache.c:1372 ++#: cache.c:1427 + #, c-format + msgid "queries for authoritative zones %u" + msgstr "Anfragen nach autoritativen Zonen %u" + +-#: cache.c:1398 ++#: cache.c:1453 + #, c-format + msgid "server %s#%d: queries sent %u, retried or failed %u" + msgstr "Server %s#%d: %u Anfragen gesendet, %u erneut versucht oder fehlgeschlagen" +@@ -100,7 +100,7 @@ msgstr "Konnte den Zufallszahlengenerator nicht initialisieren: %s" + msgid "failed to allocate memory" + msgstr "Konnte Speicher nicht belegen" + +-#: util.c:243 option.c:579 ++#: util.c:243 option.c:598 + msgid "could not get memory" + msgstr "Speicher nicht verfügbar" + +@@ -115,593 +115,626 @@ msgid "failed to allocate %d bytes" + msgstr "Konnte %d Bytes nicht belegen" + + # @Simon: not perfect but I cannot get nearer right now. +-#: util.c:429 ++#: util.c:430 + #, c-format + msgid "infinite" + msgstr "unendlich" + +-#: option.c:318 ++#: option.c:330 + msgid "Specify local address(es) to listen on." + msgstr "Lokale abzuhörende Adresse(n) angeben." + +-#: option.c:319 ++#: option.c:331 + msgid "Return ipaddr for all hosts in specified domains." + msgstr "IP-Adresse für alle Hosts in angegebenen Domänen festlegen." + + # FIXME: the English test is not to the point. Just use a shortened description + # from the manpage instead. -- MA +-#: option.c:320 ++#: option.c:332 + msgid "Fake reverse lookups for RFC1918 private address ranges." + msgstr "Für private Adressbereiche nach RFC1918 \"keine solche Domain\" liefern." + +-#: option.c:321 ++#: option.c:333 + msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)." + msgstr "Diese IP-Adresse als NXDOMAIN interpretieren (wehrt \"Suchhilfen\" ab)." + +-#: option.c:322 ++#: option.c:334 + #, c-format + msgid "Specify the size of the cache in entries (defaults to %s)." + msgstr "Größe des Caches (Zahl der Einträge) festlegen (Voreinstellung: %s)." + +-#: option.c:323 ++#: option.c:335 + #, c-format + msgid "Specify configuration file (defaults to %s)." + msgstr "Konfigurationsdatei festlegen (Voreinstellung: %s)." + +-#: option.c:324 ++#: option.c:336 + msgid "Do NOT fork into the background: run in debug mode." + msgstr "NICHT in den Hintergrund gehen: Betrieb im Debug-Modus" + +-#: option.c:325 ++#: option.c:337 + msgid "Do NOT forward queries with no domain part." + msgstr "Anfragen ohne Domänen-Teil NICHT weiterschicken." + +-#: option.c:326 ++#: option.c:338 + msgid "Return self-pointing MX records for local hosts." + msgstr "Für lokale Einträge MX-Einträge liefern, die auf sich selbst zeigen." + +-#: option.c:327 ++#: option.c:339 + msgid "Expand simple names in /etc/hosts with domain-suffix." + msgstr "Erweitere einfache Namen in /etc/hosts mit der Domänen-Endung." + +-#: option.c:328 ++#: option.c:340 + msgid "Don't forward spurious DNS requests from Windows hosts." + msgstr "'unechte' DNS-Anfragen von Windows-Rechnern nicht weiterleiten" + + # @Simon: I'm a bit unsure about "spurious" +-#: option.c:329 ++#: option.c:341 + msgid "Enable DHCP in the range given with lease duration." + msgstr "DHCP für angegebenen Bereich und Dauer einschalten" + +-#: option.c:330 ++#: option.c:342 + #, c-format + msgid "Change to this group after startup (defaults to %s)." + msgstr "Nach dem Start in diese Benutzergruppe wechseln (Voreinstellung %s)." + +-#: option.c:331 ++#: option.c:343 + msgid "Set address or hostname for a specified machine." + msgstr "Adresse oder Hostnamen für einen angegebenen Computer setzen." + +-#: option.c:332 ++#: option.c:344 + msgid "Read DHCP host specs from file." + msgstr "DHCP-Host-Angaben aus Datei lesen." + +-#: option.c:333 ++#: option.c:345 + msgid "Read DHCP option specs from file." + msgstr "DHCP-Optionen aus Datei lesen." + +-#: option.c:334 ++#: option.c:346 ++#, fuzzy ++msgid "Read DHCP host specs from a directory." ++msgstr "DHCP-Host-Angaben aus Datei lesen." ++ ++#: option.c:347 ++#, fuzzy ++msgid "Read DHCP options from a directory." ++msgstr "DHCP-Optionen aus Datei lesen." ++ ++#: option.c:348 + msgid "Evaluate conditional tag expression." + msgstr "Auswertung eines Ausdrucks bedingter Marken." + +-#: option.c:335 ++#: option.c:349 + #, c-format + msgid "Do NOT load %s file." + msgstr "%s-Datei NICHT laden." + +-#: option.c:336 ++#: option.c:350 + #, c-format + msgid "Specify a hosts file to be read in addition to %s." + msgstr "Hosts-Datei festlegen, die zusätzlich zu %s gelesen wird." + +-#: option.c:337 ++#: option.c:351 ++#, fuzzy ++msgid "Read hosts files from a directory." ++msgstr "DHCP-Host-Angaben aus Datei lesen." ++ ++#: option.c:352 + msgid "Specify interface(s) to listen on." + msgstr "Schnittstelle(n) zum Empfang festlegen." + +-#: option.c:338 ++#: option.c:353 + msgid "Specify interface(s) NOT to listen on." + msgstr "Schnittstelle(n) festlegen, die NICHT empfangen sollen." + +-#: option.c:339 ++#: option.c:354 + msgid "Map DHCP user class to tag." + msgstr "DHCP-Benutzerklasse auf Marke abbilden." + +-#: option.c:340 ++#: option.c:355 + msgid "Map RFC3046 circuit-id to tag." + msgstr "RFC3046 \"circuit-id\" auf Marke abbilden." + +-#: option.c:341 ++#: option.c:356 + msgid "Map RFC3046 remote-id to tag." + msgstr "RFC3046 \"remote-id\" auf Marke abbilden." + +-#: option.c:342 ++#: option.c:357 + msgid "Map RFC3993 subscriber-id to tag." + msgstr "RFC3993 \"subscriber-id\" auf Marke abbilden." + +-#: option.c:343 ++#: option.c:358 + msgid "Don't do DHCP for hosts with tag set." + msgstr "Kein DHCP für Hosts mit gesetzter Marke verwenden." + +-#: option.c:344 ++#: option.c:359 + msgid "Force broadcast replies for hosts with tag set." + msgstr "Rundsendung für Hosts mit gesetzter Marke erzwingen." + +-#: option.c:345 ++#: option.c:360 + msgid "Do NOT fork into the background, do NOT run in debug mode." + msgstr "NICHT in den Hintergrund wechseln, NICHT im Debug-Modus laufen." + +-#: option.c:346 ++#: option.c:361 + msgid "Assume we are the only DHCP server on the local network." + msgstr "Voraussetzen, dass wir der einzige DHCP-Server im lokalen Netz sind." + +-#: option.c:347 ++#: option.c:362 + #, c-format + msgid "Specify where to store DHCP leases (defaults to %s)." + msgstr "Festlegen, wo DHCP-Leases gespeichert werden (Voreinstellung %s)." + +-#: option.c:348 ++#: option.c:363 + msgid "Return MX records for local hosts." + msgstr "MX-Einträge für lokale Hosts liefern." + +-#: option.c:349 ++#: option.c:364 + msgid "Specify an MX record." + msgstr "Einen MX-Eintrag festlegen." + +-#: option.c:350 ++#: option.c:365 + msgid "Specify BOOTP options to DHCP server." + msgstr "BOOTP-Optionen für DHCP-Server festlegen." + +-#: option.c:351 ++#: option.c:366 + #, c-format + msgid "Do NOT poll %s file, reload only on SIGHUP." + msgstr "%s-Datei NICHT abfragen, nur bei SIGHUP neu laden." + +-#: option.c:352 ++#: option.c:367 + msgid "Do NOT cache failed search results." + msgstr "Fehlerhafte Suchergebnisse NICHT zwischenspeichern." + +-#: option.c:353 ++#: option.c:368 + #, c-format + msgid "Use nameservers strictly in the order given in %s." + msgstr "Namensserver streng in der in %s angegebenen Reihenfolge verwenden." + +-#: option.c:354 ++#: option.c:369 + msgid "Specify options to be sent to DHCP clients." + msgstr "Optionen festlegen, die an DHCP-Klienten gesendet werden." + +-#: option.c:355 ++#: option.c:370 + msgid "DHCP option sent even if the client does not request it." + msgstr "DHCP-Option, die selbst ohne Klientenanfrage gesendet wird." + +-#: option.c:356 ++#: option.c:371 + msgid "Specify port to listen for DNS requests on (defaults to 53)." + msgstr "Port zum Abhören der DNS-Anfragen festlegen (53 voreingestellt)." + +-#: option.c:357 ++#: option.c:372 + #, c-format + msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)." + msgstr "Maximale unterstützte UDP-Paketgröße für EDNS.0 (Voreinstellung %s)." + +-#: option.c:358 ++#: option.c:373 + msgid "Log DNS queries." + msgstr "DNS-Anfragen protokollieren." + +-#: option.c:359 ++#: option.c:374 + msgid "Force the originating port for upstream DNS queries." + msgstr "Ausgehenden Port erzwingen für DNS-Anfragen an vorgelagerte Server." + +-#: option.c:360 ++#: option.c:375 + msgid "Do NOT read resolv.conf." + msgstr "resolv.conf NICHT lesen." + +-#: option.c:361 ++#: option.c:376 + #, c-format + msgid "Specify path to resolv.conf (defaults to %s)." + msgstr "Pfad zu resolv.conf festlegen (%s voreingestellt)." + +-#: option.c:362 ++#: option.c:377 + msgid "Specify path to file with server= options" + msgstr " Dateipfad mit der Option server= angeben" + +-#: option.c:363 ++#: option.c:378 + msgid "Specify address(es) of upstream servers with optional domains." + msgstr "Adresse(n) vorgelagerter Server festlegen, optional mit Domänen." + +-#: option.c:364 ++#: option.c:379 + msgid "Specify address of upstream servers for reverse address queries" + msgstr "Adresse(n) vorgelagerter Server festlegen, für reverse Adressanfragen" + +-#: option.c:365 ++#: option.c:380 + msgid "Never forward queries to specified domains." + msgstr "Anfragen für angegebene Domänen niemals weiterleiten." + +-#: option.c:366 ++#: option.c:381 + msgid "Specify the domain to be assigned in DHCP leases." + msgstr "Domäne festlegen, die für DHCP-Leases zugewiesen wird." + +-#: option.c:367 ++#: option.c:382 + msgid "Specify default target in an MX record." + msgstr "Voreingestelltes Ziel für MX-Einträge festlegen." + +-#: option.c:368 ++#: option.c:383 + msgid "Specify time-to-live in seconds for replies from /etc/hosts." + msgstr "Gültigkeitsdauer für Antworten aus /etc/hosts festlegen." + +-#: option.c:369 ++#: option.c:384 + msgid "Specify time-to-live in seconds for negative caching." + msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen." + +-#: option.c:370 ++#: option.c:385 + msgid "Specify time-to-live in seconds for maximum TTL to send to clients." + msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen." + +-#: option.c:371 ++#: option.c:386 ++#, fuzzy ++msgid "Specify time-to-live ceiling for cache." ++msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen." ++ ++#: option.c:387 ++#, fuzzy ++msgid "Specify time-to-live floor for cache." ++msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen." ++ ++#: option.c:388 + #, c-format + msgid "Change to this user after startup. (defaults to %s)." + msgstr "Nach dem Start diese Benutzerrechte annehmen (%s voreingestellt)." + +-#: option.c:372 ++#: option.c:389 + msgid "Map DHCP vendor class to tag." + msgstr "DHCP-\"vendor class\" auf Marke abbilden." + +-#: option.c:373 ++#: option.c:390 + msgid "Display dnsmasq version and copyright information." + msgstr "dnsmasq-Version und Urheberrecht anzeigen." + +-#: option.c:374 ++#: option.c:391 + msgid "Translate IPv4 addresses from upstream servers." + msgstr "IPv4-Adressen von vorgelagerten Servern übersetzen." + +-#: option.c:375 ++#: option.c:392 + msgid "Specify a SRV record." + msgstr "SRV-Eintrag festlegen." + +-#: option.c:376 ++#: option.c:393 + msgid "Display this message. Use --help dhcp for known DHCP options." + msgstr "Diese Hilfe anzeigen. Benutzen Sie --help dhcp für bekannte DHCP-Optionen." + +-#: option.c:377 ++#: option.c:394 + #, c-format + msgid "Specify path of PID file (defaults to %s)." + msgstr "Dateipfad für Prozesskennung (PID) festlegen (Voreinstellung: %s)." + +-#: option.c:378 ++#: option.c:395 + #, c-format + msgid "Specify maximum number of DHCP leases (defaults to %s)." + msgstr "Höchstzahl der DHCP-Leases festlegen (%s voreingestellt)." + +-#: option.c:379 ++#: option.c:396 + msgid "Answer DNS queries based on the interface a query was sent to." + msgstr "DNS-Anfragen abhängig der Emfpangsschnittstelle beantworten." + +-#: option.c:380 ++#: option.c:397 + msgid "Specify TXT DNS record." + msgstr "DNS-TXT-Eintrag festlegen." + +-#: option.c:381 ++#: option.c:398 + msgid "Specify PTR DNS record." + msgstr "DNS-PTR-Eintrag festlegen." + +-#: option.c:382 ++#: option.c:399 + msgid "Give DNS name to IPv4 address of interface." + msgstr "Schnittstellennamen zur IPv4-Adresse des Interfaces auflösen." + +-#: option.c:383 ++#: option.c:400 + msgid "Bind only to interfaces in use." + msgstr "Nur an verwendete Schnittstellen binden." + +-#: option.c:384 ++#: option.c:401 + #, c-format + msgid "Read DHCP static host information from %s." + msgstr "Statische DHCP-Host-Information aus %s lesen." + +-#: option.c:385 ++#: option.c:402 + msgid "Enable the DBus interface for setting upstream servers, etc." + msgstr "DBus-Schnittstelle zum Festlegen vorgelagerter Server usw. festlegen." + +-#: option.c:386 ++#: option.c:403 + msgid "Do not provide DHCP on this interface, only provide DNS." + msgstr "Auf dieser Schnittstelle kein DHCP anbieten, sondern nur DNS." + +-#: option.c:387 ++#: option.c:404 + msgid "Enable dynamic address allocation for bootp." + msgstr "Dynamische Adressbelegung für bootp einschalten." + +-#: option.c:388 ++#: option.c:405 + msgid "Map MAC address (with wildcards) to option set." + msgstr "MAC-Adresse (mit Jokerzeichen) auf Netzmarke abbilden." + +-#: option.c:389 ++#: option.c:406 + msgid "Treat DHCP requests on aliases as arriving from interface." + msgstr "DHCP-Anfragen von Alias-Schnittstellen für die Hauptschnittstelle beantworten." + +-#: option.c:390 ++#: option.c:407 + msgid "Disable ICMP echo address checking in the DHCP server." + msgstr "ICMP-Echo-Adressprüfung im DHCP-Server abschalten." + +-#: option.c:391 ++#: option.c:408 + msgid "Shell script to run on DHCP lease creation and destruction." + msgstr "Skript, das bei Erzeugung/Löschung einer DHCP-Lease laufen soll." + +-#: option.c:392 ++#: option.c:409 + msgid "Lua script to run on DHCP lease creation and destruction." + msgstr "Lua-Skript, welches bei Erzeugung/Löschung eines DHCP-Leases laufen soll." + +-#: option.c:393 ++#: option.c:410 + msgid "Run lease-change scripts as this user." + msgstr "Lease-Änderungs-Skript mit den Rechten dieses Nutzers ausführen." + +-#: option.c:394 ++#: option.c:411 + msgid "Read configuration from all the files in this directory." + msgstr "Konfiguration aus allen Dateien in diesem Verzeichnis lesen." + +-#: option.c:395 ++#: option.c:412 + msgid "Log to this syslog facility or file. (defaults to DAEMON)" + msgstr "Für diese Syslog-Anlage oder in Datei loggen (Voreinstellung DAEMON)." + +-#: option.c:396 ++#: option.c:413 + msgid "Do not use leasefile." + msgstr "Keine Lease-Datei benützen." + +-#: option.c:397 ++#: option.c:414 + #, c-format + msgid "Maximum number of concurrent DNS queries. (defaults to %s)" + msgstr "Höchstzahl nebenläufiger DNS-Anfragen (%s voreingestellt)." + +-#: option.c:398 ++#: option.c:415 + #, c-format + msgid "Clear DNS cache when reloading %s." + msgstr "DNS-Cache beim Neuladen von %s löschen." + +-#: option.c:399 ++#: option.c:416 + msgid "Ignore hostnames provided by DHCP clients." + msgstr "Von DHCP-Clients gelieferte Hostnamen ignorieren." + +-#: option.c:400 ++#: option.c:417 + msgid "Do NOT reuse filename and server fields for extra DHCP options." + msgstr "Dateinamen und Server-Datenfehler für zusätzliche DHCP-Optionen NICHT wiederverwenden." + +-#: option.c:401 ++#: option.c:418 + msgid "Enable integrated read-only TFTP server." + msgstr "Eingebauten Nur-Lese-TFTP-Server einschalten." + +-#: option.c:402 ++#: option.c:419 + msgid "Export files by TFTP only from the specified subtree." + msgstr "Nur vom festgelegten Unterbaum Dateien per TFTP exportieren." + +-#: option.c:403 ++#: option.c:420 + msgid "Add client IP address to tftp-root." + msgstr "IP-Adresse des Klienten an tftp-root anhängen." + +-#: option.c:404 ++#: option.c:421 + msgid "Allow access only to files owned by the user running dnsmasq." + msgstr "Zugriff nur auf Dateien gestatten, die dem dnsmasq aufrufenden Benutzer gehören." + +-#: option.c:405 ++#: option.c:422 + #, c-format + msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)." + msgstr "Höchstzahl nebenläufiger TFTP-Übertragungen (%s voreingestellt)." + +-#: option.c:406 ++#: option.c:423 + msgid "Disable the TFTP blocksize extension." + msgstr "TFTP-Blockgrößen-Erweiterung abschalten." + +-#: option.c:407 ++#: option.c:424 + msgid "Convert TFTP filenames to lowercase" + msgstr "Konvertiere TFTP Dateinamen in Kleinschreibung" + +-#: option.c:408 ++#: option.c:425 + msgid "Ephemeral port range for use by TFTP transfers." + msgstr "Bereich für vorübergehende Ports für TFTP-Übertragungen." + +-#: option.c:409 ++#: option.c:426 + msgid "Extra logging for DHCP." + msgstr "Erweiterte DHCP-Protokollierung." + +-#: option.c:410 ++#: option.c:427 + msgid "Enable async. logging; optionally set queue length." + msgstr "Asynchrone Protokollierung einschalten, opt. Warteschlangenlänge festlegen." + +-#: option.c:411 ++#: option.c:428 + msgid "Stop DNS rebinding. Filter private IP ranges when resolving." + msgstr "DNS-Rebinding unterbinden, private IP-Bereiche bei der Auflösung ausfiltern." + +-#: option.c:412 ++#: option.c:429 + msgid "Allow rebinding of 127.0.0.0/8, for RBL servers." + msgstr "Auflösung zu 127.0.0.0/8 erlauben, für RBL-Server." + +-#: option.c:413 ++#: option.c:430 + msgid "Inhibit DNS-rebind protection on this domain." + msgstr "DNS-Rebind-Schutz für diese Domäne sperren." + +-#: option.c:414 ++#: option.c:431 + msgid "Always perform DNS queries to all servers." + msgstr "DNS-Anfragen immer an alle Server weiterleiten." + +-#: option.c:415 ++#: option.c:432 + msgid "Set tag if client includes matching option in request." + msgstr "Marke setzen, wenn Klient eine entsprechende Option anfragt." + +-#: option.c:416 ++#: option.c:433 + msgid "Use alternative ports for DHCP." + msgstr "Alternative Ports für DHCP verwenden." + +-#: option.c:417 ++#: option.c:434 + msgid "Specify NAPTR DNS record." + msgstr "DNS-NAPTR-Eintrag festlegen." + +-#: option.c:418 ++#: option.c:435 + msgid "Specify lowest port available for DNS query transmission." + msgstr "Niedrigsten verfügbaren Port für Übertragung von DNS-Anfragen festlegen." + +-#: option.c:419 ++#: option.c:436 + msgid "Use only fully qualified domain names for DHCP clients." + msgstr "Für DHCP-Klienten nur vollständig bestimmte Domänennamen benutzen." + + # FIXME: probably typo in original message. -- MA +-#: option.c:420 ++#: option.c:437 + msgid "Generate hostnames based on MAC address for nameless clients." + msgstr "Generiere Hostnamen auf Basis der MAC-Adresse für namenlose Klienten." + +-#: option.c:421 ++#: option.c:438 + msgid "Use these DHCP relays as full proxies." + msgstr "Diese DHCP-Relais als vollwertige Proxies verwenden." + +-#: option.c:422 ++#: option.c:439 + msgid "Relay DHCP requests to a remote server" + msgstr "Leute DHCP Anfragen an entfernten Server weiter" + +-#: option.c:423 ++#: option.c:440 + msgid "Specify alias name for LOCAL DNS name." + msgstr "Alias für LOKALEN DNS-Namen festlegen." + +-#: option.c:424 ++#: option.c:441 + msgid "Prompt to send to PXE clients." + msgstr "Aufforderung, die an PXE-Klienten geschickt wird." + +-#: option.c:425 ++#: option.c:442 + msgid "Boot service for PXE menu." + msgstr "Boot-Dienst für PXE-Menü." + +-#: option.c:426 ++#: option.c:443 + msgid "Check configuration syntax." + msgstr "Konfigurationssyntax prüfen." + +-#: option.c:427 ++#: option.c:444 + msgid "Add requestor's MAC address to forwarded DNS queries." + msgstr "Anfragende MAC-Adresse in die weiterleitende DNS-Anfrage einfügen" + +-#: option.c:428 ++#: option.c:445 + msgid "Add requestor's IP subnet to forwarded DNS queries." + msgstr "Füge das IP-Subnetz des Anfragenden in die weitergeleiteten DNS-Anfragen hinzu." + +-#: option.c:429 ++#: option.c:446 + msgid "Proxy DNSSEC validation results from upstream nameservers." + msgstr "Proxy-DNSSEC-Validierung-Ergebnisse von Upstream-Namensservern." + +-#: option.c:430 ++#: option.c:447 + msgid "Attempt to allocate sequential IP addresses to DHCP clients." + msgstr "Versuche sequenzielle IP-Adressen an DHCP-Klienten zu vergeben." + +-#: option.c:431 ++#: option.c:448 + msgid "Copy connection-track mark from queries to upstream connections." + msgstr "Kopiere \"connection-track mark\" von Anfragen nach Upstream-Verbindungen." + +-#: option.c:432 ++#: option.c:449 + msgid "Allow DHCP clients to do their own DDNS updates." + msgstr "Erlaube DHCP-Klienten ihre eigenen DDNS-Updates durchzuführen." + +-#: option.c:433 ++#: option.c:450 + msgid "Send router-advertisements for interfaces doing DHCPv6" + msgstr "Sende \"Router-Advertisments\" für Netzwerkschnittstellen, welche DHCPv6 nutzen" + +-#: option.c:434 ++#: option.c:451 + msgid "Specify DUID_EN-type DHCPv6 server DUID" + msgstr "Spezifiziere DUID_EN-type DHCPv6 Server DUID" + +-#: option.c:435 ++#: option.c:452 + msgid "Specify host (A/AAAA and PTR) records" + msgstr "Spezifiziere Host (A/AAAA und PTR) Einträge" + +-#: option.c:436 ++#: option.c:453 + msgid "Specify arbitrary DNS resource record" + msgstr "Spezifiziere einen beliebiegen DNS Eintrag" + +-#: option.c:437 ++#: option.c:454 + msgid "Bind to interfaces in use - check for new interfaces" + msgstr "Bindung zu Schnittstellen in Benutzung - prüfe auf neue Schnittstellen" + +-#: option.c:438 ++#: option.c:455 + msgid "Export local names to global DNS" + msgstr "Exportiere lokale Namen in das globale DNS" + +-#: option.c:439 ++#: option.c:456 + msgid "Domain to export to global DNS" + msgstr "Domain für das Exportieren des globalen DNS" + +-#: option.c:440 ++#: option.c:457 + msgid "Set TTL for authoritative replies" + msgstr "Setzte TTL für autoritative Antworten" + +-#: option.c:441 ++#: option.c:458 + msgid "Set authoritive zone information" + msgstr "Setze autoritative Zoneninformationen" + +-#: option.c:442 ++#: option.c:459 + msgid "Secondary authoritative nameservers for forward domains" + msgstr "Sekundärer autoritativer Nameserver für weitergeleitete Domains" + +-#: option.c:443 ++#: option.c:460 + msgid "Peers which are allowed to do zone transfer" + msgstr "Peers welche einen Zonentransfer durchführen dürfen" + +-#: option.c:444 ++#: option.c:461 + msgid "Specify ipsets to which matching domains should be added" + msgstr "Spezifiziere IPSets zu welcher passende Domains hinzugefügt werden sollen" + +-#: option.c:445 ++#: option.c:462 + msgid "Specify a domain and address range for synthesised names" + msgstr "Spezifiziere eine Domain und Adressbereich für synthetisierte Namen" + +-#: option.c:446 ++#: option.c:463 + msgid "Activate DNSSEC validation" + msgstr "Aktiviere DNSSEC-Validierung" + +-#: option.c:447 ++#: option.c:464 + msgid "Specify trust anchor key digest." + msgstr "Spezifiziere Vertrauensursprung (Trust Anchor) der Schlüssel-Prüfdaten (Key Digest)." + +-#: option.c:448 ++#: option.c:465 + msgid "Disable upstream checking for DNSSEC debugging." + msgstr "Deaktiviere die Überprüfung vorgelagerter Server für DNSSEC-Debugging" + +-#: option.c:449 ++#: option.c:466 + msgid "Ensure answers without DNSSEC are in unsigned zones." + msgstr "Stellt sicher, dass Antworten ohne DNSSEC sich in einer unsignierten Zone befinden." + +-#: option.c:450 ++#: option.c:467 + msgid "Don't check DNSSEC signature timestamps until first cache-reload" + msgstr "DNSSEC Signatur-Zeitstempel nicht prüfen, bis erstmalig der Cache neugeladen wird" + +-#: option.c:452 ++#: option.c:468 ++msgid "Timestamp file to verify system clock for DNSSEC" ++msgstr "" ++ ++#: option.c:470 + msgid "Specify DHCPv6 prefix class" + msgstr "Spezifiziere DHCPv6 Prefix Klasse" + +-#: option.c:454 ++#: option.c:472 + msgid "Set priority, resend-interval and router-lifetime" + msgstr "Setze Priorität, Intervall des erneuten Sendens und Router Lebenszeit" + +-#: option.c:455 ++#: option.c:473 + msgid "Do not log routine DHCP." + msgstr "Protokolliere kein DHCP." + +-#: option.c:456 ++#: option.c:474 + msgid "Do not log routine DHCPv6." + msgstr "Protokolliere kein DHCPv6." + +-#: option.c:457 ++#: option.c:475 + msgid "Do not log RA." + msgstr "RA nicht protokollieren." + +-#: option.c:458 ++#: option.c:476 + msgid "Accept queries only from directly-connected networks" + msgstr "Akzeptiere nur Anfragen von direkt verbundenen Netzwerken" + +-#: option.c:459 ++#: option.c:477 + msgid "Detect and remove DNS forwarding loops" + msgstr "Erkennen und Entfernen von DNS-Weiterleitungsschleifen" + +-#: option.c:661 ++#: option.c:478 ++msgid "Ignore DNS responses containing ipaddr." ++msgstr "" ++ ++#: option.c:680 + #, c-format + msgid "" + "Usage: dnsmasq [options]\n" +@@ -710,312 +743,312 @@ msgstr "" + "Verwendung: dnsmasq [Optionen]\n" + "\n" + +-#: option.c:663 ++#: option.c:682 + #, c-format + msgid "Use short options only on the command line.\n" + msgstr "Auf der Befehlszeile nur kurze Optionen verwenden!\n" + +-#: option.c:665 ++#: option.c:684 + #, c-format + msgid "Valid options are:\n" + msgstr "Gültige Optionen sind:\n" + +-#: option.c:722 option.c:726 ++#: option.c:741 option.c:745 + msgid "bad port" + msgstr "unzulässiger Port" + +-#: option.c:753 option.c:785 ++#: option.c:772 option.c:804 + msgid "interface binding not supported" + msgstr "Schnittstellenbindung nicht unterstützt" + +-#: option.c:762 option.c:3494 ++#: option.c:781 option.c:3570 + msgid "bad interface name" + msgstr "unzulässiger Schnittestellenname" + +-#: option.c:792 ++#: option.c:811 + msgid "bad address" + msgstr "Fehlerhafte Adresse" + +-#: option.c:974 ++#: option.c:993 + msgid "unsupported encapsulation for IPv6 option" + msgstr "Nicht unterstützte Verkapselung für eine IPv6-Option" + +-#: option.c:988 ++#: option.c:1007 + msgid "bad dhcp-option" + msgstr "Fehlerhafte DHCP-Option" + +-#: option.c:1056 ++#: option.c:1075 + msgid "bad IP address" + msgstr "Fehlerhafte IP-Adresse" + +-#: option.c:1059 option.c:1197 option.c:2812 ++#: option.c:1078 option.c:1216 option.c:2888 + msgid "bad IPv6 address" + msgstr "Fehlerhafte IPv6-Adresse" + +-#: option.c:1224 option.c:1318 ++#: option.c:1243 option.c:1337 + msgid "bad domain in dhcp-option" + msgstr "Fehlerhafte Domäne in DHCP-Option" + +-#: option.c:1356 ++#: option.c:1375 + msgid "dhcp-option too long" + msgstr "DHCP-Option zu lang" + +-#: option.c:1363 ++#: option.c:1382 + msgid "illegal dhcp-match" + msgstr "Unzulässige dhcp-match-Option" + +-#: option.c:1425 ++#: option.c:1444 + msgid "illegal repeated flag" + msgstr "unzulässig wiederholte Markierung" + +-#: option.c:1433 ++#: option.c:1452 + msgid "illegal repeated keyword" + msgstr "unzulässig wiederholtes Schlüsselwort" + +-#: option.c:1495 option.c:4092 ++#: option.c:1517 option.c:4186 + #, c-format + msgid "cannot access directory %s: %s" + msgstr "Kann auf Verzeichnis %s nicht zugreifen: %s" + +-#: option.c:1541 tftp.c:493 ++#: option.c:1563 tftp.c:493 + #, c-format + msgid "cannot access %s: %s" + msgstr "Kann auf %s nicht zugreifen: %s" + +-#: option.c:1588 ++#: option.c:1615 + msgid "setting log facility is not possible under Android" + msgstr "Die Einstellung Protokolliereinrichtung kann unter Android nicht gesetzt werden" + +-#: option.c:1597 ++#: option.c:1624 + msgid "bad log facility" + msgstr "Falsche Protokolliereinrichtung" + +-#: option.c:1650 ++#: option.c:1677 + msgid "bad MX preference" + msgstr "unzulässige MX-Präferenz-Angabe" + +-#: option.c:1655 ++#: option.c:1682 + msgid "bad MX name" + msgstr "unzulässiger MX-Name" + +-#: option.c:1669 ++#: option.c:1696 + msgid "bad MX target" + msgstr "unzulässiges MX-Ziel" + +-#: option.c:1681 ++#: option.c:1708 + msgid "cannot run scripts under uClinux" + msgstr "unter uClinux ist die Skriptausführung nicht möglich" + +-#: option.c:1683 ++#: option.c:1710 + msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts" + msgstr "Neuübersetzung mit HAVE_SCRIPT nötig, um Lease-Änderungs-Skripte auszuführen" + +-#: option.c:1687 ++#: option.c:1714 + msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts" + msgstr "Um Benutzerdefinierte Lua-Scripte zu ermöglichen, muss mit HAVE_LUASCRIPT neu kompiliert werden" + +-#: option.c:1928 option.c:1966 option.c:2015 ++#: option.c:1970 option.c:2015 option.c:2071 + msgid "bad prefix" + msgstr "unzulässiger Präfix" + +-#: option.c:2289 ++#: option.c:2352 + msgid "recompile with HAVE_IPSET defined to enable ipset directives" + msgstr "Um IPSet-Direktiven zu aktivieren, muss mit HAVE_IPSET neu übersetzt werden" + +-#: option.c:2469 ++#: option.c:2545 + msgid "bad port range" + msgstr "unzulässiger Portbereich" + +-#: option.c:2485 ++#: option.c:2561 + msgid "bad bridge-interface" + msgstr "unzulässige Brücken-Schnittstelle" + +-#: option.c:2545 ++#: option.c:2621 + msgid "only one tag allowed" + msgstr "nur eine Marke zulässig" + +-#: option.c:2565 option.c:2577 option.c:2683 option.c:2724 ++#: option.c:2641 option.c:2653 option.c:2759 option.c:2800 + msgid "bad dhcp-range" + msgstr "unzulässiger DHCP-Bereich" + +-#: option.c:2592 ++#: option.c:2668 + msgid "inconsistent DHCP range" + msgstr "inkonsistenter DHCP-Bereich" + +-#: option.c:2651 ++#: option.c:2727 + msgid "prefix length must be exactly 64 for RA subnets" + msgstr "Die Präfixlenge muss genau 64 für RA Subnetze sein" + +-#: option.c:2653 ++#: option.c:2729 + msgid "prefix length must be exactly 64 for subnet constructors" + msgstr "Die Präfixlenge muss genau 64 für Subnet Konstruktoren sein" + +-#: option.c:2657 ++#: option.c:2733 + msgid "prefix length must be at least 64" + msgstr "Die Präfixlänge muss mindestens 64 sein" + +-#: option.c:2660 ++#: option.c:2736 + msgid "inconsistent DHCPv6 range" + msgstr "Inkonsistenter DHCPv6-Bereich" + +-#: option.c:2671 ++#: option.c:2747 + msgid "prefix must be zero with \"constructor:\" argument" + msgstr "Prefix muss mit dem \"constructor:\" Argument Null sein" + +-#: option.c:2782 option.c:2830 ++#: option.c:2858 option.c:2906 + msgid "bad hex constant" + msgstr "Falscher Hexwert" + +-#: option.c:2804 ++#: option.c:2880 + msgid "cannot match tags in --dhcp-host" + msgstr "Kann die Tags in --dhcp-host nicht abgleichen" + +-#: option.c:2852 ++#: option.c:2928 + #, c-format + msgid "duplicate dhcp-host IP address %s" + msgstr "doppelte dhcp-host IP-Adresse %s" + +-#: option.c:2910 ++#: option.c:2986 + msgid "bad DHCP host name" + msgstr "unzulässiger DHCP-Hostname" + +-#: option.c:2992 ++#: option.c:3068 + msgid "bad tag-if" + msgstr "unzulässige bedingte Marke (tag-if)" + +-#: option.c:3316 option.c:3710 ++#: option.c:3392 option.c:3786 + msgid "invalid port number" + msgstr "unzulässige Portnummer" + +-#: option.c:3378 ++#: option.c:3454 + msgid "bad dhcp-proxy address" + msgstr "Fehlerhafte DHCP-Proxy-Adresse" + +-#: option.c:3404 ++#: option.c:3480 + msgid "Bad dhcp-relay" + msgstr "unzulässiger dhcp-relay" + +-#: option.c:3430 ++#: option.c:3506 + msgid "bad RA-params" + msgstr "unzulässige RA-Parameter" + +-#: option.c:3439 ++#: option.c:3515 + msgid "bad DUID" + msgstr "unzulässige DUID" + +-#: option.c:3481 ++#: option.c:3557 + msgid "invalid alias range" + msgstr "unzulässiger Alias-Bereich" + +-#: option.c:3535 ++#: option.c:3611 + msgid "bad CNAME" + msgstr "unzulässiger CNAME" + +-#: option.c:3540 ++#: option.c:3616 + msgid "duplicate CNAME" + msgstr "doppelter CNAME" + +-#: option.c:3560 ++#: option.c:3636 + msgid "bad PTR record" + msgstr "unzulässiger PTR-Eintrag" + +-#: option.c:3591 ++#: option.c:3667 + msgid "bad NAPTR record" + msgstr "unzulässiger NAPTR-Eintrag" + +-#: option.c:3625 ++#: option.c:3701 + msgid "bad RR record" + msgstr "unzulässiger RR-Eintrag" + +-#: option.c:3655 ++#: option.c:3731 + msgid "bad TXT record" + msgstr "unzulässiger TXT-Eintrag" + +-#: option.c:3696 ++#: option.c:3772 + msgid "bad SRV record" + msgstr "unzulässiger SRV-Eintrag" + +-#: option.c:3703 ++#: option.c:3779 + msgid "bad SRV target" + msgstr "unzulässiges SRV-Ziel" + +-#: option.c:3717 ++#: option.c:3793 + msgid "invalid priority" + msgstr "unzulässige Priorität" + +-#: option.c:3724 ++#: option.c:3800 + msgid "invalid weight" + msgstr "unzulässige Wichtung" + +-#: option.c:3748 ++#: option.c:3824 + msgid "Bad host-record" + msgstr "unzulässiger host-record" + +-#: option.c:3765 ++#: option.c:3841 + msgid "Bad name in host-record" + msgstr "Unzulässiger Name in host-record" + +-#: option.c:3826 ++#: option.c:3906 + msgid "bad trust anchor" + msgstr "unzulässiger Vertrauensursprung (Trust Anchor)" + +-#: option.c:3840 ++#: option.c:3920 + msgid "bad HEX in trust anchor" + msgstr "unzulässiger Hexwert in Vertrauensursprung (Trust Anchor)" + +-#: option.c:3850 ++#: option.c:3930 + msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DNSSEC/DBus support)" + msgstr "Nicht unterstützte Option (prüfen Sie, ob DNSMasq mit DHCP/TFTP/DNSSEC/DBus-Unterstützung übersetzt wurde)" + +-#: option.c:3909 ++#: option.c:3989 + msgid "missing \"" + msgstr "fehlende \\\"" + +-#: option.c:3966 ++#: option.c:4046 + msgid "bad option" + msgstr "unzulässige Option" + +-#: option.c:3968 ++#: option.c:4048 + msgid "extraneous parameter" + msgstr "überschüssiger Parameter" + +-#: option.c:3970 ++#: option.c:4050 + msgid "missing parameter" + msgstr "fehler Parameter" + +-#: option.c:3972 ++#: option.c:4052 + msgid "illegal option" + msgstr "unzulässige Option" + +-#: option.c:3979 ++#: option.c:4059 + msgid "error" + msgstr "Fehler" + +-#: option.c:3981 ++#: option.c:4061 + #, c-format + msgid " at line %d of %s" + msgstr " in Zeile %d von %s" + +-#: option.c:4045 option.c:4168 tftp.c:667 +-#, c-format +-msgid "cannot read %s: %s" +-msgstr "kann %s nicht lesen: %s" +- +-#: option.c:4229 option.c:4265 ++#: option.c:4076 option.c:4323 option.c:4359 + #, c-format + msgid "read %s" + msgstr "%s gelesen" + +-#: option.c:4331 ++#: option.c:4139 option.c:4262 tftp.c:667 ++#, c-format ++msgid "cannot read %s: %s" ++msgstr "kann %s nicht lesen: %s" ++ ++#: option.c:4425 + msgid "junk found in command line" + msgstr "Mist in der Kommandozeile gefunden" + +-#: option.c:4366 ++#: option.c:4460 + #, c-format + msgid "Dnsmasq version %s %s\n" + msgstr "Dnsmasq Version %s %s\n" + +-#: option.c:4367 ++#: option.c:4461 + #, c-format + msgid "" + "Compile time options: %s\n" +@@ -1024,90 +1057,90 @@ msgstr "" + "Kompilierungs-Optionen %s\n" + "\n" + +-#: option.c:4368 ++#: option.c:4462 + #, c-format + msgid "This software comes with ABSOLUTELY NO WARRANTY.\n" + msgstr "Für diese Software wird ABSOLUT KEINE GARANTIE gewährt.\n" + + # FIXME: this must be one long string! -- MA +-#: option.c:4369 ++#: option.c:4463 + #, c-format + msgid "Dnsmasq is free software, and you are welcome to redistribute it\n" + msgstr "Dnsmasq ist freie Software, und du bist willkommen es weiter zu verteilen\n" + +-#: option.c:4370 ++#: option.c:4464 + #, c-format + msgid "under the terms of the GNU General Public License, version 2 or 3.\n" + msgstr "unter den Bedingungen der GNU General Public Lizenz, Version 2 oder 3.\n" + +-#: option.c:4381 ++#: option.c:4475 + msgid "try --help" + msgstr "versuchen Sie --help" + +-#: option.c:4383 ++#: option.c:4477 + msgid "try -w" + msgstr "versuchen Sie -w" + +-#: option.c:4385 ++#: option.c:4479 + #, c-format + msgid "bad command line options: %s" + msgstr "unzulässige Optionen auf der Befehlszeile: %s" + +-#: option.c:4434 ++#: option.c:4535 + #, c-format + msgid "cannot get host-name: %s" + msgstr "kann Hostnamen nicht ermitteln: %s" + +-#: option.c:4462 ++#: option.c:4563 + msgid "only one resolv.conf file allowed in no-poll mode." + msgstr "mit -n/--no-poll ist nur eine resolv.conf-Datei zulässig." + +-#: option.c:4472 ++#: option.c:4573 + msgid "must have exactly one resolv.conf to read domain from." + msgstr "Um die Domäne zu lesen, muss genau eine resolv.conf-Datei verwendet werden." + +-#: option.c:4475 network.c:1506 dhcp.c:769 ++#: option.c:4576 network.c:1506 dhcp.c:774 + #, c-format + msgid "failed to read %s: %s" + msgstr "konnte %s nicht lesen: %s" + +-#: option.c:4492 ++#: option.c:4593 + #, c-format + msgid "no search directive found in %s" + msgstr "keine \"search\"-Anweisung in %s gefunden" + +-#: option.c:4513 ++#: option.c:4614 + msgid "there must be a default domain when --dhcp-fqdn is set" + msgstr "Es muss eine standard Domain gesetzt sein, wenn --dhcp-fqdn gesetzt ist" + +-#: option.c:4522 ++#: option.c:4623 + msgid "syntax check OK" + msgstr "Syntaxprüfung OK" + +-#: forward.c:114 ++#: forward.c:111 + #, c-format + msgid "failed to send packet: %s" + msgstr "Fehlgeschlagen, folgendes Paket zu senden: %s" + +-#: forward.c:574 ++#: forward.c:572 + msgid "discarding DNS reply: subnet option mismatch" + msgstr "Verwerfe DNS Antwort: Subnetoption stimmt nicht überrein" + +-#: forward.c:597 ++#: forward.c:595 + #, c-format + msgid "nameserver %s refused to do a recursive query" + msgstr "Namensserver %s hat eine rekursive Anfrage verweigert" + +-#: forward.c:629 ++#: forward.c:627 + #, c-format + msgid "possible DNS-rebind attack detected: %s" + msgstr "möglichen DNS-Rebind-Angriff entdeckt: %s" + +-#: forward.c:1132 forward.c:1663 ++#: forward.c:1156 forward.c:1722 + msgid "Ignoring query from non-local network" + msgstr "Ignoriere Anfragen vom nicht lokalen Netzwerk" + +-#: forward.c:2101 ++#: forward.c:2178 + #, c-format + msgid "Maximum number of concurrent DNS queries reached (max: %d)" + msgstr "Maximale Anzahl an nebenläufiger DNS-Anfragen erreicht (Max: %d)" +@@ -1198,265 +1231,284 @@ msgstr "Benutze Namensserver %s#%d(via %s)" + msgid "using nameserver %s#%d" + msgstr "Benutze Namensserver %s#%d" + +-#: dnsmasq.c:154 +-msgid "No trust anchors provided for DNSSEC" ++#: dnsmasq.c:149 ++msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" ++msgstr "" ++ ++#: dnsmasq.c:156 ++#, fuzzy ++msgid "no trust anchors provided for DNSSEC" + msgstr "Keine Vertrauensursprünge (Trust Anchor) für DNSSEC verfügbar" + +-#: dnsmasq.c:157 +-msgid "Cannot reduce cache size from default when DNSSEC enabled" ++#: dnsmasq.c:159 ++#, fuzzy ++msgid "cannot reduce cache size from default when DNSSEC enabled" + msgstr "Kann die Standard Cachegröße nicht verkleinern, wenn DNSSEC aktiviert ist" + +-#: dnsmasq.c:159 ++#: dnsmasq.c:161 + msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h" + msgstr "DNSSEC nicht verfügbar: setzen Sie HAVE_DNSSEC in src/config.h" + +-#: dnsmasq.c:165 ++#: dnsmasq.c:167 + msgid "TFTP server not available: set HAVE_TFTP in src/config.h" + msgstr "TFTP-Server nicht verfügbar, setzen Sie HAVE_TFTP in src/config.h" + +-#: dnsmasq.c:170 +-msgid "Cannot use --conntrack AND --query-port" ++#: dnsmasq.c:172 ++#, fuzzy ++msgid "cannot use --conntrack AND --query-port" + msgstr "Kann nicht --conntrack UND --query-port einsetzen" + +-#: dnsmasq.c:173 +-msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h" ++#: dnsmasq.c:175 ++#, fuzzy ++msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" + msgstr "Conntrack-Unterstützung nicht verfügbar: setze HAVE_CONNTRACK in src/config.h" + +-#: dnsmasq.c:178 ++#: dnsmasq.c:180 + msgid "asychronous logging is not available under Solaris" + msgstr "asynchrone Protokollierung unter Solaris nicht verfügbar" + +-#: dnsmasq.c:183 ++#: dnsmasq.c:185 + msgid "asychronous logging is not available under Android" + msgstr "Asynchrone Protokollierung unter Android nicht verfügbar" + +-#: dnsmasq.c:188 ++#: dnsmasq.c:190 + msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h" + msgstr "Authoritatives DNS nicht verfügbar: Es muss HAVE_AUTH in src/config.h gesetzt sein" + +-#: dnsmasq.c:193 +-msgid "Loop detection not available: set HAVE_LOOP in src/config.h" ++#: dnsmasq.c:195 ++#, fuzzy ++msgid "loop detection not available: set HAVE_LOOP in src/config.h" + msgstr "Loop-Erkennung nicht verfügbar, setzen Sie HAVE_LOOP in src/config.h" + +-#: dnsmasq.c:201 ++#: dnsmasq.c:203 + msgid "zone serial must be configured in --auth-soa" + msgstr "Zonen Seriennummer muss mit --auth-soa konfiguriert werden" + +-#: dnsmasq.c:219 ++#: dnsmasq.c:221 + msgid "dhcp-range constructor not available on this platform" + msgstr "dhcp-range Konstruktor ist auf dieser Plattform nicht verfübar" + +-#: dnsmasq.c:262 ++#: dnsmasq.c:264 + msgid "cannot set --bind-interfaces and --bind-dynamic" + msgstr "Kann nicht --bind-interfaces und --bind-dynamic setzen" + +-#: dnsmasq.c:265 ++#: dnsmasq.c:267 + #, c-format + msgid "failed to find list of interfaces: %s" + msgstr "konnte Schnitstellenliste nicht beziehen: %s" + +-#: dnsmasq.c:274 ++#: dnsmasq.c:276 + #, c-format + msgid "unknown interface %s" + msgstr "unbekannte Schnittstelle %s" + +-#: dnsmasq.c:330 dnsmasq.c:954 ++#: dnsmasq.c:340 dnsmasq.c:1004 + #, c-format + msgid "DBus error: %s" + msgstr "DBus-Fehler: %s" + +-#: dnsmasq.c:333 ++#: dnsmasq.c:343 + msgid "DBus not available: set HAVE_DBUS in src/config.h" + msgstr "DBus nicht verfügbar: setzen Sie HAVE_DBUS in src/config.h" + +-#: dnsmasq.c:361 ++#: dnsmasq.c:371 + #, c-format + msgid "unknown user or group: %s" + msgstr "Unbekannter Benutzer oder Gruppe: %s" + +-#: dnsmasq.c:416 ++#: dnsmasq.c:426 + #, c-format + msgid "cannot chdir to filesystem root: %s" + msgstr "kann nicht ins Wurzelverzeichnis des Dateisystems wechseln: %s" + + # FIXME: this and the next would need commas after the version +-#: dnsmasq.c:653 ++#: dnsmasq.c:667 + #, c-format + msgid "started, version %s DNS disabled" + msgstr "gestartet, Version %s, DNS abgeschaltet" + +-#: dnsmasq.c:655 ++#: dnsmasq.c:669 + #, c-format + msgid "started, version %s cachesize %d" + msgstr "gestartet, Version %s, Cachegröße %d" + +-#: dnsmasq.c:657 ++#: dnsmasq.c:671 + #, c-format + msgid "started, version %s cache disabled" + msgstr "Gestartet, Version %s Cache deaktiviert" + +-#: dnsmasq.c:659 ++#: dnsmasq.c:673 + #, c-format + msgid "compile time options: %s" + msgstr "Übersetzungsoptionen: %s" + +-#: dnsmasq.c:665 ++#: dnsmasq.c:679 + msgid "DBus support enabled: connected to system bus" + msgstr "DBus-Unterstützung eingeschaltet: mit Systembus verbunden" + +-#: dnsmasq.c:667 ++#: dnsmasq.c:681 + msgid "DBus support enabled: bus connection pending" + msgstr "DBus-Unterstützung eingeschaltet: warte auf Systembus-Verbindung" + +-#: dnsmasq.c:672 ++#: dnsmasq.c:686 + msgid "DNS service limited to local subnets" + msgstr "DNS-Dienst auf lokale Subnetze eingeschränkt" + +-#: dnsmasq.c:677 ++#: dnsmasq.c:702 + msgid "DNSSEC validation enabled" + msgstr "DNSSEC-Validierung aktiviert" + +-#: dnsmasq.c:679 ++#: dnsmasq.c:705 + msgid "DNSSEC signature timestamps not checked until first cache reload" + msgstr "DNSSEC Signatur-Zeitstempel werden erst ab dem ersten Neuladen des Caches überprüft" + +-#: dnsmasq.c:684 ++#: dnsmasq.c:708 ++#, fuzzy ++msgid "DNSSEC signature timestamps not checked until system time valid" ++msgstr "DNSSEC Signatur-Zeitstempel werden erst ab dem ersten Neuladen des Caches überprüft" ++ ++#: dnsmasq.c:713 + #, c-format + msgid "warning: failed to change owner of %s: %s" + msgstr "Warnung: konnte den Besitzer von %s nicht ändern: %s" + +-#: dnsmasq.c:688 ++#: dnsmasq.c:717 + msgid "setting --bind-interfaces option because of OS limitations" + msgstr "Aktiviere --bind-interfaces wegen Einschränkungen des Betriebssystems" + +-#: dnsmasq.c:698 ++#: dnsmasq.c:727 + #, c-format + msgid "warning: interface %s does not currently exist" + msgstr "Warnung: Schnittstelle %s existiert derzeit nicht" + +-#: dnsmasq.c:703 ++#: dnsmasq.c:732 + msgid "warning: ignoring resolv-file flag because no-resolv is set" + msgstr "Warnung: Ignoriere \"resolv-file\", weil \"no-resolv\" aktiv ist" + +-#: dnsmasq.c:706 ++#: dnsmasq.c:735 + msgid "warning: no upstream servers configured" + msgstr "Warnung: keine vorgelagerten (Upstream) Server konfiguriert" + +-#: dnsmasq.c:710 ++#: dnsmasq.c:739 + #, c-format + msgid "asynchronous logging enabled, queue limit is %d messages" + msgstr "asynchrone Protokollierung eingeschaltet, Warteschlange fasst %d Nachrichten" + +-#: dnsmasq.c:731 ++#: dnsmasq.c:760 + msgid "IPv6 router advertisement enabled" + msgstr "IPv6-Router-Advertisement aktiviert" + +-#: dnsmasq.c:736 ++#: dnsmasq.c:765 + #, c-format + msgid "DHCP, sockets bound exclusively to interface %s" + msgstr "DHCP, Sockets exklusiv an das Interface %s gebunden" + + # FIXME: this and the next few must be full strings to be translatable - do not assemble in code" +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "root is " + msgstr "Wurzel ist " + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "enabled" + msgstr "Aktiviert" + +-#: dnsmasq.c:755 ++#: dnsmasq.c:784 + msgid "secure mode" + msgstr "sicherer Modus" + +-#: dnsmasq.c:781 ++#: dnsmasq.c:810 + #, c-format + msgid "restricting maximum simultaneous TFTP transfers to %d" + msgstr "Begrenze gleichzeitige TFTP-Übertragungen auf maximal %d" + +-#: dnsmasq.c:956 ++#: dnsmasq.c:1006 + msgid "connected to system DBus" + msgstr "Mit System-DBus verbunden" + +-#: dnsmasq.c:1106 ++#: dnsmasq.c:1156 + #, c-format + msgid "cannot fork into background: %s" + msgstr "kann nicht in den Hintergrund abspalten: %s" + +-#: dnsmasq.c:1109 ++#: dnsmasq.c:1159 + #, c-format + msgid "failed to create helper: %s" + msgstr "kann Helfer nicht erzeugen: %s" + +-#: dnsmasq.c:1112 ++#: dnsmasq.c:1162 + #, c-format + msgid "setting capabilities failed: %s" + msgstr "kann \"capabilities\" nicht setzen: %s" + +-#: dnsmasq.c:1115 ++#: dnsmasq.c:1165 + #, c-format + msgid "failed to change user-id to %s: %s" + msgstr "Kann nicht Benutzerrechte %s annehmen: %s" + +-#: dnsmasq.c:1118 ++#: dnsmasq.c:1168 + #, c-format + msgid "failed to change group-id to %s: %s" + msgstr "Kann nicht Gruppenrechte %s annehmen: %s" + +-#: dnsmasq.c:1121 ++#: dnsmasq.c:1171 + #, c-format + msgid "failed to open pidfile %s: %s" + msgstr "kann die Prozessidentifikations-(PID)-Datei %s nicht öffnen: %s" + +-#: dnsmasq.c:1124 ++#: dnsmasq.c:1174 + #, c-format + msgid "cannot open log %s: %s" + msgstr "Kann Logdatei %s nicht öffnen: %s" + +-#: dnsmasq.c:1127 ++#: dnsmasq.c:1177 + #, c-format + msgid "failed to load Lua script: %s" + msgstr "Konnte Lua-Script nicht laden: %s" + +-#: dnsmasq.c:1130 ++#: dnsmasq.c:1180 + #, c-format + msgid "TFTP directory %s inaccessible: %s" + msgstr "Das TFTP-Verzeichnis %s ist nicht zugreifbar: %s" + +-#: dnsmasq.c:1151 ++#: dnsmasq.c:1183 ++#, fuzzy, c-format ++msgid "cannot create timestamp file %s: %s" ++msgstr "kann Lease-Datei %s nicht öffnen: %s" ++ ++#: dnsmasq.c:1204 + msgid "now checking DNSSEC signature timestamps" + msgstr "Prüfe jetzt DNSSEC Signatur-Zeitstempel" + +-#: dnsmasq.c:1218 ++#: dnsmasq.c:1271 + #, c-format + msgid "script process killed by signal %d" + msgstr "Scriptprozess durch Signal %d getötet" + +-#: dnsmasq.c:1222 ++#: dnsmasq.c:1275 + #, c-format + msgid "script process exited with status %d" + msgstr "Scriptprozess hat sich mit Status %d beendet" + +-#: dnsmasq.c:1226 ++#: dnsmasq.c:1279 + #, c-format + msgid "failed to execute %s: %s" + msgstr "konnte %s nicht ausführen: %s" + +-#: dnsmasq.c:1281 ++#: dnsmasq.c:1334 + msgid "exiting on receipt of SIGTERM" + msgstr "beende nach Empfang von SIGTERM" + +-#: dnsmasq.c:1309 ++#: dnsmasq.c:1362 + #, c-format + msgid "failed to access %s: %s" + msgstr "konnte auf %s nicht zugreifen: %s" + +-#: dnsmasq.c:1339 ++#: dnsmasq.c:1392 + #, c-format + msgid "reading %s" + msgstr "lese %s" + +-#: dnsmasq.c:1350 ++#: dnsmasq.c:1403 + #, c-format + msgid "no servers found in %s, will retry" + msgstr "keine Server in %s gefunden, werde es später neu versuchen" +@@ -1496,27 +1548,27 @@ msgstr "unbekannte Schnittstelle %s in bridge-interface" + msgid "DHCP packet received on %s which has no address" + msgstr "DHCP-Paket ohne Adresse an Schnittstelle %s empfangen" + +-#: dhcp.c:408 ++#: dhcp.c:412 + #, c-format + msgid "ARP-cache injection failed: %s" + msgstr "APR-Cache Injektion fehlgeschlagen: %s" + +-#: dhcp.c:506 ++#: dhcp.c:511 + #, c-format + msgid "DHCP range %s -- %s is not consistent with netmask %s" + msgstr "DHCP-Bereich %s - %s passt nicht zur Netzmaske %s" + +-#: dhcp.c:807 ++#: dhcp.c:812 + #, c-format + msgid "bad line at %s line %d" + msgstr "ungültige Zeile %2$d in Datei %1$s" + +-#: dhcp.c:850 ++#: dhcp.c:855 + #, c-format + msgid "ignoring %s line %d, duplicate name or IP address" + msgstr "ignoriere %s Zeile %d, doppelter Name oder doppelte IP-Adresse" + +-#: dhcp.c:994 rfc3315.c:2089 ++#: dhcp.c:999 rfc3315.c:2139 + #, c-format + msgid "DHCP relay %s -> %s" + msgstr "DHCP Weiterleitung %s -> %s" +@@ -1591,12 +1643,12 @@ msgstr "%u Benutzerklasse: %s" + msgid "disabled" + msgstr "deaktiviert" + +-#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:602 rfc3315.c:823 +-#: rfc3315.c:1095 ++#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:603 rfc3315.c:860 ++#: rfc3315.c:1139 + msgid "ignored" + msgstr "ignoriert" + +-#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:873 ++#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:910 + msgid "address in use" + msgstr "Adresse in Nutzung" + +@@ -1616,7 +1668,7 @@ msgstr "Keine Adresse konfiguriert" + msgid "no leases left" + msgstr "Keine Leases übrig" + +-#: rfc2131.c:691 rfc3315.c:475 ++#: rfc2131.c:691 rfc3315.c:476 + #, c-format + msgid "%u client provides name: %s" + msgstr "%u Klient stellt Name bereit: %s" +@@ -1625,7 +1677,7 @@ msgstr "%u Klient stellt Name bereit: %s" + msgid "PXE BIS not supported" + msgstr "PXE BIS nicht unterstützt" + +-#: rfc2131.c:935 rfc3315.c:1189 ++#: rfc2131.c:935 rfc3315.c:1233 + #, c-format + msgid "disabling DHCP static address %s for %s" + msgstr "schalte statische DHCP-Adresse %s für %s ab" +@@ -1663,7 +1715,7 @@ msgstr "Falsche Server-ID" + msgid "wrong address" + msgstr "Falsche Adresse" + +-#: rfc2131.c:1143 rfc3315.c:969 ++#: rfc2131.c:1143 rfc3315.c:1006 + msgid "lease not found" + msgstr "Lease nicht gefunden" + +@@ -1713,7 +1765,7 @@ msgstr "kann DHCP/BOOTP-Opition %d nicht setzen: kein Platz mehr im Paket" + msgid "PXE menu too large" + msgstr "PXE-Menüeintrag zu groß" + +-#: rfc2131.c:2173 rfc3315.c:1456 ++#: rfc2131.c:2173 rfc3315.c:1506 + #, c-format + msgid "%u requested options: %s" + msgstr "%u angeforderte Optionen: %s" +@@ -1728,7 +1780,7 @@ msgstr "Kann RFC3925-Option nicht senden: zu viele Optionen für Unternehmen Nr. + msgid "cannot create netlink socket: %s" + msgstr "kann Netlink-Socket nicht erzeugen: %s" + +-#: netlink.c:347 ++#: netlink.c:348 + #, c-format + msgid "netlink returns error: %s" + msgstr "Netlink liefert Fehler %s" +@@ -1846,63 +1898,63 @@ msgstr "Kein Adressbereich verfügbar für die DHCPv6-Anfrage via %s" + msgid "%u available DHCPv6 subnet: %s/%d" + msgstr "%u verfügbare(s) DHCPv6-Subnetz: %s/%d" + +-#: rfc3315.c:379 ++#: rfc3315.c:380 + #, c-format + msgid "%u vendor class: %u" + msgstr "%u Herstellerklasse: %u" + +-#: rfc3315.c:427 ++#: rfc3315.c:428 + #, c-format + msgid "%u client MAC address: %s" + msgstr "%u Klient MAC-Adresse: %s" + + # FIXME: do not assemble +-#: rfc3315.c:659 ++#: rfc3315.c:660 + #, c-format + msgid "unknown prefix-class %d" + msgstr "unbekannte Präfixklasse %d" + +-#: rfc3315.c:791 rfc3315.c:913 ++#: rfc3315.c:803 rfc3315.c:902 ++msgid "address unavailable" ++msgstr "Adresse nicht verfügbar" ++ ++#: rfc3315.c:815 rfc3315.c:950 rfc3315.c:1283 + msgid "success" + msgstr "Erfolg" + +-#: rfc3315.c:806 rfc3315.c:808 rfc3315.c:921 rfc3315.c:923 ++#: rfc3315.c:843 rfc3315.c:845 rfc3315.c:958 rfc3315.c:960 + msgid "no addresses available" + msgstr "Keine Adressen verfügbar" + +-#: rfc3315.c:865 +-msgid "address unavailable" +-msgstr "Adresse nicht verfügbar" +- +-#: rfc3315.c:900 ++#: rfc3315.c:937 + msgid "not on link" + msgstr "nicht on link" + +-#: rfc3315.c:973 rfc3315.c:1151 rfc3315.c:1228 ++#: rfc3315.c:1010 rfc3315.c:1195 rfc3315.c:1272 + msgid "no binding found" + msgstr "Keine Bindung gefunden" + +-#: rfc3315.c:1011 ++#: rfc3315.c:1048 + msgid "deprecated" + msgstr "veraltet" + +-#: rfc3315.c:1016 ++#: rfc3315.c:1053 + msgid "address invalid" + msgstr "Adresse ungültig" + +-#: rfc3315.c:1061 ++#: rfc3315.c:1100 + msgid "confirm failed" + msgstr "Bestätigung fehlgeschlagen" + +-#: rfc3315.c:1072 ++#: rfc3315.c:1116 + msgid "all addresses still on link" + msgstr "Alle Adressen immer noch on link" + +-#: rfc3315.c:1160 ++#: rfc3315.c:1204 + msgid "release received" + msgstr "Freigabe empfangen" + +-#: rfc3315.c:2080 ++#: rfc3315.c:2130 + msgid "Cannot multicast to DHCPv6 server without correct interface" + msgstr "Kann nicht zum DHCPv6 Server multicasten ohne korrekte Schnittstelle" + +@@ -1995,7 +2047,7 @@ msgstr "DHCP Weiterleitung von %s nach %s" + msgid "cannot create ICMPv6 socket: %s" + msgstr "Kann ICMPv6-Socket nicht erzeugen: %s" + +-#: auth.c:429 ++#: auth.c:436 + #, c-format + msgid "ignoring zone transfer request from %s" + msgstr "ignoriere Zonentransfer-Anfrage von %s" +@@ -2010,54 +2062,89 @@ msgstr "konnte Kernelversion nicht finden: %s" + msgid "failed to create IPset control socket: %s" + msgstr "konnte IPset-Kontroll-Socket nicht erzeugen: %s" + ++#: dnssec.c:425 dnssec.c:469 ++#, fuzzy, c-format ++msgid "failed to update mtime on %s: %s" ++msgstr "kann die Prozessidentifikations-(PID)-Datei %s nicht öffnen: %s" ++ + #: blockdata.c:58 + #, c-format + msgid "DNSSEC memory in use %u, max %u, allocated %u" + msgstr "DNSSEC Speicher in Benutzung %u, Max %u, zugewiesen %u" + +-#: tables.c:76 ++#: tables.c:80 + msgid "error: fill_addr missused" + msgstr "Fehler: fill_addr falsch verwendet" + +-#: tables.c:105 ++#: tables.c:109 + #, c-format + msgid "failed to access pf devices: %s" + msgstr "konnte auf pf Geräte nicht zugreifen: %s" + +-#: tables.c:119 ++#: tables.c:123 + #, c-format + msgid "warning: no opened pf devices %s" + msgstr "Warnung: Keine geöffneten pf Geräte %s" + +-#: tables.c:127 ++#: tables.c:131 + #, c-format + msgid "error: cannot use table name %s" + msgstr "Fehler: Kann Tabellenname %s nicht benutzen" + +-#: tables.c:135 ++#: tables.c:139 + #, c-format + msgid "error: cannot strlcpy table name %s" + msgstr "Fehler: Kann den Tabellennamen %s nicht strlcpy" + +-#: tables.c:141 ++#: tables.c:145 + #, c-format + msgid "warning: pfr_add_tables: %s(%d)" + msgstr "Warnung: pfr_add_tables: %s(%d)" + +-#: tables.c:147 ++#: tables.c:151 + msgid "info: table created" + msgstr "Info: Tabelle erstellt" + +-#: tables.c:158 ++#: tables.c:162 + #, c-format + msgid "warning: DIOCR%sADDRS: %s" + msgstr "Warnung: DIOCR%sADDRS: %s" + +-#: tables.c:162 ++#: tables.c:166 + #, c-format + msgid "%d addresses %s" + msgstr "%d Adressen %s" + ++#: inotify.c:46 ++#, fuzzy, c-format ++msgid "failed to create inotify: %s" ++msgstr "kann Helfer nicht erzeugen: %s" ++ ++#: inotify.c:60 ++#, fuzzy, c-format ++msgid "cannot cannonicalise resolv-file %s: %s" ++msgstr "kann Lease-Datei %s nicht öffnen: %s" ++ ++#: inotify.c:72 ++#, c-format ++msgid "directory %s for resolv-file is missing, cannot poll" ++msgstr "" ++ ++#: inotify.c:75 inotify.c:112 ++#, fuzzy, c-format ++msgid "failed to create inotify for %s: %s" ++msgstr "Konnte Empfangs-Socket für %s: %s nicht erzeugen" ++ ++#: inotify.c:97 ++#, fuzzy, c-format ++msgid "bad dynamic directory %s: %s" ++msgstr "Kann auf Verzeichnis %s nicht zugreifen: %s" ++ ++#: inotify.c:197 ++#, c-format ++msgid "inotify, new or changed file %s" ++msgstr "" ++ + #~ msgid "no interface with address %s" + #~ msgstr "keine Schnittstelle mit Adresse %s" + +diff --git a/po/es.po b/po/es.po +index 0bdff67f720b..b85696072661 100644 +--- a/po/es.po ++++ b/po/es.po +@@ -16,70 +16,70 @@ msgstr "" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" + +-#: cache.c:505 ++#: cache.c:523 + msgid "Internal error in cache." + msgstr "" + +-#: cache.c:908 ++#: cache.c:941 + #, fuzzy, c-format + msgid "failed to load names from %s: %s" + msgstr "no se pudo cargar nombres desde %s: %s" + +-#: cache.c:934 dhcp.c:820 ++#: cache.c:967 dhcp.c:825 + #, fuzzy, c-format + msgid "bad address at %s line %d" + msgstr "dirección errónea en %s línea %d" + +-#: cache.c:985 dhcp.c:836 ++#: cache.c:1018 dhcp.c:841 + #, c-format + msgid "bad name at %s line %d" + msgstr "nombre erróneo en %s línea %d" + +-#: cache.c:992 dhcp.c:911 ++#: cache.c:1027 dhcp.c:916 + #, c-format + msgid "read %s - %d addresses" + msgstr "direcciónes %s - %d leídas" + +-#: cache.c:1100 ++#: cache.c:1135 + msgid "cleared cache" + msgstr "el caché fue liberado" + +-#: cache.c:1123 ++#: cache.c:1164 + #, c-format + msgid "No IPv4 address found for %s" + msgstr "" + +-#: cache.c:1201 ++#: cache.c:1242 + #, c-format + msgid "%s is a CNAME, not giving it to the DHCP lease of %s" + msgstr "%s es un CNAME, no se le está dando concesión DHCP de %s" + +-#: cache.c:1225 ++#: cache.c:1266 + #, c-format + msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s" + msgstr "no otorgando nombre %s a concesión DHCP de %s porque el nombre existe en %s con dirección %s" + +-#: cache.c:1366 ++#: cache.c:1421 + #, c-format + msgid "time %lu" + msgstr "tiempo %lu" + +-#: cache.c:1367 ++#: cache.c:1422 + #, fuzzy, c-format + msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries." + msgstr "tamaño de caché %d, %d/%d inserciónes de caché reutilizaron objetos no vencidos." + +-#: cache.c:1369 ++#: cache.c:1424 + #, c-format + msgid "queries forwarded %u, queries answered locally %u" + msgstr "búsquedas reenviadas %u, búsquedas respondidas localmente %u" + +-#: cache.c:1372 ++#: cache.c:1427 + #, fuzzy, c-format + msgid "queries for authoritative zones %u" + msgstr "Fijar TTL para respuestas autoritarias" + +-#: cache.c:1398 ++#: cache.c:1453 + #, c-format + msgid "server %s#%d: queries sent %u, retried or failed %u" + msgstr "servidor %s#%d: búsquedas enviadas %u, reintentadas o fallidas %u" +@@ -94,7 +94,7 @@ msgstr "no se pudo crear valor semilla para el generador de n + msgid "failed to allocate memory" + msgstr "no se pudo asignar memoria" + +-#: util.c:243 option.c:579 ++#: util.c:243 option.c:598 + msgid "could not get memory" + msgstr "no se pudo adquirir memoria" + +@@ -108,617 +108,650 @@ msgstr "no se puede crear pipe: %s" + msgid "failed to allocate %d bytes" + msgstr "no se pudo asignar %d bytes" + +-#: util.c:429 ++#: util.c:430 + #, c-format + msgid "infinite" + msgstr "infinito" + +-#: option.c:318 ++#: option.c:330 + msgid "Specify local address(es) to listen on." + msgstr "Especificar dirección(es) locales dónde escuchar." + +-#: option.c:319 ++#: option.c:331 + msgid "Return ipaddr for all hosts in specified domains." + msgstr "Retornar ipaddr (dirección IP) para todos los hosts en los dominios especificados." + +-#: option.c:320 ++#: option.c:332 + msgid "Fake reverse lookups for RFC1918 private address ranges." + msgstr "Falsificar búsquedas reversas para rangos de dirección privados RFC1918." + +-#: option.c:321 ++#: option.c:333 + msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)." + msgstr "Tratar ipaddr (dirección IP) como NXDOMAIN (derrota comodín Verisign)." + +-#: option.c:322 ++#: option.c:334 + #, c-format + msgid "Specify the size of the cache in entries (defaults to %s)." + msgstr "Especificar tamaño de caché en cuanto a cantidad de objetos (%s por predeterminado)." + +-#: option.c:323 ++#: option.c:335 + #, c-format + msgid "Specify configuration file (defaults to %s)." + msgstr "Especificar archivo de configuración (%s por predeterminado)." + +-#: option.c:324 ++#: option.c:336 + msgid "Do NOT fork into the background: run in debug mode." + msgstr "NO hacer un fork hacia el fondo: correr en modo debug." + +-#: option.c:325 ++#: option.c:337 + msgid "Do NOT forward queries with no domain part." + msgstr "NO reenviar búsquedas sin parte de dominio." + +-#: option.c:326 ++#: option.c:338 + msgid "Return self-pointing MX records for local hosts." + msgstr "Retornar expedientes MX auto-señaladores para hosts locales." + +-#: option.c:327 ++#: option.c:339 + msgid "Expand simple names in /etc/hosts with domain-suffix." + msgstr "Expandir nombres simples en /etc/hosts con domain-suffix (sufijo de dominio)." + +-#: option.c:328 ++#: option.c:340 + msgid "Don't forward spurious DNS requests from Windows hosts." + msgstr "No reenviar pedidos DNS falsos desde máquinas Windows." + +-#: option.c:329 ++#: option.c:341 + msgid "Enable DHCP in the range given with lease duration." + msgstr "Habilitar DHCP dentro del rango brindado con duración de concesión." + +-#: option.c:330 ++#: option.c:342 + #, c-format + msgid "Change to this group after startup (defaults to %s)." + msgstr "Cambiar a este grupo después del inicio (%s por predeterminado)." + +-#: option.c:331 ++#: option.c:343 + msgid "Set address or hostname for a specified machine." + msgstr "Fijar dirección o nombre de host para una máquina especificada." + +-#: option.c:332 ++#: option.c:344 + #, fuzzy + msgid "Read DHCP host specs from file." + msgstr "Leer especificaciones DHCP de host desde archivo" + +-#: option.c:333 ++#: option.c:345 + #, fuzzy + msgid "Read DHCP option specs from file." + msgstr "Leer opciones DHCP de host desde archivo" + +-#: option.c:334 ++#: option.c:346 ++#, fuzzy ++msgid "Read DHCP host specs from a directory." ++msgstr "Leer especificaciones DHCP de host desde archivo" ++ ++#: option.c:347 ++#, fuzzy ++msgid "Read DHCP options from a directory." ++msgstr "Leer opciones DHCP de host desde archivo" ++ ++#: option.c:348 + msgid "Evaluate conditional tag expression." + msgstr "Evaluar expresión condicional de etiqueta." + +-#: option.c:335 ++#: option.c:349 + #, c-format + msgid "Do NOT load %s file." + msgstr "NO cargar archivo %s." + +-#: option.c:336 ++#: option.c:350 + #, c-format + msgid "Specify a hosts file to be read in addition to %s." + msgstr "Especificar un archivo de hosts para ser leído adicionalmente a %s." + +-#: option.c:337 ++#: option.c:351 ++#, fuzzy ++msgid "Read hosts files from a directory." ++msgstr "Leer especificaciones DHCP de host desde archivo" ++ ++#: option.c:352 + msgid "Specify interface(s) to listen on." + msgstr "Especificar interfase(s) donde escuchar." + +-#: option.c:338 ++#: option.c:353 + msgid "Specify interface(s) NOT to listen on." + msgstr "Especificar interfase(s) donde NO escuchar." + +-#: option.c:339 ++#: option.c:354 + #, fuzzy + msgid "Map DHCP user class to tag." + msgstr "Trazar clase de usuario DHCP a etiqueta." + +-#: option.c:340 ++#: option.c:355 + msgid "Map RFC3046 circuit-id to tag." + msgstr "Trazar circuit-id (identificación de circuito) RFC3046 a etiqueta." + +-#: option.c:341 ++#: option.c:356 + msgid "Map RFC3046 remote-id to tag." + msgstr "Trazar remote-id (identificación remota) RFC3046 a etiqueta." + +-#: option.c:342 ++#: option.c:357 + msgid "Map RFC3993 subscriber-id to tag." + msgstr "Trazar subscriber-id (identificación de suscritor) RFC3993 a etiqueta." + +-#: option.c:343 ++#: option.c:358 + #, fuzzy + msgid "Don't do DHCP for hosts with tag set." + msgstr "No hacer DHCP para hosts con etiqueta fijada." + +-#: option.c:344 ++#: option.c:359 + #, fuzzy + msgid "Force broadcast replies for hosts with tag set." + msgstr "Forzar respuestas broadcast para hosts con etiqueta fijada." + +-#: option.c:345 ++#: option.c:360 + msgid "Do NOT fork into the background, do NOT run in debug mode." + msgstr "NO hacer un fork hacia el fondo, NO correr en modo debug." + +-#: option.c:346 ++#: option.c:361 + msgid "Assume we are the only DHCP server on the local network." + msgstr "Asumir que somos el único servidor DHCP en la red local." + +-#: option.c:347 ++#: option.c:362 + #, c-format + msgid "Specify where to store DHCP leases (defaults to %s)." + msgstr "Especificar donde almacenar concesión DHCP (%s por predeterminado)." + +-#: option.c:348 ++#: option.c:363 + msgid "Return MX records for local hosts." + msgstr "Retornar expedientes MX para hosts locales." + +-#: option.c:349 ++#: option.c:364 + msgid "Specify an MX record." + msgstr "Especificar un expediente MX." + +-#: option.c:350 ++#: option.c:365 + msgid "Specify BOOTP options to DHCP server." + msgstr "Especificar opciones BOOTP a servidor DHCP." + +-#: option.c:351 ++#: option.c:366 + #, c-format + msgid "Do NOT poll %s file, reload only on SIGHUP." + msgstr "NO revisar archivo %s periódicamente, recargar solo con SIGHUP." + +-#: option.c:352 ++#: option.c:367 + msgid "Do NOT cache failed search results." + msgstr "NO almacenar en caché resultados de búsquedas fallidas." + +-#: option.c:353 ++#: option.c:368 + #, c-format + msgid "Use nameservers strictly in the order given in %s." + msgstr "Usar servidores DNS estrictamente en el órden brindado en %s." + +-#: option.c:354 ++#: option.c:369 + #, fuzzy + msgid "Specify options to be sent to DHCP clients." + msgstr "Especificar opciones para ser enviadas a clientes DHCP." + +-#: option.c:355 ++#: option.c:370 + msgid "DHCP option sent even if the client does not request it." + msgstr "Opción DHCP enviada aún si el cliente no la pide." + +-#: option.c:356 ++#: option.c:371 + msgid "Specify port to listen for DNS requests on (defaults to 53)." + msgstr "Especificar puerto donde escuchar por búsquedas DNS (53 por predeterminado)." + +-#: option.c:357 ++#: option.c:372 + #, c-format + msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)." + msgstr "Tamaño máximo de paquetes UDP soportado para EDNS.0 (%s por predeterminado)." + +-#: option.c:358 ++#: option.c:373 + #, fuzzy + msgid "Log DNS queries." + msgstr "Bitacorear búsquedas DNS." + +-#: option.c:359 ++#: option.c:374 + #, fuzzy + msgid "Force the originating port for upstream DNS queries." + msgstr "Enforzar el puerto original para búsquedas DNS subida." + +-#: option.c:360 ++#: option.c:375 + msgid "Do NOT read resolv.conf." + msgstr "NO leer resolv.conf." + +-#: option.c:361 ++#: option.c:376 + #, c-format + msgid "Specify path to resolv.conf (defaults to %s)." + msgstr "Especificar el path hacia resolv.conf (%s por predeterminado)." + +-#: option.c:362 ++#: option.c:377 + #, fuzzy + msgid "Specify path to file with server= options" + msgstr "Especificar path de archivo PID (%s por predeterminado)." + +-#: option.c:363 ++#: option.c:378 + msgid "Specify address(es) of upstream servers with optional domains." + msgstr "Especificar dirección(es) de servidores subida con dominios opcionales." + +-#: option.c:364 ++#: option.c:379 + #, fuzzy + msgid "Specify address of upstream servers for reverse address queries" + msgstr "Especificar dirección(es) de servidores subida con dominios opcionales." + +-#: option.c:365 ++#: option.c:380 + msgid "Never forward queries to specified domains." + msgstr "Nunca reenviar búsquedas a dominios especificados." + +-#: option.c:366 ++#: option.c:381 + msgid "Specify the domain to be assigned in DHCP leases." + msgstr "Especificar el dominio para ser asignado en concesión DHCP." + +-#: option.c:367 ++#: option.c:382 + msgid "Specify default target in an MX record." + msgstr "Especificar destino predeterminado en un expediente MX." + +-#: option.c:368 ++#: option.c:383 + msgid "Specify time-to-live in seconds for replies from /etc/hosts." + msgstr "Especificar tiempo de vida en segundos para respuestas desde /etc/hosts." + +-#: option.c:369 ++#: option.c:384 + #, fuzzy + msgid "Specify time-to-live in seconds for negative caching." + msgstr "Especificar tiempo de vida en segundos para caché negativo." + +-#: option.c:370 ++#: option.c:385 + #, fuzzy + msgid "Specify time-to-live in seconds for maximum TTL to send to clients." + msgstr "Especificar tiempo de vida en segundos para respuestas desde /etc/hosts." + +-#: option.c:371 ++#: option.c:386 ++#, fuzzy ++msgid "Specify time-to-live ceiling for cache." ++msgstr "Especificar tiempo de vida en segundos para caché negativo." ++ ++#: option.c:387 ++#, fuzzy ++msgid "Specify time-to-live floor for cache." ++msgstr "Especificar tiempo de vida en segundos para caché negativo." ++ ++#: option.c:388 + #, c-format + msgid "Change to this user after startup. (defaults to %s)." + msgstr "Cambiar a este usuario despues del inicio (%s por predeterminado)." + +-#: option.c:372 ++#: option.c:389 + #, fuzzy + msgid "Map DHCP vendor class to tag." + msgstr "Trazar clase de vendedor DHCP a etiqueta." + +-#: option.c:373 ++#: option.c:390 + msgid "Display dnsmasq version and copyright information." + msgstr "Mostrar información sobre la versión y copyright de dnsmasq." + +-#: option.c:374 ++#: option.c:391 + msgid "Translate IPv4 addresses from upstream servers." + msgstr "Traducir direcciones IPv4 desde servidores subida." + +-#: option.c:375 ++#: option.c:392 + msgid "Specify a SRV record." + msgstr "Especificar un expediente SRV." + +-#: option.c:376 ++#: option.c:393 + msgid "Display this message. Use --help dhcp for known DHCP options." + msgstr "Mostrar este mensaje. Usar --help dhcp para opciones DHCP conocidas." + +-#: option.c:377 ++#: option.c:394 + #, fuzzy, c-format + msgid "Specify path of PID file (defaults to %s)." + msgstr "Especificar path de archivo PID (%s por predeterminado)." + +-#: option.c:378 ++#: option.c:395 + #, c-format + msgid "Specify maximum number of DHCP leases (defaults to %s)." + msgstr "Especificar número máximo de concesión DHCP (%s por predeterminado)." + +-#: option.c:379 ++#: option.c:396 + msgid "Answer DNS queries based on the interface a query was sent to." + msgstr "Responder a búsquedas DNS en base a la interfase a la cuál fueron enviadas." + +-#: option.c:380 ++#: option.c:397 + msgid "Specify TXT DNS record." + msgstr "Especificar expediente DNS TXT." + +-#: option.c:381 ++#: option.c:398 + #, fuzzy + msgid "Specify PTR DNS record." + msgstr "Especificar expediente DNS PTR." + +-#: option.c:382 ++#: option.c:399 + msgid "Give DNS name to IPv4 address of interface." + msgstr "Otorgar nombre DNS a dirección IPv4 de interfase." + +-#: option.c:383 ++#: option.c:400 + msgid "Bind only to interfaces in use." + msgstr "Acoplar solo a interfases en uso." + +-#: option.c:384 ++#: option.c:401 + #, c-format + msgid "Read DHCP static host information from %s." + msgstr "Leer información sobre hosts DHCP estáticos desde %s." + +-#: option.c:385 ++#: option.c:402 + msgid "Enable the DBus interface for setting upstream servers, etc." + msgstr "Habilitar la interfase DBus para fijar servidores subida, etc." + +-#: option.c:386 ++#: option.c:403 + msgid "Do not provide DHCP on this interface, only provide DNS." + msgstr "No proveer DHCP en esta interfase, sólo proveer DNS." + +-#: option.c:387 ++#: option.c:404 + msgid "Enable dynamic address allocation for bootp." + msgstr "Habilitar alocación dinámica de direcciónes para BOOTP." + +-#: option.c:388 ++#: option.c:405 + #, fuzzy + msgid "Map MAC address (with wildcards) to option set." + msgstr "Trazar dirección MAC (con comodínes) a opción fijada." + +-#: option.c:389 ++#: option.c:406 + msgid "Treat DHCP requests on aliases as arriving from interface." + msgstr "Tratar pedidos DHCP en alias como si llegaran de la interfase." + +-#: option.c:390 ++#: option.c:407 + msgid "Disable ICMP echo address checking in the DHCP server." + msgstr "Deshabilitar verificación de direcciónes para echo ICMP en el servidor DHCP." + +-#: option.c:391 ++#: option.c:408 + #, fuzzy + msgid "Shell script to run on DHCP lease creation and destruction." + msgstr "Archivo guión para ejecutar cuando se crea o destruye una concesión DHCP." + +-#: option.c:392 ++#: option.c:409 + #, fuzzy + msgid "Lua script to run on DHCP lease creation and destruction." + msgstr "Archivo guión para ejecutar cuando se crea o destruye una concesión DHCP." + +-#: option.c:393 ++#: option.c:410 + #, fuzzy + msgid "Run lease-change scripts as this user." + msgstr "Correr archivo guión de cambio de concesión como este usuario." + +-#: option.c:394 ++#: option.c:411 + msgid "Read configuration from all the files in this directory." + msgstr "Leer configuración desde todos los archivos en este directorio." + +-#: option.c:395 ++#: option.c:412 + #, fuzzy + msgid "Log to this syslog facility or file. (defaults to DAEMON)" + msgstr "Bitacorear a esta facilidad syslog o archivo. (DAEMON por predeterminado)" + +-#: option.c:396 ++#: option.c:413 + msgid "Do not use leasefile." + msgstr "No usar archivo de concesión." + +-#: option.c:397 ++#: option.c:414 + #, fuzzy, c-format + msgid "Maximum number of concurrent DNS queries. (defaults to %s)" + msgstr "Número máximo de búsquedas DNS simultáneas. (%s por predeterminado)" + +-#: option.c:398 ++#: option.c:415 + #, c-format + msgid "Clear DNS cache when reloading %s." + msgstr "Liberar caché DNS al recargar %s." + +-#: option.c:399 ++#: option.c:416 + msgid "Ignore hostnames provided by DHCP clients." + msgstr "Ignorar nombres de host brindados por clientes DHCP." + +-#: option.c:400 ++#: option.c:417 + msgid "Do NOT reuse filename and server fields for extra DHCP options." + msgstr "NO reutilizar campos de nombre de archivo y servidor para opciones DHCP extra." + +-#: option.c:401 ++#: option.c:418 + msgid "Enable integrated read-only TFTP server." + msgstr "Habilitar servidor integrado TFTP solo-lectura." + +-#: option.c:402 ++#: option.c:419 + msgid "Export files by TFTP only from the specified subtree." + msgstr "Exportar archivos vía TFTP solo del sub-árbol especificado." + +-#: option.c:403 ++#: option.c:420 + msgid "Add client IP address to tftp-root." + msgstr "Agregar IP de cliente a tftp-root." + +-#: option.c:404 ++#: option.c:421 + msgid "Allow access only to files owned by the user running dnsmasq." + msgstr "Permitir acceso solo a archivos pertenecientes al usuario que corre dnsmasq." + +-#: option.c:405 ++#: option.c:422 + #, fuzzy, c-format + msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)." + msgstr "Número máximo de transferencias TFTP simultáneas (%s por predeterminado)." + +-#: option.c:406 ++#: option.c:423 + msgid "Disable the TFTP blocksize extension." + msgstr "Deshabilitar la extensión TFTP blocksize (tamaño de bloque)." + +-#: option.c:407 ++#: option.c:424 + msgid "Convert TFTP filenames to lowercase" + msgstr "Convertir a minúsculas los nombres de archivos TFTP" + +-#: option.c:408 ++#: option.c:425 + msgid "Ephemeral port range for use by TFTP transfers." + msgstr "Rango de puertos efímeros para ser usados en transferencias TFTP." + +-#: option.c:409 ++#: option.c:426 + msgid "Extra logging for DHCP." + msgstr "Log extra para DHCP." + +-#: option.c:410 ++#: option.c:427 + msgid "Enable async. logging; optionally set queue length." + msgstr "Habilitar registro asíncrono; opcionalmente fijar tamaño de cola." + +-#: option.c:411 ++#: option.c:428 + msgid "Stop DNS rebinding. Filter private IP ranges when resolving." + msgstr "Detener revinculación DNS. Filtrar rangos de IP privados al resolver." + +-#: option.c:412 ++#: option.c:429 + msgid "Allow rebinding of 127.0.0.0/8, for RBL servers." + msgstr "Permitir revinculación de 127.0.0.0/8, para servidores RBL." + +-#: option.c:413 ++#: option.c:430 + msgid "Inhibit DNS-rebind protection on this domain." + msgstr "Inhibir protección de revinculación DNS en este dominio." + +-#: option.c:414 ++#: option.c:431 + msgid "Always perform DNS queries to all servers." + msgstr "Siempre realizar búsquedas DNS a todos los servidores." + +-#: option.c:415 ++#: option.c:432 + #, fuzzy + msgid "Set tag if client includes matching option in request." + msgstr "Fijar etiqueta si cliente incluye opción coincidente en pedido." + +-#: option.c:416 ++#: option.c:433 + msgid "Use alternative ports for DHCP." + msgstr "Usar puertos alternativos para DHCP." + +-#: option.c:417 ++#: option.c:434 + #, fuzzy + msgid "Specify NAPTR DNS record." + msgstr "Especificar expediente DNS NAPTR." + +-#: option.c:418 ++#: option.c:435 + msgid "Specify lowest port available for DNS query transmission." + msgstr "Especificar puerto más bajo disponible para transmisión de búsquedas DNS." + +-#: option.c:419 ++#: option.c:436 + msgid "Use only fully qualified domain names for DHCP clients." + msgstr "Usar solo nombres de dominio completamente calificados para clientes DHCP." + +-#: option.c:420 ++#: option.c:437 + msgid "Generate hostnames based on MAC address for nameless clients." + msgstr "Generar hostnames basados en direcciones MAC para clientes sin nombre." + +-#: option.c:421 ++#: option.c:438 + msgid "Use these DHCP relays as full proxies." + msgstr "Usar estos relays DHCP como proxies completos." + +-#: option.c:422 ++#: option.c:439 + msgid "Relay DHCP requests to a remote server" + msgstr "" + +-#: option.c:423 ++#: option.c:440 + msgid "Specify alias name for LOCAL DNS name." + msgstr "Especificar nombre alias para nombre DNS LOCAL." + +-#: option.c:424 ++#: option.c:441 + #, fuzzy + msgid "Prompt to send to PXE clients." + msgstr "Aviso a ser enviado a clientes PXE." + +-#: option.c:425 ++#: option.c:442 + msgid "Boot service for PXE menu." + msgstr "Servicio de arranque para menú PXE." + +-#: option.c:426 ++#: option.c:443 + msgid "Check configuration syntax." + msgstr "Revisar sintaxis de configuración." + +-#: option.c:427 ++#: option.c:444 + msgid "Add requestor's MAC address to forwarded DNS queries." + msgstr "Añadir direcciones MAC de los peticionarios a los filtros DNS enviados" + +-#: option.c:428 ++#: option.c:445 + #, fuzzy + msgid "Add requestor's IP subnet to forwarded DNS queries." + msgstr "Añadir direcciones MAC de los peticionarios a los filtros DNS enviados" + +-#: option.c:429 ++#: option.c:446 + #, fuzzy + msgid "Proxy DNSSEC validation results from upstream nameservers." + msgstr "Traducir direcciones IPv4 desde servidores subida." + +-#: option.c:430 ++#: option.c:447 + msgid "Attempt to allocate sequential IP addresses to DHCP clients." + msgstr "Intento de instaurar direcciones IP secuenciales a cliente DHCP" + +-#: option.c:431 ++#: option.c:448 + msgid "Copy connection-track mark from queries to upstream connections." + msgstr "Copiar la marca de connection-track desde los filtros a las conexiones salientes" + +-#: option.c:432 ++#: option.c:449 + msgid "Allow DHCP clients to do their own DDNS updates." + msgstr "Permite a clientes DHCP realizar sus propias actualizaciones DDNS" + +-#: option.c:433 ++#: option.c:450 + msgid "Send router-advertisements for interfaces doing DHCPv6" + msgstr "Enviar anuncios del router a los interfases realizando DHCPv6" + +-#: option.c:434 ++#: option.c:451 + msgid "Specify DUID_EN-type DHCPv6 server DUID" + msgstr "" + +-#: option.c:435 ++#: option.c:452 + #, fuzzy + msgid "Specify host (A/AAAA and PTR) records" + msgstr "Especificar un expediente MX." + +-#: option.c:436 ++#: option.c:453 + #, fuzzy + msgid "Specify arbitrary DNS resource record" + msgstr "Especificar expediente DNS TXT." + +-#: option.c:437 ++#: option.c:454 + #, fuzzy + msgid "Bind to interfaces in use - check for new interfaces" + msgstr "interfase desconocida %s en bridge-interfase" + +-#: option.c:438 ++#: option.c:455 + msgid "Export local names to global DNS" + msgstr "Exportar nombres DNS locales a globales" + +-#: option.c:439 ++#: option.c:456 + msgid "Domain to export to global DNS" + msgstr "Dominio a exportar a DNS global" + +-#: option.c:440 ++#: option.c:457 + msgid "Set TTL for authoritative replies" + msgstr "Fijar TTL para respuestas autoritarias" + +-#: option.c:441 ++#: option.c:458 + msgid "Set authoritive zone information" + msgstr "Fijar información de zona autoritaria" + +-#: option.c:442 ++#: option.c:459 + msgid "Secondary authoritative nameservers for forward domains" + msgstr "Nombres de servidor secundario autoritatorios para dominios enviados" + +-#: option.c:443 ++#: option.c:460 + msgid "Peers which are allowed to do zone transfer" + msgstr "Colegas autorizados a la zona de transferencia (transfer)" + +-#: option.c:444 ++#: option.c:461 + msgid "Specify ipsets to which matching domains should be added" + msgstr "Especificar los ipsets coincidentes en dominio que debrían ser añadidos" + +-#: option.c:445 ++#: option.c:462 + #, fuzzy + msgid "Specify a domain and address range for synthesised names" + msgstr "Especificar dominio y rango de direcciones para los nombres acrónimos" + +-#: option.c:446 ++#: option.c:463 + msgid "Activate DNSSEC validation" + msgstr "" + +-#: option.c:447 ++#: option.c:464 + msgid "Specify trust anchor key digest." + msgstr "" + +-#: option.c:448 ++#: option.c:465 + msgid "Disable upstream checking for DNSSEC debugging." + msgstr "" + +-#: option.c:449 ++#: option.c:466 + msgid "Ensure answers without DNSSEC are in unsigned zones." + msgstr "" + +-#: option.c:450 ++#: option.c:467 + msgid "Don't check DNSSEC signature timestamps until first cache-reload" + msgstr "" + +-#: option.c:452 ++#: option.c:468 ++msgid "Timestamp file to verify system clock for DNSSEC" ++msgstr "" ++ ++#: option.c:470 + msgid "Specify DHCPv6 prefix class" + msgstr "Especificar prefijo de clase DHCPv6" + +-#: option.c:454 ++#: option.c:472 + msgid "Set priority, resend-interval and router-lifetime" + msgstr "" + +-#: option.c:455 ++#: option.c:473 + msgid "Do not log routine DHCP." + msgstr "" + +-#: option.c:456 ++#: option.c:474 + msgid "Do not log routine DHCPv6." + msgstr "" + +-#: option.c:457 ++#: option.c:475 + msgid "Do not log RA." + msgstr "" + +-#: option.c:458 ++#: option.c:476 + msgid "Accept queries only from directly-connected networks" + msgstr "" + +-#: option.c:459 ++#: option.c:477 + msgid "Detect and remove DNS forwarding loops" + msgstr "" + +-#: option.c:661 ++#: option.c:478 ++msgid "Ignore DNS responses containing ipaddr." ++msgstr "" ++ ++#: option.c:680 + #, c-format + msgid "" + "Usage: dnsmasq [options]\n" +@@ -727,335 +760,335 @@ msgstr "" + "Modo de uso: dnsmasq [opciones]\n" + "\n" + +-#: option.c:663 ++#: option.c:682 + #, c-format + msgid "Use short options only on the command line.\n" + msgstr "Usar opciones cortas solo en la línea de comandos.\n" + +-#: option.c:665 ++#: option.c:684 + #, fuzzy, c-format + msgid "Valid options are:\n" + msgstr "Opciones válidas son :\n" + +-#: option.c:722 option.c:726 ++#: option.c:741 option.c:745 + msgid "bad port" + msgstr "puerto erróneo" + +-#: option.c:753 option.c:785 ++#: option.c:772 option.c:804 + msgid "interface binding not supported" + msgstr "vinculación de interfase no está soportado" + +-#: option.c:762 option.c:3494 ++#: option.c:781 option.c:3570 + #, fuzzy + msgid "bad interface name" + msgstr "nombre de interfase erróneo" + +-#: option.c:792 ++#: option.c:811 + #, fuzzy + msgid "bad address" + msgstr "dirección IP errónea" + +-#: option.c:974 ++#: option.c:993 + msgid "unsupported encapsulation for IPv6 option" + msgstr "Encapsulación no soportada para opción IPv6" + +-#: option.c:988 ++#: option.c:1007 + msgid "bad dhcp-option" + msgstr "opción dhcp-option errónea" + +-#: option.c:1056 ++#: option.c:1075 + #, fuzzy + msgid "bad IP address" + msgstr "dirección IP errónea" + +-#: option.c:1059 option.c:1197 option.c:2812 ++#: option.c:1078 option.c:1216 option.c:2888 + #, fuzzy + msgid "bad IPv6 address" + msgstr "dirección IP errónea" + +-#: option.c:1224 option.c:1318 ++#: option.c:1243 option.c:1337 + msgid "bad domain in dhcp-option" + msgstr "dominio erróneo en dhcp-option" + +-#: option.c:1356 ++#: option.c:1375 + msgid "dhcp-option too long" + msgstr "opción dhcp-option demasiado larga" + +-#: option.c:1363 ++#: option.c:1382 + msgid "illegal dhcp-match" + msgstr "dhcp-match ilegal" + +-#: option.c:1425 ++#: option.c:1444 + msgid "illegal repeated flag" + msgstr "opción repetida ilegal" + +-#: option.c:1433 ++#: option.c:1452 + msgid "illegal repeated keyword" + msgstr "palabra clave repetida ilegal" + +-#: option.c:1495 option.c:4092 ++#: option.c:1517 option.c:4186 + #, fuzzy, c-format + msgid "cannot access directory %s: %s" + msgstr "no se puede acceder a directorio %s: %s" + +-#: option.c:1541 tftp.c:493 ++#: option.c:1563 tftp.c:493 + #, fuzzy, c-format + msgid "cannot access %s: %s" + msgstr "no se puede acceder %s: %s" + +-#: option.c:1588 ++#: option.c:1615 + msgid "setting log facility is not possible under Android" + msgstr "la creación de un registro no es posible en Android" + +-#: option.c:1597 ++#: option.c:1624 + msgid "bad log facility" + msgstr "ubicación del registro errónea" + +-#: option.c:1650 ++#: option.c:1677 + msgid "bad MX preference" + msgstr "preferencia MX errónea" + +-#: option.c:1655 ++#: option.c:1682 + msgid "bad MX name" + msgstr "nombre MX erróneo" + +-#: option.c:1669 ++#: option.c:1696 + msgid "bad MX target" + msgstr "destino MX erróneo" + +-#: option.c:1681 ++#: option.c:1708 + msgid "cannot run scripts under uClinux" + msgstr "no se pueden correr archivos 'script' bajo uClinux" + +-#: option.c:1683 ++#: option.c:1710 + msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts" + msgstr "recompilar con HAVE_SCRIPT definido para habilitar guiónes de cambio de concesión" + +-#: option.c:1687 ++#: option.c:1714 + #, fuzzy + msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts" + msgstr "recompilar con HAVE_SCRIPT definido para habilitar 'scripts' en Lua" + +-#: option.c:1928 option.c:1966 option.c:2015 ++#: option.c:1970 option.c:2015 option.c:2071 + #, fuzzy + msgid "bad prefix" + msgstr "prefijo erróneo" + +-#: option.c:2289 ++#: option.c:2352 + #, fuzzy + msgid "recompile with HAVE_IPSET defined to enable ipset directives" + msgstr "recompilar con HAVE_SCRIPT definido para habilitar directivas ipset" + +-#: option.c:2469 ++#: option.c:2545 + #, fuzzy + msgid "bad port range" + msgstr "rango de puertos erróneo" + +-#: option.c:2485 ++#: option.c:2561 + msgid "bad bridge-interface" + msgstr "opción bridge-interface (interfase puente) errónea" + +-#: option.c:2545 ++#: option.c:2621 + msgid "only one tag allowed" + msgstr "solo una etiqueta permitida" + +-#: option.c:2565 option.c:2577 option.c:2683 option.c:2724 ++#: option.c:2641 option.c:2653 option.c:2759 option.c:2800 + msgid "bad dhcp-range" + msgstr "opción dhcp-range (rango DHCP) errónea" + +-#: option.c:2592 ++#: option.c:2668 + msgid "inconsistent DHCP range" + msgstr "rango DHCP inconsistente" + +-#: option.c:2651 ++#: option.c:2727 + msgid "prefix length must be exactly 64 for RA subnets" + msgstr "la longitud del prefijo debe ser 64 exacto para subredes RA" + +-#: option.c:2653 ++#: option.c:2729 + msgid "prefix length must be exactly 64 for subnet constructors" + msgstr "la longitud del prefijo debe ser 64 exacto para subredes constructoras" + +-#: option.c:2657 ++#: option.c:2733 + msgid "prefix length must be at least 64" + msgstr "la longitud del prefijo debe ser al menos 64" + +-#: option.c:2660 ++#: option.c:2736 + #, fuzzy + msgid "inconsistent DHCPv6 range" + msgstr "rango DHCP inconsistente" + +-#: option.c:2671 ++#: option.c:2747 + msgid "prefix must be zero with \"constructor:\" argument" + msgstr "prefijo debe ser cero con argumento \"constructor:\"" + +-#: option.c:2782 option.c:2830 ++#: option.c:2858 option.c:2906 + #, fuzzy + msgid "bad hex constant" + msgstr "constante hexadecimal errónea" + +-#: option.c:2804 ++#: option.c:2880 + msgid "cannot match tags in --dhcp-host" + msgstr "no coinciden etiquetas en --dhcp-host" + +-#: option.c:2852 ++#: option.c:2928 + #, fuzzy, c-format + msgid "duplicate dhcp-host IP address %s" + msgstr "dirección IP duplicada %s en %s." + +-#: option.c:2910 ++#: option.c:2986 + #, fuzzy + msgid "bad DHCP host name" + msgstr "nombre de host DHCP erróneo" + +-#: option.c:2992 ++#: option.c:3068 + #, fuzzy + msgid "bad tag-if" + msgstr "etiqueta tag-if errónea" + +-#: option.c:3316 option.c:3710 ++#: option.c:3392 option.c:3786 + msgid "invalid port number" + msgstr "número de puerto inválido" + +-#: option.c:3378 ++#: option.c:3454 + #, fuzzy + msgid "bad dhcp-proxy address" + msgstr "dirección IP errónea" + +-#: option.c:3404 ++#: option.c:3480 + #, fuzzy + msgid "Bad dhcp-relay" + msgstr "opción dhcp-range (rango DHCP) errónea" + +-#: option.c:3430 ++#: option.c:3506 + msgid "bad RA-params" + msgstr "" + +-#: option.c:3439 ++#: option.c:3515 + msgid "bad DUID" + msgstr "DUID erróneo" + +-#: option.c:3481 ++#: option.c:3557 + #, fuzzy + msgid "invalid alias range" + msgstr "rango alias inválido" + +-#: option.c:3535 ++#: option.c:3611 + msgid "bad CNAME" + msgstr "CNAME erróneo" + +-#: option.c:3540 ++#: option.c:3616 + msgid "duplicate CNAME" + msgstr "CNAME duplicado" + +-#: option.c:3560 ++#: option.c:3636 + #, fuzzy + msgid "bad PTR record" + msgstr "registro PTR erróneo" + +-#: option.c:3591 ++#: option.c:3667 + #, fuzzy + msgid "bad NAPTR record" + msgstr "registro NAPTR erróneo" + +-#: option.c:3625 ++#: option.c:3701 + #, fuzzy + msgid "bad RR record" + msgstr "registro PTR erróneo" + +-#: option.c:3655 ++#: option.c:3731 + msgid "bad TXT record" + msgstr "registro TXT erróneo" + +-#: option.c:3696 ++#: option.c:3772 + msgid "bad SRV record" + msgstr "registro SRV erróneo" + +-#: option.c:3703 ++#: option.c:3779 + msgid "bad SRV target" + msgstr "destino SRV erróneo" + +-#: option.c:3717 ++#: option.c:3793 + msgid "invalid priority" + msgstr "prioridad inválida" + +-#: option.c:3724 ++#: option.c:3800 + msgid "invalid weight" + msgstr "peso inválido" + +-#: option.c:3748 ++#: option.c:3824 + #, fuzzy + msgid "Bad host-record" + msgstr "registro PTR erróneo" + +-#: option.c:3765 ++#: option.c:3841 + #, fuzzy + msgid "Bad name in host-record" + msgstr "nombre erróneo en %s" + +-#: option.c:3826 ++#: option.c:3906 + #, fuzzy + msgid "bad trust anchor" + msgstr "rango de puertos erróneo" + +-#: option.c:3840 ++#: option.c:3920 + msgid "bad HEX in trust anchor" + msgstr "" + +-#: option.c:3850 ++#: option.c:3930 + #, fuzzy + msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DNSSEC/DBus support)" + msgstr "opción no soportada (verificar que dnsmasq fue compilado con soporte para DHCP/TFTP/DBus)" + +-#: option.c:3909 ++#: option.c:3989 + msgid "missing \"" + msgstr "falta \"" + +-#: option.c:3966 ++#: option.c:4046 + msgid "bad option" + msgstr "opción errónea" + +-#: option.c:3968 ++#: option.c:4048 + msgid "extraneous parameter" + msgstr "parámetro extraño" + +-#: option.c:3970 ++#: option.c:4050 + msgid "missing parameter" + msgstr "parámetro ausente" + +-#: option.c:3972 ++#: option.c:4052 + #, fuzzy + msgid "illegal option" + msgstr "opción errónea" + +-#: option.c:3979 ++#: option.c:4059 + msgid "error" + msgstr "error" + +-#: option.c:3981 ++#: option.c:4061 + #, fuzzy, c-format + msgid " at line %d of %s" + msgstr "%s en línea %d de %%s" + +-#: option.c:4045 option.c:4168 tftp.c:667 +-#, c-format +-msgid "cannot read %s: %s" +-msgstr "no se puede leer %s: %s" +- +-#: option.c:4229 option.c:4265 ++#: option.c:4076 option.c:4323 option.c:4359 + #, fuzzy, c-format + msgid "read %s" + msgstr "lee %s" + +-#: option.c:4331 ++#: option.c:4139 option.c:4262 tftp.c:667 ++#, c-format ++msgid "cannot read %s: %s" ++msgstr "no se puede leer %s: %s" ++ ++#: option.c:4425 + msgid "junk found in command line" + msgstr "basura encontrada en linea de comando" + +-#: option.c:4366 ++#: option.c:4460 + #, c-format + msgid "Dnsmasq version %s %s\n" + msgstr "Versión dnsmasq %s %s\n" + +-#: option.c:4367 ++#: option.c:4461 + #, fuzzy, c-format + msgid "" + "Compile time options: %s\n" +@@ -1064,90 +1097,90 @@ msgstr "" + "Opciones de compilación %s\n" + "\n" + +-#: option.c:4368 ++#: option.c:4462 + #, c-format + msgid "This software comes with ABSOLUTELY NO WARRANTY.\n" + msgstr "Este software viene SIN NINGUNA GARANTIA.\n" + +-#: option.c:4369 ++#: option.c:4463 + #, c-format + msgid "Dnsmasq is free software, and you are welcome to redistribute it\n" + msgstr "Dnsmasq es software libre, y usted está autorizado a redistribuirlo\n" + +-#: option.c:4370 ++#: option.c:4464 + #, fuzzy, c-format + msgid "under the terms of the GNU General Public License, version 2 or 3.\n" + msgstr "bajo los términos de la GNU General Public License, versión 2 o 3.\n" + +-#: option.c:4381 ++#: option.c:4475 + msgid "try --help" + msgstr "pruebe --help" + +-#: option.c:4383 ++#: option.c:4477 + msgid "try -w" + msgstr "pruebe -w" + +-#: option.c:4385 ++#: option.c:4479 + #, fuzzy, c-format + msgid "bad command line options: %s" + msgstr "opciones de línea de comandos erróneas: %s" + +-#: option.c:4434 ++#: option.c:4535 + #, c-format + msgid "cannot get host-name: %s" + msgstr "no se puede obtener host-name (nombre de host): %s" + +-#: option.c:4462 ++#: option.c:4563 + msgid "only one resolv.conf file allowed in no-poll mode." + msgstr "solo un archivo resolv.conf está permitido en modo no-poll." + +-#: option.c:4472 ++#: option.c:4573 + msgid "must have exactly one resolv.conf to read domain from." + msgstr "debe haber exáctamente un resolv.conf desde donde leer dominio." + +-#: option.c:4475 network.c:1506 dhcp.c:769 ++#: option.c:4576 network.c:1506 dhcp.c:774 + #, fuzzy, c-format + msgid "failed to read %s: %s" + msgstr "no se pudo leer %s: %s" + +-#: option.c:4492 ++#: option.c:4593 + #, c-format + msgid "no search directive found in %s" + msgstr "ninguna directiva de búsqueda encontrada en %s" + +-#: option.c:4513 ++#: option.c:4614 + #, fuzzy + msgid "there must be a default domain when --dhcp-fqdn is set" + msgstr "debe haber un dominio predeterminado cuando --dhcp-fqdn está fijado" + +-#: option.c:4522 ++#: option.c:4623 + msgid "syntax check OK" + msgstr "revisión de sintaxis OK" + +-#: forward.c:114 ++#: forward.c:111 + #, fuzzy, c-format + msgid "failed to send packet: %s" + msgstr "no se pudo escuchar en socket: %s" + +-#: forward.c:574 ++#: forward.c:572 + msgid "discarding DNS reply: subnet option mismatch" + msgstr "" + +-#: forward.c:597 ++#: forward.c:595 + #, c-format + msgid "nameserver %s refused to do a recursive query" + msgstr "servidor DNS %s rechazó realizar una búsqueda recursiva" + +-#: forward.c:629 ++#: forward.c:627 + #, fuzzy, c-format + msgid "possible DNS-rebind attack detected: %s" + msgstr "posible ataque de revinculación DNS detectado" + +-#: forward.c:1132 forward.c:1663 ++#: forward.c:1156 forward.c:1722 + msgid "Ignoring query from non-local network" + msgstr "" + +-#: forward.c:2101 ++#: forward.c:2178 + #, fuzzy, c-format + msgid "Maximum number of concurrent DNS queries reached (max: %d)" + msgstr "Número máximo de búsquedas DNS simultáneas alcanzado. (%s por predeterminado)" +@@ -1237,272 +1270,286 @@ msgstr "usando nombre de servidor %s#%d(v + msgid "using nameserver %s#%d" + msgstr "usando nombre de servidor %s#%d" + +-#: dnsmasq.c:154 +-msgid "No trust anchors provided for DNSSEC" ++#: dnsmasq.c:149 ++msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" + msgstr "" + +-#: dnsmasq.c:157 +-msgid "Cannot reduce cache size from default when DNSSEC enabled" ++#: dnsmasq.c:156 ++msgid "no trust anchors provided for DNSSEC" + msgstr "" + + #: dnsmasq.c:159 ++msgid "cannot reduce cache size from default when DNSSEC enabled" ++msgstr "" ++ ++#: dnsmasq.c:161 + #, fuzzy + msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h" + msgstr "DBus no disponible: fijar HAVE_DBUS en src/config.h" + +-#: dnsmasq.c:165 ++#: dnsmasq.c:167 + #, fuzzy + msgid "TFTP server not available: set HAVE_TFTP in src/config.h" + msgstr "servidor TFTP no disponible: fijar HAVE_TFTP en src/config.h" + +-#: dnsmasq.c:170 +-msgid "Cannot use --conntrack AND --query-port" ++#: dnsmasq.c:172 ++#, fuzzy ++msgid "cannot use --conntrack AND --query-port" + msgstr "No puede usar --conntrack AND --query-port" + +-#: dnsmasq.c:173 ++#: dnsmasq.c:175 + #, fuzzy +-msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h" ++msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" + msgstr "servidor TFTP no disponible: fijar HAVE_TFTP en src/config.h" + +-#: dnsmasq.c:178 ++#: dnsmasq.c:180 + #, fuzzy + msgid "asychronous logging is not available under Solaris" + msgstr "registro asíncrono no está disponible bajo Solaris" + +-#: dnsmasq.c:183 ++#: dnsmasq.c:185 + #, fuzzy + msgid "asychronous logging is not available under Android" + msgstr "registro asíncrono no está disponible bajo Solaris" + +-#: dnsmasq.c:188 ++#: dnsmasq.c:190 + #, fuzzy + msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h" + msgstr "DBus no disponible: fijar HAVE_DBUS en src/config.h" + +-#: dnsmasq.c:193 ++#: dnsmasq.c:195 + #, fuzzy +-msgid "Loop detection not available: set HAVE_LOOP in src/config.h" ++msgid "loop detection not available: set HAVE_LOOP in src/config.h" + msgstr "servidor TFTP no disponible: fijar HAVE_TFTP en src/config.h" + +-#: dnsmasq.c:201 ++#: dnsmasq.c:203 + msgid "zone serial must be configured in --auth-soa" + msgstr "zona serie debe ser configurada en --auth-soa" + +-#: dnsmasq.c:219 ++#: dnsmasq.c:221 + msgid "dhcp-range constructor not available on this platform" + msgstr "constructor rango dhcp no disponible en esta plataforma" + +-#: dnsmasq.c:262 ++#: dnsmasq.c:264 + msgid "cannot set --bind-interfaces and --bind-dynamic" + msgstr "no puede usar --bind-interfases y --bind-dynamic" + +-#: dnsmasq.c:265 ++#: dnsmasq.c:267 + #, c-format + msgid "failed to find list of interfaces: %s" + msgstr "no se pudo encontrar lista de interfases: %s" + +-#: dnsmasq.c:274 ++#: dnsmasq.c:276 + #, c-format + msgid "unknown interface %s" + msgstr "interfase desconocida %s" + +-#: dnsmasq.c:330 dnsmasq.c:954 ++#: dnsmasq.c:340 dnsmasq.c:1004 + #, c-format + msgid "DBus error: %s" + msgstr "error DBus: %s" + +-#: dnsmasq.c:333 ++#: dnsmasq.c:343 + msgid "DBus not available: set HAVE_DBUS in src/config.h" + msgstr "DBus no disponible: fijar HAVE_DBUS en src/config.h" + +-#: dnsmasq.c:361 ++#: dnsmasq.c:371 + #, c-format + msgid "unknown user or group: %s" + msgstr "usuario o grupo desconocido: %s" + +-#: dnsmasq.c:416 ++#: dnsmasq.c:426 + #, c-format + msgid "cannot chdir to filesystem root: %s" + msgstr "no se puede cambiar directorio a raíz de sistema de archivos: %s" + +-#: dnsmasq.c:653 ++#: dnsmasq.c:667 + #, fuzzy, c-format + msgid "started, version %s DNS disabled" + msgstr "iniciado, versión %s DNS deshabilitado" + +-#: dnsmasq.c:655 ++#: dnsmasq.c:669 + #, c-format + msgid "started, version %s cachesize %d" + msgstr "iniciado, versión %s tamaño de caché %d" + +-#: dnsmasq.c:657 ++#: dnsmasq.c:671 + #, c-format + msgid "started, version %s cache disabled" + msgstr "iniciado, versión %s caché deshabilitado" + +-#: dnsmasq.c:659 ++#: dnsmasq.c:673 + #, c-format + msgid "compile time options: %s" + msgstr "opciones de compilación: %s" + +-#: dnsmasq.c:665 ++#: dnsmasq.c:679 + msgid "DBus support enabled: connected to system bus" + msgstr "soporte DBus habilitado: conectado a bus de sistema" + +-#: dnsmasq.c:667 ++#: dnsmasq.c:681 + msgid "DBus support enabled: bus connection pending" + msgstr "soporte DBus habilitado: conexión a bus pendiente" + +-#: dnsmasq.c:672 ++#: dnsmasq.c:686 + msgid "DNS service limited to local subnets" + msgstr "" + +-#: dnsmasq.c:677 ++#: dnsmasq.c:702 + msgid "DNSSEC validation enabled" + msgstr "" + +-#: dnsmasq.c:679 ++#: dnsmasq.c:705 + msgid "DNSSEC signature timestamps not checked until first cache reload" + msgstr "" + +-#: dnsmasq.c:684 ++#: dnsmasq.c:708 ++msgid "DNSSEC signature timestamps not checked until system time valid" ++msgstr "" ++ ++#: dnsmasq.c:713 + #, fuzzy, c-format + msgid "warning: failed to change owner of %s: %s" + msgstr "advertencia: no se pudo cambiar propietario de %s: %s" + +-#: dnsmasq.c:688 ++#: dnsmasq.c:717 + msgid "setting --bind-interfaces option because of OS limitations" + msgstr "fijando opción --bind-interfases debido a limitaciones de sistema operativo" + +-#: dnsmasq.c:698 ++#: dnsmasq.c:727 + #, c-format + msgid "warning: interface %s does not currently exist" + msgstr "advertencia: interfase %s no existe actualmente" + +-#: dnsmasq.c:703 ++#: dnsmasq.c:732 + msgid "warning: ignoring resolv-file flag because no-resolv is set" + msgstr "advertencia: ignorando opción resolv-file porque no-resolv está fijado" + +-#: dnsmasq.c:706 ++#: dnsmasq.c:735 + #, fuzzy + msgid "warning: no upstream servers configured" + msgstr "advertencia: ningún servidor de subida configurado" + +-#: dnsmasq.c:710 ++#: dnsmasq.c:739 + #, c-format + msgid "asynchronous logging enabled, queue limit is %d messages" + msgstr "registro asíncrono habilitado, el límite de la cola es %d mensajes" + +-#: dnsmasq.c:731 ++#: dnsmasq.c:760 + msgid "IPv6 router advertisement enabled" + msgstr "Anuncio de router IPv6 habilitado" + +-#: dnsmasq.c:736 ++#: dnsmasq.c:765 + #, c-format + msgid "DHCP, sockets bound exclusively to interface %s" + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "root is " + msgstr "root está " + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + #, fuzzy + msgid "enabled" + msgstr "habilitado" + +-#: dnsmasq.c:755 ++#: dnsmasq.c:784 + msgid "secure mode" + msgstr "modo seguro" + +-#: dnsmasq.c:781 ++#: dnsmasq.c:810 + #, c-format + msgid "restricting maximum simultaneous TFTP transfers to %d" + msgstr "limitando número máximo de transferencias TFTP simultáneas a %d" + +-#: dnsmasq.c:956 ++#: dnsmasq.c:1006 + msgid "connected to system DBus" + msgstr "conectado a DBus de sistema" + +-#: dnsmasq.c:1106 ++#: dnsmasq.c:1156 + #, c-format + msgid "cannot fork into background: %s" + msgstr "no se puede hacer fork en background: %s" + +-#: dnsmasq.c:1109 ++#: dnsmasq.c:1159 + #, fuzzy, c-format + msgid "failed to create helper: %s" + msgstr "no se pudo crear ayudante: %s" + +-#: dnsmasq.c:1112 ++#: dnsmasq.c:1162 + #, fuzzy, c-format + msgid "setting capabilities failed: %s" + msgstr "configuración de capacidades ha fallado: %s" + +-#: dnsmasq.c:1115 ++#: dnsmasq.c:1165 + #, fuzzy, c-format + msgid "failed to change user-id to %s: %s" + msgstr "no se pudo cambiar user-id a %s: %s" + +-#: dnsmasq.c:1118 ++#: dnsmasq.c:1168 + #, fuzzy, c-format + msgid "failed to change group-id to %s: %s" + msgstr "no se pudo cambiar group-id a %s: %s" + +-#: dnsmasq.c:1121 ++#: dnsmasq.c:1171 + #, fuzzy, c-format + msgid "failed to open pidfile %s: %s" + msgstr "no se pudo abrir archivo PID %s: %s" + +-#: dnsmasq.c:1124 ++#: dnsmasq.c:1174 + #, fuzzy, c-format + msgid "cannot open log %s: %s" + msgstr "no se puede abrir registro %s: %s" + +-#: dnsmasq.c:1127 ++#: dnsmasq.c:1177 + #, fuzzy, c-format + msgid "failed to load Lua script: %s" + msgstr "no se pudo cargar script Lua %s: %s" + +-#: dnsmasq.c:1130 ++#: dnsmasq.c:1180 + #, c-format + msgid "TFTP directory %s inaccessible: %s" + msgstr "directorio TFTP % inaccesible: %s" + +-#: dnsmasq.c:1151 ++#: dnsmasq.c:1183 ++#, fuzzy, c-format ++msgid "cannot create timestamp file %s: %s" ++msgstr "no se puede abrir o crear archivo de concesión %s: %s" ++ ++#: dnsmasq.c:1204 + msgid "now checking DNSSEC signature timestamps" + msgstr "" + +-#: dnsmasq.c:1218 ++#: dnsmasq.c:1271 + #, fuzzy, c-format + msgid "script process killed by signal %d" + msgstr "proceso script eliminado por señal %d" + +-#: dnsmasq.c:1222 ++#: dnsmasq.c:1275 + #, fuzzy, c-format + msgid "script process exited with status %d" + msgstr "proceso script salió con con estado %d" + +-#: dnsmasq.c:1226 ++#: dnsmasq.c:1279 + #, fuzzy, c-format + msgid "failed to execute %s: %s" + msgstr "no se pudo ejecutar %s: %s" + +-#: dnsmasq.c:1281 ++#: dnsmasq.c:1334 + msgid "exiting on receipt of SIGTERM" + msgstr "saliendo al recibir SIGTERM" + +-#: dnsmasq.c:1309 ++#: dnsmasq.c:1362 + #, fuzzy, c-format + msgid "failed to access %s: %s" + msgstr "no se pudo acceder %s: %s" + +-#: dnsmasq.c:1339 ++#: dnsmasq.c:1392 + #, c-format + msgid "reading %s" + msgstr "leyendo %s" + +-#: dnsmasq.c:1350 ++#: dnsmasq.c:1403 + #, fuzzy, c-format + msgid "no servers found in %s, will retry" + msgstr "ningún servidor encontrado en %s, se reintentará" +@@ -1542,27 +1589,27 @@ msgstr "interfase desconocida %s en bridge-interface" + msgid "DHCP packet received on %s which has no address" + msgstr "Paquete DHCP recibido en %s que no tiene dirección" + +-#: dhcp.c:408 ++#: dhcp.c:412 + #, c-format + msgid "ARP-cache injection failed: %s" + msgstr "" + +-#: dhcp.c:506 ++#: dhcp.c:511 + #, c-format + msgid "DHCP range %s -- %s is not consistent with netmask %s" + msgstr "rango DHCP %s -- %s no coincide con máscara de subred %s" + +-#: dhcp.c:807 ++#: dhcp.c:812 + #, fuzzy, c-format + msgid "bad line at %s line %d" + msgstr "línea errónea en %s línea %d" + +-#: dhcp.c:850 ++#: dhcp.c:855 + #, c-format + msgid "ignoring %s line %d, duplicate name or IP address" + msgstr "ignorando %s línea %d, nombre o dirección IP duplicada" + +-#: dhcp.c:994 rfc3315.c:2089 ++#: dhcp.c:999 rfc3315.c:2139 + #, c-format + msgid "DHCP relay %s -> %s" + msgstr "DHCP relay %s -> %s" +@@ -1633,12 +1680,12 @@ msgstr "%u Clase de usuario: %s" + msgid "disabled" + msgstr "deshabilitado" + +-#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:602 rfc3315.c:823 +-#: rfc3315.c:1095 ++#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:603 rfc3315.c:860 ++#: rfc3315.c:1139 + msgid "ignored" + msgstr "ignorado" + +-#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:873 ++#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:910 + msgid "address in use" + msgstr "dirección en uso" + +@@ -1658,7 +1705,7 @@ msgstr "ninguna direcci + msgid "no leases left" + msgstr "no sobra ninguna concesión" + +-#: rfc2131.c:691 rfc3315.c:475 ++#: rfc2131.c:691 rfc3315.c:476 + #, fuzzy, c-format + msgid "%u client provides name: %s" + msgstr "%u cliente provee nombre: %s" +@@ -1667,7 +1714,7 @@ msgstr "%u cliente provee nombre: %s" + msgid "PXE BIS not supported" + msgstr "no hay soporte para BIS PXE" + +-#: rfc2131.c:935 rfc3315.c:1189 ++#: rfc2131.c:935 rfc3315.c:1233 + #, fuzzy, c-format + msgid "disabling DHCP static address %s for %s" + msgstr "deshabilitando dirección DHCP estática %s para %s" +@@ -1703,7 +1750,7 @@ msgstr "ID de servidor equivocada" + msgid "wrong address" + msgstr "dirección equivocada" + +-#: rfc2131.c:1143 rfc3315.c:969 ++#: rfc2131.c:1143 rfc3315.c:1006 + msgid "lease not found" + msgstr "concesión no encontrada" + +@@ -1753,7 +1800,7 @@ msgstr "no se puede enviar opci + msgid "PXE menu too large" + msgstr "menú PXE demasiado largo" + +-#: rfc2131.c:2173 rfc3315.c:1456 ++#: rfc2131.c:2173 rfc3315.c:1506 + #, fuzzy, c-format + msgid "%u requested options: %s" + msgstr "%u opciones solicitadas: %s" +@@ -1768,7 +1815,7 @@ msgstr "no se puede enviar opci + msgid "cannot create netlink socket: %s" + msgstr "no se puede crear zócalo netlink: %s" + +-#: netlink.c:347 ++#: netlink.c:348 + #, fuzzy, c-format + msgid "netlink returns error: %s" + msgstr "netlink retorna error: %s" +@@ -1886,66 +1933,66 @@ msgstr "ning + msgid "%u available DHCPv6 subnet: %s/%d" + msgstr "%u Subred DHCP disponible: %s/%s" + +-#: rfc3315.c:379 ++#: rfc3315.c:380 + #, fuzzy, c-format + msgid "%u vendor class: %u" + msgstr "%u Clase de vendedor: %s" + +-#: rfc3315.c:427 ++#: rfc3315.c:428 + #, fuzzy, c-format + msgid "%u client MAC address: %s" + msgstr "%u cliente provee nombre: %s" + +-#: rfc3315.c:659 ++#: rfc3315.c:660 + #, fuzzy, c-format + msgid "unknown prefix-class %d" + msgstr "clase de prefijo desconocida" + +-#: rfc3315.c:791 rfc3315.c:913 ++#: rfc3315.c:803 rfc3315.c:902 ++#, fuzzy ++msgid "address unavailable" ++msgstr "dirección no disponible" ++ ++#: rfc3315.c:815 rfc3315.c:950 rfc3315.c:1283 + msgid "success" + msgstr "" + +-#: rfc3315.c:806 rfc3315.c:808 rfc3315.c:921 rfc3315.c:923 ++#: rfc3315.c:843 rfc3315.c:845 rfc3315.c:958 rfc3315.c:960 + #, fuzzy + msgid "no addresses available" + msgstr "ninguna dirección disponible" + +-#: rfc3315.c:865 +-#, fuzzy +-msgid "address unavailable" +-msgstr "dirección no disponible" +- +-#: rfc3315.c:900 ++#: rfc3315.c:937 + msgid "not on link" + msgstr "no en el enlace" + +-#: rfc3315.c:973 rfc3315.c:1151 rfc3315.c:1228 ++#: rfc3315.c:1010 rfc3315.c:1195 rfc3315.c:1272 + msgid "no binding found" + msgstr "uniones no encontradas" + +-#: rfc3315.c:1011 ++#: rfc3315.c:1048 + msgid "deprecated" + msgstr "descartado" + +-#: rfc3315.c:1016 ++#: rfc3315.c:1053 + #, fuzzy + msgid "address invalid" + msgstr "dirección en uso" + +-#: rfc3315.c:1061 ++#: rfc3315.c:1100 + msgid "confirm failed" + msgstr "confirmación falló" + +-#: rfc3315.c:1072 ++#: rfc3315.c:1116 + #, fuzzy + msgid "all addresses still on link" + msgstr "dirección errónea en %s línea %d" + +-#: rfc3315.c:1160 ++#: rfc3315.c:1204 + msgid "release received" + msgstr "concesión recibida" + +-#: rfc3315.c:2080 ++#: rfc3315.c:2130 + msgid "Cannot multicast to DHCPv6 server without correct interface" + msgstr "No puede hacer multicast DHCPv6 sin el interfase correcto" + +@@ -2038,7 +2085,7 @@ msgstr "" + msgid "cannot create ICMPv6 socket: %s" + msgstr "no se puede crear socket DHCP: %s" + +-#: auth.c:429 ++#: auth.c:436 + #, fuzzy, c-format + msgid "ignoring zone transfer request from %s" + msgstr "pedido no-soportado desde %s" +@@ -2053,54 +2100,89 @@ msgstr "no se pudo acoplar socket de servidor DHCP: %s" + msgid "failed to create IPset control socket: %s" + msgstr "no se pudo crear socket TFTP: %s" + ++#: dnssec.c:425 dnssec.c:469 ++#, fuzzy, c-format ++msgid "failed to update mtime on %s: %s" ++msgstr "no se pudo abrir archivo PID %s: %s" ++ + #: blockdata.c:58 + #, c-format + msgid "DNSSEC memory in use %u, max %u, allocated %u" + msgstr "" + +-#: tables.c:76 ++#: tables.c:80 + msgid "error: fill_addr missused" + msgstr "" + +-#: tables.c:105 ++#: tables.c:109 + #, fuzzy, c-format + msgid "failed to access pf devices: %s" + msgstr "no se pudo acceder %s: %s" + +-#: tables.c:119 ++#: tables.c:123 + #, fuzzy, c-format + msgid "warning: no opened pf devices %s" + msgstr "usando direcciones locales solo para %s %s" + +-#: tables.c:127 ++#: tables.c:131 + #, fuzzy, c-format + msgid "error: cannot use table name %s" + msgstr "no se puede obtener host-name (nombre de host): %s" + +-#: tables.c:135 ++#: tables.c:139 + #, c-format + msgid "error: cannot strlcpy table name %s" + msgstr "" + +-#: tables.c:141 ++#: tables.c:145 + #, c-format + msgid "warning: pfr_add_tables: %s(%d)" + msgstr "" + +-#: tables.c:147 ++#: tables.c:151 + msgid "info: table created" + msgstr "" + +-#: tables.c:158 ++#: tables.c:162 + #, c-format + msgid "warning: DIOCR%sADDRS: %s" + msgstr "" + +-#: tables.c:162 ++#: tables.c:166 + #, fuzzy, c-format + msgid "%d addresses %s" + msgstr "dirección IP errónea" + ++#: inotify.c:46 ++#, fuzzy, c-format ++msgid "failed to create inotify: %s" ++msgstr "no se pudo crear ayudante: %s" ++ ++#: inotify.c:60 ++#, fuzzy, c-format ++msgid "cannot cannonicalise resolv-file %s: %s" ++msgstr "no se puede abrir o crear archivo de concesión %s: %s" ++ ++#: inotify.c:72 ++#, c-format ++msgid "directory %s for resolv-file is missing, cannot poll" ++msgstr "" ++ ++#: inotify.c:75 inotify.c:112 ++#, fuzzy, c-format ++msgid "failed to create inotify for %s: %s" ++msgstr "no se pudo crear un zócalo de escucha: %s" ++ ++#: inotify.c:97 ++#, fuzzy, c-format ++msgid "bad dynamic directory %s: %s" ++msgstr "no se puede acceder a directorio %s: %s" ++ ++#: inotify.c:197 ++#, c-format ++msgid "inotify, new or changed file %s" ++msgstr "" ++ + #~ msgid "no interface with address %s" + #~ msgstr "ninguna interfase con dirección %s" + +diff --git a/po/fi.po b/po/fi.po +index 36f430986e79..760b08107510 100644 +--- a/po/fi.po ++++ b/po/fi.po +@@ -16,70 +16,70 @@ msgstr "" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" + +-#: cache.c:505 ++#: cache.c:523 + msgid "Internal error in cache." + msgstr "" + +-#: cache.c:908 ++#: cache.c:941 + #, c-format + msgid "failed to load names from %s: %s" + msgstr "" + +-#: cache.c:934 dhcp.c:820 ++#: cache.c:967 dhcp.c:825 + #, c-format + msgid "bad address at %s line %d" + msgstr "" + +-#: cache.c:985 dhcp.c:836 ++#: cache.c:1018 dhcp.c:841 + #, c-format + msgid "bad name at %s line %d" + msgstr "" + +-#: cache.c:992 dhcp.c:911 ++#: cache.c:1027 dhcp.c:916 + #, c-format + msgid "read %s - %d addresses" + msgstr "" + +-#: cache.c:1100 ++#: cache.c:1135 + msgid "cleared cache" + msgstr "" + +-#: cache.c:1123 ++#: cache.c:1164 + #, c-format + msgid "No IPv4 address found for %s" + msgstr "" + +-#: cache.c:1201 ++#: cache.c:1242 + #, c-format + msgid "%s is a CNAME, not giving it to the DHCP lease of %s" + msgstr "" + +-#: cache.c:1225 ++#: cache.c:1266 + #, c-format + msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s" + msgstr "" + +-#: cache.c:1366 ++#: cache.c:1421 + #, c-format + msgid "time %lu" + msgstr "" + +-#: cache.c:1367 ++#: cache.c:1422 + #, c-format + msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries." + msgstr "" + +-#: cache.c:1369 ++#: cache.c:1424 + #, c-format + msgid "queries forwarded %u, queries answered locally %u" + msgstr "" + +-#: cache.c:1372 ++#: cache.c:1427 + #, c-format + msgid "queries for authoritative zones %u" + msgstr "" + +-#: cache.c:1398 ++#: cache.c:1453 + #, c-format + msgid "server %s#%d: queries sent %u, retried or failed %u" + msgstr "" +@@ -93,7 +93,7 @@ msgstr "" + msgid "failed to allocate memory" + msgstr "" + +-#: util.c:243 option.c:579 ++#: util.c:243 option.c:598 + msgid "could not get memory" + msgstr "" + +@@ -107,990 +107,1018 @@ msgstr "" + msgid "failed to allocate %d bytes" + msgstr "" + +-#: util.c:429 ++#: util.c:430 + #, c-format + msgid "infinite" + msgstr "" + +-#: option.c:318 ++#: option.c:330 + msgid "Specify local address(es) to listen on." + msgstr "" + +-#: option.c:319 ++#: option.c:331 + msgid "Return ipaddr for all hosts in specified domains." + msgstr "" + +-#: option.c:320 ++#: option.c:332 + msgid "Fake reverse lookups for RFC1918 private address ranges." + msgstr "" + +-#: option.c:321 ++#: option.c:333 + msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)." + msgstr "" + +-#: option.c:322 ++#: option.c:334 + #, c-format + msgid "Specify the size of the cache in entries (defaults to %s)." + msgstr "" + +-#: option.c:323 ++#: option.c:335 + #, c-format + msgid "Specify configuration file (defaults to %s)." + msgstr "" + +-#: option.c:324 ++#: option.c:336 + msgid "Do NOT fork into the background: run in debug mode." + msgstr "" + +-#: option.c:325 ++#: option.c:337 + msgid "Do NOT forward queries with no domain part." + msgstr "" + +-#: option.c:326 ++#: option.c:338 + msgid "Return self-pointing MX records for local hosts." + msgstr "" + +-#: option.c:327 ++#: option.c:339 + msgid "Expand simple names in /etc/hosts with domain-suffix." + msgstr "" + +-#: option.c:328 ++#: option.c:340 + msgid "Don't forward spurious DNS requests from Windows hosts." + msgstr "" + +-#: option.c:329 ++#: option.c:341 + msgid "Enable DHCP in the range given with lease duration." + msgstr "" + +-#: option.c:330 ++#: option.c:342 + #, c-format + msgid "Change to this group after startup (defaults to %s)." + msgstr "" + +-#: option.c:331 ++#: option.c:343 + msgid "Set address or hostname for a specified machine." + msgstr "" + +-#: option.c:332 ++#: option.c:344 + msgid "Read DHCP host specs from file." + msgstr "" + +-#: option.c:333 ++#: option.c:345 + msgid "Read DHCP option specs from file." + msgstr "" + +-#: option.c:334 ++#: option.c:346 ++msgid "Read DHCP host specs from a directory." ++msgstr "" ++ ++#: option.c:347 ++msgid "Read DHCP options from a directory." ++msgstr "" ++ ++#: option.c:348 + msgid "Evaluate conditional tag expression." + msgstr "" + +-#: option.c:335 ++#: option.c:349 + #, c-format + msgid "Do NOT load %s file." + msgstr "" + +-#: option.c:336 ++#: option.c:350 + #, c-format + msgid "Specify a hosts file to be read in addition to %s." + msgstr "" + +-#: option.c:337 ++#: option.c:351 ++msgid "Read hosts files from a directory." ++msgstr "" ++ ++#: option.c:352 + msgid "Specify interface(s) to listen on." + msgstr "" + +-#: option.c:338 ++#: option.c:353 + msgid "Specify interface(s) NOT to listen on." + msgstr "" + +-#: option.c:339 ++#: option.c:354 + msgid "Map DHCP user class to tag." + msgstr "" + +-#: option.c:340 ++#: option.c:355 + msgid "Map RFC3046 circuit-id to tag." + msgstr "" + +-#: option.c:341 ++#: option.c:356 + msgid "Map RFC3046 remote-id to tag." + msgstr "" + +-#: option.c:342 ++#: option.c:357 + msgid "Map RFC3993 subscriber-id to tag." + msgstr "" + +-#: option.c:343 ++#: option.c:358 + msgid "Don't do DHCP for hosts with tag set." + msgstr "" + +-#: option.c:344 ++#: option.c:359 + msgid "Force broadcast replies for hosts with tag set." + msgstr "" + +-#: option.c:345 ++#: option.c:360 + msgid "Do NOT fork into the background, do NOT run in debug mode." + msgstr "" + +-#: option.c:346 ++#: option.c:361 + msgid "Assume we are the only DHCP server on the local network." + msgstr "" + +-#: option.c:347 ++#: option.c:362 + #, c-format + msgid "Specify where to store DHCP leases (defaults to %s)." + msgstr "" + +-#: option.c:348 ++#: option.c:363 + msgid "Return MX records for local hosts." + msgstr "" + +-#: option.c:349 ++#: option.c:364 + msgid "Specify an MX record." + msgstr "" + +-#: option.c:350 ++#: option.c:365 + msgid "Specify BOOTP options to DHCP server." + msgstr "" + +-#: option.c:351 ++#: option.c:366 + #, c-format + msgid "Do NOT poll %s file, reload only on SIGHUP." + msgstr "" + +-#: option.c:352 ++#: option.c:367 + msgid "Do NOT cache failed search results." + msgstr "" + +-#: option.c:353 ++#: option.c:368 + #, c-format + msgid "Use nameservers strictly in the order given in %s." + msgstr "" + +-#: option.c:354 ++#: option.c:369 + msgid "Specify options to be sent to DHCP clients." + msgstr "" + +-#: option.c:355 ++#: option.c:370 + msgid "DHCP option sent even if the client does not request it." + msgstr "" + +-#: option.c:356 ++#: option.c:371 + msgid "Specify port to listen for DNS requests on (defaults to 53)." + msgstr "" + +-#: option.c:357 ++#: option.c:372 + #, c-format + msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)." + msgstr "" + +-#: option.c:358 ++#: option.c:373 + msgid "Log DNS queries." + msgstr "" + +-#: option.c:359 ++#: option.c:374 + msgid "Force the originating port for upstream DNS queries." + msgstr "" + +-#: option.c:360 ++#: option.c:375 + msgid "Do NOT read resolv.conf." + msgstr "" + +-#: option.c:361 ++#: option.c:376 + #, c-format + msgid "Specify path to resolv.conf (defaults to %s)." + msgstr "" + +-#: option.c:362 ++#: option.c:377 + msgid "Specify path to file with server= options" + msgstr "" + +-#: option.c:363 ++#: option.c:378 + msgid "Specify address(es) of upstream servers with optional domains." + msgstr "" + +-#: option.c:364 ++#: option.c:379 + msgid "Specify address of upstream servers for reverse address queries" + msgstr "" + +-#: option.c:365 ++#: option.c:380 + msgid "Never forward queries to specified domains." + msgstr "" + +-#: option.c:366 ++#: option.c:381 + msgid "Specify the domain to be assigned in DHCP leases." + msgstr "" + +-#: option.c:367 ++#: option.c:382 + msgid "Specify default target in an MX record." + msgstr "" + +-#: option.c:368 ++#: option.c:383 + msgid "Specify time-to-live in seconds for replies from /etc/hosts." + msgstr "" + +-#: option.c:369 ++#: option.c:384 + msgid "Specify time-to-live in seconds for negative caching." + msgstr "" + +-#: option.c:370 ++#: option.c:385 + msgid "Specify time-to-live in seconds for maximum TTL to send to clients." + msgstr "" + +-#: option.c:371 ++#: option.c:386 ++msgid "Specify time-to-live ceiling for cache." ++msgstr "" ++ ++#: option.c:387 ++msgid "Specify time-to-live floor for cache." ++msgstr "" ++ ++#: option.c:388 + #, c-format + msgid "Change to this user after startup. (defaults to %s)." + msgstr "" + +-#: option.c:372 ++#: option.c:389 + msgid "Map DHCP vendor class to tag." + msgstr "" + +-#: option.c:373 ++#: option.c:390 + msgid "Display dnsmasq version and copyright information." + msgstr "" + +-#: option.c:374 ++#: option.c:391 + msgid "Translate IPv4 addresses from upstream servers." + msgstr "" + +-#: option.c:375 ++#: option.c:392 + msgid "Specify a SRV record." + msgstr "" + +-#: option.c:376 ++#: option.c:393 + msgid "Display this message. Use --help dhcp for known DHCP options." + msgstr "" + +-#: option.c:377 ++#: option.c:394 + #, c-format + msgid "Specify path of PID file (defaults to %s)." + msgstr "" + +-#: option.c:378 ++#: option.c:395 + #, c-format + msgid "Specify maximum number of DHCP leases (defaults to %s)." + msgstr "" + +-#: option.c:379 ++#: option.c:396 + msgid "Answer DNS queries based on the interface a query was sent to." + msgstr "" + +-#: option.c:380 ++#: option.c:397 + msgid "Specify TXT DNS record." + msgstr "" + +-#: option.c:381 ++#: option.c:398 + msgid "Specify PTR DNS record." + msgstr "" + +-#: option.c:382 ++#: option.c:399 + msgid "Give DNS name to IPv4 address of interface." + msgstr "" + +-#: option.c:383 ++#: option.c:400 + msgid "Bind only to interfaces in use." + msgstr "" + +-#: option.c:384 ++#: option.c:401 + #, c-format + msgid "Read DHCP static host information from %s." + msgstr "" + +-#: option.c:385 ++#: option.c:402 + msgid "Enable the DBus interface for setting upstream servers, etc." + msgstr "" + +-#: option.c:386 ++#: option.c:403 + msgid "Do not provide DHCP on this interface, only provide DNS." + msgstr "" + +-#: option.c:387 ++#: option.c:404 + msgid "Enable dynamic address allocation for bootp." + msgstr "" + +-#: option.c:388 ++#: option.c:405 + msgid "Map MAC address (with wildcards) to option set." + msgstr "" + +-#: option.c:389 ++#: option.c:406 + msgid "Treat DHCP requests on aliases as arriving from interface." + msgstr "" + +-#: option.c:390 ++#: option.c:407 + msgid "Disable ICMP echo address checking in the DHCP server." + msgstr "" + +-#: option.c:391 ++#: option.c:408 + msgid "Shell script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:392 ++#: option.c:409 + msgid "Lua script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:393 ++#: option.c:410 + msgid "Run lease-change scripts as this user." + msgstr "" + +-#: option.c:394 ++#: option.c:411 + msgid "Read configuration from all the files in this directory." + msgstr "" + +-#: option.c:395 ++#: option.c:412 + msgid "Log to this syslog facility or file. (defaults to DAEMON)" + msgstr "" + +-#: option.c:396 ++#: option.c:413 + msgid "Do not use leasefile." + msgstr "" + +-#: option.c:397 ++#: option.c:414 + #, c-format + msgid "Maximum number of concurrent DNS queries. (defaults to %s)" + msgstr "" + +-#: option.c:398 ++#: option.c:415 + #, c-format + msgid "Clear DNS cache when reloading %s." + msgstr "" + +-#: option.c:399 ++#: option.c:416 + msgid "Ignore hostnames provided by DHCP clients." + msgstr "" + +-#: option.c:400 ++#: option.c:417 + msgid "Do NOT reuse filename and server fields for extra DHCP options." + msgstr "" + +-#: option.c:401 ++#: option.c:418 + msgid "Enable integrated read-only TFTP server." + msgstr "" + +-#: option.c:402 ++#: option.c:419 + msgid "Export files by TFTP only from the specified subtree." + msgstr "" + +-#: option.c:403 ++#: option.c:420 + msgid "Add client IP address to tftp-root." + msgstr "" + +-#: option.c:404 ++#: option.c:421 + msgid "Allow access only to files owned by the user running dnsmasq." + msgstr "" + +-#: option.c:405 ++#: option.c:422 + #, c-format + msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)." + msgstr "" + +-#: option.c:406 ++#: option.c:423 + msgid "Disable the TFTP blocksize extension." + msgstr "" + +-#: option.c:407 ++#: option.c:424 + msgid "Convert TFTP filenames to lowercase" + msgstr "" + +-#: option.c:408 ++#: option.c:425 + msgid "Ephemeral port range for use by TFTP transfers." + msgstr "" + +-#: option.c:409 ++#: option.c:426 + msgid "Extra logging for DHCP." + msgstr "" + +-#: option.c:410 ++#: option.c:427 + msgid "Enable async. logging; optionally set queue length." + msgstr "" + +-#: option.c:411 ++#: option.c:428 + msgid "Stop DNS rebinding. Filter private IP ranges when resolving." + msgstr "" + +-#: option.c:412 ++#: option.c:429 + msgid "Allow rebinding of 127.0.0.0/8, for RBL servers." + msgstr "" + +-#: option.c:413 ++#: option.c:430 + msgid "Inhibit DNS-rebind protection on this domain." + msgstr "" + +-#: option.c:414 ++#: option.c:431 + msgid "Always perform DNS queries to all servers." + msgstr "" + +-#: option.c:415 ++#: option.c:432 + msgid "Set tag if client includes matching option in request." + msgstr "" + +-#: option.c:416 ++#: option.c:433 + msgid "Use alternative ports for DHCP." + msgstr "" + +-#: option.c:417 ++#: option.c:434 + msgid "Specify NAPTR DNS record." + msgstr "" + +-#: option.c:418 ++#: option.c:435 + msgid "Specify lowest port available for DNS query transmission." + msgstr "" + +-#: option.c:419 ++#: option.c:436 + msgid "Use only fully qualified domain names for DHCP clients." + msgstr "" + +-#: option.c:420 ++#: option.c:437 + msgid "Generate hostnames based on MAC address for nameless clients." + msgstr "" + +-#: option.c:421 ++#: option.c:438 + msgid "Use these DHCP relays as full proxies." + msgstr "" + +-#: option.c:422 ++#: option.c:439 + msgid "Relay DHCP requests to a remote server" + msgstr "" + +-#: option.c:423 ++#: option.c:440 + msgid "Specify alias name for LOCAL DNS name." + msgstr "" + +-#: option.c:424 ++#: option.c:441 + msgid "Prompt to send to PXE clients." + msgstr "" + +-#: option.c:425 ++#: option.c:442 + msgid "Boot service for PXE menu." + msgstr "" + +-#: option.c:426 ++#: option.c:443 + msgid "Check configuration syntax." + msgstr "" + +-#: option.c:427 ++#: option.c:444 + msgid "Add requestor's MAC address to forwarded DNS queries." + msgstr "" + +-#: option.c:428 ++#: option.c:445 + msgid "Add requestor's IP subnet to forwarded DNS queries." + msgstr "" + +-#: option.c:429 ++#: option.c:446 + msgid "Proxy DNSSEC validation results from upstream nameservers." + msgstr "" + +-#: option.c:430 ++#: option.c:447 + msgid "Attempt to allocate sequential IP addresses to DHCP clients." + msgstr "" + +-#: option.c:431 ++#: option.c:448 + msgid "Copy connection-track mark from queries to upstream connections." + msgstr "" + +-#: option.c:432 ++#: option.c:449 + msgid "Allow DHCP clients to do their own DDNS updates." + msgstr "" + +-#: option.c:433 ++#: option.c:450 + msgid "Send router-advertisements for interfaces doing DHCPv6" + msgstr "" + +-#: option.c:434 ++#: option.c:451 + msgid "Specify DUID_EN-type DHCPv6 server DUID" + msgstr "" + +-#: option.c:435 ++#: option.c:452 + msgid "Specify host (A/AAAA and PTR) records" + msgstr "" + +-#: option.c:436 ++#: option.c:453 + msgid "Specify arbitrary DNS resource record" + msgstr "" + +-#: option.c:437 ++#: option.c:454 + msgid "Bind to interfaces in use - check for new interfaces" + msgstr "" + +-#: option.c:438 ++#: option.c:455 + msgid "Export local names to global DNS" + msgstr "" + +-#: option.c:439 ++#: option.c:456 + msgid "Domain to export to global DNS" + msgstr "" + +-#: option.c:440 ++#: option.c:457 + msgid "Set TTL for authoritative replies" + msgstr "" + +-#: option.c:441 ++#: option.c:458 + msgid "Set authoritive zone information" + msgstr "" + +-#: option.c:442 ++#: option.c:459 + msgid "Secondary authoritative nameservers for forward domains" + msgstr "" + +-#: option.c:443 ++#: option.c:460 + msgid "Peers which are allowed to do zone transfer" + msgstr "" + +-#: option.c:444 ++#: option.c:461 + msgid "Specify ipsets to which matching domains should be added" + msgstr "" + +-#: option.c:445 ++#: option.c:462 + msgid "Specify a domain and address range for synthesised names" + msgstr "" + +-#: option.c:446 ++#: option.c:463 + msgid "Activate DNSSEC validation" + msgstr "" + +-#: option.c:447 ++#: option.c:464 + msgid "Specify trust anchor key digest." + msgstr "" + +-#: option.c:448 ++#: option.c:465 + msgid "Disable upstream checking for DNSSEC debugging." + msgstr "" + +-#: option.c:449 ++#: option.c:466 + msgid "Ensure answers without DNSSEC are in unsigned zones." + msgstr "" + +-#: option.c:450 ++#: option.c:467 + msgid "Don't check DNSSEC signature timestamps until first cache-reload" + msgstr "" + +-#: option.c:452 ++#: option.c:468 ++msgid "Timestamp file to verify system clock for DNSSEC" ++msgstr "" ++ ++#: option.c:470 + msgid "Specify DHCPv6 prefix class" + msgstr "" + +-#: option.c:454 ++#: option.c:472 + msgid "Set priority, resend-interval and router-lifetime" + msgstr "" + +-#: option.c:455 ++#: option.c:473 + msgid "Do not log routine DHCP." + msgstr "" + +-#: option.c:456 ++#: option.c:474 + msgid "Do not log routine DHCPv6." + msgstr "" + +-#: option.c:457 ++#: option.c:475 + msgid "Do not log RA." + msgstr "" + +-#: option.c:458 ++#: option.c:476 + msgid "Accept queries only from directly-connected networks" + msgstr "" + +-#: option.c:459 ++#: option.c:477 + msgid "Detect and remove DNS forwarding loops" + msgstr "" + +-#: option.c:661 ++#: option.c:478 ++msgid "Ignore DNS responses containing ipaddr." ++msgstr "" ++ ++#: option.c:680 + #, c-format + msgid "" + "Usage: dnsmasq [options]\n" + "\n" + msgstr "" + +-#: option.c:663 ++#: option.c:682 + #, c-format + msgid "Use short options only on the command line.\n" + msgstr "" + +-#: option.c:665 ++#: option.c:684 + #, c-format + msgid "Valid options are:\n" + msgstr "" + +-#: option.c:722 option.c:726 ++#: option.c:741 option.c:745 + msgid "bad port" + msgstr "" + +-#: option.c:753 option.c:785 ++#: option.c:772 option.c:804 + msgid "interface binding not supported" + msgstr "" + +-#: option.c:762 option.c:3494 ++#: option.c:781 option.c:3570 + msgid "bad interface name" + msgstr "" + +-#: option.c:792 ++#: option.c:811 + msgid "bad address" + msgstr "" + +-#: option.c:974 ++#: option.c:993 + msgid "unsupported encapsulation for IPv6 option" + msgstr "" + +-#: option.c:988 ++#: option.c:1007 + msgid "bad dhcp-option" + msgstr "" + +-#: option.c:1056 ++#: option.c:1075 + msgid "bad IP address" + msgstr "" + +-#: option.c:1059 option.c:1197 option.c:2812 ++#: option.c:1078 option.c:1216 option.c:2888 + msgid "bad IPv6 address" + msgstr "" + +-#: option.c:1224 option.c:1318 ++#: option.c:1243 option.c:1337 + msgid "bad domain in dhcp-option" + msgstr "" + +-#: option.c:1356 ++#: option.c:1375 + msgid "dhcp-option too long" + msgstr "" + +-#: option.c:1363 ++#: option.c:1382 + msgid "illegal dhcp-match" + msgstr "" + +-#: option.c:1425 ++#: option.c:1444 + msgid "illegal repeated flag" + msgstr "" + +-#: option.c:1433 ++#: option.c:1452 + msgid "illegal repeated keyword" + msgstr "" + +-#: option.c:1495 option.c:4092 ++#: option.c:1517 option.c:4186 + #, c-format + msgid "cannot access directory %s: %s" + msgstr "" + +-#: option.c:1541 tftp.c:493 ++#: option.c:1563 tftp.c:493 + #, c-format + msgid "cannot access %s: %s" + msgstr "" + +-#: option.c:1588 ++#: option.c:1615 + msgid "setting log facility is not possible under Android" + msgstr "" + +-#: option.c:1597 ++#: option.c:1624 + msgid "bad log facility" + msgstr "" + +-#: option.c:1650 ++#: option.c:1677 + msgid "bad MX preference" + msgstr "" + +-#: option.c:1655 ++#: option.c:1682 + msgid "bad MX name" + msgstr "" + +-#: option.c:1669 ++#: option.c:1696 + msgid "bad MX target" + msgstr "" + +-#: option.c:1681 ++#: option.c:1708 + msgid "cannot run scripts under uClinux" + msgstr "" + +-#: option.c:1683 ++#: option.c:1710 + msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts" + msgstr "" + +-#: option.c:1687 ++#: option.c:1714 + msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts" + msgstr "" + +-#: option.c:1928 option.c:1966 option.c:2015 ++#: option.c:1970 option.c:2015 option.c:2071 + msgid "bad prefix" + msgstr "" + +-#: option.c:2289 ++#: option.c:2352 + msgid "recompile with HAVE_IPSET defined to enable ipset directives" + msgstr "" + +-#: option.c:2469 ++#: option.c:2545 + msgid "bad port range" + msgstr "" + +-#: option.c:2485 ++#: option.c:2561 + msgid "bad bridge-interface" + msgstr "" + +-#: option.c:2545 ++#: option.c:2621 + msgid "only one tag allowed" + msgstr "" + +-#: option.c:2565 option.c:2577 option.c:2683 option.c:2724 ++#: option.c:2641 option.c:2653 option.c:2759 option.c:2800 + msgid "bad dhcp-range" + msgstr "" + +-#: option.c:2592 ++#: option.c:2668 + msgid "inconsistent DHCP range" + msgstr "" + +-#: option.c:2651 ++#: option.c:2727 + msgid "prefix length must be exactly 64 for RA subnets" + msgstr "" + +-#: option.c:2653 ++#: option.c:2729 + msgid "prefix length must be exactly 64 for subnet constructors" + msgstr "" + +-#: option.c:2657 ++#: option.c:2733 + msgid "prefix length must be at least 64" + msgstr "" + +-#: option.c:2660 ++#: option.c:2736 + msgid "inconsistent DHCPv6 range" + msgstr "" + +-#: option.c:2671 ++#: option.c:2747 + msgid "prefix must be zero with \"constructor:\" argument" + msgstr "" + +-#: option.c:2782 option.c:2830 ++#: option.c:2858 option.c:2906 + msgid "bad hex constant" + msgstr "" + +-#: option.c:2804 ++#: option.c:2880 + msgid "cannot match tags in --dhcp-host" + msgstr "" + +-#: option.c:2852 ++#: option.c:2928 + #, c-format + msgid "duplicate dhcp-host IP address %s" + msgstr "" + +-#: option.c:2910 ++#: option.c:2986 + msgid "bad DHCP host name" + msgstr "" + +-#: option.c:2992 ++#: option.c:3068 + msgid "bad tag-if" + msgstr "" + +-#: option.c:3316 option.c:3710 ++#: option.c:3392 option.c:3786 + msgid "invalid port number" + msgstr "" + +-#: option.c:3378 ++#: option.c:3454 + msgid "bad dhcp-proxy address" + msgstr "" + +-#: option.c:3404 ++#: option.c:3480 + msgid "Bad dhcp-relay" + msgstr "" + +-#: option.c:3430 ++#: option.c:3506 + msgid "bad RA-params" + msgstr "" + +-#: option.c:3439 ++#: option.c:3515 + msgid "bad DUID" + msgstr "" + +-#: option.c:3481 ++#: option.c:3557 + msgid "invalid alias range" + msgstr "" + +-#: option.c:3535 ++#: option.c:3611 + msgid "bad CNAME" + msgstr "" + +-#: option.c:3540 ++#: option.c:3616 + msgid "duplicate CNAME" + msgstr "" + +-#: option.c:3560 ++#: option.c:3636 + msgid "bad PTR record" + msgstr "" + +-#: option.c:3591 ++#: option.c:3667 + msgid "bad NAPTR record" + msgstr "" + +-#: option.c:3625 ++#: option.c:3701 + msgid "bad RR record" + msgstr "" + +-#: option.c:3655 ++#: option.c:3731 + msgid "bad TXT record" + msgstr "" + +-#: option.c:3696 ++#: option.c:3772 + msgid "bad SRV record" + msgstr "" + +-#: option.c:3703 ++#: option.c:3779 + msgid "bad SRV target" + msgstr "" + +-#: option.c:3717 ++#: option.c:3793 + msgid "invalid priority" + msgstr "" + +-#: option.c:3724 ++#: option.c:3800 + msgid "invalid weight" + msgstr "" + +-#: option.c:3748 ++#: option.c:3824 + msgid "Bad host-record" + msgstr "" + +-#: option.c:3765 ++#: option.c:3841 + msgid "Bad name in host-record" + msgstr "" + +-#: option.c:3826 ++#: option.c:3906 + msgid "bad trust anchor" + msgstr "" + +-#: option.c:3840 ++#: option.c:3920 + msgid "bad HEX in trust anchor" + msgstr "" + +-#: option.c:3850 ++#: option.c:3930 + msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DNSSEC/DBus support)" + msgstr "" + +-#: option.c:3909 ++#: option.c:3989 + msgid "missing \"" + msgstr "" + +-#: option.c:3966 ++#: option.c:4046 + msgid "bad option" + msgstr "" + +-#: option.c:3968 ++#: option.c:4048 + msgid "extraneous parameter" + msgstr "" + +-#: option.c:3970 ++#: option.c:4050 + msgid "missing parameter" + msgstr "" + +-#: option.c:3972 ++#: option.c:4052 + msgid "illegal option" + msgstr "" + +-#: option.c:3979 ++#: option.c:4059 + msgid "error" + msgstr "" + +-#: option.c:3981 ++#: option.c:4061 + #, c-format + msgid " at line %d of %s" + msgstr "" + +-#: option.c:4045 option.c:4168 tftp.c:667 ++#: option.c:4076 option.c:4323 option.c:4359 + #, c-format +-msgid "cannot read %s: %s" ++msgid "read %s" + msgstr "" + +-#: option.c:4229 option.c:4265 ++#: option.c:4139 option.c:4262 tftp.c:667 + #, c-format +-msgid "read %s" ++msgid "cannot read %s: %s" + msgstr "" + +-#: option.c:4331 ++#: option.c:4425 + msgid "junk found in command line" + msgstr "" + +-#: option.c:4366 ++#: option.c:4460 + #, c-format + msgid "Dnsmasq version %s %s\n" + msgstr "" + +-#: option.c:4367 ++#: option.c:4461 + #, c-format + msgid "" + "Compile time options: %s\n" + "\n" + msgstr "" + +-#: option.c:4368 ++#: option.c:4462 + #, c-format + msgid "This software comes with ABSOLUTELY NO WARRANTY.\n" + msgstr "" + +-#: option.c:4369 ++#: option.c:4463 + #, c-format + msgid "Dnsmasq is free software, and you are welcome to redistribute it\n" + msgstr "" + +-#: option.c:4370 ++#: option.c:4464 + #, c-format + msgid "under the terms of the GNU General Public License, version 2 or 3.\n" + msgstr "" + +-#: option.c:4381 ++#: option.c:4475 + msgid "try --help" + msgstr "" + +-#: option.c:4383 ++#: option.c:4477 + msgid "try -w" + msgstr "" + +-#: option.c:4385 ++#: option.c:4479 + #, c-format + msgid "bad command line options: %s" + msgstr "" + +-#: option.c:4434 ++#: option.c:4535 + #, c-format + msgid "cannot get host-name: %s" + msgstr "" + +-#: option.c:4462 ++#: option.c:4563 + msgid "only one resolv.conf file allowed in no-poll mode." + msgstr "" + +-#: option.c:4472 ++#: option.c:4573 + msgid "must have exactly one resolv.conf to read domain from." + msgstr "" + +-#: option.c:4475 network.c:1506 dhcp.c:769 ++#: option.c:4576 network.c:1506 dhcp.c:774 + #, c-format + msgid "failed to read %s: %s" + msgstr "" + +-#: option.c:4492 ++#: option.c:4593 + #, c-format + msgid "no search directive found in %s" + msgstr "" + +-#: option.c:4513 ++#: option.c:4614 + msgid "there must be a default domain when --dhcp-fqdn is set" + msgstr "" + +-#: option.c:4522 ++#: option.c:4623 + msgid "syntax check OK" + msgstr "" + +-#: forward.c:114 ++#: forward.c:111 + #, c-format + msgid "failed to send packet: %s" + msgstr "" + +-#: forward.c:574 ++#: forward.c:572 + msgid "discarding DNS reply: subnet option mismatch" + msgstr "" + +-#: forward.c:597 ++#: forward.c:595 + #, c-format + msgid "nameserver %s refused to do a recursive query" + msgstr "" + +-#: forward.c:629 ++#: forward.c:627 + #, c-format + msgid "possible DNS-rebind attack detected: %s" + msgstr "" + +-#: forward.c:1132 forward.c:1663 ++#: forward.c:1156 forward.c:1722 + msgid "Ignoring query from non-local network" + msgstr "" + +-#: forward.c:2101 ++#: forward.c:2178 + #, c-format + msgid "Maximum number of concurrent DNS queries reached (max: %d)" + msgstr "" +@@ -1180,263 +1208,276 @@ msgstr "" + msgid "using nameserver %s#%d" + msgstr "" + +-#: dnsmasq.c:154 +-msgid "No trust anchors provided for DNSSEC" ++#: dnsmasq.c:149 ++msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" + msgstr "" + +-#: dnsmasq.c:157 +-msgid "Cannot reduce cache size from default when DNSSEC enabled" ++#: dnsmasq.c:156 ++msgid "no trust anchors provided for DNSSEC" + msgstr "" + + #: dnsmasq.c:159 ++msgid "cannot reduce cache size from default when DNSSEC enabled" ++msgstr "" ++ ++#: dnsmasq.c:161 + msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h" + msgstr "" + +-#: dnsmasq.c:165 ++#: dnsmasq.c:167 + msgid "TFTP server not available: set HAVE_TFTP in src/config.h" + msgstr "" + +-#: dnsmasq.c:170 +-msgid "Cannot use --conntrack AND --query-port" ++#: dnsmasq.c:172 ++msgid "cannot use --conntrack AND --query-port" + msgstr "" + +-#: dnsmasq.c:173 +-msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h" ++#: dnsmasq.c:175 ++msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" + msgstr "" + +-#: dnsmasq.c:178 ++#: dnsmasq.c:180 + msgid "asychronous logging is not available under Solaris" + msgstr "" + +-#: dnsmasq.c:183 ++#: dnsmasq.c:185 + msgid "asychronous logging is not available under Android" + msgstr "" + +-#: dnsmasq.c:188 ++#: dnsmasq.c:190 + msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h" + msgstr "" + +-#: dnsmasq.c:193 +-msgid "Loop detection not available: set HAVE_LOOP in src/config.h" ++#: dnsmasq.c:195 ++msgid "loop detection not available: set HAVE_LOOP in src/config.h" + msgstr "" + +-#: dnsmasq.c:201 ++#: dnsmasq.c:203 + msgid "zone serial must be configured in --auth-soa" + msgstr "" + +-#: dnsmasq.c:219 ++#: dnsmasq.c:221 + msgid "dhcp-range constructor not available on this platform" + msgstr "" + +-#: dnsmasq.c:262 ++#: dnsmasq.c:264 + msgid "cannot set --bind-interfaces and --bind-dynamic" + msgstr "" + +-#: dnsmasq.c:265 ++#: dnsmasq.c:267 + #, c-format + msgid "failed to find list of interfaces: %s" + msgstr "" + +-#: dnsmasq.c:274 ++#: dnsmasq.c:276 + #, c-format + msgid "unknown interface %s" + msgstr "" + +-#: dnsmasq.c:330 dnsmasq.c:954 ++#: dnsmasq.c:340 dnsmasq.c:1004 + #, c-format + msgid "DBus error: %s" + msgstr "" + +-#: dnsmasq.c:333 ++#: dnsmasq.c:343 + msgid "DBus not available: set HAVE_DBUS in src/config.h" + msgstr "" + +-#: dnsmasq.c:361 ++#: dnsmasq.c:371 + #, c-format + msgid "unknown user or group: %s" + msgstr "" + +-#: dnsmasq.c:416 ++#: dnsmasq.c:426 + #, c-format + msgid "cannot chdir to filesystem root: %s" + msgstr "" + +-#: dnsmasq.c:653 ++#: dnsmasq.c:667 + #, c-format + msgid "started, version %s DNS disabled" + msgstr "" + +-#: dnsmasq.c:655 ++#: dnsmasq.c:669 + #, c-format + msgid "started, version %s cachesize %d" + msgstr "" + +-#: dnsmasq.c:657 ++#: dnsmasq.c:671 + #, c-format + msgid "started, version %s cache disabled" + msgstr "" + +-#: dnsmasq.c:659 ++#: dnsmasq.c:673 + #, c-format + msgid "compile time options: %s" + msgstr "" + +-#: dnsmasq.c:665 ++#: dnsmasq.c:679 + msgid "DBus support enabled: connected to system bus" + msgstr "" + +-#: dnsmasq.c:667 ++#: dnsmasq.c:681 + msgid "DBus support enabled: bus connection pending" + msgstr "" + +-#: dnsmasq.c:672 ++#: dnsmasq.c:686 + msgid "DNS service limited to local subnets" + msgstr "" + +-#: dnsmasq.c:677 ++#: dnsmasq.c:702 + msgid "DNSSEC validation enabled" + msgstr "" + +-#: dnsmasq.c:679 ++#: dnsmasq.c:705 + msgid "DNSSEC signature timestamps not checked until first cache reload" + msgstr "" + +-#: dnsmasq.c:684 ++#: dnsmasq.c:708 ++msgid "DNSSEC signature timestamps not checked until system time valid" ++msgstr "" ++ ++#: dnsmasq.c:713 + #, c-format + msgid "warning: failed to change owner of %s: %s" + msgstr "" + +-#: dnsmasq.c:688 ++#: dnsmasq.c:717 + msgid "setting --bind-interfaces option because of OS limitations" + msgstr "" + +-#: dnsmasq.c:698 ++#: dnsmasq.c:727 + #, c-format + msgid "warning: interface %s does not currently exist" + msgstr "" + +-#: dnsmasq.c:703 ++#: dnsmasq.c:732 + msgid "warning: ignoring resolv-file flag because no-resolv is set" + msgstr "" + +-#: dnsmasq.c:706 ++#: dnsmasq.c:735 + msgid "warning: no upstream servers configured" + msgstr "" + +-#: dnsmasq.c:710 ++#: dnsmasq.c:739 + #, c-format + msgid "asynchronous logging enabled, queue limit is %d messages" + msgstr "" + +-#: dnsmasq.c:731 ++#: dnsmasq.c:760 + msgid "IPv6 router advertisement enabled" + msgstr "" + +-#: dnsmasq.c:736 ++#: dnsmasq.c:765 + #, c-format + msgid "DHCP, sockets bound exclusively to interface %s" + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "root is " + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "enabled" + msgstr "" + +-#: dnsmasq.c:755 ++#: dnsmasq.c:784 + msgid "secure mode" + msgstr "" + +-#: dnsmasq.c:781 ++#: dnsmasq.c:810 + #, c-format + msgid "restricting maximum simultaneous TFTP transfers to %d" + msgstr "" + +-#: dnsmasq.c:956 ++#: dnsmasq.c:1006 + msgid "connected to system DBus" + msgstr "" + +-#: dnsmasq.c:1106 ++#: dnsmasq.c:1156 + #, c-format + msgid "cannot fork into background: %s" + msgstr "" + +-#: dnsmasq.c:1109 ++#: dnsmasq.c:1159 + #, c-format + msgid "failed to create helper: %s" + msgstr "" + +-#: dnsmasq.c:1112 ++#: dnsmasq.c:1162 + #, c-format + msgid "setting capabilities failed: %s" + msgstr "" + +-#: dnsmasq.c:1115 ++#: dnsmasq.c:1165 + #, c-format + msgid "failed to change user-id to %s: %s" + msgstr "" + +-#: dnsmasq.c:1118 ++#: dnsmasq.c:1168 + #, c-format + msgid "failed to change group-id to %s: %s" + msgstr "" + +-#: dnsmasq.c:1121 ++#: dnsmasq.c:1171 + #, c-format + msgid "failed to open pidfile %s: %s" + msgstr "" + +-#: dnsmasq.c:1124 ++#: dnsmasq.c:1174 + #, c-format + msgid "cannot open log %s: %s" + msgstr "" + +-#: dnsmasq.c:1127 ++#: dnsmasq.c:1177 + #, c-format + msgid "failed to load Lua script: %s" + msgstr "" + +-#: dnsmasq.c:1130 ++#: dnsmasq.c:1180 + #, c-format + msgid "TFTP directory %s inaccessible: %s" + msgstr "" + +-#: dnsmasq.c:1151 ++#: dnsmasq.c:1183 ++#, c-format ++msgid "cannot create timestamp file %s: %s" ++msgstr "" ++ ++#: dnsmasq.c:1204 + msgid "now checking DNSSEC signature timestamps" + msgstr "" + +-#: dnsmasq.c:1218 ++#: dnsmasq.c:1271 + #, c-format + msgid "script process killed by signal %d" + msgstr "" + +-#: dnsmasq.c:1222 ++#: dnsmasq.c:1275 + #, c-format + msgid "script process exited with status %d" + msgstr "" + +-#: dnsmasq.c:1226 ++#: dnsmasq.c:1279 + #, c-format + msgid "failed to execute %s: %s" + msgstr "" + +-#: dnsmasq.c:1281 ++#: dnsmasq.c:1334 + msgid "exiting on receipt of SIGTERM" + msgstr "" + +-#: dnsmasq.c:1309 ++#: dnsmasq.c:1362 + #, c-format + msgid "failed to access %s: %s" + msgstr "" + +-#: dnsmasq.c:1339 ++#: dnsmasq.c:1392 + #, c-format + msgid "reading %s" + msgstr "" + +-#: dnsmasq.c:1350 ++#: dnsmasq.c:1403 + #, c-format + msgid "no servers found in %s, will retry" + msgstr "" +@@ -1476,27 +1517,27 @@ msgstr "" + msgid "DHCP packet received on %s which has no address" + msgstr "" + +-#: dhcp.c:408 ++#: dhcp.c:412 + #, c-format + msgid "ARP-cache injection failed: %s" + msgstr "" + +-#: dhcp.c:506 ++#: dhcp.c:511 + #, c-format + msgid "DHCP range %s -- %s is not consistent with netmask %s" + msgstr "" + +-#: dhcp.c:807 ++#: dhcp.c:812 + #, c-format + msgid "bad line at %s line %d" + msgstr "" + +-#: dhcp.c:850 ++#: dhcp.c:855 + #, c-format + msgid "ignoring %s line %d, duplicate name or IP address" + msgstr "" + +-#: dhcp.c:994 rfc3315.c:2089 ++#: dhcp.c:999 rfc3315.c:2139 + #, c-format + msgid "DHCP relay %s -> %s" + msgstr "" +@@ -1567,12 +1608,12 @@ msgstr "" + msgid "disabled" + msgstr "" + +-#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:602 rfc3315.c:823 +-#: rfc3315.c:1095 ++#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:603 rfc3315.c:860 ++#: rfc3315.c:1139 + msgid "ignored" + msgstr "" + +-#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:873 ++#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:910 + msgid "address in use" + msgstr "" + +@@ -1592,7 +1633,7 @@ msgstr "" + msgid "no leases left" + msgstr "" + +-#: rfc2131.c:691 rfc3315.c:475 ++#: rfc2131.c:691 rfc3315.c:476 + #, c-format + msgid "%u client provides name: %s" + msgstr "" +@@ -1601,7 +1642,7 @@ msgstr "" + msgid "PXE BIS not supported" + msgstr "" + +-#: rfc2131.c:935 rfc3315.c:1189 ++#: rfc2131.c:935 rfc3315.c:1233 + #, c-format + msgid "disabling DHCP static address %s for %s" + msgstr "" +@@ -1637,7 +1678,7 @@ msgstr "" + msgid "wrong address" + msgstr "" + +-#: rfc2131.c:1143 rfc3315.c:969 ++#: rfc2131.c:1143 rfc3315.c:1006 + msgid "lease not found" + msgstr "" + +@@ -1687,7 +1728,7 @@ msgstr "" + msgid "PXE menu too large" + msgstr "" + +-#: rfc2131.c:2173 rfc3315.c:1456 ++#: rfc2131.c:2173 rfc3315.c:1506 + #, c-format + msgid "%u requested options: %s" + msgstr "" +@@ -1702,7 +1743,7 @@ msgstr "" + msgid "cannot create netlink socket: %s" + msgstr "" + +-#: netlink.c:347 ++#: netlink.c:348 + #, c-format + msgid "netlink returns error: %s" + msgstr "" +@@ -1820,62 +1861,62 @@ msgstr "" + msgid "%u available DHCPv6 subnet: %s/%d" + msgstr "" + +-#: rfc3315.c:379 ++#: rfc3315.c:380 + #, c-format + msgid "%u vendor class: %u" + msgstr "" + +-#: rfc3315.c:427 ++#: rfc3315.c:428 + #, c-format + msgid "%u client MAC address: %s" + msgstr "" + +-#: rfc3315.c:659 ++#: rfc3315.c:660 + #, c-format + msgid "unknown prefix-class %d" + msgstr "" + +-#: rfc3315.c:791 rfc3315.c:913 +-msgid "success" ++#: rfc3315.c:803 rfc3315.c:902 ++msgid "address unavailable" + msgstr "" + +-#: rfc3315.c:806 rfc3315.c:808 rfc3315.c:921 rfc3315.c:923 +-msgid "no addresses available" ++#: rfc3315.c:815 rfc3315.c:950 rfc3315.c:1283 ++msgid "success" + msgstr "" + +-#: rfc3315.c:865 +-msgid "address unavailable" ++#: rfc3315.c:843 rfc3315.c:845 rfc3315.c:958 rfc3315.c:960 ++msgid "no addresses available" + msgstr "" + +-#: rfc3315.c:900 ++#: rfc3315.c:937 + msgid "not on link" + msgstr "" + +-#: rfc3315.c:973 rfc3315.c:1151 rfc3315.c:1228 ++#: rfc3315.c:1010 rfc3315.c:1195 rfc3315.c:1272 + msgid "no binding found" + msgstr "" + +-#: rfc3315.c:1011 ++#: rfc3315.c:1048 + msgid "deprecated" + msgstr "" + +-#: rfc3315.c:1016 ++#: rfc3315.c:1053 + msgid "address invalid" + msgstr "" + +-#: rfc3315.c:1061 ++#: rfc3315.c:1100 + msgid "confirm failed" + msgstr "" + +-#: rfc3315.c:1072 ++#: rfc3315.c:1116 + msgid "all addresses still on link" + msgstr "" + +-#: rfc3315.c:1160 ++#: rfc3315.c:1204 + msgid "release received" + msgstr "" + +-#: rfc3315.c:2080 ++#: rfc3315.c:2130 + msgid "Cannot multicast to DHCPv6 server without correct interface" + msgstr "" + +@@ -1968,7 +2009,7 @@ msgstr "" + msgid "cannot create ICMPv6 socket: %s" + msgstr "" + +-#: auth.c:429 ++#: auth.c:436 + #, c-format + msgid "ignoring zone transfer request from %s" + msgstr "" +@@ -1983,50 +2024,85 @@ msgstr "" + msgid "failed to create IPset control socket: %s" + msgstr "" + ++#: dnssec.c:425 dnssec.c:469 ++#, c-format ++msgid "failed to update mtime on %s: %s" ++msgstr "" ++ + #: blockdata.c:58 + #, c-format + msgid "DNSSEC memory in use %u, max %u, allocated %u" + msgstr "" + +-#: tables.c:76 ++#: tables.c:80 + msgid "error: fill_addr missused" + msgstr "" + +-#: tables.c:105 ++#: tables.c:109 + #, c-format + msgid "failed to access pf devices: %s" + msgstr "" + +-#: tables.c:119 ++#: tables.c:123 + #, c-format + msgid "warning: no opened pf devices %s" + msgstr "" + +-#: tables.c:127 ++#: tables.c:131 + #, c-format + msgid "error: cannot use table name %s" + msgstr "" + +-#: tables.c:135 ++#: tables.c:139 + #, c-format + msgid "error: cannot strlcpy table name %s" + msgstr "" + +-#: tables.c:141 ++#: tables.c:145 + #, c-format + msgid "warning: pfr_add_tables: %s(%d)" + msgstr "" + +-#: tables.c:147 ++#: tables.c:151 + msgid "info: table created" + msgstr "" + +-#: tables.c:158 ++#: tables.c:162 + #, c-format + msgid "warning: DIOCR%sADDRS: %s" + msgstr "" + +-#: tables.c:162 ++#: tables.c:166 + #, c-format + msgid "%d addresses %s" + msgstr "" ++ ++#: inotify.c:46 ++#, c-format ++msgid "failed to create inotify: %s" ++msgstr "" ++ ++#: inotify.c:60 ++#, c-format ++msgid "cannot cannonicalise resolv-file %s: %s" ++msgstr "" ++ ++#: inotify.c:72 ++#, c-format ++msgid "directory %s for resolv-file is missing, cannot poll" ++msgstr "" ++ ++#: inotify.c:75 inotify.c:112 ++#, c-format ++msgid "failed to create inotify for %s: %s" ++msgstr "" ++ ++#: inotify.c:97 ++#, c-format ++msgid "bad dynamic directory %s: %s" ++msgstr "" ++ ++#: inotify.c:197 ++#, c-format ++msgid "inotify, new or changed file %s" ++msgstr "" +diff --git a/po/fr.po b/po/fr.po +index 1ac4848b9fa9..fbddad73887a 100644 +--- a/po/fr.po ++++ b/po/fr.po +@@ -14,70 +14,70 @@ msgstr "" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n > 1);\n" + +-#: cache.c:505 ++#: cache.c:523 + msgid "Internal error in cache." + msgstr "" + +-#: cache.c:908 ++#: cache.c:941 + #, c-format + msgid "failed to load names from %s: %s" + msgstr "Impossible de charger les noms à partir de %s : %s" + +-#: cache.c:934 dhcp.c:820 ++#: cache.c:967 dhcp.c:825 + #, c-format + msgid "bad address at %s line %d" + msgstr "mauvaise adresse dans %s ligne %d" + +-#: cache.c:985 dhcp.c:836 ++#: cache.c:1018 dhcp.c:841 + #, c-format + msgid "bad name at %s line %d" + msgstr "mauvais nom dans %s ligne %d" + +-#: cache.c:992 dhcp.c:911 ++#: cache.c:1027 dhcp.c:916 + #, c-format + msgid "read %s - %d addresses" + msgstr "lecture %s - %d adresses" + +-#: cache.c:1100 ++#: cache.c:1135 + msgid "cleared cache" + msgstr "cache vidé" + +-#: cache.c:1123 ++#: cache.c:1164 + #, c-format + msgid "No IPv4 address found for %s" + msgstr "Aucune adresse IPv4 trouvée pour %s" + +-#: cache.c:1201 ++#: cache.c:1242 + #, c-format + msgid "%s is a CNAME, not giving it to the DHCP lease of %s" + msgstr "%s est un CNAME, il ne sera pas donné au bail DHCP de %s" + +-#: cache.c:1225 ++#: cache.c:1266 + #, c-format + msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s" + msgstr "ne donne pas de nom %s au bail DHCP de %s parce-que le nom existe dans %s avec l'adresse %s" + +-#: cache.c:1366 ++#: cache.c:1421 + #, c-format + msgid "time %lu" + msgstr "horodatage %lu" + +-#: cache.c:1367 ++#: cache.c:1422 + #, c-format + msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries." + msgstr "taille de cache %d, %d/%d insertions dans le cache entrées non-expirées réutilisées" + +-#: cache.c:1369 ++#: cache.c:1424 + #, c-format + msgid "queries forwarded %u, queries answered locally %u" + msgstr "requêtes transmises %u, requêtes résolues localement %u" + +-#: cache.c:1372 ++#: cache.c:1427 + #, fuzzy, c-format + msgid "queries for authoritative zones %u" + msgstr "Configure la durée de vie (Time To Live) pour les réponses faisant autorité" + +-#: cache.c:1398 ++#: cache.c:1453 + #, c-format + msgid "server %s#%d: queries sent %u, retried or failed %u" + msgstr "serveur %s#%d: requêtes envoyées %u, requêtes réessayées ou échouées %u" +@@ -91,7 +91,7 @@ msgstr "impossible d'initialiser le g + msgid "failed to allocate memory" + msgstr "impossible d'allouer la mémoire" + +-#: util.c:243 option.c:579 ++#: util.c:243 option.c:598 + msgid "could not get memory" + msgstr "impossible d'allouer de la mémoire" + +@@ -105,607 +105,642 @@ msgstr "Ne peut pas cr + msgid "failed to allocate %d bytes" + msgstr "impossible d'allouer %d octets" + +-#: util.c:429 ++#: util.c:430 + #, c-format + msgid "infinite" + msgstr "illimité(e)" + +-#: option.c:318 ++#: option.c:330 + msgid "Specify local address(es) to listen on." + msgstr "Spécifie la ou les adresse(s) locales où le démon doit se mettre à l'écoute." + +-#: option.c:319 ++#: option.c:331 + msgid "Return ipaddr for all hosts in specified domains." + msgstr "Retourne les adresses IP pour toutes les machines présentes dans les domaines spécifiés" + +-#: option.c:320 ++#: option.c:332 + msgid "Fake reverse lookups for RFC1918 private address ranges." + msgstr "Traduction inverse truquée pour la plage d'adresse privée RFC1918" + +-#: option.c:321 ++#: option.c:333 + msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)." + msgstr "Traite l'adresse IP comme un domaine inexistant NXDOMAIN (contourne le systeme de redirection de Verisign)" + +-#: option.c:322 ++#: option.c:334 + #, c-format + msgid "Specify the size of the cache in entries (defaults to %s)." + msgstr "Spécifie le nombre d'entrées que contiendra le cache (par défaut : %s)." + +-#: option.c:323 ++#: option.c:335 + #, c-format + msgid "Specify configuration file (defaults to %s)." + msgstr "Spécifie le nom du fichier de configuration (par défaut : %s)" + +-#: option.c:324 ++#: option.c:336 + msgid "Do NOT fork into the background: run in debug mode." + msgstr "Ne passe pas en tâche de fond : démarre en mode debug" + +-#: option.c:325 ++#: option.c:337 + msgid "Do NOT forward queries with no domain part." + msgstr "Ne retransmet pas les requêtes qui n'ont pas de domaine." + +-#: option.c:326 ++#: option.c:338 + msgid "Return self-pointing MX records for local hosts." + msgstr "Retourne les champs MX pour les machines locales." + +-#: option.c:327 ++#: option.c:339 + msgid "Expand simple names in /etc/hosts with domain-suffix." + msgstr "Etend les noms uniques des machines dans /etc/hosts avec le suffixe du domaine." + +-#: option.c:328 ++#: option.c:340 + msgid "Don't forward spurious DNS requests from Windows hosts." + msgstr "Ne retransmet pas les fausses requêtes DNS en provenance des machines Windows." + +-#: option.c:329 ++#: option.c:341 + msgid "Enable DHCP in the range given with lease duration." + msgstr "Autorise DHCP dans la plage d'adresses donnée sur la durée de validité du bail." + +-#: option.c:330 ++#: option.c:342 + #, c-format + msgid "Change to this group after startup (defaults to %s)." + msgstr "On change pour ce groupe après le démarrage (par défaut : %s)." + +-#: option.c:331 ++#: option.c:343 + msgid "Set address or hostname for a specified machine." + msgstr "On assigne une adresse ou un nom pour une machine spécifiée." + +-#: option.c:332 ++#: option.c:344 + msgid "Read DHCP host specs from file." + msgstr "Lecture des spécifications d'hôtes DHCP à partir du fichier" + +-#: option.c:333 ++#: option.c:345 + msgid "Read DHCP option specs from file." + msgstr "Lecture des options DHCP à partir du fichier" + +-#: option.c:334 ++#: option.c:346 ++#, fuzzy ++msgid "Read DHCP host specs from a directory." ++msgstr "Lecture des spécifications d'hôtes DHCP à partir du fichier" ++ ++#: option.c:347 ++#, fuzzy ++msgid "Read DHCP options from a directory." ++msgstr "Lecture des options DHCP à partir du fichier" ++ ++#: option.c:348 + msgid "Evaluate conditional tag expression." + msgstr "Expression d'évaluation conditionnelle d'étiquette" + +-#: option.c:335 ++#: option.c:349 + #, c-format + msgid "Do NOT load %s file." + msgstr "Ne charge PAS le fichier %s." + +-#: option.c:336 ++#: option.c:350 + #, c-format + msgid "Specify a hosts file to be read in addition to %s." + msgstr "Spécifie un nom de fichier hosts à lire en complément de %s" + +-#: option.c:337 ++#: option.c:351 ++#, fuzzy ++msgid "Read hosts files from a directory." ++msgstr "Lecture des spécifications d'hôtes DHCP à partir du fichier" ++ ++#: option.c:352 + msgid "Specify interface(s) to listen on." + msgstr "Spécifie la ou les interface(s) où le démon doit se mettre à l'écoute." + +-#: option.c:338 ++#: option.c:353 + msgid "Specify interface(s) NOT to listen on." + msgstr "Spécifie la ou les interface(s) que le démon ne doit PAS traiter." + + # +-#: option.c:339 ++#: option.c:354 + msgid "Map DHCP user class to tag." + msgstr "Associe les classes d'utilisateurs ('user class') DHCP aux options." + +-#: option.c:340 ++#: option.c:355 + msgid "Map RFC3046 circuit-id to tag." + msgstr "Associe les identifiants de circuits RFC3046 ('circuit-id') aux options" + +-#: option.c:341 ++#: option.c:356 + msgid "Map RFC3046 remote-id to tag." + msgstr "Associe les identifiants distants RFC3046 ('remote-id') aux options" + +-#: option.c:342 ++#: option.c:357 + msgid "Map RFC3993 subscriber-id to tag." + msgstr "Associe les identifiants de souscripteurs RFC3993 ('subscriber-id') aux options" + + # +-#: option.c:343 ++#: option.c:358 + msgid "Don't do DHCP for hosts with tag set." + msgstr "Ne pas autoriser DHCP pour les machines énumerées dans les options." + + # +-#: option.c:344 ++#: option.c:359 + msgid "Force broadcast replies for hosts with tag set." + msgstr "Forcer les réponses par 'broadcast' pour les machines énumerées dans les options." + +-#: option.c:345 ++#: option.c:360 + msgid "Do NOT fork into the background, do NOT run in debug mode." + msgstr "Ne passe pas en tâche de fond, ne pas s'exécuter en mode debug." + +-#: option.c:346 ++#: option.c:361 + msgid "Assume we are the only DHCP server on the local network." + msgstr "On considère que l'on est le seul serveur DHCP sur le réseau local." + +-#: option.c:347 ++#: option.c:362 + #, c-format + msgid "Specify where to store DHCP leases (defaults to %s)." + msgstr "Spécifie où il faut sauvegarder les baux DHCP (par défaut : %s)." + +-#: option.c:348 ++#: option.c:363 + msgid "Return MX records for local hosts." + msgstr "Retourne les champs MX pour les machines locales." + +-#: option.c:349 ++#: option.c:364 + msgid "Specify an MX record." + msgstr "Spécifie un champ MX." + +-#: option.c:350 ++#: option.c:365 + msgid "Specify BOOTP options to DHCP server." + msgstr "Spécifie les options BOOTP pour le serveur DHCP." + +-#: option.c:351 ++#: option.c:366 + #, c-format + msgid "Do NOT poll %s file, reload only on SIGHUP." + msgstr "Ne pas scruter le fichier %s, ne recharger les modifications que sur réception du signal SIGHUP." + +-#: option.c:352 ++#: option.c:367 + msgid "Do NOT cache failed search results." + msgstr "Ne place pas en cache le résultat des requêtes qui ont échouées." + +-#: option.c:353 ++#: option.c:368 + #, c-format + msgid "Use nameservers strictly in the order given in %s." + msgstr "Utilise les serveurs de noms dans l'ordre donné dans %s." + + # +-#: option.c:354 ++#: option.c:369 + msgid "Specify options to be sent to DHCP clients." + msgstr "Options supplémentaires à associer aux clients DHCP." + +-#: option.c:355 ++#: option.c:370 + msgid "DHCP option sent even if the client does not request it." + msgstr "Option DHCP envoyée même si le client de la demande pas." + +-#: option.c:356 ++#: option.c:371 + msgid "Specify port to listen for DNS requests on (defaults to 53)." + msgstr "Spécifie le port où il faut écouter les requêtes DNS (par défaut : 53)." + +-#: option.c:357 ++#: option.c:372 + #, c-format + msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)." + msgstr "Taille maximale des paquets UDP supportés pour EDNS.0 (par défaut : %s)." + + # +-#: option.c:358 ++#: option.c:373 + msgid "Log DNS queries." + msgstr "Enregistre les requêtes DNS dans un journal d'activité." + + # +-#: option.c:359 ++#: option.c:374 + msgid "Force the originating port for upstream DNS queries." + msgstr "Force le port d'origine pour les requêtes vers les serveurs amonts." + +-#: option.c:360 ++#: option.c:375 + msgid "Do NOT read resolv.conf." + msgstr "Ne pas lire le fichier resolv.conf." + +-#: option.c:361 ++#: option.c:376 + #, c-format + msgid "Specify path to resolv.conf (defaults to %s)." + msgstr "Spécifie le chemin pour le fichier resolv.conf (par défaut : %s)." + +-#: option.c:362 ++#: option.c:377 + #, fuzzy + msgid "Specify path to file with server= options" + msgstr "Spécifie un chemin pour le fichier PID (par défaut : %s)." + +-#: option.c:363 ++#: option.c:378 + msgid "Specify address(es) of upstream servers with optional domains." + msgstr "Spécifie la ou les adresses des serveurs amonts avec des domaines optionels." + +-#: option.c:364 ++#: option.c:379 + #, fuzzy + msgid "Specify address of upstream servers for reverse address queries" + msgstr "Spécifie la ou les adresses des serveurs amonts avec des domaines optionels." + +-#: option.c:365 ++#: option.c:380 + msgid "Never forward queries to specified domains." + msgstr "Ne jamais retransmettre les requêtes pour les domaines spécifiés." + +-#: option.c:366 ++#: option.c:381 + msgid "Specify the domain to be assigned in DHCP leases." + msgstr "Spécifie le domaine qui doit etre assigné aux baux DHCP." + +-#: option.c:367 ++#: option.c:382 + msgid "Specify default target in an MX record." + msgstr "Spécifie la cible par défaut dans un champ MX." + +-#: option.c:368 ++#: option.c:383 + msgid "Specify time-to-live in seconds for replies from /etc/hosts." + msgstr "Spécifie le TTL en secondes pour les réponses qui utilisent /etc/hosts." + + # +-#: option.c:369 ++#: option.c:384 + msgid "Specify time-to-live in seconds for negative caching." + msgstr "Spécifie le TTL en secondes pour les réponses qui utilisent /etc/hosts." + +-#: option.c:370 ++#: option.c:385 + msgid "Specify time-to-live in seconds for maximum TTL to send to clients." + msgstr "Spécifie, en secondes, la valeur maximum de TTL à renvoyer aux clients." + +-#: option.c:371 ++# ++#: option.c:386 ++#, fuzzy ++msgid "Specify time-to-live ceiling for cache." ++msgstr "Spécifie le TTL en secondes pour les réponses qui utilisent /etc/hosts." ++ ++# ++#: option.c:387 ++#, fuzzy ++msgid "Specify time-to-live floor for cache." ++msgstr "Spécifie le TTL en secondes pour les réponses qui utilisent /etc/hosts." ++ ++#: option.c:388 + #, c-format + msgid "Change to this user after startup. (defaults to %s)." + msgstr "Change pour cet utilisateur après le démarrage (par défaut : %s)." + + # +-#: option.c:372 ++#: option.c:389 + msgid "Map DHCP vendor class to tag." + msgstr "Associe les classes de fournisseurs ('vendor class') DHCP aux options." + +-#: option.c:373 ++#: option.c:390 + msgid "Display dnsmasq version and copyright information." + msgstr "Affiche la version de Dnsmasq et les informations liées au copyright." + +-#: option.c:374 ++#: option.c:391 + msgid "Translate IPv4 addresses from upstream servers." + msgstr "Traduit les adresses IPV4 des serveurs amonts." + +-#: option.c:375 ++#: option.c:392 + msgid "Specify a SRV record." + msgstr "Spécifie un champ SRV." + +-#: option.c:376 ++#: option.c:393 + msgid "Display this message. Use --help dhcp for known DHCP options." + msgstr "Afficher ce message. Utiliser --help dhcp pour obtenir la liste des options DHCP connues." + +-#: option.c:377 ++#: option.c:394 + #, c-format + msgid "Specify path of PID file (defaults to %s)." + msgstr "Spécifie un chemin pour le fichier PID (par défaut : %s)." + +-#: option.c:378 ++#: option.c:395 + #, c-format + msgid "Specify maximum number of DHCP leases (defaults to %s)." + msgstr "Spécifie le nombre maximum de baux DHCP (par défaut : %s)." + +-#: option.c:379 ++#: option.c:396 + msgid "Answer DNS queries based on the interface a query was sent to." + msgstr "Repond aux requêtes DNS en se basant sur l'interface ou a été envoyée la requête." + +-#: option.c:380 ++#: option.c:397 + msgid "Specify TXT DNS record." + msgstr "Spécifie un champ DNS TXT" + + # +-#: option.c:381 ++#: option.c:398 + msgid "Specify PTR DNS record." + msgstr "Spécifie un champ DNS PTR" + +-#: option.c:382 ++#: option.c:399 + msgid "Give DNS name to IPv4 address of interface." + msgstr "Donne le nom DNS pour l'adresse IPv4 de l'interface." + +-#: option.c:383 ++#: option.c:400 + msgid "Bind only to interfaces in use." + msgstr "Association uniquement aux interfaces réseau actuellement actives." + +-#: option.c:384 ++#: option.c:401 + #, c-format + msgid "Read DHCP static host information from %s." + msgstr "Lecture des informations de DHCP statique à partir de %s." + +-#: option.c:385 ++#: option.c:402 + msgid "Enable the DBus interface for setting upstream servers, etc." + msgstr "Autorise l'interface DBus pour la configuration des serveurs amonts, etc." + +-#: option.c:386 ++#: option.c:403 + msgid "Do not provide DHCP on this interface, only provide DNS." + msgstr "Ne pas assurer de fonction DHCP sur cette interface, mais seulement la fonction DNS." + +-#: option.c:387 ++#: option.c:404 + msgid "Enable dynamic address allocation for bootp." + msgstr "Autorise l'allocation dynamique d'adresse pour bootp." + + # +-#: option.c:388 ++#: option.c:405 + msgid "Map MAC address (with wildcards) to option set." + msgstr "Associe l'adresse MAC (avec les jokers) aux options." + +-#: option.c:389 ++#: option.c:406 + msgid "Treat DHCP requests on aliases as arriving from interface." + msgstr "Traiter les requêtes DHCP sur les alias comme arrivant de l'interface." + +-#: option.c:390 ++#: option.c:407 + msgid "Disable ICMP echo address checking in the DHCP server." + msgstr "Supprime la vérification d'adresse sur le serveur au moyen de paquets ICMP echo" + +-#: option.c:391 ++#: option.c:408 + msgid "Shell script to run on DHCP lease creation and destruction." + msgstr "Script shell à exécuter lors de la création ou destruction de bail DHCP." + +-#: option.c:392 ++#: option.c:409 + msgid "Lua script to run on DHCP lease creation and destruction." + msgstr "Script Lua à exécuter lors de la création ou destruction de bail DHCP." + +-#: option.c:393 ++#: option.c:410 + msgid "Run lease-change scripts as this user." + msgstr "Lancer le script 'lease-change' avec cet utilisateur." + +-#: option.c:394 ++#: option.c:411 + msgid "Read configuration from all the files in this directory." + msgstr "Lecture de la configuration dans tous les fichiers de ce répertoire." + + # +-#: option.c:395 ++#: option.c:412 + msgid "Log to this syslog facility or file. (defaults to DAEMON)" + msgstr "Enregistrer les journaux d'activité dans cette facilité syslog. (défaut : DAEMON)" + +-#: option.c:396 ++#: option.c:413 + msgid "Do not use leasefile." + msgstr "Ne pas utiliser de fichier de baux." + +-#: option.c:397 ++#: option.c:414 + #, c-format + msgid "Maximum number of concurrent DNS queries. (defaults to %s)" + msgstr "Spécifie le nombre maximum de requêtes DHCP concurrentes (par défaut : %s)." + +-#: option.c:398 ++#: option.c:415 + #, c-format + msgid "Clear DNS cache when reloading %s." + msgstr "Vider le cache DNS lors du rechargement de %s." + +-#: option.c:399 ++#: option.c:416 + msgid "Ignore hostnames provided by DHCP clients." + msgstr "Ignorer les noms d'hôtes fournis par les clients DHCP" + +-#: option.c:400 ++#: option.c:417 + msgid "Do NOT reuse filename and server fields for extra DHCP options." + msgstr "Ne pas réutiliser les champs nom de fichier et serveur dans les options DHCP supplémentaires." + +-#: option.c:401 ++#: option.c:418 + msgid "Enable integrated read-only TFTP server." + msgstr "Activer le server TFTP intégré (fonctionnant en lecture seulement)" + +-#: option.c:402 ++#: option.c:419 + msgid "Export files by TFTP only from the specified subtree." + msgstr "N'exporter par TFTP que les fichiers de l'arborescence de fichier spécifiée" + +-#: option.c:403 ++#: option.c:420 + msgid "Add client IP address to tftp-root." + msgstr "Ajouter les adresses IP clientes à la racine tftp ('tftp-root')." + +-#: option.c:404 ++#: option.c:421 + msgid "Allow access only to files owned by the user running dnsmasq." + msgstr "Accès aux seuls fichiers appartenants à l'utilisateur sous lequel tourne dnsmasq" + +-#: option.c:405 ++#: option.c:422 + #, c-format + msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)." + msgstr "Spécifie le nombre maximum de transfert TFTP concurrents (défaut : %s)." + +-#: option.c:406 ++#: option.c:423 + msgid "Disable the TFTP blocksize extension." + msgstr "Désactivation de l'extension TFTP « taille de bloc »" + +-#: option.c:407 ++#: option.c:424 + msgid "Convert TFTP filenames to lowercase" + msgstr "Convertis les noms de fichiers TFTP en minuscule" + +-#: option.c:408 ++#: option.c:425 + msgid "Ephemeral port range for use by TFTP transfers." + msgstr "Gamme de ports dans laquelle seront choisis les ports temporaires utilisés dans les transferts TFTP." + +-#: option.c:409 ++#: option.c:426 + msgid "Extra logging for DHCP." + msgstr "Traces supplémentaires pour le DHCP." + +-#: option.c:410 ++#: option.c:427 + msgid "Enable async. logging; optionally set queue length." + msgstr "Active l'écriture de traces en mode asynchrone. Peut prendre en option la valeur de la longueur de la queue." + +-#: option.c:411 ++#: option.c:428 + msgid "Stop DNS rebinding. Filter private IP ranges when resolving." + msgstr "Stopper la réassociation DNS ('DNS rebinding'). Filtre les gammes d'adresses IP privées lors de la résolution." + +-#: option.c:412 ++#: option.c:429 + msgid "Allow rebinding of 127.0.0.0/8, for RBL servers." + msgstr "Autorise la réassociation de 127.0.0/8, pour les serveurs RBL (Realtime Blackhole List)" + +-#: option.c:413 ++#: option.c:430 + msgid "Inhibit DNS-rebind protection on this domain." + msgstr "Désactive la protection contre les réassociation DNS pour ce domaine" + +-#: option.c:414 ++#: option.c:431 + msgid "Always perform DNS queries to all servers." + msgstr "Toujours effectuer les requêtes DNS à tous les serveurs." + + # +-#: option.c:415 ++#: option.c:432 + msgid "Set tag if client includes matching option in request." + msgstr "Spécifie le label si le client inclus l'option dans la requête." + +-#: option.c:416 ++#: option.c:433 + msgid "Use alternative ports for DHCP." + msgstr "Utiliser des ports alternatifs pour le DHCP." + + # +-#: option.c:417 ++#: option.c:434 + msgid "Specify NAPTR DNS record." + msgstr "Spécifie un champ DNS NAPTR." + +-#: option.c:418 ++#: option.c:435 + msgid "Specify lowest port available for DNS query transmission." + msgstr "Définie le plus petit port utilisé pour la transmission d'une requête DNS." + +-#: option.c:419 ++#: option.c:436 + msgid "Use only fully qualified domain names for DHCP clients." + msgstr "Utilise seulement les noms de domaine pleinement qualifiés pour les clients DHCP." + +-#: option.c:420 ++#: option.c:437 + msgid "Generate hostnames based on MAC address for nameless clients." + msgstr "Génère les noms d'hôtes à partir de l'adresse MAC pour les clients sans nom." + +-#: option.c:421 ++#: option.c:438 + msgid "Use these DHCP relays as full proxies." + msgstr "Utilise ces relais DHCP en temps que proxy complets." + +-#: option.c:422 ++#: option.c:439 + msgid "Relay DHCP requests to a remote server" + msgstr "Requêtes de relais DHCP à un serveur distant" + +-#: option.c:423 ++#: option.c:440 + msgid "Specify alias name for LOCAL DNS name." + msgstr "Spécifie un alias pour un nom DNS local." + + # +-#: option.c:424 ++#: option.c:441 + msgid "Prompt to send to PXE clients." + msgstr "Invite à envoyer aux clients PXE." + +-#: option.c:425 ++#: option.c:442 + msgid "Boot service for PXE menu." + msgstr "Service de démarrage pour menu PXE." + +-#: option.c:426 ++#: option.c:443 + msgid "Check configuration syntax." + msgstr "vérification de la syntaxe de la configuration." + +-#: option.c:427 ++#: option.c:444 + msgid "Add requestor's MAC address to forwarded DNS queries." + msgstr "Ajoute l'adresse MAC du requêteur aux requêtes DNS transmises" + +-#: option.c:428 ++#: option.c:445 + #, fuzzy + msgid "Add requestor's IP subnet to forwarded DNS queries." + msgstr "Ajoute l'adresse MAC du requêteur aux requêtes DNS transmises" + +-#: option.c:429 ++#: option.c:446 + msgid "Proxy DNSSEC validation results from upstream nameservers." + msgstr "Copie dans la réponse DNS le résultat de la validation DNSSEC effectuée par les serveurs DNS amonts." + +-#: option.c:430 ++#: option.c:447 + msgid "Attempt to allocate sequential IP addresses to DHCP clients." + msgstr "Essaie d'allouer des adresses IP séquentielles aux clients DHCP." + +-#: option.c:431 ++#: option.c:448 + msgid "Copy connection-track mark from queries to upstream connections." + msgstr "Copie les marques de suivi de connexion pour les requêtes amont." + +-#: option.c:432 ++#: option.c:449 + msgid "Allow DHCP clients to do their own DDNS updates." + msgstr "Autoriser les clients DHCP à faire leurs propres mises à jour DDNS (Dynamic DNS)" + +-#: option.c:433 ++#: option.c:450 + msgid "Send router-advertisements for interfaces doing DHCPv6" + msgstr "Envoyer des annonces de routeurs pour toutes les interfaces faisant du DHCPv6" + +-#: option.c:434 ++#: option.c:451 + msgid "Specify DUID_EN-type DHCPv6 server DUID" + msgstr "Spécifie pour le serveur DHCPv6 un identifiant unique DHCP (DUID) basé sur un numéro unique de vendeur (DUID_EN)" + +-#: option.c:435 ++#: option.c:452 + msgid "Specify host (A/AAAA and PTR) records" + msgstr "Spécifie les enregistrements (A/AAAA et PTR) d'un hôte." + +-#: option.c:436 ++#: option.c:453 + msgid "Specify arbitrary DNS resource record" + msgstr "Définie une resource DNS d'un type spécifique" + +-#: option.c:437 ++#: option.c:454 + msgid "Bind to interfaces in use - check for new interfaces" + msgstr "Se lie aux interfaces préexistantes - vérifie l'apparition de nouvelles interfaces" + +-#: option.c:438 ++#: option.c:455 + msgid "Export local names to global DNS" + msgstr "Exporte les noms locaux dans le DNS global" + +-#: option.c:439 ++#: option.c:456 + msgid "Domain to export to global DNS" + msgstr "Domaine à exporter dans le DNS global" + +-#: option.c:440 ++#: option.c:457 + msgid "Set TTL for authoritative replies" + msgstr "Configure la durée de vie (Time To Live) pour les réponses faisant autorité" + +-#: option.c:441 ++#: option.c:458 + msgid "Set authoritive zone information" + msgstr "Configure les informations pour une zone de nom faisant autorité" + +-#: option.c:442 ++#: option.c:459 + msgid "Secondary authoritative nameservers for forward domains" + msgstr "Serveurs de noms secondaires faisant autorité pour les domaines délégués" + +-#: option.c:443 ++#: option.c:460 + msgid "Peers which are allowed to do zone transfer" + msgstr "Pairs autorisés à faire des transferts de zone" + +-#: option.c:444 ++#: option.c:461 + msgid "Specify ipsets to which matching domains should be added" + msgstr "Spécifie les ipsets auxquels les domaines correspondants doivent-être ajoutés" + +-#: option.c:445 ++#: option.c:462 + #, fuzzy + msgid "Specify a domain and address range for synthesised names" + msgstr "Spécifie un domaine et une plage d'adresses pour les noms auto-générés" + +-#: option.c:446 ++#: option.c:463 + msgid "Activate DNSSEC validation" + msgstr "" + +-#: option.c:447 ++#: option.c:464 + msgid "Specify trust anchor key digest." + msgstr "" + +-#: option.c:448 ++#: option.c:465 + msgid "Disable upstream checking for DNSSEC debugging." + msgstr "" + +-#: option.c:449 ++#: option.c:466 + msgid "Ensure answers without DNSSEC are in unsigned zones." + msgstr "" + +-#: option.c:450 ++#: option.c:467 + msgid "Don't check DNSSEC signature timestamps until first cache-reload" + msgstr "" + +-#: option.c:452 ++#: option.c:468 ++msgid "Timestamp file to verify system clock for DNSSEC" ++msgstr "" ++ ++#: option.c:470 + msgid "Specify DHCPv6 prefix class" + msgstr "Spécifie le préfixe de classe DHCPv6" + +-#: option.c:454 ++#: option.c:472 + msgid "Set priority, resend-interval and router-lifetime" + msgstr "" + +-#: option.c:455 ++#: option.c:473 + msgid "Do not log routine DHCP." + msgstr "" + +-#: option.c:456 ++#: option.c:474 + msgid "Do not log routine DHCPv6." + msgstr "" + +-#: option.c:457 ++#: option.c:475 + msgid "Do not log RA." + msgstr "" + +-#: option.c:458 ++#: option.c:476 + msgid "Accept queries only from directly-connected networks" + msgstr "" + +-#: option.c:459 ++#: option.c:477 + msgid "Detect and remove DNS forwarding loops" + msgstr "" + +-#: option.c:661 ++#: option.c:478 ++msgid "Ignore DNS responses containing ipaddr." ++msgstr "" ++ ++#: option.c:680 + #, c-format + msgid "" + "Usage: dnsmasq [options]\n" +@@ -714,328 +749,328 @@ msgstr "" + "Usage : dnsmasq [options]\n" + "\n" + +-#: option.c:663 ++#: option.c:682 + #, c-format + msgid "Use short options only on the command line.\n" + msgstr "Utilisez les options courtes uniquement sur la ligne de commande.\n" + +-#: option.c:665 ++#: option.c:684 + #, c-format + msgid "Valid options are:\n" + msgstr "Les options valides sont :\n" + +-#: option.c:722 option.c:726 ++#: option.c:741 option.c:745 + msgid "bad port" + msgstr "numéro de port incorrect" + +-#: option.c:753 option.c:785 ++#: option.c:772 option.c:804 + msgid "interface binding not supported" + msgstr "association d'interface non supportée" + + # +-#: option.c:762 option.c:3494 ++#: option.c:781 option.c:3570 + msgid "bad interface name" + msgstr "nom d'interface invalide" + + # +-#: option.c:792 ++#: option.c:811 + msgid "bad address" + msgstr "mauvaise adresse" + +-#: option.c:974 ++#: option.c:993 + msgid "unsupported encapsulation for IPv6 option" + msgstr "encapsulation d'option non supportée pour IPv6" + +-#: option.c:988 ++#: option.c:1007 + msgid "bad dhcp-option" + msgstr "mauvaise valeur de 'dhcp-option'" + + # +-#: option.c:1056 ++#: option.c:1075 + msgid "bad IP address" + msgstr "mauvaise adresse IP" + + # +-#: option.c:1059 option.c:1197 option.c:2812 ++#: option.c:1078 option.c:1216 option.c:2888 + msgid "bad IPv6 address" + msgstr "mauvaise adresse IPv6" + +-#: option.c:1224 option.c:1318 ++#: option.c:1243 option.c:1337 + msgid "bad domain in dhcp-option" + msgstr "mauvais domaine dans dhcp-option" + +-#: option.c:1356 ++#: option.c:1375 + msgid "dhcp-option too long" + msgstr "dhcp-option trop long" + +-#: option.c:1363 ++#: option.c:1382 + msgid "illegal dhcp-match" + msgstr "valeur illégale pour 'dhcp-match'" + +-#: option.c:1425 ++#: option.c:1444 + msgid "illegal repeated flag" + msgstr "Une option ne pouvant être spécifié qu'une seule fois à été donnée plusieurs fois" + +-#: option.c:1433 ++#: option.c:1452 + msgid "illegal repeated keyword" + msgstr "Mot-clef ne pouvant être répété" + +-#: option.c:1495 option.c:4092 ++#: option.c:1517 option.c:4186 + #, c-format + msgid "cannot access directory %s: %s" + msgstr "Ne peut pas lire le répertoire %s : %s" + +-#: option.c:1541 tftp.c:493 ++#: option.c:1563 tftp.c:493 + #, c-format + msgid "cannot access %s: %s" + msgstr "Ne peut pas lire %s : %s" + +-#: option.c:1588 ++#: option.c:1615 + msgid "setting log facility is not possible under Android" + msgstr "Sous android, impossible de positionner la cible (facility) pour les traces (logs)." + +-#: option.c:1597 ++#: option.c:1624 + msgid "bad log facility" + msgstr "Mauvaise cible (facility) pour les traces." + +-#: option.c:1650 ++#: option.c:1677 + msgid "bad MX preference" + msgstr "préference MX incorrecte" + +-#: option.c:1655 ++#: option.c:1682 + msgid "bad MX name" + msgstr "nom MX incorrect" + +-#: option.c:1669 ++#: option.c:1696 + msgid "bad MX target" + msgstr "valeur MX cible incorrecte" + +-#: option.c:1681 ++#: option.c:1708 + msgid "cannot run scripts under uClinux" + msgstr "ne peut exécuter de script sous uClinux" + +-#: option.c:1683 ++#: option.c:1710 + msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts" + msgstr "recompiler en définissant HAVE_SCRIPT pour permettre l'exécution de scripts shell au changement de bail (lease-change)" + +-#: option.c:1687 ++#: option.c:1714 + msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts" + msgstr "recompiler en définissant HAVE_LUASCRIPT pour permettre l'exécution de scripts LUA au changement de bail (lease-change)" + +-#: option.c:1928 option.c:1966 option.c:2015 ++#: option.c:1970 option.c:2015 option.c:2071 + msgid "bad prefix" + msgstr "mauvais préfixe" + +-#: option.c:2289 ++#: option.c:2352 + msgid "recompile with HAVE_IPSET defined to enable ipset directives" + msgstr "recompiler en définissant HAVE_IPSET pour permettre l'utilisation de directives de groupes d'IP (IPset)" + + # +-#: option.c:2469 ++#: option.c:2545 + msgid "bad port range" + msgstr "gamme de ports incorrecte" + +-#: option.c:2485 ++#: option.c:2561 + msgid "bad bridge-interface" + msgstr "interface-pont incorrecte" + +-#: option.c:2545 ++#: option.c:2621 + msgid "only one tag allowed" + msgstr "une seule étiquette est autorisée" + +-#: option.c:2565 option.c:2577 option.c:2683 option.c:2724 ++#: option.c:2641 option.c:2653 option.c:2759 option.c:2800 + msgid "bad dhcp-range" + msgstr "plage d'adresses DHCP (dhcp-range) incorrecte" + +-#: option.c:2592 ++#: option.c:2668 + msgid "inconsistent DHCP range" + msgstr "plage d'adresses DHCP incohérente" + +-#: option.c:2651 ++#: option.c:2727 + msgid "prefix length must be exactly 64 for RA subnets" + msgstr "la taille du préfixe doit être exactement 64 pour les sous-réseaux d'annonces de routeurs (RA)" + +-#: option.c:2653 ++#: option.c:2729 + msgid "prefix length must be exactly 64 for subnet constructors" + msgstr "la taille du préfixe doit être exactement 64 pour le constructeur de sous-réseaux" + +-#: option.c:2657 ++#: option.c:2733 + msgid "prefix length must be at least 64" + msgstr "la taille de préfixe doit être au minimum 64" + +-#: option.c:2660 ++#: option.c:2736 + msgid "inconsistent DHCPv6 range" + msgstr "plage d'adresses DHCPv6 incohérente" + +-#: option.c:2671 ++#: option.c:2747 + msgid "prefix must be zero with \"constructor:\" argument" + msgstr "le préfixe doit avoir une taille de 0 lorsque l'argument \"constructor:\" est utilisé" + +-#: option.c:2782 option.c:2830 ++#: option.c:2858 option.c:2906 + msgid "bad hex constant" + msgstr "mauvaise constante hexadecimale" + +-#: option.c:2804 ++#: option.c:2880 + msgid "cannot match tags in --dhcp-host" + msgstr "L'utilisation de labels est prohibée dans --dhcp-host" + +-#: option.c:2852 ++#: option.c:2928 + #, c-format + msgid "duplicate dhcp-host IP address %s" + msgstr "adresse IP dhcp-host dupliquée dans %s." + + # +-#: option.c:2910 ++#: option.c:2986 + msgid "bad DHCP host name" + msgstr "nom d'hôte DHCP incorrect" + +-#: option.c:2992 ++#: option.c:3068 + msgid "bad tag-if" + msgstr "mauvaise étiquette tag-if" + +-#: option.c:3316 option.c:3710 ++#: option.c:3392 option.c:3786 + msgid "invalid port number" + msgstr "numéro de port invalide" + + # +-#: option.c:3378 ++#: option.c:3454 + msgid "bad dhcp-proxy address" + msgstr "adresse dhcp-proxy incorrecte" + +-#: option.c:3404 ++#: option.c:3480 + msgid "Bad dhcp-relay" + msgstr "valeur incorrecte pour le relais DHCP (dhcp-relay)" + +-#: option.c:3430 ++#: option.c:3506 + msgid "bad RA-params" + msgstr "" + +-#: option.c:3439 ++#: option.c:3515 + msgid "bad DUID" + msgstr "mauvais identifiant unique DHCP (DUID)" + + # +-#: option.c:3481 ++#: option.c:3557 + msgid "invalid alias range" + msgstr "poids invalide" + +-#: option.c:3535 ++#: option.c:3611 + msgid "bad CNAME" + msgstr "mauvais CNAME" + +-#: option.c:3540 ++#: option.c:3616 + msgid "duplicate CNAME" + msgstr "ce CNAME existe déja" + + # +-#: option.c:3560 ++#: option.c:3636 + msgid "bad PTR record" + msgstr "mauvais champ PTR" + + # +-#: option.c:3591 ++#: option.c:3667 + msgid "bad NAPTR record" + msgstr "mauvais champ NAPTR" + + # +-#: option.c:3625 ++#: option.c:3701 + msgid "bad RR record" + msgstr "mauvais enregistrement RR" + +-#: option.c:3655 ++#: option.c:3731 + msgid "bad TXT record" + msgstr "champ TXT invalide" + +-#: option.c:3696 ++#: option.c:3772 + msgid "bad SRV record" + msgstr "champ SRV invalide" + +-#: option.c:3703 ++#: option.c:3779 + msgid "bad SRV target" + msgstr "cible SRV invalide" + +-#: option.c:3717 ++#: option.c:3793 + msgid "invalid priority" + msgstr "priorité invalide" + +-#: option.c:3724 ++#: option.c:3800 + msgid "invalid weight" + msgstr "poids invalide" + + # +-#: option.c:3748 ++#: option.c:3824 + msgid "Bad host-record" + msgstr "mauvais champ host-record" + +-#: option.c:3765 ++#: option.c:3841 + msgid "Bad name in host-record" + msgstr "mauvais nom dans le champ host-record" + + # +-#: option.c:3826 ++#: option.c:3906 + #, fuzzy + msgid "bad trust anchor" + msgstr "gamme de ports incorrecte" + +-#: option.c:3840 ++#: option.c:3920 + msgid "bad HEX in trust anchor" + msgstr "" + +-#: option.c:3850 ++#: option.c:3930 + #, fuzzy + msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DNSSEC/DBus support)" + msgstr "option non supportée (vérifier que Dnsmasq a été compilé avec le support DHCP/TFTP/DBus)" + +-#: option.c:3909 ++#: option.c:3989 + msgid "missing \"" + msgstr "il manque \"" + +-#: option.c:3966 ++#: option.c:4046 + msgid "bad option" + msgstr "mauvaise option" + +-#: option.c:3968 ++#: option.c:4048 + msgid "extraneous parameter" + msgstr "paramètre en trop" + +-#: option.c:3970 ++#: option.c:4050 + msgid "missing parameter" + msgstr "paramètre manquant" + +-#: option.c:3972 ++#: option.c:4052 + #, fuzzy + msgid "illegal option" + msgstr "mauvaise option" + +-#: option.c:3979 ++#: option.c:4059 + msgid "error" + msgstr "erreur" + +-#: option.c:3981 ++#: option.c:4061 + #, c-format + msgid " at line %d of %s" + msgstr "à la ligne %d de %s" + +-#: option.c:4045 option.c:4168 tftp.c:667 +-#, c-format +-msgid "cannot read %s: %s" +-msgstr "Ne peut pas lire %s : %s" +- +-#: option.c:4229 option.c:4265 ++#: option.c:4076 option.c:4323 option.c:4359 + #, c-format + msgid "read %s" + msgstr "Lecture de %s" + +-#: option.c:4331 ++#: option.c:4139 option.c:4262 tftp.c:667 ++#, c-format ++msgid "cannot read %s: %s" ++msgstr "Ne peut pas lire %s : %s" ++ ++#: option.c:4425 + msgid "junk found in command line" + msgstr "la ligne de commande contient des éléments indésirables ou incompréhensibles" + +-#: option.c:4366 ++#: option.c:4460 + #, c-format + msgid "Dnsmasq version %s %s\n" + msgstr "Version de Dnsmasq %s %s\n" + +-#: option.c:4367 ++#: option.c:4461 + #, c-format + msgid "" + "Compile time options: %s\n" +@@ -1044,89 +1079,89 @@ msgstr "" + "Options à la compilation %s\n" + "\n" + +-#: option.c:4368 ++#: option.c:4462 + #, c-format + msgid "This software comes with ABSOLUTELY NO WARRANTY.\n" + msgstr "Ce logiciel est fourni sans AUCUNE GARANTIE.\n" + +-#: option.c:4369 ++#: option.c:4463 + #, c-format + msgid "Dnsmasq is free software, and you are welcome to redistribute it\n" + msgstr "Dnsmasq est un logiciel libre, il vous est permis de le redistribuer\n" + +-#: option.c:4370 ++#: option.c:4464 + #, c-format + msgid "under the terms of the GNU General Public License, version 2 or 3.\n" + msgstr "sous les termes de la licence GPL (GNU General Public License), version 2 ou 3.\n" + +-#: option.c:4381 ++#: option.c:4475 + msgid "try --help" + msgstr "essayez avec --help" + +-#: option.c:4383 ++#: option.c:4477 + msgid "try -w" + msgstr "essayez avec -w" + +-#: option.c:4385 ++#: option.c:4479 + #, c-format + msgid "bad command line options: %s" + msgstr "mauvaises options en ligne de commande : %s." + +-#: option.c:4434 ++#: option.c:4535 + #, c-format + msgid "cannot get host-name: %s" + msgstr "ne peut pas obtenir le nom de la machine : %s" + +-#: option.c:4462 ++#: option.c:4563 + msgid "only one resolv.conf file allowed in no-poll mode." + msgstr "seul un fichier resolv.conf est autorisé dans le mode no-poll" + +-#: option.c:4472 ++#: option.c:4573 + msgid "must have exactly one resolv.conf to read domain from." + msgstr "un fichier resolv.conf (et un seul) est nécessaire pour y récuperer le nom de domaine." + +-#: option.c:4475 network.c:1506 dhcp.c:769 ++#: option.c:4576 network.c:1506 dhcp.c:774 + #, c-format + msgid "failed to read %s: %s" + msgstr "impossible de lire %s : %s" + +-#: option.c:4492 ++#: option.c:4593 + #, c-format + msgid "no search directive found in %s" + msgstr "pas de directive de recherche trouvée dans %s" + +-#: option.c:4513 ++#: option.c:4614 + msgid "there must be a default domain when --dhcp-fqdn is set" + msgstr "un domaine par défaut doit être spécifié lorsque l'option --dhcp-fqdn est utilisée" + +-#: option.c:4522 ++#: option.c:4623 + msgid "syntax check OK" + msgstr "vérification de syntaxe OK" + +-#: forward.c:114 ++#: forward.c:111 + #, c-format + msgid "failed to send packet: %s" + msgstr "impossible d'envoyer le paquet : %s" + +-#: forward.c:574 ++#: forward.c:572 + msgid "discarding DNS reply: subnet option mismatch" + msgstr "" + +-#: forward.c:597 ++#: forward.c:595 + #, c-format + msgid "nameserver %s refused to do a recursive query" + msgstr "le serveur de nom %s a refusé de faire une recherche récursive" + +-#: forward.c:629 ++#: forward.c:627 + #, c-format + msgid "possible DNS-rebind attack detected: %s" + msgstr "détection d'une possible attaque de type DNS-rebind: %s" + +-#: forward.c:1132 forward.c:1663 ++#: forward.c:1156 forward.c:1722 + msgid "Ignoring query from non-local network" + msgstr "" + +-#: forward.c:2101 ++#: forward.c:2178 + #, c-format + msgid "Maximum number of concurrent DNS queries reached (max: %d)" + msgstr "Nombre maximum de requêtes DNS concurrentes atteint (maximum : %d)." +@@ -1216,271 +1251,286 @@ msgstr "utilise le serveur de nom %s#%d (via %s)" + msgid "using nameserver %s#%d" + msgstr "utilise le serveur de nom %s#%d" + +-#: dnsmasq.c:154 +-msgid "No trust anchors provided for DNSSEC" ++#: dnsmasq.c:149 ++msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" + msgstr "" + +-#: dnsmasq.c:157 +-msgid "Cannot reduce cache size from default when DNSSEC enabled" ++#: dnsmasq.c:156 ++msgid "no trust anchors provided for DNSSEC" + msgstr "" + + #: dnsmasq.c:159 ++msgid "cannot reduce cache size from default when DNSSEC enabled" ++msgstr "" ++ ++#: dnsmasq.c:161 + #, fuzzy + msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h" + msgstr "DBus n'est pas disponible : activez HAVE_DBUS dans src/config.h" + + # +-#: dnsmasq.c:165 ++#: dnsmasq.c:167 + msgid "TFTP server not available: set HAVE_TFTP in src/config.h" + msgstr "TFTP n'est pas disponible : activez HAVE_TFTP dans src/config.h" + +-#: dnsmasq.c:170 +-msgid "Cannot use --conntrack AND --query-port" ++#: dnsmasq.c:172 ++#, fuzzy ++msgid "cannot use --conntrack AND --query-port" + msgstr "impossible d'utiliser conjointement --conntrack et --query-port" + + # +-#: dnsmasq.c:173 +-msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h" ++#: dnsmasq.c:175 ++#, fuzzy ++msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" + msgstr "Support de suivi de connexion non disponible : activez HAVE_CONNTRACK dans src/config.h" + +-#: dnsmasq.c:178 ++#: dnsmasq.c:180 + msgid "asychronous logging is not available under Solaris" + msgstr "l'écriture de traces en mode asynchrone n'est pas disponible sous Solaris." + +-#: dnsmasq.c:183 ++#: dnsmasq.c:185 + msgid "asychronous logging is not available under Android" + msgstr "l'écriture de traces en mode asynchrone n'est pas disponible sous Android." + +-#: dnsmasq.c:188 ++#: dnsmasq.c:190 + msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h" + msgstr "le mode « autorité DNS » n'est pas disponible : activez HAVE_AUTH dans src/config.h" + + # +-#: dnsmasq.c:193 ++#: dnsmasq.c:195 + #, fuzzy +-msgid "Loop detection not available: set HAVE_LOOP in src/config.h" ++msgid "loop detection not available: set HAVE_LOOP in src/config.h" + msgstr "TFTP n'est pas disponible : activez HAVE_TFTP dans src/config.h" + +-#: dnsmasq.c:201 ++#: dnsmasq.c:203 + msgid "zone serial must be configured in --auth-soa" + msgstr "le numéro de série de la zone doit être configuré dans --auth-soa" + +-#: dnsmasq.c:219 ++#: dnsmasq.c:221 + msgid "dhcp-range constructor not available on this platform" + msgstr "le constructeur de plage dhcp n'est pas disponible sur cette plate-forme" + +-#: dnsmasq.c:262 ++#: dnsmasq.c:264 + msgid "cannot set --bind-interfaces and --bind-dynamic" + msgstr "--bind-interfaces et --bind-dynamic sont mutuellement exclusives" + +-#: dnsmasq.c:265 ++#: dnsmasq.c:267 + #, c-format + msgid "failed to find list of interfaces: %s" + msgstr "impossible de trouver la liste des interfaces : %s" + +-#: dnsmasq.c:274 ++#: dnsmasq.c:276 + #, c-format + msgid "unknown interface %s" + msgstr "interface %s inconnue" + +-#: dnsmasq.c:330 dnsmasq.c:954 ++#: dnsmasq.c:340 dnsmasq.c:1004 + #, c-format + msgid "DBus error: %s" + msgstr "Erreur DBus : %s" + +-#: dnsmasq.c:333 ++#: dnsmasq.c:343 + msgid "DBus not available: set HAVE_DBUS in src/config.h" + msgstr "DBus n'est pas disponible : activez HAVE_DBUS dans src/config.h" + +-#: dnsmasq.c:361 ++#: dnsmasq.c:371 + #, c-format + msgid "unknown user or group: %s" + msgstr "utilisateur ou groupe inconnu : %s" + +-#: dnsmasq.c:416 ++#: dnsmasq.c:426 + #, c-format + msgid "cannot chdir to filesystem root: %s" + msgstr "Ne peut effectuer un 'chdir' à la racine du système de fichier : %s" + +-#: dnsmasq.c:653 ++#: dnsmasq.c:667 + #, c-format + msgid "started, version %s DNS disabled" + msgstr "démarrage avec le DNS désactivé (version %s)" + +-#: dnsmasq.c:655 ++#: dnsmasq.c:669 + #, c-format + msgid "started, version %s cachesize %d" + msgstr "demarré, version %s (taille de cache %d)" + +-#: dnsmasq.c:657 ++#: dnsmasq.c:671 + #, c-format + msgid "started, version %s cache disabled" + msgstr "démarrage avec le cache désactivé (version %s)" + +-#: dnsmasq.c:659 ++#: dnsmasq.c:673 + #, c-format + msgid "compile time options: %s" + msgstr "options à la compilation : %s" + +-#: dnsmasq.c:665 ++#: dnsmasq.c:679 + msgid "DBus support enabled: connected to system bus" + msgstr "Support DBus autorisé : connecté au bus système" + +-#: dnsmasq.c:667 ++#: dnsmasq.c:681 + msgid "DBus support enabled: bus connection pending" + msgstr "Support DBus autorisé : connexion au bus en attente" + +-#: dnsmasq.c:672 ++#: dnsmasq.c:686 + msgid "DNS service limited to local subnets" + msgstr "" + +-#: dnsmasq.c:677 ++#: dnsmasq.c:702 + msgid "DNSSEC validation enabled" + msgstr "" + +-#: dnsmasq.c:679 ++#: dnsmasq.c:705 + msgid "DNSSEC signature timestamps not checked until first cache reload" + msgstr "" + +-#: dnsmasq.c:684 ++#: dnsmasq.c:708 ++msgid "DNSSEC signature timestamps not checked until system time valid" ++msgstr "" ++ ++#: dnsmasq.c:713 + #, c-format + msgid "warning: failed to change owner of %s: %s" + msgstr "Impossible de changer pour l'utilisateur %s : %s" + +-#: dnsmasq.c:688 ++#: dnsmasq.c:717 + msgid "setting --bind-interfaces option because of OS limitations" + msgstr "active l'option --bind-interfaces à cause de limitations dans le système d'exploitation" + +-#: dnsmasq.c:698 ++#: dnsmasq.c:727 + #, c-format + msgid "warning: interface %s does not currently exist" + msgstr "attention : l'interface %s n'existe pas actuellement" + +-#: dnsmasq.c:703 ++#: dnsmasq.c:732 + msgid "warning: ignoring resolv-file flag because no-resolv is set" + msgstr "attention : l'option « resolv-file » sera ignorée car « no-resolv » a été spécifié" + + # +-#: dnsmasq.c:706 ++#: dnsmasq.c:735 + msgid "warning: no upstream servers configured" + msgstr "attention : aucun serveur amont n'est configuré" + +-#: dnsmasq.c:710 ++#: dnsmasq.c:739 + #, c-format + msgid "asynchronous logging enabled, queue limit is %d messages" + msgstr "mode asynchrone d'écriture de traces, la taille maximum de la queue est de %d messages." + +-#: dnsmasq.c:731 ++#: dnsmasq.c:760 + msgid "IPv6 router advertisement enabled" + msgstr "annonces de routeur IPv6 activées" + +-#: dnsmasq.c:736 ++#: dnsmasq.c:765 + #, c-format + msgid "DHCP, sockets bound exclusively to interface %s" + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "root is " + msgstr "root est" + + # +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "enabled" + msgstr "activé" + +-#: dnsmasq.c:755 ++#: dnsmasq.c:784 + msgid "secure mode" + msgstr "mode sécurisé" + +-#: dnsmasq.c:781 ++#: dnsmasq.c:810 + #, c-format + msgid "restricting maximum simultaneous TFTP transfers to %d" + msgstr "le nombre maximum de transferts TFTP simultanés sera restreint à %d" + +-#: dnsmasq.c:956 ++#: dnsmasq.c:1006 + msgid "connected to system DBus" + msgstr "connecté au systeme DBus" + +-#: dnsmasq.c:1106 ++#: dnsmasq.c:1156 + #, c-format + msgid "cannot fork into background: %s" + msgstr "Ne peut se lancer en tâche de fond : %s" + +-#: dnsmasq.c:1109 ++#: dnsmasq.c:1159 + #, c-format + msgid "failed to create helper: %s" + msgstr "impossible de créer le 'helper' : %s" + +-#: dnsmasq.c:1112 ++#: dnsmasq.c:1162 + #, c-format + msgid "setting capabilities failed: %s" + msgstr "impossible de configurer la capacité %s" + +-#: dnsmasq.c:1115 ++#: dnsmasq.c:1165 + #, c-format + msgid "failed to change user-id to %s: %s" + msgstr "Impossible de changer l'identifiant utilisateur pour %s : %s" + +-#: dnsmasq.c:1118 ++#: dnsmasq.c:1168 + #, c-format + msgid "failed to change group-id to %s: %s" + msgstr "Impossible de changer l'identifiant de groupe pour %s : %s" + +-#: dnsmasq.c:1121 ++#: dnsmasq.c:1171 + #, c-format + msgid "failed to open pidfile %s: %s" + msgstr "impossible de lire le fichier de PID %s : %s" + +-#: dnsmasq.c:1124 ++#: dnsmasq.c:1174 + #, c-format + msgid "cannot open log %s: %s" + msgstr "Ne peut ouvrir le fichier de log %s : %s" + + # +-#: dnsmasq.c:1127 ++#: dnsmasq.c:1177 + #, c-format + msgid "failed to load Lua script: %s" + msgstr "impossible de charger le script Lua : %s" + +-#: dnsmasq.c:1130 ++#: dnsmasq.c:1180 + #, c-format + msgid "TFTP directory %s inaccessible: %s" + msgstr "répertoire TFTP %s inaccessible : %s" + +-#: dnsmasq.c:1151 ++#: dnsmasq.c:1183 ++#, fuzzy, c-format ++msgid "cannot create timestamp file %s: %s" ++msgstr "ne peut ouvrir ou créer le fichiers de baux %s : %s" ++ ++#: dnsmasq.c:1204 + msgid "now checking DNSSEC signature timestamps" + msgstr "" + +-#: dnsmasq.c:1218 ++#: dnsmasq.c:1271 + #, c-format + msgid "script process killed by signal %d" + msgstr "Le script a été terminé par le signal %d" + +-#: dnsmasq.c:1222 ++#: dnsmasq.c:1275 + #, c-format + msgid "script process exited with status %d" + msgstr "Le script s'est terminé avec le statut %d" + +-#: dnsmasq.c:1226 ++#: dnsmasq.c:1279 + #, c-format + msgid "failed to execute %s: %s" + msgstr "impossible d'exécuter à %s : %s" + +-#: dnsmasq.c:1281 ++#: dnsmasq.c:1334 + msgid "exiting on receipt of SIGTERM" + msgstr "sortie sur réception du signal SIGTERM" + +-#: dnsmasq.c:1309 ++#: dnsmasq.c:1362 + #, c-format + msgid "failed to access %s: %s" + msgstr "impossible d'accéder à %s : %s" + +-#: dnsmasq.c:1339 ++#: dnsmasq.c:1392 + #, c-format + msgid "reading %s" + msgstr "Lecture de %s" + +-#: dnsmasq.c:1350 ++#: dnsmasq.c:1403 + #, c-format + msgid "no servers found in %s, will retry" + msgstr "aucun serveur trouvé dans %s, va réessayer" +@@ -1520,27 +1570,27 @@ msgstr "interface %s inconnue sp + msgid "DHCP packet received on %s which has no address" + msgstr "Paquet DHCP reçu sur %s qui n'a pas d'adresse" + +-#: dhcp.c:408 ++#: dhcp.c:412 + #, c-format + msgid "ARP-cache injection failed: %s" + msgstr "" + +-#: dhcp.c:506 ++#: dhcp.c:511 + #, c-format + msgid "DHCP range %s -- %s is not consistent with netmask %s" + msgstr "La plage d'adresses DHCP %s -- %s n'est pas cohérente avec le masque de réseau %s" + +-#: dhcp.c:807 ++#: dhcp.c:812 + #, c-format + msgid "bad line at %s line %d" + msgstr "mauvaise ligne dans %s ligne %d" + +-#: dhcp.c:850 ++#: dhcp.c:855 + #, c-format + msgid "ignoring %s line %d, duplicate name or IP address" + msgstr "ignore %s à la ligne %d : duplication de nom ou d'adresse IP" + +-#: dhcp.c:994 rfc3315.c:2089 ++#: dhcp.c:999 rfc3315.c:2139 + #, c-format + msgid "DHCP relay %s -> %s" + msgstr "Relais DHCP %s -> %s" +@@ -1611,12 +1661,12 @@ msgstr "%u Classe d'utilisateur : %s" + msgid "disabled" + msgstr "désactivé" + +-#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:602 rfc3315.c:823 +-#: rfc3315.c:1095 ++#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:603 rfc3315.c:860 ++#: rfc3315.c:1139 + msgid "ignored" + msgstr "ignoré" + +-#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:873 ++#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:910 + msgid "address in use" + msgstr "adresse déjà utilisée" + +@@ -1636,7 +1686,7 @@ msgstr "pas d'adresse configur + msgid "no leases left" + msgstr "plus aucun bail disponible" + +-#: rfc2131.c:691 rfc3315.c:475 ++#: rfc2131.c:691 rfc3315.c:476 + #, c-format + msgid "%u client provides name: %s" + msgstr "le client %u fourni le nom : %s" +@@ -1645,7 +1695,7 @@ msgstr "le client %u fourni le nom : %s" + msgid "PXE BIS not supported" + msgstr "Service PXE BIS (Boot Integrity Services) non supporté" + +-#: rfc2131.c:935 rfc3315.c:1189 ++#: rfc2131.c:935 rfc3315.c:1233 + #, c-format + msgid "disabling DHCP static address %s for %s" + msgstr "désactive l'adresse statique DHCP %s pour %s" +@@ -1681,7 +1731,7 @@ msgstr "mauvais identifiant de serveur" + msgid "wrong address" + msgstr "mauvaise adresse" + +-#: rfc2131.c:1143 rfc3315.c:969 ++#: rfc2131.c:1143 rfc3315.c:1006 + msgid "lease not found" + msgstr "bail non trouvé" + +@@ -1731,7 +1781,7 @@ msgstr "Impossible d'envoyer l'option DHCP/BOOTP %d : pas assez d'espace dans le + msgid "PXE menu too large" + msgstr "menu PXE trop grand" + +-#: rfc2131.c:2173 rfc3315.c:1456 ++#: rfc2131.c:2173 rfc3315.c:1506 + #, c-format + msgid "%u requested options: %s" + msgstr "%u options demandées : %s" +@@ -1746,7 +1796,7 @@ msgstr "ne peux envoyer l'option RFC3925 : trop d'options pour le num + msgid "cannot create netlink socket: %s" + msgstr "ne peux lier une socket netlink : %s" + +-#: netlink.c:347 ++#: netlink.c:348 + #, c-format + msgid "netlink returns error: %s" + msgstr "Erreur netlink : %s" +@@ -1864,62 +1914,62 @@ msgstr "pas de plage d'adresse disponible pour la requ + msgid "%u available DHCPv6 subnet: %s/%d" + msgstr "%u sous-réseaux DHCPv6 disponibles : %s/%d" + +-#: rfc3315.c:379 ++#: rfc3315.c:380 + #, c-format + msgid "%u vendor class: %u" + msgstr "%u Classe de vendeur ('Vendor Class') : %u" + +-#: rfc3315.c:427 ++#: rfc3315.c:428 + #, c-format + msgid "%u client MAC address: %s" + msgstr "%u MAC adresse du client : %s" + +-#: rfc3315.c:659 ++#: rfc3315.c:660 + #, c-format + msgid "unknown prefix-class %d" + msgstr "préfixe de classe inconnu %d" + +-#: rfc3315.c:791 rfc3315.c:913 ++#: rfc3315.c:803 rfc3315.c:902 ++msgid "address unavailable" ++msgstr "adresse non disponible" ++ ++#: rfc3315.c:815 rfc3315.c:950 rfc3315.c:1283 + msgid "success" + msgstr "réussi" + +-#: rfc3315.c:806 rfc3315.c:808 rfc3315.c:921 rfc3315.c:923 ++#: rfc3315.c:843 rfc3315.c:845 rfc3315.c:958 rfc3315.c:960 + msgid "no addresses available" + msgstr "pas d'adresse disponible" + +-#: rfc3315.c:865 +-msgid "address unavailable" +-msgstr "adresse non disponible" +- +-#: rfc3315.c:900 ++#: rfc3315.c:937 + msgid "not on link" + msgstr "pas sur ce lien" + +-#: rfc3315.c:973 rfc3315.c:1151 rfc3315.c:1228 ++#: rfc3315.c:1010 rfc3315.c:1195 rfc3315.c:1272 + msgid "no binding found" + msgstr "aucune liaison trouvée" + +-#: rfc3315.c:1011 ++#: rfc3315.c:1048 + msgid "deprecated" + msgstr "obsolète" + +-#: rfc3315.c:1016 ++#: rfc3315.c:1053 + msgid "address invalid" + msgstr "adresse non valide" + +-#: rfc3315.c:1061 ++#: rfc3315.c:1100 + msgid "confirm failed" + msgstr "confirmation d'échec" + +-#: rfc3315.c:1072 ++#: rfc3315.c:1116 + msgid "all addresses still on link" + msgstr "toutes les adresses sont toujours sur le lien" + +-#: rfc3315.c:1160 ++#: rfc3315.c:1204 + msgid "release received" + msgstr "libération reçue" + +-#: rfc3315.c:2080 ++#: rfc3315.c:2130 + msgid "Cannot multicast to DHCPv6 server without correct interface" + msgstr "Impossible de faire du multicast au server DHCPv6 sans interface valide" + +@@ -2012,7 +2062,7 @@ msgstr "Relais DHCP de %s + msgid "cannot create ICMPv6 socket: %s" + msgstr "ne peut créer la socket ICMPv6: %s" + +-#: auth.c:429 ++#: auth.c:436 + #, c-format + msgid "ignoring zone transfer request from %s" + msgstr "la requête de transfert de zone en provenance de %s est ignorée" +@@ -2027,55 +2077,90 @@ msgstr "impossible de trouver la version de noyau : %s" + msgid "failed to create IPset control socket: %s" + msgstr "impossible de créer une socket de contrôle IPset : %s" + ++#: dnssec.c:425 dnssec.c:469 ++#, fuzzy, c-format ++msgid "failed to update mtime on %s: %s" ++msgstr "impossible de lire le fichier de PID %s : %s" ++ + #: blockdata.c:58 + #, c-format + msgid "DNSSEC memory in use %u, max %u, allocated %u" + msgstr "" + +-#: tables.c:76 ++#: tables.c:80 + msgid "error: fill_addr missused" + msgstr "" + +-#: tables.c:105 ++#: tables.c:109 + #, fuzzy, c-format + msgid "failed to access pf devices: %s" + msgstr "impossible d'accéder à %s : %s" + +-#: tables.c:119 ++#: tables.c:123 + #, fuzzy, c-format + msgid "warning: no opened pf devices %s" + msgstr "utilise les adresses locales seulement pour %s %s" + +-#: tables.c:127 ++#: tables.c:131 + #, fuzzy, c-format + msgid "error: cannot use table name %s" + msgstr "ne peut pas obtenir le nom de la machine : %s" + +-#: tables.c:135 ++#: tables.c:139 + #, c-format + msgid "error: cannot strlcpy table name %s" + msgstr "" + +-#: tables.c:141 ++#: tables.c:145 + #, c-format + msgid "warning: pfr_add_tables: %s(%d)" + msgstr "" + +-#: tables.c:147 ++#: tables.c:151 + msgid "info: table created" + msgstr "" + +-#: tables.c:158 ++#: tables.c:162 + #, c-format + msgid "warning: DIOCR%sADDRS: %s" + msgstr "" + + # +-#: tables.c:162 ++#: tables.c:166 + #, fuzzy, c-format + msgid "%d addresses %s" + msgstr "mauvaise adresse" + ++#: inotify.c:46 ++#, fuzzy, c-format ++msgid "failed to create inotify: %s" ++msgstr "impossible de créer le 'helper' : %s" ++ ++#: inotify.c:60 ++#, fuzzy, c-format ++msgid "cannot cannonicalise resolv-file %s: %s" ++msgstr "ne peut ouvrir ou créer le fichiers de baux %s : %s" ++ ++#: inotify.c:72 ++#, c-format ++msgid "directory %s for resolv-file is missing, cannot poll" ++msgstr "" ++ ++#: inotify.c:75 inotify.c:112 ++#, fuzzy, c-format ++msgid "failed to create inotify for %s: %s" ++msgstr "impossible de créer une socket d'écoute pour %s : %s" ++ ++#: inotify.c:97 ++#, fuzzy, c-format ++msgid "bad dynamic directory %s: %s" ++msgstr "Ne peut pas lire le répertoire %s : %s" ++ ++#: inotify.c:197 ++#, c-format ++msgid "inotify, new or changed file %s" ++msgstr "" ++ + #~ msgid "Always send frequent router-advertisements" + #~ msgstr "Envoyer des annonces de routeurs fréquentes" + +diff --git a/po/id.po b/po/id.po +index b1809b695168..a0ff0f062e8b 100644 +--- a/po/id.po ++++ b/po/id.po +@@ -15,77 +15,77 @@ msgstr "" + "Content-Type: text/plain; charset=ASCII\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: cache.c:505 ++#: cache.c:523 + msgid "Internal error in cache." + msgstr "" + + # OK +-#: cache.c:908 ++#: cache.c:941 + #, fuzzy, c-format + msgid "failed to load names from %s: %s" + msgstr "gagal memuat nama-nama dari %s: %s" + + # OK +-#: cache.c:934 dhcp.c:820 ++#: cache.c:967 dhcp.c:825 + #, fuzzy, c-format + msgid "bad address at %s line %d" + msgstr "kesalahan nama pada %s baris %d" + + # OK +-#: cache.c:985 dhcp.c:836 ++#: cache.c:1018 dhcp.c:841 + #, c-format + msgid "bad name at %s line %d" + msgstr "kesalahan nama pada %s baris %d" + + # OK +-#: cache.c:992 dhcp.c:911 ++#: cache.c:1027 dhcp.c:916 + #, c-format + msgid "read %s - %d addresses" + msgstr "membaca %s - %d alamat" + + # OK +-#: cache.c:1100 ++#: cache.c:1135 + msgid "cleared cache" + msgstr "cache telah dihapus" + +-#: cache.c:1123 ++#: cache.c:1164 + #, c-format + msgid "No IPv4 address found for %s" + msgstr "" + +-#: cache.c:1201 ++#: cache.c:1242 + #, c-format + msgid "%s is a CNAME, not giving it to the DHCP lease of %s" + msgstr "" + + # OK +-#: cache.c:1225 ++#: cache.c:1266 + #, c-format + msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s" + msgstr "tidak memberikan nama %s kepada lease DHCP %s karena nama telah ada dalam %sdengan alamat %s" + +-#: cache.c:1366 ++#: cache.c:1421 + #, c-format + msgid "time %lu" + msgstr "" + + # OK +-#: cache.c:1367 ++#: cache.c:1422 + #, fuzzy, c-format + msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries." + msgstr "ukuran cache %d, %d/%d penyisipan cache menimpa cache yang belum kadaluwarsa" + +-#: cache.c:1369 ++#: cache.c:1424 + #, c-format + msgid "queries forwarded %u, queries answered locally %u" + msgstr "" + +-#: cache.c:1372 ++#: cache.c:1427 + #, c-format + msgid "queries for authoritative zones %u" + msgstr "" + +-#: cache.c:1398 ++#: cache.c:1453 + #, c-format + msgid "server %s#%d: queries sent %u, retried or failed %u" + msgstr "" +@@ -103,7 +103,7 @@ msgid "failed to allocate memory" + msgstr "gagal memuat %S: %m" + + # OK +-#: util.c:243 option.c:579 ++#: util.c:243 option.c:598 + msgid "could not get memory" + msgstr "tidak bisa mendapatkan memory" + +@@ -120,682 +120,720 @@ msgid "failed to allocate %d bytes" + msgstr "gagal memuat %S: %m" + + # OK +-#: util.c:429 ++#: util.c:430 + #, c-format + msgid "infinite" + msgstr "tak terbatas" + + # OK +-#: option.c:318 ++#: option.c:330 + msgid "Specify local address(es) to listen on." + msgstr "Tentukan alamat lokal untuk mendengarkan." + + # OK +-#: option.c:319 ++#: option.c:331 + msgid "Return ipaddr for all hosts in specified domains." + msgstr "Menghasilkan ipaddr untuk semua host dalam domain yang dipilih." + + # OK +-#: option.c:320 ++#: option.c:332 + msgid "Fake reverse lookups for RFC1918 private address ranges." + msgstr "Fake pencarian balik untuk alamat private sesuai dengan RFC1918." + + # OK +-#: option.c:321 ++#: option.c:333 + msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)." + msgstr "Perlakukan ipaddr sebagai NXDOMAIN (mengalahkan wildcard Verisign)." + + # OK +-#: option.c:322 ++#: option.c:334 + #, c-format + msgid "Specify the size of the cache in entries (defaults to %s)." + msgstr "Tentukan ukuran cache, dalam jumlah isian (default %s)." + + # OK +-#: option.c:323 ++#: option.c:335 + #, c-format + msgid "Specify configuration file (defaults to %s)." + msgstr "Tentukan file konfigurasi (default %s)." + + # OK +-#: option.c:324 ++#: option.c:336 + msgid "Do NOT fork into the background: run in debug mode." + msgstr "JANGAN berjalan di background: berjalan dalam modus debug." + + # OK +-#: option.c:325 ++#: option.c:337 + msgid "Do NOT forward queries with no domain part." + msgstr "JANGAN teruskan permintaan tanpa bagian domain." + + # OK +-#: option.c:326 ++#: option.c:338 + msgid "Return self-pointing MX records for local hosts." + msgstr "Mengembalikan record MX untuk diri sendiri host-host lokal." + + # OK +-#: option.c:327 ++#: option.c:339 + msgid "Expand simple names in /etc/hosts with domain-suffix." + msgstr "Melengkapi nama-nama di /etc/hosts dengan akhiran domain." + + # OK +-#: option.c:328 ++#: option.c:340 + msgid "Don't forward spurious DNS requests from Windows hosts." + msgstr "Jangan meneruskan permintaan DNS spurious dari host-host Windows." + + # OK +-#: option.c:329 ++#: option.c:341 + msgid "Enable DHCP in the range given with lease duration." + msgstr "Bolehkan DHCP dalam jangkauan yang diberikan dengan durasi lease." + + # OK +-#: option.c:330 ++#: option.c:342 + #, c-format + msgid "Change to this group after startup (defaults to %s)." + msgstr "Ubah ke group ini setelah mulai (default %s)." + + # OK +-#: option.c:331 ++#: option.c:343 + msgid "Set address or hostname for a specified machine." + msgstr "Setel alamat atau nama host untuk mesin yang disebutkan." + + # OK +-#: option.c:332 ++#: option.c:344 + #, fuzzy + msgid "Read DHCP host specs from file." + msgstr "nama MX salah" + +-#: option.c:333 ++#: option.c:345 + msgid "Read DHCP option specs from file." + msgstr "" + +-#: option.c:334 ++# OK ++#: option.c:346 ++#, fuzzy ++msgid "Read DHCP host specs from a directory." ++msgstr "nama MX salah" ++ ++# OK ++#: option.c:347 ++#, fuzzy ++msgid "Read DHCP options from a directory." ++msgstr "nama MX salah" ++ ++#: option.c:348 + msgid "Evaluate conditional tag expression." + msgstr "" + + # OK +-#: option.c:335 ++#: option.c:349 + #, c-format + msgid "Do NOT load %s file." + msgstr "JANGAN muat file %s." + + # OK +-#: option.c:336 ++#: option.c:350 + #, c-format + msgid "Specify a hosts file to be read in addition to %s." + msgstr "Sebutkan sebuah file hosts yang harus dibaca sebagai tambahan untuk %s." + + # OK +-#: option.c:337 ++#: option.c:351 ++#, fuzzy ++msgid "Read hosts files from a directory." ++msgstr "nama MX salah" ++ ++# OK ++#: option.c:352 + msgid "Specify interface(s) to listen on." + msgstr "Sebutkan antarmuka untuk mendengarkan." + + # OK +-#: option.c:338 ++#: option.c:353 + msgid "Specify interface(s) NOT to listen on." + msgstr "Sebutkan antarmuka untuk TIDAK mendengarkan." + + # OK +-#: option.c:339 ++#: option.c:354 + #, fuzzy + msgid "Map DHCP user class to tag." + msgstr "Petakan kelas user DHCP ke setelan yang dipilih." + +-#: option.c:340 ++#: option.c:355 + msgid "Map RFC3046 circuit-id to tag." + msgstr "" + +-#: option.c:341 ++#: option.c:356 + msgid "Map RFC3046 remote-id to tag." + msgstr "" + +-#: option.c:342 ++#: option.c:357 + msgid "Map RFC3993 subscriber-id to tag." + msgstr "" + + # OK +-#: option.c:343 ++#: option.c:358 + #, fuzzy + msgid "Don't do DHCP for hosts with tag set." + msgstr "Jangan menggunakan DHCP untuk host-host yang dipilih." + + # OK +-#: option.c:344 ++#: option.c:359 + #, fuzzy + msgid "Force broadcast replies for hosts with tag set." + msgstr "Jangan menggunakan DHCP untuk host-host yang dipilih." + + # OK +-#: option.c:345 ++#: option.c:360 + msgid "Do NOT fork into the background, do NOT run in debug mode." + msgstr "JANGAN berjalan di background, jangan berjalan dalam modus debug." + + # OK +-#: option.c:346 ++#: option.c:361 + msgid "Assume we are the only DHCP server on the local network." + msgstr "Berpikir bahwa kita satu-satunya DHCP server dalam jaringan." + + # OK +-#: option.c:347 ++#: option.c:362 + #, c-format + msgid "Specify where to store DHCP leases (defaults to %s)." + msgstr "Sebutkan lokasi untuk menyimpan lease DHCP (default %s)." + + # OK +-#: option.c:348 ++#: option.c:363 + msgid "Return MX records for local hosts." + msgstr "Kembalikan rekord MX untuk host-host lokal." + + # OK +-#: option.c:349 ++#: option.c:364 + msgid "Specify an MX record." + msgstr "Sebutkan sebuah rekord MX." + + # OK +-#: option.c:350 ++#: option.c:365 + msgid "Specify BOOTP options to DHCP server." + msgstr "Sebutkan pilihan-pilihan BOOTP untuk DHCP server." + +-#: option.c:351 ++#: option.c:366 + #, c-format + msgid "Do NOT poll %s file, reload only on SIGHUP." + msgstr "Jangan kumpulkan file %s, muat kembali saat SIGHUP." + + # OK +-#: option.c:352 ++#: option.c:367 + msgid "Do NOT cache failed search results." + msgstr "JANGAN menyimpan hasil pencarian yang gagal." + + # OK +-#: option.c:353 ++#: option.c:368 + #, c-format + msgid "Use nameservers strictly in the order given in %s." + msgstr "Gunakan secara ketat namaserver yang disebutkan sesuai urutan di %s." + + # OK +-#: option.c:354 ++#: option.c:369 + #, fuzzy + msgid "Specify options to be sent to DHCP clients." + msgstr "Setel pilihan-pilihan tambahan yang akan disetel untuk klien-klien DHCP." + +-#: option.c:355 ++#: option.c:370 + msgid "DHCP option sent even if the client does not request it." + msgstr "" + + # OK +-#: option.c:356 ++#: option.c:371 + msgid "Specify port to listen for DNS requests on (defaults to 53)." + msgstr "Sebutkan port untuk mendengarkan permintaan DNS (default port 53)." + + # OK +-#: option.c:357 ++#: option.c:372 + #, c-format + msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)." + msgstr "Ukuran maksimum paket UDP yang didukung untuk EDNS.0 (default %s)." + + # OK +-#: option.c:358 ++#: option.c:373 + #, fuzzy + msgid "Log DNS queries." + msgstr "Permintaan log." + + # OK +-#: option.c:359 ++#: option.c:374 + #, fuzzy + msgid "Force the originating port for upstream DNS queries." + msgstr "Paksa port asal untuk permintaan ke atas." + + # OK +-#: option.c:360 ++#: option.c:375 + msgid "Do NOT read resolv.conf." + msgstr "JANGAN baca resolv.conf." + + # OK +-#: option.c:361 ++#: option.c:376 + #, c-format + msgid "Specify path to resolv.conf (defaults to %s)." + msgstr "Sebutkan path ke resolv.conf (default %s)." + + # OK +-#: option.c:362 ++#: option.c:377 + #, fuzzy + msgid "Specify path to file with server= options" + msgstr "Sebutkan path file PID. (default %s)." + + # OK +-#: option.c:363 ++#: option.c:378 + msgid "Specify address(es) of upstream servers with optional domains." + msgstr "Sebutkan alamat-alamat server di atas, boleh dilengkapi dengan nama domain." + + # OK +-#: option.c:364 ++#: option.c:379 + #, fuzzy + msgid "Specify address of upstream servers for reverse address queries" + msgstr "Sebutkan alamat-alamat server di atas, boleh dilengkapi dengan nama domain." + + # OK +-#: option.c:365 ++#: option.c:380 + msgid "Never forward queries to specified domains." + msgstr "JANGAN pernah meneruskan permintaan ke domain yang disebutkan." + + # OK +-#: option.c:366 ++#: option.c:381 + msgid "Specify the domain to be assigned in DHCP leases." + msgstr "Sebutkan domain yang digunakan dalam lease DHCP." + + # OK +-#: option.c:367 ++#: option.c:382 + msgid "Specify default target in an MX record." + msgstr "Sebutkan tujuan default dalam rekord MX." + + # OK +-#: option.c:368 ++#: option.c:383 + msgid "Specify time-to-live in seconds for replies from /etc/hosts." + msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts." + + # OK +-#: option.c:369 ++#: option.c:384 + #, fuzzy + msgid "Specify time-to-live in seconds for negative caching." + msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts." + + # OK +-#: option.c:370 ++#: option.c:385 + #, fuzzy + msgid "Specify time-to-live in seconds for maximum TTL to send to clients." + msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts." + + # OK +-#: option.c:371 ++#: option.c:386 ++#, fuzzy ++msgid "Specify time-to-live ceiling for cache." ++msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts." ++ ++# OK ++#: option.c:387 ++#, fuzzy ++msgid "Specify time-to-live floor for cache." ++msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts." ++ ++# OK ++#: option.c:388 + #, c-format + msgid "Change to this user after startup. (defaults to %s)." + msgstr "Ubah ke user ini setelah mulai. (default %s)." + + # OK +-#: option.c:372 ++#: option.c:389 + #, fuzzy + msgid "Map DHCP vendor class to tag." + msgstr "Memetakan kelas vendor DHCP ke daftar pilihan." + + # OK +-#: option.c:373 ++#: option.c:390 + msgid "Display dnsmasq version and copyright information." + msgstr "Menampilkan versi dan informasi hak cipta dnsmasq." + + # OK +-#: option.c:374 ++#: option.c:391 + msgid "Translate IPv4 addresses from upstream servers." + msgstr "Terjemahkan alamat-alamat IPv4 dari server-server di atas." + + # OK +-#: option.c:375 ++#: option.c:392 + msgid "Specify a SRV record." + msgstr "Sebutkan rekord SRV." + +-#: option.c:376 ++#: option.c:393 + msgid "Display this message. Use --help dhcp for known DHCP options." + msgstr "" + + # OK +-#: option.c:377 ++#: option.c:394 + #, fuzzy, c-format + msgid "Specify path of PID file (defaults to %s)." + msgstr "Sebutkan path file PID. (default %s)." + + # OK +-#: option.c:378 ++#: option.c:395 + #, c-format + msgid "Specify maximum number of DHCP leases (defaults to %s)." + msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)." + + # OK +-#: option.c:379 ++#: option.c:396 + msgid "Answer DNS queries based on the interface a query was sent to." + msgstr "Jawab permintaan DNS berdasarkan antarmuka dimana permintaan dikirimkan." + + # OK +-#: option.c:380 ++#: option.c:397 + msgid "Specify TXT DNS record." + msgstr "Sebutkan rekord TXT DNS." + + # OK +-#: option.c:381 ++#: option.c:398 + #, fuzzy + msgid "Specify PTR DNS record." + msgstr "Sebutkan rekord TXT DNS." + +-#: option.c:382 ++#: option.c:399 + msgid "Give DNS name to IPv4 address of interface." + msgstr "" + + # OK +-#: option.c:383 ++#: option.c:400 + msgid "Bind only to interfaces in use." + msgstr "Hanya kaitkan ke antarmuka yang sedang digunakan saja." + + # OK +-#: option.c:384 ++#: option.c:401 + #, c-format + msgid "Read DHCP static host information from %s." + msgstr "Baca informasi statik host DHCP dari %s." + + # OK +-#: option.c:385 ++#: option.c:402 + msgid "Enable the DBus interface for setting upstream servers, etc." + msgstr "Mungkinkan antar muka DBus untuk menyetel server-server di atas, dsb." + + # OK +-#: option.c:386 ++#: option.c:403 + msgid "Do not provide DHCP on this interface, only provide DNS." + msgstr "JANGAN menyediakan DHCP pada antarmuka ini, hanya menyediakan DNS." + + # OK +-#: option.c:387 ++#: option.c:404 + msgid "Enable dynamic address allocation for bootp." + msgstr "Mungkinkan alokasi alamat dinamis untuk bootp." + + # OK +-#: option.c:388 ++#: option.c:405 + #, fuzzy + msgid "Map MAC address (with wildcards) to option set." + msgstr "Memetakan kelas vendor DHCP ke daftar pilihan." + +-#: option.c:389 ++#: option.c:406 + msgid "Treat DHCP requests on aliases as arriving from interface." + msgstr "" + +-#: option.c:390 ++#: option.c:407 + msgid "Disable ICMP echo address checking in the DHCP server." + msgstr "" + +-#: option.c:391 ++#: option.c:408 + msgid "Shell script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:392 ++#: option.c:409 + msgid "Lua script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:393 ++#: option.c:410 + msgid "Run lease-change scripts as this user." + msgstr "" + +-#: option.c:394 ++#: option.c:411 + msgid "Read configuration from all the files in this directory." + msgstr "" + + # OK +-#: option.c:395 ++#: option.c:412 + #, fuzzy + msgid "Log to this syslog facility or file. (defaults to DAEMON)" + msgstr "Ubah ke user ini setelah mulai. (default %s)." + +-#: option.c:396 ++#: option.c:413 + msgid "Do not use leasefile." + msgstr "" + + # OK +-#: option.c:397 ++#: option.c:414 + #, fuzzy, c-format + msgid "Maximum number of concurrent DNS queries. (defaults to %s)" + msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)." + +-#: option.c:398 ++#: option.c:415 + #, c-format + msgid "Clear DNS cache when reloading %s." + msgstr "" + +-#: option.c:399 ++#: option.c:416 + msgid "Ignore hostnames provided by DHCP clients." + msgstr "" + +-#: option.c:400 ++#: option.c:417 + msgid "Do NOT reuse filename and server fields for extra DHCP options." + msgstr "" + +-#: option.c:401 ++#: option.c:418 + msgid "Enable integrated read-only TFTP server." + msgstr "" + +-#: option.c:402 ++#: option.c:419 + msgid "Export files by TFTP only from the specified subtree." + msgstr "" + +-#: option.c:403 ++#: option.c:420 + msgid "Add client IP address to tftp-root." + msgstr "" + +-#: option.c:404 ++#: option.c:421 + msgid "Allow access only to files owned by the user running dnsmasq." + msgstr "" + + # OK +-#: option.c:405 ++#: option.c:422 + #, fuzzy, c-format + msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)." + msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)." + +-#: option.c:406 ++#: option.c:423 + msgid "Disable the TFTP blocksize extension." + msgstr "" + +-#: option.c:407 ++#: option.c:424 + msgid "Convert TFTP filenames to lowercase" + msgstr "" + +-#: option.c:408 ++#: option.c:425 + msgid "Ephemeral port range for use by TFTP transfers." + msgstr "" + +-#: option.c:409 ++#: option.c:426 + msgid "Extra logging for DHCP." + msgstr "" + +-#: option.c:410 ++#: option.c:427 + msgid "Enable async. logging; optionally set queue length." + msgstr "" + +-#: option.c:411 ++#: option.c:428 + msgid "Stop DNS rebinding. Filter private IP ranges when resolving." + msgstr "" + +-#: option.c:412 ++#: option.c:429 + msgid "Allow rebinding of 127.0.0.0/8, for RBL servers." + msgstr "" + +-#: option.c:413 ++#: option.c:430 + msgid "Inhibit DNS-rebind protection on this domain." + msgstr "" + +-#: option.c:414 ++#: option.c:431 + msgid "Always perform DNS queries to all servers." + msgstr "" + +-#: option.c:415 ++#: option.c:432 + msgid "Set tag if client includes matching option in request." + msgstr "" + +-#: option.c:416 ++#: option.c:433 + msgid "Use alternative ports for DHCP." + msgstr "" + + # OK +-#: option.c:417 ++#: option.c:434 + #, fuzzy + msgid "Specify NAPTR DNS record." + msgstr "Sebutkan rekord TXT DNS." + +-#: option.c:418 ++#: option.c:435 + msgid "Specify lowest port available for DNS query transmission." + msgstr "" + +-#: option.c:419 ++#: option.c:436 + msgid "Use only fully qualified domain names for DHCP clients." + msgstr "" + +-#: option.c:420 ++#: option.c:437 + msgid "Generate hostnames based on MAC address for nameless clients." + msgstr "" + +-#: option.c:421 ++#: option.c:438 + msgid "Use these DHCP relays as full proxies." + msgstr "" + +-#: option.c:422 ++#: option.c:439 + msgid "Relay DHCP requests to a remote server" + msgstr "" + +-#: option.c:423 ++#: option.c:440 + msgid "Specify alias name for LOCAL DNS name." + msgstr "" + + # OK +-#: option.c:424 ++#: option.c:441 + #, fuzzy + msgid "Prompt to send to PXE clients." + msgstr "Setel pilihan-pilihan tambahan yang akan disetel untuk klien-klien DHCP." + +-#: option.c:425 ++#: option.c:442 + msgid "Boot service for PXE menu." + msgstr "" + +-#: option.c:426 ++#: option.c:443 + msgid "Check configuration syntax." + msgstr "" + +-#: option.c:427 ++#: option.c:444 + msgid "Add requestor's MAC address to forwarded DNS queries." + msgstr "" + +-#: option.c:428 ++#: option.c:445 + msgid "Add requestor's IP subnet to forwarded DNS queries." + msgstr "" + + # OK +-#: option.c:429 ++#: option.c:446 + #, fuzzy + msgid "Proxy DNSSEC validation results from upstream nameservers." + msgstr "Terjemahkan alamat-alamat IPv4 dari server-server di atas." + +-#: option.c:430 ++#: option.c:447 + msgid "Attempt to allocate sequential IP addresses to DHCP clients." + msgstr "" + +-#: option.c:431 ++#: option.c:448 + msgid "Copy connection-track mark from queries to upstream connections." + msgstr "" + +-#: option.c:432 ++#: option.c:449 + msgid "Allow DHCP clients to do their own DDNS updates." + msgstr "" + +-#: option.c:433 ++#: option.c:450 + msgid "Send router-advertisements for interfaces doing DHCPv6" + msgstr "" + +-#: option.c:434 ++#: option.c:451 + msgid "Specify DUID_EN-type DHCPv6 server DUID" + msgstr "" + + # OK +-#: option.c:435 ++#: option.c:452 + #, fuzzy + msgid "Specify host (A/AAAA and PTR) records" + msgstr "Sebutkan sebuah rekord MX." + + # OK +-#: option.c:436 ++#: option.c:453 + #, fuzzy + msgid "Specify arbitrary DNS resource record" + msgstr "Sebutkan rekord TXT DNS." + + # OK +-#: option.c:437 ++#: option.c:454 + #, fuzzy + msgid "Bind to interfaces in use - check for new interfaces" + msgstr "antarmuka tidak dikenal %s" + +-#: option.c:438 ++#: option.c:455 + msgid "Export local names to global DNS" + msgstr "" + +-#: option.c:439 ++#: option.c:456 + msgid "Domain to export to global DNS" + msgstr "" + +-#: option.c:440 ++#: option.c:457 + msgid "Set TTL for authoritative replies" + msgstr "" + +-#: option.c:441 ++#: option.c:458 + msgid "Set authoritive zone information" + msgstr "" + +-#: option.c:442 ++#: option.c:459 + msgid "Secondary authoritative nameservers for forward domains" + msgstr "" + +-#: option.c:443 ++#: option.c:460 + msgid "Peers which are allowed to do zone transfer" + msgstr "" + +-#: option.c:444 ++#: option.c:461 + msgid "Specify ipsets to which matching domains should be added" + msgstr "" + +-#: option.c:445 ++#: option.c:462 + msgid "Specify a domain and address range for synthesised names" + msgstr "" + +-#: option.c:446 ++#: option.c:463 + msgid "Activate DNSSEC validation" + msgstr "" + +-#: option.c:447 ++#: option.c:464 + msgid "Specify trust anchor key digest." + msgstr "" + +-#: option.c:448 ++#: option.c:465 + msgid "Disable upstream checking for DNSSEC debugging." + msgstr "" + +-#: option.c:449 ++#: option.c:466 + msgid "Ensure answers without DNSSEC are in unsigned zones." + msgstr "" + +-#: option.c:450 ++#: option.c:467 + msgid "Don't check DNSSEC signature timestamps until first cache-reload" + msgstr "" + +-#: option.c:452 ++#: option.c:468 ++msgid "Timestamp file to verify system clock for DNSSEC" ++msgstr "" ++ ++#: option.c:470 + msgid "Specify DHCPv6 prefix class" + msgstr "" + +-#: option.c:454 ++#: option.c:472 + msgid "Set priority, resend-interval and router-lifetime" + msgstr "" + +-#: option.c:455 ++#: option.c:473 + msgid "Do not log routine DHCP." + msgstr "" + +-#: option.c:456 ++#: option.c:474 + msgid "Do not log routine DHCPv6." + msgstr "" + +-#: option.c:457 ++#: option.c:475 + msgid "Do not log RA." + msgstr "" + +-#: option.c:458 ++#: option.c:476 + msgid "Accept queries only from directly-connected networks" + msgstr "" + +-#: option.c:459 ++#: option.c:477 + msgid "Detect and remove DNS forwarding loops" + msgstr "" + ++#: option.c:478 ++msgid "Ignore DNS responses containing ipaddr." ++msgstr "" ++ + # OK +-#: option.c:661 ++#: option.c:680 + #, c-format + msgid "" + "Usage: dnsmasq [options]\n" +@@ -805,381 +843,381 @@ msgstr "" + "\n" + + # OK +-#: option.c:663 ++#: option.c:682 + #, c-format + msgid "Use short options only on the command line.\n" + msgstr "Gunakan pilihan pendek saja pada perintah baris.\n" + + # OK +-#: option.c:665 ++#: option.c:684 + #, fuzzy, c-format + msgid "Valid options are:\n" + msgstr "Pilihan yang boleh adalah:\n" + + # OK +-#: option.c:722 option.c:726 ++#: option.c:741 option.c:745 + msgid "bad port" + msgstr "port salah" + +-#: option.c:753 option.c:785 ++#: option.c:772 option.c:804 + msgid "interface binding not supported" + msgstr "" + + # OK +-#: option.c:762 option.c:3494 ++#: option.c:781 option.c:3570 + #, fuzzy + msgid "bad interface name" + msgstr "nama MX salah" + + # OK +-#: option.c:792 ++#: option.c:811 + #, fuzzy + msgid "bad address" + msgstr "membaca %s - %d alamat" + +-#: option.c:974 ++#: option.c:993 + msgid "unsupported encapsulation for IPv6 option" + msgstr "" + + # OK +-#: option.c:988 ++#: option.c:1007 + msgid "bad dhcp-option" + msgstr "dhcp-option salah" + + # OK +-#: option.c:1056 ++#: option.c:1075 + #, fuzzy + msgid "bad IP address" + msgstr "membaca %s - %d alamat" + + # OK +-#: option.c:1059 option.c:1197 option.c:2812 ++#: option.c:1078 option.c:1216 option.c:2888 + #, fuzzy + msgid "bad IPv6 address" + msgstr "membaca %s - %d alamat" + + # OK +-#: option.c:1224 option.c:1318 ++#: option.c:1243 option.c:1337 + msgid "bad domain in dhcp-option" + msgstr "domain dalam dhcp-option salah" + + # OK +-#: option.c:1356 ++#: option.c:1375 + msgid "dhcp-option too long" + msgstr "dhcp-option terlalu panjang" + +-#: option.c:1363 ++#: option.c:1382 + msgid "illegal dhcp-match" + msgstr "" + +-#: option.c:1425 ++#: option.c:1444 + msgid "illegal repeated flag" + msgstr "" + +-#: option.c:1433 ++#: option.c:1452 + msgid "illegal repeated keyword" + msgstr "" + + # OK +-#: option.c:1495 option.c:4092 ++#: option.c:1517 option.c:4186 + #, fuzzy, c-format + msgid "cannot access directory %s: %s" + msgstr "tidak bisa membaca %s: %s" + + # OK +-#: option.c:1541 tftp.c:493 ++#: option.c:1563 tftp.c:493 + #, fuzzy, c-format + msgid "cannot access %s: %s" + msgstr "tidak bisa membaca %s: %s" + +-#: option.c:1588 ++#: option.c:1615 + msgid "setting log facility is not possible under Android" + msgstr "" + +-#: option.c:1597 ++#: option.c:1624 + msgid "bad log facility" + msgstr "" + + # OK +-#: option.c:1650 ++#: option.c:1677 + msgid "bad MX preference" + msgstr "kesukaan MX salah" + + # OK +-#: option.c:1655 ++#: option.c:1682 + msgid "bad MX name" + msgstr "nama MX salah" + + # OK +-#: option.c:1669 ++#: option.c:1696 + msgid "bad MX target" + msgstr "target MX salah" + +-#: option.c:1681 ++#: option.c:1708 + msgid "cannot run scripts under uClinux" + msgstr "" + +-#: option.c:1683 ++#: option.c:1710 + msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts" + msgstr "" + +-#: option.c:1687 ++#: option.c:1714 + msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts" + msgstr "" + + # OK +-#: option.c:1928 option.c:1966 option.c:2015 ++#: option.c:1970 option.c:2015 option.c:2071 + #, fuzzy + msgid "bad prefix" + msgstr "port salah" + +-#: option.c:2289 ++#: option.c:2352 + msgid "recompile with HAVE_IPSET defined to enable ipset directives" + msgstr "" + + # OK +-#: option.c:2469 ++#: option.c:2545 + #, fuzzy + msgid "bad port range" + msgstr "port salah" + +-#: option.c:2485 ++#: option.c:2561 + msgid "bad bridge-interface" + msgstr "" + +-#: option.c:2545 ++#: option.c:2621 + msgid "only one tag allowed" + msgstr "" + + # OK +-#: option.c:2565 option.c:2577 option.c:2683 option.c:2724 ++#: option.c:2641 option.c:2653 option.c:2759 option.c:2800 + msgid "bad dhcp-range" + msgstr "dhcp-range salah" + + # OK +-#: option.c:2592 ++#: option.c:2668 + msgid "inconsistent DHCP range" + msgstr "jangkauan DHCP tidak konsisten" + +-#: option.c:2651 ++#: option.c:2727 + msgid "prefix length must be exactly 64 for RA subnets" + msgstr "" + +-#: option.c:2653 ++#: option.c:2729 + msgid "prefix length must be exactly 64 for subnet constructors" + msgstr "" + +-#: option.c:2657 ++#: option.c:2733 + msgid "prefix length must be at least 64" + msgstr "" + + # OK +-#: option.c:2660 ++#: option.c:2736 + #, fuzzy + msgid "inconsistent DHCPv6 range" + msgstr "jangkauan DHCP tidak konsisten" + +-#: option.c:2671 ++#: option.c:2747 + msgid "prefix must be zero with \"constructor:\" argument" + msgstr "" + + # OK +-#: option.c:2782 option.c:2830 ++#: option.c:2858 option.c:2906 + #, fuzzy + msgid "bad hex constant" + msgstr "dhcp-host salah" + +-#: option.c:2804 ++#: option.c:2880 + msgid "cannot match tags in --dhcp-host" + msgstr "" + + # OK +-#: option.c:2852 ++#: option.c:2928 + #, fuzzy, c-format + msgid "duplicate dhcp-host IP address %s" + msgstr "alamat IP kembar %s dalam direktif dhcp-config" + + # OK +-#: option.c:2910 ++#: option.c:2986 + #, fuzzy + msgid "bad DHCP host name" + msgstr "nama MX salah" + + # OK +-#: option.c:2992 ++#: option.c:3068 + #, fuzzy + msgid "bad tag-if" + msgstr "target MX salah" + + # OK +-#: option.c:3316 option.c:3710 ++#: option.c:3392 option.c:3786 + msgid "invalid port number" + msgstr "nomor port tidak benar" + + # OK +-#: option.c:3378 ++#: option.c:3454 + #, fuzzy + msgid "bad dhcp-proxy address" + msgstr "membaca %s - %d alamat" + + # OK +-#: option.c:3404 ++#: option.c:3480 + #, fuzzy + msgid "Bad dhcp-relay" + msgstr "dhcp-range salah" + +-#: option.c:3430 ++#: option.c:3506 + msgid "bad RA-params" + msgstr "" + +-#: option.c:3439 ++#: option.c:3515 + msgid "bad DUID" + msgstr "" + + # OK +-#: option.c:3481 ++#: option.c:3557 + #, fuzzy + msgid "invalid alias range" + msgstr "weight tidak benar" + +-#: option.c:3535 ++#: option.c:3611 + msgid "bad CNAME" + msgstr "" + +-#: option.c:3540 ++#: option.c:3616 + msgid "duplicate CNAME" + msgstr "" + + # OK +-#: option.c:3560 ++#: option.c:3636 + #, fuzzy + msgid "bad PTR record" + msgstr "rekord SRV salah" + + # OK +-#: option.c:3591 ++#: option.c:3667 + #, fuzzy + msgid "bad NAPTR record" + msgstr "rekord SRV salah" + + # OK +-#: option.c:3625 ++#: option.c:3701 + #, fuzzy + msgid "bad RR record" + msgstr "rekord SRV salah" + + # OK +-#: option.c:3655 ++#: option.c:3731 + msgid "bad TXT record" + msgstr "rekord TXT salah" + + # OK +-#: option.c:3696 ++#: option.c:3772 + msgid "bad SRV record" + msgstr "rekord SRV salah" + + # OK +-#: option.c:3703 ++#: option.c:3779 + msgid "bad SRV target" + msgstr "target SRV salah" + + # OK +-#: option.c:3717 ++#: option.c:3793 + msgid "invalid priority" + msgstr "prioritas tidak benar" + + # OK +-#: option.c:3724 ++#: option.c:3800 + msgid "invalid weight" + msgstr "weight tidak benar" + + # OK +-#: option.c:3748 ++#: option.c:3824 + #, fuzzy + msgid "Bad host-record" + msgstr "rekord SRV salah" + + # OK +-#: option.c:3765 ++#: option.c:3841 + #, fuzzy + msgid "Bad name in host-record" + msgstr "kesalahan nama di %s" + + # OK +-#: option.c:3826 ++#: option.c:3906 + #, fuzzy + msgid "bad trust anchor" + msgstr "port salah" + +-#: option.c:3840 ++#: option.c:3920 + msgid "bad HEX in trust anchor" + msgstr "" + +-#: option.c:3850 ++#: option.c:3930 + msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DNSSEC/DBus support)" + msgstr "" + + # OK +-#: option.c:3909 ++#: option.c:3989 + msgid "missing \"" + msgstr "kurang \"" + + # OK +-#: option.c:3966 ++#: option.c:4046 + msgid "bad option" + msgstr "pilihan salah" + + # OK +-#: option.c:3968 ++#: option.c:4048 + msgid "extraneous parameter" + msgstr "parameter berlebihan" + + # OK +-#: option.c:3970 ++#: option.c:4050 + msgid "missing parameter" + msgstr "parameter kurang" + + # OK +-#: option.c:3972 ++#: option.c:4052 + #, fuzzy + msgid "illegal option" + msgstr "pilihan salah" + + # OK +-#: option.c:3979 ++#: option.c:4059 + msgid "error" + msgstr "kesalahan" + + # OK +-#: option.c:3981 ++#: option.c:4061 + #, fuzzy, c-format + msgid " at line %d of %s" + msgstr "%s pada baris %d dari %%s" + + # OK +-#: option.c:4045 option.c:4168 tftp.c:667 +-#, c-format +-msgid "cannot read %s: %s" +-msgstr "tidak bisa membaca %s: %s" +- +-# OK +-#: option.c:4229 option.c:4265 ++#: option.c:4076 option.c:4323 option.c:4359 + #, fuzzy, c-format + msgid "read %s" + msgstr "membaca %s" + +-#: option.c:4331 ++# OK ++#: option.c:4139 option.c:4262 tftp.c:667 ++#, c-format ++msgid "cannot read %s: %s" ++msgstr "tidak bisa membaca %s: %s" ++ ++#: option.c:4425 + msgid "junk found in command line" + msgstr "" + + # OK +-#: option.c:4366 ++#: option.c:4460 + #, c-format + msgid "Dnsmasq version %s %s\n" + msgstr "Dnsmasq versi %s %s\n" + + # OK +-#: option.c:4367 ++#: option.c:4461 + #, fuzzy, c-format + msgid "" + "Compile time options: %s\n" +@@ -1189,100 +1227,100 @@ msgstr "" + "\n" + + # OK +-#: option.c:4368 ++#: option.c:4462 + #, c-format + msgid "This software comes with ABSOLUTELY NO WARRANTY.\n" + msgstr "Perangkat lunak ini tersedia TANPA JAMINAN SEDIKITPUN.\n" + + # OK +-#: option.c:4369 ++#: option.c:4463 + #, c-format + msgid "Dnsmasq is free software, and you are welcome to redistribute it\n" + msgstr "Dnsdmasq adalah perangkat lunak bebas, dan Anda dipersilahkan untuk membagikannya\n" + + # OK +-#: option.c:4370 ++#: option.c:4464 + #, fuzzy, c-format + msgid "under the terms of the GNU General Public License, version 2 or 3.\n" + msgstr "dengan aturan GNU General Public License, versi 2.\n" + +-#: option.c:4381 ++#: option.c:4475 + msgid "try --help" + msgstr "" + +-#: option.c:4383 ++#: option.c:4477 + msgid "try -w" + msgstr "" + + # OK +-#: option.c:4385 ++#: option.c:4479 + #, fuzzy, c-format + msgid "bad command line options: %s" + msgstr "pilihan baris perintah salah: %s." + + # OK +-#: option.c:4434 ++#: option.c:4535 + #, c-format + msgid "cannot get host-name: %s" + msgstr "tidak bisa mendapatkan host-name: %s" + + # OK +-#: option.c:4462 ++#: option.c:4563 + msgid "only one resolv.conf file allowed in no-poll mode." + msgstr "hanya satu file resolv.conf yang diperbolehkan dalam modus no-poll." + + # OK +-#: option.c:4472 ++#: option.c:4573 + msgid "must have exactly one resolv.conf to read domain from." + msgstr "harus mempunyai tepat satu resolv.conf untuk mendapatkan nama domain." + + # OK +-#: option.c:4475 network.c:1506 dhcp.c:769 ++#: option.c:4576 network.c:1506 dhcp.c:774 + #, fuzzy, c-format + msgid "failed to read %s: %s" + msgstr "gagal membaca %s: %s" + + # OK +-#: option.c:4492 ++#: option.c:4593 + #, c-format + msgid "no search directive found in %s" + msgstr "tidak ditemukan direktif search di %s" + +-#: option.c:4513 ++#: option.c:4614 + msgid "there must be a default domain when --dhcp-fqdn is set" + msgstr "" + +-#: option.c:4522 ++#: option.c:4623 + msgid "syntax check OK" + msgstr "" + + # OK +-#: forward.c:114 ++#: forward.c:111 + #, fuzzy, c-format + msgid "failed to send packet: %s" + msgstr "gagal mendengarkan di socket: %s" + +-#: forward.c:574 ++#: forward.c:572 + msgid "discarding DNS reply: subnet option mismatch" + msgstr "" + + # OK +-#: forward.c:597 ++#: forward.c:595 + #, c-format + msgid "nameserver %s refused to do a recursive query" + msgstr "nameserver %s menolak melakukan resolusi rekursif" + +-#: forward.c:629 ++#: forward.c:627 + #, c-format + msgid "possible DNS-rebind attack detected: %s" + msgstr "" + +-#: forward.c:1132 forward.c:1663 ++#: forward.c:1156 forward.c:1722 + msgid "Ignoring query from non-local network" + msgstr "" + + # OK +-#: forward.c:2101 ++#: forward.c:2178 + #, fuzzy, c-format + msgid "Maximum number of concurrent DNS queries reached (max: %d)" + msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)." +@@ -1385,301 +1423,315 @@ msgstr "menggunakan nameserver %s#%d" + msgid "using nameserver %s#%d" + msgstr "menggunakan nameserver %s#%d" + +-#: dnsmasq.c:154 +-msgid "No trust anchors provided for DNSSEC" ++#: dnsmasq.c:149 ++msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" + msgstr "" + +-#: dnsmasq.c:157 +-msgid "Cannot reduce cache size from default when DNSSEC enabled" ++#: dnsmasq.c:156 ++msgid "no trust anchors provided for DNSSEC" + msgstr "" + +-# OK + #: dnsmasq.c:159 ++msgid "cannot reduce cache size from default when DNSSEC enabled" ++msgstr "" ++ ++# OK ++#: dnsmasq.c:161 + #, fuzzy + msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h" + msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h" + + # OK +-#: dnsmasq.c:165 ++#: dnsmasq.c:167 + #, fuzzy + msgid "TFTP server not available: set HAVE_TFTP in src/config.h" + msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h" + +-#: dnsmasq.c:170 +-msgid "Cannot use --conntrack AND --query-port" ++#: dnsmasq.c:172 ++msgid "cannot use --conntrack AND --query-port" + msgstr "" + + # OK +-#: dnsmasq.c:173 ++#: dnsmasq.c:175 + #, fuzzy +-msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h" ++msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" + msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h" + +-#: dnsmasq.c:178 ++#: dnsmasq.c:180 + msgid "asychronous logging is not available under Solaris" + msgstr "" + +-#: dnsmasq.c:183 ++#: dnsmasq.c:185 + msgid "asychronous logging is not available under Android" + msgstr "" + + # OK +-#: dnsmasq.c:188 ++#: dnsmasq.c:190 + #, fuzzy + msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h" + msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h" + + # OK +-#: dnsmasq.c:193 ++#: dnsmasq.c:195 + #, fuzzy +-msgid "Loop detection not available: set HAVE_LOOP in src/config.h" ++msgid "loop detection not available: set HAVE_LOOP in src/config.h" + msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h" + +-#: dnsmasq.c:201 ++#: dnsmasq.c:203 + msgid "zone serial must be configured in --auth-soa" + msgstr "" + +-#: dnsmasq.c:219 ++#: dnsmasq.c:221 + msgid "dhcp-range constructor not available on this platform" + msgstr "" + +-#: dnsmasq.c:262 ++#: dnsmasq.c:264 + msgid "cannot set --bind-interfaces and --bind-dynamic" + msgstr "" + + # OK +-#: dnsmasq.c:265 ++#: dnsmasq.c:267 + #, c-format + msgid "failed to find list of interfaces: %s" + msgstr "gagal mendapatkan daftar antarmuka: %s" + + # OK +-#: dnsmasq.c:274 ++#: dnsmasq.c:276 + #, c-format + msgid "unknown interface %s" + msgstr "antarmuka tidak dikenal %s" + + # OK +-#: dnsmasq.c:330 dnsmasq.c:954 ++#: dnsmasq.c:340 dnsmasq.c:1004 + #, c-format + msgid "DBus error: %s" + msgstr "DBus error: %s" + + # OK +-#: dnsmasq.c:333 ++#: dnsmasq.c:343 + msgid "DBus not available: set HAVE_DBUS in src/config.h" + msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h" + +-#: dnsmasq.c:361 ++#: dnsmasq.c:371 + #, c-format + msgid "unknown user or group: %s" + msgstr "" + +-#: dnsmasq.c:416 ++#: dnsmasq.c:426 + #, c-format + msgid "cannot chdir to filesystem root: %s" + msgstr "" + + # OK +-#: dnsmasq.c:653 ++#: dnsmasq.c:667 + #, fuzzy, c-format + msgid "started, version %s DNS disabled" + msgstr "dimulai, cache versi %s di disable" + + # OK +-#: dnsmasq.c:655 ++#: dnsmasq.c:669 + #, c-format + msgid "started, version %s cachesize %d" + msgstr "dimulai, versi %s ukuran cache %d" + + # OK +-#: dnsmasq.c:657 ++#: dnsmasq.c:671 + #, c-format + msgid "started, version %s cache disabled" + msgstr "dimulai, cache versi %s di disable" + + # OK +-#: dnsmasq.c:659 ++#: dnsmasq.c:673 + #, c-format + msgid "compile time options: %s" + msgstr "pilihan-pilihan saat kompilasi: %s" + + # OK +-#: dnsmasq.c:665 ++#: dnsmasq.c:679 + msgid "DBus support enabled: connected to system bus" + msgstr "dukungan DBus dimungkinkan: terkoneksi pada bus sistem" + + # OK +-#: dnsmasq.c:667 ++#: dnsmasq.c:681 + msgid "DBus support enabled: bus connection pending" + msgstr "dukungan DBus dimungkinkan: koneksi bus ditunda" + +-#: dnsmasq.c:672 ++#: dnsmasq.c:686 + msgid "DNS service limited to local subnets" + msgstr "" + +-#: dnsmasq.c:677 ++#: dnsmasq.c:702 + msgid "DNSSEC validation enabled" + msgstr "" + +-#: dnsmasq.c:679 ++#: dnsmasq.c:705 + msgid "DNSSEC signature timestamps not checked until first cache reload" + msgstr "" + ++#: dnsmasq.c:708 ++msgid "DNSSEC signature timestamps not checked until system time valid" ++msgstr "" ++ + # OK +-#: dnsmasq.c:684 ++#: dnsmasq.c:713 + #, fuzzy, c-format + msgid "warning: failed to change owner of %s: %s" + msgstr "gagal memuat nama-nama dari %s: %s" + + # OK +-#: dnsmasq.c:688 ++#: dnsmasq.c:717 + msgid "setting --bind-interfaces option because of OS limitations" + msgstr "setelan opsi --bind-interfaces disebabkan keterbatasan OS" + + # OK +-#: dnsmasq.c:698 ++#: dnsmasq.c:727 + #, c-format + msgid "warning: interface %s does not currently exist" + msgstr "peringatan: antarmuka %s tidak ada" + +-#: dnsmasq.c:703 ++#: dnsmasq.c:732 + msgid "warning: ignoring resolv-file flag because no-resolv is set" + msgstr "" + + # OK +-#: dnsmasq.c:706 ++#: dnsmasq.c:735 + #, fuzzy + msgid "warning: no upstream servers configured" + msgstr "menyetel server-server di atas dengan DBus" + +-#: dnsmasq.c:710 ++#: dnsmasq.c:739 + #, c-format + msgid "asynchronous logging enabled, queue limit is %d messages" + msgstr "" + +-#: dnsmasq.c:731 ++#: dnsmasq.c:760 + msgid "IPv6 router advertisement enabled" + msgstr "" + +-#: dnsmasq.c:736 ++#: dnsmasq.c:765 + #, c-format + msgid "DHCP, sockets bound exclusively to interface %s" + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "root is " + msgstr "" + + # OK +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + #, fuzzy + msgid "enabled" + msgstr "di disable" + +-#: dnsmasq.c:755 ++#: dnsmasq.c:784 + msgid "secure mode" + msgstr "" + +-#: dnsmasq.c:781 ++#: dnsmasq.c:810 + #, c-format + msgid "restricting maximum simultaneous TFTP transfers to %d" + msgstr "" + + # OK +-#: dnsmasq.c:956 ++#: dnsmasq.c:1006 + msgid "connected to system DBus" + msgstr "terhubung ke sistem DBus" + +-#: dnsmasq.c:1106 ++#: dnsmasq.c:1156 + #, c-format + msgid "cannot fork into background: %s" + msgstr "" + + # OK +-#: dnsmasq.c:1109 ++#: dnsmasq.c:1159 + #, fuzzy, c-format + msgid "failed to create helper: %s" + msgstr "gagal membaca %s: %s" + +-#: dnsmasq.c:1112 ++#: dnsmasq.c:1162 + #, c-format + msgid "setting capabilities failed: %s" + msgstr "" + + # OK +-#: dnsmasq.c:1115 ++#: dnsmasq.c:1165 + #, fuzzy, c-format + msgid "failed to change user-id to %s: %s" + msgstr "gagal memuat nama-nama dari %s: %s" + + # OK +-#: dnsmasq.c:1118 ++#: dnsmasq.c:1168 + #, fuzzy, c-format + msgid "failed to change group-id to %s: %s" + msgstr "gagal memuat nama-nama dari %s: %s" + + # OK +-#: dnsmasq.c:1121 ++#: dnsmasq.c:1171 + #, fuzzy, c-format + msgid "failed to open pidfile %s: %s" + msgstr "gagal membaca %s: %s" + + # OK +-#: dnsmasq.c:1124 ++#: dnsmasq.c:1174 + #, fuzzy, c-format + msgid "cannot open log %s: %s" + msgstr "tidak bisa membuka %s:%s" + + # OK +-#: dnsmasq.c:1127 ++#: dnsmasq.c:1177 + #, fuzzy, c-format + msgid "failed to load Lua script: %s" + msgstr "gagal memuat %S: %s" + +-#: dnsmasq.c:1130 ++#: dnsmasq.c:1180 + #, c-format + msgid "TFTP directory %s inaccessible: %s" + msgstr "" + +-#: dnsmasq.c:1151 ++# OK ++#: dnsmasq.c:1183 ++#, fuzzy, c-format ++msgid "cannot create timestamp file %s: %s" ++msgstr "tidak dapat membuka atau membuat file lease: %s" ++ ++#: dnsmasq.c:1204 + msgid "now checking DNSSEC signature timestamps" + msgstr "" + +-#: dnsmasq.c:1218 ++#: dnsmasq.c:1271 + #, c-format + msgid "script process killed by signal %d" + msgstr "" + +-#: dnsmasq.c:1222 ++#: dnsmasq.c:1275 + #, c-format + msgid "script process exited with status %d" + msgstr "" + + # OK +-#: dnsmasq.c:1226 ++#: dnsmasq.c:1279 + #, fuzzy, c-format + msgid "failed to execute %s: %s" + msgstr "gagal mengakses %s: %s" + +-#: dnsmasq.c:1281 ++#: dnsmasq.c:1334 + msgid "exiting on receipt of SIGTERM" + msgstr "keluar karena menerima SIGTERM" + + # OK +-#: dnsmasq.c:1309 ++#: dnsmasq.c:1362 + #, fuzzy, c-format + msgid "failed to access %s: %s" + msgstr "gagal mengakses %s: %s" + + # OK +-#: dnsmasq.c:1339 ++#: dnsmasq.c:1392 + #, c-format + msgid "reading %s" + msgstr "membaca %s" + + # OK +-#: dnsmasq.c:1350 ++#: dnsmasq.c:1403 + #, fuzzy, c-format + msgid "no servers found in %s, will retry" + msgstr "tidak ditemukan direktif search di %s" +@@ -1725,29 +1777,29 @@ msgstr "antarmuka tidak dikenal %s" + msgid "DHCP packet received on %s which has no address" + msgstr "" + +-#: dhcp.c:408 ++#: dhcp.c:412 + #, c-format + msgid "ARP-cache injection failed: %s" + msgstr "" + + # OK +-#: dhcp.c:506 ++#: dhcp.c:511 + #, c-format + msgid "DHCP range %s -- %s is not consistent with netmask %s" + msgstr "jangkauan DHCP %s -- %s tidak konsisten dengan netmask %s" + + # OK +-#: dhcp.c:807 ++#: dhcp.c:812 + #, fuzzy, c-format + msgid "bad line at %s line %d" + msgstr "kesalahan nama pada %s baris %d" + +-#: dhcp.c:850 ++#: dhcp.c:855 + #, c-format + msgid "ignoring %s line %d, duplicate name or IP address" + msgstr "" + +-#: dhcp.c:994 rfc3315.c:2089 ++#: dhcp.c:999 rfc3315.c:2139 + #, c-format + msgid "DHCP relay %s -> %s" + msgstr "" +@@ -1830,13 +1882,13 @@ msgid "disabled" + msgstr "di disable" + + # OK +-#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:602 rfc3315.c:823 +-#: rfc3315.c:1095 ++#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:603 rfc3315.c:860 ++#: rfc3315.c:1139 + msgid "ignored" + msgstr "diabaikan" + + # OK +-#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:873 ++#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:910 + msgid "address in use" + msgstr "alamat telah digunakan" + +@@ -1860,7 +1912,7 @@ msgstr "tak ada alamat yang disetel" + msgid "no leases left" + msgstr "tak ada lease yang tersisa" + +-#: rfc2131.c:691 rfc3315.c:475 ++#: rfc2131.c:691 rfc3315.c:476 + #, c-format + msgid "%u client provides name: %s" + msgstr "" +@@ -1870,7 +1922,7 @@ msgid "PXE BIS not supported" + msgstr "" + + # OK +-#: rfc2131.c:935 rfc3315.c:1189 ++#: rfc2131.c:935 rfc3315.c:1233 + #, fuzzy, c-format + msgid "disabling DHCP static address %s for %s" + msgstr "men-disable alamat statik DHCP %s" +@@ -1909,7 +1961,7 @@ msgid "wrong address" + msgstr "alamat salah" + + # OK +-#: rfc2131.c:1143 rfc3315.c:969 ++#: rfc2131.c:1143 rfc3315.c:1006 + msgid "lease not found" + msgstr "lease tak ditemukan" + +@@ -1965,7 +2017,7 @@ msgid "PXE menu too large" + msgstr "" + + # OK +-#: rfc2131.c:2173 rfc3315.c:1456 ++#: rfc2131.c:2173 rfc3315.c:1506 + #, fuzzy, c-format + msgid "%u requested options: %s" + msgstr "pilihan-pilihan saat kompilasi: %s" +@@ -1982,7 +2034,7 @@ msgid "cannot create netlink socket: %s" + msgstr "tidak bisa mem-bind netlink socket: %s" + + # OK +-#: netlink.c:347 ++#: netlink.c:348 + #, fuzzy, c-format + msgid "netlink returns error: %s" + msgstr "DBus error: %s" +@@ -2116,72 +2168,72 @@ msgid "%u available DHCPv6 subnet: %s/%d" + msgstr "tidak ada alamat yang bisa dipakai untuk permintaan DHCP %s %s" + + # OK +-#: rfc3315.c:379 ++#: rfc3315.c:380 + #, fuzzy, c-format + msgid "%u vendor class: %u" + msgstr "DBus error: %s" + + # OK +-#: rfc3315.c:427 ++#: rfc3315.c:428 + #, fuzzy, c-format + msgid "%u client MAC address: %s" + msgstr "tidak ada antarmuka dengan alamat %s" + + # OK +-#: rfc3315.c:659 ++#: rfc3315.c:660 + #, fuzzy, c-format + msgid "unknown prefix-class %d" + msgstr "lease tidak diketahui" + +-#: rfc3315.c:791 rfc3315.c:913 ++# OK ++#: rfc3315.c:803 rfc3315.c:902 ++#, fuzzy ++msgid "address unavailable" ++msgstr "alamat tak tersedia" ++ ++#: rfc3315.c:815 rfc3315.c:950 rfc3315.c:1283 + msgid "success" + msgstr "" + + # OK +-#: rfc3315.c:806 rfc3315.c:808 rfc3315.c:921 rfc3315.c:923 ++#: rfc3315.c:843 rfc3315.c:845 rfc3315.c:958 rfc3315.c:960 + #, fuzzy + msgid "no addresses available" + msgstr "tak ada alamat yang tersedia" + +-# OK +-#: rfc3315.c:865 +-#, fuzzy +-msgid "address unavailable" +-msgstr "alamat tak tersedia" +- +-#: rfc3315.c:900 ++#: rfc3315.c:937 + msgid "not on link" + msgstr "" + +-#: rfc3315.c:973 rfc3315.c:1151 rfc3315.c:1228 ++#: rfc3315.c:1010 rfc3315.c:1195 rfc3315.c:1272 + msgid "no binding found" + msgstr "" + +-#: rfc3315.c:1011 ++#: rfc3315.c:1048 + msgid "deprecated" + msgstr "" + + # OK +-#: rfc3315.c:1016 ++#: rfc3315.c:1053 + #, fuzzy + msgid "address invalid" + msgstr "alamat telah digunakan" + +-#: rfc3315.c:1061 ++#: rfc3315.c:1100 + msgid "confirm failed" + msgstr "" + + # OK +-#: rfc3315.c:1072 ++#: rfc3315.c:1116 + #, fuzzy + msgid "all addresses still on link" + msgstr "kesalahan nama pada %s baris %d" + +-#: rfc3315.c:1160 ++#: rfc3315.c:1204 + msgid "release received" + msgstr "" + +-#: rfc3315.c:2080 ++#: rfc3315.c:2130 + msgid "Cannot multicast to DHCPv6 server without correct interface" + msgstr "" + +@@ -2280,7 +2332,7 @@ msgstr "" + msgid "cannot create ICMPv6 socket: %s" + msgstr "tidak bisa membuat socket DHCP: %s" + +-#: auth.c:429 ++#: auth.c:436 + #, c-format + msgid "ignoring zone transfer request from %s" + msgstr "" +@@ -2297,59 +2349,99 @@ msgstr "gagal mem-bind socket server DHCP: %s" + msgid "failed to create IPset control socket: %s" + msgstr "gagal membuat socket: %s " + ++# OK ++#: dnssec.c:425 dnssec.c:469 ++#, fuzzy, c-format ++msgid "failed to update mtime on %s: %s" ++msgstr "gagal membaca %s: %s" ++ + #: blockdata.c:58 + #, c-format + msgid "DNSSEC memory in use %u, max %u, allocated %u" + msgstr "" + +-#: tables.c:76 ++#: tables.c:80 + msgid "error: fill_addr missused" + msgstr "" + + # OK +-#: tables.c:105 ++#: tables.c:109 + #, fuzzy, c-format + msgid "failed to access pf devices: %s" + msgstr "gagal mengakses %s: %s" + + # OK +-#: tables.c:119 ++#: tables.c:123 + #, fuzzy, c-format + msgid "warning: no opened pf devices %s" + msgstr "menggunakan alamat lokal saja untuk %s %s" + + # OK +-#: tables.c:127 ++#: tables.c:131 + #, fuzzy, c-format + msgid "error: cannot use table name %s" + msgstr "tidak bisa mendapatkan host-name: %s" + +-#: tables.c:135 ++#: tables.c:139 + #, c-format + msgid "error: cannot strlcpy table name %s" + msgstr "" + +-#: tables.c:141 ++#: tables.c:145 + #, c-format + msgid "warning: pfr_add_tables: %s(%d)" + msgstr "" + +-#: tables.c:147 ++#: tables.c:151 + msgid "info: table created" + msgstr "" + +-#: tables.c:158 ++#: tables.c:162 + #, c-format + msgid "warning: DIOCR%sADDRS: %s" + msgstr "" + + # OK +-#: tables.c:162 ++#: tables.c:166 + #, fuzzy, c-format + msgid "%d addresses %s" + msgstr "membaca %s - %d alamat" + + # OK ++#: inotify.c:46 ++#, fuzzy, c-format ++msgid "failed to create inotify: %s" ++msgstr "gagal membaca %s: %s" ++ ++# OK ++#: inotify.c:60 ++#, fuzzy, c-format ++msgid "cannot cannonicalise resolv-file %s: %s" ++msgstr "tidak dapat membuka atau membuat file lease: %s" ++ ++#: inotify.c:72 ++#, c-format ++msgid "directory %s for resolv-file is missing, cannot poll" ++msgstr "" ++ ++# OK ++#: inotify.c:75 inotify.c:112 ++#, fuzzy, c-format ++msgid "failed to create inotify for %s: %s" ++msgstr "gagal membuat socket: %s " ++ ++# OK ++#: inotify.c:97 ++#, fuzzy, c-format ++msgid "bad dynamic directory %s: %s" ++msgstr "tidak bisa membaca %s: %s" ++ ++#: inotify.c:197 ++#, c-format ++msgid "inotify, new or changed file %s" ++msgstr "" ++ ++# OK + #~ msgid "duplicate IP address %s in dhcp-config directive." + #~ msgstr "alamat IP kembar %s dalam direktif dhcp-config" + +diff --git a/po/it.po b/po/it.po +index f3b547576ba4..64342c9804ba 100644 +--- a/po/it.po ++++ b/po/it.po +@@ -16,70 +16,70 @@ msgstr "" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" + +-#: cache.c:505 ++#: cache.c:523 + msgid "Internal error in cache." + msgstr "" + +-#: cache.c:908 ++#: cache.c:941 + #, c-format + msgid "failed to load names from %s: %s" + msgstr "" + +-#: cache.c:934 dhcp.c:820 ++#: cache.c:967 dhcp.c:825 + #, c-format + msgid "bad address at %s line %d" + msgstr "" + +-#: cache.c:985 dhcp.c:836 ++#: cache.c:1018 dhcp.c:841 + #, c-format + msgid "bad name at %s line %d" + msgstr "" + +-#: cache.c:992 dhcp.c:911 ++#: cache.c:1027 dhcp.c:916 + #, c-format + msgid "read %s - %d addresses" + msgstr "" + +-#: cache.c:1100 ++#: cache.c:1135 + msgid "cleared cache" + msgstr "" + +-#: cache.c:1123 ++#: cache.c:1164 + #, c-format + msgid "No IPv4 address found for %s" + msgstr "" + +-#: cache.c:1201 ++#: cache.c:1242 + #, c-format + msgid "%s is a CNAME, not giving it to the DHCP lease of %s" + msgstr "" + +-#: cache.c:1225 ++#: cache.c:1266 + #, c-format + msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s" + msgstr "" + +-#: cache.c:1366 ++#: cache.c:1421 + #, c-format + msgid "time %lu" + msgstr "" + +-#: cache.c:1367 ++#: cache.c:1422 + #, c-format + msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries." + msgstr "" + +-#: cache.c:1369 ++#: cache.c:1424 + #, c-format + msgid "queries forwarded %u, queries answered locally %u" + msgstr "" + +-#: cache.c:1372 ++#: cache.c:1427 + #, c-format + msgid "queries for authoritative zones %u" + msgstr "" + +-#: cache.c:1398 ++#: cache.c:1453 + #, c-format + msgid "server %s#%d: queries sent %u, retried or failed %u" + msgstr "" +@@ -93,7 +93,7 @@ msgstr "" + msgid "failed to allocate memory" + msgstr "" + +-#: util.c:243 option.c:579 ++#: util.c:243 option.c:598 + msgid "could not get memory" + msgstr "" + +@@ -107,990 +107,1018 @@ msgstr "" + msgid "failed to allocate %d bytes" + msgstr "" + +-#: util.c:429 ++#: util.c:430 + #, c-format + msgid "infinite" + msgstr "" + +-#: option.c:318 ++#: option.c:330 + msgid "Specify local address(es) to listen on." + msgstr "" + +-#: option.c:319 ++#: option.c:331 + msgid "Return ipaddr for all hosts in specified domains." + msgstr "" + +-#: option.c:320 ++#: option.c:332 + msgid "Fake reverse lookups for RFC1918 private address ranges." + msgstr "" + +-#: option.c:321 ++#: option.c:333 + msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)." + msgstr "" + +-#: option.c:322 ++#: option.c:334 + #, c-format + msgid "Specify the size of the cache in entries (defaults to %s)." + msgstr "" + +-#: option.c:323 ++#: option.c:335 + #, c-format + msgid "Specify configuration file (defaults to %s)." + msgstr "" + +-#: option.c:324 ++#: option.c:336 + msgid "Do NOT fork into the background: run in debug mode." + msgstr "" + +-#: option.c:325 ++#: option.c:337 + msgid "Do NOT forward queries with no domain part." + msgstr "" + +-#: option.c:326 ++#: option.c:338 + msgid "Return self-pointing MX records for local hosts." + msgstr "" + +-#: option.c:327 ++#: option.c:339 + msgid "Expand simple names in /etc/hosts with domain-suffix." + msgstr "" + +-#: option.c:328 ++#: option.c:340 + msgid "Don't forward spurious DNS requests from Windows hosts." + msgstr "" + +-#: option.c:329 ++#: option.c:341 + msgid "Enable DHCP in the range given with lease duration." + msgstr "" + +-#: option.c:330 ++#: option.c:342 + #, c-format + msgid "Change to this group after startup (defaults to %s)." + msgstr "" + +-#: option.c:331 ++#: option.c:343 + msgid "Set address or hostname for a specified machine." + msgstr "" + +-#: option.c:332 ++#: option.c:344 + msgid "Read DHCP host specs from file." + msgstr "" + +-#: option.c:333 ++#: option.c:345 + msgid "Read DHCP option specs from file." + msgstr "" + +-#: option.c:334 ++#: option.c:346 ++msgid "Read DHCP host specs from a directory." ++msgstr "" ++ ++#: option.c:347 ++msgid "Read DHCP options from a directory." ++msgstr "" ++ ++#: option.c:348 + msgid "Evaluate conditional tag expression." + msgstr "" + +-#: option.c:335 ++#: option.c:349 + #, c-format + msgid "Do NOT load %s file." + msgstr "" + +-#: option.c:336 ++#: option.c:350 + #, c-format + msgid "Specify a hosts file to be read in addition to %s." + msgstr "" + +-#: option.c:337 ++#: option.c:351 ++msgid "Read hosts files from a directory." ++msgstr "" ++ ++#: option.c:352 + msgid "Specify interface(s) to listen on." + msgstr "" + +-#: option.c:338 ++#: option.c:353 + msgid "Specify interface(s) NOT to listen on." + msgstr "" + +-#: option.c:339 ++#: option.c:354 + msgid "Map DHCP user class to tag." + msgstr "" + +-#: option.c:340 ++#: option.c:355 + msgid "Map RFC3046 circuit-id to tag." + msgstr "" + +-#: option.c:341 ++#: option.c:356 + msgid "Map RFC3046 remote-id to tag." + msgstr "" + +-#: option.c:342 ++#: option.c:357 + msgid "Map RFC3993 subscriber-id to tag." + msgstr "" + +-#: option.c:343 ++#: option.c:358 + msgid "Don't do DHCP for hosts with tag set." + msgstr "" + +-#: option.c:344 ++#: option.c:359 + msgid "Force broadcast replies for hosts with tag set." + msgstr "" + +-#: option.c:345 ++#: option.c:360 + msgid "Do NOT fork into the background, do NOT run in debug mode." + msgstr "" + +-#: option.c:346 ++#: option.c:361 + msgid "Assume we are the only DHCP server on the local network." + msgstr "" + +-#: option.c:347 ++#: option.c:362 + #, c-format + msgid "Specify where to store DHCP leases (defaults to %s)." + msgstr "" + +-#: option.c:348 ++#: option.c:363 + msgid "Return MX records for local hosts." + msgstr "" + +-#: option.c:349 ++#: option.c:364 + msgid "Specify an MX record." + msgstr "" + +-#: option.c:350 ++#: option.c:365 + msgid "Specify BOOTP options to DHCP server." + msgstr "" + +-#: option.c:351 ++#: option.c:366 + #, c-format + msgid "Do NOT poll %s file, reload only on SIGHUP." + msgstr "" + +-#: option.c:352 ++#: option.c:367 + msgid "Do NOT cache failed search results." + msgstr "" + +-#: option.c:353 ++#: option.c:368 + #, c-format + msgid "Use nameservers strictly in the order given in %s." + msgstr "" + +-#: option.c:354 ++#: option.c:369 + msgid "Specify options to be sent to DHCP clients." + msgstr "" + +-#: option.c:355 ++#: option.c:370 + msgid "DHCP option sent even if the client does not request it." + msgstr "" + +-#: option.c:356 ++#: option.c:371 + msgid "Specify port to listen for DNS requests on (defaults to 53)." + msgstr "" + +-#: option.c:357 ++#: option.c:372 + #, c-format + msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)." + msgstr "" + +-#: option.c:358 ++#: option.c:373 + msgid "Log DNS queries." + msgstr "" + +-#: option.c:359 ++#: option.c:374 + msgid "Force the originating port for upstream DNS queries." + msgstr "" + +-#: option.c:360 ++#: option.c:375 + msgid "Do NOT read resolv.conf." + msgstr "" + +-#: option.c:361 ++#: option.c:376 + #, c-format + msgid "Specify path to resolv.conf (defaults to %s)." + msgstr "" + +-#: option.c:362 ++#: option.c:377 + msgid "Specify path to file with server= options" + msgstr "" + +-#: option.c:363 ++#: option.c:378 + msgid "Specify address(es) of upstream servers with optional domains." + msgstr "" + +-#: option.c:364 ++#: option.c:379 + msgid "Specify address of upstream servers for reverse address queries" + msgstr "" + +-#: option.c:365 ++#: option.c:380 + msgid "Never forward queries to specified domains." + msgstr "" + +-#: option.c:366 ++#: option.c:381 + msgid "Specify the domain to be assigned in DHCP leases." + msgstr "" + +-#: option.c:367 ++#: option.c:382 + msgid "Specify default target in an MX record." + msgstr "" + +-#: option.c:368 ++#: option.c:383 + msgid "Specify time-to-live in seconds for replies from /etc/hosts." + msgstr "" + +-#: option.c:369 ++#: option.c:384 + msgid "Specify time-to-live in seconds for negative caching." + msgstr "" + +-#: option.c:370 ++#: option.c:385 + msgid "Specify time-to-live in seconds for maximum TTL to send to clients." + msgstr "" + +-#: option.c:371 ++#: option.c:386 ++msgid "Specify time-to-live ceiling for cache." ++msgstr "" ++ ++#: option.c:387 ++msgid "Specify time-to-live floor for cache." ++msgstr "" ++ ++#: option.c:388 + #, c-format + msgid "Change to this user after startup. (defaults to %s)." + msgstr "" + +-#: option.c:372 ++#: option.c:389 + msgid "Map DHCP vendor class to tag." + msgstr "" + +-#: option.c:373 ++#: option.c:390 + msgid "Display dnsmasq version and copyright information." + msgstr "" + +-#: option.c:374 ++#: option.c:391 + msgid "Translate IPv4 addresses from upstream servers." + msgstr "" + +-#: option.c:375 ++#: option.c:392 + msgid "Specify a SRV record." + msgstr "" + +-#: option.c:376 ++#: option.c:393 + msgid "Display this message. Use --help dhcp for known DHCP options." + msgstr "" + +-#: option.c:377 ++#: option.c:394 + #, c-format + msgid "Specify path of PID file (defaults to %s)." + msgstr "" + +-#: option.c:378 ++#: option.c:395 + #, c-format + msgid "Specify maximum number of DHCP leases (defaults to %s)." + msgstr "" + +-#: option.c:379 ++#: option.c:396 + msgid "Answer DNS queries based on the interface a query was sent to." + msgstr "" + +-#: option.c:380 ++#: option.c:397 + msgid "Specify TXT DNS record." + msgstr "" + +-#: option.c:381 ++#: option.c:398 + msgid "Specify PTR DNS record." + msgstr "" + +-#: option.c:382 ++#: option.c:399 + msgid "Give DNS name to IPv4 address of interface." + msgstr "" + +-#: option.c:383 ++#: option.c:400 + msgid "Bind only to interfaces in use." + msgstr "" + +-#: option.c:384 ++#: option.c:401 + #, c-format + msgid "Read DHCP static host information from %s." + msgstr "" + +-#: option.c:385 ++#: option.c:402 + msgid "Enable the DBus interface for setting upstream servers, etc." + msgstr "" + +-#: option.c:386 ++#: option.c:403 + msgid "Do not provide DHCP on this interface, only provide DNS." + msgstr "" + +-#: option.c:387 ++#: option.c:404 + msgid "Enable dynamic address allocation for bootp." + msgstr "" + +-#: option.c:388 ++#: option.c:405 + msgid "Map MAC address (with wildcards) to option set." + msgstr "" + +-#: option.c:389 ++#: option.c:406 + msgid "Treat DHCP requests on aliases as arriving from interface." + msgstr "" + +-#: option.c:390 ++#: option.c:407 + msgid "Disable ICMP echo address checking in the DHCP server." + msgstr "" + +-#: option.c:391 ++#: option.c:408 + msgid "Shell script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:392 ++#: option.c:409 + msgid "Lua script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:393 ++#: option.c:410 + msgid "Run lease-change scripts as this user." + msgstr "" + +-#: option.c:394 ++#: option.c:411 + msgid "Read configuration from all the files in this directory." + msgstr "" + +-#: option.c:395 ++#: option.c:412 + msgid "Log to this syslog facility or file. (defaults to DAEMON)" + msgstr "" + +-#: option.c:396 ++#: option.c:413 + msgid "Do not use leasefile." + msgstr "" + +-#: option.c:397 ++#: option.c:414 + #, c-format + msgid "Maximum number of concurrent DNS queries. (defaults to %s)" + msgstr "" + +-#: option.c:398 ++#: option.c:415 + #, c-format + msgid "Clear DNS cache when reloading %s." + msgstr "" + +-#: option.c:399 ++#: option.c:416 + msgid "Ignore hostnames provided by DHCP clients." + msgstr "" + +-#: option.c:400 ++#: option.c:417 + msgid "Do NOT reuse filename and server fields for extra DHCP options." + msgstr "" + +-#: option.c:401 ++#: option.c:418 + msgid "Enable integrated read-only TFTP server." + msgstr "" + +-#: option.c:402 ++#: option.c:419 + msgid "Export files by TFTP only from the specified subtree." + msgstr "" + +-#: option.c:403 ++#: option.c:420 + msgid "Add client IP address to tftp-root." + msgstr "" + +-#: option.c:404 ++#: option.c:421 + msgid "Allow access only to files owned by the user running dnsmasq." + msgstr "" + +-#: option.c:405 ++#: option.c:422 + #, c-format + msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)." + msgstr "" + +-#: option.c:406 ++#: option.c:423 + msgid "Disable the TFTP blocksize extension." + msgstr "" + +-#: option.c:407 ++#: option.c:424 + msgid "Convert TFTP filenames to lowercase" + msgstr "" + +-#: option.c:408 ++#: option.c:425 + msgid "Ephemeral port range for use by TFTP transfers." + msgstr "" + +-#: option.c:409 ++#: option.c:426 + msgid "Extra logging for DHCP." + msgstr "" + +-#: option.c:410 ++#: option.c:427 + msgid "Enable async. logging; optionally set queue length." + msgstr "" + +-#: option.c:411 ++#: option.c:428 + msgid "Stop DNS rebinding. Filter private IP ranges when resolving." + msgstr "" + +-#: option.c:412 ++#: option.c:429 + msgid "Allow rebinding of 127.0.0.0/8, for RBL servers." + msgstr "" + +-#: option.c:413 ++#: option.c:430 + msgid "Inhibit DNS-rebind protection on this domain." + msgstr "" + +-#: option.c:414 ++#: option.c:431 + msgid "Always perform DNS queries to all servers." + msgstr "" + +-#: option.c:415 ++#: option.c:432 + msgid "Set tag if client includes matching option in request." + msgstr "" + +-#: option.c:416 ++#: option.c:433 + msgid "Use alternative ports for DHCP." + msgstr "" + +-#: option.c:417 ++#: option.c:434 + msgid "Specify NAPTR DNS record." + msgstr "" + +-#: option.c:418 ++#: option.c:435 + msgid "Specify lowest port available for DNS query transmission." + msgstr "" + +-#: option.c:419 ++#: option.c:436 + msgid "Use only fully qualified domain names for DHCP clients." + msgstr "" + +-#: option.c:420 ++#: option.c:437 + msgid "Generate hostnames based on MAC address for nameless clients." + msgstr "" + +-#: option.c:421 ++#: option.c:438 + msgid "Use these DHCP relays as full proxies." + msgstr "" + +-#: option.c:422 ++#: option.c:439 + msgid "Relay DHCP requests to a remote server" + msgstr "" + +-#: option.c:423 ++#: option.c:440 + msgid "Specify alias name for LOCAL DNS name." + msgstr "" + +-#: option.c:424 ++#: option.c:441 + msgid "Prompt to send to PXE clients." + msgstr "" + +-#: option.c:425 ++#: option.c:442 + msgid "Boot service for PXE menu." + msgstr "" + +-#: option.c:426 ++#: option.c:443 + msgid "Check configuration syntax." + msgstr "" + +-#: option.c:427 ++#: option.c:444 + msgid "Add requestor's MAC address to forwarded DNS queries." + msgstr "" + +-#: option.c:428 ++#: option.c:445 + msgid "Add requestor's IP subnet to forwarded DNS queries." + msgstr "" + +-#: option.c:429 ++#: option.c:446 + msgid "Proxy DNSSEC validation results from upstream nameservers." + msgstr "" + +-#: option.c:430 ++#: option.c:447 + msgid "Attempt to allocate sequential IP addresses to DHCP clients." + msgstr "" + +-#: option.c:431 ++#: option.c:448 + msgid "Copy connection-track mark from queries to upstream connections." + msgstr "" + +-#: option.c:432 ++#: option.c:449 + msgid "Allow DHCP clients to do their own DDNS updates." + msgstr "" + +-#: option.c:433 ++#: option.c:450 + msgid "Send router-advertisements for interfaces doing DHCPv6" + msgstr "" + +-#: option.c:434 ++#: option.c:451 + msgid "Specify DUID_EN-type DHCPv6 server DUID" + msgstr "" + +-#: option.c:435 ++#: option.c:452 + msgid "Specify host (A/AAAA and PTR) records" + msgstr "" + +-#: option.c:436 ++#: option.c:453 + msgid "Specify arbitrary DNS resource record" + msgstr "" + +-#: option.c:437 ++#: option.c:454 + msgid "Bind to interfaces in use - check for new interfaces" + msgstr "" + +-#: option.c:438 ++#: option.c:455 + msgid "Export local names to global DNS" + msgstr "" + +-#: option.c:439 ++#: option.c:456 + msgid "Domain to export to global DNS" + msgstr "" + +-#: option.c:440 ++#: option.c:457 + msgid "Set TTL for authoritative replies" + msgstr "" + +-#: option.c:441 ++#: option.c:458 + msgid "Set authoritive zone information" + msgstr "" + +-#: option.c:442 ++#: option.c:459 + msgid "Secondary authoritative nameservers for forward domains" + msgstr "" + +-#: option.c:443 ++#: option.c:460 + msgid "Peers which are allowed to do zone transfer" + msgstr "" + +-#: option.c:444 ++#: option.c:461 + msgid "Specify ipsets to which matching domains should be added" + msgstr "" + +-#: option.c:445 ++#: option.c:462 + msgid "Specify a domain and address range for synthesised names" + msgstr "" + +-#: option.c:446 ++#: option.c:463 + msgid "Activate DNSSEC validation" + msgstr "" + +-#: option.c:447 ++#: option.c:464 + msgid "Specify trust anchor key digest." + msgstr "" + +-#: option.c:448 ++#: option.c:465 + msgid "Disable upstream checking for DNSSEC debugging." + msgstr "" + +-#: option.c:449 ++#: option.c:466 + msgid "Ensure answers without DNSSEC are in unsigned zones." + msgstr "" + +-#: option.c:450 ++#: option.c:467 + msgid "Don't check DNSSEC signature timestamps until first cache-reload" + msgstr "" + +-#: option.c:452 ++#: option.c:468 ++msgid "Timestamp file to verify system clock for DNSSEC" ++msgstr "" ++ ++#: option.c:470 + msgid "Specify DHCPv6 prefix class" + msgstr "" + +-#: option.c:454 ++#: option.c:472 + msgid "Set priority, resend-interval and router-lifetime" + msgstr "" + +-#: option.c:455 ++#: option.c:473 + msgid "Do not log routine DHCP." + msgstr "" + +-#: option.c:456 ++#: option.c:474 + msgid "Do not log routine DHCPv6." + msgstr "" + +-#: option.c:457 ++#: option.c:475 + msgid "Do not log RA." + msgstr "" + +-#: option.c:458 ++#: option.c:476 + msgid "Accept queries only from directly-connected networks" + msgstr "" + +-#: option.c:459 ++#: option.c:477 + msgid "Detect and remove DNS forwarding loops" + msgstr "" + +-#: option.c:661 ++#: option.c:478 ++msgid "Ignore DNS responses containing ipaddr." ++msgstr "" ++ ++#: option.c:680 + #, c-format + msgid "" + "Usage: dnsmasq [options]\n" + "\n" + msgstr "" + +-#: option.c:663 ++#: option.c:682 + #, c-format + msgid "Use short options only on the command line.\n" + msgstr "" + +-#: option.c:665 ++#: option.c:684 + #, c-format + msgid "Valid options are:\n" + msgstr "" + +-#: option.c:722 option.c:726 ++#: option.c:741 option.c:745 + msgid "bad port" + msgstr "" + +-#: option.c:753 option.c:785 ++#: option.c:772 option.c:804 + msgid "interface binding not supported" + msgstr "" + +-#: option.c:762 option.c:3494 ++#: option.c:781 option.c:3570 + msgid "bad interface name" + msgstr "" + +-#: option.c:792 ++#: option.c:811 + msgid "bad address" + msgstr "" + +-#: option.c:974 ++#: option.c:993 + msgid "unsupported encapsulation for IPv6 option" + msgstr "" + +-#: option.c:988 ++#: option.c:1007 + msgid "bad dhcp-option" + msgstr "" + +-#: option.c:1056 ++#: option.c:1075 + msgid "bad IP address" + msgstr "" + +-#: option.c:1059 option.c:1197 option.c:2812 ++#: option.c:1078 option.c:1216 option.c:2888 + msgid "bad IPv6 address" + msgstr "" + +-#: option.c:1224 option.c:1318 ++#: option.c:1243 option.c:1337 + msgid "bad domain in dhcp-option" + msgstr "" + +-#: option.c:1356 ++#: option.c:1375 + msgid "dhcp-option too long" + msgstr "" + +-#: option.c:1363 ++#: option.c:1382 + msgid "illegal dhcp-match" + msgstr "" + +-#: option.c:1425 ++#: option.c:1444 + msgid "illegal repeated flag" + msgstr "" + +-#: option.c:1433 ++#: option.c:1452 + msgid "illegal repeated keyword" + msgstr "" + +-#: option.c:1495 option.c:4092 ++#: option.c:1517 option.c:4186 + #, c-format + msgid "cannot access directory %s: %s" + msgstr "" + +-#: option.c:1541 tftp.c:493 ++#: option.c:1563 tftp.c:493 + #, c-format + msgid "cannot access %s: %s" + msgstr "" + +-#: option.c:1588 ++#: option.c:1615 + msgid "setting log facility is not possible under Android" + msgstr "" + +-#: option.c:1597 ++#: option.c:1624 + msgid "bad log facility" + msgstr "" + +-#: option.c:1650 ++#: option.c:1677 + msgid "bad MX preference" + msgstr "" + +-#: option.c:1655 ++#: option.c:1682 + msgid "bad MX name" + msgstr "" + +-#: option.c:1669 ++#: option.c:1696 + msgid "bad MX target" + msgstr "" + +-#: option.c:1681 ++#: option.c:1708 + msgid "cannot run scripts under uClinux" + msgstr "" + +-#: option.c:1683 ++#: option.c:1710 + msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts" + msgstr "" + +-#: option.c:1687 ++#: option.c:1714 + msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts" + msgstr "" + +-#: option.c:1928 option.c:1966 option.c:2015 ++#: option.c:1970 option.c:2015 option.c:2071 + msgid "bad prefix" + msgstr "" + +-#: option.c:2289 ++#: option.c:2352 + msgid "recompile with HAVE_IPSET defined to enable ipset directives" + msgstr "" + +-#: option.c:2469 ++#: option.c:2545 + msgid "bad port range" + msgstr "" + +-#: option.c:2485 ++#: option.c:2561 + msgid "bad bridge-interface" + msgstr "" + +-#: option.c:2545 ++#: option.c:2621 + msgid "only one tag allowed" + msgstr "" + +-#: option.c:2565 option.c:2577 option.c:2683 option.c:2724 ++#: option.c:2641 option.c:2653 option.c:2759 option.c:2800 + msgid "bad dhcp-range" + msgstr "" + +-#: option.c:2592 ++#: option.c:2668 + msgid "inconsistent DHCP range" + msgstr "" + +-#: option.c:2651 ++#: option.c:2727 + msgid "prefix length must be exactly 64 for RA subnets" + msgstr "" + +-#: option.c:2653 ++#: option.c:2729 + msgid "prefix length must be exactly 64 for subnet constructors" + msgstr "" + +-#: option.c:2657 ++#: option.c:2733 + msgid "prefix length must be at least 64" + msgstr "" + +-#: option.c:2660 ++#: option.c:2736 + msgid "inconsistent DHCPv6 range" + msgstr "" + +-#: option.c:2671 ++#: option.c:2747 + msgid "prefix must be zero with \"constructor:\" argument" + msgstr "" + +-#: option.c:2782 option.c:2830 ++#: option.c:2858 option.c:2906 + msgid "bad hex constant" + msgstr "" + +-#: option.c:2804 ++#: option.c:2880 + msgid "cannot match tags in --dhcp-host" + msgstr "" + +-#: option.c:2852 ++#: option.c:2928 + #, c-format + msgid "duplicate dhcp-host IP address %s" + msgstr "" + +-#: option.c:2910 ++#: option.c:2986 + msgid "bad DHCP host name" + msgstr "" + +-#: option.c:2992 ++#: option.c:3068 + msgid "bad tag-if" + msgstr "" + +-#: option.c:3316 option.c:3710 ++#: option.c:3392 option.c:3786 + msgid "invalid port number" + msgstr "" + +-#: option.c:3378 ++#: option.c:3454 + msgid "bad dhcp-proxy address" + msgstr "" + +-#: option.c:3404 ++#: option.c:3480 + msgid "Bad dhcp-relay" + msgstr "" + +-#: option.c:3430 ++#: option.c:3506 + msgid "bad RA-params" + msgstr "" + +-#: option.c:3439 ++#: option.c:3515 + msgid "bad DUID" + msgstr "" + +-#: option.c:3481 ++#: option.c:3557 + msgid "invalid alias range" + msgstr "" + +-#: option.c:3535 ++#: option.c:3611 + msgid "bad CNAME" + msgstr "" + +-#: option.c:3540 ++#: option.c:3616 + msgid "duplicate CNAME" + msgstr "" + +-#: option.c:3560 ++#: option.c:3636 + msgid "bad PTR record" + msgstr "" + +-#: option.c:3591 ++#: option.c:3667 + msgid "bad NAPTR record" + msgstr "" + +-#: option.c:3625 ++#: option.c:3701 + msgid "bad RR record" + msgstr "" + +-#: option.c:3655 ++#: option.c:3731 + msgid "bad TXT record" + msgstr "" + +-#: option.c:3696 ++#: option.c:3772 + msgid "bad SRV record" + msgstr "" + +-#: option.c:3703 ++#: option.c:3779 + msgid "bad SRV target" + msgstr "" + +-#: option.c:3717 ++#: option.c:3793 + msgid "invalid priority" + msgstr "" + +-#: option.c:3724 ++#: option.c:3800 + msgid "invalid weight" + msgstr "" + +-#: option.c:3748 ++#: option.c:3824 + msgid "Bad host-record" + msgstr "" + +-#: option.c:3765 ++#: option.c:3841 + msgid "Bad name in host-record" + msgstr "" + +-#: option.c:3826 ++#: option.c:3906 + msgid "bad trust anchor" + msgstr "" + +-#: option.c:3840 ++#: option.c:3920 + msgid "bad HEX in trust anchor" + msgstr "" + +-#: option.c:3850 ++#: option.c:3930 + msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DNSSEC/DBus support)" + msgstr "" + +-#: option.c:3909 ++#: option.c:3989 + msgid "missing \"" + msgstr "" + +-#: option.c:3966 ++#: option.c:4046 + msgid "bad option" + msgstr "" + +-#: option.c:3968 ++#: option.c:4048 + msgid "extraneous parameter" + msgstr "" + +-#: option.c:3970 ++#: option.c:4050 + msgid "missing parameter" + msgstr "" + +-#: option.c:3972 ++#: option.c:4052 + msgid "illegal option" + msgstr "" + +-#: option.c:3979 ++#: option.c:4059 + msgid "error" + msgstr "" + +-#: option.c:3981 ++#: option.c:4061 + #, c-format + msgid " at line %d of %s" + msgstr "" + +-#: option.c:4045 option.c:4168 tftp.c:667 ++#: option.c:4076 option.c:4323 option.c:4359 + #, c-format +-msgid "cannot read %s: %s" ++msgid "read %s" + msgstr "" + +-#: option.c:4229 option.c:4265 ++#: option.c:4139 option.c:4262 tftp.c:667 + #, c-format +-msgid "read %s" ++msgid "cannot read %s: %s" + msgstr "" + +-#: option.c:4331 ++#: option.c:4425 + msgid "junk found in command line" + msgstr "" + +-#: option.c:4366 ++#: option.c:4460 + #, c-format + msgid "Dnsmasq version %s %s\n" + msgstr "" + +-#: option.c:4367 ++#: option.c:4461 + #, c-format + msgid "" + "Compile time options: %s\n" + "\n" + msgstr "" + +-#: option.c:4368 ++#: option.c:4462 + #, c-format + msgid "This software comes with ABSOLUTELY NO WARRANTY.\n" + msgstr "" + +-#: option.c:4369 ++#: option.c:4463 + #, c-format + msgid "Dnsmasq is free software, and you are welcome to redistribute it\n" + msgstr "" + +-#: option.c:4370 ++#: option.c:4464 + #, c-format + msgid "under the terms of the GNU General Public License, version 2 or 3.\n" + msgstr "" + +-#: option.c:4381 ++#: option.c:4475 + msgid "try --help" + msgstr "" + +-#: option.c:4383 ++#: option.c:4477 + msgid "try -w" + msgstr "" + +-#: option.c:4385 ++#: option.c:4479 + #, c-format + msgid "bad command line options: %s" + msgstr "" + +-#: option.c:4434 ++#: option.c:4535 + #, c-format + msgid "cannot get host-name: %s" + msgstr "" + +-#: option.c:4462 ++#: option.c:4563 + msgid "only one resolv.conf file allowed in no-poll mode." + msgstr "" + +-#: option.c:4472 ++#: option.c:4573 + msgid "must have exactly one resolv.conf to read domain from." + msgstr "" + +-#: option.c:4475 network.c:1506 dhcp.c:769 ++#: option.c:4576 network.c:1506 dhcp.c:774 + #, c-format + msgid "failed to read %s: %s" + msgstr "" + +-#: option.c:4492 ++#: option.c:4593 + #, c-format + msgid "no search directive found in %s" + msgstr "" + +-#: option.c:4513 ++#: option.c:4614 + msgid "there must be a default domain when --dhcp-fqdn is set" + msgstr "" + +-#: option.c:4522 ++#: option.c:4623 + msgid "syntax check OK" + msgstr "" + +-#: forward.c:114 ++#: forward.c:111 + #, c-format + msgid "failed to send packet: %s" + msgstr "" + +-#: forward.c:574 ++#: forward.c:572 + msgid "discarding DNS reply: subnet option mismatch" + msgstr "" + +-#: forward.c:597 ++#: forward.c:595 + #, c-format + msgid "nameserver %s refused to do a recursive query" + msgstr "" + +-#: forward.c:629 ++#: forward.c:627 + #, c-format + msgid "possible DNS-rebind attack detected: %s" + msgstr "" + +-#: forward.c:1132 forward.c:1663 ++#: forward.c:1156 forward.c:1722 + msgid "Ignoring query from non-local network" + msgstr "" + +-#: forward.c:2101 ++#: forward.c:2178 + #, c-format + msgid "Maximum number of concurrent DNS queries reached (max: %d)" + msgstr "" +@@ -1180,263 +1208,276 @@ msgstr "" + msgid "using nameserver %s#%d" + msgstr "" + +-#: dnsmasq.c:154 +-msgid "No trust anchors provided for DNSSEC" ++#: dnsmasq.c:149 ++msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" + msgstr "" + +-#: dnsmasq.c:157 +-msgid "Cannot reduce cache size from default when DNSSEC enabled" ++#: dnsmasq.c:156 ++msgid "no trust anchors provided for DNSSEC" + msgstr "" + + #: dnsmasq.c:159 ++msgid "cannot reduce cache size from default when DNSSEC enabled" ++msgstr "" ++ ++#: dnsmasq.c:161 + msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h" + msgstr "" + +-#: dnsmasq.c:165 ++#: dnsmasq.c:167 + msgid "TFTP server not available: set HAVE_TFTP in src/config.h" + msgstr "" + +-#: dnsmasq.c:170 +-msgid "Cannot use --conntrack AND --query-port" ++#: dnsmasq.c:172 ++msgid "cannot use --conntrack AND --query-port" + msgstr "" + +-#: dnsmasq.c:173 +-msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h" ++#: dnsmasq.c:175 ++msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" + msgstr "" + +-#: dnsmasq.c:178 ++#: dnsmasq.c:180 + msgid "asychronous logging is not available under Solaris" + msgstr "" + +-#: dnsmasq.c:183 ++#: dnsmasq.c:185 + msgid "asychronous logging is not available under Android" + msgstr "" + +-#: dnsmasq.c:188 ++#: dnsmasq.c:190 + msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h" + msgstr "" + +-#: dnsmasq.c:193 +-msgid "Loop detection not available: set HAVE_LOOP in src/config.h" ++#: dnsmasq.c:195 ++msgid "loop detection not available: set HAVE_LOOP in src/config.h" + msgstr "" + +-#: dnsmasq.c:201 ++#: dnsmasq.c:203 + msgid "zone serial must be configured in --auth-soa" + msgstr "" + +-#: dnsmasq.c:219 ++#: dnsmasq.c:221 + msgid "dhcp-range constructor not available on this platform" + msgstr "" + +-#: dnsmasq.c:262 ++#: dnsmasq.c:264 + msgid "cannot set --bind-interfaces and --bind-dynamic" + msgstr "" + +-#: dnsmasq.c:265 ++#: dnsmasq.c:267 + #, c-format + msgid "failed to find list of interfaces: %s" + msgstr "" + +-#: dnsmasq.c:274 ++#: dnsmasq.c:276 + #, c-format + msgid "unknown interface %s" + msgstr "" + +-#: dnsmasq.c:330 dnsmasq.c:954 ++#: dnsmasq.c:340 dnsmasq.c:1004 + #, c-format + msgid "DBus error: %s" + msgstr "" + +-#: dnsmasq.c:333 ++#: dnsmasq.c:343 + msgid "DBus not available: set HAVE_DBUS in src/config.h" + msgstr "" + +-#: dnsmasq.c:361 ++#: dnsmasq.c:371 + #, c-format + msgid "unknown user or group: %s" + msgstr "" + +-#: dnsmasq.c:416 ++#: dnsmasq.c:426 + #, c-format + msgid "cannot chdir to filesystem root: %s" + msgstr "" + +-#: dnsmasq.c:653 ++#: dnsmasq.c:667 + #, c-format + msgid "started, version %s DNS disabled" + msgstr "" + +-#: dnsmasq.c:655 ++#: dnsmasq.c:669 + #, c-format + msgid "started, version %s cachesize %d" + msgstr "" + +-#: dnsmasq.c:657 ++#: dnsmasq.c:671 + #, c-format + msgid "started, version %s cache disabled" + msgstr "" + +-#: dnsmasq.c:659 ++#: dnsmasq.c:673 + #, c-format + msgid "compile time options: %s" + msgstr "" + +-#: dnsmasq.c:665 ++#: dnsmasq.c:679 + msgid "DBus support enabled: connected to system bus" + msgstr "" + +-#: dnsmasq.c:667 ++#: dnsmasq.c:681 + msgid "DBus support enabled: bus connection pending" + msgstr "" + +-#: dnsmasq.c:672 ++#: dnsmasq.c:686 + msgid "DNS service limited to local subnets" + msgstr "" + +-#: dnsmasq.c:677 ++#: dnsmasq.c:702 + msgid "DNSSEC validation enabled" + msgstr "" + +-#: dnsmasq.c:679 ++#: dnsmasq.c:705 + msgid "DNSSEC signature timestamps not checked until first cache reload" + msgstr "" + +-#: dnsmasq.c:684 ++#: dnsmasq.c:708 ++msgid "DNSSEC signature timestamps not checked until system time valid" ++msgstr "" ++ ++#: dnsmasq.c:713 + #, c-format + msgid "warning: failed to change owner of %s: %s" + msgstr "" + +-#: dnsmasq.c:688 ++#: dnsmasq.c:717 + msgid "setting --bind-interfaces option because of OS limitations" + msgstr "" + +-#: dnsmasq.c:698 ++#: dnsmasq.c:727 + #, c-format + msgid "warning: interface %s does not currently exist" + msgstr "" + +-#: dnsmasq.c:703 ++#: dnsmasq.c:732 + msgid "warning: ignoring resolv-file flag because no-resolv is set" + msgstr "" + +-#: dnsmasq.c:706 ++#: dnsmasq.c:735 + msgid "warning: no upstream servers configured" + msgstr "" + +-#: dnsmasq.c:710 ++#: dnsmasq.c:739 + #, c-format + msgid "asynchronous logging enabled, queue limit is %d messages" + msgstr "" + +-#: dnsmasq.c:731 ++#: dnsmasq.c:760 + msgid "IPv6 router advertisement enabled" + msgstr "" + +-#: dnsmasq.c:736 ++#: dnsmasq.c:765 + #, c-format + msgid "DHCP, sockets bound exclusively to interface %s" + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "root is " + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "enabled" + msgstr "" + +-#: dnsmasq.c:755 ++#: dnsmasq.c:784 + msgid "secure mode" + msgstr "" + +-#: dnsmasq.c:781 ++#: dnsmasq.c:810 + #, c-format + msgid "restricting maximum simultaneous TFTP transfers to %d" + msgstr "" + +-#: dnsmasq.c:956 ++#: dnsmasq.c:1006 + msgid "connected to system DBus" + msgstr "" + +-#: dnsmasq.c:1106 ++#: dnsmasq.c:1156 + #, c-format + msgid "cannot fork into background: %s" + msgstr "" + +-#: dnsmasq.c:1109 ++#: dnsmasq.c:1159 + #, c-format + msgid "failed to create helper: %s" + msgstr "" + +-#: dnsmasq.c:1112 ++#: dnsmasq.c:1162 + #, c-format + msgid "setting capabilities failed: %s" + msgstr "" + +-#: dnsmasq.c:1115 ++#: dnsmasq.c:1165 + #, c-format + msgid "failed to change user-id to %s: %s" + msgstr "" + +-#: dnsmasq.c:1118 ++#: dnsmasq.c:1168 + #, c-format + msgid "failed to change group-id to %s: %s" + msgstr "" + +-#: dnsmasq.c:1121 ++#: dnsmasq.c:1171 + #, c-format + msgid "failed to open pidfile %s: %s" + msgstr "" + +-#: dnsmasq.c:1124 ++#: dnsmasq.c:1174 + #, c-format + msgid "cannot open log %s: %s" + msgstr "" + +-#: dnsmasq.c:1127 ++#: dnsmasq.c:1177 + #, c-format + msgid "failed to load Lua script: %s" + msgstr "" + +-#: dnsmasq.c:1130 ++#: dnsmasq.c:1180 + #, c-format + msgid "TFTP directory %s inaccessible: %s" + msgstr "" + +-#: dnsmasq.c:1151 ++#: dnsmasq.c:1183 ++#, c-format ++msgid "cannot create timestamp file %s: %s" ++msgstr "" ++ ++#: dnsmasq.c:1204 + msgid "now checking DNSSEC signature timestamps" + msgstr "" + +-#: dnsmasq.c:1218 ++#: dnsmasq.c:1271 + #, c-format + msgid "script process killed by signal %d" + msgstr "" + +-#: dnsmasq.c:1222 ++#: dnsmasq.c:1275 + #, c-format + msgid "script process exited with status %d" + msgstr "" + +-#: dnsmasq.c:1226 ++#: dnsmasq.c:1279 + #, c-format + msgid "failed to execute %s: %s" + msgstr "" + +-#: dnsmasq.c:1281 ++#: dnsmasq.c:1334 + msgid "exiting on receipt of SIGTERM" + msgstr "" + +-#: dnsmasq.c:1309 ++#: dnsmasq.c:1362 + #, c-format + msgid "failed to access %s: %s" + msgstr "" + +-#: dnsmasq.c:1339 ++#: dnsmasq.c:1392 + #, c-format + msgid "reading %s" + msgstr "" + +-#: dnsmasq.c:1350 ++#: dnsmasq.c:1403 + #, c-format + msgid "no servers found in %s, will retry" + msgstr "" +@@ -1476,27 +1517,27 @@ msgstr "" + msgid "DHCP packet received on %s which has no address" + msgstr "" + +-#: dhcp.c:408 ++#: dhcp.c:412 + #, c-format + msgid "ARP-cache injection failed: %s" + msgstr "" + +-#: dhcp.c:506 ++#: dhcp.c:511 + #, c-format + msgid "DHCP range %s -- %s is not consistent with netmask %s" + msgstr "" + +-#: dhcp.c:807 ++#: dhcp.c:812 + #, c-format + msgid "bad line at %s line %d" + msgstr "" + +-#: dhcp.c:850 ++#: dhcp.c:855 + #, c-format + msgid "ignoring %s line %d, duplicate name or IP address" + msgstr "" + +-#: dhcp.c:994 rfc3315.c:2089 ++#: dhcp.c:999 rfc3315.c:2139 + #, c-format + msgid "DHCP relay %s -> %s" + msgstr "" +@@ -1567,12 +1608,12 @@ msgstr "" + msgid "disabled" + msgstr "" + +-#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:602 rfc3315.c:823 +-#: rfc3315.c:1095 ++#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:603 rfc3315.c:860 ++#: rfc3315.c:1139 + msgid "ignored" + msgstr "" + +-#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:873 ++#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:910 + msgid "address in use" + msgstr "" + +@@ -1592,7 +1633,7 @@ msgstr "" + msgid "no leases left" + msgstr "" + +-#: rfc2131.c:691 rfc3315.c:475 ++#: rfc2131.c:691 rfc3315.c:476 + #, c-format + msgid "%u client provides name: %s" + msgstr "" +@@ -1601,7 +1642,7 @@ msgstr "" + msgid "PXE BIS not supported" + msgstr "" + +-#: rfc2131.c:935 rfc3315.c:1189 ++#: rfc2131.c:935 rfc3315.c:1233 + #, c-format + msgid "disabling DHCP static address %s for %s" + msgstr "" +@@ -1637,7 +1678,7 @@ msgstr "" + msgid "wrong address" + msgstr "" + +-#: rfc2131.c:1143 rfc3315.c:969 ++#: rfc2131.c:1143 rfc3315.c:1006 + msgid "lease not found" + msgstr "" + +@@ -1687,7 +1728,7 @@ msgstr "" + msgid "PXE menu too large" + msgstr "" + +-#: rfc2131.c:2173 rfc3315.c:1456 ++#: rfc2131.c:2173 rfc3315.c:1506 + #, c-format + msgid "%u requested options: %s" + msgstr "" +@@ -1702,7 +1743,7 @@ msgstr "" + msgid "cannot create netlink socket: %s" + msgstr "" + +-#: netlink.c:347 ++#: netlink.c:348 + #, c-format + msgid "netlink returns error: %s" + msgstr "" +@@ -1820,62 +1861,62 @@ msgstr "" + msgid "%u available DHCPv6 subnet: %s/%d" + msgstr "" + +-#: rfc3315.c:379 ++#: rfc3315.c:380 + #, c-format + msgid "%u vendor class: %u" + msgstr "" + +-#: rfc3315.c:427 ++#: rfc3315.c:428 + #, c-format + msgid "%u client MAC address: %s" + msgstr "" + +-#: rfc3315.c:659 ++#: rfc3315.c:660 + #, c-format + msgid "unknown prefix-class %d" + msgstr "" + +-#: rfc3315.c:791 rfc3315.c:913 +-msgid "success" ++#: rfc3315.c:803 rfc3315.c:902 ++msgid "address unavailable" + msgstr "" + +-#: rfc3315.c:806 rfc3315.c:808 rfc3315.c:921 rfc3315.c:923 +-msgid "no addresses available" ++#: rfc3315.c:815 rfc3315.c:950 rfc3315.c:1283 ++msgid "success" + msgstr "" + +-#: rfc3315.c:865 +-msgid "address unavailable" ++#: rfc3315.c:843 rfc3315.c:845 rfc3315.c:958 rfc3315.c:960 ++msgid "no addresses available" + msgstr "" + +-#: rfc3315.c:900 ++#: rfc3315.c:937 + msgid "not on link" + msgstr "" + +-#: rfc3315.c:973 rfc3315.c:1151 rfc3315.c:1228 ++#: rfc3315.c:1010 rfc3315.c:1195 rfc3315.c:1272 + msgid "no binding found" + msgstr "" + +-#: rfc3315.c:1011 ++#: rfc3315.c:1048 + msgid "deprecated" + msgstr "" + +-#: rfc3315.c:1016 ++#: rfc3315.c:1053 + msgid "address invalid" + msgstr "" + +-#: rfc3315.c:1061 ++#: rfc3315.c:1100 + msgid "confirm failed" + msgstr "" + +-#: rfc3315.c:1072 ++#: rfc3315.c:1116 + msgid "all addresses still on link" + msgstr "" + +-#: rfc3315.c:1160 ++#: rfc3315.c:1204 + msgid "release received" + msgstr "" + +-#: rfc3315.c:2080 ++#: rfc3315.c:2130 + msgid "Cannot multicast to DHCPv6 server without correct interface" + msgstr "" + +@@ -1968,7 +2009,7 @@ msgstr "" + msgid "cannot create ICMPv6 socket: %s" + msgstr "" + +-#: auth.c:429 ++#: auth.c:436 + #, c-format + msgid "ignoring zone transfer request from %s" + msgstr "" +@@ -1983,50 +2024,85 @@ msgstr "" + msgid "failed to create IPset control socket: %s" + msgstr "" + ++#: dnssec.c:425 dnssec.c:469 ++#, c-format ++msgid "failed to update mtime on %s: %s" ++msgstr "" ++ + #: blockdata.c:58 + #, c-format + msgid "DNSSEC memory in use %u, max %u, allocated %u" + msgstr "" + +-#: tables.c:76 ++#: tables.c:80 + msgid "error: fill_addr missused" + msgstr "" + +-#: tables.c:105 ++#: tables.c:109 + #, c-format + msgid "failed to access pf devices: %s" + msgstr "" + +-#: tables.c:119 ++#: tables.c:123 + #, c-format + msgid "warning: no opened pf devices %s" + msgstr "" + +-#: tables.c:127 ++#: tables.c:131 + #, c-format + msgid "error: cannot use table name %s" + msgstr "" + +-#: tables.c:135 ++#: tables.c:139 + #, c-format + msgid "error: cannot strlcpy table name %s" + msgstr "" + +-#: tables.c:141 ++#: tables.c:145 + #, c-format + msgid "warning: pfr_add_tables: %s(%d)" + msgstr "" + +-#: tables.c:147 ++#: tables.c:151 + msgid "info: table created" + msgstr "" + +-#: tables.c:158 ++#: tables.c:162 + #, c-format + msgid "warning: DIOCR%sADDRS: %s" + msgstr "" + +-#: tables.c:162 ++#: tables.c:166 + #, c-format + msgid "%d addresses %s" + msgstr "" ++ ++#: inotify.c:46 ++#, c-format ++msgid "failed to create inotify: %s" ++msgstr "" ++ ++#: inotify.c:60 ++#, c-format ++msgid "cannot cannonicalise resolv-file %s: %s" ++msgstr "" ++ ++#: inotify.c:72 ++#, c-format ++msgid "directory %s for resolv-file is missing, cannot poll" ++msgstr "" ++ ++#: inotify.c:75 inotify.c:112 ++#, c-format ++msgid "failed to create inotify for %s: %s" ++msgstr "" ++ ++#: inotify.c:97 ++#, c-format ++msgid "bad dynamic directory %s: %s" ++msgstr "" ++ ++#: inotify.c:197 ++#, c-format ++msgid "inotify, new or changed file %s" ++msgstr "" +diff --git a/po/no.po b/po/no.po +index ff7eaad9cad1..c2e7067d2304 100644 +--- a/po/no.po ++++ b/po/no.po +@@ -18,70 +18,70 @@ msgstr "" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" + +-#: cache.c:505 ++#: cache.c:523 + msgid "Internal error in cache." + msgstr "" + +-#: cache.c:908 ++#: cache.c:941 + #, fuzzy, c-format + msgid "failed to load names from %s: %s" + msgstr "feilet å laste navn fra %s: %s" + +-#: cache.c:934 dhcp.c:820 ++#: cache.c:967 dhcp.c:825 + #, c-format + msgid "bad address at %s line %d" + msgstr "dårlig adresse ved %s linje %d" + +-#: cache.c:985 dhcp.c:836 ++#: cache.c:1018 dhcp.c:841 + #, c-format + msgid "bad name at %s line %d" + msgstr "dårlig navn ved %s linje %d" + +-#: cache.c:992 dhcp.c:911 ++#: cache.c:1027 dhcp.c:916 + #, c-format + msgid "read %s - %d addresses" + msgstr "les %s - %d adresser" + +-#: cache.c:1100 ++#: cache.c:1135 + msgid "cleared cache" + msgstr "mellomlager tømt" + +-#: cache.c:1123 ++#: cache.c:1164 + #, c-format + msgid "No IPv4 address found for %s" + msgstr "" + +-#: cache.c:1201 ++#: cache.c:1242 + #, c-format + msgid "%s is a CNAME, not giving it to the DHCP lease of %s" + msgstr "" + +-#: cache.c:1225 ++#: cache.c:1266 + #, c-format + msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s" + msgstr "gir ikke navnet %s til DHCP leien for %s fordi navnet eksisterer i %s med adressen %s" + +-#: cache.c:1366 ++#: cache.c:1421 + #, c-format + msgid "time %lu" + msgstr "" + +-#: cache.c:1367 ++#: cache.c:1422 + #, fuzzy, c-format + msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries." + msgstr "mellomlager størrelse %d, %d/%d mellomlager innsettinger re-bruker mellomlager plasser som ikke er utløpt" + +-#: cache.c:1369 ++#: cache.c:1424 + #, c-format + msgid "queries forwarded %u, queries answered locally %u" + msgstr "" + +-#: cache.c:1372 ++#: cache.c:1427 + #, c-format + msgid "queries for authoritative zones %u" + msgstr "" + +-#: cache.c:1398 ++#: cache.c:1453 + #, c-format + msgid "server %s#%d: queries sent %u, retried or failed %u" + msgstr "" +@@ -96,7 +96,7 @@ msgstr "feilet + msgid "failed to allocate memory" + msgstr "feilet å laste %d bytes" + +-#: util.c:243 option.c:579 ++#: util.c:243 option.c:598 + msgid "could not get memory" + msgstr "kunne ikke få minne" + +@@ -110,610 +110,643 @@ msgstr "kan ikke lese %s: %s" + msgid "failed to allocate %d bytes" + msgstr "feilet å laste %d bytes" + +-#: util.c:429 ++#: util.c:430 + #, c-format + msgid "infinite" + msgstr "uendelig" + +-#: option.c:318 ++#: option.c:330 + msgid "Specify local address(es) to listen on." + msgstr "Spesifiser lokal(e) adresse(r) å lytte på." + +-#: option.c:319 ++#: option.c:331 + msgid "Return ipaddr for all hosts in specified domains." + msgstr "Returner ipaddr for alle verter i det spesifiserte domenet." + +-#: option.c:320 ++#: option.c:332 + msgid "Fake reverse lookups for RFC1918 private address ranges." + msgstr "Forfalsk revers oppslag for RFC1918 private adresse områder." + +-#: option.c:321 ++#: option.c:333 + msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)." + msgstr "Behandle ipaddr som NXDOMAIN (omgår Verisign wildcard)." + +-#: option.c:322 ++#: option.c:334 + #, c-format + msgid "Specify the size of the cache in entries (defaults to %s)." + msgstr "Spesifiser størrelsen på mellomlager plassene (standard er %s)." + +-#: option.c:323 ++#: option.c:335 + #, c-format + msgid "Specify configuration file (defaults to %s)." + msgstr "Spesifiser konfigurasjonsfil (standard er %s)." + +-#: option.c:324 ++#: option.c:336 + msgid "Do NOT fork into the background: run in debug mode." + msgstr "IKKE legg (fork) som bakgrunnsprosess: kjør i debug modus." + +-#: option.c:325 ++#: option.c:337 + msgid "Do NOT forward queries with no domain part." + msgstr "IKKE videresend oppslag som mangler domene del." + +-#: option.c:326 ++#: option.c:338 + msgid "Return self-pointing MX records for local hosts." + msgstr "Returner selv-pekende MX post for lokale verter." + +-#: option.c:327 ++#: option.c:339 + msgid "Expand simple names in /etc/hosts with domain-suffix." + msgstr "Utvid enkle navn i /etc/hosts med domene-suffiks." + +-#: option.c:328 ++#: option.c:340 + msgid "Don't forward spurious DNS requests from Windows hosts." + msgstr "Ikke videresend falske/uekte DNS forespørsler fra Windows verter." + +-#: option.c:329 ++#: option.c:341 + msgid "Enable DHCP in the range given with lease duration." + msgstr "Aktiver DHCP i det gitte området med leie varighet" + +-#: option.c:330 ++#: option.c:342 + #, c-format + msgid "Change to this group after startup (defaults to %s)." + msgstr "Skift til denne gruppen etter oppstart (standard er %s)." + +-#: option.c:331 ++#: option.c:343 + msgid "Set address or hostname for a specified machine." + msgstr "Sett adresse eller vertsnavn for en spesifikk maskin." + +-#: option.c:332 ++#: option.c:344 + #, fuzzy + msgid "Read DHCP host specs from file." + msgstr "dårlig MX navn" + +-#: option.c:333 ++#: option.c:345 + msgid "Read DHCP option specs from file." + msgstr "" + +-#: option.c:334 ++#: option.c:346 ++#, fuzzy ++msgid "Read DHCP host specs from a directory." ++msgstr "dårlig MX navn" ++ ++#: option.c:347 ++#, fuzzy ++msgid "Read DHCP options from a directory." ++msgstr "dårlig MX navn" ++ ++#: option.c:348 + msgid "Evaluate conditional tag expression." + msgstr "" + +-#: option.c:335 ++#: option.c:349 + #, c-format + msgid "Do NOT load %s file." + msgstr "IKKE last %s filen." + +-#: option.c:336 ++#: option.c:350 + #, c-format + msgid "Specify a hosts file to be read in addition to %s." + msgstr "Spesifiser en verts (hosts) fil som skal leses i tilleg til %s." + +-#: option.c:337 ++#: option.c:351 ++#, fuzzy ++msgid "Read hosts files from a directory." ++msgstr "dårlig MX navn" ++ ++#: option.c:352 + msgid "Specify interface(s) to listen on." + msgstr "Spesifiser nettverkskort det skal lyttes på." + +-#: option.c:338 ++#: option.c:353 + msgid "Specify interface(s) NOT to listen on." + msgstr "Spesifiser nettverkskort det IKKE skal lyttes på." + +-#: option.c:339 ++#: option.c:354 + #, fuzzy + msgid "Map DHCP user class to tag." + msgstr "Map DHCP bruker klasse til opsjon sett." + +-#: option.c:340 ++#: option.c:355 + msgid "Map RFC3046 circuit-id to tag." + msgstr "" + +-#: option.c:341 ++#: option.c:356 + msgid "Map RFC3046 remote-id to tag." + msgstr "" + +-#: option.c:342 ++#: option.c:357 + msgid "Map RFC3993 subscriber-id to tag." + msgstr "" + +-#: option.c:343 ++#: option.c:358 + #, fuzzy + msgid "Don't do DHCP for hosts with tag set." + msgstr "Ikke utfør DHCP for klienter i opsjon sett." + +-#: option.c:344 ++#: option.c:359 + #, fuzzy + msgid "Force broadcast replies for hosts with tag set." + msgstr "Ikke utfør DHCP for klienter i opsjon sett." + +-#: option.c:345 ++#: option.c:360 + msgid "Do NOT fork into the background, do NOT run in debug mode." + msgstr "IKKE last (fork) som bakgrunnsprosess, IKKE kjør i debug modus." + +-#: option.c:346 ++#: option.c:361 + msgid "Assume we are the only DHCP server on the local network." + msgstr "Anta at vi er den eneste DHCP tjeneren på det lokale nettverket." + +-#: option.c:347 ++#: option.c:362 + #, c-format + msgid "Specify where to store DHCP leases (defaults to %s)." + msgstr "Spesifiser hvor DHCP leiene skal lagres (standard er %s)." + +-#: option.c:348 ++#: option.c:363 + msgid "Return MX records for local hosts." + msgstr "Returner MX records for lokale verter." + +-#: option.c:349 ++#: option.c:364 + msgid "Specify an MX record." + msgstr "Spesifiser en MX post." + +-#: option.c:350 ++#: option.c:365 + msgid "Specify BOOTP options to DHCP server." + msgstr "Spesifiser BOOTP opsjoner til DHCP tjener." + +-#: option.c:351 ++#: option.c:366 + #, c-format + msgid "Do NOT poll %s file, reload only on SIGHUP." + msgstr "IKKE spør (poll) %s fil, les på nytt kun ved SIGHUP" + +-#: option.c:352 ++#: option.c:367 + msgid "Do NOT cache failed search results." + msgstr "IKKE mellomlagre søkeresultater som feiler." + +-#: option.c:353 ++#: option.c:368 + #, c-format + msgid "Use nameservers strictly in the order given in %s." + msgstr "Bruk navnetjenere kun som bestemt i rekkefølgen gitt i %s." + +-#: option.c:354 ++#: option.c:369 + #, fuzzy + msgid "Specify options to be sent to DHCP clients." + msgstr "Sett ekstra opsjoner som skal fordeles til DHCP klientene." + +-#: option.c:355 ++#: option.c:370 + msgid "DHCP option sent even if the client does not request it." + msgstr "" + +-#: option.c:356 ++#: option.c:371 + msgid "Specify port to listen for DNS requests on (defaults to 53)." + msgstr "Spesifiser lytteport for DNS oppslag (standard er 53)." + +-#: option.c:357 ++#: option.c:372 + #, c-format + msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)." + msgstr "Maksimal støttet UDP pakkestørrelse for EDNS.0 (standard er %s)." + +-#: option.c:358 ++#: option.c:373 + #, fuzzy + msgid "Log DNS queries." + msgstr "Logg oppslag." + +-#: option.c:359 ++#: option.c:374 + #, fuzzy + msgid "Force the originating port for upstream DNS queries." + msgstr "Tving bruk av opprinnelig port for oppstrøms oppslag." + +-#: option.c:360 ++#: option.c:375 + msgid "Do NOT read resolv.conf." + msgstr "IKKE les resolv.conf." + +-#: option.c:361 ++#: option.c:376 + #, c-format + msgid "Specify path to resolv.conf (defaults to %s)." + msgstr "Spesifiser stien til resolv.conf (standard er %s)." + +-#: option.c:362 ++#: option.c:377 + #, fuzzy + msgid "Specify path to file with server= options" + msgstr "Spesifiser stien til PID fil. (standard er %s)." + +-#: option.c:363 ++#: option.c:378 + msgid "Specify address(es) of upstream servers with optional domains." + msgstr "Spesifiser adressen(e) til oppstrøms tjenere med valgfrie domener." + +-#: option.c:364 ++#: option.c:379 + #, fuzzy + msgid "Specify address of upstream servers for reverse address queries" + msgstr "Spesifiser adressen(e) til oppstrøms tjenere med valgfrie domener." + +-#: option.c:365 ++#: option.c:380 + msgid "Never forward queries to specified domains." + msgstr "Aldri videresend oppslag til spesifiserte domener." + +-#: option.c:366 ++#: option.c:381 + msgid "Specify the domain to be assigned in DHCP leases." + msgstr "Spesifiser domenet som skal tildeles i DHCP leien." + +-#: option.c:367 ++#: option.c:382 + msgid "Specify default target in an MX record." + msgstr "Spesifiser default mål i en MX post." + +-#: option.c:368 ++#: option.c:383 + msgid "Specify time-to-live in seconds for replies from /etc/hosts." + msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts." + +-#: option.c:369 ++#: option.c:384 + #, fuzzy + msgid "Specify time-to-live in seconds for negative caching." + msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts." + +-#: option.c:370 ++#: option.c:385 + #, fuzzy + msgid "Specify time-to-live in seconds for maximum TTL to send to clients." + msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts." + +-#: option.c:371 ++#: option.c:386 ++#, fuzzy ++msgid "Specify time-to-live ceiling for cache." ++msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts." ++ ++#: option.c:387 ++#, fuzzy ++msgid "Specify time-to-live floor for cache." ++msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts." ++ ++#: option.c:388 + #, c-format + msgid "Change to this user after startup. (defaults to %s)." + msgstr "Skift til denne bruker etter oppstart (standard er %s)." + +-#: option.c:372 ++#: option.c:389 + #, fuzzy + msgid "Map DHCP vendor class to tag." + msgstr "Map DHCP produsent klasse til opsjon sett." + +-#: option.c:373 ++#: option.c:390 + msgid "Display dnsmasq version and copyright information." + msgstr "Vis dnsmasq versjon og copyright informasjon." + +-#: option.c:374 ++#: option.c:391 + msgid "Translate IPv4 addresses from upstream servers." + msgstr "Oversett IPv4 adresser fra oppstrøms tjenere." + +-#: option.c:375 ++#: option.c:392 + msgid "Specify a SRV record." + msgstr "Spesifiser en SRV post." + +-#: option.c:376 ++#: option.c:393 + msgid "Display this message. Use --help dhcp for known DHCP options." + msgstr "" + +-#: option.c:377 ++#: option.c:394 + #, fuzzy, c-format + msgid "Specify path of PID file (defaults to %s)." + msgstr "Spesifiser stien til PID fil. (standard er %s)." + +-#: option.c:378 ++#: option.c:395 + #, c-format + msgid "Specify maximum number of DHCP leases (defaults to %s)." + msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)" + +-#: option.c:379 ++#: option.c:396 + msgid "Answer DNS queries based on the interface a query was sent to." + msgstr "Svar DNS oppslag basert på nettverkskortet oppslaget ble sendt til." + +-#: option.c:380 ++#: option.c:397 + msgid "Specify TXT DNS record." + msgstr "Spesifiser TXT DNS post." + +-#: option.c:381 ++#: option.c:398 + #, fuzzy + msgid "Specify PTR DNS record." + msgstr "Spesifiser TXT DNS post." + +-#: option.c:382 ++#: option.c:399 + msgid "Give DNS name to IPv4 address of interface." + msgstr "" + +-#: option.c:383 ++#: option.c:400 + msgid "Bind only to interfaces in use." + msgstr "Bind kun til nettverkskort som er i bruk." + +-#: option.c:384 ++#: option.c:401 + #, c-format + msgid "Read DHCP static host information from %s." + msgstr "Les DHCP statisk vert informasjon fra %s." + +-#: option.c:385 ++#: option.c:402 + msgid "Enable the DBus interface for setting upstream servers, etc." + msgstr "Aktiver DBus interface for å sette oppstrøms tjenere, osv." + +-#: option.c:386 ++#: option.c:403 + msgid "Do not provide DHCP on this interface, only provide DNS." + msgstr "Ikke lever DHCP på dette nettverkskortet, kun lever DNS." + +-#: option.c:387 ++#: option.c:404 + msgid "Enable dynamic address allocation for bootp." + msgstr "Aktiver dynamisk adresse allokering for bootp." + +-#: option.c:388 ++#: option.c:405 + #, fuzzy + msgid "Map MAC address (with wildcards) to option set." + msgstr "Map DHCP produsent klasse til opsjon sett." + +-#: option.c:389 ++#: option.c:406 + msgid "Treat DHCP requests on aliases as arriving from interface." + msgstr "" + +-#: option.c:390 ++#: option.c:407 + msgid "Disable ICMP echo address checking in the DHCP server." + msgstr "" + +-#: option.c:391 ++#: option.c:408 + msgid "Shell script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:392 ++#: option.c:409 + msgid "Lua script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:393 ++#: option.c:410 + msgid "Run lease-change scripts as this user." + msgstr "" + +-#: option.c:394 ++#: option.c:411 + msgid "Read configuration from all the files in this directory." + msgstr "" + +-#: option.c:395 ++#: option.c:412 + #, fuzzy + msgid "Log to this syslog facility or file. (defaults to DAEMON)" + msgstr "Skift til denne bruker etter oppstart (standard er %s)." + +-#: option.c:396 ++#: option.c:413 + msgid "Do not use leasefile." + msgstr "" + +-#: option.c:397 ++#: option.c:414 + #, fuzzy, c-format + msgid "Maximum number of concurrent DNS queries. (defaults to %s)" + msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)" + +-#: option.c:398 ++#: option.c:415 + #, c-format + msgid "Clear DNS cache when reloading %s." + msgstr "" + +-#: option.c:399 ++#: option.c:416 + msgid "Ignore hostnames provided by DHCP clients." + msgstr "" + +-#: option.c:400 ++#: option.c:417 + msgid "Do NOT reuse filename and server fields for extra DHCP options." + msgstr "" + +-#: option.c:401 ++#: option.c:418 + msgid "Enable integrated read-only TFTP server." + msgstr "" + +-#: option.c:402 ++#: option.c:419 + msgid "Export files by TFTP only from the specified subtree." + msgstr "" + +-#: option.c:403 ++#: option.c:420 + msgid "Add client IP address to tftp-root." + msgstr "" + +-#: option.c:404 ++#: option.c:421 + msgid "Allow access only to files owned by the user running dnsmasq." + msgstr "" + +-#: option.c:405 ++#: option.c:422 + #, fuzzy, c-format + msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)." + msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)" + +-#: option.c:406 ++#: option.c:423 + msgid "Disable the TFTP blocksize extension." + msgstr "" + +-#: option.c:407 ++#: option.c:424 + msgid "Convert TFTP filenames to lowercase" + msgstr "" + +-#: option.c:408 ++#: option.c:425 + msgid "Ephemeral port range for use by TFTP transfers." + msgstr "" + +-#: option.c:409 ++#: option.c:426 + msgid "Extra logging for DHCP." + msgstr "" + +-#: option.c:410 ++#: option.c:427 + msgid "Enable async. logging; optionally set queue length." + msgstr "" + +-#: option.c:411 ++#: option.c:428 + msgid "Stop DNS rebinding. Filter private IP ranges when resolving." + msgstr "" + +-#: option.c:412 ++#: option.c:429 + msgid "Allow rebinding of 127.0.0.0/8, for RBL servers." + msgstr "" + +-#: option.c:413 ++#: option.c:430 + msgid "Inhibit DNS-rebind protection on this domain." + msgstr "" + +-#: option.c:414 ++#: option.c:431 + msgid "Always perform DNS queries to all servers." + msgstr "" + +-#: option.c:415 ++#: option.c:432 + msgid "Set tag if client includes matching option in request." + msgstr "" + +-#: option.c:416 ++#: option.c:433 + msgid "Use alternative ports for DHCP." + msgstr "" + +-#: option.c:417 ++#: option.c:434 + #, fuzzy + msgid "Specify NAPTR DNS record." + msgstr "Spesifiser TXT DNS post." + +-#: option.c:418 ++#: option.c:435 + msgid "Specify lowest port available for DNS query transmission." + msgstr "" + +-#: option.c:419 ++#: option.c:436 + msgid "Use only fully qualified domain names for DHCP clients." + msgstr "" + +-#: option.c:420 ++#: option.c:437 + msgid "Generate hostnames based on MAC address for nameless clients." + msgstr "" + +-#: option.c:421 ++#: option.c:438 + msgid "Use these DHCP relays as full proxies." + msgstr "" + +-#: option.c:422 ++#: option.c:439 + msgid "Relay DHCP requests to a remote server" + msgstr "" + +-#: option.c:423 ++#: option.c:440 + msgid "Specify alias name for LOCAL DNS name." + msgstr "" + +-#: option.c:424 ++#: option.c:441 + #, fuzzy + msgid "Prompt to send to PXE clients." + msgstr "Sett ekstra opsjoner som skal fordeles til DHCP klientene." + +-#: option.c:425 ++#: option.c:442 + msgid "Boot service for PXE menu." + msgstr "" + +-#: option.c:426 ++#: option.c:443 + msgid "Check configuration syntax." + msgstr "" + +-#: option.c:427 ++#: option.c:444 + msgid "Add requestor's MAC address to forwarded DNS queries." + msgstr "" + +-#: option.c:428 ++#: option.c:445 + msgid "Add requestor's IP subnet to forwarded DNS queries." + msgstr "" + +-#: option.c:429 ++#: option.c:446 + #, fuzzy + msgid "Proxy DNSSEC validation results from upstream nameservers." + msgstr "Oversett IPv4 adresser fra oppstrøms tjenere." + +-#: option.c:430 ++#: option.c:447 + msgid "Attempt to allocate sequential IP addresses to DHCP clients." + msgstr "" + +-#: option.c:431 ++#: option.c:448 + msgid "Copy connection-track mark from queries to upstream connections." + msgstr "" + +-#: option.c:432 ++#: option.c:449 + msgid "Allow DHCP clients to do their own DDNS updates." + msgstr "" + +-#: option.c:433 ++#: option.c:450 + msgid "Send router-advertisements for interfaces doing DHCPv6" + msgstr "" + +-#: option.c:434 ++#: option.c:451 + msgid "Specify DUID_EN-type DHCPv6 server DUID" + msgstr "" + +-#: option.c:435 ++#: option.c:452 + #, fuzzy + msgid "Specify host (A/AAAA and PTR) records" + msgstr "Spesifiser en MX post." + +-#: option.c:436 ++#: option.c:453 + #, fuzzy + msgid "Specify arbitrary DNS resource record" + msgstr "Spesifiser TXT DNS post." + +-#: option.c:437 ++#: option.c:454 + #, fuzzy + msgid "Bind to interfaces in use - check for new interfaces" + msgstr "ukjent tilknytning (interface) %s" + +-#: option.c:438 ++#: option.c:455 + msgid "Export local names to global DNS" + msgstr "" + +-#: option.c:439 ++#: option.c:456 + msgid "Domain to export to global DNS" + msgstr "" + +-#: option.c:440 ++#: option.c:457 + msgid "Set TTL for authoritative replies" + msgstr "" + +-#: option.c:441 ++#: option.c:458 + msgid "Set authoritive zone information" + msgstr "" + +-#: option.c:442 ++#: option.c:459 + msgid "Secondary authoritative nameservers for forward domains" + msgstr "" + +-#: option.c:443 ++#: option.c:460 + msgid "Peers which are allowed to do zone transfer" + msgstr "" + +-#: option.c:444 ++#: option.c:461 + msgid "Specify ipsets to which matching domains should be added" + msgstr "" + +-#: option.c:445 ++#: option.c:462 + msgid "Specify a domain and address range for synthesised names" + msgstr "" + +-#: option.c:446 ++#: option.c:463 + msgid "Activate DNSSEC validation" + msgstr "" + +-#: option.c:447 ++#: option.c:464 + msgid "Specify trust anchor key digest." + msgstr "" + +-#: option.c:448 ++#: option.c:465 + msgid "Disable upstream checking for DNSSEC debugging." + msgstr "" + +-#: option.c:449 ++#: option.c:466 + msgid "Ensure answers without DNSSEC are in unsigned zones." + msgstr "" + +-#: option.c:450 ++#: option.c:467 + msgid "Don't check DNSSEC signature timestamps until first cache-reload" + msgstr "" + +-#: option.c:452 ++#: option.c:468 ++msgid "Timestamp file to verify system clock for DNSSEC" ++msgstr "" ++ ++#: option.c:470 + msgid "Specify DHCPv6 prefix class" + msgstr "" + +-#: option.c:454 ++#: option.c:472 + msgid "Set priority, resend-interval and router-lifetime" + msgstr "" + +-#: option.c:455 ++#: option.c:473 + msgid "Do not log routine DHCP." + msgstr "" + +-#: option.c:456 ++#: option.c:474 + msgid "Do not log routine DHCPv6." + msgstr "" + +-#: option.c:457 ++#: option.c:475 + msgid "Do not log RA." + msgstr "" + +-#: option.c:458 ++#: option.c:476 + msgid "Accept queries only from directly-connected networks" + msgstr "" + +-#: option.c:459 ++#: option.c:477 + msgid "Detect and remove DNS forwarding loops" + msgstr "" + +-#: option.c:661 ++#: option.c:478 ++msgid "Ignore DNS responses containing ipaddr." ++msgstr "" ++ ++#: option.c:680 + #, c-format + msgid "" + "Usage: dnsmasq [options]\n" +@@ -722,332 +755,332 @@ msgstr "" + "Bruk: dnsmasq [opsjoner]\n" + "\n" + +-#: option.c:663 ++#: option.c:682 + #, c-format + msgid "Use short options only on the command line.\n" + msgstr "Bruk korte opsjoner kun på kommandolinjen.\n" + +-#: option.c:665 ++#: option.c:684 + #, fuzzy, c-format + msgid "Valid options are:\n" + msgstr "Gyldige opsjoner er :\n" + +-#: option.c:722 option.c:726 ++#: option.c:741 option.c:745 + msgid "bad port" + msgstr "dårlig port" + +-#: option.c:753 option.c:785 ++#: option.c:772 option.c:804 + msgid "interface binding not supported" + msgstr "" + +-#: option.c:762 option.c:3494 ++#: option.c:781 option.c:3570 + #, fuzzy + msgid "bad interface name" + msgstr "dårlig MX navn" + +-#: option.c:792 ++#: option.c:811 + #, fuzzy + msgid "bad address" + msgstr "les %s - %d adresser" + +-#: option.c:974 ++#: option.c:993 + msgid "unsupported encapsulation for IPv6 option" + msgstr "" + +-#: option.c:988 ++#: option.c:1007 + msgid "bad dhcp-option" + msgstr "dårlig dhcp-opsjon" + +-#: option.c:1056 ++#: option.c:1075 + #, fuzzy + msgid "bad IP address" + msgstr "les %s - %d adresser" + +-#: option.c:1059 option.c:1197 option.c:2812 ++#: option.c:1078 option.c:1216 option.c:2888 + #, fuzzy + msgid "bad IPv6 address" + msgstr "les %s - %d adresser" + +-#: option.c:1224 option.c:1318 ++#: option.c:1243 option.c:1337 + msgid "bad domain in dhcp-option" + msgstr "dårlig domene i dhcp-opsjon" + +-#: option.c:1356 ++#: option.c:1375 + msgid "dhcp-option too long" + msgstr "dhcp-opsjon for lang" + +-#: option.c:1363 ++#: option.c:1382 + msgid "illegal dhcp-match" + msgstr "" + +-#: option.c:1425 ++#: option.c:1444 + msgid "illegal repeated flag" + msgstr "" + +-#: option.c:1433 ++#: option.c:1452 + msgid "illegal repeated keyword" + msgstr "" + +-#: option.c:1495 option.c:4092 ++#: option.c:1517 option.c:4186 + #, fuzzy, c-format + msgid "cannot access directory %s: %s" + msgstr "kan ikke lese %s: %s" + +-#: option.c:1541 tftp.c:493 ++#: option.c:1563 tftp.c:493 + #, fuzzy, c-format + msgid "cannot access %s: %s" + msgstr "kan ikke lese %s: %s" + +-#: option.c:1588 ++#: option.c:1615 + msgid "setting log facility is not possible under Android" + msgstr "" + +-#: option.c:1597 ++#: option.c:1624 + msgid "bad log facility" + msgstr "" + +-#: option.c:1650 ++#: option.c:1677 + msgid "bad MX preference" + msgstr "dårlig MX preferanse" + +-#: option.c:1655 ++#: option.c:1682 + msgid "bad MX name" + msgstr "dårlig MX navn" + +-#: option.c:1669 ++#: option.c:1696 + msgid "bad MX target" + msgstr "dårlig MX mål" + +-#: option.c:1681 ++#: option.c:1708 + msgid "cannot run scripts under uClinux" + msgstr "" + +-#: option.c:1683 ++#: option.c:1710 + msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts" + msgstr "" + +-#: option.c:1687 ++#: option.c:1714 + msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts" + msgstr "" + +-#: option.c:1928 option.c:1966 option.c:2015 ++#: option.c:1970 option.c:2015 option.c:2071 + #, fuzzy + msgid "bad prefix" + msgstr "dårlig port" + +-#: option.c:2289 ++#: option.c:2352 + msgid "recompile with HAVE_IPSET defined to enable ipset directives" + msgstr "" + +-#: option.c:2469 ++#: option.c:2545 + #, fuzzy + msgid "bad port range" + msgstr "dårlig port" + +-#: option.c:2485 ++#: option.c:2561 + msgid "bad bridge-interface" + msgstr "" + +-#: option.c:2545 ++#: option.c:2621 + msgid "only one tag allowed" + msgstr "" + +-#: option.c:2565 option.c:2577 option.c:2683 option.c:2724 ++#: option.c:2641 option.c:2653 option.c:2759 option.c:2800 + msgid "bad dhcp-range" + msgstr "dårlig dhcp-område" + +-#: option.c:2592 ++#: option.c:2668 + msgid "inconsistent DHCP range" + msgstr "ikke konsistent DHCP område" + +-#: option.c:2651 ++#: option.c:2727 + msgid "prefix length must be exactly 64 for RA subnets" + msgstr "" + +-#: option.c:2653 ++#: option.c:2729 + msgid "prefix length must be exactly 64 for subnet constructors" + msgstr "" + +-#: option.c:2657 ++#: option.c:2733 + msgid "prefix length must be at least 64" + msgstr "" + +-#: option.c:2660 ++#: option.c:2736 + #, fuzzy + msgid "inconsistent DHCPv6 range" + msgstr "ikke konsistent DHCP område" + +-#: option.c:2671 ++#: option.c:2747 + msgid "prefix must be zero with \"constructor:\" argument" + msgstr "" + +-#: option.c:2782 option.c:2830 ++#: option.c:2858 option.c:2906 + #, fuzzy + msgid "bad hex constant" + msgstr "dårlig dhcp-vert" + +-#: option.c:2804 ++#: option.c:2880 + msgid "cannot match tags in --dhcp-host" + msgstr "" + +-#: option.c:2852 ++#: option.c:2928 + #, fuzzy, c-format + msgid "duplicate dhcp-host IP address %s" + msgstr "dubliserte IP adresser i %s dhcp-config direktiv." + +-#: option.c:2910 ++#: option.c:2986 + #, fuzzy + msgid "bad DHCP host name" + msgstr "dårlig MX navn" + +-#: option.c:2992 ++#: option.c:3068 + #, fuzzy + msgid "bad tag-if" + msgstr "dårlig MX mål" + +-#: option.c:3316 option.c:3710 ++#: option.c:3392 option.c:3786 + msgid "invalid port number" + msgstr "ugyldig portnummer" + +-#: option.c:3378 ++#: option.c:3454 + #, fuzzy + msgid "bad dhcp-proxy address" + msgstr "les %s - %d adresser" + +-#: option.c:3404 ++#: option.c:3480 + #, fuzzy + msgid "Bad dhcp-relay" + msgstr "dårlig dhcp-område" + +-#: option.c:3430 ++#: option.c:3506 + msgid "bad RA-params" + msgstr "" + +-#: option.c:3439 ++#: option.c:3515 + msgid "bad DUID" + msgstr "" + +-#: option.c:3481 ++#: option.c:3557 + #, fuzzy + msgid "invalid alias range" + msgstr "ugyldig vekt" + +-#: option.c:3535 ++#: option.c:3611 + msgid "bad CNAME" + msgstr "" + +-#: option.c:3540 ++#: option.c:3616 + msgid "duplicate CNAME" + msgstr "" + +-#: option.c:3560 ++#: option.c:3636 + #, fuzzy + msgid "bad PTR record" + msgstr "dårlig SRV post" + +-#: option.c:3591 ++#: option.c:3667 + #, fuzzy + msgid "bad NAPTR record" + msgstr "dårlig SRV post" + +-#: option.c:3625 ++#: option.c:3701 + #, fuzzy + msgid "bad RR record" + msgstr "dårlig SRV post" + +-#: option.c:3655 ++#: option.c:3731 + msgid "bad TXT record" + msgstr "dårlig TXT post" + +-#: option.c:3696 ++#: option.c:3772 + msgid "bad SRV record" + msgstr "dårlig SRV post" + +-#: option.c:3703 ++#: option.c:3779 + msgid "bad SRV target" + msgstr "dårlig SRV mål" + +-#: option.c:3717 ++#: option.c:3793 + msgid "invalid priority" + msgstr "ugyldig prioritet" + +-#: option.c:3724 ++#: option.c:3800 + msgid "invalid weight" + msgstr "ugyldig vekt" + +-#: option.c:3748 ++#: option.c:3824 + #, fuzzy + msgid "Bad host-record" + msgstr "dårlig SRV post" + +-#: option.c:3765 ++#: option.c:3841 + #, fuzzy + msgid "Bad name in host-record" + msgstr "dårlig navn i %s" + +-#: option.c:3826 ++#: option.c:3906 + #, fuzzy + msgid "bad trust anchor" + msgstr "dårlig port" + +-#: option.c:3840 ++#: option.c:3920 + msgid "bad HEX in trust anchor" + msgstr "" + +-#: option.c:3850 ++#: option.c:3930 + msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DNSSEC/DBus support)" + msgstr "" + +-#: option.c:3909 ++#: option.c:3989 + msgid "missing \"" + msgstr "mangler \"" + +-#: option.c:3966 ++#: option.c:4046 + msgid "bad option" + msgstr "dårlig opsjon" + +-#: option.c:3968 ++#: option.c:4048 + msgid "extraneous parameter" + msgstr "overflødig parameter" + +-#: option.c:3970 ++#: option.c:4050 + msgid "missing parameter" + msgstr "mangler parameter" + +-#: option.c:3972 ++#: option.c:4052 + #, fuzzy + msgid "illegal option" + msgstr "dårlig opsjon" + +-#: option.c:3979 ++#: option.c:4059 + msgid "error" + msgstr "feil" + +-#: option.c:3981 ++#: option.c:4061 + #, fuzzy, c-format + msgid " at line %d of %s" + msgstr "%s på linje %d av %%s" + +-#: option.c:4045 option.c:4168 tftp.c:667 +-#, c-format +-msgid "cannot read %s: %s" +-msgstr "kan ikke lese %s: %s" +- +-#: option.c:4229 option.c:4265 ++#: option.c:4076 option.c:4323 option.c:4359 + #, fuzzy, c-format + msgid "read %s" + msgstr "leser %s" + +-#: option.c:4331 ++#: option.c:4139 option.c:4262 tftp.c:667 ++#, c-format ++msgid "cannot read %s: %s" ++msgstr "kan ikke lese %s: %s" ++ ++#: option.c:4425 + msgid "junk found in command line" + msgstr "" + +-#: option.c:4366 ++#: option.c:4460 + #, c-format + msgid "Dnsmasq version %s %s\n" + msgstr "Dnsmasq versjon %s %s\n" + +-#: option.c:4367 ++#: option.c:4461 + #, fuzzy, c-format + msgid "" + "Compile time options: %s\n" +@@ -1056,89 +1089,89 @@ msgstr "" + "Kompileringsopsjoner %s\n" + "\n" + +-#: option.c:4368 ++#: option.c:4462 + #, c-format + msgid "This software comes with ABSOLUTELY NO WARRANTY.\n" + msgstr "Denne programvaren kommer med ABSOLUTT INGEN GARANTI.\n" + +-#: option.c:4369 ++#: option.c:4463 + #, c-format + msgid "Dnsmasq is free software, and you are welcome to redistribute it\n" + msgstr "DNsmasq er fri programvare, du er velkommen til å redistribuere den\n" + +-#: option.c:4370 ++#: option.c:4464 + #, fuzzy, c-format + msgid "under the terms of the GNU General Public License, version 2 or 3.\n" + msgstr "under vilkårene gitt i GNU General Public License, versjon 2.\n" + +-#: option.c:4381 ++#: option.c:4475 + msgid "try --help" + msgstr "" + +-#: option.c:4383 ++#: option.c:4477 + msgid "try -w" + msgstr "" + +-#: option.c:4385 ++#: option.c:4479 + #, fuzzy, c-format + msgid "bad command line options: %s" + msgstr "dårlige kommandlinje opsjoner: %s." + +-#: option.c:4434 ++#: option.c:4535 + #, c-format + msgid "cannot get host-name: %s" + msgstr "klarer ikke å få vertsnavn: %s" + +-#: option.c:4462 ++#: option.c:4563 + msgid "only one resolv.conf file allowed in no-poll mode." + msgstr "kun en resolv.conf fil tillat i no-poll modus." + +-#: option.c:4472 ++#: option.c:4573 + msgid "must have exactly one resolv.conf to read domain from." + msgstr "må ha nøyaktig en resolv.conf å lese domene fra." + +-#: option.c:4475 network.c:1506 dhcp.c:769 ++#: option.c:4576 network.c:1506 dhcp.c:774 + #, fuzzy, c-format + msgid "failed to read %s: %s" + msgstr "feilet å lese %s: %s" + +-#: option.c:4492 ++#: option.c:4593 + #, c-format + msgid "no search directive found in %s" + msgstr "intet søke direktiv funnet i %s" + +-#: option.c:4513 ++#: option.c:4614 + msgid "there must be a default domain when --dhcp-fqdn is set" + msgstr "" + +-#: option.c:4522 ++#: option.c:4623 + msgid "syntax check OK" + msgstr "" + +-#: forward.c:114 ++#: forward.c:111 + #, fuzzy, c-format + msgid "failed to send packet: %s" + msgstr "feilet å lytte på socket: %s" + +-#: forward.c:574 ++#: forward.c:572 + msgid "discarding DNS reply: subnet option mismatch" + msgstr "" + +-#: forward.c:597 ++#: forward.c:595 + #, c-format + msgid "nameserver %s refused to do a recursive query" + msgstr "navnetjener %s nektet å gjøre et rekursivt oppslag" + +-#: forward.c:629 ++#: forward.c:627 + #, c-format + msgid "possible DNS-rebind attack detected: %s" + msgstr "" + +-#: forward.c:1132 forward.c:1663 ++#: forward.c:1156 forward.c:1722 + msgid "Ignoring query from non-local network" + msgstr "" + +-#: forward.c:2101 ++#: forward.c:2178 + #, fuzzy, c-format + msgid "Maximum number of concurrent DNS queries reached (max: %d)" + msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)" +@@ -1228,270 +1261,283 @@ msgstr "benytter navnetjener %s#%d" + msgid "using nameserver %s#%d" + msgstr "benytter navnetjener %s#%d" + +-#: dnsmasq.c:154 +-msgid "No trust anchors provided for DNSSEC" ++#: dnsmasq.c:149 ++msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" + msgstr "" + +-#: dnsmasq.c:157 +-msgid "Cannot reduce cache size from default when DNSSEC enabled" ++#: dnsmasq.c:156 ++msgid "no trust anchors provided for DNSSEC" + msgstr "" + + #: dnsmasq.c:159 ++msgid "cannot reduce cache size from default when DNSSEC enabled" ++msgstr "" ++ ++#: dnsmasq.c:161 + #, fuzzy + msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h" + msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h" + +-#: dnsmasq.c:165 ++#: dnsmasq.c:167 + #, fuzzy + msgid "TFTP server not available: set HAVE_TFTP in src/config.h" + msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h" + +-#: dnsmasq.c:170 +-msgid "Cannot use --conntrack AND --query-port" ++#: dnsmasq.c:172 ++msgid "cannot use --conntrack AND --query-port" + msgstr "" + +-#: dnsmasq.c:173 ++#: dnsmasq.c:175 + #, fuzzy +-msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h" ++msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" + msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h" + +-#: dnsmasq.c:178 ++#: dnsmasq.c:180 + msgid "asychronous logging is not available under Solaris" + msgstr "" + +-#: dnsmasq.c:183 ++#: dnsmasq.c:185 + msgid "asychronous logging is not available under Android" + msgstr "" + +-#: dnsmasq.c:188 ++#: dnsmasq.c:190 + #, fuzzy + msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h" + msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h" + +-#: dnsmasq.c:193 ++#: dnsmasq.c:195 + #, fuzzy +-msgid "Loop detection not available: set HAVE_LOOP in src/config.h" ++msgid "loop detection not available: set HAVE_LOOP in src/config.h" + msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h" + +-#: dnsmasq.c:201 ++#: dnsmasq.c:203 + msgid "zone serial must be configured in --auth-soa" + msgstr "" + +-#: dnsmasq.c:219 ++#: dnsmasq.c:221 + msgid "dhcp-range constructor not available on this platform" + msgstr "" + +-#: dnsmasq.c:262 ++#: dnsmasq.c:264 + msgid "cannot set --bind-interfaces and --bind-dynamic" + msgstr "" + +-#: dnsmasq.c:265 ++#: dnsmasq.c:267 + #, c-format + msgid "failed to find list of interfaces: %s" + msgstr "feilet å finne liste av tilknytninger (interfaces): %s" + +-#: dnsmasq.c:274 ++#: dnsmasq.c:276 + #, c-format + msgid "unknown interface %s" + msgstr "ukjent tilknytning (interface) %s" + +-#: dnsmasq.c:330 dnsmasq.c:954 ++#: dnsmasq.c:340 dnsmasq.c:1004 + #, c-format + msgid "DBus error: %s" + msgstr "DBus feil: %s" + +-#: dnsmasq.c:333 ++#: dnsmasq.c:343 + msgid "DBus not available: set HAVE_DBUS in src/config.h" + msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h" + +-#: dnsmasq.c:361 ++#: dnsmasq.c:371 + #, c-format + msgid "unknown user or group: %s" + msgstr "" + +-#: dnsmasq.c:416 ++#: dnsmasq.c:426 + #, c-format + msgid "cannot chdir to filesystem root: %s" + msgstr "" + +-#: dnsmasq.c:653 ++#: dnsmasq.c:667 + #, fuzzy, c-format + msgid "started, version %s DNS disabled" + msgstr "startet, versjon %s mellomlager deaktivert" + +-#: dnsmasq.c:655 ++#: dnsmasq.c:669 + #, c-format + msgid "started, version %s cachesize %d" + msgstr "startet, versjon %s mellomlager størrelse %d" + +-#: dnsmasq.c:657 ++#: dnsmasq.c:671 + #, c-format + msgid "started, version %s cache disabled" + msgstr "startet, versjon %s mellomlager deaktivert" + +-#: dnsmasq.c:659 ++#: dnsmasq.c:673 + #, c-format + msgid "compile time options: %s" + msgstr "kompilerings opsjoner: %s" + +-#: dnsmasq.c:665 ++#: dnsmasq.c:679 + msgid "DBus support enabled: connected to system bus" + msgstr "DBus støtte aktivert: koblet til system buss" + +-#: dnsmasq.c:667 ++#: dnsmasq.c:681 + msgid "DBus support enabled: bus connection pending" + msgstr "DBus støtte aktivert: avventer buss tilkobling" + +-#: dnsmasq.c:672 ++#: dnsmasq.c:686 + msgid "DNS service limited to local subnets" + msgstr "" + +-#: dnsmasq.c:677 ++#: dnsmasq.c:702 + msgid "DNSSEC validation enabled" + msgstr "" + +-#: dnsmasq.c:679 ++#: dnsmasq.c:705 + msgid "DNSSEC signature timestamps not checked until first cache reload" + msgstr "" + +-#: dnsmasq.c:684 ++#: dnsmasq.c:708 ++msgid "DNSSEC signature timestamps not checked until system time valid" ++msgstr "" ++ ++#: dnsmasq.c:713 + #, fuzzy, c-format + msgid "warning: failed to change owner of %s: %s" + msgstr "feilet å laste navn fra %s: %s" + +-#: dnsmasq.c:688 ++#: dnsmasq.c:717 + msgid "setting --bind-interfaces option because of OS limitations" + msgstr "setter --bind-interfaces opsjon på grunn av OS begrensninger" + +-#: dnsmasq.c:698 ++#: dnsmasq.c:727 + #, c-format + msgid "warning: interface %s does not currently exist" + msgstr "advarsel: nettverkskort %s eksisterer ikke for tiden" + +-#: dnsmasq.c:703 ++#: dnsmasq.c:732 + msgid "warning: ignoring resolv-file flag because no-resolv is set" + msgstr "" + +-#: dnsmasq.c:706 ++#: dnsmasq.c:735 + #, fuzzy + msgid "warning: no upstream servers configured" + msgstr "setter oppstrøms tjener fra DBus" + +-#: dnsmasq.c:710 ++#: dnsmasq.c:739 + #, c-format + msgid "asynchronous logging enabled, queue limit is %d messages" + msgstr "" + +-#: dnsmasq.c:731 ++#: dnsmasq.c:760 + msgid "IPv6 router advertisement enabled" + msgstr "" + +-#: dnsmasq.c:736 ++#: dnsmasq.c:765 + #, c-format + msgid "DHCP, sockets bound exclusively to interface %s" + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "root is " + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + #, fuzzy + msgid "enabled" + msgstr "deaktivert" + +-#: dnsmasq.c:755 ++#: dnsmasq.c:784 + msgid "secure mode" + msgstr "" + +-#: dnsmasq.c:781 ++#: dnsmasq.c:810 + #, c-format + msgid "restricting maximum simultaneous TFTP transfers to %d" + msgstr "" + +-#: dnsmasq.c:956 ++#: dnsmasq.c:1006 + msgid "connected to system DBus" + msgstr "tilkoblet til system DBus" + +-#: dnsmasq.c:1106 ++#: dnsmasq.c:1156 + #, c-format + msgid "cannot fork into background: %s" + msgstr "" + +-#: dnsmasq.c:1109 ++#: dnsmasq.c:1159 + #, fuzzy, c-format + msgid "failed to create helper: %s" + msgstr "feilet å lese %s: %s" + +-#: dnsmasq.c:1112 ++#: dnsmasq.c:1162 + #, c-format + msgid "setting capabilities failed: %s" + msgstr "" + +-#: dnsmasq.c:1115 ++#: dnsmasq.c:1165 + #, fuzzy, c-format + msgid "failed to change user-id to %s: %s" + msgstr "feilet å laste navn fra %s: %s" + +-#: dnsmasq.c:1118 ++#: dnsmasq.c:1168 + #, fuzzy, c-format + msgid "failed to change group-id to %s: %s" + msgstr "feilet å laste navn fra %s: %s" + +-#: dnsmasq.c:1121 ++#: dnsmasq.c:1171 + #, fuzzy, c-format + msgid "failed to open pidfile %s: %s" + msgstr "feilet å lese %s: %s" + +-#: dnsmasq.c:1124 ++#: dnsmasq.c:1174 + #, fuzzy, c-format + msgid "cannot open log %s: %s" + msgstr "kan ikke åpne %s:%s" + +-#: dnsmasq.c:1127 ++#: dnsmasq.c:1177 + #, fuzzy, c-format + msgid "failed to load Lua script: %s" + msgstr "feilet å laste %s: %s" + +-#: dnsmasq.c:1130 ++#: dnsmasq.c:1180 + #, c-format + msgid "TFTP directory %s inaccessible: %s" + msgstr "" + +-#: dnsmasq.c:1151 ++#: dnsmasq.c:1183 ++#, fuzzy, c-format ++msgid "cannot create timestamp file %s: %s" ++msgstr "kan ikke åpne eller lage leie fil: %s" ++ ++#: dnsmasq.c:1204 + msgid "now checking DNSSEC signature timestamps" + msgstr "" + +-#: dnsmasq.c:1218 ++#: dnsmasq.c:1271 + #, c-format + msgid "script process killed by signal %d" + msgstr "" + +-#: dnsmasq.c:1222 ++#: dnsmasq.c:1275 + #, c-format + msgid "script process exited with status %d" + msgstr "" + +-#: dnsmasq.c:1226 ++#: dnsmasq.c:1279 + #, fuzzy, c-format + msgid "failed to execute %s: %s" + msgstr "feilet å få tilgang til %s: %s" + +-#: dnsmasq.c:1281 ++#: dnsmasq.c:1334 + msgid "exiting on receipt of SIGTERM" + msgstr "avslutter etter mottak av SIGTERM" + +-#: dnsmasq.c:1309 ++#: dnsmasq.c:1362 + #, fuzzy, c-format + msgid "failed to access %s: %s" + msgstr "feilet å få tilgang til %s: %s" + +-#: dnsmasq.c:1339 ++#: dnsmasq.c:1392 + #, c-format + msgid "reading %s" + msgstr "leser %s" + +-#: dnsmasq.c:1350 ++#: dnsmasq.c:1403 + #, fuzzy, c-format + msgid "no servers found in %s, will retry" + msgstr "intet søke direktiv funnet i %s" +@@ -1531,27 +1577,27 @@ msgstr "ukjent tilknytning (interface) %s" + msgid "DHCP packet received on %s which has no address" + msgstr "" + +-#: dhcp.c:408 ++#: dhcp.c:412 + #, c-format + msgid "ARP-cache injection failed: %s" + msgstr "" + +-#: dhcp.c:506 ++#: dhcp.c:511 + #, c-format + msgid "DHCP range %s -- %s is not consistent with netmask %s" + msgstr "DHCP område %s -- %s er ikke konsistent med nettmaske %s" + +-#: dhcp.c:807 ++#: dhcp.c:812 + #, c-format + msgid "bad line at %s line %d" + msgstr "dårlig linje ved %s linje %d" + +-#: dhcp.c:850 ++#: dhcp.c:855 + #, c-format + msgid "ignoring %s line %d, duplicate name or IP address" + msgstr "" + +-#: dhcp.c:994 rfc3315.c:2089 ++#: dhcp.c:999 rfc3315.c:2139 + #, c-format + msgid "DHCP relay %s -> %s" + msgstr "" +@@ -1622,12 +1668,12 @@ msgstr "DBus feil: %s" + msgid "disabled" + msgstr "deaktivert" + +-#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:602 rfc3315.c:823 +-#: rfc3315.c:1095 ++#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:603 rfc3315.c:860 ++#: rfc3315.c:1139 + msgid "ignored" + msgstr "oversett" + +-#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:873 ++#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:910 + msgid "address in use" + msgstr "adresse i bruk" + +@@ -1647,7 +1693,7 @@ msgstr "ingen adresse konfigurert" + msgid "no leases left" + msgstr "ingen leier igjen" + +-#: rfc2131.c:691 rfc3315.c:475 ++#: rfc2131.c:691 rfc3315.c:476 + #, c-format + msgid "%u client provides name: %s" + msgstr "" +@@ -1656,7 +1702,7 @@ msgstr "" + msgid "PXE BIS not supported" + msgstr "" + +-#: rfc2131.c:935 rfc3315.c:1189 ++#: rfc2131.c:935 rfc3315.c:1233 + #, fuzzy, c-format + msgid "disabling DHCP static address %s for %s" + msgstr "deaktiverer DHCP statisk adresse %s" +@@ -1692,7 +1738,7 @@ msgstr "" + msgid "wrong address" + msgstr "gal adresse" + +-#: rfc2131.c:1143 rfc3315.c:969 ++#: rfc2131.c:1143 rfc3315.c:1006 + msgid "lease not found" + msgstr "leie ikke funnet" + +@@ -1742,7 +1788,7 @@ msgstr "kan ikke sende DHCP opsjon %d: ikke mer plass i pakken" + msgid "PXE menu too large" + msgstr "" + +-#: rfc2131.c:2173 rfc3315.c:1456 ++#: rfc2131.c:2173 rfc3315.c:1506 + #, fuzzy, c-format + msgid "%u requested options: %s" + msgstr "kompilerings opsjoner: %s" +@@ -1757,7 +1803,7 @@ msgstr "" + msgid "cannot create netlink socket: %s" + msgstr "kan ikke binde netlink socket: %s" + +-#: netlink.c:347 ++#: netlink.c:348 + #, fuzzy, c-format + msgid "netlink returns error: %s" + msgstr "DBus feil: %s" +@@ -1875,66 +1921,66 @@ msgstr "ingen adresse omr + msgid "%u available DHCPv6 subnet: %s/%d" + msgstr "ingen adresse område tilgjengelig for DHCP krav %s %s" + +-#: rfc3315.c:379 ++#: rfc3315.c:380 + #, fuzzy, c-format + msgid "%u vendor class: %u" + msgstr "DBus feil: %s" + +-#: rfc3315.c:427 ++#: rfc3315.c:428 + #, fuzzy, c-format + msgid "%u client MAC address: %s" + msgstr "ingen tilknytning (interface) med adresse %s" + +-#: rfc3315.c:659 ++#: rfc3315.c:660 + #, fuzzy, c-format + msgid "unknown prefix-class %d" + msgstr "ukjent leie" + +-#: rfc3315.c:791 rfc3315.c:913 ++#: rfc3315.c:803 rfc3315.c:902 ++#, fuzzy ++msgid "address unavailable" ++msgstr "adresse ikke tilgjengelig" ++ ++#: rfc3315.c:815 rfc3315.c:950 rfc3315.c:1283 + msgid "success" + msgstr "" + +-#: rfc3315.c:806 rfc3315.c:808 rfc3315.c:921 rfc3315.c:923 ++#: rfc3315.c:843 rfc3315.c:845 rfc3315.c:958 rfc3315.c:960 + #, fuzzy + msgid "no addresses available" + msgstr "ingen adresse tilgjengelig" + +-#: rfc3315.c:865 +-#, fuzzy +-msgid "address unavailable" +-msgstr "adresse ikke tilgjengelig" +- +-#: rfc3315.c:900 ++#: rfc3315.c:937 + msgid "not on link" + msgstr "" + +-#: rfc3315.c:973 rfc3315.c:1151 rfc3315.c:1228 ++#: rfc3315.c:1010 rfc3315.c:1195 rfc3315.c:1272 + msgid "no binding found" + msgstr "" + +-#: rfc3315.c:1011 ++#: rfc3315.c:1048 + msgid "deprecated" + msgstr "" + +-#: rfc3315.c:1016 ++#: rfc3315.c:1053 + #, fuzzy + msgid "address invalid" + msgstr "adresse i bruk" + +-#: rfc3315.c:1061 ++#: rfc3315.c:1100 + msgid "confirm failed" + msgstr "" + +-#: rfc3315.c:1072 ++#: rfc3315.c:1116 + #, fuzzy + msgid "all addresses still on link" + msgstr "dårlig adresse ved %s linje %d" + +-#: rfc3315.c:1160 ++#: rfc3315.c:1204 + msgid "release received" + msgstr "" + +-#: rfc3315.c:2080 ++#: rfc3315.c:2130 + msgid "Cannot multicast to DHCPv6 server without correct interface" + msgstr "" + +@@ -2027,7 +2073,7 @@ msgstr "" + msgid "cannot create ICMPv6 socket: %s" + msgstr "kan ikke lage DHCP socket: %s" + +-#: auth.c:429 ++#: auth.c:436 + #, c-format + msgid "ignoring zone transfer request from %s" + msgstr "" +@@ -2042,54 +2088,89 @@ msgstr "feilet + msgid "failed to create IPset control socket: %s" + msgstr "feilet å lage lytte socket: %s" + ++#: dnssec.c:425 dnssec.c:469 ++#, fuzzy, c-format ++msgid "failed to update mtime on %s: %s" ++msgstr "feilet å lese %s: %s" ++ + #: blockdata.c:58 + #, c-format + msgid "DNSSEC memory in use %u, max %u, allocated %u" + msgstr "" + +-#: tables.c:76 ++#: tables.c:80 + msgid "error: fill_addr missused" + msgstr "" + +-#: tables.c:105 ++#: tables.c:109 + #, fuzzy, c-format + msgid "failed to access pf devices: %s" + msgstr "feilet å få tilgang til %s: %s" + +-#: tables.c:119 ++#: tables.c:123 + #, fuzzy, c-format + msgid "warning: no opened pf devices %s" + msgstr "benytter lokale adresser kun for %s %s" + +-#: tables.c:127 ++#: tables.c:131 + #, fuzzy, c-format + msgid "error: cannot use table name %s" + msgstr "klarer ikke å få vertsnavn: %s" + +-#: tables.c:135 ++#: tables.c:139 + #, c-format + msgid "error: cannot strlcpy table name %s" + msgstr "" + +-#: tables.c:141 ++#: tables.c:145 + #, c-format + msgid "warning: pfr_add_tables: %s(%d)" + msgstr "" + +-#: tables.c:147 ++#: tables.c:151 + msgid "info: table created" + msgstr "" + +-#: tables.c:158 ++#: tables.c:162 + #, c-format + msgid "warning: DIOCR%sADDRS: %s" + msgstr "" + +-#: tables.c:162 ++#: tables.c:166 + #, fuzzy, c-format + msgid "%d addresses %s" + msgstr "les %s - %d adresser" + ++#: inotify.c:46 ++#, fuzzy, c-format ++msgid "failed to create inotify: %s" ++msgstr "feilet å lese %s: %s" ++ ++#: inotify.c:60 ++#, fuzzy, c-format ++msgid "cannot cannonicalise resolv-file %s: %s" ++msgstr "kan ikke åpne eller lage leie fil: %s" ++ ++#: inotify.c:72 ++#, c-format ++msgid "directory %s for resolv-file is missing, cannot poll" ++msgstr "" ++ ++#: inotify.c:75 inotify.c:112 ++#, fuzzy, c-format ++msgid "failed to create inotify for %s: %s" ++msgstr "feilet å lage lytte socket: %s" ++ ++#: inotify.c:97 ++#, fuzzy, c-format ++msgid "bad dynamic directory %s: %s" ++msgstr "kan ikke lese %s: %s" ++ ++#: inotify.c:197 ++#, c-format ++msgid "inotify, new or changed file %s" ++msgstr "" ++ + #~ msgid "duplicate IP address %s in dhcp-config directive." + #~ msgstr "dubliserte IP adresser i %s dhcp-config direktiv." + +diff --git a/po/pl.po b/po/pl.po +index 705f1779390f..362e41226644 100644 +--- a/po/pl.po ++++ b/po/pl.po +@@ -21,70 +21,70 @@ msgstr "" + "X-Generator: Poedit 1.6.9\n" + "X-Language: pl_PL\n" + +-#: cache.c:505 ++#: cache.c:523 + msgid "Internal error in cache." + msgstr "WewnÄ™trzny błąd w pamiÄ™ci podrÄ™cznej." + +-#: cache.c:908 ++#: cache.c:941 + #, c-format + msgid "failed to load names from %s: %s" + msgstr "nie potrafiÄ™ wczytać nazw z %s: %s" + +-#: cache.c:934 dhcp.c:820 ++#: cache.c:967 dhcp.c:825 + #, c-format + msgid "bad address at %s line %d" + msgstr "błędny adres w pliku %s, w linii %d" + +-#: cache.c:985 dhcp.c:836 ++#: cache.c:1018 dhcp.c:841 + #, c-format + msgid "bad name at %s line %d" + msgstr "błędna nazwa w pliku %s, w linii %d" + +-#: cache.c:992 dhcp.c:911 ++#: cache.c:1027 dhcp.c:916 + #, c-format + msgid "read %s - %d addresses" + msgstr "wczytaÅ‚em %s - %d adresów" + +-#: cache.c:1100 ++#: cache.c:1135 + msgid "cleared cache" + msgstr "wyczyszczono pamięć podrÄ™cznÄ…" + +-#: cache.c:1123 ++#: cache.c:1164 + #, c-format + msgid "No IPv4 address found for %s" + msgstr "Nie znalazÅ‚em adresu IPv4 komputera %s" + +-#: cache.c:1201 ++#: cache.c:1242 + #, c-format + msgid "%s is a CNAME, not giving it to the DHCP lease of %s" + msgstr "%s to nazwa CNAME, nie przypisujÄ™ jej dzierżawie DHCP %s" + +-#: cache.c:1225 ++#: cache.c:1266 + #, c-format + msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s" + msgstr "nazwa %s nie zostaÅ‚a nadana dzierżawie DHCP %s, ponieważ nazwa istnieje w %s i ma już adres %s" + +-#: cache.c:1366 ++#: cache.c:1421 + #, c-format + msgid "time %lu" + msgstr "czas %lu" + +-#: cache.c:1367 ++#: cache.c:1422 + #, c-format + msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries." + msgstr "wielkość pamiÄ™ci podrÄ™cznej: %d; %d z %d miejsc aktualnych wpisów użyto ponownie." + +-#: cache.c:1369 ++#: cache.c:1424 + #, c-format + msgid "queries forwarded %u, queries answered locally %u" + msgstr "%u zapytaÅ„ przesÅ‚anych dalej, %u odpowiedzi udzielonych samodzielnie" + +-#: cache.c:1372 ++#: cache.c:1427 + #, c-format + msgid "queries for authoritative zones %u" + msgstr "zapytaÅ„ do stref autorytatywnych %u" + +-#: cache.c:1398 ++#: cache.c:1453 + #, c-format + msgid "server %s#%d: queries sent %u, retried or failed %u" + msgstr "serwer %s#%d: %u zapytaÅ„ wysÅ‚anych, %u ponowionych lub nieudanych" +@@ -98,7 +98,7 @@ msgstr "brak możliwoÅ›ci użycia generatora liczb losowych: %s" + msgid "failed to allocate memory" + msgstr "nie udaÅ‚o siÄ™ przydzielić pamiÄ™ci" + +-#: util.c:243 option.c:579 ++#: util.c:243 option.c:598 + msgid "could not get memory" + msgstr "nie można dostać pamiÄ™ci" + +@@ -112,589 +112,622 @@ msgstr "błąd podczas próby utworzenia potoku: %s" + msgid "failed to allocate %d bytes" + msgstr "niemożliwość przydzielenia %d bajtów pamiÄ™ci" + +-#: util.c:429 ++#: util.c:430 + #, c-format + msgid "infinite" + msgstr "nieskoÅ„czona" + +-#: option.c:318 ++#: option.c:330 + msgid "Specify local address(es) to listen on." + msgstr "Wskazanie adresów, na których należy nasÅ‚uchiwać." + +-#: option.c:319 ++#: option.c:331 + msgid "Return ipaddr for all hosts in specified domains." + msgstr "Zwracanie adresu IP dla wszystkich hostów we wskazanych domenach." + +-#: option.c:320 ++#: option.c:332 + msgid "Fake reverse lookups for RFC1918 private address ranges." + msgstr "Wyłączenie przekazywania zapytaÅ„ odwrotnych dla prywatnych zakresów IP." + +-#: option.c:321 ++#: option.c:333 + msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)." + msgstr "Traktowanie adresu IP jako NXDOMAIN (unieważnia ,,Verisign wildcard'')." + +-#: option.c:322 ++#: option.c:334 + #, c-format + msgid "Specify the size of the cache in entries (defaults to %s)." + msgstr "Wskazanie wielkoÅ›ci pamiÄ™ci podrÄ™cznej (domyÅ›lnie: %s miejsc)." + +-#: option.c:323 ++#: option.c:335 + #, c-format + msgid "Specify configuration file (defaults to %s)." + msgstr "Wskazanie pliku konfiguracyjnego (domyÅ›lnie: %s)." + +-#: option.c:324 ++#: option.c:336 + msgid "Do NOT fork into the background: run in debug mode." + msgstr "NIE twórz procesu potomnego w tle: dziaÅ‚anie w trybie debugowania." + +-#: option.c:325 ++#: option.c:337 + msgid "Do NOT forward queries with no domain part." + msgstr "Wyłączenie przekazywania zapytaÅ„ bez podanej części domenowej." + +-#: option.c:326 ++#: option.c:338 + msgid "Return self-pointing MX records for local hosts." + msgstr "Zwracanie samowskazujÄ…cego rekordu MX dla lokalnych hostów." + +-#: option.c:327 ++#: option.c:339 + msgid "Expand simple names in /etc/hosts with domain-suffix." + msgstr "Rozwijanie prostych nazw z /etc/hosts przyrostkiem domenowym." + +-#: option.c:328 ++#: option.c:340 + msgid "Don't forward spurious DNS requests from Windows hosts." + msgstr "Wyłączenie przekazywania pozornych zapytaÅ„ DNS z komputerów dziaÅ‚ajÄ…cych pod Windows." + +-#: option.c:329 ++#: option.c:341 + msgid "Enable DHCP in the range given with lease duration." + msgstr "Włączenie serwera DHCP dla wskazanego zakresu adresów." + +-#: option.c:330 ++#: option.c:342 + #, c-format + msgid "Change to this group after startup (defaults to %s)." + msgstr "Po uruchomieniu zmiana grupy procesu na podanÄ… (domyÅ›lnie: %s)." + +-#: option.c:331 ++#: option.c:343 + msgid "Set address or hostname for a specified machine." + msgstr "Ustawienie adresu lub nazwy dla wskazanego komputera." + +-#: option.c:332 ++#: option.c:344 + msgid "Read DHCP host specs from file." + msgstr "Wskazanie pliku z wartoÅ›ciami 'dhcp-host='." + +-#: option.c:333 ++#: option.c:345 + msgid "Read DHCP option specs from file." + msgstr "Wskazanie pliku z wartoÅ›ciami 'dhcp-option='." + +-#: option.c:334 ++#: option.c:346 ++#, fuzzy ++msgid "Read DHCP host specs from a directory." ++msgstr "Wskazanie pliku z wartoÅ›ciami 'dhcp-host='." ++ ++#: option.c:347 ++#, fuzzy ++msgid "Read DHCP options from a directory." ++msgstr "Wskazanie pliku z wartoÅ›ciami 'dhcp-option='." ++ ++#: option.c:348 + msgid "Evaluate conditional tag expression." + msgstr "Warunkowe ustawianie znaczników." + +-#: option.c:335 ++#: option.c:349 + #, c-format + msgid "Do NOT load %s file." + msgstr "NIE wczytywanie pliku %s." + +-#: option.c:336 ++#: option.c:350 + #, c-format + msgid "Specify a hosts file to be read in addition to %s." + msgstr "Wskazanie dodatkowego pliku 'hosts' oprócz %s." + +-#: option.c:337 ++#: option.c:351 ++#, fuzzy ++msgid "Read hosts files from a directory." ++msgstr "Wskazanie pliku z wartoÅ›ciami 'dhcp-host='." ++ ++#: option.c:352 + msgid "Specify interface(s) to listen on." + msgstr "Interfejsy, na których nasÅ‚uchiwać." + +-#: option.c:338 ++#: option.c:353 + msgid "Specify interface(s) NOT to listen on." + msgstr "Interfejsy, na których NIE nasÅ‚uchiwać." + +-#: option.c:339 ++#: option.c:354 + msgid "Map DHCP user class to tag." + msgstr "PrzyporzÄ…dkowanie znacznika w zależnoÅ›ci od klasy użytkownika DHCP." + +-#: option.c:340 ++#: option.c:355 + msgid "Map RFC3046 circuit-id to tag." + msgstr "PrzyporzÄ…dkowanie znacznika w zależnoÅ›ci od numeru obwodu (w rozumieniu RFC3046)." + +-#: option.c:341 ++#: option.c:356 + msgid "Map RFC3046 remote-id to tag." + msgstr "PrzyporzÄ…dkowanie znacznika w zależnoÅ›ci od numeru agenta (w rozumieniu RFC3046)." + +-#: option.c:342 ++#: option.c:357 + msgid "Map RFC3993 subscriber-id to tag." + msgstr "PrzyporzÄ…dkowanie znacznika w zależnoÅ›ci od numeru subskrybenta (w rozumieniu RFC3993)." + +-#: option.c:343 ++#: option.c:358 + msgid "Don't do DHCP for hosts with tag set." + msgstr "Wyłączenie DHCP dla hostów z okreÅ›lonym znacznikiem." + +-#: option.c:344 ++#: option.c:359 + msgid "Force broadcast replies for hosts with tag set." + msgstr "Wymuszenie odpowiedzi w trybie rozgÅ‚oszeniowym dla hostów z okreÅ›lonym znacznikiem." + +-#: option.c:345 ++#: option.c:360 + msgid "Do NOT fork into the background, do NOT run in debug mode." + msgstr "NIE twórz procesu potomnego w tle i NIE włączaj trybu debugowania." + +-#: option.c:346 ++#: option.c:361 + msgid "Assume we are the only DHCP server on the local network." + msgstr "ZakÅ‚adanie, że jesteÅ›my jedynym serwerem DHCP w sieci lokalnej." + +-#: option.c:347 ++#: option.c:362 + #, c-format + msgid "Specify where to store DHCP leases (defaults to %s)." + msgstr "Åšcieżka przechowywania pliku dzierżaw DHCP (domyÅ›lnie: %s)." + +-#: option.c:348 ++#: option.c:363 + msgid "Return MX records for local hosts." + msgstr "Włączenie zwracania rekordu MX dla hostów lokalnych." + +-#: option.c:349 ++#: option.c:364 + msgid "Specify an MX record." + msgstr "Specyfikacja rekordu MX." + +-#: option.c:350 ++#: option.c:365 + msgid "Specify BOOTP options to DHCP server." + msgstr "OkreÅ›lenie opcji BOOTP serwera DHCP." + +-#: option.c:351 ++#: option.c:366 + #, c-format + msgid "Do NOT poll %s file, reload only on SIGHUP." + msgstr "Wyłączenie obserwowania pliku %s; ponowne odczytywanie tylko po odebraniu sygnaÅ‚u SIGHUP." + +-#: option.c:352 ++#: option.c:367 + msgid "Do NOT cache failed search results." + msgstr "Wyłączenie przechowywania w pamiÄ™ci podrÄ™cznej wyników nieudanych wyszukiwaÅ„." + +-#: option.c:353 ++#: option.c:368 + #, c-format + msgid "Use nameservers strictly in the order given in %s." + msgstr "Odpytywanie serwerów nazw w kolejnoÅ›ci ich wystÄ…pienia w %s." + +-#: option.c:354 ++#: option.c:369 + msgid "Specify options to be sent to DHCP clients." + msgstr "Specyfikacja opcji wysyÅ‚anej do klientów DHCP." + +-#: option.c:355 ++#: option.c:370 + msgid "DHCP option sent even if the client does not request it." + msgstr "Opcja DHCP wysyÅ‚ana nawet jeżeli klient o niÄ… nie prosi." + +-#: option.c:356 ++#: option.c:371 + msgid "Specify port to listen for DNS requests on (defaults to 53)." + msgstr "Wskazanie portu do nasÅ‚uchiwania zapytaÅ„ DNS (domyÅ›lnie: 53)." + +-#: option.c:357 ++#: option.c:372 + #, c-format + msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)." + msgstr "Maksymalna obsÅ‚ugiwana wielkość pakietu EDNS.0 (domyÅ›lnie: %s)." + +-#: option.c:358 ++#: option.c:373 + msgid "Log DNS queries." + msgstr "Włączenie spisywania zapytaÅ„ DNS do logu." + +-#: option.c:359 ++#: option.c:374 + msgid "Force the originating port for upstream DNS queries." + msgstr "Wymuszenie użycia wskazanego portu UDP do odpytywania nadrzÄ™dnych serwerów DNS i odbierania od nich odpowiedzi." + +-#: option.c:360 ++#: option.c:375 + msgid "Do NOT read resolv.conf." + msgstr "Wyłączenie czytania pliku resolv.conf." + +-#: option.c:361 ++#: option.c:376 + #, c-format + msgid "Specify path to resolv.conf (defaults to %s)." + msgstr "Wskazanie poÅ‚ożenia pliku resolv.conf (domyÅ›lnie: %s)." + +-#: option.c:362 ++#: option.c:377 + msgid "Specify path to file with server= options" + msgstr "Wskazanie poÅ‚ożenia pliku z opcjami server=" + +-#: option.c:363 ++#: option.c:378 + msgid "Specify address(es) of upstream servers with optional domains." + msgstr "Wskazywanie adresów serwerów nazw, opcjonalnie z przypisaniem do domeny." + +-#: option.c:364 ++#: option.c:379 + msgid "Specify address of upstream servers for reverse address queries" + msgstr "Wskazanie serwerów nazw do odwrotnej translacji adresów." + +-#: option.c:365 ++#: option.c:380 + msgid "Never forward queries to specified domains." + msgstr "Wyłączenie przekazywania zapytaÅ„ do wskazanych domen." + +-#: option.c:366 ++#: option.c:381 + msgid "Specify the domain to be assigned in DHCP leases." + msgstr "Wskazanie domeny dla serwera DHCP." + +-#: option.c:367 ++#: option.c:382 + msgid "Specify default target in an MX record." + msgstr "OkreÅ›lenie domyÅ›lnego celu w rekordzie MX." + +-#: option.c:368 ++#: option.c:383 + msgid "Specify time-to-live in seconds for replies from /etc/hosts." + msgstr "OkreÅ›lenie (w sekundach) czasu ważnoÅ›ci odpowiedzi udzielonych na podstawie /etc/hosts (domyÅ›lnie 0)." + +-#: option.c:369 ++#: option.c:384 + msgid "Specify time-to-live in seconds for negative caching." + msgstr "OkreÅ›lenie (w sekundach) czasu ważnoÅ›ci negatywnych odpowiedzi." + +-#: option.c:370 ++#: option.c:385 + msgid "Specify time-to-live in seconds for maximum TTL to send to clients." + msgstr "Ograniczenie maksymalnego czasu ważnoÅ›ci odpowiedzi (TTL) podawanego klientom [w sekundach]." + +-#: option.c:371 ++#: option.c:386 ++#, fuzzy ++msgid "Specify time-to-live ceiling for cache." ++msgstr "OkreÅ›lenie (w sekundach) czasu ważnoÅ›ci negatywnych odpowiedzi." ++ ++#: option.c:387 ++#, fuzzy ++msgid "Specify time-to-live floor for cache." ++msgstr "OkreÅ›lenie (w sekundach) czasu ważnoÅ›ci negatywnych odpowiedzi." ++ ++#: option.c:388 + #, c-format + msgid "Change to this user after startup. (defaults to %s)." + msgstr "Zmiana użytkownika procesu na wskazanego (po uruchomieniu, domyÅ›lnie: %s)." + +-#: option.c:372 ++#: option.c:389 + msgid "Map DHCP vendor class to tag." + msgstr "PrzyporzÄ…dkowanie znacznika w zależnoÅ›ci od typu klienta DHCP." + +-#: option.c:373 ++#: option.c:390 + msgid "Display dnsmasq version and copyright information." + msgstr "Wydrukowanie informacji o programie i ochronie praw autorskich." + +-#: option.c:374 ++#: option.c:391 + msgid "Translate IPv4 addresses from upstream servers." + msgstr "TÅ‚umaczenie adresów IPv4 z serwerów nadrzÄ™dnych." + +-#: option.c:375 ++#: option.c:392 + msgid "Specify a SRV record." + msgstr "OkreÅ›lenie rekordu SRV." + +-#: option.c:376 ++#: option.c:393 + msgid "Display this message. Use --help dhcp for known DHCP options." + msgstr "WyÅ›wietla ten komunikat. Użyj '--help dhcp' chcÄ…c przejrzeć listÄ™ opcji DHCP (dhcp-option=xxx,...)." + +-#: option.c:377 ++#: option.c:394 + #, c-format + msgid "Specify path of PID file (defaults to %s)." + msgstr "OkreÅ›lenie Å›cieżki do pliku PID (domyÅ›lnie: %s)." + +-#: option.c:378 ++#: option.c:395 + #, c-format + msgid "Specify maximum number of DHCP leases (defaults to %s)." + msgstr "Maksymalna liczba dzierżaw DHCP (domyÅ›lnie: %s)." + +-#: option.c:379 ++#: option.c:396 + msgid "Answer DNS queries based on the interface a query was sent to." + msgstr "Uzależnienie odpowiedzi DNS od interfejsu, na którym odebrano zapytanie (wygodne dla serwerów kilku podsieci z różnymi adresami w /etc/hosts)." + +-#: option.c:380 ++#: option.c:397 + msgid "Specify TXT DNS record." + msgstr "Specyfikacja rekordu DNS TXT." + +-#: option.c:381 ++#: option.c:398 + msgid "Specify PTR DNS record." + msgstr "Specyfikacja rekordu DNS PTR." + +-#: option.c:382 ++#: option.c:399 + msgid "Give DNS name to IPv4 address of interface." + msgstr "Zwraca nazwÄ™ domenowÄ… powiÄ…zanÄ… z adresem interfejsu sieciowego." + +-#: option.c:383 ++#: option.c:400 + msgid "Bind only to interfaces in use." + msgstr "NasÅ‚uchiwanie tylko na wykorzystywanych interfejsach (umożliwia uruchomienie osobnych serwerów dla różnych kart)." + +-#: option.c:384 ++#: option.c:401 + #, c-format + msgid "Read DHCP static host information from %s." + msgstr "Wczytanie przyporzÄ…dkowaÅ„ adresów z %s." + +-#: option.c:385 ++#: option.c:402 + msgid "Enable the DBus interface for setting upstream servers, etc." + msgstr "Włączenie używania interfejsu DBus do informowania o zmianach konfiguracji." + +-#: option.c:386 ++#: option.c:403 + msgid "Do not provide DHCP on this interface, only provide DNS." + msgstr "Uruchomienie na wskazanym interfejsie tylko DNS-a, bez usÅ‚ug DHCP i TFTP." + +-#: option.c:387 ++#: option.c:404 + msgid "Enable dynamic address allocation for bootp." + msgstr "Włączenie dynamicznego przydzielania adresów dla klientów BOOTP." + +-#: option.c:388 ++#: option.c:405 + msgid "Map MAC address (with wildcards) to option set." + msgstr "PrzyporzÄ…dkowanie znacznika w zależnoÅ›ci od adresu MAC (można używać uogólnieÅ„: *)." + +-#: option.c:389 ++#: option.c:406 + msgid "Treat DHCP requests on aliases as arriving from interface." + msgstr "Traktowanie żądaÅ„ DHCP odebranych na interfejsach alias, ..., jako odebranych na iface." + +-#: option.c:390 ++#: option.c:407 + msgid "Disable ICMP echo address checking in the DHCP server." + msgstr "PominiÄ™cie sprawdzania za pomocÄ… ICMP niezajÄ™toÅ›ci adresu przed jego wydzierżawieniem." + +-#: option.c:391 ++#: option.c:408 + msgid "Shell script to run on DHCP lease creation and destruction." + msgstr "Skrypt powÅ‚oki uruchamiany po przyznaniu lub zwolnieniu adresu." + +-#: option.c:392 ++#: option.c:409 + msgid "Lua script to run on DHCP lease creation and destruction." + msgstr "Skrypt Lua uruchamiany po przyznaniu lub zwolnieniu adresu." + +-#: option.c:393 ++#: option.c:410 + msgid "Run lease-change scripts as this user." + msgstr "Wskazanie użytkownika z którego uprawnieniami bÄ™dÄ… uruchamiane skrypty." + +-#: option.c:394 ++#: option.c:411 + msgid "Read configuration from all the files in this directory." + msgstr "Wczytanie wszystkich plików ze wskazanego katalogu jako konfiguracyjnych." + +-#: option.c:395 ++#: option.c:412 + msgid "Log to this syslog facility or file. (defaults to DAEMON)" + msgstr "Wskazanie kanaÅ‚u syslog-a do którego majÄ… trafiać komunikaty (domyÅ›lnie: DAEMON)" + +-#: option.c:396 ++#: option.c:413 + msgid "Do not use leasefile." + msgstr "Nieużywanie bazy dzierżaw." + +-#: option.c:397 ++#: option.c:414 + #, c-format + msgid "Maximum number of concurrent DNS queries. (defaults to %s)" + msgstr "Maksymalna liczba jednoczeÅ›nie obsÅ‚ugiwanych zapytaÅ„ DNS (domyÅ›lnie: %s)" + +-#: option.c:398 ++#: option.c:415 + #, c-format + msgid "Clear DNS cache when reloading %s." + msgstr "Czyszczenie pamiÄ™ci podrÄ™cznej serwera nazw w przypadku ponownego odczytu %s." + +-#: option.c:399 ++#: option.c:416 + msgid "Ignore hostnames provided by DHCP clients." + msgstr "Nie zwracanie uwagi na nazwÄ™ podawanÄ… przez klienta w przypadku dopasowania wszystkich wymienionych znaczników." + +-#: option.c:400 ++#: option.c:417 + msgid "Do NOT reuse filename and server fields for extra DHCP options." + msgstr "Wyłączenie oszczÄ™dzania miejsca w pakiecie DHCP przez przesuwanie pól servername i filename do opcji DHCP. Wymusza prostszy tryb budowy pakietu rozwiÄ…zujÄ…c problemy z nieprzystosowanymi klientami DHCP." + +-#: option.c:401 ++#: option.c:418 + msgid "Enable integrated read-only TFTP server." + msgstr "Włączenie wbudowanego serwera TFTP (tylko do wysyÅ‚ania)." + +-#: option.c:402 ++#: option.c:419 + msgid "Export files by TFTP only from the specified subtree." + msgstr "Ograniczenie dziaÅ‚ania serwera TFTP do wskazanego katalogu i podkatalogów. Nazwy z .. sÄ… odrzucane, / odnosi siÄ™ do wskazanego katalogu." + +-#: option.c:403 ++#: option.c:420 + msgid "Add client IP address to tftp-root." + msgstr "Doklejanie adresu IP klienta do głównego katalogu TFTP. Jeżeli wynikowy katalog nie istnieje, nadal wykorzystuje siÄ™ tftp-root." + +-#: option.c:404 ++#: option.c:421 + msgid "Allow access only to files owned by the user running dnsmasq." + msgstr "Ograniczenie dostÄ™pu do plików przez TFTP do tych, których wÅ‚aÅ›cicielem jest użytkownik uruchamiajÄ…cy dnsmasq-a." + +-#: option.c:405 ++#: option.c:422 + #, c-format + msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)." + msgstr "Maksymalna liczba jednoczeÅ›nie obsÅ‚ugiwanych połączeÅ„ TFTP (domyÅ›lnie %s)." + +-#: option.c:406 ++#: option.c:423 + msgid "Disable the TFTP blocksize extension." + msgstr "Wyłączenie możliwoÅ›ci negocjowania wielkoÅ›ci bloku dla przesyłów przez TFTP." + +-#: option.c:407 ++#: option.c:424 + msgid "Convert TFTP filenames to lowercase" + msgstr "Konwertowanie nazw plików żądanych przez TFTP do maÅ‚ych liter" + +-#: option.c:408 ++#: option.c:425 + msgid "Ephemeral port range for use by TFTP transfers." + msgstr "Wskazanie zakresu portów do użytku TFTP." + +-#: option.c:409 ++#: option.c:426 + msgid "Extra logging for DHCP." + msgstr "Włączenie spisywania w logu operacji DHCP." + +-#: option.c:410 ++#: option.c:427 + msgid "Enable async. logging; optionally set queue length." + msgstr "Włączenie asynchronicznego zapisywania do logu z ewentualnym wskazaniem dÅ‚ugoÅ›ci kolejki." + +-#: option.c:411 ++#: option.c:428 + msgid "Stop DNS rebinding. Filter private IP ranges when resolving." + msgstr "Odfiltrowywanie adresów wskazujÄ…cych na komputery w sieciach wewnÄ™trznych spoÅ›ród odpowiedzi od zewnÄ™trznych serwerów DNS." + +-#: option.c:412 ++#: option.c:429 + msgid "Allow rebinding of 127.0.0.0/8, for RBL servers." + msgstr "Zezwolenie na przekazywanie odpowiedzi w klasie 127.0.0.0/8. Dla serwerów RBL." + +-#: option.c:413 ++#: option.c:430 + msgid "Inhibit DNS-rebind protection on this domain." + msgstr "Dezaktywacja zabezpieczenia przed atakami DNS-rebind dla wskazanych domen." + +-#: option.c:414 ++#: option.c:431 + msgid "Always perform DNS queries to all servers." + msgstr "Jednoczesne odpytywanie wszystkich serwerów nadrzÄ™dnych; klientowi przekazywana jest pierwsza odpowiedź." + +-#: option.c:415 ++#: option.c:432 + msgid "Set tag if client includes matching option in request." + msgstr "Ustawienie znacznika jeżeli w żądaniu DHCP pojawi siÄ™ wskazana opcja, ewentualnie o konkretnej wartoÅ›ci." + +-#: option.c:416 ++#: option.c:433 + msgid "Use alternative ports for DHCP." + msgstr "Użycie alternatywnych portów dla usÅ‚ugi DHCP." + +-#: option.c:417 ++#: option.c:434 + msgid "Specify NAPTR DNS record." + msgstr "Specyfikacja rekordu DNS NAPTR." + +-#: option.c:418 ++#: option.c:435 + msgid "Specify lowest port available for DNS query transmission." + msgstr "Ustawienie dolnej granicy numerów portów do przesyÅ‚ania zapytaÅ„ DNS." + +-#: option.c:419 ++#: option.c:436 + msgid "Use only fully qualified domain names for DHCP clients." + msgstr "Przechowywanie w serwerze DNS dnsmasq-a tylko w peÅ‚ni kwalifikowanych nazw zgÅ‚aszanych przez klientów DHCP." + +-#: option.c:420 ++#: option.c:437 + msgid "Generate hostnames based on MAC address for nameless clients." + msgstr "Generowanie nazw na podstawie MAC-adresów dla klientów bez nazwy." + +-#: option.c:421 ++#: option.c:438 + msgid "Use these DHCP relays as full proxies." + msgstr "Traktowanie wskazanych serwerów poÅ›redniczÄ…cych DHCP jako dziaÅ‚ajÄ…cych w trybie \"peÅ‚nomocnika\" (full-proxy)." + +-#: option.c:422 ++#: option.c:439 + msgid "Relay DHCP requests to a remote server" + msgstr "Przekazywanie żądaÅ„ DHCP do zdalnego serwera" + +-#: option.c:423 ++#: option.c:440 + msgid "Specify alias name for LOCAL DNS name." + msgstr "Wskazanie synonimu nazwy komputera lokalnego - znanego z /etc/hosts albo z DHCP." + +-#: option.c:424 ++#: option.c:441 + msgid "Prompt to send to PXE clients." + msgstr "ZgÅ‚oszenie wysyÅ‚ane klientom PXE." + +-#: option.c:425 ++#: option.c:442 + msgid "Boot service for PXE menu." + msgstr "SkÅ‚adnik menu PXE (--> man)." + +-#: option.c:426 ++#: option.c:443 + msgid "Check configuration syntax." + msgstr "Sprawdzenie skÅ‚adni." + +-#: option.c:427 ++#: option.c:444 + msgid "Add requestor's MAC address to forwarded DNS queries." + msgstr "Przekazywanie MAC-adresu komputera pytajÄ…cego w ruchu wychodzÄ…cym DNS." + +-#: option.c:428 ++#: option.c:445 + msgid "Add requestor's IP subnet to forwarded DNS queries." + msgstr "Zamieszczanie adresu IP pytajÄ…cego w przekazywanych zapytaniach DNS." + +-#: option.c:429 ++#: option.c:446 + msgid "Proxy DNSSEC validation results from upstream nameservers." + msgstr "Przekazywanie wyników weryfikacji DNSSEC z serwerów nadrzÄ™dnych." + +-#: option.c:430 ++#: option.c:447 + msgid "Attempt to allocate sequential IP addresses to DHCP clients." + msgstr "Zmiana sposobu przydzielania adresów IP na sekwencyjny." + +-#: option.c:431 ++#: option.c:448 + msgid "Copy connection-track mark from queries to upstream connections." + msgstr "Zachowanie znacznika połączenia z odebranego zapytania DNS w ruchu zewnÄ™trznym." + +-#: option.c:432 ++#: option.c:449 + msgid "Allow DHCP clients to do their own DDNS updates." + msgstr "Zezwolenie klientom DHCP na uaktualnianie DDNS-ów." + +-#: option.c:433 ++#: option.c:450 + msgid "Send router-advertisements for interfaces doing DHCPv6" + msgstr "Załączenie anonsowania (RA) na interfejsach serwujÄ…cych DHCPv6" + +-#: option.c:434 ++#: option.c:451 + msgid "Specify DUID_EN-type DHCPv6 server DUID" + msgstr "OkreÅ›lenie DHCPv6 DUID" + +-#: option.c:435 ++#: option.c:452 + msgid "Specify host (A/AAAA and PTR) records" + msgstr "OkreÅ›lenie rekordów A/AAAA i PTR" + +-#: option.c:436 ++#: option.c:453 + msgid "Specify arbitrary DNS resource record" + msgstr "OkreÅ›lenie rekordu TXT" + +-#: option.c:437 ++#: option.c:454 + msgid "Bind to interfaces in use - check for new interfaces" + msgstr "Dynamiczne podpinanie do interfejsów sieciowych" + +-#: option.c:438 ++#: option.c:455 + msgid "Export local names to global DNS" + msgstr "Eksportowanie lokalnych nazw hostów do globalnego DNS-a" + +-#: option.c:439 ++#: option.c:456 + msgid "Domain to export to global DNS" + msgstr "Domena pod którÄ… bÄ™dÄ… eksportowane lokalne nazwy" + +-#: option.c:440 ++#: option.c:457 + msgid "Set TTL for authoritative replies" + msgstr "OkreÅ›lenie TTL dla odpowiedzi autorytatywnych" + +-#: option.c:441 ++#: option.c:458 + msgid "Set authoritive zone information" + msgstr "OkreÅ›lenie danych strefy autorytatywnej (SOA)" + +-#: option.c:442 ++#: option.c:459 + msgid "Secondary authoritative nameservers for forward domains" + msgstr "Pomocnicze serwery autorytatywne dla forwardowanych domen" + +-#: option.c:443 ++#: option.c:460 + msgid "Peers which are allowed to do zone transfer" + msgstr "Wskazanie serwerów uprawnionych do transferu stref" + +-#: option.c:444 ++#: option.c:461 + msgid "Specify ipsets to which matching domains should be added" + msgstr "Wyszczególnienie ipset-ów, do których bÄ™dÄ… dopisywane adresy IP leżące we wskazanych domenach" + +-#: option.c:445 ++#: option.c:462 + msgid "Specify a domain and address range for synthesised names" + msgstr "Wskazanie domeny i zakresu adresów dla generowanych nazw" + +-#: option.c:446 ++#: option.c:463 + msgid "Activate DNSSEC validation" + msgstr "Uaktywnienie walidacji DNSSEC" + +-#: option.c:447 ++#: option.c:464 + msgid "Specify trust anchor key digest." + msgstr "Wskazanie punktu zaufania dla uwierzytelniania DNSSEC." + +-#: option.c:448 ++#: option.c:465 + msgid "Disable upstream checking for DNSSEC debugging." + msgstr "Akceptowanie nieuwiarygodnionych odpowiedzi DNSSEC (ustawienie bitu CD w zapytaniach)." + +-#: option.c:449 ++#: option.c:466 + msgid "Ensure answers without DNSSEC are in unsigned zones." + msgstr "Upewnianie siÄ™, że odpowiedzi bez DNSSEC pochodzÄ… ze stref niepodpisanych." + +-#: option.c:450 ++#: option.c:467 + msgid "Don't check DNSSEC signature timestamps until first cache-reload" + msgstr "Wyłączenie sprawdzania sygnatur czasowych DNSSEC do pierwszego przeÅ‚adowania pamiÄ™ci podrÄ™cznej." + +-#: option.c:452 ++#: option.c:468 ++msgid "Timestamp file to verify system clock for DNSSEC" ++msgstr "" ++ ++#: option.c:470 + msgid "Specify DHCPv6 prefix class" + msgstr "OkreÅ›lenie prefiksu klasy DHCPv6" + +-#: option.c:454 ++#: option.c:472 + msgid "Set priority, resend-interval and router-lifetime" + msgstr "Ustawianie priorytetu, okresu rozsyÅ‚ania oraz czasu życia rutera (RA)." + +-#: option.c:455 ++#: option.c:473 + msgid "Do not log routine DHCP." + msgstr "Wyłączenie logowania zwyczajnego DHCP." + +-#: option.c:456 ++#: option.c:474 + msgid "Do not log routine DHCPv6." + msgstr "Wyłączenie logowania zwyczajnego DHCPv6." + +-#: option.c:457 ++#: option.c:475 + msgid "Do not log RA." + msgstr "Wyłączenie logowania RA." + +-#: option.c:458 ++#: option.c:476 + msgid "Accept queries only from directly-connected networks" + msgstr "Akceptowanie zapytaÅ„ wyłącznie z sieci podpiÄ™tych bezpoÅ›rednio." + +-#: option.c:459 ++#: option.c:477 + msgid "Detect and remove DNS forwarding loops" + msgstr "Wykrywanie i usuwanie pÄ™tli zapytaÅ„ DNS." + +-#: option.c:661 ++#: option.c:478 ++msgid "Ignore DNS responses containing ipaddr." ++msgstr "" ++ ++#: option.c:680 + #, c-format + msgid "" + "Usage: dnsmasq [options]\n" +@@ -703,312 +736,312 @@ msgstr "" + "Użycie: dnsmasq [opcje]\n" + "\n" + +-#: option.c:663 ++#: option.c:682 + #, c-format + msgid "Use short options only on the command line.\n" + msgstr "W tym systemie w linii poleceÅ„ można używać wyłącznie jednoliterowych opcji.\n" + +-#: option.c:665 ++#: option.c:684 + #, c-format + msgid "Valid options are:\n" + msgstr "DostÄ™pne opcje:\n" + +-#: option.c:722 option.c:726 ++#: option.c:741 option.c:745 + msgid "bad port" + msgstr "nieprawidÅ‚owy numer portu" + +-#: option.c:753 option.c:785 ++#: option.c:772 option.c:804 + msgid "interface binding not supported" + msgstr "nie ma możliwoÅ›ci dowiÄ…zywania do interfejsu" + +-#: option.c:762 option.c:3494 ++#: option.c:781 option.c:3570 + msgid "bad interface name" + msgstr "nieprawidÅ‚owa nazwa interfejsu" + +-#: option.c:792 ++#: option.c:811 + msgid "bad address" + msgstr "zÅ‚y adres" + +-#: option.c:974 ++#: option.c:993 + msgid "unsupported encapsulation for IPv6 option" + msgstr "nieobsÅ‚ugiwany rodzaj enkapsulacji opcji IPv6" + +-#: option.c:988 ++#: option.c:1007 + msgid "bad dhcp-option" + msgstr "błąd w dhcp-option" + +-#: option.c:1056 ++#: option.c:1075 + msgid "bad IP address" + msgstr "zÅ‚y adres IP" + +-#: option.c:1059 option.c:1197 option.c:2812 ++#: option.c:1078 option.c:1216 option.c:2888 + msgid "bad IPv6 address" + msgstr "zÅ‚y adres IPv6" + +-#: option.c:1224 option.c:1318 ++#: option.c:1243 option.c:1337 + msgid "bad domain in dhcp-option" + msgstr "nieprawidÅ‚owa nazwa domeny w dhcp-option" + +-#: option.c:1356 ++#: option.c:1375 + msgid "dhcp-option too long" + msgstr "zbyt dÅ‚uga dhcp-option (>255 znaków)" + +-#: option.c:1363 ++#: option.c:1382 + msgid "illegal dhcp-match" + msgstr "niedopuszczalne dhcp-match" + +-#: option.c:1425 ++#: option.c:1444 + msgid "illegal repeated flag" + msgstr "wielokrotne użycie opcji niedozwolone (pojawiÅ‚a siÄ™ wczeÅ›niej w linii poleceÅ„)" + +-#: option.c:1433 ++#: option.c:1452 + msgid "illegal repeated keyword" + msgstr "wielokrotne użycie opcji niedozwolone (pojawiÅ‚a siÄ™ wszeÅ›niej w pliku konfiguracyjnym)" + +-#: option.c:1495 option.c:4092 ++#: option.c:1517 option.c:4186 + #, c-format + msgid "cannot access directory %s: %s" + msgstr "brak dostÄ™pu do katalogu %s: %s" + +-#: option.c:1541 tftp.c:493 ++#: option.c:1563 tftp.c:493 + #, c-format + msgid "cannot access %s: %s" + msgstr "brak dostÄ™pu do %s: %s" + +-#: option.c:1588 ++#: option.c:1615 + msgid "setting log facility is not possible under Android" + msgstr "zmiana log-facility w systemie Android nie jest możliwa" + +-#: option.c:1597 ++#: option.c:1624 + msgid "bad log facility" + msgstr "nierozpoznany znacznik logów" + +-#: option.c:1650 ++#: option.c:1677 + msgid "bad MX preference" + msgstr "nieprawidÅ‚owa wartość preferencji MX" + +-#: option.c:1655 ++#: option.c:1682 + msgid "bad MX name" + msgstr "nieprawidÅ‚owa nazwa MX" + +-#: option.c:1669 ++#: option.c:1696 + msgid "bad MX target" + msgstr "nieprawidÅ‚owa wartość celu MX" + +-#: option.c:1681 ++#: option.c:1708 + msgid "cannot run scripts under uClinux" + msgstr "w uClinuksie nie ma możliwoÅ›ci uruchamiania skryptów" + +-#: option.c:1683 ++#: option.c:1710 + msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts" + msgstr "żeby mieć możliwość używania skryptów wywoÅ‚ywanych przy zmianie dzierżawy, przekompiluj dnsmasq-a z włączonÄ… flagÄ… HAVE_SCRIPT" + +-#: option.c:1687 ++#: option.c:1714 + msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts" + msgstr "używanie skryptów Lua, wymaga skompilowania dnsmasq-a z flagÄ… HAVE_LUASCRIPT" + +-#: option.c:1928 option.c:1966 option.c:2015 ++#: option.c:1970 option.c:2015 option.c:2071 + msgid "bad prefix" + msgstr "zÅ‚a maska" + +-#: option.c:2289 ++#: option.c:2352 + msgid "recompile with HAVE_IPSET defined to enable ipset directives" + msgstr "chcÄ…c korzystać z ipsets przekompiluj dnsmasq-a z HAVE_IPSET" + +-#: option.c:2469 ++#: option.c:2545 + msgid "bad port range" + msgstr "nieprawidÅ‚owy zakres numerów portów" + +-#: option.c:2485 ++#: option.c:2561 + msgid "bad bridge-interface" + msgstr "nieprawidÅ‚owa nazwa urzÄ…dzenia w bridge-interface" + +-#: option.c:2545 ++#: option.c:2621 + msgid "only one tag allowed" + msgstr "można wskazać tylko jeden znacznik sieci" + +-#: option.c:2565 option.c:2577 option.c:2683 option.c:2724 ++#: option.c:2641 option.c:2653 option.c:2759 option.c:2800 + msgid "bad dhcp-range" + msgstr "nieprawidÅ‚owy zakres dhcp-range" + +-#: option.c:2592 ++#: option.c:2668 + msgid "inconsistent DHCP range" + msgstr "niespójny zakres adresów DHCP" + +-#: option.c:2651 ++#: option.c:2727 + msgid "prefix length must be exactly 64 for RA subnets" + msgstr "dÅ‚ugość prefiksu musi wynosić dokÅ‚adnie 64 dla podsieci RA" + +-#: option.c:2653 ++#: option.c:2729 + msgid "prefix length must be exactly 64 for subnet constructors" + msgstr "dÅ‚ugość prefiksu musi wynosić dokÅ‚adnie 64 dla konstruktorów podsieci" + +-#: option.c:2657 ++#: option.c:2733 + msgid "prefix length must be at least 64" + msgstr "dÅ‚ugość prefiksu musi wynosić co najmniej 64" + +-#: option.c:2660 ++#: option.c:2736 + msgid "inconsistent DHCPv6 range" + msgstr "niespójny zakres adresów DHCPv6" + +-#: option.c:2671 ++#: option.c:2747 + msgid "prefix must be zero with \"constructor:\" argument" + msgstr "prefiks musi wynosić zero z argumentem \"constructor:\"" + +-#: option.c:2782 option.c:2830 ++#: option.c:2858 option.c:2906 + msgid "bad hex constant" + msgstr "zapis niezgodny z formatem szesnastkowym" + +-#: option.c:2804 ++#: option.c:2880 + msgid "cannot match tags in --dhcp-host" + msgstr "--dhcp-host nie dopuszcza dopasowywania na podstawie znaczników" + +-#: option.c:2852 ++#: option.c:2928 + #, c-format + msgid "duplicate dhcp-host IP address %s" + msgstr "powtórzony adres IP %s w specyfikacji dhcp-host" + +-#: option.c:2910 ++#: option.c:2986 + msgid "bad DHCP host name" + msgstr "niedopuszczalna nazwa komputera w dhcp-host" + +-#: option.c:2992 ++#: option.c:3068 + msgid "bad tag-if" + msgstr "nieprawidÅ‚owa skÅ‚adnia 'tag-if'" + +-#: option.c:3316 option.c:3710 ++#: option.c:3392 option.c:3786 + msgid "invalid port number" + msgstr "nieprawidÅ‚owy numer portu" + +-#: option.c:3378 ++#: option.c:3454 + msgid "bad dhcp-proxy address" + msgstr "zÅ‚y adres dhcp-proxy" + +-#: option.c:3404 ++#: option.c:3480 + msgid "Bad dhcp-relay" + msgstr "zÅ‚y dhcp-relay" + +-#: option.c:3430 ++#: option.c:3506 + msgid "bad RA-params" + msgstr "nieprawidÅ‚owe argumenty RA" + +-#: option.c:3439 ++#: option.c:3515 + msgid "bad DUID" + msgstr "zÅ‚y DUID" + +-#: option.c:3481 ++#: option.c:3557 + msgid "invalid alias range" + msgstr "nieprawidÅ‚owy zakres adresów w --alias" + +-#: option.c:3535 ++#: option.c:3611 + msgid "bad CNAME" + msgstr "zÅ‚a CNAME" + +-#: option.c:3540 ++#: option.c:3616 + msgid "duplicate CNAME" + msgstr "powtórzona CNAME" + +-#: option.c:3560 ++#: option.c:3636 + msgid "bad PTR record" + msgstr "nieprawidÅ‚owy zapis rekordu PTR" + +-#: option.c:3591 ++#: option.c:3667 + msgid "bad NAPTR record" + msgstr "nieprawidÅ‚owy zapis rekordu NAPTR" + +-#: option.c:3625 ++#: option.c:3701 + msgid "bad RR record" + msgstr "nieprawidÅ‚owy zapis rekordu RR" + +-#: option.c:3655 ++#: option.c:3731 + msgid "bad TXT record" + msgstr "nieprawidÅ‚owy zapis rekordu TXT" + +-#: option.c:3696 ++#: option.c:3772 + msgid "bad SRV record" + msgstr "nieprawidÅ‚owy zapis rekordu SRV" + +-#: option.c:3703 ++#: option.c:3779 + msgid "bad SRV target" + msgstr "nieprawidÅ‚owa wartość celu SRV" + +-#: option.c:3717 ++#: option.c:3793 + msgid "invalid priority" + msgstr "nieprawidÅ‚owy priorytet" + +-#: option.c:3724 ++#: option.c:3800 + msgid "invalid weight" + msgstr "nieprawidÅ‚owa waga" + +-#: option.c:3748 ++#: option.c:3824 + msgid "Bad host-record" + msgstr "nieprawidÅ‚owy zapis host-record" + +-#: option.c:3765 ++#: option.c:3841 + msgid "Bad name in host-record" + msgstr "niedopuszczalna nazwa w host-record" + +-#: option.c:3826 ++#: option.c:3906 + msgid "bad trust anchor" + msgstr "nieprawidÅ‚owa specyfikacja punktu zaufania" + +-#: option.c:3840 ++#: option.c:3920 + msgid "bad HEX in trust anchor" + msgstr "zÅ‚y zapis szesnastkowy" + +-#: option.c:3850 ++#: option.c:3930 + msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DNSSEC/DBus support)" + msgstr "nieobsÅ‚ugiwana opcja (sprawdź, czy obsÅ‚uga DHCP/TFTP/DNSSEC/DBus zostaÅ‚a wkompilowana)" + +-#: option.c:3909 ++#: option.c:3989 + msgid "missing \"" + msgstr "brakuje \"" + +-#: option.c:3966 ++#: option.c:4046 + msgid "bad option" + msgstr "nieprawidÅ‚owa opcja" + +-#: option.c:3968 ++#: option.c:4048 + msgid "extraneous parameter" + msgstr "nadwyżkowy parametr" + +-#: option.c:3970 ++#: option.c:4050 + msgid "missing parameter" + msgstr "brak parametru" + +-#: option.c:3972 ++#: option.c:4052 + msgid "illegal option" + msgstr "niedopuszczalna opcja" + +-#: option.c:3979 ++#: option.c:4059 + msgid "error" + msgstr "błąd" + +-#: option.c:3981 ++#: option.c:4061 + #, c-format + msgid " at line %d of %s" + msgstr " w linii %d pliku %s" + +-#: option.c:4045 option.c:4168 tftp.c:667 +-#, c-format +-msgid "cannot read %s: %s" +-msgstr "błąd odczytu z pliku %s: %s" +- +-#: option.c:4229 option.c:4265 ++#: option.c:4076 option.c:4323 option.c:4359 + #, c-format + msgid "read %s" + msgstr "przeczytaÅ‚em %s" + +-#: option.c:4331 ++#: option.c:4139 option.c:4262 tftp.c:667 ++#, c-format ++msgid "cannot read %s: %s" ++msgstr "błąd odczytu z pliku %s: %s" ++ ++#: option.c:4425 + msgid "junk found in command line" + msgstr "jakieÅ› Å›mieci w linii poleceÅ„" + +-#: option.c:4366 ++#: option.c:4460 + #, c-format + msgid "Dnsmasq version %s %s\n" + msgstr "Dnsmasq, wersja %s %s\n" + +-#: option.c:4367 ++#: option.c:4461 + #, c-format + msgid "" + "Compile time options: %s\n" +@@ -1017,89 +1050,89 @@ msgstr "" + "Wkompilowane opcje %s\n" + "\n" + +-#: option.c:4368 ++#: option.c:4462 + #, c-format + msgid "This software comes with ABSOLUTELY NO WARRANTY.\n" + msgstr "Autor nie daje Å»ADNYCH GWARANCJI egzekwowalnych prawnie.\n" + +-#: option.c:4369 ++#: option.c:4463 + #, c-format + msgid "Dnsmasq is free software, and you are welcome to redistribute it\n" + msgstr "Dnsmasq jest wolnym oprogramowaniem, możesz go rozprowadzać\n" + +-#: option.c:4370 ++#: option.c:4464 + #, c-format + msgid "under the terms of the GNU General Public License, version 2 or 3.\n" + msgstr "na warunkach okreÅ›lonych w GNU General Public Licence, w wersji 2 lub 3.\n" + +-#: option.c:4381 ++#: option.c:4475 + msgid "try --help" + msgstr "spróbuj: --help" + +-#: option.c:4383 ++#: option.c:4477 + msgid "try -w" + msgstr "spróbuj: -w" + +-#: option.c:4385 ++#: option.c:4479 + #, c-format + msgid "bad command line options: %s" + msgstr "nieprawidÅ‚owa opcja w linii poleceÅ„ %s" + +-#: option.c:4434 ++#: option.c:4535 + #, c-format + msgid "cannot get host-name: %s" + msgstr "nie można pobrać nazwy hosta: %s" + +-#: option.c:4462 ++#: option.c:4563 + msgid "only one resolv.conf file allowed in no-poll mode." + msgstr "w trybie no-poll można wskazać najwyżej jeden plik resolv.conf." + +-#: option.c:4472 ++#: option.c:4573 + msgid "must have exactly one resolv.conf to read domain from." + msgstr "musisz mieć dokÅ‚adnie jeden plik resolv.conf do odczytu domen." + +-#: option.c:4475 network.c:1506 dhcp.c:769 ++#: option.c:4576 network.c:1506 dhcp.c:774 + #, c-format + msgid "failed to read %s: %s" + msgstr "nie udaÅ‚o siÄ™ odczytać %s: %s" + +-#: option.c:4492 ++#: option.c:4593 + #, c-format + msgid "no search directive found in %s" + msgstr "brak wytycznych wyszukiwania w %s" + +-#: option.c:4513 ++#: option.c:4614 + msgid "there must be a default domain when --dhcp-fqdn is set" + msgstr "w przypadku używania --dhcp-fqdn trzeba wskazać domyÅ›lnÄ… domenÄ™" + +-#: option.c:4522 ++#: option.c:4623 + msgid "syntax check OK" + msgstr "skÅ‚adnia sprawdzona, jest prawidÅ‚owa" + +-#: forward.c:114 ++#: forward.c:111 + #, c-format + msgid "failed to send packet: %s" + msgstr "wysyÅ‚anie pakietu nie powiodÅ‚o siÄ™: %s" + +-#: forward.c:574 ++#: forward.c:572 + msgid "discarding DNS reply: subnet option mismatch" + msgstr "odrzucam odpowiedź DNS: nie zgadza siÄ™ specyfikacja podsieci" + +-#: forward.c:597 ++#: forward.c:595 + #, c-format + msgid "nameserver %s refused to do a recursive query" + msgstr "serwer nazw %s odmawia wykonania zapytania rekurencyjnego" + +-#: forward.c:629 ++#: forward.c:627 + #, c-format + msgid "possible DNS-rebind attack detected: %s" + msgstr "prawdopodobnie wykryto atak DNS-rebind: %s" + +-#: forward.c:1132 forward.c:1663 ++#: forward.c:1156 forward.c:1722 + msgid "Ignoring query from non-local network" + msgstr "Ignorowanie zapytaÅ„ z sieci pozalokalnych." + +-#: forward.c:2101 ++#: forward.c:2178 + #, c-format + msgid "Maximum number of concurrent DNS queries reached (max: %d)" + msgstr "OsiÄ…gniÄ™to granicznÄ… ilość jednoczeÅ›nie obsÅ‚ugiwanych zapytaÅ„ DNS (maks: %d)" +@@ -1189,263 +1222,282 @@ msgstr "używam serwera nazw %s#%d (przez %s)" + msgid "using nameserver %s#%d" + msgstr "używam serwera nazw %s#%d" + +-#: dnsmasq.c:154 +-msgid "No trust anchors provided for DNSSEC" ++#: dnsmasq.c:149 ++msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" ++msgstr "" ++ ++#: dnsmasq.c:156 ++#, fuzzy ++msgid "no trust anchors provided for DNSSEC" + msgstr "Nie wskazano punktów zaufania dla DNSSEC." + +-#: dnsmasq.c:157 +-msgid "Cannot reduce cache size from default when DNSSEC enabled" ++#: dnsmasq.c:159 ++#, fuzzy ++msgid "cannot reduce cache size from default when DNSSEC enabled" + msgstr "Brak możliwoÅ›ci zmniejszenia pamiÄ™ci podrÄ™cznej poniżej wielkoÅ›ci domyÅ›lnej w przypadku używania DNSSEC." + +-#: dnsmasq.c:159 ++#: dnsmasq.c:161 + msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h" + msgstr "obsÅ‚uga DNSSEC niedostÄ™pna - ustaw HAVE_DNSSEC w src/config.h" + +-#: dnsmasq.c:165 ++#: dnsmasq.c:167 + msgid "TFTP server not available: set HAVE_TFTP in src/config.h" + msgstr "Serwer TFTP nie zostaÅ‚ wkompilowany -- ustaw HAVE_TFTP w src/config.h" + +-#: dnsmasq.c:170 +-msgid "Cannot use --conntrack AND --query-port" ++#: dnsmasq.c:172 ++#, fuzzy ++msgid "cannot use --conntrack AND --query-port" + msgstr "--conntrack i --query-port wykluczajÄ… siÄ™ wzajemnie" + +-#: dnsmasq.c:173 +-msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h" ++#: dnsmasq.c:175 ++#, fuzzy ++msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" + msgstr "Wsparcie dla przekazywania znaczników połączeÅ„ (conntrack) nie zostaÅ‚o wkompilowane - ustaw HAVE_CONNTRACK w src/config.h" + +-#: dnsmasq.c:178 ++#: dnsmasq.c:180 + msgid "asychronous logging is not available under Solaris" + msgstr "zapis do logów w trybie asynchronicznym nie jest dostÄ™pny w Solarisie" + +-#: dnsmasq.c:183 ++#: dnsmasq.c:185 + msgid "asychronous logging is not available under Android" + msgstr "zapis do logów w trybie asynchronicznym nie jest dostÄ™pny w Androidzie" + +-#: dnsmasq.c:188 ++#: dnsmasq.c:190 + msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h" + msgstr "tryb autorytatywny DNS-a niedostÄ™pny - ustaw HAVE_AUTH w src/config.h" + +-#: dnsmasq.c:193 +-msgid "Loop detection not available: set HAVE_LOOP in src/config.h" ++#: dnsmasq.c:195 ++#, fuzzy ++msgid "loop detection not available: set HAVE_LOOP in src/config.h" + msgstr "Wykrywanie pÄ™tli zapytaÅ„ nie zostaÅ‚o wkompilowane - ustaw HAVE_LOOP w src/config.h" + +-#: dnsmasq.c:201 ++#: dnsmasq.c:203 + msgid "zone serial must be configured in --auth-soa" + msgstr "za pomocÄ… --auth-soa musi zostać ustawiony numer seryjny strefy" + +-#: dnsmasq.c:219 ++#: dnsmasq.c:221 + msgid "dhcp-range constructor not available on this platform" + msgstr "konstrukcja dhcp-range nie jest dostÄ™pna w tym systemie" + +-#: dnsmasq.c:262 ++#: dnsmasq.c:264 + msgid "cannot set --bind-interfaces and --bind-dynamic" + msgstr "--bind-interfaces i --bind-dynamic wzajemnie siÄ™ wykluczajÄ…" + +-#: dnsmasq.c:265 ++#: dnsmasq.c:267 + #, c-format + msgid "failed to find list of interfaces: %s" + msgstr "błąd podczas tworzenia listy interfejsów sieciowych: %s" + +-#: dnsmasq.c:274 ++#: dnsmasq.c:276 + #, c-format + msgid "unknown interface %s" + msgstr "nieznany interfejs %s" + +-#: dnsmasq.c:330 dnsmasq.c:954 ++#: dnsmasq.c:340 dnsmasq.c:1004 + #, c-format + msgid "DBus error: %s" + msgstr "błąd DBus: %s" + +-#: dnsmasq.c:333 ++#: dnsmasq.c:343 + msgid "DBus not available: set HAVE_DBUS in src/config.h" + msgstr "ObsÅ‚uga DBus nie zostaÅ‚a wkompilowana -- ustaw HAVE_DBUS w src/config.h" + +-#: dnsmasq.c:361 ++#: dnsmasq.c:371 + #, c-format + msgid "unknown user or group: %s" + msgstr "nieznany użytkownik lub grupa: %s" + +-#: dnsmasq.c:416 ++#: dnsmasq.c:426 + #, c-format + msgid "cannot chdir to filesystem root: %s" + msgstr "nie potrafiÄ™ wejść do głównego katalogu: %s" + +-#: dnsmasq.c:653 ++#: dnsmasq.c:667 + #, c-format + msgid "started, version %s DNS disabled" + msgstr "uruchomiony, wersja %s, DNS wyłączony" + +-#: dnsmasq.c:655 ++#: dnsmasq.c:669 + #, c-format + msgid "started, version %s cachesize %d" + msgstr "uruchomiony, wersja %s, %d miejsc w pamiÄ™ci podrÄ™cznej" + +-#: dnsmasq.c:657 ++#: dnsmasq.c:671 + #, c-format + msgid "started, version %s cache disabled" + msgstr "uruchomiony, wersja %s, pamięć podrÄ™czna wyłączona" + +-#: dnsmasq.c:659 ++#: dnsmasq.c:673 + #, c-format + msgid "compile time options: %s" + msgstr "opcje kompilacji: %s" + +-#: dnsmasq.c:665 ++#: dnsmasq.c:679 + msgid "DBus support enabled: connected to system bus" + msgstr "obsÅ‚uga DBus włączona, podłączono do serwera DBus" + +-#: dnsmasq.c:667 ++#: dnsmasq.c:681 + msgid "DBus support enabled: bus connection pending" + msgstr "obsÅ‚uga DBus włączona, trwa podłączanie do serwera DBus" + +-#: dnsmasq.c:672 ++#: dnsmasq.c:686 + msgid "DNS service limited to local subnets" + msgstr "usÅ‚uga DNS ograniczona do lokalnych podsieci" + +-#: dnsmasq.c:677 ++#: dnsmasq.c:702 + msgid "DNSSEC validation enabled" + msgstr "walidacja DNSSEC włączona" + +-#: dnsmasq.c:679 ++#: dnsmasq.c:705 + msgid "DNSSEC signature timestamps not checked until first cache reload" + msgstr "sprawdzanie sygnatur czasowych DNSSEC wyłączone do czasu przeÅ‚adowania pamiÄ™ci podrÄ™cznej" + +-#: dnsmasq.c:684 ++#: dnsmasq.c:708 ++#, fuzzy ++msgid "DNSSEC signature timestamps not checked until system time valid" ++msgstr "sprawdzanie sygnatur czasowych DNSSEC wyłączone do czasu przeÅ‚adowania pamiÄ™ci podrÄ™cznej" ++ ++#: dnsmasq.c:713 + #, c-format + msgid "warning: failed to change owner of %s: %s" + msgstr "UWAGA! Nie udaÅ‚o siÄ™ zmienić użytkownika pliku %s: %s" + +-#: dnsmasq.c:688 ++#: dnsmasq.c:717 + msgid "setting --bind-interfaces option because of OS limitations" + msgstr "ustawiam --bind-interfaces z powodu ograniczeÅ„ systemu operacyjnego" + +-#: dnsmasq.c:698 ++#: dnsmasq.c:727 + #, c-format + msgid "warning: interface %s does not currently exist" + msgstr "uwaga: interfejs %s nie jest włączony" + +-#: dnsmasq.c:703 ++#: dnsmasq.c:732 + msgid "warning: ignoring resolv-file flag because no-resolv is set" + msgstr "uwaga: ignorujÄ™ opcjÄ™ resolv-file, ponieważ wybrano tryb no-resolv" + +-#: dnsmasq.c:706 ++#: dnsmasq.c:735 + msgid "warning: no upstream servers configured" + msgstr "uwaga: nie wskazano nadrzÄ™dnych serwerów DNS" + +-#: dnsmasq.c:710 ++#: dnsmasq.c:739 + #, c-format + msgid "asynchronous logging enabled, queue limit is %d messages" + msgstr "włączono asynchroniczny tryb zapisu do logów z kolejkÄ… na %d komunikatów" + +-#: dnsmasq.c:731 ++#: dnsmasq.c:760 + msgid "IPv6 router advertisement enabled" + msgstr "anonsowanie rutera IPv6 włączone" + +-#: dnsmasq.c:736 ++#: dnsmasq.c:765 + #, c-format + msgid "DHCP, sockets bound exclusively to interface %s" + msgstr "DHCP, gniazda dowiÄ…zane na wyłączność interfejsowi %s" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "root is " + msgstr "z głównym katalogiem w " + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "enabled" + msgstr "włączony" + +-#: dnsmasq.c:755 ++#: dnsmasq.c:784 + msgid "secure mode" + msgstr "w trybie bezpiecznym" + +-#: dnsmasq.c:781 ++#: dnsmasq.c:810 + #, c-format + msgid "restricting maximum simultaneous TFTP transfers to %d" + msgstr "ograniczam ilość jednoczesnych przesÅ‚aÅ„ TFTP do %d" + +-#: dnsmasq.c:956 ++#: dnsmasq.c:1006 + msgid "connected to system DBus" + msgstr "podłączono do DBus-a" + +-#: dnsmasq.c:1106 ++#: dnsmasq.c:1156 + #, c-format + msgid "cannot fork into background: %s" + msgstr "nie potrafiÄ™ przełączyć siÄ™ do pracy w tle: %s" + +-#: dnsmasq.c:1109 ++#: dnsmasq.c:1159 + #, c-format + msgid "failed to create helper: %s" + msgstr "nie udaÅ‚o siÄ™ utworzyć procesu pomocniczego: %s" + +-#: dnsmasq.c:1112 ++#: dnsmasq.c:1162 + #, c-format + msgid "setting capabilities failed: %s" + msgstr "nie powiodÅ‚o siÄ™ ustawianie ograniczeÅ„ (capabilities): %s" + +-#: dnsmasq.c:1115 ++#: dnsmasq.c:1165 + #, c-format + msgid "failed to change user-id to %s: %s" + msgstr "nie udaÅ‚o siÄ™ zmienić użytkownika procesu na %s: %s" + +-#: dnsmasq.c:1118 ++#: dnsmasq.c:1168 + #, c-format + msgid "failed to change group-id to %s: %s" + msgstr "nie udaÅ‚o siÄ™ zmienić grupy procesu na %s: %s" + +-#: dnsmasq.c:1121 ++#: dnsmasq.c:1171 + #, c-format + msgid "failed to open pidfile %s: %s" + msgstr "nie udaÅ‚o siÄ™ otworzyć pliku z PID-em %s: %s" + +-#: dnsmasq.c:1124 ++#: dnsmasq.c:1174 + #, c-format + msgid "cannot open log %s: %s" + msgstr "nie udaÅ‚o siÄ™ otworzyć logu %s: %s" + +-#: dnsmasq.c:1127 ++#: dnsmasq.c:1177 + #, c-format + msgid "failed to load Lua script: %s" + msgstr "nie udaÅ‚o siÄ™ wczytać skryptu Lua: %s" + +-#: dnsmasq.c:1130 ++#: dnsmasq.c:1180 + #, c-format + msgid "TFTP directory %s inaccessible: %s" + msgstr "katalog TFTP %s nie jest dostÄ™pny: %s" + +-#: dnsmasq.c:1151 ++#: dnsmasq.c:1183 ++#, fuzzy, c-format ++msgid "cannot create timestamp file %s: %s" ++msgstr "nie potrafiÄ™ otworzyć albo utworzyć pliku dzierżaw %s: %s" ++ ++#: dnsmasq.c:1204 + msgid "now checking DNSSEC signature timestamps" + msgstr "trwa sprawdzanie sygnatur czasowych podpisów DNSSEC" + +-#: dnsmasq.c:1218 ++#: dnsmasq.c:1271 + #, c-format + msgid "script process killed by signal %d" + msgstr "skrypt zostaÅ‚ zabity sygnaÅ‚em %d" + +-#: dnsmasq.c:1222 ++#: dnsmasq.c:1275 + #, c-format + msgid "script process exited with status %d" + msgstr "skrypt zakoÅ„czyÅ‚ siÄ™ z kodem powrotu %d" + +-#: dnsmasq.c:1226 ++#: dnsmasq.c:1279 + #, c-format + msgid "failed to execute %s: %s" + msgstr "nie udaÅ‚o siÄ™ uruchomić %s: %s" + +-#: dnsmasq.c:1281 ++#: dnsmasq.c:1334 + msgid "exiting on receipt of SIGTERM" + msgstr "zakoÅ„czyÅ‚em dziaÅ‚anie z powodu odebrania SIGTERM" + +-#: dnsmasq.c:1309 ++#: dnsmasq.c:1362 + #, c-format + msgid "failed to access %s: %s" + msgstr "brak dostÄ™pu do %s: %s" + +-#: dnsmasq.c:1339 ++#: dnsmasq.c:1392 + #, c-format + msgid "reading %s" + msgstr "czytanie %s" + +-#: dnsmasq.c:1350 ++#: dnsmasq.c:1403 + #, c-format + msgid "no servers found in %s, will retry" + msgstr "w %s nie znalazÅ‚em serwerów, spróbujÄ™ ponownie później" +@@ -1485,27 +1537,27 @@ msgstr "nieznany interfejs %s w bridge-u" + msgid "DHCP packet received on %s which has no address" + msgstr "żądanie DHCP odebrano na interfejsie %s, który nie ma adresu" + +-#: dhcp.c:408 ++#: dhcp.c:412 + #, c-format + msgid "ARP-cache injection failed: %s" + msgstr "uzupeÅ‚nienie pamiÄ™ci podrÄ™cznej ARP nie powiodÅ‚o siÄ™: %s" + +-#: dhcp.c:506 ++#: dhcp.c:511 + #, c-format + msgid "DHCP range %s -- %s is not consistent with netmask %s" + msgstr "zakres adresów DHCP %s -- %s jest niespójny z maskÄ… sieci %s" + +-#: dhcp.c:807 ++#: dhcp.c:812 + #, c-format + msgid "bad line at %s line %d" + msgstr "zÅ‚a zawartość pliku %s, w linii %d" + +-#: dhcp.c:850 ++#: dhcp.c:855 + #, c-format + msgid "ignoring %s line %d, duplicate name or IP address" + msgstr "w %s pomijam liniÄ™ %d -- powtórzona nazwa lub adres IP" + +-#: dhcp.c:994 rfc3315.c:2089 ++#: dhcp.c:999 rfc3315.c:2139 + #, c-format + msgid "DHCP relay %s -> %s" + msgstr "przekazywanie DHCP %s -> %s" +@@ -1576,12 +1628,12 @@ msgstr "%u klasa użytkownika: %s" + msgid "disabled" + msgstr "wyłączony(a)" + +-#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:602 rfc3315.c:823 +-#: rfc3315.c:1095 ++#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:603 rfc3315.c:860 ++#: rfc3315.c:1139 + msgid "ignored" + msgstr "ignorujÄ™" + +-#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:873 ++#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:910 + msgid "address in use" + msgstr "adres jest w użyciu" + +@@ -1601,7 +1653,7 @@ msgstr "brak skonfigurowanego adresu" + msgid "no leases left" + msgstr "brak wolnych dzierżaw" + +-#: rfc2131.c:691 rfc3315.c:475 ++#: rfc2131.c:691 rfc3315.c:476 + #, c-format + msgid "%u client provides name: %s" + msgstr "klient %u przedstawia siÄ™ jako %s" +@@ -1610,7 +1662,7 @@ msgstr "klient %u przedstawia siÄ™ jako %s" + msgid "PXE BIS not supported" + msgstr "PXE BIS nie jest obsÅ‚ugiwane" + +-#: rfc2131.c:935 rfc3315.c:1189 ++#: rfc2131.c:935 rfc3315.c:1233 + #, c-format + msgid "disabling DHCP static address %s for %s" + msgstr "wyłączam statyczne przypisanie adresu %s dla %s" +@@ -1646,7 +1698,7 @@ msgstr "nieprawidÅ‚owy identyfikator serwera (server-ID)" + msgid "wrong address" + msgstr "błędny adres" + +-#: rfc2131.c:1143 rfc3315.c:969 ++#: rfc2131.c:1143 rfc3315.c:1006 + msgid "lease not found" + msgstr "dzierżawa nieznaleziona" + +@@ -1696,7 +1748,7 @@ msgstr "nie mam możliwoÅ›ci wysÅ‚ania opcji %d DHCP/BOOTP: niedostateczna iloÅ› + msgid "PXE menu too large" + msgstr "menu PXE zbyt duże" + +-#: rfc2131.c:2173 rfc3315.c:1456 ++#: rfc2131.c:2173 rfc3315.c:1506 + #, c-format + msgid "%u requested options: %s" + msgstr "%u zażądano: %s" +@@ -1711,7 +1763,7 @@ msgstr "nie mogÄ™ wysÅ‚ać opcji RFC3925: za dÅ‚ugi Å‚aÅ„cuch opcji przy numerze + msgid "cannot create netlink socket: %s" + msgstr "nie potrafiÄ™ utworzyć połączenia netlink %s" + +-#: netlink.c:347 ++#: netlink.c:348 + #, c-format + msgid "netlink returns error: %s" + msgstr "wystÄ…piÅ‚ błąd w połączeniu netlink %s" +@@ -1829,62 +1881,62 @@ msgstr "nie zdefiniowano zakresu adresów odpowiedniego dla żądania DHCPv6 od + msgid "%u available DHCPv6 subnet: %s/%d" + msgstr "%u dostÄ™pna podsieć DHCPv6: %s/%d" + +-#: rfc3315.c:379 ++#: rfc3315.c:380 + #, c-format + msgid "%u vendor class: %u" + msgstr "%u klasa dostawcy: %u" + +-#: rfc3315.c:427 ++#: rfc3315.c:428 + #, c-format + msgid "%u client MAC address: %s" + msgstr "adres MAC klienta %u: %s" + +-#: rfc3315.c:659 ++#: rfc3315.c:660 + #, c-format + msgid "unknown prefix-class %d" + msgstr "nieznana klasa sieci %d" + +-#: rfc3315.c:791 rfc3315.c:913 ++#: rfc3315.c:803 rfc3315.c:902 ++msgid "address unavailable" ++msgstr "adres niedostÄ™pny" ++ ++#: rfc3315.c:815 rfc3315.c:950 rfc3315.c:1283 + msgid "success" + msgstr "udane" + +-#: rfc3315.c:806 rfc3315.c:808 rfc3315.c:921 rfc3315.c:923 ++#: rfc3315.c:843 rfc3315.c:845 rfc3315.c:958 rfc3315.c:960 + msgid "no addresses available" + msgstr "brak wolnych adresów" + +-#: rfc3315.c:865 +-msgid "address unavailable" +-msgstr "adres niedostÄ™pny" +- +-#: rfc3315.c:900 ++#: rfc3315.c:937 + msgid "not on link" + msgstr "poza zasiÄ™giem" + +-#: rfc3315.c:973 rfc3315.c:1151 rfc3315.c:1228 ++#: rfc3315.c:1010 rfc3315.c:1195 rfc3315.c:1272 + msgid "no binding found" + msgstr "brak powiÄ…zania" + +-#: rfc3315.c:1011 ++#: rfc3315.c:1048 + msgid "deprecated" + msgstr "przestarzaÅ‚y" + +-#: rfc3315.c:1016 ++#: rfc3315.c:1053 + msgid "address invalid" + msgstr "niepoprawny adres" + +-#: rfc3315.c:1061 ++#: rfc3315.c:1100 + msgid "confirm failed" + msgstr "brak potwierdzenia" + +-#: rfc3315.c:1072 ++#: rfc3315.c:1116 + msgid "all addresses still on link" + msgstr "wszystkie adresy ciÄ…gle w użyciu" + +-#: rfc3315.c:1160 ++#: rfc3315.c:1204 + msgid "release received" + msgstr "adres zostaÅ‚ zwolniony" + +-#: rfc3315.c:2080 ++#: rfc3315.c:2130 + msgid "Cannot multicast to DHCPv6 server without correct interface" + msgstr "Nie mogÄ™ rozesÅ‚ać do serwerów DHCPv6 nie majÄ…c prawidÅ‚owego interfejsu" + +@@ -1977,7 +2029,7 @@ msgstr "przekazywanie DHCP z %s do %s" + msgid "cannot create ICMPv6 socket: %s" + msgstr "nie udaÅ‚o siÄ™ utworzyć gniazda dla ICMPv6: %s" + +-#: auth.c:429 ++#: auth.c:436 + #, c-format + msgid "ignoring zone transfer request from %s" + msgstr "ignorujÄ™ żądanie transferu strefy od %s" +@@ -1992,54 +2044,89 @@ msgstr "niezgodna wersja jÄ…dra: %s" + msgid "failed to create IPset control socket: %s" + msgstr "nie powiodÅ‚o siÄ™ otwieranie gniazda sterujÄ…cego IPset: %s" + ++#: dnssec.c:425 dnssec.c:469 ++#, fuzzy, c-format ++msgid "failed to update mtime on %s: %s" ++msgstr "nie udaÅ‚o siÄ™ otworzyć pliku z PID-em %s: %s" ++ + #: blockdata.c:58 + #, c-format + msgid "DNSSEC memory in use %u, max %u, allocated %u" + msgstr "DNSSEC: zużycie pamiÄ™ci %u, maks. %u, przydzielona %u" + +-#: tables.c:76 ++#: tables.c:80 + msgid "error: fill_addr missused" + msgstr "błąd: niepoprawnie użyty fill_addr" + +-#: tables.c:105 ++#: tables.c:109 + #, c-format + msgid "failed to access pf devices: %s" + msgstr "brak dostÄ™pu do /dev/pf (filtra pakietów): %s" + +-#: tables.c:119 ++#: tables.c:123 + #, c-format + msgid "warning: no opened pf devices %s" + msgstr "uwaga: brak otwartych filtrów pakietów %s" + +-#: tables.c:127 ++#: tables.c:131 + #, c-format + msgid "error: cannot use table name %s" + msgstr "błąd: nie potrafiÄ™ użyć nazwy tablicy %s" + +-#: tables.c:135 ++#: tables.c:139 + #, c-format + msgid "error: cannot strlcpy table name %s" + msgstr "błąd: nie potrafiÄ™ strlcpy nazwy tablicy %s" + +-#: tables.c:141 ++#: tables.c:145 + #, c-format + msgid "warning: pfr_add_tables: %s(%d)" + msgstr "uwaga: pfr_add_tables: %s(%d)" + +-#: tables.c:147 ++#: tables.c:151 + msgid "info: table created" + msgstr "info: tablica utworzona" + +-#: tables.c:158 ++#: tables.c:162 + #, c-format + msgid "warning: DIOCR%sADDRS: %s" + msgstr "uwaga: DIOCR%sADDRS: %s" + +-#: tables.c:162 ++#: tables.c:166 + #, c-format + msgid "%d addresses %s" + msgstr "%d adresów %s" + ++#: inotify.c:46 ++#, fuzzy, c-format ++msgid "failed to create inotify: %s" ++msgstr "nie udaÅ‚o siÄ™ utworzyć procesu pomocniczego: %s" ++ ++#: inotify.c:60 ++#, fuzzy, c-format ++msgid "cannot cannonicalise resolv-file %s: %s" ++msgstr "nie potrafiÄ™ otworzyć albo utworzyć pliku dzierżaw %s: %s" ++ ++#: inotify.c:72 ++#, c-format ++msgid "directory %s for resolv-file is missing, cannot poll" ++msgstr "" ++ ++#: inotify.c:75 inotify.c:112 ++#, fuzzy, c-format ++msgid "failed to create inotify for %s: %s" ++msgstr "nie udaÅ‚o siÄ™ otworzyć gniazda %s: %s" ++ ++#: inotify.c:97 ++#, fuzzy, c-format ++msgid "bad dynamic directory %s: %s" ++msgstr "brak dostÄ™pu do katalogu %s: %s" ++ ++#: inotify.c:197 ++#, c-format ++msgid "inotify, new or changed file %s" ++msgstr "" ++ + #~ msgid "Always send frequent router-advertisements" + #~ msgstr "RozsyÅ‚anie wielokrotne anonsów rutera (RA)" + +diff --git a/po/pt_BR.po b/po/pt_BR.po +index b91cf6ce53b4..ef6e4cbf529b 100644 +--- a/po/pt_BR.po ++++ b/po/pt_BR.po +@@ -16,70 +16,70 @@ msgstr "" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n > 1);\n" + +-#: cache.c:505 ++#: cache.c:523 + msgid "Internal error in cache." + msgstr "" + +-#: cache.c:908 ++#: cache.c:941 + #, c-format + msgid "failed to load names from %s: %s" + msgstr "" + +-#: cache.c:934 dhcp.c:820 ++#: cache.c:967 dhcp.c:825 + #, c-format + msgid "bad address at %s line %d" + msgstr "" + +-#: cache.c:985 dhcp.c:836 ++#: cache.c:1018 dhcp.c:841 + #, c-format + msgid "bad name at %s line %d" + msgstr "" + +-#: cache.c:992 dhcp.c:911 ++#: cache.c:1027 dhcp.c:916 + #, c-format + msgid "read %s - %d addresses" + msgstr "" + +-#: cache.c:1100 ++#: cache.c:1135 + msgid "cleared cache" + msgstr "" + +-#: cache.c:1123 ++#: cache.c:1164 + #, c-format + msgid "No IPv4 address found for %s" + msgstr "" + +-#: cache.c:1201 ++#: cache.c:1242 + #, c-format + msgid "%s is a CNAME, not giving it to the DHCP lease of %s" + msgstr "" + +-#: cache.c:1225 ++#: cache.c:1266 + #, c-format + msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s" + msgstr "" + +-#: cache.c:1366 ++#: cache.c:1421 + #, c-format + msgid "time %lu" + msgstr "" + +-#: cache.c:1367 ++#: cache.c:1422 + #, c-format + msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries." + msgstr "" + +-#: cache.c:1369 ++#: cache.c:1424 + #, c-format + msgid "queries forwarded %u, queries answered locally %u" + msgstr "" + +-#: cache.c:1372 ++#: cache.c:1427 + #, c-format + msgid "queries for authoritative zones %u" + msgstr "" + +-#: cache.c:1398 ++#: cache.c:1453 + #, c-format + msgid "server %s#%d: queries sent %u, retried or failed %u" + msgstr "" +@@ -93,7 +93,7 @@ msgstr "" + msgid "failed to allocate memory" + msgstr "" + +-#: util.c:243 option.c:579 ++#: util.c:243 option.c:598 + msgid "could not get memory" + msgstr "" + +@@ -107,990 +107,1018 @@ msgstr "" + msgid "failed to allocate %d bytes" + msgstr "" + +-#: util.c:429 ++#: util.c:430 + #, c-format + msgid "infinite" + msgstr "" + +-#: option.c:318 ++#: option.c:330 + msgid "Specify local address(es) to listen on." + msgstr "" + +-#: option.c:319 ++#: option.c:331 + msgid "Return ipaddr for all hosts in specified domains." + msgstr "" + +-#: option.c:320 ++#: option.c:332 + msgid "Fake reverse lookups for RFC1918 private address ranges." + msgstr "" + +-#: option.c:321 ++#: option.c:333 + msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)." + msgstr "" + +-#: option.c:322 ++#: option.c:334 + #, c-format + msgid "Specify the size of the cache in entries (defaults to %s)." + msgstr "" + +-#: option.c:323 ++#: option.c:335 + #, c-format + msgid "Specify configuration file (defaults to %s)." + msgstr "" + +-#: option.c:324 ++#: option.c:336 + msgid "Do NOT fork into the background: run in debug mode." + msgstr "" + +-#: option.c:325 ++#: option.c:337 + msgid "Do NOT forward queries with no domain part." + msgstr "" + +-#: option.c:326 ++#: option.c:338 + msgid "Return self-pointing MX records for local hosts." + msgstr "" + +-#: option.c:327 ++#: option.c:339 + msgid "Expand simple names in /etc/hosts with domain-suffix." + msgstr "" + +-#: option.c:328 ++#: option.c:340 + msgid "Don't forward spurious DNS requests from Windows hosts." + msgstr "" + +-#: option.c:329 ++#: option.c:341 + msgid "Enable DHCP in the range given with lease duration." + msgstr "" + +-#: option.c:330 ++#: option.c:342 + #, c-format + msgid "Change to this group after startup (defaults to %s)." + msgstr "" + +-#: option.c:331 ++#: option.c:343 + msgid "Set address or hostname for a specified machine." + msgstr "" + +-#: option.c:332 ++#: option.c:344 + msgid "Read DHCP host specs from file." + msgstr "" + +-#: option.c:333 ++#: option.c:345 + msgid "Read DHCP option specs from file." + msgstr "" + +-#: option.c:334 ++#: option.c:346 ++msgid "Read DHCP host specs from a directory." ++msgstr "" ++ ++#: option.c:347 ++msgid "Read DHCP options from a directory." ++msgstr "" ++ ++#: option.c:348 + msgid "Evaluate conditional tag expression." + msgstr "" + +-#: option.c:335 ++#: option.c:349 + #, c-format + msgid "Do NOT load %s file." + msgstr "" + +-#: option.c:336 ++#: option.c:350 + #, c-format + msgid "Specify a hosts file to be read in addition to %s." + msgstr "" + +-#: option.c:337 ++#: option.c:351 ++msgid "Read hosts files from a directory." ++msgstr "" ++ ++#: option.c:352 + msgid "Specify interface(s) to listen on." + msgstr "" + +-#: option.c:338 ++#: option.c:353 + msgid "Specify interface(s) NOT to listen on." + msgstr "" + +-#: option.c:339 ++#: option.c:354 + msgid "Map DHCP user class to tag." + msgstr "" + +-#: option.c:340 ++#: option.c:355 + msgid "Map RFC3046 circuit-id to tag." + msgstr "" + +-#: option.c:341 ++#: option.c:356 + msgid "Map RFC3046 remote-id to tag." + msgstr "" + +-#: option.c:342 ++#: option.c:357 + msgid "Map RFC3993 subscriber-id to tag." + msgstr "" + +-#: option.c:343 ++#: option.c:358 + msgid "Don't do DHCP for hosts with tag set." + msgstr "" + +-#: option.c:344 ++#: option.c:359 + msgid "Force broadcast replies for hosts with tag set." + msgstr "" + +-#: option.c:345 ++#: option.c:360 + msgid "Do NOT fork into the background, do NOT run in debug mode." + msgstr "" + +-#: option.c:346 ++#: option.c:361 + msgid "Assume we are the only DHCP server on the local network." + msgstr "" + +-#: option.c:347 ++#: option.c:362 + #, c-format + msgid "Specify where to store DHCP leases (defaults to %s)." + msgstr "" + +-#: option.c:348 ++#: option.c:363 + msgid "Return MX records for local hosts." + msgstr "" + +-#: option.c:349 ++#: option.c:364 + msgid "Specify an MX record." + msgstr "" + +-#: option.c:350 ++#: option.c:365 + msgid "Specify BOOTP options to DHCP server." + msgstr "" + +-#: option.c:351 ++#: option.c:366 + #, c-format + msgid "Do NOT poll %s file, reload only on SIGHUP." + msgstr "" + +-#: option.c:352 ++#: option.c:367 + msgid "Do NOT cache failed search results." + msgstr "" + +-#: option.c:353 ++#: option.c:368 + #, c-format + msgid "Use nameservers strictly in the order given in %s." + msgstr "" + +-#: option.c:354 ++#: option.c:369 + msgid "Specify options to be sent to DHCP clients." + msgstr "" + +-#: option.c:355 ++#: option.c:370 + msgid "DHCP option sent even if the client does not request it." + msgstr "" + +-#: option.c:356 ++#: option.c:371 + msgid "Specify port to listen for DNS requests on (defaults to 53)." + msgstr "" + +-#: option.c:357 ++#: option.c:372 + #, c-format + msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)." + msgstr "" + +-#: option.c:358 ++#: option.c:373 + msgid "Log DNS queries." + msgstr "" + +-#: option.c:359 ++#: option.c:374 + msgid "Force the originating port for upstream DNS queries." + msgstr "" + +-#: option.c:360 ++#: option.c:375 + msgid "Do NOT read resolv.conf." + msgstr "" + +-#: option.c:361 ++#: option.c:376 + #, c-format + msgid "Specify path to resolv.conf (defaults to %s)." + msgstr "" + +-#: option.c:362 ++#: option.c:377 + msgid "Specify path to file with server= options" + msgstr "" + +-#: option.c:363 ++#: option.c:378 + msgid "Specify address(es) of upstream servers with optional domains." + msgstr "" + +-#: option.c:364 ++#: option.c:379 + msgid "Specify address of upstream servers for reverse address queries" + msgstr "" + +-#: option.c:365 ++#: option.c:380 + msgid "Never forward queries to specified domains." + msgstr "" + +-#: option.c:366 ++#: option.c:381 + msgid "Specify the domain to be assigned in DHCP leases." + msgstr "" + +-#: option.c:367 ++#: option.c:382 + msgid "Specify default target in an MX record." + msgstr "" + +-#: option.c:368 ++#: option.c:383 + msgid "Specify time-to-live in seconds for replies from /etc/hosts." + msgstr "" + +-#: option.c:369 ++#: option.c:384 + msgid "Specify time-to-live in seconds for negative caching." + msgstr "" + +-#: option.c:370 ++#: option.c:385 + msgid "Specify time-to-live in seconds for maximum TTL to send to clients." + msgstr "" + +-#: option.c:371 ++#: option.c:386 ++msgid "Specify time-to-live ceiling for cache." ++msgstr "" ++ ++#: option.c:387 ++msgid "Specify time-to-live floor for cache." ++msgstr "" ++ ++#: option.c:388 + #, c-format + msgid "Change to this user after startup. (defaults to %s)." + msgstr "" + +-#: option.c:372 ++#: option.c:389 + msgid "Map DHCP vendor class to tag." + msgstr "" + +-#: option.c:373 ++#: option.c:390 + msgid "Display dnsmasq version and copyright information." + msgstr "" + +-#: option.c:374 ++#: option.c:391 + msgid "Translate IPv4 addresses from upstream servers." + msgstr "" + +-#: option.c:375 ++#: option.c:392 + msgid "Specify a SRV record." + msgstr "" + +-#: option.c:376 ++#: option.c:393 + msgid "Display this message. Use --help dhcp for known DHCP options." + msgstr "" + +-#: option.c:377 ++#: option.c:394 + #, c-format + msgid "Specify path of PID file (defaults to %s)." + msgstr "" + +-#: option.c:378 ++#: option.c:395 + #, c-format + msgid "Specify maximum number of DHCP leases (defaults to %s)." + msgstr "" + +-#: option.c:379 ++#: option.c:396 + msgid "Answer DNS queries based on the interface a query was sent to." + msgstr "" + +-#: option.c:380 ++#: option.c:397 + msgid "Specify TXT DNS record." + msgstr "" + +-#: option.c:381 ++#: option.c:398 + msgid "Specify PTR DNS record." + msgstr "" + +-#: option.c:382 ++#: option.c:399 + msgid "Give DNS name to IPv4 address of interface." + msgstr "" + +-#: option.c:383 ++#: option.c:400 + msgid "Bind only to interfaces in use." + msgstr "" + +-#: option.c:384 ++#: option.c:401 + #, c-format + msgid "Read DHCP static host information from %s." + msgstr "" + +-#: option.c:385 ++#: option.c:402 + msgid "Enable the DBus interface for setting upstream servers, etc." + msgstr "" + +-#: option.c:386 ++#: option.c:403 + msgid "Do not provide DHCP on this interface, only provide DNS." + msgstr "" + +-#: option.c:387 ++#: option.c:404 + msgid "Enable dynamic address allocation for bootp." + msgstr "" + +-#: option.c:388 ++#: option.c:405 + msgid "Map MAC address (with wildcards) to option set." + msgstr "" + +-#: option.c:389 ++#: option.c:406 + msgid "Treat DHCP requests on aliases as arriving from interface." + msgstr "" + +-#: option.c:390 ++#: option.c:407 + msgid "Disable ICMP echo address checking in the DHCP server." + msgstr "" + +-#: option.c:391 ++#: option.c:408 + msgid "Shell script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:392 ++#: option.c:409 + msgid "Lua script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:393 ++#: option.c:410 + msgid "Run lease-change scripts as this user." + msgstr "" + +-#: option.c:394 ++#: option.c:411 + msgid "Read configuration from all the files in this directory." + msgstr "" + +-#: option.c:395 ++#: option.c:412 + msgid "Log to this syslog facility or file. (defaults to DAEMON)" + msgstr "" + +-#: option.c:396 ++#: option.c:413 + msgid "Do not use leasefile." + msgstr "" + +-#: option.c:397 ++#: option.c:414 + #, c-format + msgid "Maximum number of concurrent DNS queries. (defaults to %s)" + msgstr "" + +-#: option.c:398 ++#: option.c:415 + #, c-format + msgid "Clear DNS cache when reloading %s." + msgstr "" + +-#: option.c:399 ++#: option.c:416 + msgid "Ignore hostnames provided by DHCP clients." + msgstr "" + +-#: option.c:400 ++#: option.c:417 + msgid "Do NOT reuse filename and server fields for extra DHCP options." + msgstr "" + +-#: option.c:401 ++#: option.c:418 + msgid "Enable integrated read-only TFTP server." + msgstr "" + +-#: option.c:402 ++#: option.c:419 + msgid "Export files by TFTP only from the specified subtree." + msgstr "" + +-#: option.c:403 ++#: option.c:420 + msgid "Add client IP address to tftp-root." + msgstr "" + +-#: option.c:404 ++#: option.c:421 + msgid "Allow access only to files owned by the user running dnsmasq." + msgstr "" + +-#: option.c:405 ++#: option.c:422 + #, c-format + msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)." + msgstr "" + +-#: option.c:406 ++#: option.c:423 + msgid "Disable the TFTP blocksize extension." + msgstr "" + +-#: option.c:407 ++#: option.c:424 + msgid "Convert TFTP filenames to lowercase" + msgstr "" + +-#: option.c:408 ++#: option.c:425 + msgid "Ephemeral port range for use by TFTP transfers." + msgstr "" + +-#: option.c:409 ++#: option.c:426 + msgid "Extra logging for DHCP." + msgstr "" + +-#: option.c:410 ++#: option.c:427 + msgid "Enable async. logging; optionally set queue length." + msgstr "" + +-#: option.c:411 ++#: option.c:428 + msgid "Stop DNS rebinding. Filter private IP ranges when resolving." + msgstr "" + +-#: option.c:412 ++#: option.c:429 + msgid "Allow rebinding of 127.0.0.0/8, for RBL servers." + msgstr "" + +-#: option.c:413 ++#: option.c:430 + msgid "Inhibit DNS-rebind protection on this domain." + msgstr "" + +-#: option.c:414 ++#: option.c:431 + msgid "Always perform DNS queries to all servers." + msgstr "" + +-#: option.c:415 ++#: option.c:432 + msgid "Set tag if client includes matching option in request." + msgstr "" + +-#: option.c:416 ++#: option.c:433 + msgid "Use alternative ports for DHCP." + msgstr "" + +-#: option.c:417 ++#: option.c:434 + msgid "Specify NAPTR DNS record." + msgstr "" + +-#: option.c:418 ++#: option.c:435 + msgid "Specify lowest port available for DNS query transmission." + msgstr "" + +-#: option.c:419 ++#: option.c:436 + msgid "Use only fully qualified domain names for DHCP clients." + msgstr "" + +-#: option.c:420 ++#: option.c:437 + msgid "Generate hostnames based on MAC address for nameless clients." + msgstr "" + +-#: option.c:421 ++#: option.c:438 + msgid "Use these DHCP relays as full proxies." + msgstr "" + +-#: option.c:422 ++#: option.c:439 + msgid "Relay DHCP requests to a remote server" + msgstr "" + +-#: option.c:423 ++#: option.c:440 + msgid "Specify alias name for LOCAL DNS name." + msgstr "" + +-#: option.c:424 ++#: option.c:441 + msgid "Prompt to send to PXE clients." + msgstr "" + +-#: option.c:425 ++#: option.c:442 + msgid "Boot service for PXE menu." + msgstr "" + +-#: option.c:426 ++#: option.c:443 + msgid "Check configuration syntax." + msgstr "" + +-#: option.c:427 ++#: option.c:444 + msgid "Add requestor's MAC address to forwarded DNS queries." + msgstr "" + +-#: option.c:428 ++#: option.c:445 + msgid "Add requestor's IP subnet to forwarded DNS queries." + msgstr "" + +-#: option.c:429 ++#: option.c:446 + msgid "Proxy DNSSEC validation results from upstream nameservers." + msgstr "" + +-#: option.c:430 ++#: option.c:447 + msgid "Attempt to allocate sequential IP addresses to DHCP clients." + msgstr "" + +-#: option.c:431 ++#: option.c:448 + msgid "Copy connection-track mark from queries to upstream connections." + msgstr "" + +-#: option.c:432 ++#: option.c:449 + msgid "Allow DHCP clients to do their own DDNS updates." + msgstr "" + +-#: option.c:433 ++#: option.c:450 + msgid "Send router-advertisements for interfaces doing DHCPv6" + msgstr "" + +-#: option.c:434 ++#: option.c:451 + msgid "Specify DUID_EN-type DHCPv6 server DUID" + msgstr "" + +-#: option.c:435 ++#: option.c:452 + msgid "Specify host (A/AAAA and PTR) records" + msgstr "" + +-#: option.c:436 ++#: option.c:453 + msgid "Specify arbitrary DNS resource record" + msgstr "" + +-#: option.c:437 ++#: option.c:454 + msgid "Bind to interfaces in use - check for new interfaces" + msgstr "" + +-#: option.c:438 ++#: option.c:455 + msgid "Export local names to global DNS" + msgstr "" + +-#: option.c:439 ++#: option.c:456 + msgid "Domain to export to global DNS" + msgstr "" + +-#: option.c:440 ++#: option.c:457 + msgid "Set TTL for authoritative replies" + msgstr "" + +-#: option.c:441 ++#: option.c:458 + msgid "Set authoritive zone information" + msgstr "" + +-#: option.c:442 ++#: option.c:459 + msgid "Secondary authoritative nameservers for forward domains" + msgstr "" + +-#: option.c:443 ++#: option.c:460 + msgid "Peers which are allowed to do zone transfer" + msgstr "" + +-#: option.c:444 ++#: option.c:461 + msgid "Specify ipsets to which matching domains should be added" + msgstr "" + +-#: option.c:445 ++#: option.c:462 + msgid "Specify a domain and address range for synthesised names" + msgstr "" + +-#: option.c:446 ++#: option.c:463 + msgid "Activate DNSSEC validation" + msgstr "" + +-#: option.c:447 ++#: option.c:464 + msgid "Specify trust anchor key digest." + msgstr "" + +-#: option.c:448 ++#: option.c:465 + msgid "Disable upstream checking for DNSSEC debugging." + msgstr "" + +-#: option.c:449 ++#: option.c:466 + msgid "Ensure answers without DNSSEC are in unsigned zones." + msgstr "" + +-#: option.c:450 ++#: option.c:467 + msgid "Don't check DNSSEC signature timestamps until first cache-reload" + msgstr "" + +-#: option.c:452 ++#: option.c:468 ++msgid "Timestamp file to verify system clock for DNSSEC" ++msgstr "" ++ ++#: option.c:470 + msgid "Specify DHCPv6 prefix class" + msgstr "" + +-#: option.c:454 ++#: option.c:472 + msgid "Set priority, resend-interval and router-lifetime" + msgstr "" + +-#: option.c:455 ++#: option.c:473 + msgid "Do not log routine DHCP." + msgstr "" + +-#: option.c:456 ++#: option.c:474 + msgid "Do not log routine DHCPv6." + msgstr "" + +-#: option.c:457 ++#: option.c:475 + msgid "Do not log RA." + msgstr "" + +-#: option.c:458 ++#: option.c:476 + msgid "Accept queries only from directly-connected networks" + msgstr "" + +-#: option.c:459 ++#: option.c:477 + msgid "Detect and remove DNS forwarding loops" + msgstr "" + +-#: option.c:661 ++#: option.c:478 ++msgid "Ignore DNS responses containing ipaddr." ++msgstr "" ++ ++#: option.c:680 + #, c-format + msgid "" + "Usage: dnsmasq [options]\n" + "\n" + msgstr "" + +-#: option.c:663 ++#: option.c:682 + #, c-format + msgid "Use short options only on the command line.\n" + msgstr "" + +-#: option.c:665 ++#: option.c:684 + #, c-format + msgid "Valid options are:\n" + msgstr "" + +-#: option.c:722 option.c:726 ++#: option.c:741 option.c:745 + msgid "bad port" + msgstr "" + +-#: option.c:753 option.c:785 ++#: option.c:772 option.c:804 + msgid "interface binding not supported" + msgstr "" + +-#: option.c:762 option.c:3494 ++#: option.c:781 option.c:3570 + msgid "bad interface name" + msgstr "" + +-#: option.c:792 ++#: option.c:811 + msgid "bad address" + msgstr "" + +-#: option.c:974 ++#: option.c:993 + msgid "unsupported encapsulation for IPv6 option" + msgstr "" + +-#: option.c:988 ++#: option.c:1007 + msgid "bad dhcp-option" + msgstr "" + +-#: option.c:1056 ++#: option.c:1075 + msgid "bad IP address" + msgstr "" + +-#: option.c:1059 option.c:1197 option.c:2812 ++#: option.c:1078 option.c:1216 option.c:2888 + msgid "bad IPv6 address" + msgstr "" + +-#: option.c:1224 option.c:1318 ++#: option.c:1243 option.c:1337 + msgid "bad domain in dhcp-option" + msgstr "" + +-#: option.c:1356 ++#: option.c:1375 + msgid "dhcp-option too long" + msgstr "" + +-#: option.c:1363 ++#: option.c:1382 + msgid "illegal dhcp-match" + msgstr "" + +-#: option.c:1425 ++#: option.c:1444 + msgid "illegal repeated flag" + msgstr "" + +-#: option.c:1433 ++#: option.c:1452 + msgid "illegal repeated keyword" + msgstr "" + +-#: option.c:1495 option.c:4092 ++#: option.c:1517 option.c:4186 + #, c-format + msgid "cannot access directory %s: %s" + msgstr "" + +-#: option.c:1541 tftp.c:493 ++#: option.c:1563 tftp.c:493 + #, c-format + msgid "cannot access %s: %s" + msgstr "" + +-#: option.c:1588 ++#: option.c:1615 + msgid "setting log facility is not possible under Android" + msgstr "" + +-#: option.c:1597 ++#: option.c:1624 + msgid "bad log facility" + msgstr "" + +-#: option.c:1650 ++#: option.c:1677 + msgid "bad MX preference" + msgstr "" + +-#: option.c:1655 ++#: option.c:1682 + msgid "bad MX name" + msgstr "" + +-#: option.c:1669 ++#: option.c:1696 + msgid "bad MX target" + msgstr "" + +-#: option.c:1681 ++#: option.c:1708 + msgid "cannot run scripts under uClinux" + msgstr "" + +-#: option.c:1683 ++#: option.c:1710 + msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts" + msgstr "" + +-#: option.c:1687 ++#: option.c:1714 + msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts" + msgstr "" + +-#: option.c:1928 option.c:1966 option.c:2015 ++#: option.c:1970 option.c:2015 option.c:2071 + msgid "bad prefix" + msgstr "" + +-#: option.c:2289 ++#: option.c:2352 + msgid "recompile with HAVE_IPSET defined to enable ipset directives" + msgstr "" + +-#: option.c:2469 ++#: option.c:2545 + msgid "bad port range" + msgstr "" + +-#: option.c:2485 ++#: option.c:2561 + msgid "bad bridge-interface" + msgstr "" + +-#: option.c:2545 ++#: option.c:2621 + msgid "only one tag allowed" + msgstr "" + +-#: option.c:2565 option.c:2577 option.c:2683 option.c:2724 ++#: option.c:2641 option.c:2653 option.c:2759 option.c:2800 + msgid "bad dhcp-range" + msgstr "" + +-#: option.c:2592 ++#: option.c:2668 + msgid "inconsistent DHCP range" + msgstr "" + +-#: option.c:2651 ++#: option.c:2727 + msgid "prefix length must be exactly 64 for RA subnets" + msgstr "" + +-#: option.c:2653 ++#: option.c:2729 + msgid "prefix length must be exactly 64 for subnet constructors" + msgstr "" + +-#: option.c:2657 ++#: option.c:2733 + msgid "prefix length must be at least 64" + msgstr "" + +-#: option.c:2660 ++#: option.c:2736 + msgid "inconsistent DHCPv6 range" + msgstr "" + +-#: option.c:2671 ++#: option.c:2747 + msgid "prefix must be zero with \"constructor:\" argument" + msgstr "" + +-#: option.c:2782 option.c:2830 ++#: option.c:2858 option.c:2906 + msgid "bad hex constant" + msgstr "" + +-#: option.c:2804 ++#: option.c:2880 + msgid "cannot match tags in --dhcp-host" + msgstr "" + +-#: option.c:2852 ++#: option.c:2928 + #, c-format + msgid "duplicate dhcp-host IP address %s" + msgstr "" + +-#: option.c:2910 ++#: option.c:2986 + msgid "bad DHCP host name" + msgstr "" + +-#: option.c:2992 ++#: option.c:3068 + msgid "bad tag-if" + msgstr "" + +-#: option.c:3316 option.c:3710 ++#: option.c:3392 option.c:3786 + msgid "invalid port number" + msgstr "" + +-#: option.c:3378 ++#: option.c:3454 + msgid "bad dhcp-proxy address" + msgstr "" + +-#: option.c:3404 ++#: option.c:3480 + msgid "Bad dhcp-relay" + msgstr "" + +-#: option.c:3430 ++#: option.c:3506 + msgid "bad RA-params" + msgstr "" + +-#: option.c:3439 ++#: option.c:3515 + msgid "bad DUID" + msgstr "" + +-#: option.c:3481 ++#: option.c:3557 + msgid "invalid alias range" + msgstr "" + +-#: option.c:3535 ++#: option.c:3611 + msgid "bad CNAME" + msgstr "" + +-#: option.c:3540 ++#: option.c:3616 + msgid "duplicate CNAME" + msgstr "" + +-#: option.c:3560 ++#: option.c:3636 + msgid "bad PTR record" + msgstr "" + +-#: option.c:3591 ++#: option.c:3667 + msgid "bad NAPTR record" + msgstr "" + +-#: option.c:3625 ++#: option.c:3701 + msgid "bad RR record" + msgstr "" + +-#: option.c:3655 ++#: option.c:3731 + msgid "bad TXT record" + msgstr "" + +-#: option.c:3696 ++#: option.c:3772 + msgid "bad SRV record" + msgstr "" + +-#: option.c:3703 ++#: option.c:3779 + msgid "bad SRV target" + msgstr "" + +-#: option.c:3717 ++#: option.c:3793 + msgid "invalid priority" + msgstr "" + +-#: option.c:3724 ++#: option.c:3800 + msgid "invalid weight" + msgstr "" + +-#: option.c:3748 ++#: option.c:3824 + msgid "Bad host-record" + msgstr "" + +-#: option.c:3765 ++#: option.c:3841 + msgid "Bad name in host-record" + msgstr "" + +-#: option.c:3826 ++#: option.c:3906 + msgid "bad trust anchor" + msgstr "" + +-#: option.c:3840 ++#: option.c:3920 + msgid "bad HEX in trust anchor" + msgstr "" + +-#: option.c:3850 ++#: option.c:3930 + msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DNSSEC/DBus support)" + msgstr "" + +-#: option.c:3909 ++#: option.c:3989 + msgid "missing \"" + msgstr "" + +-#: option.c:3966 ++#: option.c:4046 + msgid "bad option" + msgstr "" + +-#: option.c:3968 ++#: option.c:4048 + msgid "extraneous parameter" + msgstr "" + +-#: option.c:3970 ++#: option.c:4050 + msgid "missing parameter" + msgstr "" + +-#: option.c:3972 ++#: option.c:4052 + msgid "illegal option" + msgstr "" + +-#: option.c:3979 ++#: option.c:4059 + msgid "error" + msgstr "" + +-#: option.c:3981 ++#: option.c:4061 + #, c-format + msgid " at line %d of %s" + msgstr "" + +-#: option.c:4045 option.c:4168 tftp.c:667 ++#: option.c:4076 option.c:4323 option.c:4359 + #, c-format +-msgid "cannot read %s: %s" ++msgid "read %s" + msgstr "" + +-#: option.c:4229 option.c:4265 ++#: option.c:4139 option.c:4262 tftp.c:667 + #, c-format +-msgid "read %s" ++msgid "cannot read %s: %s" + msgstr "" + +-#: option.c:4331 ++#: option.c:4425 + msgid "junk found in command line" + msgstr "" + +-#: option.c:4366 ++#: option.c:4460 + #, c-format + msgid "Dnsmasq version %s %s\n" + msgstr "" + +-#: option.c:4367 ++#: option.c:4461 + #, c-format + msgid "" + "Compile time options: %s\n" + "\n" + msgstr "" + +-#: option.c:4368 ++#: option.c:4462 + #, c-format + msgid "This software comes with ABSOLUTELY NO WARRANTY.\n" + msgstr "" + +-#: option.c:4369 ++#: option.c:4463 + #, c-format + msgid "Dnsmasq is free software, and you are welcome to redistribute it\n" + msgstr "" + +-#: option.c:4370 ++#: option.c:4464 + #, c-format + msgid "under the terms of the GNU General Public License, version 2 or 3.\n" + msgstr "" + +-#: option.c:4381 ++#: option.c:4475 + msgid "try --help" + msgstr "" + +-#: option.c:4383 ++#: option.c:4477 + msgid "try -w" + msgstr "" + +-#: option.c:4385 ++#: option.c:4479 + #, c-format + msgid "bad command line options: %s" + msgstr "" + +-#: option.c:4434 ++#: option.c:4535 + #, c-format + msgid "cannot get host-name: %s" + msgstr "" + +-#: option.c:4462 ++#: option.c:4563 + msgid "only one resolv.conf file allowed in no-poll mode." + msgstr "" + +-#: option.c:4472 ++#: option.c:4573 + msgid "must have exactly one resolv.conf to read domain from." + msgstr "" + +-#: option.c:4475 network.c:1506 dhcp.c:769 ++#: option.c:4576 network.c:1506 dhcp.c:774 + #, c-format + msgid "failed to read %s: %s" + msgstr "" + +-#: option.c:4492 ++#: option.c:4593 + #, c-format + msgid "no search directive found in %s" + msgstr "" + +-#: option.c:4513 ++#: option.c:4614 + msgid "there must be a default domain when --dhcp-fqdn is set" + msgstr "" + +-#: option.c:4522 ++#: option.c:4623 + msgid "syntax check OK" + msgstr "" + +-#: forward.c:114 ++#: forward.c:111 + #, c-format + msgid "failed to send packet: %s" + msgstr "" + +-#: forward.c:574 ++#: forward.c:572 + msgid "discarding DNS reply: subnet option mismatch" + msgstr "" + +-#: forward.c:597 ++#: forward.c:595 + #, c-format + msgid "nameserver %s refused to do a recursive query" + msgstr "" + +-#: forward.c:629 ++#: forward.c:627 + #, c-format + msgid "possible DNS-rebind attack detected: %s" + msgstr "" + +-#: forward.c:1132 forward.c:1663 ++#: forward.c:1156 forward.c:1722 + msgid "Ignoring query from non-local network" + msgstr "" + +-#: forward.c:2101 ++#: forward.c:2178 + #, c-format + msgid "Maximum number of concurrent DNS queries reached (max: %d)" + msgstr "" +@@ -1180,263 +1208,276 @@ msgstr "" + msgid "using nameserver %s#%d" + msgstr "" + +-#: dnsmasq.c:154 +-msgid "No trust anchors provided for DNSSEC" ++#: dnsmasq.c:149 ++msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" + msgstr "" + +-#: dnsmasq.c:157 +-msgid "Cannot reduce cache size from default when DNSSEC enabled" ++#: dnsmasq.c:156 ++msgid "no trust anchors provided for DNSSEC" + msgstr "" + + #: dnsmasq.c:159 ++msgid "cannot reduce cache size from default when DNSSEC enabled" ++msgstr "" ++ ++#: dnsmasq.c:161 + msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h" + msgstr "" + +-#: dnsmasq.c:165 ++#: dnsmasq.c:167 + msgid "TFTP server not available: set HAVE_TFTP in src/config.h" + msgstr "" + +-#: dnsmasq.c:170 +-msgid "Cannot use --conntrack AND --query-port" ++#: dnsmasq.c:172 ++msgid "cannot use --conntrack AND --query-port" + msgstr "" + +-#: dnsmasq.c:173 +-msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h" ++#: dnsmasq.c:175 ++msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" + msgstr "" + +-#: dnsmasq.c:178 ++#: dnsmasq.c:180 + msgid "asychronous logging is not available under Solaris" + msgstr "" + +-#: dnsmasq.c:183 ++#: dnsmasq.c:185 + msgid "asychronous logging is not available under Android" + msgstr "" + +-#: dnsmasq.c:188 ++#: dnsmasq.c:190 + msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h" + msgstr "" + +-#: dnsmasq.c:193 +-msgid "Loop detection not available: set HAVE_LOOP in src/config.h" ++#: dnsmasq.c:195 ++msgid "loop detection not available: set HAVE_LOOP in src/config.h" + msgstr "" + +-#: dnsmasq.c:201 ++#: dnsmasq.c:203 + msgid "zone serial must be configured in --auth-soa" + msgstr "" + +-#: dnsmasq.c:219 ++#: dnsmasq.c:221 + msgid "dhcp-range constructor not available on this platform" + msgstr "" + +-#: dnsmasq.c:262 ++#: dnsmasq.c:264 + msgid "cannot set --bind-interfaces and --bind-dynamic" + msgstr "" + +-#: dnsmasq.c:265 ++#: dnsmasq.c:267 + #, c-format + msgid "failed to find list of interfaces: %s" + msgstr "" + +-#: dnsmasq.c:274 ++#: dnsmasq.c:276 + #, c-format + msgid "unknown interface %s" + msgstr "" + +-#: dnsmasq.c:330 dnsmasq.c:954 ++#: dnsmasq.c:340 dnsmasq.c:1004 + #, c-format + msgid "DBus error: %s" + msgstr "" + +-#: dnsmasq.c:333 ++#: dnsmasq.c:343 + msgid "DBus not available: set HAVE_DBUS in src/config.h" + msgstr "" + +-#: dnsmasq.c:361 ++#: dnsmasq.c:371 + #, c-format + msgid "unknown user or group: %s" + msgstr "" + +-#: dnsmasq.c:416 ++#: dnsmasq.c:426 + #, c-format + msgid "cannot chdir to filesystem root: %s" + msgstr "" + +-#: dnsmasq.c:653 ++#: dnsmasq.c:667 + #, c-format + msgid "started, version %s DNS disabled" + msgstr "" + +-#: dnsmasq.c:655 ++#: dnsmasq.c:669 + #, c-format + msgid "started, version %s cachesize %d" + msgstr "" + +-#: dnsmasq.c:657 ++#: dnsmasq.c:671 + #, c-format + msgid "started, version %s cache disabled" + msgstr "" + +-#: dnsmasq.c:659 ++#: dnsmasq.c:673 + #, c-format + msgid "compile time options: %s" + msgstr "" + +-#: dnsmasq.c:665 ++#: dnsmasq.c:679 + msgid "DBus support enabled: connected to system bus" + msgstr "" + +-#: dnsmasq.c:667 ++#: dnsmasq.c:681 + msgid "DBus support enabled: bus connection pending" + msgstr "" + +-#: dnsmasq.c:672 ++#: dnsmasq.c:686 + msgid "DNS service limited to local subnets" + msgstr "" + +-#: dnsmasq.c:677 ++#: dnsmasq.c:702 + msgid "DNSSEC validation enabled" + msgstr "" + +-#: dnsmasq.c:679 ++#: dnsmasq.c:705 + msgid "DNSSEC signature timestamps not checked until first cache reload" + msgstr "" + +-#: dnsmasq.c:684 ++#: dnsmasq.c:708 ++msgid "DNSSEC signature timestamps not checked until system time valid" ++msgstr "" ++ ++#: dnsmasq.c:713 + #, c-format + msgid "warning: failed to change owner of %s: %s" + msgstr "" + +-#: dnsmasq.c:688 ++#: dnsmasq.c:717 + msgid "setting --bind-interfaces option because of OS limitations" + msgstr "" + +-#: dnsmasq.c:698 ++#: dnsmasq.c:727 + #, c-format + msgid "warning: interface %s does not currently exist" + msgstr "" + +-#: dnsmasq.c:703 ++#: dnsmasq.c:732 + msgid "warning: ignoring resolv-file flag because no-resolv is set" + msgstr "" + +-#: dnsmasq.c:706 ++#: dnsmasq.c:735 + msgid "warning: no upstream servers configured" + msgstr "" + +-#: dnsmasq.c:710 ++#: dnsmasq.c:739 + #, c-format + msgid "asynchronous logging enabled, queue limit is %d messages" + msgstr "" + +-#: dnsmasq.c:731 ++#: dnsmasq.c:760 + msgid "IPv6 router advertisement enabled" + msgstr "" + +-#: dnsmasq.c:736 ++#: dnsmasq.c:765 + #, c-format + msgid "DHCP, sockets bound exclusively to interface %s" + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "root is " + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "enabled" + msgstr "" + +-#: dnsmasq.c:755 ++#: dnsmasq.c:784 + msgid "secure mode" + msgstr "" + +-#: dnsmasq.c:781 ++#: dnsmasq.c:810 + #, c-format + msgid "restricting maximum simultaneous TFTP transfers to %d" + msgstr "" + +-#: dnsmasq.c:956 ++#: dnsmasq.c:1006 + msgid "connected to system DBus" + msgstr "" + +-#: dnsmasq.c:1106 ++#: dnsmasq.c:1156 + #, c-format + msgid "cannot fork into background: %s" + msgstr "" + +-#: dnsmasq.c:1109 ++#: dnsmasq.c:1159 + #, c-format + msgid "failed to create helper: %s" + msgstr "" + +-#: dnsmasq.c:1112 ++#: dnsmasq.c:1162 + #, c-format + msgid "setting capabilities failed: %s" + msgstr "" + +-#: dnsmasq.c:1115 ++#: dnsmasq.c:1165 + #, c-format + msgid "failed to change user-id to %s: %s" + msgstr "" + +-#: dnsmasq.c:1118 ++#: dnsmasq.c:1168 + #, c-format + msgid "failed to change group-id to %s: %s" + msgstr "" + +-#: dnsmasq.c:1121 ++#: dnsmasq.c:1171 + #, c-format + msgid "failed to open pidfile %s: %s" + msgstr "" + +-#: dnsmasq.c:1124 ++#: dnsmasq.c:1174 + #, c-format + msgid "cannot open log %s: %s" + msgstr "" + +-#: dnsmasq.c:1127 ++#: dnsmasq.c:1177 + #, c-format + msgid "failed to load Lua script: %s" + msgstr "" + +-#: dnsmasq.c:1130 ++#: dnsmasq.c:1180 + #, c-format + msgid "TFTP directory %s inaccessible: %s" + msgstr "" + +-#: dnsmasq.c:1151 ++#: dnsmasq.c:1183 ++#, c-format ++msgid "cannot create timestamp file %s: %s" ++msgstr "" ++ ++#: dnsmasq.c:1204 + msgid "now checking DNSSEC signature timestamps" + msgstr "" + +-#: dnsmasq.c:1218 ++#: dnsmasq.c:1271 + #, c-format + msgid "script process killed by signal %d" + msgstr "" + +-#: dnsmasq.c:1222 ++#: dnsmasq.c:1275 + #, c-format + msgid "script process exited with status %d" + msgstr "" + +-#: dnsmasq.c:1226 ++#: dnsmasq.c:1279 + #, c-format + msgid "failed to execute %s: %s" + msgstr "" + +-#: dnsmasq.c:1281 ++#: dnsmasq.c:1334 + msgid "exiting on receipt of SIGTERM" + msgstr "" + +-#: dnsmasq.c:1309 ++#: dnsmasq.c:1362 + #, c-format + msgid "failed to access %s: %s" + msgstr "" + +-#: dnsmasq.c:1339 ++#: dnsmasq.c:1392 + #, c-format + msgid "reading %s" + msgstr "" + +-#: dnsmasq.c:1350 ++#: dnsmasq.c:1403 + #, c-format + msgid "no servers found in %s, will retry" + msgstr "" +@@ -1476,27 +1517,27 @@ msgstr "" + msgid "DHCP packet received on %s which has no address" + msgstr "" + +-#: dhcp.c:408 ++#: dhcp.c:412 + #, c-format + msgid "ARP-cache injection failed: %s" + msgstr "" + +-#: dhcp.c:506 ++#: dhcp.c:511 + #, c-format + msgid "DHCP range %s -- %s is not consistent with netmask %s" + msgstr "" + +-#: dhcp.c:807 ++#: dhcp.c:812 + #, c-format + msgid "bad line at %s line %d" + msgstr "" + +-#: dhcp.c:850 ++#: dhcp.c:855 + #, c-format + msgid "ignoring %s line %d, duplicate name or IP address" + msgstr "" + +-#: dhcp.c:994 rfc3315.c:2089 ++#: dhcp.c:999 rfc3315.c:2139 + #, c-format + msgid "DHCP relay %s -> %s" + msgstr "" +@@ -1567,12 +1608,12 @@ msgstr "" + msgid "disabled" + msgstr "" + +-#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:602 rfc3315.c:823 +-#: rfc3315.c:1095 ++#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:603 rfc3315.c:860 ++#: rfc3315.c:1139 + msgid "ignored" + msgstr "" + +-#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:873 ++#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:910 + msgid "address in use" + msgstr "" + +@@ -1592,7 +1633,7 @@ msgstr "" + msgid "no leases left" + msgstr "" + +-#: rfc2131.c:691 rfc3315.c:475 ++#: rfc2131.c:691 rfc3315.c:476 + #, c-format + msgid "%u client provides name: %s" + msgstr "" +@@ -1601,7 +1642,7 @@ msgstr "" + msgid "PXE BIS not supported" + msgstr "" + +-#: rfc2131.c:935 rfc3315.c:1189 ++#: rfc2131.c:935 rfc3315.c:1233 + #, c-format + msgid "disabling DHCP static address %s for %s" + msgstr "" +@@ -1637,7 +1678,7 @@ msgstr "" + msgid "wrong address" + msgstr "" + +-#: rfc2131.c:1143 rfc3315.c:969 ++#: rfc2131.c:1143 rfc3315.c:1006 + msgid "lease not found" + msgstr "" + +@@ -1687,7 +1728,7 @@ msgstr "" + msgid "PXE menu too large" + msgstr "" + +-#: rfc2131.c:2173 rfc3315.c:1456 ++#: rfc2131.c:2173 rfc3315.c:1506 + #, c-format + msgid "%u requested options: %s" + msgstr "" +@@ -1702,7 +1743,7 @@ msgstr "" + msgid "cannot create netlink socket: %s" + msgstr "" + +-#: netlink.c:347 ++#: netlink.c:348 + #, c-format + msgid "netlink returns error: %s" + msgstr "" +@@ -1820,62 +1861,62 @@ msgstr "" + msgid "%u available DHCPv6 subnet: %s/%d" + msgstr "" + +-#: rfc3315.c:379 ++#: rfc3315.c:380 + #, c-format + msgid "%u vendor class: %u" + msgstr "" + +-#: rfc3315.c:427 ++#: rfc3315.c:428 + #, c-format + msgid "%u client MAC address: %s" + msgstr "" + +-#: rfc3315.c:659 ++#: rfc3315.c:660 + #, c-format + msgid "unknown prefix-class %d" + msgstr "" + +-#: rfc3315.c:791 rfc3315.c:913 +-msgid "success" ++#: rfc3315.c:803 rfc3315.c:902 ++msgid "address unavailable" + msgstr "" + +-#: rfc3315.c:806 rfc3315.c:808 rfc3315.c:921 rfc3315.c:923 +-msgid "no addresses available" ++#: rfc3315.c:815 rfc3315.c:950 rfc3315.c:1283 ++msgid "success" + msgstr "" + +-#: rfc3315.c:865 +-msgid "address unavailable" ++#: rfc3315.c:843 rfc3315.c:845 rfc3315.c:958 rfc3315.c:960 ++msgid "no addresses available" + msgstr "" + +-#: rfc3315.c:900 ++#: rfc3315.c:937 + msgid "not on link" + msgstr "" + +-#: rfc3315.c:973 rfc3315.c:1151 rfc3315.c:1228 ++#: rfc3315.c:1010 rfc3315.c:1195 rfc3315.c:1272 + msgid "no binding found" + msgstr "" + +-#: rfc3315.c:1011 ++#: rfc3315.c:1048 + msgid "deprecated" + msgstr "" + +-#: rfc3315.c:1016 ++#: rfc3315.c:1053 + msgid "address invalid" + msgstr "" + +-#: rfc3315.c:1061 ++#: rfc3315.c:1100 + msgid "confirm failed" + msgstr "" + +-#: rfc3315.c:1072 ++#: rfc3315.c:1116 + msgid "all addresses still on link" + msgstr "" + +-#: rfc3315.c:1160 ++#: rfc3315.c:1204 + msgid "release received" + msgstr "" + +-#: rfc3315.c:2080 ++#: rfc3315.c:2130 + msgid "Cannot multicast to DHCPv6 server without correct interface" + msgstr "" + +@@ -1968,7 +2009,7 @@ msgstr "" + msgid "cannot create ICMPv6 socket: %s" + msgstr "" + +-#: auth.c:429 ++#: auth.c:436 + #, c-format + msgid "ignoring zone transfer request from %s" + msgstr "" +@@ -1983,50 +2024,85 @@ msgstr "" + msgid "failed to create IPset control socket: %s" + msgstr "" + ++#: dnssec.c:425 dnssec.c:469 ++#, c-format ++msgid "failed to update mtime on %s: %s" ++msgstr "" ++ + #: blockdata.c:58 + #, c-format + msgid "DNSSEC memory in use %u, max %u, allocated %u" + msgstr "" + +-#: tables.c:76 ++#: tables.c:80 + msgid "error: fill_addr missused" + msgstr "" + +-#: tables.c:105 ++#: tables.c:109 + #, c-format + msgid "failed to access pf devices: %s" + msgstr "" + +-#: tables.c:119 ++#: tables.c:123 + #, c-format + msgid "warning: no opened pf devices %s" + msgstr "" + +-#: tables.c:127 ++#: tables.c:131 + #, c-format + msgid "error: cannot use table name %s" + msgstr "" + +-#: tables.c:135 ++#: tables.c:139 + #, c-format + msgid "error: cannot strlcpy table name %s" + msgstr "" + +-#: tables.c:141 ++#: tables.c:145 + #, c-format + msgid "warning: pfr_add_tables: %s(%d)" + msgstr "" + +-#: tables.c:147 ++#: tables.c:151 + msgid "info: table created" + msgstr "" + +-#: tables.c:158 ++#: tables.c:162 + #, c-format + msgid "warning: DIOCR%sADDRS: %s" + msgstr "" + +-#: tables.c:162 ++#: tables.c:166 + #, c-format + msgid "%d addresses %s" + msgstr "" ++ ++#: inotify.c:46 ++#, c-format ++msgid "failed to create inotify: %s" ++msgstr "" ++ ++#: inotify.c:60 ++#, c-format ++msgid "cannot cannonicalise resolv-file %s: %s" ++msgstr "" ++ ++#: inotify.c:72 ++#, c-format ++msgid "directory %s for resolv-file is missing, cannot poll" ++msgstr "" ++ ++#: inotify.c:75 inotify.c:112 ++#, c-format ++msgid "failed to create inotify for %s: %s" ++msgstr "" ++ ++#: inotify.c:97 ++#, c-format ++msgid "bad dynamic directory %s: %s" ++msgstr "" ++ ++#: inotify.c:197 ++#, c-format ++msgid "inotify, new or changed file %s" ++msgstr "" +diff --git a/po/ro.po b/po/ro.po +index 6887fcb62636..0ac8bd63e25f 100644 +--- a/po/ro.po ++++ b/po/ro.po +@@ -15,71 +15,71 @@ msgstr "" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: cache.c:505 ++#: cache.c:523 + msgid "Internal error in cache." + msgstr "" + + # for compatibility purposes the letters â, ă, ÅŸ, Å£ and î can be written as their look-alike correspondent. +-#: cache.c:908 ++#: cache.c:941 + #, fuzzy, c-format + msgid "failed to load names from %s: %s" + msgstr "încărcarea numelor din %s: %s a eÅŸuat" + +-#: cache.c:934 dhcp.c:820 ++#: cache.c:967 dhcp.c:825 + #, c-format + msgid "bad address at %s line %d" + msgstr "adresă greÅŸită în %s, linia %d" + +-#: cache.c:985 dhcp.c:836 ++#: cache.c:1018 dhcp.c:841 + #, c-format + msgid "bad name at %s line %d" + msgstr "nume greÅŸit în %s linia %d" + +-#: cache.c:992 dhcp.c:911 ++#: cache.c:1027 dhcp.c:916 + #, c-format + msgid "read %s - %d addresses" + msgstr "citesc %s - %d adrese" + +-#: cache.c:1100 ++#: cache.c:1135 + msgid "cleared cache" + msgstr "memoria temporară a fost ÅŸtearsă" + +-#: cache.c:1123 ++#: cache.c:1164 + #, c-format + msgid "No IPv4 address found for %s" + msgstr "" + +-#: cache.c:1201 ++#: cache.c:1242 + #, c-format + msgid "%s is a CNAME, not giving it to the DHCP lease of %s" + msgstr "" + +-#: cache.c:1225 ++#: cache.c:1266 + #, c-format + msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s" + msgstr "nu pot da numele %s împrumutului de adresă DHCP a lui %s deoarece numeleexistă în %s cu adresa %s" + +-#: cache.c:1366 ++#: cache.c:1421 + #, c-format + msgid "time %lu" + msgstr "" + +-#: cache.c:1367 ++#: cache.c:1422 + #, fuzzy, c-format + msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries." + msgstr "cantitate de memorie temporară %d, %d/%d stocări temporare aureutilizat locaÅ£ii neexpirate." + +-#: cache.c:1369 ++#: cache.c:1424 + #, c-format + msgid "queries forwarded %u, queries answered locally %u" + msgstr "" + +-#: cache.c:1372 ++#: cache.c:1427 + #, c-format + msgid "queries for authoritative zones %u" + msgstr "" + +-#: cache.c:1398 ++#: cache.c:1453 + #, c-format + msgid "server %s#%d: queries sent %u, retried or failed %u" + msgstr "" +@@ -94,7 +94,7 @@ msgstr "ascultarea pe socket a eÅŸuat: %s" + msgid "failed to allocate memory" + msgstr "nu pot încărca %d bytes" + +-#: util.c:243 option.c:579 ++#: util.c:243 option.c:598 + msgid "could not get memory" + msgstr "nu am putut aloca memorie" + +@@ -108,610 +108,643 @@ msgstr "nu pot citi %s: %s" + msgid "failed to allocate %d bytes" + msgstr "nu pot încărca %d bytes" + +-#: util.c:429 ++#: util.c:430 + #, c-format + msgid "infinite" + msgstr "infinit" + +-#: option.c:318 ++#: option.c:330 + msgid "Specify local address(es) to listen on." + msgstr "SpecificaÅ£i adresele locale deservite." + +-#: option.c:319 ++#: option.c:331 + msgid "Return ipaddr for all hosts in specified domains." + msgstr "AfiÅŸează adresele IP ale maÅŸinilor în domeniul dat." + +-#: option.c:320 ++#: option.c:332 + msgid "Fake reverse lookups for RFC1918 private address ranges." + msgstr "Simulează căutări după adresă pentru domenii de adresă private (RFC1918)." + +-#: option.c:321 ++#: option.c:333 + msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)." + msgstr "Interpretează adresa IP ca NXDOMAIN (împotriva manipulărilor Verisign)" + +-#: option.c:322 ++#: option.c:334 + #, c-format + msgid "Specify the size of the cache in entries (defaults to %s)." + msgstr "Specifică mărimea înregistrărilor temporare (implicit e %s)." + +-#: option.c:323 ++#: option.c:335 + #, c-format + msgid "Specify configuration file (defaults to %s)." + msgstr "Specifică fiÅŸier de configurare (implicit e %s)." + +-#: option.c:324 ++#: option.c:336 + msgid "Do NOT fork into the background: run in debug mode." + msgstr "NU porneÅŸte în fundal: rulează în modul depanare." + +-#: option.c:325 ++#: option.c:337 + msgid "Do NOT forward queries with no domain part." + msgstr "NU înainta cererile ce nu conÅ£in domeniu DNS." + +-#: option.c:326 ++#: option.c:338 + msgid "Return self-pointing MX records for local hosts." + msgstr "Răspunde cu înregistrări MX spre el însuÅŸi pentru maÅŸini locale." + +-#: option.c:327 ++#: option.c:339 + msgid "Expand simple names in /etc/hosts with domain-suffix." + msgstr "Adaugă numelor simple din /etc/hosts numele domeniului ca sufix." + +-#: option.c:328 ++#: option.c:340 + msgid "Don't forward spurious DNS requests from Windows hosts." + msgstr "Nu inainta cereri DNS defecte provenite de la maÅŸini Windows." + +-#: option.c:329 ++#: option.c:341 + msgid "Enable DHCP in the range given with lease duration." + msgstr "Activează DHCP în domeniul dat cu durată limitată de împrumut." + +-#: option.c:330 ++#: option.c:342 + #, c-format + msgid "Change to this group after startup (defaults to %s)." + msgstr "Rulează sub acest grup după pornire (implicit e %s)." + +-#: option.c:331 ++#: option.c:343 + msgid "Set address or hostname for a specified machine." + msgstr "Schimbă adresa sau numele maÅŸinii specificate." + +-#: option.c:332 ++#: option.c:344 + #, fuzzy + msgid "Read DHCP host specs from file." + msgstr "nume MX invalid" + +-#: option.c:333 ++#: option.c:345 + msgid "Read DHCP option specs from file." + msgstr "" + +-#: option.c:334 ++#: option.c:346 ++#, fuzzy ++msgid "Read DHCP host specs from a directory." ++msgstr "nume MX invalid" ++ ++#: option.c:347 ++#, fuzzy ++msgid "Read DHCP options from a directory." ++msgstr "nume MX invalid" ++ ++#: option.c:348 + msgid "Evaluate conditional tag expression." + msgstr "" + +-#: option.c:335 ++#: option.c:349 + #, c-format + msgid "Do NOT load %s file." + msgstr "Nu încarcă fiÅŸierul %s." + +-#: option.c:336 ++#: option.c:350 + #, c-format + msgid "Specify a hosts file to be read in addition to %s." + msgstr "Specifică spre citire un fiÅŸier hosts adiÅ£ional la %s." + +-#: option.c:337 ++#: option.c:351 ++#, fuzzy ++msgid "Read hosts files from a directory." ++msgstr "nume MX invalid" ++ ++#: option.c:352 + msgid "Specify interface(s) to listen on." + msgstr "Specifică interfeÅ£ele deservite." + +-#: option.c:338 ++#: option.c:353 + msgid "Specify interface(s) NOT to listen on." + msgstr "Specifică interfeÅ£ele NE-deservite." + +-#: option.c:339 ++#: option.c:354 + #, fuzzy + msgid "Map DHCP user class to tag." + msgstr "Leagă clasa de utilizator DHCP cu grup de opÅ£iuni." + +-#: option.c:340 ++#: option.c:355 + msgid "Map RFC3046 circuit-id to tag." + msgstr "" + +-#: option.c:341 ++#: option.c:356 + msgid "Map RFC3046 remote-id to tag." + msgstr "" + +-#: option.c:342 ++#: option.c:357 + msgid "Map RFC3993 subscriber-id to tag." + msgstr "" + +-#: option.c:343 ++#: option.c:358 + #, fuzzy + msgid "Don't do DHCP for hosts with tag set." + msgstr "Nu furniza DHCP maÅŸinilor din grupul de opÅ£iuni." + +-#: option.c:344 ++#: option.c:359 + #, fuzzy + msgid "Force broadcast replies for hosts with tag set." + msgstr "Nu furniza DHCP maÅŸinilor din grupul de opÅ£iuni." + +-#: option.c:345 ++#: option.c:360 + msgid "Do NOT fork into the background, do NOT run in debug mode." + msgstr "NU porneÅŸte în fundal, NU rulează în modul depanare." + +-#: option.c:346 ++#: option.c:361 + msgid "Assume we are the only DHCP server on the local network." + msgstr "Presupune că suntem singurul server DHCP din reÅ£eaua locală." + +-#: option.c:347 ++#: option.c:362 + #, c-format + msgid "Specify where to store DHCP leases (defaults to %s)." + msgstr "Specifică fiÅŸierul de stocare a împrumuturilor DHCP (implicit e %s)." + +-#: option.c:348 ++#: option.c:363 + msgid "Return MX records for local hosts." + msgstr "Răspunde cu întregistrări MX pentru maÅŸini locale." + +-#: option.c:349 ++#: option.c:364 + msgid "Specify an MX record." + msgstr "Specifică o înregistrare MX." + +-#: option.c:350 ++#: option.c:365 + msgid "Specify BOOTP options to DHCP server." + msgstr "Specifică opÅ£iuni BOOTP serverului DHCP." + +-#: option.c:351 ++#: option.c:366 + #, c-format + msgid "Do NOT poll %s file, reload only on SIGHUP." + msgstr "Nu încărca fiÅŸierul %s, citeÅŸte-l doar la SIGHUP." + +-#: option.c:352 ++#: option.c:367 + msgid "Do NOT cache failed search results." + msgstr "NU memora rezultatele de căutare DNS eÅŸuatată." + +-#: option.c:353 ++#: option.c:368 + #, c-format + msgid "Use nameservers strictly in the order given in %s." + msgstr "FoloseÅŸte servere DNS strict în ordinea dată în %s." + +-#: option.c:354 ++#: option.c:369 + #, fuzzy + msgid "Specify options to be sent to DHCP clients." + msgstr "Configurează opÅ£iuni în plusce trebuie trimise clienÅ£ilor DHCP." + +-#: option.c:355 ++#: option.c:370 + msgid "DHCP option sent even if the client does not request it." + msgstr "" + +-#: option.c:356 ++#: option.c:371 + msgid "Specify port to listen for DNS requests on (defaults to 53)." + msgstr "Specifică numărul portului pentru cereri DNS (implicit e 53)." + +-#: option.c:357 ++#: option.c:372 + #, c-format + msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)." + msgstr "Marimea maximă a pachetului UDP pentru EDNS.0 (implicit e %s)." + +-#: option.c:358 ++#: option.c:373 + #, fuzzy + msgid "Log DNS queries." + msgstr "ÃŽnregistrează tranzacÅ£iile." + +-#: option.c:359 ++#: option.c:374 + #, fuzzy + msgid "Force the originating port for upstream DNS queries." + msgstr "ForÅ£ează acest port pentru datele ce pleacă." + +-#: option.c:360 ++#: option.c:375 + msgid "Do NOT read resolv.conf." + msgstr "NU citi fiÅŸierul resolv.conf" + +-#: option.c:361 ++#: option.c:376 + #, c-format + msgid "Specify path to resolv.conf (defaults to %s)." + msgstr "Specifică calea către resolv.conf (implicit e %s)." + +-#: option.c:362 ++#: option.c:377 + #, fuzzy + msgid "Specify path to file with server= options" + msgstr "Specifică o cale pentru fiÅŸierul PID. (implicit %s)." + +-#: option.c:363 ++#: option.c:378 + msgid "Specify address(es) of upstream servers with optional domains." + msgstr "Specifică adresele server(elor) superioare cu domenii opÅ£ionale." + +-#: option.c:364 ++#: option.c:379 + #, fuzzy + msgid "Specify address of upstream servers for reverse address queries" + msgstr "Specifică adresele server(elor) superioare cu domenii opÅ£ionale." + +-#: option.c:365 ++#: option.c:380 + msgid "Never forward queries to specified domains." + msgstr "Nu înaintează cererile spre domeniile specificate." + +-#: option.c:366 ++#: option.c:381 + msgid "Specify the domain to be assigned in DHCP leases." + msgstr "Specifică domeniul de transmis prin DHCP." + +-#: option.c:367 ++#: option.c:382 + msgid "Specify default target in an MX record." + msgstr "Specifică o Å£intă într-o înregistrare MX." + +-#: option.c:368 ++#: option.c:383 + msgid "Specify time-to-live in seconds for replies from /etc/hosts." + msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts." + +-#: option.c:369 ++#: option.c:384 + #, fuzzy + msgid "Specify time-to-live in seconds for negative caching." + msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts." + +-#: option.c:370 ++#: option.c:385 + #, fuzzy + msgid "Specify time-to-live in seconds for maximum TTL to send to clients." + msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts." + +-#: option.c:371 ++#: option.c:386 ++#, fuzzy ++msgid "Specify time-to-live ceiling for cache." ++msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts." ++ ++#: option.c:387 ++#, fuzzy ++msgid "Specify time-to-live floor for cache." ++msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts." ++ ++#: option.c:388 + #, c-format + msgid "Change to this user after startup. (defaults to %s)." + msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)." + +-#: option.c:372 ++#: option.c:389 + #, fuzzy + msgid "Map DHCP vendor class to tag." + msgstr "Trimite opÅ£iuni DHCP în funcÅ£ie de marca plăcii de reÅ£ea." + +-#: option.c:373 ++#: option.c:390 + msgid "Display dnsmasq version and copyright information." + msgstr "AfiÅŸează versiunea dnsmasq ÅŸi drepturile de autor." + +-#: option.c:374 ++#: option.c:391 + msgid "Translate IPv4 addresses from upstream servers." + msgstr "Traduce adresele IPv4 de la serverele DNS superioare." + +-#: option.c:375 ++#: option.c:392 + msgid "Specify a SRV record." + msgstr "Specifică o înregistrare SRV." + +-#: option.c:376 ++#: option.c:393 + msgid "Display this message. Use --help dhcp for known DHCP options." + msgstr "" + +-#: option.c:377 ++#: option.c:394 + #, fuzzy, c-format + msgid "Specify path of PID file (defaults to %s)." + msgstr "Specifică o cale pentru fiÅŸierul PID. (implicit %s)." + +-#: option.c:378 ++#: option.c:395 + #, c-format + msgid "Specify maximum number of DHCP leases (defaults to %s)." + msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)." + +-#: option.c:379 ++#: option.c:396 + msgid "Answer DNS queries based on the interface a query was sent to." + msgstr "Răspunde cererilor DNS în funcÅ£ie de interfaÅ£a pe care a venit cererea." + +-#: option.c:380 ++#: option.c:397 + msgid "Specify TXT DNS record." + msgstr "Specifică o înregistrare TXT." + +-#: option.c:381 ++#: option.c:398 + #, fuzzy + msgid "Specify PTR DNS record." + msgstr "Specifică o înregistrare TXT." + +-#: option.c:382 ++#: option.c:399 + msgid "Give DNS name to IPv4 address of interface." + msgstr "" + +-#: option.c:383 ++#: option.c:400 + msgid "Bind only to interfaces in use." + msgstr "Ascultă doar pe interfeÅ£ele active." + +-#: option.c:384 ++#: option.c:401 + #, c-format + msgid "Read DHCP static host information from %s." + msgstr "CiteÅŸte informaÅ£ii DHCP statice despre maÅŸină din %s." + +-#: option.c:385 ++#: option.c:402 + msgid "Enable the DBus interface for setting upstream servers, etc." + msgstr "Activeaza interfaÅ£a DBus pentru configurarea serverelor superioare." + +-#: option.c:386 ++#: option.c:403 + msgid "Do not provide DHCP on this interface, only provide DNS." + msgstr "Nu activează DHCP ci doar DNS pe această interfaţă." + +-#: option.c:387 ++#: option.c:404 + msgid "Enable dynamic address allocation for bootp." + msgstr "Activează alocarea dinamică a adreselor pentru BOOTP." + +-#: option.c:388 ++#: option.c:405 + #, fuzzy + msgid "Map MAC address (with wildcards) to option set." + msgstr "Trimite opÅ£iuni DHCP în funcÅ£ie de marca plăcii de reÅ£ea." + +-#: option.c:389 ++#: option.c:406 + msgid "Treat DHCP requests on aliases as arriving from interface." + msgstr "" + +-#: option.c:390 ++#: option.c:407 + msgid "Disable ICMP echo address checking in the DHCP server." + msgstr "" + +-#: option.c:391 ++#: option.c:408 + msgid "Shell script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:392 ++#: option.c:409 + msgid "Lua script to run on DHCP lease creation and destruction." + msgstr "" + +-#: option.c:393 ++#: option.c:410 + msgid "Run lease-change scripts as this user." + msgstr "" + +-#: option.c:394 ++#: option.c:411 + msgid "Read configuration from all the files in this directory." + msgstr "" + +-#: option.c:395 ++#: option.c:412 + #, fuzzy + msgid "Log to this syslog facility or file. (defaults to DAEMON)" + msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)." + +-#: option.c:396 ++#: option.c:413 + msgid "Do not use leasefile." + msgstr "" + +-#: option.c:397 ++#: option.c:414 + #, fuzzy, c-format + msgid "Maximum number of concurrent DNS queries. (defaults to %s)" + msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)." + +-#: option.c:398 ++#: option.c:415 + #, c-format + msgid "Clear DNS cache when reloading %s." + msgstr "" + +-#: option.c:399 ++#: option.c:416 + msgid "Ignore hostnames provided by DHCP clients." + msgstr "" + +-#: option.c:400 ++#: option.c:417 + msgid "Do NOT reuse filename and server fields for extra DHCP options." + msgstr "" + +-#: option.c:401 ++#: option.c:418 + msgid "Enable integrated read-only TFTP server." + msgstr "" + +-#: option.c:402 ++#: option.c:419 + msgid "Export files by TFTP only from the specified subtree." + msgstr "" + +-#: option.c:403 ++#: option.c:420 + msgid "Add client IP address to tftp-root." + msgstr "" + +-#: option.c:404 ++#: option.c:421 + msgid "Allow access only to files owned by the user running dnsmasq." + msgstr "" + +-#: option.c:405 ++#: option.c:422 + #, fuzzy, c-format + msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)." + msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)." + +-#: option.c:406 ++#: option.c:423 + msgid "Disable the TFTP blocksize extension." + msgstr "" + +-#: option.c:407 ++#: option.c:424 + msgid "Convert TFTP filenames to lowercase" + msgstr "" + +-#: option.c:408 ++#: option.c:425 + msgid "Ephemeral port range for use by TFTP transfers." + msgstr "" + +-#: option.c:409 ++#: option.c:426 + msgid "Extra logging for DHCP." + msgstr "" + +-#: option.c:410 ++#: option.c:427 + msgid "Enable async. logging; optionally set queue length." + msgstr "" + +-#: option.c:411 ++#: option.c:428 + msgid "Stop DNS rebinding. Filter private IP ranges when resolving." + msgstr "" + +-#: option.c:412 ++#: option.c:429 + msgid "Allow rebinding of 127.0.0.0/8, for RBL servers." + msgstr "" + +-#: option.c:413 ++#: option.c:430 + msgid "Inhibit DNS-rebind protection on this domain." + msgstr "" + +-#: option.c:414 ++#: option.c:431 + msgid "Always perform DNS queries to all servers." + msgstr "" + +-#: option.c:415 ++#: option.c:432 + msgid "Set tag if client includes matching option in request." + msgstr "" + +-#: option.c:416 ++#: option.c:433 + msgid "Use alternative ports for DHCP." + msgstr "" + +-#: option.c:417 ++#: option.c:434 + #, fuzzy + msgid "Specify NAPTR DNS record." + msgstr "Specifică o înregistrare TXT." + +-#: option.c:418 ++#: option.c:435 + msgid "Specify lowest port available for DNS query transmission." + msgstr "" + +-#: option.c:419 ++#: option.c:436 + msgid "Use only fully qualified domain names for DHCP clients." + msgstr "" + +-#: option.c:420 ++#: option.c:437 + msgid "Generate hostnames based on MAC address for nameless clients." + msgstr "" + +-#: option.c:421 ++#: option.c:438 + msgid "Use these DHCP relays as full proxies." + msgstr "" + +-#: option.c:422 ++#: option.c:439 + msgid "Relay DHCP requests to a remote server" + msgstr "" + +-#: option.c:423 ++#: option.c:440 + msgid "Specify alias name for LOCAL DNS name." + msgstr "" + +-#: option.c:424 ++#: option.c:441 + #, fuzzy + msgid "Prompt to send to PXE clients." + msgstr "Configurează opÅ£iuni în plusce trebuie trimise clienÅ£ilor DHCP." + +-#: option.c:425 ++#: option.c:442 + msgid "Boot service for PXE menu." + msgstr "" + +-#: option.c:426 ++#: option.c:443 + msgid "Check configuration syntax." + msgstr "" + +-#: option.c:427 ++#: option.c:444 + msgid "Add requestor's MAC address to forwarded DNS queries." + msgstr "" + +-#: option.c:428 ++#: option.c:445 + msgid "Add requestor's IP subnet to forwarded DNS queries." + msgstr "" + +-#: option.c:429 ++#: option.c:446 + #, fuzzy + msgid "Proxy DNSSEC validation results from upstream nameservers." + msgstr "Traduce adresele IPv4 de la serverele DNS superioare." + +-#: option.c:430 ++#: option.c:447 + msgid "Attempt to allocate sequential IP addresses to DHCP clients." + msgstr "" + +-#: option.c:431 ++#: option.c:448 + msgid "Copy connection-track mark from queries to upstream connections." + msgstr "" + +-#: option.c:432 ++#: option.c:449 + msgid "Allow DHCP clients to do their own DDNS updates." + msgstr "" + +-#: option.c:433 ++#: option.c:450 + msgid "Send router-advertisements for interfaces doing DHCPv6" + msgstr "" + +-#: option.c:434 ++#: option.c:451 + msgid "Specify DUID_EN-type DHCPv6 server DUID" + msgstr "" + +-#: option.c:435 ++#: option.c:452 + #, fuzzy + msgid "Specify host (A/AAAA and PTR) records" + msgstr "Specifică o înregistrare MX." + +-#: option.c:436 ++#: option.c:453 + #, fuzzy + msgid "Specify arbitrary DNS resource record" + msgstr "Specifică o înregistrare TXT." + +-#: option.c:437 ++#: option.c:454 + #, fuzzy + msgid "Bind to interfaces in use - check for new interfaces" + msgstr "interfaţă necunoscută %s" + +-#: option.c:438 ++#: option.c:455 + msgid "Export local names to global DNS" + msgstr "" + +-#: option.c:439 ++#: option.c:456 + msgid "Domain to export to global DNS" + msgstr "" + +-#: option.c:440 ++#: option.c:457 + msgid "Set TTL for authoritative replies" + msgstr "" + +-#: option.c:441 ++#: option.c:458 + msgid "Set authoritive zone information" + msgstr "" + +-#: option.c:442 ++#: option.c:459 + msgid "Secondary authoritative nameservers for forward domains" + msgstr "" + +-#: option.c:443 ++#: option.c:460 + msgid "Peers which are allowed to do zone transfer" + msgstr "" + +-#: option.c:444 ++#: option.c:461 + msgid "Specify ipsets to which matching domains should be added" + msgstr "" + +-#: option.c:445 ++#: option.c:462 + msgid "Specify a domain and address range for synthesised names" + msgstr "" + +-#: option.c:446 ++#: option.c:463 + msgid "Activate DNSSEC validation" + msgstr "" + +-#: option.c:447 ++#: option.c:464 + msgid "Specify trust anchor key digest." + msgstr "" + +-#: option.c:448 ++#: option.c:465 + msgid "Disable upstream checking for DNSSEC debugging." + msgstr "" + +-#: option.c:449 ++#: option.c:466 + msgid "Ensure answers without DNSSEC are in unsigned zones." + msgstr "" + +-#: option.c:450 ++#: option.c:467 + msgid "Don't check DNSSEC signature timestamps until first cache-reload" + msgstr "" + +-#: option.c:452 ++#: option.c:468 ++msgid "Timestamp file to verify system clock for DNSSEC" ++msgstr "" ++ ++#: option.c:470 + msgid "Specify DHCPv6 prefix class" + msgstr "" + +-#: option.c:454 ++#: option.c:472 + msgid "Set priority, resend-interval and router-lifetime" + msgstr "" + +-#: option.c:455 ++#: option.c:473 + msgid "Do not log routine DHCP." + msgstr "" + +-#: option.c:456 ++#: option.c:474 + msgid "Do not log routine DHCPv6." + msgstr "" + +-#: option.c:457 ++#: option.c:475 + msgid "Do not log RA." + msgstr "" + +-#: option.c:458 ++#: option.c:476 + msgid "Accept queries only from directly-connected networks" + msgstr "" + +-#: option.c:459 ++#: option.c:477 + msgid "Detect and remove DNS forwarding loops" + msgstr "" + +-#: option.c:661 ++#: option.c:478 ++msgid "Ignore DNS responses containing ipaddr." ++msgstr "" ++ ++#: option.c:680 + #, c-format + msgid "" + "Usage: dnsmasq [options]\n" +@@ -720,332 +753,332 @@ msgstr "" + "Utilizare: dnsmasq [opÅ£iuni]\n" + "\n" + +-#: option.c:663 ++#: option.c:682 + #, c-format + msgid "Use short options only on the command line.\n" + msgstr "FolosiÅ£i opÅ£iunile prescurtate doar în linie de comandă.\n" + +-#: option.c:665 ++#: option.c:684 + #, fuzzy, c-format + msgid "Valid options are:\n" + msgstr "OpÅ£iunile valide sunt:\n" + +-#: option.c:722 option.c:726 ++#: option.c:741 option.c:745 + msgid "bad port" + msgstr "port invalid" + +-#: option.c:753 option.c:785 ++#: option.c:772 option.c:804 + msgid "interface binding not supported" + msgstr "" + +-#: option.c:762 option.c:3494 ++#: option.c:781 option.c:3570 + #, fuzzy + msgid "bad interface name" + msgstr "nume MX invalid" + +-#: option.c:792 ++#: option.c:811 + #, fuzzy + msgid "bad address" + msgstr "citesc %s - %d adrese" + +-#: option.c:974 ++#: option.c:993 + msgid "unsupported encapsulation for IPv6 option" + msgstr "" + +-#: option.c:988 ++#: option.c:1007 + msgid "bad dhcp-option" + msgstr "dhcp-option invalid" + +-#: option.c:1056 ++#: option.c:1075 + #, fuzzy + msgid "bad IP address" + msgstr "citesc %s - %d adrese" + +-#: option.c:1059 option.c:1197 option.c:2812 ++#: option.c:1078 option.c:1216 option.c:2888 + #, fuzzy + msgid "bad IPv6 address" + msgstr "citesc %s - %d adrese" + +-#: option.c:1224 option.c:1318 ++#: option.c:1243 option.c:1337 + msgid "bad domain in dhcp-option" + msgstr "domeniu DNS invalid în declaraÅ£ia dhcp-option" + +-#: option.c:1356 ++#: option.c:1375 + msgid "dhcp-option too long" + msgstr "declararea dhcp-option este prea lungă" + +-#: option.c:1363 ++#: option.c:1382 + msgid "illegal dhcp-match" + msgstr "" + +-#: option.c:1425 ++#: option.c:1444 + msgid "illegal repeated flag" + msgstr "" + +-#: option.c:1433 ++#: option.c:1452 + msgid "illegal repeated keyword" + msgstr "" + +-#: option.c:1495 option.c:4092 ++#: option.c:1517 option.c:4186 + #, fuzzy, c-format + msgid "cannot access directory %s: %s" + msgstr "nu pot citi %s: %s" + +-#: option.c:1541 tftp.c:493 ++#: option.c:1563 tftp.c:493 + #, fuzzy, c-format + msgid "cannot access %s: %s" + msgstr "nu pot citi %s: %s" + +-#: option.c:1588 ++#: option.c:1615 + msgid "setting log facility is not possible under Android" + msgstr "" + +-#: option.c:1597 ++#: option.c:1624 + msgid "bad log facility" + msgstr "" + +-#: option.c:1650 ++#: option.c:1677 + msgid "bad MX preference" + msgstr "preferinţă MX invalidă" + +-#: option.c:1655 ++#: option.c:1682 + msgid "bad MX name" + msgstr "nume MX invalid" + +-#: option.c:1669 ++#: option.c:1696 + msgid "bad MX target" + msgstr "Å£intă MX invalidă" + +-#: option.c:1681 ++#: option.c:1708 + msgid "cannot run scripts under uClinux" + msgstr "" + +-#: option.c:1683 ++#: option.c:1710 + msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts" + msgstr "" + +-#: option.c:1687 ++#: option.c:1714 + msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts" + msgstr "" + +-#: option.c:1928 option.c:1966 option.c:2015 ++#: option.c:1970 option.c:2015 option.c:2071 + #, fuzzy + msgid "bad prefix" + msgstr "port invalid" + +-#: option.c:2289 ++#: option.c:2352 + msgid "recompile with HAVE_IPSET defined to enable ipset directives" + msgstr "" + +-#: option.c:2469 ++#: option.c:2545 + #, fuzzy + msgid "bad port range" + msgstr "port invalid" + +-#: option.c:2485 ++#: option.c:2561 + msgid "bad bridge-interface" + msgstr "" + +-#: option.c:2545 ++#: option.c:2621 + msgid "only one tag allowed" + msgstr "" + +-#: option.c:2565 option.c:2577 option.c:2683 option.c:2724 ++#: option.c:2641 option.c:2653 option.c:2759 option.c:2800 + msgid "bad dhcp-range" + msgstr "dhcp-range invalid" + +-#: option.c:2592 ++#: option.c:2668 + msgid "inconsistent DHCP range" + msgstr "domeniu DHCP inconsistent" + +-#: option.c:2651 ++#: option.c:2727 + msgid "prefix length must be exactly 64 for RA subnets" + msgstr "" + +-#: option.c:2653 ++#: option.c:2729 + msgid "prefix length must be exactly 64 for subnet constructors" + msgstr "" + +-#: option.c:2657 ++#: option.c:2733 + msgid "prefix length must be at least 64" + msgstr "" + +-#: option.c:2660 ++#: option.c:2736 + #, fuzzy + msgid "inconsistent DHCPv6 range" + msgstr "domeniu DHCP inconsistent" + +-#: option.c:2671 ++#: option.c:2747 + msgid "prefix must be zero with \"constructor:\" argument" + msgstr "" + +-#: option.c:2782 option.c:2830 ++#: option.c:2858 option.c:2906 + #, fuzzy + msgid "bad hex constant" + msgstr "dhcp-host invalid" + +-#: option.c:2804 ++#: option.c:2880 + msgid "cannot match tags in --dhcp-host" + msgstr "" + +-#: option.c:2852 ++#: option.c:2928 + #, fuzzy, c-format + msgid "duplicate dhcp-host IP address %s" + msgstr "adresă IP duplicat %s în declaraÅ£ia dhcp-config." + +-#: option.c:2910 ++#: option.c:2986 + #, fuzzy + msgid "bad DHCP host name" + msgstr "nume MX invalid" + +-#: option.c:2992 ++#: option.c:3068 + #, fuzzy + msgid "bad tag-if" + msgstr "Å£intă MX invalidă" + +-#: option.c:3316 option.c:3710 ++#: option.c:3392 option.c:3786 + msgid "invalid port number" + msgstr "număr de port invalid" + +-#: option.c:3378 ++#: option.c:3454 + #, fuzzy + msgid "bad dhcp-proxy address" + msgstr "citesc %s - %d adrese" + +-#: option.c:3404 ++#: option.c:3480 + #, fuzzy + msgid "Bad dhcp-relay" + msgstr "dhcp-range invalid" + +-#: option.c:3430 ++#: option.c:3506 + msgid "bad RA-params" + msgstr "" + +-#: option.c:3439 ++#: option.c:3515 + msgid "bad DUID" + msgstr "" + +-#: option.c:3481 ++#: option.c:3557 + #, fuzzy + msgid "invalid alias range" + msgstr "pondere invalidă" + +-#: option.c:3535 ++#: option.c:3611 + msgid "bad CNAME" + msgstr "" + +-#: option.c:3540 ++#: option.c:3616 + msgid "duplicate CNAME" + msgstr "" + +-#: option.c:3560 ++#: option.c:3636 + #, fuzzy + msgid "bad PTR record" + msgstr "înregistrare SRV invalidă" + +-#: option.c:3591 ++#: option.c:3667 + #, fuzzy + msgid "bad NAPTR record" + msgstr "înregistrare SRV invalidă" + +-#: option.c:3625 ++#: option.c:3701 + #, fuzzy + msgid "bad RR record" + msgstr "înregistrare SRV invalidă" + +-#: option.c:3655 ++#: option.c:3731 + msgid "bad TXT record" + msgstr "înregistrare TXT invalidă" + +-#: option.c:3696 ++#: option.c:3772 + msgid "bad SRV record" + msgstr "înregistrare SRV invalidă" + +-#: option.c:3703 ++#: option.c:3779 + msgid "bad SRV target" + msgstr "Å£intă SRV invalidă" + +-#: option.c:3717 ++#: option.c:3793 + msgid "invalid priority" + msgstr "prioritate invalidă" + +-#: option.c:3724 ++#: option.c:3800 + msgid "invalid weight" + msgstr "pondere invalidă" + +-#: option.c:3748 ++#: option.c:3824 + #, fuzzy + msgid "Bad host-record" + msgstr "înregistrare SRV invalidă" + +-#: option.c:3765 ++#: option.c:3841 + #, fuzzy + msgid "Bad name in host-record" + msgstr "nume invalid în %s" + +-#: option.c:3826 ++#: option.c:3906 + #, fuzzy + msgid "bad trust anchor" + msgstr "port invalid" + +-#: option.c:3840 ++#: option.c:3920 + msgid "bad HEX in trust anchor" + msgstr "" + +-#: option.c:3850 ++#: option.c:3930 + msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DNSSEC/DBus support)" + msgstr "" + +-#: option.c:3909 ++#: option.c:3989 + msgid "missing \"" + msgstr "lipseÅŸte \"" + +-#: option.c:3966 ++#: option.c:4046 + msgid "bad option" + msgstr "opÅ£iune invalidă" + +-#: option.c:3968 ++#: option.c:4048 + msgid "extraneous parameter" + msgstr "parametru nerecunoscut" + +-#: option.c:3970 ++#: option.c:4050 + msgid "missing parameter" + msgstr "parametru lipsa" + +-#: option.c:3972 ++#: option.c:4052 + #, fuzzy + msgid "illegal option" + msgstr "opÅ£iune invalidă" + +-#: option.c:3979 ++#: option.c:4059 + msgid "error" + msgstr "eroare" + +-#: option.c:3981 ++#: option.c:4061 + #, fuzzy, c-format + msgid " at line %d of %s" + msgstr "%s la linia %d din %%s" + +-#: option.c:4045 option.c:4168 tftp.c:667 +-#, c-format +-msgid "cannot read %s: %s" +-msgstr "nu pot citi %s: %s" +- +-#: option.c:4229 option.c:4265 ++#: option.c:4076 option.c:4323 option.c:4359 + #, fuzzy, c-format + msgid "read %s" + msgstr "citesc %s" + +-#: option.c:4331 ++#: option.c:4139 option.c:4262 tftp.c:667 ++#, c-format ++msgid "cannot read %s: %s" ++msgstr "nu pot citi %s: %s" ++ ++#: option.c:4425 + msgid "junk found in command line" + msgstr "" + +-#: option.c:4366 ++#: option.c:4460 + #, c-format + msgid "Dnsmasq version %s %s\n" + msgstr "dnsmasq versiunea %s %s\n" + +-#: option.c:4367 ++#: option.c:4461 + #, fuzzy, c-format + msgid "" + "Compile time options: %s\n" +@@ -1054,89 +1087,89 @@ msgstr "" + "OpÅ£iuni cu care a fost compilat %s\n" + "\n" + +-#: option.c:4368 ++#: option.c:4462 + #, c-format + msgid "This software comes with ABSOLUTELY NO WARRANTY.\n" + msgstr "Acest program vine FÄ‚RÄ‚ NICI O GARANÅ¢IE.\n" + +-#: option.c:4369 ++#: option.c:4463 + #, c-format + msgid "Dnsmasq is free software, and you are welcome to redistribute it\n" + msgstr "Dnsmasq este un program gratuit, sunteÅ£i invitaÅ£i să-l redistribuiÅ£i\n" + +-#: option.c:4370 ++#: option.c:4464 + #, fuzzy, c-format + msgid "under the terms of the GNU General Public License, version 2 or 3.\n" + msgstr "în termenii LicenÅ£ei publice generale GNU, versiunea 2.\n" + +-#: option.c:4381 ++#: option.c:4475 + msgid "try --help" + msgstr "" + +-#: option.c:4383 ++#: option.c:4477 + msgid "try -w" + msgstr "" + +-#: option.c:4385 ++#: option.c:4479 + #, fuzzy, c-format + msgid "bad command line options: %s" + msgstr "opÅ£iuni în linie de comandă invalide: %s." + +-#: option.c:4434 ++#: option.c:4535 + #, c-format + msgid "cannot get host-name: %s" + msgstr "nu pot citi numele maÅŸinii: %s" + +-#: option.c:4462 ++#: option.c:4563 + msgid "only one resolv.conf file allowed in no-poll mode." + msgstr "se permite un singur fiÅŸier resolv.conf în modul no-poll" + +-#: option.c:4472 ++#: option.c:4573 + msgid "must have exactly one resolv.conf to read domain from." + msgstr "am nevoie de un singur resolv.conf din care să citesc numele domeniului." + +-#: option.c:4475 network.c:1506 dhcp.c:769 ++#: option.c:4576 network.c:1506 dhcp.c:774 + #, fuzzy, c-format + msgid "failed to read %s: %s" + msgstr "nu pot citi %s: %s" + +-#: option.c:4492 ++#: option.c:4593 + #, c-format + msgid "no search directive found in %s" + msgstr "nu s-a găsit nici un criteriu de căutare în %s" + +-#: option.c:4513 ++#: option.c:4614 + msgid "there must be a default domain when --dhcp-fqdn is set" + msgstr "" + +-#: option.c:4522 ++#: option.c:4623 + msgid "syntax check OK" + msgstr "" + +-#: forward.c:114 ++#: forward.c:111 + #, fuzzy, c-format + msgid "failed to send packet: %s" + msgstr "ascultarea pe socket a eÅŸuat: %s" + +-#: forward.c:574 ++#: forward.c:572 + msgid "discarding DNS reply: subnet option mismatch" + msgstr "" + +-#: forward.c:597 ++#: forward.c:595 + #, c-format + msgid "nameserver %s refused to do a recursive query" + msgstr "serverul DNS %s refuză interogările recursive" + +-#: forward.c:629 ++#: forward.c:627 + #, c-format + msgid "possible DNS-rebind attack detected: %s" + msgstr "" + +-#: forward.c:1132 forward.c:1663 ++#: forward.c:1156 forward.c:1722 + msgid "Ignoring query from non-local network" + msgstr "" + +-#: forward.c:2101 ++#: forward.c:2178 + #, fuzzy, c-format + msgid "Maximum number of concurrent DNS queries reached (max: %d)" + msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)." +@@ -1226,273 +1259,286 @@ msgstr "folosim serverul DNS %s#%d" + msgid "using nameserver %s#%d" + msgstr "folosim serverul DNS %s#%d" + +-#: dnsmasq.c:154 +-msgid "No trust anchors provided for DNSSEC" ++#: dnsmasq.c:149 ++msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" + msgstr "" + +-#: dnsmasq.c:157 +-msgid "Cannot reduce cache size from default when DNSSEC enabled" ++#: dnsmasq.c:156 ++msgid "no trust anchors provided for DNSSEC" + msgstr "" + + #: dnsmasq.c:159 ++msgid "cannot reduce cache size from default when DNSSEC enabled" ++msgstr "" ++ ++#: dnsmasq.c:161 + #, fuzzy + msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h" + msgstr "DBus nu este disponibil: puneÅ£i HAVE_DBUS in src/config.h" + +-#: dnsmasq.c:165 ++#: dnsmasq.c:167 + #, fuzzy + msgid "TFTP server not available: set HAVE_TFTP in src/config.h" + msgstr "DBus nu este disponibil: puneÅ£i HAVE_DBUS in src/config.h" + +-#: dnsmasq.c:170 +-msgid "Cannot use --conntrack AND --query-port" ++#: dnsmasq.c:172 ++msgid "cannot use --conntrack AND --query-port" + msgstr "" + +-#: dnsmasq.c:173 ++#: dnsmasq.c:175 + #, fuzzy +-msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h" ++msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" + msgstr "DBus nu este disponibil: puneÅ£i HAVE_DBUS in src/config.h" + +-#: dnsmasq.c:178 ++#: dnsmasq.c:180 + msgid "asychronous logging is not available under Solaris" + msgstr "" + +-#: dnsmasq.c:183 ++#: dnsmasq.c:185 + msgid "asychronous logging is not available under Android" + msgstr "" + +-#: dnsmasq.c:188 ++#: dnsmasq.c:190 + #, fuzzy + msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h" + msgstr "DBus nu este disponibil: puneÅ£i HAVE_DBUS in src/config.h" + +-#: dnsmasq.c:193 ++#: dnsmasq.c:195 + #, fuzzy +-msgid "Loop detection not available: set HAVE_LOOP in src/config.h" ++msgid "loop detection not available: set HAVE_LOOP in src/config.h" + msgstr "DBus nu este disponibil: puneÅ£i HAVE_DBUS in src/config.h" + +-#: dnsmasq.c:201 ++#: dnsmasq.c:203 + msgid "zone serial must be configured in --auth-soa" + msgstr "" + +-#: dnsmasq.c:219 ++#: dnsmasq.c:221 + msgid "dhcp-range constructor not available on this platform" + msgstr "" + +-#: dnsmasq.c:262 ++#: dnsmasq.c:264 + msgid "cannot set --bind-interfaces and --bind-dynamic" + msgstr "" + +-#: dnsmasq.c:265 ++#: dnsmasq.c:267 + #, c-format + msgid "failed to find list of interfaces: %s" + msgstr "enumerarea interfeÅ£elor a eÅŸuat: %s" + +-#: dnsmasq.c:274 ++#: dnsmasq.c:276 + #, c-format + msgid "unknown interface %s" + msgstr "interfaţă necunoscută %s" + +-#: dnsmasq.c:330 dnsmasq.c:954 ++#: dnsmasq.c:340 dnsmasq.c:1004 + #, c-format + msgid "DBus error: %s" + msgstr "eroare DBus: %s" + +-#: dnsmasq.c:333 ++#: dnsmasq.c:343 + msgid "DBus not available: set HAVE_DBUS in src/config.h" + msgstr "DBus nu este disponibil: puneÅ£i HAVE_DBUS in src/config.h" + +-#: dnsmasq.c:361 ++#: dnsmasq.c:371 + #, c-format + msgid "unknown user or group: %s" + msgstr "" + +-#: dnsmasq.c:416 ++#: dnsmasq.c:426 + #, c-format + msgid "cannot chdir to filesystem root: %s" + msgstr "" + +-#: dnsmasq.c:653 ++#: dnsmasq.c:667 + #, fuzzy, c-format + msgid "started, version %s DNS disabled" + msgstr "am pornit, versiunea %s memorie temporară dezactivată" + +-#: dnsmasq.c:655 ++#: dnsmasq.c:669 + #, c-format + msgid "started, version %s cachesize %d" + msgstr "am ponit, versiunea %s memorie temporară %d" + +-#: dnsmasq.c:657 ++#: dnsmasq.c:671 + #, c-format + msgid "started, version %s cache disabled" + msgstr "am pornit, versiunea %s memorie temporară dezactivată" + +-#: dnsmasq.c:659 ++#: dnsmasq.c:673 + #, c-format + msgid "compile time options: %s" + msgstr "compilat cu opÅ£iunile: %s" + +-#: dnsmasq.c:665 ++#: dnsmasq.c:679 + msgid "DBus support enabled: connected to system bus" + msgstr "suportul DBus activ: sunt conectat la magistrala sistem" + +-#: dnsmasq.c:667 ++#: dnsmasq.c:681 + msgid "DBus support enabled: bus connection pending" + msgstr "suportul DBus activ: aÅŸtept conexiunea la magistrală" + +-#: dnsmasq.c:672 ++#: dnsmasq.c:686 + msgid "DNS service limited to local subnets" + msgstr "" + +-#: dnsmasq.c:677 ++#: dnsmasq.c:702 + msgid "DNSSEC validation enabled" + msgstr "" + +-#: dnsmasq.c:679 ++#: dnsmasq.c:705 + msgid "DNSSEC signature timestamps not checked until first cache reload" + msgstr "" + ++#: dnsmasq.c:708 ++msgid "DNSSEC signature timestamps not checked until system time valid" ++msgstr "" ++ + # for compatibility purposes the letters â, ă, ÅŸ, Å£ and î can be written as their look-alike correspondent. +-#: dnsmasq.c:684 ++#: dnsmasq.c:713 + #, fuzzy, c-format + msgid "warning: failed to change owner of %s: %s" + msgstr "încărcarea numelor din %s: %s a eÅŸuat" + +-#: dnsmasq.c:688 ++#: dnsmasq.c:717 + msgid "setting --bind-interfaces option because of OS limitations" + msgstr "specific opÅ£iunea --bind-interfaces din cauza limitărilor SO" + +-#: dnsmasq.c:698 ++#: dnsmasq.c:727 + #, c-format + msgid "warning: interface %s does not currently exist" + msgstr "atenÅ£ie: interfaÅ£a %s nu există momentan" + +-#: dnsmasq.c:703 ++#: dnsmasq.c:732 + msgid "warning: ignoring resolv-file flag because no-resolv is set" + msgstr "" + +-#: dnsmasq.c:706 ++#: dnsmasq.c:735 + #, fuzzy + msgid "warning: no upstream servers configured" + msgstr "configurăm serverele superioare prin Dbus" + +-#: dnsmasq.c:710 ++#: dnsmasq.c:739 + #, c-format + msgid "asynchronous logging enabled, queue limit is %d messages" + msgstr "" + +-#: dnsmasq.c:731 ++#: dnsmasq.c:760 + msgid "IPv6 router advertisement enabled" + msgstr "" + +-#: dnsmasq.c:736 ++#: dnsmasq.c:765 + #, c-format + msgid "DHCP, sockets bound exclusively to interface %s" + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + msgid "root is " + msgstr "" + +-#: dnsmasq.c:753 ++#: dnsmasq.c:782 + #, fuzzy + msgid "enabled" + msgstr "dezactivat" + +-#: dnsmasq.c:755 ++#: dnsmasq.c:784 + msgid "secure mode" + msgstr "" + +-#: dnsmasq.c:781 ++#: dnsmasq.c:810 + #, c-format + msgid "restricting maximum simultaneous TFTP transfers to %d" + msgstr "" + +-#: dnsmasq.c:956 ++#: dnsmasq.c:1006 + msgid "connected to system DBus" + msgstr "magistrala sistem Dbus conectată" + +-#: dnsmasq.c:1106 ++#: dnsmasq.c:1156 + #, c-format + msgid "cannot fork into background: %s" + msgstr "" + +-#: dnsmasq.c:1109 ++#: dnsmasq.c:1159 + #, fuzzy, c-format + msgid "failed to create helper: %s" + msgstr "nu pot citi %s: %s" + +-#: dnsmasq.c:1112 ++#: dnsmasq.c:1162 + #, c-format + msgid "setting capabilities failed: %s" + msgstr "" + + # for compatibility purposes the letters â, ă, ÅŸ, Å£ and î can be written as their look-alike correspondent. +-#: dnsmasq.c:1115 ++#: dnsmasq.c:1165 + #, fuzzy, c-format + msgid "failed to change user-id to %s: %s" + msgstr "încărcarea numelor din %s: %s a eÅŸuat" + + # for compatibility purposes the letters â, ă, ÅŸ, Å£ and î can be written as their look-alike correspondent. +-#: dnsmasq.c:1118 ++#: dnsmasq.c:1168 + #, fuzzy, c-format + msgid "failed to change group-id to %s: %s" + msgstr "încărcarea numelor din %s: %s a eÅŸuat" + +-#: dnsmasq.c:1121 ++#: dnsmasq.c:1171 + #, fuzzy, c-format + msgid "failed to open pidfile %s: %s" + msgstr "nu pot citi %s: %s" + +-#: dnsmasq.c:1124 ++#: dnsmasq.c:1174 + #, fuzzy, c-format + msgid "cannot open log %s: %s" + msgstr "nu pot deschide %s:%s" + +-#: dnsmasq.c:1127 ++#: dnsmasq.c:1177 + #, fuzzy, c-format + msgid "failed to load Lua script: %s" + msgstr "nu pot încărca %s: %s" + +-#: dnsmasq.c:1130 ++#: dnsmasq.c:1180 + #, c-format + msgid "TFTP directory %s inaccessible: %s" + msgstr "" + +-#: dnsmasq.c:1151 ++#: dnsmasq.c:1183 ++#, fuzzy, c-format ++msgid "cannot create timestamp file %s: %s" ++msgstr "nu pot creea sau deschide fiÅŸierul cu împrumuturi: %s" ++ ++#: dnsmasq.c:1204 + msgid "now checking DNSSEC signature timestamps" + msgstr "" + +-#: dnsmasq.c:1218 ++#: dnsmasq.c:1271 + #, c-format + msgid "script process killed by signal %d" + msgstr "" + +-#: dnsmasq.c:1222 ++#: dnsmasq.c:1275 + #, c-format + msgid "script process exited with status %d" + msgstr "" + +-#: dnsmasq.c:1226 ++#: dnsmasq.c:1279 + #, fuzzy, c-format + msgid "failed to execute %s: %s" + msgstr "accesarea serverului %s a eÅŸuat: %s" + +-#: dnsmasq.c:1281 ++#: dnsmasq.c:1334 + msgid "exiting on receipt of SIGTERM" + msgstr "am primit SIGTERM, am terminat" + +-#: dnsmasq.c:1309 ++#: dnsmasq.c:1362 + #, fuzzy, c-format + msgid "failed to access %s: %s" + msgstr "accesarea serverului %s a eÅŸuat: %s" + +-#: dnsmasq.c:1339 ++#: dnsmasq.c:1392 + #, c-format + msgid "reading %s" + msgstr "citesc %s" + +-#: dnsmasq.c:1350 ++#: dnsmasq.c:1403 + #, fuzzy, c-format + msgid "no servers found in %s, will retry" + msgstr "nu s-a găsit nici un criteriu de căutare în %s" +@@ -1532,27 +1578,27 @@ msgstr "interfaţă necunoscută %s" + msgid "DHCP packet received on %s which has no address" + msgstr "" + +-#: dhcp.c:408 ++#: dhcp.c:412 + #, c-format + msgid "ARP-cache injection failed: %s" + msgstr "" + +-#: dhcp.c:506 ++#: dhcp.c:511 + #, c-format + msgid "DHCP range %s -- %s is not consistent with netmask %s" + msgstr "domeniu DHCP %s -- %s nu este consistent cu masca de reÅ£ea %s" + +-#: dhcp.c:807 ++#: dhcp.c:812 + #, c-format + msgid "bad line at %s line %d" + msgstr "linie invalidă în %s rândul %d" + +-#: dhcp.c:850 ++#: dhcp.c:855 + #, c-format + msgid "ignoring %s line %d, duplicate name or IP address" + msgstr "" + +-#: dhcp.c:994 rfc3315.c:2089 ++#: dhcp.c:999 rfc3315.c:2139 + #, c-format + msgid "DHCP relay %s -> %s" + msgstr "" +@@ -1623,12 +1669,12 @@ msgstr "eroare DBus: %s" + msgid "disabled" + msgstr "dezactivat" + +-#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:602 rfc3315.c:823 +-#: rfc3315.c:1095 ++#: rfc2131.c:539 rfc2131.c:967 rfc2131.c:1385 rfc3315.c:603 rfc3315.c:860 ++#: rfc3315.c:1139 + msgid "ignored" + msgstr "ignorat" + +-#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:873 ++#: rfc2131.c:554 rfc2131.c:1205 rfc3315.c:910 + msgid "address in use" + msgstr "adresa este folosită" + +@@ -1648,7 +1694,7 @@ msgstr "adresă lipsă" + msgid "no leases left" + msgstr "nu mai am de unde să împrumut" + +-#: rfc2131.c:691 rfc3315.c:475 ++#: rfc2131.c:691 rfc3315.c:476 + #, c-format + msgid "%u client provides name: %s" + msgstr "" +@@ -1657,7 +1703,7 @@ msgstr "" + msgid "PXE BIS not supported" + msgstr "" + +-#: rfc2131.c:935 rfc3315.c:1189 ++#: rfc2131.c:935 rfc3315.c:1233 + #, fuzzy, c-format + msgid "disabling DHCP static address %s for %s" + msgstr "dezactivăm adresele DHCP statice %s" +@@ -1693,7 +1739,7 @@ msgstr "" + msgid "wrong address" + msgstr "adresă greÅŸită" + +-#: rfc2131.c:1143 rfc3315.c:969 ++#: rfc2131.c:1143 rfc3315.c:1006 + msgid "lease not found" + msgstr "împrumutul nu a fost găsit" + +@@ -1743,7 +1789,7 @@ msgstr "nu pot trimite opÅ£iunea DHCP %d: nu mai este loc în pachet" + msgid "PXE menu too large" + msgstr "" + +-#: rfc2131.c:2173 rfc3315.c:1456 ++#: rfc2131.c:2173 rfc3315.c:1506 + #, fuzzy, c-format + msgid "%u requested options: %s" + msgstr "compilat cu opÅ£iunile: %s" +@@ -1758,7 +1804,7 @@ msgstr "" + msgid "cannot create netlink socket: %s" + msgstr "nu pot să activez socket-ul netlink: %s" + +-#: netlink.c:347 ++#: netlink.c:348 + #, fuzzy, c-format + msgid "netlink returns error: %s" + msgstr "eroare DBus: %s" +@@ -1876,66 +1922,66 @@ msgstr "nici un domeniu de adrese disponibil pentru cererea DHCP %s %s" + msgid "%u available DHCPv6 subnet: %s/%d" + msgstr "nici un domeniu de adrese disponibil pentru cererea DHCP %s %s" + +-#: rfc3315.c:379 ++#: rfc3315.c:380 + #, fuzzy, c-format + msgid "%u vendor class: %u" + msgstr "eroare DBus: %s" + +-#: rfc3315.c:427 ++#: rfc3315.c:428 + #, fuzzy, c-format + msgid "%u client MAC address: %s" + msgstr "nu exista interfaţă pentru adresa %s" + +-#: rfc3315.c:659 ++#: rfc3315.c:660 + #, fuzzy, c-format + msgid "unknown prefix-class %d" + msgstr "împrumut necunoscut" + +-#: rfc3315.c:791 rfc3315.c:913 ++#: rfc3315.c:803 rfc3315.c:902 ++#, fuzzy ++msgid "address unavailable" ++msgstr "adresă indisponibilă" ++ ++#: rfc3315.c:815 rfc3315.c:950 rfc3315.c:1283 + msgid "success" + msgstr "" + +-#: rfc3315.c:806 rfc3315.c:808 rfc3315.c:921 rfc3315.c:923 ++#: rfc3315.c:843 rfc3315.c:845 rfc3315.c:958 rfc3315.c:960 + #, fuzzy + msgid "no addresses available" + msgstr "nici o adresă disponibilă" + +-#: rfc3315.c:865 +-#, fuzzy +-msgid "address unavailable" +-msgstr "adresă indisponibilă" +- +-#: rfc3315.c:900 ++#: rfc3315.c:937 + msgid "not on link" + msgstr "" + +-#: rfc3315.c:973 rfc3315.c:1151 rfc3315.c:1228 ++#: rfc3315.c:1010 rfc3315.c:1195 rfc3315.c:1272 + msgid "no binding found" + msgstr "" + +-#: rfc3315.c:1011 ++#: rfc3315.c:1048 + msgid "deprecated" + msgstr "" + +-#: rfc3315.c:1016 ++#: rfc3315.c:1053 + #, fuzzy + msgid "address invalid" + msgstr "adresa este folosită" + +-#: rfc3315.c:1061 ++#: rfc3315.c:1100 + msgid "confirm failed" + msgstr "" + +-#: rfc3315.c:1072 ++#: rfc3315.c:1116 + #, fuzzy + msgid "all addresses still on link" + msgstr "adresă greÅŸită în %s, linia %d" + +-#: rfc3315.c:1160 ++#: rfc3315.c:1204 + msgid "release received" + msgstr "" + +-#: rfc3315.c:2080 ++#: rfc3315.c:2130 + msgid "Cannot multicast to DHCPv6 server without correct interface" + msgstr "" + +@@ -2028,7 +2074,7 @@ msgstr "" + msgid "cannot create ICMPv6 socket: %s" + msgstr "nu pot creea socket DHCP: %s" + +-#: auth.c:429 ++#: auth.c:436 + #, c-format + msgid "ignoring zone transfer request from %s" + msgstr "" +@@ -2043,54 +2089,89 @@ msgstr "activarea socket-ului server-ului DHCP a eÅŸuat: %s" + msgid "failed to create IPset control socket: %s" + msgstr "creearea socket-ului de ascultare a eÅŸuat: %s" + ++#: dnssec.c:425 dnssec.c:469 ++#, fuzzy, c-format ++msgid "failed to update mtime on %s: %s" ++msgstr "nu pot citi %s: %s" ++ + #: blockdata.c:58 + #, c-format + msgid "DNSSEC memory in use %u, max %u, allocated %u" + msgstr "" + +-#: tables.c:76 ++#: tables.c:80 + msgid "error: fill_addr missused" + msgstr "" + +-#: tables.c:105 ++#: tables.c:109 + #, fuzzy, c-format + msgid "failed to access pf devices: %s" + msgstr "accesarea serverului %s a eÅŸuat: %s" + +-#: tables.c:119 ++#: tables.c:123 + #, fuzzy, c-format + msgid "warning: no opened pf devices %s" + msgstr "folosim adresele locale doar pentru %S %s" + +-#: tables.c:127 ++#: tables.c:131 + #, fuzzy, c-format + msgid "error: cannot use table name %s" + msgstr "nu pot citi numele maÅŸinii: %s" + +-#: tables.c:135 ++#: tables.c:139 + #, c-format + msgid "error: cannot strlcpy table name %s" + msgstr "" + +-#: tables.c:141 ++#: tables.c:145 + #, c-format + msgid "warning: pfr_add_tables: %s(%d)" + msgstr "" + +-#: tables.c:147 ++#: tables.c:151 + msgid "info: table created" + msgstr "" + +-#: tables.c:158 ++#: tables.c:162 + #, c-format + msgid "warning: DIOCR%sADDRS: %s" + msgstr "" + +-#: tables.c:162 ++#: tables.c:166 + #, fuzzy, c-format + msgid "%d addresses %s" + msgstr "citesc %s - %d adrese" + ++#: inotify.c:46 ++#, fuzzy, c-format ++msgid "failed to create inotify: %s" ++msgstr "nu pot citi %s: %s" ++ ++#: inotify.c:60 ++#, fuzzy, c-format ++msgid "cannot cannonicalise resolv-file %s: %s" ++msgstr "nu pot creea sau deschide fiÅŸierul cu împrumuturi: %s" ++ ++#: inotify.c:72 ++#, c-format ++msgid "directory %s for resolv-file is missing, cannot poll" ++msgstr "" ++ ++#: inotify.c:75 inotify.c:112 ++#, fuzzy, c-format ++msgid "failed to create inotify for %s: %s" ++msgstr "creearea socket-ului de ascultare a eÅŸuat: %s" ++ ++#: inotify.c:97 ++#, fuzzy, c-format ++msgid "bad dynamic directory %s: %s" ++msgstr "nu pot citi %s: %s" ++ ++#: inotify.c:197 ++#, c-format ++msgid "inotify, new or changed file %s" ++msgstr "" ++ + #~ msgid "duplicate IP address %s in dhcp-config directive." + #~ msgstr "adresă IP duplicat %s în declaraÅ£ia dhcp-config." + +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0068-add-tftp-no-fail-to-ignore-missing-tftp-root.patch b/src/patches/dnsmasq/0068-add-tftp-no-fail-to-ignore-missing-tftp-root.patch new file mode 100644 index 000000000..3439cc19f --- /dev/null +++ b/src/patches/dnsmasq/0068-add-tftp-no-fail-to-ignore-missing-tftp-root.patch @@ -0,0 +1,199 @@ +From 30d0879ed55cb67b1b735beab3d93f3bb3ef1dd2 Mon Sep 17 00:00:00 2001 +From: Stefan Tomanek +Date: Tue, 31 Mar 2015 22:32:11 +0100 +Subject: [PATCH 68/71] add --tftp-no-fail to ignore missing tftp root + +--- + CHANGELOG | 3 +++ + dnsmasq.conf.example | 3 +++ + man/dnsmasq.8 | 3 +++ + src/dnsmasq.c | 40 ++++++++++++++++++++++++++++++---------- + src/dnsmasq.h | 4 +++- + src/option.c | 3 +++ + 6 files changed, 45 insertions(+), 11 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 4f4fa305deaa..34432ae4807f 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -72,6 +72,9 @@ version 2.73 + on systems without an RTC, whilst allowing DNS queries before the + clock is valid so that NTP can run. Thanks to + Kevin Darbyshire-Bryant for developing this idea. ++ ++ Add --tftp-no-fail option. Thanks to Stefan Tomanek for ++ the patch. + + + version 2.72 +diff --git a/dnsmasq.conf.example b/dnsmasq.conf.example +index 1bd305dbdbad..67be99acb028 100644 +--- a/dnsmasq.conf.example ++++ b/dnsmasq.conf.example +@@ -486,6 +486,9 @@ + # Set the root directory for files available via FTP. + #tftp-root=/var/ftpd + ++# Do not abort if the tftp-root is unavailable ++#tftp-no-fail ++ + # Make the TFTP server more secure: with this set, only files owned by + # the user dnsmasq is running as will be send over the net. + #tftp-secure +diff --git a/man/dnsmasq.8 b/man/dnsmasq.8 +index 1f1dd7b69c53..6b4626cc0aad 100644 +--- a/man/dnsmasq.8 ++++ b/man/dnsmasq.8 +@@ -1711,6 +1711,9 @@ Absolute paths (starting with /) are allowed, but they must be within + the tftp-root. If the optional interface argument is given, the + directory is only used for TFTP requests via that interface. + .TP ++.B --tftp-no-fail ++Do not abort startup if specified tftp root directories are inaccessible. ++.TP + .B --tftp-unique-root + Add the IP address of the TFTP client as a path component on the end + of the TFTP-root (in standard dotted-quad format). Only valid if a +diff --git a/src/dnsmasq.c b/src/dnsmasq.c +index b784951950d4..0d4d4558a2e2 100644 +--- a/src/dnsmasq.c ++++ b/src/dnsmasq.c +@@ -58,6 +58,9 @@ int main (int argc, char **argv) + struct dhcp_context *context; + struct dhcp_relay *relay; + #endif ++#ifdef HAVE_TFTP ++ int tftp_prefix_missing = 0; ++#endif + + #ifdef LOCALEDIR + setlocale(LC_ALL, ""); +@@ -636,7 +639,7 @@ int main (int argc, char **argv) + #endif + + #ifdef HAVE_TFTP +- if (option_bool(OPT_TFTP)) ++ if (option_bool(OPT_TFTP)) + { + DIR *dir; + struct tftp_prefix *p; +@@ -645,24 +648,33 @@ int main (int argc, char **argv) + { + if (!((dir = opendir(daemon->tftp_prefix)))) + { +- send_event(err_pipe[1], EVENT_TFTP_ERR, errno, daemon->tftp_prefix); +- _exit(0); ++ tftp_prefix_missing = 1; ++ if (!option_bool(OPT_TFTP_NO_FAIL)) ++ { ++ send_event(err_pipe[1], EVENT_TFTP_ERR, errno, daemon->tftp_prefix); ++ _exit(0); ++ } + } + closedir(dir); + } +- ++ + for (p = daemon->if_prefix; p; p = p->next) + { ++ p->missing = 0; + if (!((dir = opendir(p->prefix)))) +- { +- send_event(err_pipe[1], EVENT_TFTP_ERR, errno, p->prefix); +- _exit(0); +- } ++ { ++ p->missing = 1; ++ if (!option_bool(OPT_TFTP_NO_FAIL)) ++ { ++ send_event(err_pipe[1], EVENT_TFTP_ERR, errno, p->prefix); ++ _exit(0); ++ } ++ } + closedir(dir); + } + } + #endif +- ++ + if (daemon->port == 0) + my_syslog(LOG_INFO, _("started, version %s DNS disabled"), VERSION); + else if (daemon->cachesize != 0) +@@ -772,7 +784,8 @@ int main (int argc, char **argv) + + #ifdef HAVE_TFTP + if (option_bool(OPT_TFTP)) +- { ++ { ++ struct tftp_prefix *p; + #ifdef FD_SETSIZE + if (FD_SETSIZE < (unsigned)max_fd) + max_fd = FD_SETSIZE; +@@ -782,7 +795,14 @@ int main (int argc, char **argv) + daemon->tftp_prefix ? _("root is ") : _("enabled"), + daemon->tftp_prefix ? daemon->tftp_prefix: "", + option_bool(OPT_TFTP_SECURE) ? _("secure mode") : ""); ++ ++ if (tftp_prefix_missing) ++ my_syslog(MS_TFTP | LOG_WARNING, _("warning: %s inaccessible"), daemon->tftp_prefix); + ++ for (p = daemon->if_prefix; p; p = p->next) ++ if (p->missing) ++ my_syslog(MS_TFTP | LOG_WARNING, _("warning: TFTP directory %s inaccessible"), p->prefix); ++ + /* This is a guess, it assumes that for small limits, + disjoint files might be served, but for large limits, + a single file will be sent to may clients (the file only needs +diff --git a/src/dnsmasq.h b/src/dnsmasq.h +index de95d0e875e3..42952fc76c7a 100644 +--- a/src/dnsmasq.h ++++ b/src/dnsmasq.h +@@ -240,7 +240,8 @@ struct event_desc { + #define OPT_LOCAL_SERVICE 49 + #define OPT_LOOP_DETECT 50 + #define OPT_EXTRALOG 51 +-#define OPT_LAST 52 ++#define OPT_TFTP_NO_FAIL 52 ++#define OPT_LAST 53 + + /* extra flags for my_syslog, we use a couple of facilities since they are known + not to occupy the same bits as priorities, no matter how syslog.h is set up. */ +@@ -901,6 +902,7 @@ struct addr_list { + struct tftp_prefix { + char *interface; + char *prefix; ++ int missing; + struct tftp_prefix *next; + }; + +diff --git a/src/option.c b/src/option.c +index 3009eb545fde..f91cfbb1aa54 100644 +--- a/src/option.c ++++ b/src/option.c +@@ -153,6 +153,7 @@ struct myoption { + #define LOPT_DHOPT_INOTIFY 341 + #define LOPT_HOST_INOTIFY 342 + #define LOPT_DNSSEC_STAMP 343 ++#define LOPT_TFTP_NO_FAIL 344 + + #ifdef HAVE_GETOPT_LONG + static const struct option opts[] = +@@ -235,6 +236,7 @@ static const struct myoption opts[] = + { "dhcp-ignore-names", 2, 0, LOPT_NO_NAMES }, + { "enable-tftp", 2, 0, LOPT_TFTP }, + { "tftp-secure", 0, 0, LOPT_SECURE }, ++ { "tftp-no-fail", 0, 0, LOPT_TFTP_NO_FAIL }, + { "tftp-unique-root", 0, 0, LOPT_APREF }, + { "tftp-root", 1, 0, LOPT_PREFIX }, + { "tftp-max", 1, 0, LOPT_TFTP_MAX }, +@@ -419,6 +421,7 @@ static struct { + { LOPT_PREFIX, ARG_DUP, "[,]", gettext_noop("Export files by TFTP only from the specified subtree."), NULL }, + { LOPT_APREF, OPT_TFTP_APREF, NULL, gettext_noop("Add client IP address to tftp-root."), NULL }, + { LOPT_SECURE, OPT_TFTP_SECURE, NULL, gettext_noop("Allow access only to files owned by the user running dnsmasq."), NULL }, ++ { LOPT_TFTP_NO_FAIL, OPT_TFTP_NO_FAIL, NULL, gettext_noop("Do not terminate the service if TFTP directories are inaccessible."), NULL }, + { LOPT_TFTP_MAX, ARG_ONE, "", gettext_noop("Maximum number of conncurrent TFTP transfers (defaults to %s)."), "#" }, + { LOPT_NOBLOCK, OPT_TFTP_NOBLOCK, NULL, gettext_noop("Disable the TFTP blocksize extension."), NULL }, + { LOPT_TFTP_LC, OPT_TFTP_LC, NULL, gettext_noop("Convert TFTP filenames to lowercase"), NULL }, +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0069-Whitespace-fixes.patch b/src/patches/dnsmasq/0069-Whitespace-fixes.patch new file mode 100644 index 000000000..6784ee398 --- /dev/null +++ b/src/patches/dnsmasq/0069-Whitespace-fixes.patch @@ -0,0 +1,85 @@ +From 7aa970e2c7043201663d86a4b5d8cd5c592cef39 Mon Sep 17 00:00:00 2001 +From: Stefan Tomanek +Date: Wed, 1 Apr 2015 17:55:07 +0100 +Subject: [PATCH 69/71] Whitespace fixes. + +--- + src/dnsmasq.c | 14 +++++++------- + src/tftp.c | 2 +- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/src/dnsmasq.c b/src/dnsmasq.c +index 0d4d4558a2e2..a7c5da8fbd01 100644 +--- a/src/dnsmasq.c ++++ b/src/dnsmasq.c +@@ -345,7 +345,7 @@ int main (int argc, char **argv) + #else + die(_("DBus not available: set HAVE_DBUS in src/config.h"), NULL, EC_BADCONF); + #endif +- ++ + if (daemon->port != 0) + pre_allocate_sfds(); + +@@ -657,7 +657,7 @@ int main (int argc, char **argv) + } + closedir(dir); + } +- ++ + for (p = daemon->if_prefix; p; p = p->next) + { + p->missing = 0; +@@ -669,12 +669,12 @@ int main (int argc, char **argv) + send_event(err_pipe[1], EVENT_TFTP_ERR, errno, p->prefix); + _exit(0); + } +- } ++ } + closedir(dir); + } + } + #endif +- ++ + if (daemon->port == 0) + my_syslog(LOG_INFO, _("started, version %s DNS disabled"), VERSION); + else if (daemon->cachesize != 0) +@@ -784,7 +784,7 @@ int main (int argc, char **argv) + + #ifdef HAVE_TFTP + if (option_bool(OPT_TFTP)) +- { ++ { + struct tftp_prefix *p; + #ifdef FD_SETSIZE + if (FD_SETSIZE < (unsigned)max_fd) +@@ -795,10 +795,10 @@ int main (int argc, char **argv) + daemon->tftp_prefix ? _("root is ") : _("enabled"), + daemon->tftp_prefix ? daemon->tftp_prefix: "", + option_bool(OPT_TFTP_SECURE) ? _("secure mode") : ""); +- ++ + if (tftp_prefix_missing) + my_syslog(MS_TFTP | LOG_WARNING, _("warning: %s inaccessible"), daemon->tftp_prefix); +- ++ + for (p = daemon->if_prefix; p; p = p->next) + if (p->missing) + my_syslog(MS_TFTP | LOG_WARNING, _("warning: TFTP directory %s inaccessible"), p->prefix); +diff --git a/src/tftp.c b/src/tftp.c +index a57a31514f44..d3fb6d7492e4 100644 +--- a/src/tftp.c ++++ b/src/tftp.c +@@ -236,7 +236,7 @@ void tftp_request(struct listener *listen, time_t now) + if (ioctl(listen->tftpfd, SIOCGIFMTU, &ifr) != -1) + mtu = ifr.ifr_mtu; + } +- ++ + if (name) + { + /* check for per-interface prefix */ +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0070-Return-INSECURE-rather-than-BOGUS-when-DS-proved-not.patch b/src/patches/dnsmasq/0070-Return-INSECURE-rather-than-BOGUS-when-DS-proved-not.patch new file mode 100644 index 000000000..1350ca6b8 --- /dev/null +++ b/src/patches/dnsmasq/0070-Return-INSECURE-rather-than-BOGUS-when-DS-proved-not.patch @@ -0,0 +1,254 @@ +From fe3992f9fa69fa975ea31919c53933b5f6a63527 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Fri, 3 Apr 2015 21:25:05 +0100 +Subject: [PATCH 70/71] Return INSECURE, rather than BOGUS when DS proved not + to exist. + +Return INSECURE when validating DNS replies which have RRSIGs, but +when a needed DS record in the trust chain is proved not to exist. +It's allowed for a zone to set up DNSKEY and RRSIG records first, then +add a DS later, completing the chain of trust. + +Also, since we don't have the infrastructure to track that these +non-validated replies have RRSIGS, don't cache them, so we don't +provide answers with missing RRSIGS from the cache. +--- + src/dnsmasq.h | 1 + + src/dnssec.c | 2 +- + src/forward.c | 87 +++++++++++++++++++++++++++++++++++++++++++++-------------- + 3 files changed, 69 insertions(+), 21 deletions(-) + +diff --git a/src/dnsmasq.h b/src/dnsmasq.h +index 42952fc76c7a..6fe4a4189188 100644 +--- a/src/dnsmasq.h ++++ b/src/dnsmasq.h +@@ -583,6 +583,7 @@ struct hostsfile { + #define STAT_NO_NS 10 + #define STAT_NEED_DS_NEG 11 + #define STAT_CHASE_CNAME 12 ++#define STAT_INSECURE_DS 13 + + #define FREC_NOREBIND 1 + #define FREC_CHECKING_DISABLED 2 +diff --git a/src/dnssec.c b/src/dnssec.c +index 14bae7e9bf75..05e0983cb251 100644 +--- a/src/dnssec.c ++++ b/src/dnssec.c +@@ -981,7 +981,7 @@ int dnssec_validate_by_ds(time_t now, struct dns_header *header, size_t plen, ch + + /* If we've cached that DS provably doesn't exist, result must be INSECURE */ + if (crecp->flags & F_NEG) +- return STAT_INSECURE; ++ return STAT_INSECURE_DS; + + /* NOTE, we need to find ONE DNSKEY which matches the DS */ + for (valid = 0, j = ntohs(header->ancount); j != 0 && !valid; j--) +diff --git a/src/forward.c b/src/forward.c +index 985814c3aec5..e8cf615aa939 100644 +--- a/src/forward.c ++++ b/src/forward.c +@@ -521,7 +521,8 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr, + } + + static size_t process_reply(struct dns_header *header, time_t now, struct server *server, size_t n, int check_rebind, +- int no_cache, int cache_secure, int ad_reqd, int do_bit, int added_pheader, int check_subnet, union mysockaddr *query_source) ++ int no_cache, int cache_secure, int bogusanswer, int ad_reqd, int do_bit, int added_pheader, ++ int check_subnet, union mysockaddr *query_source) + { + unsigned char *pheader, *sizep; + char **sets = 0; +@@ -634,7 +635,7 @@ static size_t process_reply(struct dns_header *header, time_t now, struct server + } + + #ifdef HAVE_DNSSEC +- if (no_cache && !(header->hb4 & HB4_CD)) ++ if (bogusanswer && !(header->hb4 & HB4_CD)) + { + if (!option_bool(OPT_DNSSEC_DEBUG)) + { +@@ -786,7 +787,7 @@ void reply_query(int fd, int family, time_t now) + everything is broken */ + if (forward->forwardall == 0 || --forward->forwardall == 1 || RCODE(header) != SERVFAIL) + { +- int check_rebind = 0, no_cache_dnssec = 0, cache_secure = 0; ++ int check_rebind = 0, no_cache_dnssec = 0, cache_secure = 0, bogusanswer = 0; + + if (option_bool(OPT_NO_REBIND)) + check_rebind = !(forward->flags & FREC_NOREBIND); +@@ -819,7 +820,13 @@ void reply_query(int fd, int family, time_t now) + else if (forward->flags & FREC_DS_QUERY) + { + status = dnssec_validate_ds(now, header, n, daemon->namebuff, daemon->keyname, forward->class); +- if (status == STAT_NO_DS || status == STAT_NO_NS) ++ /* Provably no DS, everything below is insecure, even if signatures are offered */ ++ if (status == STAT_NO_DS) ++ /* We only cache sigs when we've validated a reply. ++ Avoid caching a reply with sigs if there's a vaildated break in the ++ DS chain, so we don't return replies from cache missing sigs. */ ++ status = STAT_INSECURE_DS; ++ else if (status == STAT_NO_NS) + status = STAT_BOGUS; + } + else if (forward->flags & FREC_CHECK_NOSIGN) +@@ -959,8 +966,14 @@ void reply_query(int fd, int family, time_t now) + else if (forward->flags & FREC_DS_QUERY) + { + status = dnssec_validate_ds(now, header, n, daemon->namebuff, daemon->keyname, forward->class); +- if (status == STAT_NO_DS || status == STAT_NO_NS) +- status = STAT_BOGUS; ++ /* Provably no DS, everything below is insecure, even if signatures are offered */ ++ if (status == STAT_NO_DS) ++ /* We only cache sigs when we've validated a reply. ++ Avoid caching a reply with sigs if there's a vaildated break in the ++ DS chain, so we don't return replies from cache missing sigs. */ ++ status = STAT_INSECURE_DS; ++ else if (status == STAT_NO_NS) ++ status = STAT_BOGUS; + } + else if (forward->flags & FREC_CHECK_NOSIGN) + { +@@ -985,6 +998,17 @@ void reply_query(int fd, int family, time_t now) + } + } + ++ no_cache_dnssec = 0; ++ ++ if (status == STAT_INSECURE_DS) ++ { ++ /* We only cache sigs when we've validated a reply. ++ Avoid caching a reply with sigs if there's a vaildated break in the ++ DS chain, so we don't return replies from cache missing sigs. */ ++ status = STAT_INSECURE; ++ no_cache_dnssec = 1; ++ } ++ + if (status == STAT_TRUNCATED) + header->hb3 |= HB3_TC; + else +@@ -1002,12 +1026,13 @@ void reply_query(int fd, int family, time_t now) + log_query(F_KEYTAG | F_SECSTAT, "result", NULL, result); + } + +- no_cache_dnssec = 0; +- + if (status == STAT_SECURE) + cache_secure = 1; + else if (status == STAT_BOGUS) +- no_cache_dnssec = 1; ++ { ++ no_cache_dnssec = 1; ++ bogusanswer = 1; ++ } + } + #endif + +@@ -1017,7 +1042,7 @@ void reply_query(int fd, int family, time_t now) + else + header->hb4 &= ~HB4_CD; + +- if ((nn = process_reply(header, now, server, (size_t)n, check_rebind, no_cache_dnssec, cache_secure, ++ if ((nn = process_reply(header, now, server, (size_t)n, check_rebind, no_cache_dnssec, cache_secure, bogusanswer, + forward->flags & FREC_AD_QUESTION, forward->flags & FREC_DO_QUESTION, + forward->flags & FREC_ADDED_PHEADER, forward->flags & FREC_HAS_SUBNET, &forward->source))) + { +@@ -1420,7 +1445,7 @@ static int do_check_sign(struct frec *forward, int status, time_t now, char *nam + } + } + +-/* Move toward the root, until we find a signed non-existance of a DS, in which case ++/* Move down from the root, until we find a signed non-existance of a DS, in which case + an unsigned answer is OK, or we find a signed DS, in which case there should be + a signature, and the answer is BOGUS */ + static int tcp_check_for_unsigned_zone(time_t now, struct dns_header *header, size_t plen, int class, char *name, +@@ -1570,8 +1595,13 @@ static int tcp_key_recurse(time_t now, int status, struct dns_header *header, si + else if (status == STAT_NEED_DS || status == STAT_NEED_DS_NEG) + { + new_status = dnssec_validate_ds(now, header, n, name, keyname, class); +- if (status == STAT_NEED_DS && (new_status == STAT_NO_DS || new_status == STAT_NO_NS)) +- new_status = STAT_BOGUS; ++ if (status == STAT_NEED_DS) ++ { ++ if (new_status == STAT_NO_DS) ++ new_status = STAT_INSECURE_DS; ++ else if (new_status == STAT_NO_NS) ++ new_status = STAT_BOGUS; ++ } + } + else if (status == STAT_CHASE_CNAME) + new_status = dnssec_chase_cname(now, header, n, name, keyname); +@@ -1630,8 +1660,13 @@ static int tcp_key_recurse(time_t now, int status, struct dns_header *header, si + else if (status == STAT_NEED_DS || status == STAT_NEED_DS_NEG) + { + new_status = dnssec_validate_ds(now, header, n, name, keyname, class); +- if (status == STAT_NEED_DS && (new_status == STAT_NO_DS || new_status == STAT_NO_NS)) +- new_status = STAT_BOGUS; /* Validated no DS */ ++ if (status == STAT_NEED_DS) ++ { ++ if (new_status == STAT_NO_DS) ++ new_status = STAT_INSECURE_DS; ++ else if (new_status == STAT_NO_NS) ++ new_status = STAT_BOGUS; /* Validated no DS */ ++ } + } + else if (status == STAT_CHASE_CNAME) + new_status = dnssec_chase_cname(now, header, n, name, keyname); +@@ -1652,7 +1687,7 @@ static int tcp_key_recurse(time_t now, int status, struct dns_header *header, si + goto another_tcp_key; + } + } +- ++ + free(packet); + } + return new_status; +@@ -1673,7 +1708,7 @@ unsigned char *tcp_request(int confd, time_t now, + int local_auth = 0; + #endif + int checking_disabled, ad_question, do_bit, added_pheader = 0; +- int check_subnet, no_cache_dnssec = 0, cache_secure = 0; ++ int check_subnet, no_cache_dnssec = 0, cache_secure = 0, bogusanswer = 0; + size_t m; + unsigned short qtype; + unsigned int gotname; +@@ -1941,6 +1976,15 @@ unsigned char *tcp_request(int confd, time_t now, + int status = tcp_key_recurse(now, STAT_TRUNCATED, header, m, 0, daemon->namebuff, daemon->keyname, last_server, &keycount); + char *result; + ++ if (status == STAT_INSECURE_DS) ++ { ++ /* We only cache sigs when we've validated a reply. ++ Avoid caching a reply with sigs if there's a vaildated break in the ++ DS chain, so we don't return replies from cache missing sigs. */ ++ status = STAT_INSECURE; ++ no_cache_dnssec = 1; ++ } ++ + if (keycount == 0) + { + result = "ABANDONED"; +@@ -1952,8 +1996,11 @@ unsigned char *tcp_request(int confd, time_t now, + log_query(F_KEYTAG | F_SECSTAT, "result", NULL, result); + + if (status == STAT_BOGUS) +- no_cache_dnssec = 1; +- ++ { ++ no_cache_dnssec = 1; ++ bogusanswer = 1; ++ } ++ + if (status == STAT_SECURE) + cache_secure = 1; + } +@@ -1987,7 +2034,7 @@ unsigned char *tcp_request(int confd, time_t now, + #endif + + m = process_reply(header, now, last_server, (unsigned int)m, +- option_bool(OPT_NO_REBIND) && !norebind, no_cache_dnssec, ++ option_bool(OPT_NO_REBIND) && !norebind, no_cache_dnssec, bogusanswer, + cache_secure, ad_question, do_bit, added_pheader, check_subnet, &peer_addr); + + break; +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0071-Fix-compiler-warning-when-not-including-DNSSEC.patch b/src/patches/dnsmasq/0071-Fix-compiler-warning-when-not-including-DNSSEC.patch new file mode 100644 index 000000000..83cdb0c81 --- /dev/null +++ b/src/patches/dnsmasq/0071-Fix-compiler-warning-when-not-including-DNSSEC.patch @@ -0,0 +1,26 @@ +From 982faf402487e265ed11ac03524531d42b03c966 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Fri, 3 Apr 2015 21:42:30 +0100 +Subject: [PATCH 71/71] Fix compiler warning when not including DNSSEC. + +--- + src/forward.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/forward.c b/src/forward.c +index e8cf615aa939..3f6b9a23b6ab 100644 +--- a/src/forward.c ++++ b/src/forward.c +@@ -530,7 +530,8 @@ static size_t process_reply(struct dns_header *header, time_t now, struct server + size_t plen; + + (void)ad_reqd; +- (void) do_bit; ++ (void)do_bit; ++ (void)bogusanswer; + + #ifdef HAVE_IPSET + if (daemon->ipsets && extract_request(header, n, daemon->namebuff, NULL)) +-- +2.1.0 + From b1636efd0b3f4faa3e4d08f54c2b2dfa170e373f Mon Sep 17 00:00:00 2001 From: Jan Paul Tuecking Date: Wed, 8 Apr 2015 07:45:16 +0200 Subject: [PATCH 090/210] tor: update to 0.2.5.12 --- lfs/tor | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lfs/tor b/lfs/tor index 9176fee03..209895297 100644 --- a/lfs/tor +++ b/lfs/tor @@ -24,7 +24,7 @@ include Config -VER = 0.2.5.11 +VER = 0.2.5.12 THISAPP = tor-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = tor -PAK_VER = 9 +PAK_VER = 10 DEPS = "libevent2" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 9ca64f76996cb8a750e50c792e2c4c52 +$(DL_FILE)_MD5 = 89745069a7efb7aafd01ae263bd0fe5c install : $(TARGET) From 0f3d0cec24c4a75d59e4a105e5f4d6b24fb6d5aa Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 9 Apr 2015 15:29:25 +0200 Subject: [PATCH 091/210] strongswan: rootfile update --- config/rootfiles/common/strongswan | 2 -- 1 file changed, 2 deletions(-) diff --git a/config/rootfiles/common/strongswan b/config/rootfiles/common/strongswan index 2abb58e5d..7564d38c8 100644 --- a/config/rootfiles/common/strongswan +++ b/config/rootfiles/common/strongswan @@ -147,7 +147,6 @@ usr/lib/ipsec/plugins/libstrongswan-xcbc.so #usr/libexec/ipsec usr/libexec/ipsec/_copyright usr/libexec/ipsec/_updown -usr/libexec/ipsec/_updown_espmark usr/libexec/ipsec/charon usr/libexec/ipsec/scepclient usr/libexec/ipsec/starter @@ -169,7 +168,6 @@ usr/sbin/ipsec #usr/share/man/man5/ipsec.secrets.5 #usr/share/man/man5/strongswan.conf.5 #usr/share/man/man8/_updown.8 -#usr/share/man/man8/_updown_espmark.8 #usr/share/man/man8/ipsec.8 #usr/share/man/man8/openac.8 #usr/share/man/man8/scepclient.8 From 9ee54998cbb36cf1781c0e1ba856992d3d1f068a Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 9 Apr 2015 15:32:42 +0200 Subject: [PATCH 092/210] hostapd: increase EAPOL timeouts Android clients need more time because sleep modes and low wlan interrupt priority. --- lfs/hostapd | 3 ++- .../hostapd-2.3_increase_EAPOL-timeouts.patch | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 src/patches/hostapd-2.3_increase_EAPOL-timeouts.patch diff --git a/lfs/hostapd b/lfs/hostapd index 74c2ae86e..22528374a 100644 --- a/lfs/hostapd +++ b/lfs/hostapd @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = hostapd -PAK_VER = 33 +PAK_VER = 34 DEPS = "" @@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/hostapd-2.3_increase_EAPOL-timeouts.patch cd $(DIR_APP)/hostapd && cp $(DIR_SRC)/config/hostapd/config ./.config cd $(DIR_APP)/hostapd && sed -e "s@/usr/local@/usr@g" -i Makefile cd $(DIR_APP)/hostapd && make $(MAKETUNING) $(EXTRA_MAKE) diff --git a/src/patches/hostapd-2.3_increase_EAPOL-timeouts.patch b/src/patches/hostapd-2.3_increase_EAPOL-timeouts.patch new file mode 100644 index 000000000..bbda55a63 --- /dev/null +++ b/src/patches/hostapd-2.3_increase_EAPOL-timeouts.patch @@ -0,0 +1,16 @@ +diff -Naur hostapd-2.3.org/src/ap/wpa_auth.c hostapd-2.3/src/ap/wpa_auth.c +--- hostapd-2.3.org/src/ap/wpa_auth.c 2014-10-09 16:41:31.000000000 +0200 ++++ hostapd-2.3/src/ap/wpa_auth.c 2015-04-07 16:32:10.671422975 +0200 +@@ -45,9 +45,9 @@ + + static const u32 dot11RSNAConfigGroupUpdateCount = 4; + static const u32 dot11RSNAConfigPairwiseUpdateCount = 4; +-static const u32 eapol_key_timeout_first = 100; /* ms */ +-static const u32 eapol_key_timeout_subseq = 1000; /* ms */ +-static const u32 eapol_key_timeout_first_group = 500; /* ms */ ++static const u32 eapol_key_timeout_first = 300; /* ms */ ++static const u32 eapol_key_timeout_subseq = 3000; /* ms */ ++static const u32 eapol_key_timeout_first_group = 1500; /* ms */ + + /* TODO: make these configurable */ + static const int dot11RSNAConfigPMKLifetime = 43200; From ad592fb878653d2abf970da02453d4a4893ac0a9 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 9 Apr 2015 15:34:14 +0200 Subject: [PATCH 093/210] backports: rt2x00 supress more queue warnings --- lfs/backports | 2 +- ...18.1-1_rt2x00usb_suppress_queue_warnings.patch} | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) rename src/patches/{backports-3.18.1-1_rt2800usb_suppress_queue_warnings.patch => backports-3.18.1-1_rt2x00usb_suppress_queue_warnings.patch} (65%) diff --git a/lfs/backports b/lfs/backports index 96de955d6..59baaccb2 100644 --- a/lfs/backports +++ b/lfs/backports @@ -90,7 +90,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-drivers-3.8.3-ath_ignore_eeprom_regdomain.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.22-iwlwifi-noibss_only_on_radar_chan.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.37-rt2800usb_add_dlink_dwa137_usbid.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/backports-3.18.1-1_rt2800usb_suppress_queue_warnings.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/backports-3.18.1-1_rt2x00usb_suppress_queue_warnings.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/backports-3.18.1-1_add_libertas_uap.patch # smsc mac address patch for pandaboard and raspberry pi diff --git a/src/patches/backports-3.18.1-1_rt2800usb_suppress_queue_warnings.patch b/src/patches/backports-3.18.1-1_rt2x00usb_suppress_queue_warnings.patch similarity index 65% rename from src/patches/backports-3.18.1-1_rt2800usb_suppress_queue_warnings.patch rename to src/patches/backports-3.18.1-1_rt2x00usb_suppress_queue_warnings.patch index 8270d311d..3f9308e38 100644 --- a/src/patches/backports-3.18.1-1_rt2800usb_suppress_queue_warnings.patch +++ b/src/patches/backports-3.18.1-1_rt2x00usb_suppress_queue_warnings.patch @@ -1,6 +1,6 @@ diff -Naur backports-3.18.1-1.org/drivers/net/wireless/rt2x00/rt2800usb.c backports-3.18.1-1/drivers/net/wireless/rt2x00/rt2800usb.c --- backports-3.18.1-1.org/drivers/net/wireless/rt2x00/rt2800usb.c 2014-12-21 22:37:14.000000000 +0100 -+++ backports-3.18.1-1/drivers/net/wireless/rt2x00/rt2800usb.c 2015-03-29 21:42:13.865183543 +0200 ++++ backports-3.18.1-1/drivers/net/wireless/rt2x00/rt2800usb.c 2015-04-07 11:44:16.647963570 +0200 @@ -444,7 +444,7 @@ rt2x00usb_register_read(rt2x00dev, TXRXQ_PCNT, ®); @@ -28,3 +28,15 @@ diff -Naur backports-3.18.1-1.org/drivers/net/wireless/rt2x00/rt2800usb.c backpo entry->entry_idx, qid); break; } +diff -Naur backports-3.18.1-1.org/drivers/net/wireless/rt2x00/rt2x00usb.c backports-3.18.1-1/drivers/net/wireless/rt2x00/rt2x00usb.c +--- backports-3.18.1-1.org/drivers/net/wireless/rt2x00/rt2x00usb.c 2014-12-21 22:37:14.000000000 +0100 ++++ backports-3.18.1-1/drivers/net/wireless/rt2x00/rt2x00usb.c 2015-04-07 11:42:41.723492892 +0200 +@@ -524,7 +524,7 @@ + + static void rt2x00usb_watchdog_tx_dma(struct data_queue *queue) + { +- rt2x00_warn(queue->rt2x00dev, "TX queue %d DMA timed out, invoke forced forced reset\n", ++ rt2x00_dbg(queue->rt2x00dev, "TX queue %d DMA timed out, invoke forced reset\n", + queue->qid); + + rt2x00queue_stop_queue(queue); From 80d83d13d8a1e794e7e4d1da90f83f297ce04191 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 9 Apr 2015 15:36:27 +0200 Subject: [PATCH 094/210] strongswan: Rootfile update --- config/rootfiles/common/strongswan | 1 - 1 file changed, 1 deletion(-) diff --git a/config/rootfiles/common/strongswan b/config/rootfiles/common/strongswan index 2abb58e5d..1be9282bf 100644 --- a/config/rootfiles/common/strongswan +++ b/config/rootfiles/common/strongswan @@ -147,7 +147,6 @@ usr/lib/ipsec/plugins/libstrongswan-xcbc.so #usr/libexec/ipsec usr/libexec/ipsec/_copyright usr/libexec/ipsec/_updown -usr/libexec/ipsec/_updown_espmark usr/libexec/ipsec/charon usr/libexec/ipsec/scepclient usr/libexec/ipsec/starter From 054d584786a60ed443d96642eb5a094e265da637 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Thu, 9 Apr 2015 18:14:48 +0200 Subject: [PATCH 095/210] de.pl: Fix umlauts in GeoIP related strings. This issue has been intruced in commit 0ff5b2b0ac39be6954e0b727e21d98c631bb051b. --- langs/de/cgi-bin/de.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index a1578b91d..88533691d 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -533,7 +533,7 @@ 'chain' => 'Verknüpfung', 'change passwords' => 'Passwörter Ã¤ndern', 'change share' => 'Freigabeeinstellungen ändern', -'check all' =>'Alle auswÃhlen', +'check all' =>'Alle auswählen', 'check for net traffic update' => 'Prüfe auf Net-Traffic-Updates', 'check vpn lr' => 'Überprüfen', 'choose config' => 'Konfiguration auswählen', @@ -1069,7 +1069,7 @@ 'fwhost OpenVPN static host' => 'OpenVPN statischer Host', 'fwhost OpenVPN static network' => 'OpenVPN statisches Netzwerk', 'fwhost Standard Network' => 'Standard-Netzwerk', -'fwhost addgeoipgrp' => 'Neue GeoIP-Gruppe hinzufÃgen', +'fwhost addgeoipgrp' => 'Neue GeoIP-Gruppe hinzufügen', 'fwhost addgrp' => 'Neue Gruppe hinzufügen', 'fwhost addgrpname' => 'Gruppenname:', 'fwhost addhost' => 'Neuen Host hinzufügen', @@ -1087,7 +1087,7 @@ 'fwhost cust addr' => 'Hosts', 'fwhost cust geoip' => 'GeoIP-Gruppen', 'fwhost cust geoipgroup' => 'GeoIP-Gruppen', -'fwhost cust geoiplocation' => 'GeoIP LÃndercodes', +'fwhost cust geoiplocation' => 'GeoIP Ländercodes', 'fwhost cust grp' => 'Gruppen', 'fwhost cust net' => 'Netzwerke', 'fwhost cust service' => 'Dienste', @@ -1171,7 +1171,7 @@ 'genre' => 'Genre', 'geoip' => 'GeoIP', 'geoipblock' => 'GeoIP Block', -'geoipblock block countries' => 'LÃnderfilter', +'geoipblock block countries' => 'Länderfilter', 'geoipblock configuration' => 'GeoIP Konfiguration', 'geoipblock country code' => 'Ländercode', 'geoipblock country is allowed' => 'Eingehende Verbindungen aus diesem Land sind erlaubt.', From 1164cb0d0b56006d228ac3a9ec2b20ca1f2a7167 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 10 Apr 2015 13:48:47 +0200 Subject: [PATCH 096/210] pound: Decrease the size of the DH key to 1024 bits Generating a 2048 bit key takes way too long to be feasible at build time. --- lfs/pound | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lfs/pound b/lfs/pound index a0f6f2906..3860122a9 100644 --- a/lfs/pound +++ b/lfs/pound @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = pound -PAK_VER = 7 +PAK_VER = 8 DEPS = "" @@ -77,7 +77,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc + cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ + --with-dh=1024 cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install install -v -m 644 $(DIR_SRC)/config/backup/includes/pound \ From f3dce179849c7898cafff729f17b4b407b1f155e Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sat, 11 Apr 2015 22:02:33 +0200 Subject: [PATCH 097/210] wpa_supplicant: update to 2.4 --- lfs/wpa_supplicant | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lfs/wpa_supplicant b/lfs/wpa_supplicant index 1cebaabb3..e7f46de9a 100644 --- a/lfs/wpa_supplicant +++ b/lfs/wpa_supplicant @@ -24,7 +24,7 @@ include Config -VER = 2.3 +VER = 2.4 THISAPP = wpa_supplicant-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -41,7 +41,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = f2ed8fef72cf63d8d446a2d0a6da630a +$(DL_FILE)_MD5 = f0037dbe03897dcaf2ad2722e659095d install : $(TARGET) From acb759575e610e8a94f6b05ff19a5418aa7a91b7 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sat, 11 Apr 2015 22:03:03 +0200 Subject: [PATCH 098/210] hostapd: update to 2.4 --- config/hostapd/config | 185 +++++++++++++++++++++++++++++++++++++++--- lfs/hostapd | 4 +- 2 files changed, 175 insertions(+), 14 deletions(-) diff --git a/config/hostapd/config b/config/hostapd/config index 1cd76765a..c3672c524 100644 --- a/config/hostapd/config +++ b/config/hostapd/config @@ -15,10 +15,6 @@ CONFIG_DRIVER_HOSTAP=y # Driver interface for wired authenticator #CONFIG_DRIVER_WIRED=y -# Driver interface for madwifi driver -#CONFIG_DRIVER_MADWIFI=y -#CFLAGS += -I../../madwifi # change to the madwifi source directory - # Driver interface for Prism54 driver CONFIG_DRIVER_PRISM54=y @@ -49,14 +45,14 @@ CONFIG_RSN_PREAUTH=y CONFIG_PEERKEY=y # IEEE 802.11w (management frame protection) -# This version is an experimental implementation based on IEEE 802.11w/D1.0 -# draft and is subject to change since the standard has not yet been finalized. -# Driver support is also needed for IEEE 802.11w. -#CONFIG_IEEE80211W=y +CONFIG_IEEE80211W=y # Integrated EAP server CONFIG_EAP=y +# EAP Re-authentication Protocol (ERP) in integrated EAP server +CONFIG_ERP=y + # EAP-MD5 for the integrated EAP server CONFIG_EAP_MD5=y @@ -91,6 +87,9 @@ CONFIG_EAP_TTLS=y # EAP-PSK for the integrated EAP server (this is _not_ needed for WPA-PSK) #CONFIG_EAP_PSK=y +# EAP-pwd for the integrated EAP server (secure authentication with a password) +#CONFIG_EAP_PWD=y + # EAP-SAKE for the integrated EAP server #CONFIG_EAP_SAKE=y @@ -110,6 +109,8 @@ CONFIG_EAP_TTLS=y CONFIG_WPS=y # Enable UPnP support for external WPS Registrars CONFIG_WPS_UPNP=y +# Enable WPS support with NFC config method +#CONFIG_WPS_NFC=y # EAP-IKEv2 CONFIG_EAP_IKEV2=y @@ -117,6 +118,9 @@ CONFIG_EAP_IKEV2=y # Trusted Network Connect (EAP-TNC) CONFIG_EAP_TNC=y +# EAP-EKE for the integrated EAP server +#CONFIG_EAP_EKE=y + # PKCS#12 (PFX) support (used to read private key and certificate file from # a file that usually has extension .p12 or .pfx) CONFIG_PKCS12=y @@ -138,14 +142,171 @@ CONFIG_IEEE80211R=y # IEEE 802.11n (High Throughput) support CONFIG_IEEE80211N=y +# Wireless Network Management (IEEE Std 802.11v-2011) +# Note: This is experimental and not complete implementation. +#CONFIG_WNM=y + +# IEEE 802.11ac (Very High Throughput) support +CONFIG_IEEE80211AC=y + # Remove debugging code that is printing out debug messages to stdout. # This can be used to reduce the size of the hostapd considerably if debugging # code is not needed. CONFIG_NO_STDOUT_DEBUG=y -# IEEE 802.11ac (Very High Throughput) support -CONFIG_IEEE80211AC=y -# Enable AUTO_CHANNEL_SELECTION -# This is needed for dfs (radar detection) channels +# Add support for writing debug log to a file: -f /tmp/hostapd.log +# Disabled by default. +#CONFIG_DEBUG_FILE=y + +# Add support for sending all debug messages (regardless of debug verbosity) +# to the Linux kernel tracing facility. This helps debug the entire stack by +# making it easy to record everything happening from the driver up into the +# same file, e.g., using trace-cmd. +#CONFIG_DEBUG_LINUX_TRACING=y + +# Remove support for RADIUS accounting +#CONFIG_NO_ACCOUNTING=y + +# Remove support for RADIUS +#CONFIG_NO_RADIUS=y + +# Remove support for VLANs +#CONFIG_NO_VLAN=y + +# Enable support for fully dynamic VLANs. This enables hostapd to +# automatically create bridge and VLAN interfaces if necessary. +#CONFIG_FULL_DYNAMIC_VLAN=y + +# Use netlink-based kernel API for VLAN operations instead of ioctl() +# Note: This requires libnl 3.1 or newer. +#CONFIG_VLAN_NETLINK=y + +# Remove support for dumping internal state through control interface commands +# This can be used to reduce binary size at the cost of disabling a debugging +# option. +#CONFIG_NO_DUMP_STATE=y + +# Enable tracing code for developer debugging +# This tracks use of memory allocations and other registrations and reports +# incorrect use with a backtrace of call (or allocation) location. +#CONFIG_WPA_TRACE=y +# For BSD, comment out these. +#LIBS += -lexecinfo +#LIBS_p += -lexecinfo +#LIBS_c += -lexecinfo + +# Use libbfd to get more details for developer debugging +# This enables use of libbfd to get more detailed symbols for the backtraces +# generated by CONFIG_WPA_TRACE=y. +#CONFIG_WPA_TRACE_BFD=y +# For BSD, comment out these. +#LIBS += -lbfd -liberty -lz +#LIBS_p += -lbfd -liberty -lz +#LIBS_c += -lbfd -liberty -lz + +# hostapd depends on strong random number generation being available from the +# operating system. os_get_random() function is used to fetch random data when +# needed, e.g., for key generation. On Linux and BSD systems, this works by +# reading /dev/urandom. It should be noted that the OS entropy pool needs to be +# properly initialized before hostapd is started. This is important especially +# on embedded devices that do not have a hardware random number generator and +# may by default start up with minimal entropy available for random number +# generation. +# +# As a safety net, hostapd is by default trying to internally collect +# additional entropy for generating random data to mix in with the data +# fetched from the OS. This by itself is not considered to be very strong, but +# it may help in cases where the system pool is not initialized properly. +# However, it is very strongly recommended that the system pool is initialized +# with enough entropy either by using hardware assisted random number +# generator or by storing state over device reboots. +# +# hostapd can be configured to maintain its own entropy store over restarts to +# enhance random number generation. This is not perfect, but it is much more +# secure than using the same sequence of random numbers after every reboot. +# This can be enabled with -e command line option. The specified +# file needs to be readable and writable by hostapd. +# +# If the os_get_random() is known to provide strong random data (e.g., on +# Linux/BSD, the board in question is known to have reliable source of random +# data from /dev/urandom), the internal hostapd random pool can be disabled. +# This will save some in binary size and CPU use. However, this should only be +# considered for builds that are known to be used on devices that meet the +# requirements described above. +#CONFIG_NO_RANDOM_POOL=y + +# Select TLS implementation +# openssl = OpenSSL (default) +# gnutls = GnuTLS +# internal = Internal TLSv1 implementation (experimental) +# none = Empty template +#CONFIG_TLS=openssl + +# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.1) +# can be enabled to get a stronger construction of messages when block ciphers +# are used. +#CONFIG_TLSV11=y + +# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.2) +# can be enabled to enable use of stronger crypto algorithms. +#CONFIG_TLSV12=y + +# If CONFIG_TLS=internal is used, additional library and include paths are +# needed for LibTomMath. Alternatively, an integrated, minimal version of +# LibTomMath can be used. See beginning of libtommath.c for details on benefits +# and drawbacks of this option. +#CONFIG_INTERNAL_LIBTOMMATH=y +#ifndef CONFIG_INTERNAL_LIBTOMMATH +#LTM_PATH=/usr/src/libtommath-0.39 +#CFLAGS += -I$(LTM_PATH) +#LIBS += -L$(LTM_PATH) +#LIBS_p += -L$(LTM_PATH) +#endif +# At the cost of about 4 kB of additional binary size, the internal LibTomMath +# can be configured to include faster routines for exptmod, sqr, and div to +# speed up DH and RSA calculation considerably +#CONFIG_INTERNAL_LIBTOMMATH_FAST=y + +# Interworking (IEEE 802.11u) +# This can be used to enable functionality to improve interworking with +# external networks. +#CONFIG_INTERWORKING=y + +# Hotspot 2.0 +#CONFIG_HS20=y + +# Enable SQLite database support in hlr_auc_gw, EAP-SIM DB, and eap_user_file +#CONFIG_SQLITE=y + +# Testing options +# This can be used to enable some testing options (see also the example +# configuration file) that are really useful only for testing clients that +# connect to this hostapd. These options allow, for example, to drop a +# certain percentage of probe requests or auth/(re)assoc frames. +# +#CONFIG_TESTING_OPTIONS=y + +# Automatic Channel Selection +# This will allow hostapd to pick the channel automatically when channel is set +# to "acs_survey" or "0". Eventually, other ACS algorithms can be added in +# similar way. +# +# Automatic selection is currently only done through initialization, later on +# we hope to do background checks to keep us moving to more ideal channels as +# time goes by. ACS is currently only supported through the nl80211 driver and +# your driver must have survey dump capability that is filled by the driver +# during scanning. +# +# You can customize the ACS survey algorithm with the hostapd.conf variable +# acs_num_scans. +# +# Supported ACS drivers: +# * ath9k +# * ath5k +# * ath10k +# +# For more details refer to: +# http://wireless.kernel.org/en/users/Documentation/acs +# CONFIG_ACS=y diff --git a/lfs/hostapd b/lfs/hostapd index 22528374a..e9286684b 100644 --- a/lfs/hostapd +++ b/lfs/hostapd @@ -24,7 +24,7 @@ include Config -VER = 2.3 +VER = 2.4 THISAPP = hostapd-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 40b89c61036add0c2dd1fc10767d3b5f +$(DL_FILE)_MD5 = 04578f3f2c3eb1bec1adf30473813912 install : $(TARGET) From 05583186d6cabdab8801045c491ba3d606690fb4 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sat, 11 Apr 2015 22:09:18 +0200 Subject: [PATCH 099/210] wlanap.cgi: hide "no IR" channels --- html/cgi-bin/wlanap.cgi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/cgi-bin/wlanap.cgi b/html/cgi-bin/wlanap.cgi index ec9022ddf..eb82c67c8 100644 --- a/html/cgi-bin/wlanap.cgi +++ b/html/cgi-bin/wlanap.cgi @@ -265,7 +265,7 @@ if ( $wlanapsettings{'DRIVER'} eq 'NL80211' ){ my $wiphy = `iw dev $wlanapsettings{'INTERFACE'} info | grep wiphy | cut -d" " -f2`; chomp $wiphy; -@channellist_cmd = `iw phy phy$wiphy info | grep " MHz \\\[" | grep -v "(disabled)" | grep -v "no IBSS" | grep -v "passive scanning" 2>/dev/null`; +@channellist_cmd = `iw phy phy$wiphy info | grep " MHz \\\[" | grep -v "(disabled)" | grep -v "no IBSS" | grep -v "no IR" | grep -v "passive scanning" 2>/dev/null`; # get available channels my @temp; From c17883fdcd250064ab1d2f3e922b619d77e282b7 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sat, 11 Apr 2015 22:18:26 +0200 Subject: [PATCH 100/210] wlansp.cgi: remove MADWIFI functions. --- html/cgi-bin/wlanap.cgi | 29 ++--------------------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/html/cgi-bin/wlanap.cgi b/html/cgi-bin/wlanap.cgi index eb82c67c8..844c395e2 100644 --- a/html/cgi-bin/wlanap.cgi +++ b/html/cgi-bin/wlanap.cgi @@ -71,7 +71,7 @@ $wlanapsettings{'HW_MODE'} = 'g'; $wlanapsettings{'PWD'} = 'IPFire-2.x'; $wlanapsettings{'SYSLOGLEVEL'} = '0'; $wlanapsettings{'DEBUG'} = '4'; -$wlanapsettings{'DRIVER'} = 'MADWIFI'; +$wlanapsettings{'DRIVER'} = 'NL80211'; $wlanapsettings{'HTCAPS'} = ''; &General::readhash("/var/ipfire/wlanap/settings", \%wlanapsettings); @@ -306,15 +306,6 @@ if ( $wlanapsettings{'DRIVER'} eq 'NL80211' ){ } # get available power -my @temp; -foreach (@txpower_cmd){ -$_ =~ /(\s)(\d+)(\s)dBm(\s)(.*)(\W)(\d+)(.*)/; -$txpower = $7;chomp $txpower; -if ( $txpower =~ /\d+/ ){push(@temp,$txpower."mW");} -} -my @txpower = @temp; -push(@txpower,"auto"); - $selected{'SYSLOGLEVEL'}{$wlanapsettings{'SYSLOGLEVEL'}} = "selected='selected'"; $selected{'DEBUG'}{$wlanapsettings{'DEBUG'}} = "selected='selected'"; @@ -437,20 +428,7 @@ END ; print < -"; -} else { - print "" -} -print < - - - - - - - - - -
$Lang::tr{'encryption'}
HT Caps: 
Tx Power:  -END -; - -if ( $wlanapsettings{'DRIVER'} eq 'MADWIFI' ){ - print "
Tx Power: 
Loglevel (hostapd):  - - - - - - - - +
$Lang::tr{'upload ca certificate'}
$Lang::tr{'ca name'}: -
+ + + - - - + + + + + - - - - + + + + +
$Lang::tr{'upload ca certificate'}
$Lang::tr{'ca name'}: +

$Lang::tr{'ovpn dh parameters'}
 
-
$Lang::tr{'ovpn dh upload'}: -
$Lang::tr{'ovpn dh new key'}:
+
+ + + + + + + + + + + + + + + +
$Lang::tr{'ovpn dh parameters'}
$Lang::tr{'ovpn dh upload'}: +
$Lang::tr{'ovpn dh new key'}:
+ -
+

END ; From 212fd689a30a7b2f627149ead8d45823dc8a68af Mon Sep 17 00:00:00 2001 From: Alexander Marx Date: Mon, 13 Apr 2015 07:52:25 +0200 Subject: [PATCH 103/210] BUG10796: Fix textoutput when doing pakfire update in WebUI --- html/cgi-bin/pakfire.cgi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/html/cgi-bin/pakfire.cgi b/html/cgi-bin/pakfire.cgi index 2a7ca8407..143f123b7 100644 --- a/html/cgi-bin/pakfire.cgi +++ b/html/cgi-bin/pakfire.cgi @@ -191,14 +191,14 @@ if ($return) {
-
+		
 END
 	my @output = `grep pakfire /var/log/messages | tail -20`;
 	foreach (@output) {
-		print "$_";
+		print "$_
"; } print < +
END &Header::closebox(); From 39d435690fa0fa56886bc95a00f7eb01463b7b80 Mon Sep 17 00:00:00 2001 From: Alexander Marx Date: Mon, 13 Apr 2015 08:36:00 +0200 Subject: [PATCH 104/210] BUG10797: Fix addontable in services.cgi when using squid-accounting addon When squid-accounting addon is installed, it shows up under services.cgi as "squid" service which is wrong. --- html/cgi-bin/services.cgi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi index 6bfa5bbbe..76bd9edeb 100644 --- a/html/cgi-bin/services.cgi +++ b/html/cgi-bin/services.cgi @@ -188,6 +188,9 @@ END # mdadm should not stopped with webif because this could crash the system # chomp($_); + if ( $_ eq 'squid' ) { + next; + } if ( ($_ ne "alsa") && ($_ ne "mdadm") ) { $lines++; if ($lines % 2){ From 96737543858a2d78d61da981dd10c5e9a3b671a4 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Mon, 13 Apr 2015 15:35:15 +0200 Subject: [PATCH 105/210] backup: Include sshd config file. The sshd config file was not included in the backups, so if the port was switched from the default one to another one, the changed value was correctly restored and displayed in the WUI but still the original sshd config file was present and the default port has been used. This issue is fixed by this commit. Fixes #10446. --- config/backup/include | 1 + 1 file changed, 1 insertion(+) diff --git a/config/backup/include b/config/backup/include index d7a1d3a32..159ff9a58 100644 --- a/config/backup/include +++ b/config/backup/include @@ -13,6 +13,7 @@ /etc/hosts* /etc/httpd/* /etc/ssh/ssh_host* +/etc/ssh/sshd_config /etc/logrotate.d /var/ipfire/auth/users /var/ipfire/dhcp/* From 0778b991c9e9a12ab4eee66c5846d56a708a5418 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Tue, 14 Apr 2015 10:27:17 +0200 Subject: [PATCH 106/210] start core90. --- config/rootfiles/core/90/exclude | 26 ++ config/rootfiles/core/90/filelists/apache2 | 1 + .../core/90/filelists/armv5tel/linux-kirkwood | 1 + .../core/90/filelists/armv5tel/linux-multi | 1 + .../core/90/filelists/armv5tel/linux-rpi | 1 + config/rootfiles/core/90/filelists/curl | 1 + config/rootfiles/core/90/filelists/cyrus-sasl | 1 + config/rootfiles/core/90/filelists/dhcp | 1 + config/rootfiles/core/90/filelists/dhcpcd | 1 + config/rootfiles/core/90/filelists/dracut | 1 + config/rootfiles/core/90/filelists/expat | 1 + config/rootfiles/core/90/filelists/files | 7 + config/rootfiles/core/90/filelists/groff | 1 + config/rootfiles/core/90/filelists/i586/acpid | 1 + config/rootfiles/core/90/filelists/i586/linux | 1 + .../core/90/filelists/i586/linux-initrd | 1 + config/rootfiles/core/90/filelists/iputils | 1 + config/rootfiles/core/90/filelists/libjpeg | 1 + config/rootfiles/core/90/filelists/logrotate | 1 + config/rootfiles/core/90/filelists/logwatch | 1 + config/rootfiles/core/90/filelists/openssl | 1 + config/rootfiles/core/90/filelists/strongswan | 1 + config/rootfiles/core/90/filelists/udev | 1 + .../core/90/filelists/wpa_supplicant | 1 + config/rootfiles/core/90/meta | 1 + config/rootfiles/core/90/update.sh | 248 ++++++++++++++++++ make.sh | 4 +- 27 files changed, 306 insertions(+), 2 deletions(-) create mode 100644 config/rootfiles/core/90/exclude create mode 120000 config/rootfiles/core/90/filelists/apache2 create mode 120000 config/rootfiles/core/90/filelists/armv5tel/linux-kirkwood create mode 120000 config/rootfiles/core/90/filelists/armv5tel/linux-multi create mode 120000 config/rootfiles/core/90/filelists/armv5tel/linux-rpi create mode 120000 config/rootfiles/core/90/filelists/curl create mode 120000 config/rootfiles/core/90/filelists/cyrus-sasl create mode 120000 config/rootfiles/core/90/filelists/dhcp create mode 120000 config/rootfiles/core/90/filelists/dhcpcd create mode 120000 config/rootfiles/core/90/filelists/dracut create mode 120000 config/rootfiles/core/90/filelists/expat create mode 100644 config/rootfiles/core/90/filelists/files create mode 120000 config/rootfiles/core/90/filelists/groff create mode 120000 config/rootfiles/core/90/filelists/i586/acpid create mode 120000 config/rootfiles/core/90/filelists/i586/linux create mode 120000 config/rootfiles/core/90/filelists/i586/linux-initrd create mode 120000 config/rootfiles/core/90/filelists/iputils create mode 120000 config/rootfiles/core/90/filelists/libjpeg create mode 120000 config/rootfiles/core/90/filelists/logrotate create mode 120000 config/rootfiles/core/90/filelists/logwatch create mode 120000 config/rootfiles/core/90/filelists/openssl create mode 120000 config/rootfiles/core/90/filelists/strongswan create mode 120000 config/rootfiles/core/90/filelists/udev create mode 120000 config/rootfiles/core/90/filelists/wpa_supplicant create mode 100644 config/rootfiles/core/90/meta create mode 100644 config/rootfiles/core/90/update.sh diff --git a/config/rootfiles/core/90/exclude b/config/rootfiles/core/90/exclude new file mode 100644 index 000000000..5be5371aa --- /dev/null +++ b/config/rootfiles/core/90/exclude @@ -0,0 +1,26 @@ +boot/config.txt +etc/collectd.custom +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +etc/localtime +etc/rc.d/rcsysinit.d/S19checkfstab +etc/rc.d/rcsysinit.d/S70console +etc/shadow +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf +etc/sudoers +etc/sysconfig/firewall.local +etc/sysconfig/modules +etc/sysconfig/rc.local +etc/udev/rules.d/30-persistent-network.rules +srv/web/ipfire/html/proxy.pac +var/ipfire/time +var/ipfire/ovpn/ccd.conf +var/ipfire/ovpn/ccdroute +var/ipfire/ovpn/ccdroute2 +var/log/cache +var/state/dhcp/dhcpd.leases +var/updatecache diff --git a/config/rootfiles/core/90/filelists/apache2 b/config/rootfiles/core/90/filelists/apache2 new file mode 120000 index 000000000..eef95efa7 --- /dev/null +++ b/config/rootfiles/core/90/filelists/apache2 @@ -0,0 +1 @@ +../../../common/apache2 \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/armv5tel/linux-kirkwood b/config/rootfiles/core/90/filelists/armv5tel/linux-kirkwood new file mode 120000 index 000000000..72171071e --- /dev/null +++ b/config/rootfiles/core/90/filelists/armv5tel/linux-kirkwood @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-kirkwood \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/armv5tel/linux-multi b/config/rootfiles/core/90/filelists/armv5tel/linux-multi new file mode 120000 index 000000000..204eb4c43 --- /dev/null +++ b/config/rootfiles/core/90/filelists/armv5tel/linux-multi @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-multi \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/armv5tel/linux-rpi b/config/rootfiles/core/90/filelists/armv5tel/linux-rpi new file mode 120000 index 000000000..a651a498f --- /dev/null +++ b/config/rootfiles/core/90/filelists/armv5tel/linux-rpi @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-rpi \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/curl b/config/rootfiles/core/90/filelists/curl new file mode 120000 index 000000000..4b84bef53 --- /dev/null +++ b/config/rootfiles/core/90/filelists/curl @@ -0,0 +1 @@ +../../../common/curl \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/cyrus-sasl b/config/rootfiles/core/90/filelists/cyrus-sasl new file mode 120000 index 000000000..bb51b4c92 --- /dev/null +++ b/config/rootfiles/core/90/filelists/cyrus-sasl @@ -0,0 +1 @@ +../../../common/cyrus-sasl \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/dhcp b/config/rootfiles/core/90/filelists/dhcp new file mode 120000 index 000000000..32d8da443 --- /dev/null +++ b/config/rootfiles/core/90/filelists/dhcp @@ -0,0 +1 @@ +../../../common/dhcp \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/dhcpcd b/config/rootfiles/core/90/filelists/dhcpcd new file mode 120000 index 000000000..1e799dabb --- /dev/null +++ b/config/rootfiles/core/90/filelists/dhcpcd @@ -0,0 +1 @@ +../../../common/dhcpcd \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/dracut b/config/rootfiles/core/90/filelists/dracut new file mode 120000 index 000000000..160869946 --- /dev/null +++ b/config/rootfiles/core/90/filelists/dracut @@ -0,0 +1 @@ +../../../common/dracut \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/expat b/config/rootfiles/core/90/filelists/expat new file mode 120000 index 000000000..e1923cf63 --- /dev/null +++ b/config/rootfiles/core/90/filelists/expat @@ -0,0 +1 @@ +../../../common/expat \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files new file mode 100644 index 000000000..2ef5ded31 --- /dev/null +++ b/config/rootfiles/core/90/filelists/files @@ -0,0 +1,7 @@ +etc/system-release +etc/issue +etc/rc.d/init.d/network-trigger +etc/rc.d/rcsysinit.d/S90network-trigger +usr/lib/firewall/rules.pl +var/ipfire/backup/include +var/ipfire/langs diff --git a/config/rootfiles/core/90/filelists/groff b/config/rootfiles/core/90/filelists/groff new file mode 120000 index 000000000..232291e52 --- /dev/null +++ b/config/rootfiles/core/90/filelists/groff @@ -0,0 +1 @@ +../../../common/groff \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/i586/acpid b/config/rootfiles/core/90/filelists/i586/acpid new file mode 120000 index 000000000..21d36ee1d --- /dev/null +++ b/config/rootfiles/core/90/filelists/i586/acpid @@ -0,0 +1 @@ +../../../../common/i586/acpid \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/i586/linux b/config/rootfiles/core/90/filelists/i586/linux new file mode 120000 index 000000000..693ec4bbf --- /dev/null +++ b/config/rootfiles/core/90/filelists/i586/linux @@ -0,0 +1 @@ +../../../../common/i586/linux \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/i586/linux-initrd b/config/rootfiles/core/90/filelists/i586/linux-initrd new file mode 120000 index 000000000..32a03e6a9 --- /dev/null +++ b/config/rootfiles/core/90/filelists/i586/linux-initrd @@ -0,0 +1 @@ +../../../../common/i586/linux-initrd \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/iputils b/config/rootfiles/core/90/filelists/iputils new file mode 120000 index 000000000..361c28f71 --- /dev/null +++ b/config/rootfiles/core/90/filelists/iputils @@ -0,0 +1 @@ +../../../common/iputils \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/libjpeg b/config/rootfiles/core/90/filelists/libjpeg new file mode 120000 index 000000000..3b1a782fb --- /dev/null +++ b/config/rootfiles/core/90/filelists/libjpeg @@ -0,0 +1 @@ +../../../common/libjpeg \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/logrotate b/config/rootfiles/core/90/filelists/logrotate new file mode 120000 index 000000000..bc192c05d --- /dev/null +++ b/config/rootfiles/core/90/filelists/logrotate @@ -0,0 +1 @@ +../../../common/logrotate \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/logwatch b/config/rootfiles/core/90/filelists/logwatch new file mode 120000 index 000000000..f14eabda9 --- /dev/null +++ b/config/rootfiles/core/90/filelists/logwatch @@ -0,0 +1 @@ +../../../common/logwatch \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/openssl b/config/rootfiles/core/90/filelists/openssl new file mode 120000 index 000000000..e011a9266 --- /dev/null +++ b/config/rootfiles/core/90/filelists/openssl @@ -0,0 +1 @@ +../../../common/openssl \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/strongswan b/config/rootfiles/core/90/filelists/strongswan new file mode 120000 index 000000000..90c727e26 --- /dev/null +++ b/config/rootfiles/core/90/filelists/strongswan @@ -0,0 +1 @@ +../../../common/strongswan \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/udev b/config/rootfiles/core/90/filelists/udev new file mode 120000 index 000000000..e967a1c92 --- /dev/null +++ b/config/rootfiles/core/90/filelists/udev @@ -0,0 +1 @@ +../../../common/udev \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/wpa_supplicant b/config/rootfiles/core/90/filelists/wpa_supplicant new file mode 120000 index 000000000..1d04c03c0 --- /dev/null +++ b/config/rootfiles/core/90/filelists/wpa_supplicant @@ -0,0 +1 @@ +../../../common/wpa_supplicant \ No newline at end of file diff --git a/config/rootfiles/core/90/meta b/config/rootfiles/core/90/meta new file mode 100644 index 000000000..d547fa86f --- /dev/null +++ b/config/rootfiles/core/90/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/core/90/update.sh b/config/rootfiles/core/90/update.sh new file mode 100644 index 000000000..6af052c0b --- /dev/null +++ b/config/rootfiles/core/90/update.sh @@ -0,0 +1,248 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2014 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + + +function find_device() { + local mountpoint="${1}" + + local root + local dev mp fs flags rest + while read -r dev mp fs flags rest; do + # Skip unwanted entries + [ "${dev}" = "rootfs" ] && continue + + if [ "${mp}" = "${mountpoint}" ] && [ -b "${dev}" ]; then + root="$(basename "${dev}")" + break + fi + done < /proc/mounts + + # Get the actual device from the partition that holds / + while [ -n "${root}" ]; do + if [ -e "/sys/block/${root}" ]; then + echo "${root}" + return 0 + fi + + # Remove last character + root="${root::-1}" + done + + return 1 +} + + +# +# Remove old core updates from pakfire cache to save space... +core=90 +for (( i=1; i<=${core}; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# +# Do some sanity checks. +case $(uname -r) in + *-ipfire-versatile ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: ERROR cannot update. versatile support is dropped." + # Report no error to pakfire. So it does not try to install it again. + exit 0 + ;; + *-ipfire* ) + # Ok. + ;; + * ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: ERROR cannot update. No IPFire Kernel." + exit 1 + ;; +esac + + +# +# +KVER="xxxKVERxxx" + +# Check diskspace on root +ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + +if [ $ROOTSPACE -lt 100000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: ERROR cannot update because not enough free space on root." + exit 2 +fi + + +echo +echo Update Kernel to $KVER ... +# +# Remove old kernel, configs, initrd, modules, dtb's ... +# +rm -rf /boot/System.map-* +rm -rf /boot/config-* +rm -rf /boot/ipfirerd-* +rm -rf /boot/initramfs-* +rm -rf /boot/vmlinuz-* +rm -rf /boot/uImage-ipfire-* +rm -rf /boot/uInit-ipfire-* +rm -rf /boot/dtb-*-ipfire-* +rm -rf /lib/modules + +case "$(uname -m)" in + armv*) + # Backup uEnv.txt if exist + if [ -e /boot/uEnv.txt ]; then + cp -vf /boot/uEnv.txt /boot/uEnv.txt.org + fi + + # work around the u-boot folder detection bug + mkdir -pv /boot/dtb-$KVER-ipfire-kirkwood + mkdir -pv /boot/dtb-$KVER-ipfire-multi + ;; +esac + +# +#Stop services +/etc/init.d/snort stop +/etc/init.d/squid stop +/etc/init.d/ipsec stop +/etc/init.d/apache stop + +# +#Extract files +tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C / + +# Check diskspace on boot +BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + +if [ $BOOTSPACE -lt 1000 ]; then + case $(uname -r) in + *-ipfire-kirkwood ) + # Special handling for old kirkwood images. + # (install only kirkwood kernel) + rm -rf /boot/* + # work around the u-boot folder detection bug + mkdir -pv /boot/dtb-$KVER-ipfire-kirkwood + tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p \ + --numeric-owner -C / --wildcards 'boot/*-kirkwood*' + ;; + * ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: FATAL-ERROR space run out on boot. System is not bootable..." + /etc/init.d/apache start + exit 4 + ;; + esac +fi + +# Update Language cache +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +# +# Start services +# +/etc/init.d/apache start +/etc/init.d/squid start +/etc/init.d/snort start +if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then + /etc/init.d/ipsec start +fi + +case "$(uname -m)" in + i?86) + case "$(find_device "/")" in + xvd* ) + echo Skip remove grub2 files, because pygrub fail. + rm -f /boot/grub/* + echo config will recreated by linux-pae install. + ;; + * ) + # + # Update to GRUB2 config + # + grub-mkconfig > /boot/grub/grub.cfg + ;; + esac +esac + +# Force (re)install pae kernel if pae is supported +rm -rf /opt/pakfire/db/*/meta-linux-pae +if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then + ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + if [ $BOOTSPACE -lt 12000 -o $ROOTSPACE -lt 90000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: WARNING not enough space for pae kernel." + else + echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae + echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Name: linux-pae" > /opt/pakfire/db/meta/meta-linux-pae + echo "ProgVersion: 0" >> /opt/pakfire/db/meta/meta-linux-pae + echo "Release: 0" >> /opt/pakfire/db/meta/meta-linux-pae + fi +fi + +# +# After pakfire has ended run it again and update the lists and do upgrade +# +echo '#!/bin/bash' > /tmp/pak_update +echo 'while [ "$(ps -A | grep " update.sh")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo 'while [ "$(ps -A | grep " pakfire")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo '/opt/pakfire/pakfire update -y --force' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire "Core-upgrade finished. If you use a customized grub/uboot config"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire "Check it before reboot !!!"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire " *** Please reboot... *** "' >> /tmp/pak_update +echo 'touch /var/run/need_reboot ' >> /tmp/pak_update +# +killall -KILL pak_update +chmod +x /tmp/pak_update +/tmp/pak_update & + +sync + +# +#Finish +( + /etc/init.d/fireinfo start + sendprofile +) >/dev/null 2>&1 & + +echo +echo Please wait until pakfire has ended... +echo + +# Don't report the exitcode last command +exit 0 + diff --git a/make.sh b/make.sh index 0326a9064..316917e0b 100755 --- a/make.sh +++ b/make.sh @@ -17,7 +17,7 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2007-2014 IPFire Team . # +# Copyright (C) 2007-2015 IPFire Team . # # # ############################################################################ # @@ -25,7 +25,7 @@ NAME="IPFire" # Software name SNAME="ipfire" # Short name VERSION="2.17" # Version number -CORE="89" # Core Level (Filename) +CORE="90" # Core Level (Filename) PAKFIRE_CORE="89" # Core Level (PAKFIRE) GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` # Git Branch SLOGAN="www.ipfire.org" # Software slogan From 91d6b6ef07fc9915dcb2ca8ed0147118615b690d Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Thu, 16 Apr 2015 10:51:03 +0200 Subject: [PATCH 107/210] Revert roofile update for Locale-Country. This reverts commit f2d941436b9721cdbfc37f0c7769088d14621d13. --- config/rootfiles/common/Locale-Country | 63 ++++++-------------------- 1 file changed, 13 insertions(+), 50 deletions(-) diff --git a/config/rootfiles/common/Locale-Country b/config/rootfiles/common/Locale-Country index 0ed312f43..bbe51eee7 100644 --- a/config/rootfiles/common/Locale-Country +++ b/config/rootfiles/common/Locale-Country @@ -1,50 +1,13 @@ -#usr/lib/perl5/5.12.3/Locale/Codes -usr/lib/perl5/5.12.3/Locale/Codes.pm -usr/lib/perl5/5.12.3/Locale/Codes.pod -usr/lib/perl5/5.12.3/Locale/Codes/API.pod -usr/lib/perl5/5.12.3/Locale/Codes/Changes.pod -usr/lib/perl5/5.12.3/Locale/Codes/Constants.pm -usr/lib/perl5/5.12.3/Locale/Codes/Constants.pod -usr/lib/perl5/5.12.3/Locale/Codes/Country.pm -usr/lib/perl5/5.12.3/Locale/Codes/Country.pod -usr/lib/perl5/5.12.3/Locale/Codes/Country_Codes.pm -usr/lib/perl5/5.12.3/Locale/Codes/Country_Retired.pm -usr/lib/perl5/5.12.3/Locale/Codes/Currency.pm -usr/lib/perl5/5.12.3/Locale/Codes/Currency.pod -usr/lib/perl5/5.12.3/Locale/Codes/Currency_Codes.pm -usr/lib/perl5/5.12.3/Locale/Codes/Currency_Retired.pm -usr/lib/perl5/5.12.3/Locale/Codes/LangExt.pm -usr/lib/perl5/5.12.3/Locale/Codes/LangExt.pod -usr/lib/perl5/5.12.3/Locale/Codes/LangExt_Codes.pm -usr/lib/perl5/5.12.3/Locale/Codes/LangExt_Retired.pm -usr/lib/perl5/5.12.3/Locale/Codes/LangFam.pm -usr/lib/perl5/5.12.3/Locale/Codes/LangFam.pod -usr/lib/perl5/5.12.3/Locale/Codes/LangFam_Codes.pm -usr/lib/perl5/5.12.3/Locale/Codes/LangFam_Retired.pm -usr/lib/perl5/5.12.3/Locale/Codes/LangVar.pm -usr/lib/perl5/5.12.3/Locale/Codes/LangVar.pod -usr/lib/perl5/5.12.3/Locale/Codes/LangVar_Codes.pm -usr/lib/perl5/5.12.3/Locale/Codes/LangVar_Retired.pm -usr/lib/perl5/5.12.3/Locale/Codes/Language.pm -usr/lib/perl5/5.12.3/Locale/Codes/Language.pod -usr/lib/perl5/5.12.3/Locale/Codes/Language_Codes.pm -usr/lib/perl5/5.12.3/Locale/Codes/Language_Retired.pm -usr/lib/perl5/5.12.3/Locale/Codes/Script.pm -usr/lib/perl5/5.12.3/Locale/Codes/Script.pod -usr/lib/perl5/5.12.3/Locale/Codes/Script_Codes.pm -usr/lib/perl5/5.12.3/Locale/Codes/Script_Retired.pm -#usr/lib/perl5/5.12.3/i586-linux-thread-multi/auto/Locale -#usr/lib/perl5/5.12.3/i586-linux-thread-multi/auto/Locale/Codes -#usr/lib/perl5/5.12.3/i586-linux-thread-multi/auto/Locale/Codes/.packlist -#usr/share/man/man3/Locale::Codes.3 -#usr/share/man/man3/Locale::Codes::API.3 -#usr/share/man/man3/Locale::Codes::Changes.3 -#usr/share/man/man3/Locale::Codes::Constants.3 -#usr/share/man/man3/Locale::Codes::Country.3 -#usr/share/man/man3/Locale::Codes::Currency.3 -#usr/share/man/man3/Locale::Codes::LangExt.3 -#usr/share/man/man3/Locale::Codes::LangFam.3 -#usr/share/man/man3/Locale::Codes::LangFam_Retired.3 -#usr/share/man/man3/Locale::Codes::LangVar.3 -#usr/share/man/man3/Locale::Codes::Language.3 -#usr/share/man/man3/Locale::Codes::Script.3 +#usr/lib/perl5/site_perl/5.12.3/Locale +usr/lib/perl5/site_perl/5.12.3/Locale/Constants.pm +usr/lib/perl5/site_perl/5.12.3/Locale/Constants.pod +usr/lib/perl5/site_perl/5.12.3/Locale/Country.pm +usr/lib/perl5/site_perl/5.12.3/Locale/Country.pod +usr/lib/perl5/site_perl/5.12.3/Locale/Currency.pm +usr/lib/perl5/site_perl/5.12.3/Locale/Currency.pod +usr/lib/perl5/site_perl/5.12.3/Locale/Language.pm +usr/lib/perl5/site_perl/5.12.3/Locale/Language.pod +usr/lib/perl5/site_perl/5.12.3/Locale/Script.pm +usr/lib/perl5/site_perl/5.12.3/Locale/Script.pod +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Locale-Codes +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Locale-Codes/.packlist From cbc5a4374fd19c8657792f14813da52b801fd681 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Thu, 16 Apr 2015 10:51:44 +0200 Subject: [PATCH 108/210] Revert "perl-Locale-Country: Update country codes to version 3.33." This reverts commit bf235e962cdd2d0d95d9a6ccfef0b449d181bb04. --- lfs/Locale-Country | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lfs/Locale-Country b/lfs/Locale-Country index 02bf7a026..b2c1455ef 100644 --- a/lfs/Locale-Country +++ b/lfs/Locale-Country @@ -24,7 +24,7 @@ include Config -VER = 3.33 +VER = 2.07 THISAPP = Locale-Codes-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = bc7496f97889de8504e80addaa0ee40c +$(DL_FILE)_MD5 = af0537cc4a882096d0320612c440df6d install : $(TARGET) From 30654fd82b9185597689c701c99987e02de2a959 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Thu, 16 Apr 2015 19:39:11 +0200 Subject: [PATCH 109/210] configroot: Add geoip related files. Create required empty files and install geoip-functions.pl to desired destination. --- lfs/configroot | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lfs/configroot b/lfs/configroot index e0bb346d0..601cdf6d3 100644 --- a/lfs/configroot +++ b/lfs/configroot @@ -64,8 +64,8 @@ $(TARGET) : for i in auth/users backup/include.user backup/exclude.user \ certs/index.txt ddns/config ddns/noipsettings ddns/settings ddns/ipcache dhcp/settings \ dhcp/fixleases dhcp/advoptions dhcp/dhcpd.conf.local dns/settings dnsforward/config ethernet/aliases ethernet/settings ethernet/known_nics ethernet/scanned_nics \ - ethernet/wireless extrahd/scan extrahd/devices extrahd/partitions extrahd/settings firewall/settings firewall/config firewall/input firewall/outgoing \ - fwhosts/customnetworks fwhosts/customhosts fwhosts/customgroups fwhosts/customservicegrp fwlogs/ipsettings fwlogs/portsettings \ + ethernet/wireless extrahd/scan extrahd/devices extrahd/partitions extrahd/settings firewall/settings firewall/config firewall/geoipblock firewall/input firewall/outgoing \ + fwhosts/customnetworks fwhosts/customhosts fwhosts/customgroups fwhosts/customservicegrp fwhosts/customgeoipgrp fwlogs/ipsettings fwlogs/portsettings \ isdn/settings mac/settings main/disable_nf_sip main/hosts main/routing main/settings net-traffic/settings optionsfw/settings \ ovpn/ccd.conf ovpn/ccdroute ovpn/ccdroute2 pakfire/settings portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \ ppp/settings-5 ppp/settings proxy/settings proxy/squid.conf proxy/advanced/settings proxy/advanced/cre/enable remote/settings qos/settings qos/classes qos/subclasses qos/level7config qos/portconfig \ @@ -78,6 +78,7 @@ $(TARGET) : cp $(DIR_SRC)/config/cfgroot/header.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/general-functions.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/network-functions.pl $(CONFIG_ROOT)/ + cp $(DIR_SRC)/config/cfgroot/geoip-functions.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/lang.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/countries.pl $(CONFIG_ROOT)/ cp $(DIR_SRC)/config/cfgroot/graphs.pl $(CONFIG_ROOT)/ From b8fe6ca756adb45f7ea92b6211204d17fc701ff1 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Thu, 16 Apr 2015 19:40:53 +0200 Subject: [PATCH 110/210] Roofile updates for GeoIP related files. --- config/rootfiles/common/apache2 | 1 + config/rootfiles/common/armv5tel/initscripts | 1 + config/rootfiles/common/configroot | 3 +++ config/rootfiles/common/i586/initscripts | 1 + 4 files changed, 6 insertions(+) diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index 55dd04ee5..8033a874a 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -1402,6 +1402,7 @@ srv/web/ipfire/cgi-bin/extrahd.cgi srv/web/ipfire/cgi-bin/fireinfo.cgi srv/web/ipfire/cgi-bin/firewall.cgi srv/web/ipfire/cgi-bin/fwhosts.cgi +srv/web/ipfire/cgi-bin/geoip-block.cgi srv/web/ipfire/cgi-bin/gpl.cgi srv/web/ipfire/cgi-bin/gui.cgi srv/web/ipfire/cgi-bin/hardwaregraphs.cgi diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts index 8ddf34ae8..b4cd8f857 100644 --- a/config/rootfiles/common/armv5tel/initscripts +++ b/config/rootfiles/common/armv5tel/initscripts @@ -92,6 +92,7 @@ etc/rc.d/init.d/networking/red.up/50-ipsec etc/rc.d/init.d/networking/red.up/50-ovpn etc/rc.d/init.d/networking/red.up/98-leds etc/rc.d/init.d/networking/red.up/99-fireinfo +etc/rc.d/init.d/networking/red.up/99-geoip-database etc/rc.d/init.d/networking/red.up/99-pakfire-update etc/rc.d/init.d/networking/wpa_supplicant.exe #etc/rc.d/init.d/nfs-server diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot index eaf1af6ed..f6cbb61ef 100644 --- a/config/rootfiles/common/configroot +++ b/config/rootfiles/common/configroot @@ -52,6 +52,7 @@ var/ipfire/extrahd var/ipfire/firewall #var/ipfire/firewall/config #var/ipfire/firewall/dmz +#var/ipfire/firewall/geoipblock #var/ipfire/firewall/input #var/ipfire/firewall/nat #var/ipfire/firewall/outgoing @@ -59,6 +60,7 @@ var/ipfire/firewall #var/ipfire/firewall/settings var/ipfire/fwhosts #var/ipfire/fwhosts/customgroups +#var/ipfire/fwhosts/customgeoipgrp #var/ipfire/fwhosts/customhosts #var/ipfire/fwhosts/customnetworks #var/ipfire/fwhosts/customservicegrp @@ -69,6 +71,7 @@ var/ipfire/fwlogs #var/ipfire/fwlogs/ipsettings #var/ipfire/fwlogs/portsettings var/ipfire/general-functions.pl +var/ipfire/geoip-functions.pl var/ipfire/graphs.pl var/ipfire/header.pl var/ipfire/isdn diff --git a/config/rootfiles/common/i586/initscripts b/config/rootfiles/common/i586/initscripts index 3d4dd62ff..878ba667e 100644 --- a/config/rootfiles/common/i586/initscripts +++ b/config/rootfiles/common/i586/initscripts @@ -94,6 +94,7 @@ etc/rc.d/init.d/networking/red.up/50-ipsec etc/rc.d/init.d/networking/red.up/50-ovpn etc/rc.d/init.d/networking/red.up/98-leds etc/rc.d/init.d/networking/red.up/99-fireinfo +etc/rc.d/init.d/networking/red.up/99-geoip-database etc/rc.d/init.d/networking/red.up/99-pakfire-update etc/rc.d/init.d/networking/wpa_supplicant.exe #etc/rc.d/init.d/nfs-server From 46d3a4cb16ea09393fa141f56478e7d1d247b67c Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Thu, 16 Apr 2015 20:37:00 +0200 Subject: [PATCH 111/210] Core90: Add GeoIP to update. --- config/rootfiles/core/90/exclude | 4 +++- config/rootfiles/core/90/filelists/files | 12 ++++++++++++ .../rootfiles/core/90/filelists/perl-Text-CSV_XS | 1 + .../rootfiles/core/90/filelists/xtables-addons | 1 + config/rootfiles/core/90/update.sh | 16 ++++++++++++++++ 5 files changed, 33 insertions(+), 1 deletion(-) create mode 120000 config/rootfiles/core/90/filelists/perl-Text-CSV_XS create mode 120000 config/rootfiles/core/90/filelists/xtables-addons diff --git a/config/rootfiles/core/90/exclude b/config/rootfiles/core/90/exclude index 5be5371aa..56e840d8c 100644 --- a/config/rootfiles/core/90/exclude +++ b/config/rootfiles/core/90/exclude @@ -17,10 +17,12 @@ etc/sysconfig/modules etc/sysconfig/rc.local etc/udev/rules.d/30-persistent-network.rules srv/web/ipfire/html/proxy.pac -var/ipfire/time +var/ipfire/firewall/geoipblock +var/ipfire/fwhosts/custmgeoipgrp var/ipfire/ovpn/ccd.conf var/ipfire/ovpn/ccdroute var/ipfire/ovpn/ccdroute2 +var/ipfire/time var/log/cache var/state/dhcp/dhcpd.leases var/updatecache diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files index 2ef5ded31..5f05eb549 100644 --- a/config/rootfiles/core/90/filelists/files +++ b/config/rootfiles/core/90/filelists/files @@ -1,7 +1,19 @@ etc/system-release etc/issue +etc/rc.d/init.d/firewall etc/rc.d/init.d/network-trigger +etc/rc.d/init.d/networking/red.up/99-geoip-database etc/rc.d/rcsysinit.d/S90network-trigger +srv/web/ipfire/cgi-bin/firewall.cgi +srv/web/ipfire/cgi-bin/fwhosts.cgi +srv/web/ipfire/cgi-bin/geoip-block.cgi +usr/lib/firewall/firewall-lib.pl usr/lib/firewall/rules.pl +usr/local/bin/xt_geoip_build +usr/local/bin/xt_geoip_update +var/ipfire/general-functions.pl +var/ipfire/geoip-functions.pl +var/ipfire/header.pl var/ipfire/backup/include var/ipfire/langs +var/ipfire/menu.d/50-firewall.menu diff --git a/config/rootfiles/core/90/filelists/perl-Text-CSV_XS b/config/rootfiles/core/90/filelists/perl-Text-CSV_XS new file mode 120000 index 000000000..ec1202f07 --- /dev/null +++ b/config/rootfiles/core/90/filelists/perl-Text-CSV_XS @@ -0,0 +1 @@ +../../../common/perl-Text-CSV_XS \ No newline at end of file diff --git a/config/rootfiles/core/90/filelists/xtables-addons b/config/rootfiles/core/90/filelists/xtables-addons new file mode 120000 index 000000000..2e24c4298 --- /dev/null +++ b/config/rootfiles/core/90/filelists/xtables-addons @@ -0,0 +1 @@ +../../../common/xtables-addons \ No newline at end of file diff --git a/config/rootfiles/core/90/update.sh b/config/rootfiles/core/90/update.sh index 6af052c0b..9a83ac403 100644 --- a/config/rootfiles/core/90/update.sh +++ b/config/rootfiles/core/90/update.sh @@ -159,6 +159,22 @@ if [ $BOOTSPACE -lt 1000 ]; then esac fi +# Create GeoIP related files if they do not exist yet. +if [ ! -e "/var/ipfire/firewall/geoipblock" ]; then + touch /var/ipfire/firewall/geoipblock + chown nobody:nobody /var/ipfire/firewall/geoipblock + + # Insert default value into file. + echo "GEOIPBLOCK_ENABLED=off" >> /var/ipfire/firewall/geoipblock +fi +if [ ! -e "/var/ipfire/fwhosts/customgeoipgrp" ]; then + touch /var/ipfire/fwhosts/customgeoipgrp + chown nobody:nobody /var/ipfire/fwhosts/customgeoipgrp +fi + +# Download/Update GeoIP databases. +/usr/local/bin/xt_geoip_update + # Update Language cache perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" From 4d9e31ab78dbcf8d6c7cd5720d7cdf410281d778 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 16 Apr 2015 20:52:44 +0200 Subject: [PATCH 112/210] kernel: update to 3.14.38 --- lfs/linux | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lfs/linux b/lfs/linux index 7ac13d6b4..300fd8703 100644 --- a/lfs/linux +++ b/lfs/linux @@ -24,11 +24,11 @@ include Config -VER = 3.14.37 +VER = 3.14.38 -RPI_PATCHES = 3.14.37-grsec-ipfire1 -A7M_PATCHES = 3.14.37-grsec-ipfire1 -GRS_PATCHES = grsecurity-3.1-3.14.37-201503270048.patch.xz +RPI_PATCHES = 3.14.38-grsec-ipfire1 +A7M_PATCHES = 3.14.38-grsec-ipfire1 +GRS_PATCHES = grsecurity-3.1-3.14.38-201504142259.patch.xz THISAPP = linux-$(VER) DL_FILE = linux-$(VER).tar.xz @@ -77,10 +77,10 @@ rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES). arm7-multi-patches-$(A7M_PATCHES).patch.xz = $(URL_IPFIRE)/arm7-multi-patches-$(A7M_PATCHES).patch.xz $(GRS_PATCHES) = $(URL_IPFIRE)/$(GRS_PATCHES) -$(DL_FILE)_MD5 = 43abcb454054c53fb07296e84119edc5 -rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 375dc501711ff3ffeffdfc9848675d26 -arm7-multi-patches-$(A7M_PATCHES).patch.xz_MD5 = 8a0a0d6ef78d53b3095691499dac4b71 -$(GRS_PATCHES)_MD5 = d83ca635c83bbd5efc4372992ab58094 +$(DL_FILE)_MD5 = c4d0154627e02dc43c67fa616ff1e569 +rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = e423c8b3a408f23b9a26f8f0f4384c50 +arm7-multi-patches-$(A7M_PATCHES).patch.xz_MD5 = a4a4103255e93bfcb02652212b0ae3fc +$(GRS_PATCHES)_MD5 = 6d6ed13c08ae96f6470c30c00e08b130 install : $(TARGET) From db5b5de9a9cbb53b713cbc95a80021e458a5041f Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Thu, 16 Apr 2015 22:00:51 +0200 Subject: [PATCH 113/210] Core90: Update crontab. --- config/rootfiles/core/90/update.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/config/rootfiles/core/90/update.sh b/config/rootfiles/core/90/update.sh index 9a83ac403..5e09240bc 100644 --- a/config/rootfiles/core/90/update.sh +++ b/config/rootfiles/core/90/update.sh @@ -175,6 +175,16 @@ fi # Download/Update GeoIP databases. /usr/local/bin/xt_geoip_update +# Update crontab +grep -q /usr/local/bin/xt_geoip_update /var/spool/cron/root.orig || cat <> /var/spool/cron/root.orig + +# Update GeoIP database once a month. +%monthly,random * * * [ -f "/var/ipfire/red/active" ] && /usr/local/bin/xt_geoip_update >/dev/null 2>&1 +EOF + +fcrontab -z &>/dev/null + + # Update Language cache perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" From d54a2ce45232412d2b674df51cc8012d8e2c846d Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 18 Apr 2015 16:11:29 +0200 Subject: [PATCH 114/210] dnsmasq: Import more patches from upstream --- config/rootfiles/core/90/filelists/dnsmasq | 1 + lfs/dnsmasq | 7 ++ ...ne-at-the-end-of-example-config-file.patch | 2 +- ...-when-an-empty-suffix-is-supplied-to.patch | 2 +- ...0003-Debian-build-fixes-for-kFreeBSD.patch | 2 +- ...t-conntrack-mark-before-connect-call.patch | 2 +- .../0005-Fix-typo-in-new-Dbus-code.patch | 2 +- .../0006-Fit-example-conf-file-typo.patch | 2 +- ...liance-when-unable-to-supply-address.patch | 2 +- ...8-Fix-conntrack-with-bind-interfaces.patch | 2 +- ...-inotify-instead-of-polling-on-Linux.patch | 2 +- ...-the-new-inotify-code-about-symlinks.patch | 2 +- ...oor-on-EDNS0-packet-size-with-DNSSEC.patch | 2 +- .../dnsmasq/0012-CHANGELOG-re.-inotify.patch | 2 +- ...eakage-of-domain-domain-subnet-local.patch | 2 +- ...dundant-IN6_IS_ADDR_ULA-a-macro-defn.patch | 2 +- ...rivacy-addresses-from-interface-name.patch | 2 +- ...h-in-cache-dump-to-avoid-truncating-.patch | 2 +- ...SEC-code-when-attempting-to-verify-l.patch | 2 +- ...k-for-CNAMEs-pointing-to-A-AAAA-reco.patch | 2 +- ...blems-validating-NSEC3-and-wildcards.patch | 2 +- .../0020-Initialise-return-value.patch | 2 +- .../0021-Add-ignore-address-option.patch | 2 +- .../dnsmasq/0022-Bad-packet-protection.patch | 2 +- ...d-failure-in-new-inotify-code-on-BSD.patch | 2 +- ...efile-dependencies-on-COPTS-variable.patch | 2 +- ...Fix-race-condition-issue-in-makefile.patch | 2 +- ...wn-search-for-limit-of-secure-delega.patch | 2 +- ...extra-option-for-more-complete-loggi.patch | 2 +- .../0028-Add-min-cache-ttl-option.patch | 2 +- ...f-requestor-when-doing-extra-logging.patch | 2 +- ...m-cache-RRsets-from-wildcards-as-we-.patch | 2 +- .../0031-Logs-for-DS-records-consistent.patch | 2 +- ...le-interfaces-with-the-same-LL-addre.patch | 2 +- ...reat-SERVFAIL-as-a-recoverable-error.patch | 2 +- ...0034-Add-dhcp-hostsdir-config-option.patch | 2 +- .../0035-Update-German-translation.patch | 2 +- ...HCPv6-SOLICIT-messages-when-not-conf.patch | 2 +- ...-be-disabled-at-compile-time-on-Linu.patch | 2 +- ...ode-to-dhcp-hostsdir-dhcp-optsdir-an.patch | 2 +- ...9-Update-copyrights-for-dawn-of-2015.patch | 2 +- .../0040-inotify-documentation-updates.patch | 2 +- ...1-Fix-broken-ECDSA-DNSSEC-signatures.patch | 2 +- .../dnsmasq/0042-BSD-make-support.patch | 2 +- .../0043-Fix-build-failure-on-openBSD.patch | 2 +- .../dnsmasq/0044-Manpage-typo-fix.patch | 2 +- ...gs-after-reading-extra-hostfiles-wit.patch | 2 +- .../0046-Extra-logging-for-inotify-code.patch | 2 +- src/patches/dnsmasq/0047-man-page-typo.patch | 2 +- ...script-which-returned-wrong-tag-in-s.patch | 2 +- src/patches/dnsmasq/0049-Typos.patch | 2 +- ...c-hosts-files-work-when-no-hosts-set.patch | 2 +- ...ial-memory-leaks-to-quieten-valgrind.patch | 2 +- ...ialized-value-used-in-get_client_mac.patch | 2 +- ...parsing-utils-in-contrib-reverse-dns.patch | 2 +- ...dnssec-timestamp-option-and-facility.patch | 2 +- ...to-not-crash-if-uid-changing-not-con.patch | 2 +- ...6-New-version-of-contrib-reverse-dns.patch | 2 +- ...estamp-code-to-create-file-later-rem.patch | 2 +- ...code-for-re-running-system-calls-on-.patch | 2 +- ...mple.com-equivalent-to-server-exampl.patch | 2 +- ...d-interface-via-cmsg-in-unicast-repl.patch | 2 +- ...C-when-a-signed-CNAME-dangles-into-a.patch | 2 +- ...n-SERVFAIL-when-validation-abandoned.patch | 2 +- ...tect-against-broken-DNSSEC-upstreams.patch | 2 +- ...x-for-non-ascii-characters-in-labels.patch | 2 +- ...aracters-in-names-in-the-cache-handl.patch | 2 +- .../0066-Fix-crash-in-last-commit.patch | 2 +- .../0067-Merge-message-translations.patch | 2 +- ...-no-fail-to-ignore-missing-tftp-root.patch | 2 +- .../dnsmasq/0069-Whitespace-fixes.patch | 2 +- ...rather-than-BOGUS-when-DS-proved-not.patch | 2 +- ...er-warning-when-not-including-DNSSEC.patch | 2 +- ...-by-looking-up-servers.bind-when-man.patch | 54 +++++++++ ...eipt-of-certain-malformed-DNS-reques.patch | 61 ++++++++++ ...-in-auth-code-with-odd-configuration.patch | 113 ++++++++++++++++++ ...replies-to-NS-and-SOA-in-.arpa-zones.patch | 106 ++++++++++++++++ ...duced-crash-in-new-tftp_no_fail-code.patch | 36 ++++++ .../dnsmasq/0077-Note-CVE-2015-3294.patch | 26 ++++ ...-reporting-DNSSEC-validation-failure.patch | 59 +++++++++ 80 files changed, 534 insertions(+), 71 deletions(-) create mode 120000 config/rootfiles/core/90/filelists/dnsmasq create mode 100644 src/patches/dnsmasq/0072-Fix-crash-caused-by-looking-up-servers.bind-when-man.patch create mode 100644 src/patches/dnsmasq/0073-Fix-crash-on-receipt-of-certain-malformed-DNS-reques.patch create mode 100644 src/patches/dnsmasq/0074-Fix-crash-in-auth-code-with-odd-configuration.patch create mode 100644 src/patches/dnsmasq/0075-Auth-correct-replies-to-NS-and-SOA-in-.arpa-zones.patch create mode 100644 src/patches/dnsmasq/0076-Fix-srk-induced-crash-in-new-tftp_no_fail-code.patch create mode 100644 src/patches/dnsmasq/0077-Note-CVE-2015-3294.patch create mode 100644 src/patches/dnsmasq/0078-Log-domain-when-reporting-DNSSEC-validation-failure.patch diff --git a/config/rootfiles/core/90/filelists/dnsmasq b/config/rootfiles/core/90/filelists/dnsmasq new file mode 120000 index 000000000..d469c7463 --- /dev/null +++ b/config/rootfiles/core/90/filelists/dnsmasq @@ -0,0 +1 @@ +../../../common/dnsmasq \ No newline at end of file diff --git a/lfs/dnsmasq b/lfs/dnsmasq index 15a86a57d..665f424bb 100644 --- a/lfs/dnsmasq +++ b/lfs/dnsmasq @@ -144,6 +144,13 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0069-Whitespace-fixes.patch cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0070-Return-INSECURE-rather-than-BOGUS-when-DS-proved-not.patch cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0071-Fix-compiler-warning-when-not-including-DNSSEC.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0072-Fix-crash-caused-by-looking-up-servers.bind-when-man.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0073-Fix-crash-on-receipt-of-certain-malformed-DNS-reques.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0074-Fix-crash-in-auth-code-with-odd-configuration.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0075-Auth-correct-replies-to-NS-and-SOA-in-.arpa-zones.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0076-Fix-srk-induced-crash-in-new-tftp_no_fail-code.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0077-Note-CVE-2015-3294.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/0078-Log-domain-when-reporting-DNSSEC-validation-failure.patch cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq-Add-support-to-read-ISC-DHCP-lease-file.patch cd $(DIR_APP) && sed -i src/config.h \ -e 's|/\* #define HAVE_IDN \*/|#define HAVE_IDN|g' \ diff --git a/src/patches/dnsmasq/0001-Add-newline-at-the-end-of-example-config-file.patch b/src/patches/dnsmasq/0001-Add-newline-at-the-end-of-example-config-file.patch index 09e385878..a9d5a9295 100644 --- a/src/patches/dnsmasq/0001-Add-newline-at-the-end-of-example-config-file.patch +++ b/src/patches/dnsmasq/0001-Add-newline-at-the-end-of-example-config-file.patch @@ -1,7 +1,7 @@ From f2658275b25ebfe691cdcb9fede85a3088cca168 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Thu, 25 Sep 2014 21:51:25 +0100 -Subject: [PATCH 01/71] Add newline at the end of example config file. +Subject: [PATCH 01/78] Add newline at the end of example config file. --- dnsmasq.conf.example | 2 +- diff --git a/src/patches/dnsmasq/0002-crash-at-startup-when-an-empty-suffix-is-supplied-to.patch b/src/patches/dnsmasq/0002-crash-at-startup-when-an-empty-suffix-is-supplied-to.patch index bcaac85db..a4041ea12 100644 --- a/src/patches/dnsmasq/0002-crash-at-startup-when-an-empty-suffix-is-supplied-to.patch +++ b/src/patches/dnsmasq/0002-crash-at-startup-when-an-empty-suffix-is-supplied-to.patch @@ -1,7 +1,7 @@ From 00cd9d551998307225312fd21f761cfa8868bd2c Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Thu, 2 Oct 2014 21:44:21 +0100 -Subject: [PATCH 02/71] crash at startup when an empty suffix is supplied to +Subject: [PATCH 02/78] crash at startup when an empty suffix is supplied to --conf-dir --- diff --git a/src/patches/dnsmasq/0003-Debian-build-fixes-for-kFreeBSD.patch b/src/patches/dnsmasq/0003-Debian-build-fixes-for-kFreeBSD.patch index a7ef61187..ca623408f 100644 --- a/src/patches/dnsmasq/0003-Debian-build-fixes-for-kFreeBSD.patch +++ b/src/patches/dnsmasq/0003-Debian-build-fixes-for-kFreeBSD.patch @@ -1,7 +1,7 @@ From 6ac3bc0452a74e16e3d620a0757b0f8caab182ec Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Fri, 3 Oct 2014 08:48:11 +0100 -Subject: [PATCH 03/71] Debian build fixes for kFreeBSD +Subject: [PATCH 03/78] Debian build fixes for kFreeBSD --- src/tables.c | 6 +++++- diff --git a/src/patches/dnsmasq/0004-Set-conntrack-mark-before-connect-call.patch b/src/patches/dnsmasq/0004-Set-conntrack-mark-before-connect-call.patch index e64e31484..2504e62e9 100644 --- a/src/patches/dnsmasq/0004-Set-conntrack-mark-before-connect-call.patch +++ b/src/patches/dnsmasq/0004-Set-conntrack-mark-before-connect-call.patch @@ -1,7 +1,7 @@ From e9828b6f66b22ce8873f8d30a773137d1aef1b92 Mon Sep 17 00:00:00 2001 From: Karl Vogel Date: Fri, 3 Oct 2014 21:45:15 +0100 -Subject: [PATCH 04/71] Set conntrack mark before connect() call. +Subject: [PATCH 04/78] Set conntrack mark before connect() call. SO_MARK has to be done before issuing the connect() call on the TCP socket. diff --git a/src/patches/dnsmasq/0005-Fix-typo-in-new-Dbus-code.patch b/src/patches/dnsmasq/0005-Fix-typo-in-new-Dbus-code.patch index 48ed92eee..bec87bcf1 100644 --- a/src/patches/dnsmasq/0005-Fix-typo-in-new-Dbus-code.patch +++ b/src/patches/dnsmasq/0005-Fix-typo-in-new-Dbus-code.patch @@ -1,7 +1,7 @@ From 17b475912f6a4e72797a543dad59d4d5dde6bb1b Mon Sep 17 00:00:00 2001 From: Daniel Collins Date: Fri, 3 Oct 2014 21:58:43 +0100 -Subject: [PATCH 05/71] Fix typo in new Dbus code. +Subject: [PATCH 05/78] Fix typo in new Dbus code. Simon's fault. --- diff --git a/src/patches/dnsmasq/0006-Fit-example-conf-file-typo.patch b/src/patches/dnsmasq/0006-Fit-example-conf-file-typo.patch index c8c516961..6b5345f72 100644 --- a/src/patches/dnsmasq/0006-Fit-example-conf-file-typo.patch +++ b/src/patches/dnsmasq/0006-Fit-example-conf-file-typo.patch @@ -1,7 +1,7 @@ From 3d9d2dd0018603a2ae4b9cd65ac6ff959f4fd8c7 Mon Sep 17 00:00:00 2001 From: Tomas Hozza Date: Mon, 6 Oct 2014 10:46:48 +0100 -Subject: [PATCH 06/71] Fit example conf file typo. +Subject: [PATCH 06/78] Fit example conf file typo. --- dnsmasq.conf.example | 2 +- diff --git a/src/patches/dnsmasq/0007-Improve-RFC-compliance-when-unable-to-supply-address.patch b/src/patches/dnsmasq/0007-Improve-RFC-compliance-when-unable-to-supply-address.patch index c21ece4f7..ffad3b256 100644 --- a/src/patches/dnsmasq/0007-Improve-RFC-compliance-when-unable-to-supply-address.patch +++ b/src/patches/dnsmasq/0007-Improve-RFC-compliance-when-unable-to-supply-address.patch @@ -1,7 +1,7 @@ From b9ff5c8f435173cfa616e3c398bdc089ef690a07 Mon Sep 17 00:00:00 2001 From: Vladislav Grishenko Date: Mon, 6 Oct 2014 14:34:24 +0100 -Subject: [PATCH 07/71] Improve RFC-compliance when unable to supply addresses +Subject: [PATCH 07/78] Improve RFC-compliance when unable to supply addresses in DHCPv6 While testing https://github.com/sbyx/odhcp6c client I have noticed it diff --git a/src/patches/dnsmasq/0008-Fix-conntrack-with-bind-interfaces.patch b/src/patches/dnsmasq/0008-Fix-conntrack-with-bind-interfaces.patch index 227cab79c..671a70e2c 100644 --- a/src/patches/dnsmasq/0008-Fix-conntrack-with-bind-interfaces.patch +++ b/src/patches/dnsmasq/0008-Fix-conntrack-with-bind-interfaces.patch @@ -1,7 +1,7 @@ From 98906275a02ae260fe3f82133bd79054f8315f06 Mon Sep 17 00:00:00 2001 From: Hans Dedecker Date: Tue, 9 Dec 2014 22:22:53 +0000 -Subject: [PATCH 08/71] Fix conntrack with --bind-interfaces +Subject: [PATCH 08/78] Fix conntrack with --bind-interfaces Make sure dst_addr is assigned the correct address in receive_query when OPTNOWILD is enabled so the assigned mark can be correctly retrieved and set in forward_query when diff --git a/src/patches/dnsmasq/0009-Use-inotify-instead-of-polling-on-Linux.patch b/src/patches/dnsmasq/0009-Use-inotify-instead-of-polling-on-Linux.patch index 7773e0bf4..e9c51f81c 100644 --- a/src/patches/dnsmasq/0009-Use-inotify-instead-of-polling-on-Linux.patch +++ b/src/patches/dnsmasq/0009-Use-inotify-instead-of-polling-on-Linux.patch @@ -1,7 +1,7 @@ From 193de4abf59e49c6b70d54cfe9720fcb95ca2f71 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Wed, 10 Dec 2014 17:32:16 +0000 -Subject: [PATCH 09/71] Use inotify instead of polling on Linux. +Subject: [PATCH 09/78] Use inotify instead of polling on Linux. This should solve problems people are seeing when a file changes twice within a second and thus is missed for polling. diff --git a/src/patches/dnsmasq/0010-Teach-the-new-inotify-code-about-symlinks.patch b/src/patches/dnsmasq/0010-Teach-the-new-inotify-code-about-symlinks.patch index f5e0ccdd7..2f8574e5d 100644 --- a/src/patches/dnsmasq/0010-Teach-the-new-inotify-code-about-symlinks.patch +++ b/src/patches/dnsmasq/0010-Teach-the-new-inotify-code-about-symlinks.patch @@ -1,7 +1,7 @@ From 857973e6f7e0a3d03535a9df7f9373fd7a0b65cc Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 15 Dec 2014 15:58:13 +0000 -Subject: [PATCH 10/71] Teach the new inotify code about symlinks. +Subject: [PATCH 10/78] Teach the new inotify code about symlinks. --- src/inotify.c | 43 +++++++++++++++++++++++++++---------------- diff --git a/src/patches/dnsmasq/0011-Remove-floor-on-EDNS0-packet-size-with-DNSSEC.patch b/src/patches/dnsmasq/0011-Remove-floor-on-EDNS0-packet-size-with-DNSSEC.patch index 800cfb6bf..66b63312d 100644 --- a/src/patches/dnsmasq/0011-Remove-floor-on-EDNS0-packet-size-with-DNSSEC.patch +++ b/src/patches/dnsmasq/0011-Remove-floor-on-EDNS0-packet-size-with-DNSSEC.patch @@ -1,7 +1,7 @@ From 800c5cc1e7438818fd80f08c2d472df249a6942d Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 15 Dec 2014 17:50:15 +0000 -Subject: [PATCH 11/71] Remove floor on EDNS0 packet size with DNSSEC. +Subject: [PATCH 11/78] Remove floor on EDNS0 packet size with DNSSEC. --- CHANGELOG | 6 +++++- diff --git a/src/patches/dnsmasq/0012-CHANGELOG-re.-inotify.patch b/src/patches/dnsmasq/0012-CHANGELOG-re.-inotify.patch index 1a0925a6e..3df5076c1 100644 --- a/src/patches/dnsmasq/0012-CHANGELOG-re.-inotify.patch +++ b/src/patches/dnsmasq/0012-CHANGELOG-re.-inotify.patch @@ -1,7 +1,7 @@ From ad946d555dce44eb690c7699933b6ff40ab85bb6 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 15 Dec 2014 17:52:22 +0000 -Subject: [PATCH 12/71] CHANGELOG re. inotify. +Subject: [PATCH 12/78] CHANGELOG re. inotify. --- CHANGELOG | 4 ++++ diff --git a/src/patches/dnsmasq/0013-Fix-breakage-of-domain-domain-subnet-local.patch b/src/patches/dnsmasq/0013-Fix-breakage-of-domain-domain-subnet-local.patch index d467a9e0b..c80a3a2d7 100644 --- a/src/patches/dnsmasq/0013-Fix-breakage-of-domain-domain-subnet-local.patch +++ b/src/patches/dnsmasq/0013-Fix-breakage-of-domain-domain-subnet-local.patch @@ -1,7 +1,7 @@ From 3ad3f3bbd4ee716a7d2fb1e115cf89bd1b1a5de9 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 16 Dec 2014 18:25:17 +0000 -Subject: [PATCH 13/71] Fix breakage of --domain=,,local +Subject: [PATCH 13/78] Fix breakage of --domain=,,local --- CHANGELOG | 4 ++++ diff --git a/src/patches/dnsmasq/0014-Remove-redundant-IN6_IS_ADDR_ULA-a-macro-defn.patch b/src/patches/dnsmasq/0014-Remove-redundant-IN6_IS_ADDR_ULA-a-macro-defn.patch index b77acce78..e3221682b 100644 --- a/src/patches/dnsmasq/0014-Remove-redundant-IN6_IS_ADDR_ULA-a-macro-defn.patch +++ b/src/patches/dnsmasq/0014-Remove-redundant-IN6_IS_ADDR_ULA-a-macro-defn.patch @@ -1,7 +1,7 @@ From bd9520b7ade7098ee423acc38965376aa57feb07 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 16 Dec 2014 20:41:29 +0000 -Subject: [PATCH 14/71] Remove redundant IN6_IS_ADDR_ULA(a) macro defn. +Subject: [PATCH 14/78] Remove redundant IN6_IS_ADDR_ULA(a) macro defn. --- src/network.c | 4 ---- diff --git a/src/patches/dnsmasq/0015-Eliminate-IPv6-privacy-addresses-from-interface-name.patch b/src/patches/dnsmasq/0015-Eliminate-IPv6-privacy-addresses-from-interface-name.patch index 06804232b..afa5f0fe9 100644 --- a/src/patches/dnsmasq/0015-Eliminate-IPv6-privacy-addresses-from-interface-name.patch +++ b/src/patches/dnsmasq/0015-Eliminate-IPv6-privacy-addresses-from-interface-name.patch @@ -1,7 +1,7 @@ From 476693678e778886b64d0b56e27eb7695cbcca99 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Wed, 17 Dec 2014 12:41:56 +0000 -Subject: [PATCH 15/71] Eliminate IPv6 privacy addresses from --interface-name +Subject: [PATCH 15/78] Eliminate IPv6 privacy addresses from --interface-name answers. --- diff --git a/src/patches/dnsmasq/0016-Tweak-field-width-in-cache-dump-to-avoid-truncating-.patch b/src/patches/dnsmasq/0016-Tweak-field-width-in-cache-dump-to-avoid-truncating-.patch index 6b3537877..e669a50df 100644 --- a/src/patches/dnsmasq/0016-Tweak-field-width-in-cache-dump-to-avoid-truncating-.patch +++ b/src/patches/dnsmasq/0016-Tweak-field-width-in-cache-dump-to-avoid-truncating-.patch @@ -1,7 +1,7 @@ From 3267804598047bd1781cab91508d1bc516e5ddbb Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Wed, 17 Dec 2014 20:38:20 +0000 -Subject: [PATCH 16/71] Tweak field width in cache dump to avoid truncating +Subject: [PATCH 16/78] Tweak field width in cache dump to avoid truncating IPv6 addresses. --- diff --git a/src/patches/dnsmasq/0017-Fix-crash-in-DNSSEC-code-when-attempting-to-verify-l.patch b/src/patches/dnsmasq/0017-Fix-crash-in-DNSSEC-code-when-attempting-to-verify-l.patch index 01095a21d..2fe233dd7 100644 --- a/src/patches/dnsmasq/0017-Fix-crash-in-DNSSEC-code-when-attempting-to-verify-l.patch +++ b/src/patches/dnsmasq/0017-Fix-crash-in-DNSSEC-code-when-attempting-to-verify-l.patch @@ -1,7 +1,7 @@ From 094b5c3d904bae9aeb3206d9f3b8348926b84975 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 21 Dec 2014 16:11:52 +0000 -Subject: [PATCH 17/71] Fix crash in DNSSEC code when attempting to verify +Subject: [PATCH 17/78] Fix crash in DNSSEC code when attempting to verify large RRs. --- diff --git a/src/patches/dnsmasq/0018-Make-caching-work-for-CNAMEs-pointing-to-A-AAAA-reco.patch b/src/patches/dnsmasq/0018-Make-caching-work-for-CNAMEs-pointing-to-A-AAAA-reco.patch index 49adf8572..2ec47e67a 100644 --- a/src/patches/dnsmasq/0018-Make-caching-work-for-CNAMEs-pointing-to-A-AAAA-reco.patch +++ b/src/patches/dnsmasq/0018-Make-caching-work-for-CNAMEs-pointing-to-A-AAAA-reco.patch @@ -1,7 +1,7 @@ From cbc652423403e3cef00e00240f6beef713142246 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 21 Dec 2014 21:21:53 +0000 -Subject: [PATCH 18/71] Make caching work for CNAMEs pointing to A/AAAA records +Subject: [PATCH 18/78] Make caching work for CNAMEs pointing to A/AAAA records shadowed in /etc/hosts If the answer to an upstream query is a CNAME which points to an diff --git a/src/patches/dnsmasq/0019-Fix-problems-validating-NSEC3-and-wildcards.patch b/src/patches/dnsmasq/0019-Fix-problems-validating-NSEC3-and-wildcards.patch index 33e518033..7e6f821cf 100644 --- a/src/patches/dnsmasq/0019-Fix-problems-validating-NSEC3-and-wildcards.patch +++ b/src/patches/dnsmasq/0019-Fix-problems-validating-NSEC3-and-wildcards.patch @@ -1,7 +1,7 @@ From fbc5205702c7f6f431d9f1043c553d7fb62ddfdb Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 23 Dec 2014 15:46:08 +0000 -Subject: [PATCH 19/71] Fix problems validating NSEC3 and wildcards. +Subject: [PATCH 19/78] Fix problems validating NSEC3 and wildcards. --- src/dnssec.c | 253 ++++++++++++++++++++++++++++++----------------------------- diff --git a/src/patches/dnsmasq/0020-Initialise-return-value.patch b/src/patches/dnsmasq/0020-Initialise-return-value.patch index c0493df84..362c59637 100644 --- a/src/patches/dnsmasq/0020-Initialise-return-value.patch +++ b/src/patches/dnsmasq/0020-Initialise-return-value.patch @@ -1,7 +1,7 @@ From 83d2ed09fc0216b567d7fb2197e4ff3eae150b0d Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 23 Dec 2014 18:42:38 +0000 -Subject: [PATCH 20/71] Initialise return value. +Subject: [PATCH 20/78] Initialise return value. --- src/dnssec.c | 7 +++++-- diff --git a/src/patches/dnsmasq/0021-Add-ignore-address-option.patch b/src/patches/dnsmasq/0021-Add-ignore-address-option.patch index e5422a113..b8ef47d60 100644 --- a/src/patches/dnsmasq/0021-Add-ignore-address-option.patch +++ b/src/patches/dnsmasq/0021-Add-ignore-address-option.patch @@ -1,7 +1,7 @@ From 32fc6dbe03569d70dd394420ceb73532cf303c33 Mon Sep 17 00:00:00 2001 From: Glen Huang Date: Sat, 27 Dec 2014 15:28:12 +0000 -Subject: [PATCH 21/71] Add --ignore-address option. +Subject: [PATCH 21/78] Add --ignore-address option. --- CHANGELOG | 8 ++++++++ diff --git a/src/patches/dnsmasq/0022-Bad-packet-protection.patch b/src/patches/dnsmasq/0022-Bad-packet-protection.patch index 1fbe54c29..749195fe7 100644 --- a/src/patches/dnsmasq/0022-Bad-packet-protection.patch +++ b/src/patches/dnsmasq/0022-Bad-packet-protection.patch @@ -1,7 +1,7 @@ From 0b1008d367d44e77352134a4c5178f896f0db3e7 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 27 Dec 2014 15:33:32 +0000 -Subject: [PATCH 22/71] Bad packet protection. +Subject: [PATCH 22/78] Bad packet protection. --- src/dnssec.c | 2 +- diff --git a/src/patches/dnsmasq/0023-Fix-build-failure-in-new-inotify-code-on-BSD.patch b/src/patches/dnsmasq/0023-Fix-build-failure-in-new-inotify-code-on-BSD.patch index 6e57877fd..28fe61af9 100644 --- a/src/patches/dnsmasq/0023-Fix-build-failure-in-new-inotify-code-on-BSD.patch +++ b/src/patches/dnsmasq/0023-Fix-build-failure-in-new-inotify-code-on-BSD.patch @@ -1,7 +1,7 @@ From d310ab7ecbffce79d3d90debba621e0222f9bced Mon Sep 17 00:00:00 2001 From: Matthias Andree Date: Sat, 27 Dec 2014 15:36:38 +0000 -Subject: [PATCH 23/71] Fix build failure in new inotify code on BSD. +Subject: [PATCH 23/78] Fix build failure in new inotify code on BSD. --- src/inotify.c | 4 ++-- diff --git a/src/patches/dnsmasq/0024-Implement-makefile-dependencies-on-COPTS-variable.patch b/src/patches/dnsmasq/0024-Implement-makefile-dependencies-on-COPTS-variable.patch index 867a95d5a..31535dcbd 100644 --- a/src/patches/dnsmasq/0024-Implement-makefile-dependencies-on-COPTS-variable.patch +++ b/src/patches/dnsmasq/0024-Implement-makefile-dependencies-on-COPTS-variable.patch @@ -1,7 +1,7 @@ From 81c538efcebfce2ce4a1d3a420b6c885b8f08df9 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Sat, 3 Jan 2015 16:36:14 +0000 -Subject: [PATCH 24/71] Implement makefile dependencies on COPTS variable. +Subject: [PATCH 24/78] Implement makefile dependencies on COPTS variable. --- .gitignore | 2 +- diff --git a/src/patches/dnsmasq/0025-Fix-race-condition-issue-in-makefile.patch b/src/patches/dnsmasq/0025-Fix-race-condition-issue-in-makefile.patch index 4a379c1a7..a99656da2 100644 --- a/src/patches/dnsmasq/0025-Fix-race-condition-issue-in-makefile.patch +++ b/src/patches/dnsmasq/0025-Fix-race-condition-issue-in-makefile.patch @@ -1,7 +1,7 @@ From d8dbd903d024f84a149dac2f8a674a68dfed47a3 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Mon, 5 Jan 2015 17:03:35 +0000 -Subject: [PATCH 25/71] Fix race condition issue in makefile. +Subject: [PATCH 25/78] Fix race condition issue in makefile. --- Makefile | 4 +++- diff --git a/src/patches/dnsmasq/0026-DNSSEC-do-top-down-search-for-limit-of-secure-delega.patch b/src/patches/dnsmasq/0026-DNSSEC-do-top-down-search-for-limit-of-secure-delega.patch index 837c124f5..e0c8374ab 100644 --- a/src/patches/dnsmasq/0026-DNSSEC-do-top-down-search-for-limit-of-secure-delega.patch +++ b/src/patches/dnsmasq/0026-DNSSEC-do-top-down-search-for-limit-of-secure-delega.patch @@ -1,7 +1,7 @@ From 97e618a0e3f29465acc689d87288596b006f197e Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Wed, 7 Jan 2015 21:55:43 +0000 -Subject: [PATCH 26/71] DNSSEC: do top-down search for limit of secure +Subject: [PATCH 26/78] DNSSEC: do top-down search for limit of secure delegation. --- diff --git a/src/patches/dnsmasq/0027-Add-log-queries-extra-option-for-more-complete-loggi.patch b/src/patches/dnsmasq/0027-Add-log-queries-extra-option-for-more-complete-loggi.patch index 23b94711a..8812bbabf 100644 --- a/src/patches/dnsmasq/0027-Add-log-queries-extra-option-for-more-complete-loggi.patch +++ b/src/patches/dnsmasq/0027-Add-log-queries-extra-option-for-more-complete-loggi.patch @@ -1,7 +1,7 @@ From 25cf5e373eb41c088d4ee5e625209c4cf6a5659e Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Fri, 9 Jan 2015 15:53:03 +0000 -Subject: [PATCH 27/71] Add --log-queries=extra option for more complete +Subject: [PATCH 27/78] Add --log-queries=extra option for more complete logging. --- diff --git a/src/patches/dnsmasq/0028-Add-min-cache-ttl-option.patch b/src/patches/dnsmasq/0028-Add-min-cache-ttl-option.patch index 6f7f27cb6..2f6099536 100644 --- a/src/patches/dnsmasq/0028-Add-min-cache-ttl-option.patch +++ b/src/patches/dnsmasq/0028-Add-min-cache-ttl-option.patch @@ -1,7 +1,7 @@ From 28de38768e2c7d763b9aa5b7a4d251d5e56bab0b Mon Sep 17 00:00:00 2001 From: RinSatsuki Date: Sat, 10 Jan 2015 15:22:21 +0000 -Subject: [PATCH 28/71] Add --min-cache-ttl option. +Subject: [PATCH 28/78] Add --min-cache-ttl option. --- CHANGELOG | 7 +++++++ diff --git a/src/patches/dnsmasq/0029-Log-port-of-requestor-when-doing-extra-logging.patch b/src/patches/dnsmasq/0029-Log-port-of-requestor-when-doing-extra-logging.patch index 4834269e6..3288ce818 100644 --- a/src/patches/dnsmasq/0029-Log-port-of-requestor-when-doing-extra-logging.patch +++ b/src/patches/dnsmasq/0029-Log-port-of-requestor-when-doing-extra-logging.patch @@ -1,7 +1,7 @@ From 9f79ee4ae34886c0319f06d8f162b81ef79d62fb Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 12 Jan 2015 20:18:18 +0000 -Subject: [PATCH 29/71] Log port of requestor when doing extra logging. +Subject: [PATCH 29/78] Log port of requestor when doing extra logging. --- src/cache.c | 6 +++--- diff --git a/src/patches/dnsmasq/0030-Don-t-answer-from-cache-RRsets-from-wildcards-as-we-.patch b/src/patches/dnsmasq/0030-Don-t-answer-from-cache-RRsets-from-wildcards-as-we-.patch index fef0e1162..81b5eb288 100644 --- a/src/patches/dnsmasq/0030-Don-t-answer-from-cache-RRsets-from-wildcards-as-we-.patch +++ b/src/patches/dnsmasq/0030-Don-t-answer-from-cache-RRsets-from-wildcards-as-we-.patch @@ -1,7 +1,7 @@ From 5e321739db381a1d7b5964d76e9c81471d2564c9 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 12 Jan 2015 23:16:56 +0000 -Subject: [PATCH 30/71] Don't answer from cache RRsets from wildcards, as we +Subject: [PATCH 30/78] Don't answer from cache RRsets from wildcards, as we don't have NSECs. --- diff --git a/src/patches/dnsmasq/0031-Logs-for-DS-records-consistent.patch b/src/patches/dnsmasq/0031-Logs-for-DS-records-consistent.patch index 8ebe4696a..ead984e24 100644 --- a/src/patches/dnsmasq/0031-Logs-for-DS-records-consistent.patch +++ b/src/patches/dnsmasq/0031-Logs-for-DS-records-consistent.patch @@ -1,7 +1,7 @@ From ae4624bf46b5e37ff1a9a2ba3c927e0dede95adb Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 12 Jan 2015 23:22:08 +0000 -Subject: [PATCH 31/71] Logs for DS records consistent. +Subject: [PATCH 31/78] Logs for DS records consistent. --- src/rfc1035.c | 2 +- diff --git a/src/patches/dnsmasq/0032-Cope-with-multiple-interfaces-with-the-same-LL-addre.patch b/src/patches/dnsmasq/0032-Cope-with-multiple-interfaces-with-the-same-LL-addre.patch index 60a44b9a7..f571501f0 100644 --- a/src/patches/dnsmasq/0032-Cope-with-multiple-interfaces-with-the-same-LL-addre.patch +++ b/src/patches/dnsmasq/0032-Cope-with-multiple-interfaces-with-the-same-LL-addre.patch @@ -1,7 +1,7 @@ From 393415597c8b5b09558b789ab9ac238dbe3db65d Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 18 Jan 2015 22:11:10 +0000 -Subject: [PATCH 32/71] Cope with multiple interfaces with the same LL address. +Subject: [PATCH 32/78] Cope with multiple interfaces with the same LL address. --- CHANGELOG | 4 ++++ diff --git a/src/patches/dnsmasq/0033-Don-t-treat-SERVFAIL-as-a-recoverable-error.patch b/src/patches/dnsmasq/0033-Don-t-treat-SERVFAIL-as-a-recoverable-error.patch index f426e8f05..f381635c6 100644 --- a/src/patches/dnsmasq/0033-Don-t-treat-SERVFAIL-as-a-recoverable-error.patch +++ b/src/patches/dnsmasq/0033-Don-t-treat-SERVFAIL-as-a-recoverable-error.patch @@ -1,7 +1,7 @@ From 2ae195f5a71f7c5a75717845de1bd72fc7dd67f3 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 18 Jan 2015 22:20:48 +0000 -Subject: [PATCH 33/71] Don't treat SERVFAIL as a recoverable error..... +Subject: [PATCH 33/78] Don't treat SERVFAIL as a recoverable error..... --- src/forward.c | 2 +- diff --git a/src/patches/dnsmasq/0034-Add-dhcp-hostsdir-config-option.patch b/src/patches/dnsmasq/0034-Add-dhcp-hostsdir-config-option.patch index 53780b28c..86401c9b6 100644 --- a/src/patches/dnsmasq/0034-Add-dhcp-hostsdir-config-option.patch +++ b/src/patches/dnsmasq/0034-Add-dhcp-hostsdir-config-option.patch @@ -1,7 +1,7 @@ From 5f4dc5c6ca50655ab14f572c7e30815ed74cd51a Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 20 Jan 2015 20:51:02 +0000 -Subject: [PATCH 34/71] Add --dhcp-hostsdir config option. +Subject: [PATCH 34/78] Add --dhcp-hostsdir config option. --- CHANGELOG | 5 +++ diff --git a/src/patches/dnsmasq/0035-Update-German-translation.patch b/src/patches/dnsmasq/0035-Update-German-translation.patch index 2d18e760d..cd9ec565a 100644 --- a/src/patches/dnsmasq/0035-Update-German-translation.patch +++ b/src/patches/dnsmasq/0035-Update-German-translation.patch @@ -1,7 +1,7 @@ From fbf01f7046e75f9aa73fd4aab2a94e43386d9052 Mon Sep 17 00:00:00 2001 From: Conrad Kostecki Date: Tue, 20 Jan 2015 21:07:56 +0000 -Subject: [PATCH 35/71] Update German translation. +Subject: [PATCH 35/78] Update German translation. --- po/de.po | 101 +++++++++++++++++++++++++++++---------------------------------- diff --git a/src/patches/dnsmasq/0036-Don-t-reply-to-DHCPv6-SOLICIT-messages-when-not-conf.patch b/src/patches/dnsmasq/0036-Don-t-reply-to-DHCPv6-SOLICIT-messages-when-not-conf.patch index ffe4cf6cb..144a2543b 100644 --- a/src/patches/dnsmasq/0036-Don-t-reply-to-DHCPv6-SOLICIT-messages-when-not-conf.patch +++ b/src/patches/dnsmasq/0036-Don-t-reply-to-DHCPv6-SOLICIT-messages-when-not-conf.patch @@ -1,7 +1,7 @@ From 61b838dd574c51d96fef100285a0d225824534f9 Mon Sep 17 00:00:00 2001 From: Win King Wan Date: Wed, 21 Jan 2015 20:41:48 +0000 -Subject: [PATCH 36/71] Don't reply to DHCPv6 SOLICIT messages when not +Subject: [PATCH 36/78] Don't reply to DHCPv6 SOLICIT messages when not configured for statefull DHCPv6. --- diff --git a/src/patches/dnsmasq/0037-Allow-inotify-to-be-disabled-at-compile-time-on-Linu.patch b/src/patches/dnsmasq/0037-Allow-inotify-to-be-disabled-at-compile-time-on-Linu.patch index 3cd799971..99606cc15 100644 --- a/src/patches/dnsmasq/0037-Allow-inotify-to-be-disabled-at-compile-time-on-Linu.patch +++ b/src/patches/dnsmasq/0037-Allow-inotify-to-be-disabled-at-compile-time-on-Linu.patch @@ -1,7 +1,7 @@ From 0491805d2ff6e7727f0272c94fd97d9897d1e22c Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 26 Jan 2015 11:23:43 +0000 -Subject: [PATCH 37/71] Allow inotify to be disabled at compile time on Linux. +Subject: [PATCH 37/78] Allow inotify to be disabled at compile time on Linux. --- CHANGELOG | 4 +++- diff --git a/src/patches/dnsmasq/0038-Expand-inotify-code-to-dhcp-hostsdir-dhcp-optsdir-an.patch b/src/patches/dnsmasq/0038-Expand-inotify-code-to-dhcp-hostsdir-dhcp-optsdir-an.patch index 08eb5b553..db0d4fc85 100644 --- a/src/patches/dnsmasq/0038-Expand-inotify-code-to-dhcp-hostsdir-dhcp-optsdir-an.patch +++ b/src/patches/dnsmasq/0038-Expand-inotify-code-to-dhcp-hostsdir-dhcp-optsdir-an.patch @@ -1,7 +1,7 @@ From 70d1873dd9e70041ed4bb88c69d5b886b7cc634c Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 31 Jan 2015 19:59:29 +0000 -Subject: [PATCH 38/71] Expand inotify code to dhcp-hostsdir, dhcp-optsdir and +Subject: [PATCH 38/78] Expand inotify code to dhcp-hostsdir, dhcp-optsdir and hostsdir. --- diff --git a/src/patches/dnsmasq/0039-Update-copyrights-for-dawn-of-2015.patch b/src/patches/dnsmasq/0039-Update-copyrights-for-dawn-of-2015.patch index 7303df472..28282c272 100644 --- a/src/patches/dnsmasq/0039-Update-copyrights-for-dawn-of-2015.patch +++ b/src/patches/dnsmasq/0039-Update-copyrights-for-dawn-of-2015.patch @@ -1,7 +1,7 @@ From aff3396280e944833f0e23d834aa6acd5fe2605a Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 31 Jan 2015 20:13:40 +0000 -Subject: [PATCH 39/71] Update copyrights for dawn of 2015. +Subject: [PATCH 39/78] Update copyrights for dawn of 2015. --- Makefile | 2 +- diff --git a/src/patches/dnsmasq/0040-inotify-documentation-updates.patch b/src/patches/dnsmasq/0040-inotify-documentation-updates.patch index 9c3ac9c54..2fb831cba 100644 --- a/src/patches/dnsmasq/0040-inotify-documentation-updates.patch +++ b/src/patches/dnsmasq/0040-inotify-documentation-updates.patch @@ -1,7 +1,7 @@ From 3d04f46334d0e345f589eda1372e638b946fe637 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 31 Jan 2015 21:59:13 +0000 -Subject: [PATCH 40/71] inotify documentation updates. +Subject: [PATCH 40/78] inotify documentation updates. --- man/dnsmasq.8 | 11 +++++++++-- diff --git a/src/patches/dnsmasq/0041-Fix-broken-ECDSA-DNSSEC-signatures.patch b/src/patches/dnsmasq/0041-Fix-broken-ECDSA-DNSSEC-signatures.patch index 1fc1c73f0..68e1ca6b1 100644 --- a/src/patches/dnsmasq/0041-Fix-broken-ECDSA-DNSSEC-signatures.patch +++ b/src/patches/dnsmasq/0041-Fix-broken-ECDSA-DNSSEC-signatures.patch @@ -1,7 +1,7 @@ From 6ef15b34ca83c62a939f69356d5c3f7a6bfef3d0 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 31 Jan 2015 22:44:26 +0000 -Subject: [PATCH 41/71] Fix broken ECDSA DNSSEC signatures. +Subject: [PATCH 41/78] Fix broken ECDSA DNSSEC signatures. --- CHANGELOG | 2 ++ diff --git a/src/patches/dnsmasq/0042-BSD-make-support.patch b/src/patches/dnsmasq/0042-BSD-make-support.patch index 750f113b1..ced58684b 100644 --- a/src/patches/dnsmasq/0042-BSD-make-support.patch +++ b/src/patches/dnsmasq/0042-BSD-make-support.patch @@ -1,7 +1,7 @@ From 106266761828a0acb006346ae47bf031dee46a5d Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 1 Feb 2015 00:15:16 +0000 -Subject: [PATCH 42/71] BSD make support +Subject: [PATCH 42/78] BSD make support --- Makefile | 6 ++++-- diff --git a/src/patches/dnsmasq/0043-Fix-build-failure-on-openBSD.patch b/src/patches/dnsmasq/0043-Fix-build-failure-on-openBSD.patch index aa55fe28f..2aa543da1 100644 --- a/src/patches/dnsmasq/0043-Fix-build-failure-on-openBSD.patch +++ b/src/patches/dnsmasq/0043-Fix-build-failure-on-openBSD.patch @@ -1,7 +1,7 @@ From 8d8a54ec79d9f96979fabbd97b1dd2ddebc7d78f Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 1 Feb 2015 21:48:46 +0000 -Subject: [PATCH 43/71] Fix build failure on openBSD. +Subject: [PATCH 43/78] Fix build failure on openBSD. --- src/tables.c | 2 +- diff --git a/src/patches/dnsmasq/0044-Manpage-typo-fix.patch b/src/patches/dnsmasq/0044-Manpage-typo-fix.patch index bbc4d4873..ef606e838 100644 --- a/src/patches/dnsmasq/0044-Manpage-typo-fix.patch +++ b/src/patches/dnsmasq/0044-Manpage-typo-fix.patch @@ -1,7 +1,7 @@ From d36b732c4cfa91ea09af64b5dc0f3a85a075e5bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thi=C3=A9baud=20Weksteen?= Date: Mon, 2 Feb 2015 21:37:27 +0000 -Subject: [PATCH 44/71] Manpage typo fix. +Subject: [PATCH 44/78] Manpage typo fix. --- man/dnsmasq.8 | 2 +- diff --git a/src/patches/dnsmasq/0045-Fixup-dhcp-configs-after-reading-extra-hostfiles-wit.patch b/src/patches/dnsmasq/0045-Fixup-dhcp-configs-after-reading-extra-hostfiles-wit.patch index 2d43b9311..1f87a9eca 100644 --- a/src/patches/dnsmasq/0045-Fixup-dhcp-configs-after-reading-extra-hostfiles-wit.patch +++ b/src/patches/dnsmasq/0045-Fixup-dhcp-configs-after-reading-extra-hostfiles-wit.patch @@ -1,7 +1,7 @@ From 2941d3ac898cf84b544e47c9735c5e4111711db1 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 2 Feb 2015 22:36:42 +0000 -Subject: [PATCH 45/71] Fixup dhcp-configs after reading extra hostfiles with +Subject: [PATCH 45/78] Fixup dhcp-configs after reading extra hostfiles with inotify. --- diff --git a/src/patches/dnsmasq/0046-Extra-logging-for-inotify-code.patch b/src/patches/dnsmasq/0046-Extra-logging-for-inotify-code.patch index 8b173f275..754d0a8ad 100644 --- a/src/patches/dnsmasq/0046-Extra-logging-for-inotify-code.patch +++ b/src/patches/dnsmasq/0046-Extra-logging-for-inotify-code.patch @@ -1,7 +1,7 @@ From f9c863708c6b0aea31ff7a466647685dc739de50 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Tue, 3 Feb 2015 21:52:48 +0000 -Subject: [PATCH 46/71] Extra logging for inotify code. +Subject: [PATCH 46/78] Extra logging for inotify code. --- src/cache.c | 9 ++++----- diff --git a/src/patches/dnsmasq/0047-man-page-typo.patch b/src/patches/dnsmasq/0047-man-page-typo.patch index 9710dfb09..9fdd87eeb 100644 --- a/src/patches/dnsmasq/0047-man-page-typo.patch +++ b/src/patches/dnsmasq/0047-man-page-typo.patch @@ -1,7 +1,7 @@ From efb8b5566aafc1f3ce18514a2df93af5a2e4998c Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 7 Feb 2015 22:36:34 +0000 -Subject: [PATCH 47/71] man page typo. +Subject: [PATCH 47/78] man page typo. --- man/dnsmasq.8 | 1 + diff --git a/src/patches/dnsmasq/0048-Fix-get-version-script-which-returned-wrong-tag-in-s.patch b/src/patches/dnsmasq/0048-Fix-get-version-script-which-returned-wrong-tag-in-s.patch index fb7753c67..fd0da9b91 100644 --- a/src/patches/dnsmasq/0048-Fix-get-version-script-which-returned-wrong-tag-in-s.patch +++ b/src/patches/dnsmasq/0048-Fix-get-version-script-which-returned-wrong-tag-in-s.patch @@ -1,7 +1,7 @@ From f4f400776b3c1aa303d1a0fcd500f0ab5bc970f2 Mon Sep 17 00:00:00 2001 From: Shantanu Gadgil Date: Wed, 11 Feb 2015 20:16:59 +0000 -Subject: [PATCH 48/71] Fix get-version script which returned wrong tag in some +Subject: [PATCH 48/78] Fix get-version script which returned wrong tag in some situations. --- diff --git a/src/patches/dnsmasq/0049-Typos.patch b/src/patches/dnsmasq/0049-Typos.patch index c843bf25e..ab57c77e2 100644 --- a/src/patches/dnsmasq/0049-Typos.patch +++ b/src/patches/dnsmasq/0049-Typos.patch @@ -1,7 +1,7 @@ From 8ff70de618eb7de9147dbfbd4deca4a2dd62f0cb Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 14 Feb 2015 20:02:37 +0000 -Subject: [PATCH 49/71] Typos. +Subject: [PATCH 49/78] Typos. --- src/inotify.c | 3 ++- diff --git a/src/patches/dnsmasq/0050-Make-dynamic-hosts-files-work-when-no-hosts-set.patch b/src/patches/dnsmasq/0050-Make-dynamic-hosts-files-work-when-no-hosts-set.patch index 7b9a1b3d2..df3bf18ce 100644 --- a/src/patches/dnsmasq/0050-Make-dynamic-hosts-files-work-when-no-hosts-set.patch +++ b/src/patches/dnsmasq/0050-Make-dynamic-hosts-files-work-when-no-hosts-set.patch @@ -1,7 +1,7 @@ From caeea190f12efd20139f694aac4942d1ac00019f Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 14 Feb 2015 20:08:56 +0000 -Subject: [PATCH 50/71] Make dynamic hosts files work when --no-hosts set. +Subject: [PATCH 50/78] Make dynamic hosts files work when --no-hosts set. --- src/cache.c | 21 +++++++++++---------- diff --git a/src/patches/dnsmasq/0051-Fix-trivial-memory-leaks-to-quieten-valgrind.patch b/src/patches/dnsmasq/0051-Fix-trivial-memory-leaks-to-quieten-valgrind.patch index a65ed2161..ad7ecd7ae 100644 --- a/src/patches/dnsmasq/0051-Fix-trivial-memory-leaks-to-quieten-valgrind.patch +++ b/src/patches/dnsmasq/0051-Fix-trivial-memory-leaks-to-quieten-valgrind.patch @@ -1,7 +1,7 @@ From 28b879ac47b872af6e8c5e86d76806c69338434d Mon Sep 17 00:00:00 2001 From: Chen Wei Date: Tue, 17 Feb 2015 22:07:35 +0000 -Subject: [PATCH 51/71] Fix trivial memory leaks to quieten valgrind. +Subject: [PATCH 51/78] Fix trivial memory leaks to quieten valgrind. --- src/dnsmasq.c | 2 ++ diff --git a/src/patches/dnsmasq/0052-Fix-uninitialized-value-used-in-get_client_mac.patch b/src/patches/dnsmasq/0052-Fix-uninitialized-value-used-in-get_client_mac.patch index 69aeb9277..9556f3b8f 100644 --- a/src/patches/dnsmasq/0052-Fix-uninitialized-value-used-in-get_client_mac.patch +++ b/src/patches/dnsmasq/0052-Fix-uninitialized-value-used-in-get_client_mac.patch @@ -1,7 +1,7 @@ From 0705a7e2d57654b27c7e14f35ca77241c1821f4d Mon Sep 17 00:00:00 2001 From: Tomas Hozza Date: Mon, 23 Feb 2015 21:26:26 +0000 -Subject: [PATCH 52/71] Fix uninitialized value used in get_client_mac() +Subject: [PATCH 52/78] Fix uninitialized value used in get_client_mac() --- src/dhcp6.c | 4 +++- diff --git a/src/patches/dnsmasq/0053-Log-parsing-utils-in-contrib-reverse-dns.patch b/src/patches/dnsmasq/0053-Log-parsing-utils-in-contrib-reverse-dns.patch index b37498edc..03d20f616 100644 --- a/src/patches/dnsmasq/0053-Log-parsing-utils-in-contrib-reverse-dns.patch +++ b/src/patches/dnsmasq/0053-Log-parsing-utils-in-contrib-reverse-dns.patch @@ -1,7 +1,7 @@ From 47b9ac59c715827252ae6e6732903c3dabb697fb Mon Sep 17 00:00:00 2001 From: Joachim Zobel Date: Mon, 23 Feb 2015 21:38:11 +0000 -Subject: [PATCH 53/71] Log parsing utils in contrib/reverse-dns +Subject: [PATCH 53/78] Log parsing utils in contrib/reverse-dns --- contrib/reverse-dns/README | 18 ++++++++++++++++++ diff --git a/src/patches/dnsmasq/0054-Add-dnssec-timestamp-option-and-facility.patch b/src/patches/dnsmasq/0054-Add-dnssec-timestamp-option-and-facility.patch index 507344055..2d47566a0 100644 --- a/src/patches/dnsmasq/0054-Add-dnssec-timestamp-option-and-facility.patch +++ b/src/patches/dnsmasq/0054-Add-dnssec-timestamp-option-and-facility.patch @@ -1,7 +1,7 @@ From f6e62e2af96f5fa0d1e3d93167a93a8f09bf6e61 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 1 Mar 2015 18:17:54 +0000 -Subject: [PATCH 54/71] Add --dnssec-timestamp option and facility. +Subject: [PATCH 54/78] Add --dnssec-timestamp option and facility. --- CHANGELOG | 6 +++++ diff --git a/src/patches/dnsmasq/0055-Fix-last-commit-to-not-crash-if-uid-changing-not-con.patch b/src/patches/dnsmasq/0055-Fix-last-commit-to-not-crash-if-uid-changing-not-con.patch index 768e14a9c..ba48df381 100644 --- a/src/patches/dnsmasq/0055-Fix-last-commit-to-not-crash-if-uid-changing-not-con.patch +++ b/src/patches/dnsmasq/0055-Fix-last-commit-to-not-crash-if-uid-changing-not-con.patch @@ -1,7 +1,7 @@ From 9003b50b13da624ca45f3e0cf99abb623b8d026b Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 2 Mar 2015 22:47:23 +0000 -Subject: [PATCH 55/71] Fix last commit to not crash if uid changing not +Subject: [PATCH 55/78] Fix last commit to not crash if uid changing not configured. --- diff --git a/src/patches/dnsmasq/0056-New-version-of-contrib-reverse-dns.patch b/src/patches/dnsmasq/0056-New-version-of-contrib-reverse-dns.patch index d39a058ed..dc52d90e3 100644 --- a/src/patches/dnsmasq/0056-New-version-of-contrib-reverse-dns.patch +++ b/src/patches/dnsmasq/0056-New-version-of-contrib-reverse-dns.patch @@ -1,7 +1,7 @@ From 4c960fa90a975d20f75a1ecabd217247f1922c8f Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Wed, 4 Mar 2015 20:32:26 +0000 -Subject: [PATCH 56/71] New version of contrib/reverse-dns +Subject: [PATCH 56/78] New version of contrib/reverse-dns --- contrib/reverse-dns/README | 22 +++--- diff --git a/src/patches/dnsmasq/0057-Tweak-DNSSEC-timestamp-code-to-create-file-later-rem.patch b/src/patches/dnsmasq/0057-Tweak-DNSSEC-timestamp-code-to-create-file-later-rem.patch index 462d57250..d17d23fe1 100644 --- a/src/patches/dnsmasq/0057-Tweak-DNSSEC-timestamp-code-to-create-file-later-rem.patch +++ b/src/patches/dnsmasq/0057-Tweak-DNSSEC-timestamp-code-to-create-file-later-rem.patch @@ -1,7 +1,7 @@ From 360f2513ab12a9bf1e262d388dd2ea8a566590a3 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 7 Mar 2015 18:28:06 +0000 -Subject: [PATCH 57/71] Tweak DNSSEC timestamp code to create file later, +Subject: [PATCH 57/78] Tweak DNSSEC timestamp code to create file later, removing need to chown it. --- diff --git a/src/patches/dnsmasq/0058-Fix-boilerplate-code-for-re-running-system-calls-on-.patch b/src/patches/dnsmasq/0058-Fix-boilerplate-code-for-re-running-system-calls-on-.patch index aa30241ae..4dd956828 100644 --- a/src/patches/dnsmasq/0058-Fix-boilerplate-code-for-re-running-system-calls-on-.patch +++ b/src/patches/dnsmasq/0058-Fix-boilerplate-code-for-re-running-system-calls-on-.patch @@ -1,7 +1,7 @@ From ff841ebf5a5d6864ff48571f607c32ce80dbb75a Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Wed, 11 Mar 2015 21:36:30 +0000 -Subject: [PATCH 58/71] Fix boilerplate code for re-running system calls on +Subject: [PATCH 58/78] Fix boilerplate code for re-running system calls on EINTR and EAGAIN etc. The nasty code with static variable in retry_send() which diff --git a/src/patches/dnsmasq/0059-Make-address-example.com-equivalent-to-server-exampl.patch b/src/patches/dnsmasq/0059-Make-address-example.com-equivalent-to-server-exampl.patch index 6a2a0f41f..a072474e8 100644 --- a/src/patches/dnsmasq/0059-Make-address-example.com-equivalent-to-server-exampl.patch +++ b/src/patches/dnsmasq/0059-Make-address-example.com-equivalent-to-server-exampl.patch @@ -1,7 +1,7 @@ From 979fe86bc8693f660eddea232ae39cbbb50b294c Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Thu, 19 Mar 2015 22:50:22 +0000 -Subject: [PATCH 59/71] Make --address=/example.com/ equivalent to +Subject: [PATCH 59/78] Make --address=/example.com/ equivalent to --server=/example.com/ --- diff --git a/src/patches/dnsmasq/0060-dhcp-set-outbound-interface-via-cmsg-in-unicast-repl.patch b/src/patches/dnsmasq/0060-dhcp-set-outbound-interface-via-cmsg-in-unicast-repl.patch index 1eb504be6..429f56a98 100644 --- a/src/patches/dnsmasq/0060-dhcp-set-outbound-interface-via-cmsg-in-unicast-repl.patch +++ b/src/patches/dnsmasq/0060-dhcp-set-outbound-interface-via-cmsg-in-unicast-repl.patch @@ -1,7 +1,7 @@ From 65c721200023ef0023114459a8d12f8b0a24cfd8 Mon Sep 17 00:00:00 2001 From: Lung-Pin Chang Date: Thu, 19 Mar 2015 23:22:21 +0000 -Subject: [PATCH 60/71] dhcp: set outbound interface via cmsg in unicast reply +Subject: [PATCH 60/78] dhcp: set outbound interface via cmsg in unicast reply If multiple routes to the same network exist, Linux blindly picks the first interface (route) based on destination address, which might not be diff --git a/src/patches/dnsmasq/0061-Don-t-fail-DNSSEC-when-a-signed-CNAME-dangles-into-a.patch b/src/patches/dnsmasq/0061-Don-t-fail-DNSSEC-when-a-signed-CNAME-dangles-into-a.patch index b566ebf0d..aece6fa6e 100644 --- a/src/patches/dnsmasq/0061-Don-t-fail-DNSSEC-when-a-signed-CNAME-dangles-into-a.patch +++ b/src/patches/dnsmasq/0061-Don-t-fail-DNSSEC-when-a-signed-CNAME-dangles-into-a.patch @@ -1,7 +1,7 @@ From 8805283088d670baecb92569252c01cf754cda51 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Thu, 26 Mar 2015 21:15:43 +0000 -Subject: [PATCH 61/71] Don't fail DNSSEC when a signed CNAME dangles into an +Subject: [PATCH 61/78] Don't fail DNSSEC when a signed CNAME dangles into an unsigned zone. --- diff --git a/src/patches/dnsmasq/0062-Return-SERVFAIL-when-validation-abandoned.patch b/src/patches/dnsmasq/0062-Return-SERVFAIL-when-validation-abandoned.patch index a660450c2..81280dcce 100644 --- a/src/patches/dnsmasq/0062-Return-SERVFAIL-when-validation-abandoned.patch +++ b/src/patches/dnsmasq/0062-Return-SERVFAIL-when-validation-abandoned.patch @@ -1,7 +1,7 @@ From 150162bc37170a6edae9d488435e836b1e4e3a4e Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Fri, 27 Mar 2015 09:58:26 +0000 -Subject: [PATCH 62/71] Return SERVFAIL when validation abandoned. +Subject: [PATCH 62/78] Return SERVFAIL when validation abandoned. --- src/forward.c | 11 +++++++++-- diff --git a/src/patches/dnsmasq/0063-Protect-against-broken-DNSSEC-upstreams.patch b/src/patches/dnsmasq/0063-Protect-against-broken-DNSSEC-upstreams.patch index 93161d06f..bd79a1a1e 100644 --- a/src/patches/dnsmasq/0063-Protect-against-broken-DNSSEC-upstreams.patch +++ b/src/patches/dnsmasq/0063-Protect-against-broken-DNSSEC-upstreams.patch @@ -1,7 +1,7 @@ From 0b8a5a30a77331974ba24a04e43e720585dfbc61 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Fri, 27 Mar 2015 11:44:55 +0000 -Subject: [PATCH 63/71] Protect against broken DNSSEC upstreams. +Subject: [PATCH 63/78] Protect against broken DNSSEC upstreams. --- src/dnssec.c | 7 +++++-- diff --git a/src/patches/dnsmasq/0064-DNSSEC-fix-for-non-ascii-characters-in-labels.patch b/src/patches/dnsmasq/0064-DNSSEC-fix-for-non-ascii-characters-in-labels.patch index 389beee08..c020af51a 100644 --- a/src/patches/dnsmasq/0064-DNSSEC-fix-for-non-ascii-characters-in-labels.patch +++ b/src/patches/dnsmasq/0064-DNSSEC-fix-for-non-ascii-characters-in-labels.patch @@ -1,7 +1,7 @@ From 1e153945def3c50d1e59ceea6a768db0ac770f98 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 28 Mar 2015 21:34:07 +0000 -Subject: [PATCH 64/71] DNSSEC fix for non-ascii characters in labels. +Subject: [PATCH 64/78] DNSSEC fix for non-ascii characters in labels. --- src/dnssec.c | 34 +++++++++++++++++----------------- diff --git a/src/patches/dnsmasq/0065-Allow-control-characters-in-names-in-the-cache-handl.patch b/src/patches/dnsmasq/0065-Allow-control-characters-in-names-in-the-cache-handl.patch index 69f6081f0..a9b6f400b 100644 --- a/src/patches/dnsmasq/0065-Allow-control-characters-in-names-in-the-cache-handl.patch +++ b/src/patches/dnsmasq/0065-Allow-control-characters-in-names-in-the-cache-handl.patch @@ -1,7 +1,7 @@ From 394ff492da6af5da7e7d356be9586683bc5fc011 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 29 Mar 2015 22:17:14 +0100 -Subject: [PATCH 65/71] Allow control characters in names in the cache, handle +Subject: [PATCH 65/78] Allow control characters in names in the cache, handle when logging. --- diff --git a/src/patches/dnsmasq/0066-Fix-crash-in-last-commit.patch b/src/patches/dnsmasq/0066-Fix-crash-in-last-commit.patch index 04a865f71..8a496b0c0 100644 --- a/src/patches/dnsmasq/0066-Fix-crash-in-last-commit.patch +++ b/src/patches/dnsmasq/0066-Fix-crash-in-last-commit.patch @@ -1,7 +1,7 @@ From 794fccca7ffebfba4468bfffc6276b68bbf6afd9 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 29 Mar 2015 22:35:44 +0100 -Subject: [PATCH 66/71] Fix crash in last commit. +Subject: [PATCH 66/78] Fix crash in last commit. --- src/cache.c | 7 ++++--- diff --git a/src/patches/dnsmasq/0067-Merge-message-translations.patch b/src/patches/dnsmasq/0067-Merge-message-translations.patch index 090da5c9a..f6c522585 100644 --- a/src/patches/dnsmasq/0067-Merge-message-translations.patch +++ b/src/patches/dnsmasq/0067-Merge-message-translations.patch @@ -1,7 +1,7 @@ From fd6ad9e481ab7c812a6b1515244908818cbb0442 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 30 Mar 2015 07:52:21 +0100 -Subject: [PATCH 67/71] Merge message translations. +Subject: [PATCH 67/78] Merge message translations. --- po/de.po | 803 +++++++++++++++++++++++++++++++++-------------------------- diff --git a/src/patches/dnsmasq/0068-add-tftp-no-fail-to-ignore-missing-tftp-root.patch b/src/patches/dnsmasq/0068-add-tftp-no-fail-to-ignore-missing-tftp-root.patch index 3439cc19f..cf1f2af82 100644 --- a/src/patches/dnsmasq/0068-add-tftp-no-fail-to-ignore-missing-tftp-root.patch +++ b/src/patches/dnsmasq/0068-add-tftp-no-fail-to-ignore-missing-tftp-root.patch @@ -1,7 +1,7 @@ From 30d0879ed55cb67b1b735beab3d93f3bb3ef1dd2 Mon Sep 17 00:00:00 2001 From: Stefan Tomanek Date: Tue, 31 Mar 2015 22:32:11 +0100 -Subject: [PATCH 68/71] add --tftp-no-fail to ignore missing tftp root +Subject: [PATCH 68/78] add --tftp-no-fail to ignore missing tftp root --- CHANGELOG | 3 +++ diff --git a/src/patches/dnsmasq/0069-Whitespace-fixes.patch b/src/patches/dnsmasq/0069-Whitespace-fixes.patch index 6784ee398..a18c6bec7 100644 --- a/src/patches/dnsmasq/0069-Whitespace-fixes.patch +++ b/src/patches/dnsmasq/0069-Whitespace-fixes.patch @@ -1,7 +1,7 @@ From 7aa970e2c7043201663d86a4b5d8cd5c592cef39 Mon Sep 17 00:00:00 2001 From: Stefan Tomanek Date: Wed, 1 Apr 2015 17:55:07 +0100 -Subject: [PATCH 69/71] Whitespace fixes. +Subject: [PATCH 69/78] Whitespace fixes. --- src/dnsmasq.c | 14 +++++++------- diff --git a/src/patches/dnsmasq/0070-Return-INSECURE-rather-than-BOGUS-when-DS-proved-not.patch b/src/patches/dnsmasq/0070-Return-INSECURE-rather-than-BOGUS-when-DS-proved-not.patch index 1350ca6b8..b021aab16 100644 --- a/src/patches/dnsmasq/0070-Return-INSECURE-rather-than-BOGUS-when-DS-proved-not.patch +++ b/src/patches/dnsmasq/0070-Return-INSECURE-rather-than-BOGUS-when-DS-proved-not.patch @@ -1,7 +1,7 @@ From fe3992f9fa69fa975ea31919c53933b5f6a63527 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Fri, 3 Apr 2015 21:25:05 +0100 -Subject: [PATCH 70/71] Return INSECURE, rather than BOGUS when DS proved not +Subject: [PATCH 70/78] Return INSECURE, rather than BOGUS when DS proved not to exist. Return INSECURE when validating DNS replies which have RRSIGs, but diff --git a/src/patches/dnsmasq/0071-Fix-compiler-warning-when-not-including-DNSSEC.patch b/src/patches/dnsmasq/0071-Fix-compiler-warning-when-not-including-DNSSEC.patch index 83cdb0c81..b8e5cf817 100644 --- a/src/patches/dnsmasq/0071-Fix-compiler-warning-when-not-including-DNSSEC.patch +++ b/src/patches/dnsmasq/0071-Fix-compiler-warning-when-not-including-DNSSEC.patch @@ -1,7 +1,7 @@ From 982faf402487e265ed11ac03524531d42b03c966 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Fri, 3 Apr 2015 21:42:30 +0100 -Subject: [PATCH 71/71] Fix compiler warning when not including DNSSEC. +Subject: [PATCH 71/78] Fix compiler warning when not including DNSSEC. --- src/forward.c | 3 ++- diff --git a/src/patches/dnsmasq/0072-Fix-crash-caused-by-looking-up-servers.bind-when-man.patch b/src/patches/dnsmasq/0072-Fix-crash-caused-by-looking-up-servers.bind-when-man.patch new file mode 100644 index 000000000..e03606c5c --- /dev/null +++ b/src/patches/dnsmasq/0072-Fix-crash-caused-by-looking-up-servers.bind-when-man.patch @@ -0,0 +1,54 @@ +From 04b0ac05377936d121a36873bb63d492cde292c9 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Mon, 6 Apr 2015 17:19:13 +0100 +Subject: [PATCH 72/78] Fix crash caused by looking up servers.bind when many + servers defined. + +--- + CHANGELOG | 7 ++++++- + src/cache.c | 4 ++-- + 2 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 34432ae4807f..6aa3d851a297 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -75,7 +75,12 @@ version 2.73 + + Add --tftp-no-fail option. Thanks to Stefan Tomanek for + the patch. +- ++ ++ Fix crash caused by looking up servers.bind, CHAOS text record, ++ when more than about five --servers= lines are in the dnsmasq ++ config. This causes memory corruption which causes a crash later. ++ Thanks to Matt Coddington for sterling work chasing this down. ++ + + version 2.72 + Add ra-advrouter mode, for RFC-3775 mobile IPv6 support. +diff --git a/src/cache.c b/src/cache.c +index d7bea574c0d8..178d654ca92e 100644 +--- a/src/cache.c ++++ b/src/cache.c +@@ -1367,7 +1367,7 @@ int cache_make_stat(struct txt_record *t) + } + port = prettyprint_addr(&serv->addr, daemon->addrbuff); + lenp = p++; /* length */ +- bytes_avail = (p - buff) + bufflen; ++ bytes_avail = bufflen - (p - buff ); + bytes_needed = snprintf(p, bytes_avail, "%s#%d %u %u", daemon->addrbuff, port, queries, failed_queries); + if (bytes_needed >= bytes_avail) + { +@@ -1381,7 +1381,7 @@ int cache_make_stat(struct txt_record *t) + lenp = p - 1; + buff = new; + bufflen = newlen; +- bytes_avail = (p - buff) + bufflen; ++ bytes_avail = bufflen - (p - buff ); + bytes_needed = snprintf(p, bytes_avail, "%s#%d %u %u", daemon->addrbuff, port, queries, failed_queries); + } + *lenp = bytes_needed; +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0073-Fix-crash-on-receipt-of-certain-malformed-DNS-reques.patch b/src/patches/dnsmasq/0073-Fix-crash-on-receipt-of-certain-malformed-DNS-reques.patch new file mode 100644 index 000000000..c333e662d --- /dev/null +++ b/src/patches/dnsmasq/0073-Fix-crash-on-receipt-of-certain-malformed-DNS-reques.patch @@ -0,0 +1,61 @@ +From ad4a8ff7d9097008d7623df8543df435bfddeac8 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Thu, 9 Apr 2015 21:48:00 +0100 +Subject: [PATCH 73/78] Fix crash on receipt of certain malformed DNS requests. + +--- + CHANGELOG | 3 +++ + src/rfc1035.c | 9 ++++++--- + 2 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 6aa3d851a297..9af617056f1f 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -125,6 +125,9 @@ version 2.72 + Fix problem with --local-service option on big-endian platforms + Thanks to Richard Genoud for the patch. + ++ Fix crash on receipt of certain malformed DNS requests. Thanks ++ to Nick Sampanis for spotting the problem. ++ + + version 2.71 + Subtle change to error handling to help DNSSEC validation +diff --git a/src/rfc1035.c b/src/rfc1035.c +index 7a07b0cee906..a995ab50d74a 100644 +--- a/src/rfc1035.c ++++ b/src/rfc1035.c +@@ -1198,7 +1198,10 @@ unsigned int extract_request(struct dns_header *header, size_t qlen, char *name, + size_t setup_reply(struct dns_header *header, size_t qlen, + struct all_addr *addrp, unsigned int flags, unsigned long ttl) + { +- unsigned char *p = skip_questions(header, qlen); ++ unsigned char *p; ++ ++ if (!(p = skip_questions(header, qlen))) ++ return 0; + + /* clear authoritative and truncated flags, set QR flag */ + header->hb3 = (header->hb3 & ~(HB3_AA | HB3_TC)) | HB3_QR; +@@ -1214,7 +1217,7 @@ size_t setup_reply(struct dns_header *header, size_t qlen, + SET_RCODE(header, NOERROR); /* empty domain */ + else if (flags == F_NXDOMAIN) + SET_RCODE(header, NXDOMAIN); +- else if (p && flags == F_IPV4) ++ else if (flags == F_IPV4) + { /* we know the address */ + SET_RCODE(header, NOERROR); + header->ancount = htons(1); +@@ -1222,7 +1225,7 @@ size_t setup_reply(struct dns_header *header, size_t qlen, + add_resource_record(header, NULL, NULL, sizeof(struct dns_header), &p, ttl, NULL, T_A, C_IN, "4", addrp); + } + #ifdef HAVE_IPV6 +- else if (p && flags == F_IPV6) ++ else if (flags == F_IPV6) + { + SET_RCODE(header, NOERROR); + header->ancount = htons(1); +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0074-Fix-crash-in-auth-code-with-odd-configuration.patch b/src/patches/dnsmasq/0074-Fix-crash-in-auth-code-with-odd-configuration.patch new file mode 100644 index 000000000..4a9cee0d2 --- /dev/null +++ b/src/patches/dnsmasq/0074-Fix-crash-in-auth-code-with-odd-configuration.patch @@ -0,0 +1,113 @@ +From 38440b204db65f9be16c4c3daa7e991e4356f6ed Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Sun, 12 Apr 2015 21:52:47 +0100 +Subject: [PATCH 74/78] Fix crash in auth code with odd configuration. + +--- + CHANGELOG | 32 +++++++++++++++++++++----------- + src/auth.c | 13 ++++++++----- + 2 files changed, 29 insertions(+), 16 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 9af617056f1f..f2142c71cbdc 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -68,18 +68,31 @@ version 2.73 + Fix broken DNSSEC validation of ECDSA signatures. + + Add --dnssec-timestamp option, which provides an automatic +- way to detect when the system time becomes valid after boot +- on systems without an RTC, whilst allowing DNS queries before the +- clock is valid so that NTP can run. Thanks to +- Kevin Darbyshire-Bryant for developing this idea. ++ way to detect when the system time becomes valid after ++ boot on systems without an RTC, whilst allowing DNS ++ queries before the clock is valid so that NTP can run. ++ Thanks to Kevin Darbyshire-Bryant for developing this idea. + + Add --tftp-no-fail option. Thanks to Stefan Tomanek for + the patch. + +- Fix crash caused by looking up servers.bind, CHAOS text record, +- when more than about five --servers= lines are in the dnsmasq +- config. This causes memory corruption which causes a crash later. +- Thanks to Matt Coddington for sterling work chasing this down. ++ Fix crash caused by looking up servers.bind, CHAOS text ++ record, when more than about five --servers= lines are ++ in the dnsmasq config. This causes memory corruption ++ which causes a crash later. Thanks to Matt Coddington for ++ sterling work chasing this down. ++ ++ Fix crash on receipt of certain malformed DNS requests. ++ Thanks to Nick Sampanis for spotting the problem. ++ ++ Fix crash in authoritative DNS code, if a .arpa zone ++ is declared as authoritative, and then a PTR query which ++ is not to be treated as authoritative arrived. Normally, ++ directly declaring .arpa zone as authoritative is not ++ done, so this crash wouldn't be seen. Instead the ++ relevant .arpa zone should be specified as a subnet ++ in the auth-zone declaration. Thanks to Johnny S. Lee ++ for the bugreport and initial patch. + + + version 2.72 +@@ -125,10 +138,7 @@ version 2.72 + Fix problem with --local-service option on big-endian platforms + Thanks to Richard Genoud for the patch. + +- Fix crash on receipt of certain malformed DNS requests. Thanks +- to Nick Sampanis for spotting the problem. + +- + version 2.71 + Subtle change to error handling to help DNSSEC validation + when servers fail to provide NODATA answers for +diff --git a/src/auth.c b/src/auth.c +index 15721e52793f..4a5c39fc5c07 100644 +--- a/src/auth.c ++++ b/src/auth.c +@@ -141,7 +141,7 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n + for (zone = daemon->auth_zones; zone; zone = zone->next) + if ((subnet = find_subnet(zone, flag, &addr))) + break; +- ++ + if (!zone) + { + auth = 0; +@@ -186,7 +186,7 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n + + if (intr) + { +- if (in_zone(zone, intr->name, NULL)) ++ if (local_query || in_zone(zone, intr->name, NULL)) + { + found = 1; + log_query(flag | F_REVERSE | F_CONFIG, intr->name, &addr, NULL); +@@ -208,8 +208,11 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n + *p = 0; /* must be bare name */ + + /* add external domain */ +- strcat(name, "."); +- strcat(name, zone->domain); ++ if (zone) ++ { ++ strcat(name, "."); ++ strcat(name, zone->domain); ++ } + log_query(flag | F_DHCP | F_REVERSE, name, &addr, record_source(crecp->uid)); + found = 1; + if (add_resource_record(header, limit, &trunc, nameoffset, &ansp, +@@ -217,7 +220,7 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n + T_PTR, C_IN, "d", name)) + anscount++; + } +- else if (crecp->flags & (F_DHCP | F_HOSTS) && in_zone(zone, name, NULL)) ++ else if (crecp->flags & (F_DHCP | F_HOSTS) && (local_query || in_zone(zone, name, NULL))) + { + log_query(crecp->flags & ~F_FORWARD, name, &addr, record_source(crecp->uid)); + found = 1; +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0075-Auth-correct-replies-to-NS-and-SOA-in-.arpa-zones.patch b/src/patches/dnsmasq/0075-Auth-correct-replies-to-NS-and-SOA-in-.arpa-zones.patch new file mode 100644 index 000000000..705229f1a --- /dev/null +++ b/src/patches/dnsmasq/0075-Auth-correct-replies-to-NS-and-SOA-in-.arpa-zones.patch @@ -0,0 +1,106 @@ +From 78c6184752dce27849e36cce4360abc27b8d76d2 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Thu, 16 Apr 2015 15:05:30 +0100 +Subject: [PATCH 75/78] Auth: correct replies to NS and SOA in .arpa zones. + +--- + CHANGELOG | 8 ++++++++ + src/auth.c | 51 ++++++++++++++++++++++++++++++--------------------- + 2 files changed, 38 insertions(+), 21 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index f2142c71cbdc..0619788e9cef 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -94,6 +94,14 @@ version 2.73 + in the auth-zone declaration. Thanks to Johnny S. Lee + for the bugreport and initial patch. + ++ Fix authoritative DNS code to correctly reply to NS ++ and SOA queries for .arpa zones for which we are ++ declared authoritative by means of a subnet in auth-zone. ++ Previously we provided correct answers to PTR queries ++ in such zones (including NS and SOA) but not direct ++ NS and SOA queries. Thanks to Johnny S. Lee for ++ pointing out the problem. ++ + + version 2.72 + Add ra-advrouter mode, for RFC-3775 mobile IPv6 support. +diff --git a/src/auth.c b/src/auth.c +index 4a5c39fc5c07..2b0b7d6b052d 100644 +--- a/src/auth.c ++++ b/src/auth.c +@@ -131,24 +131,27 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n + continue; + } + +- if (qtype == T_PTR) ++ if ((qtype == T_PTR || qtype == T_SOA || qtype == T_NS) && ++ (flag = in_arpa_name_2_addr(name, &addr)) && ++ !local_query) + { +- if (!(flag = in_arpa_name_2_addr(name, &addr))) +- continue; +- +- if (!local_query) ++ for (zone = daemon->auth_zones; zone; zone = zone->next) ++ if ((subnet = find_subnet(zone, flag, &addr))) ++ break; ++ ++ if (!zone) + { +- for (zone = daemon->auth_zones; zone; zone = zone->next) +- if ((subnet = find_subnet(zone, flag, &addr))) +- break; +- +- if (!zone) +- { +- auth = 0; +- continue; +- } ++ auth = 0; ++ continue; + } ++ else if (qtype == T_SOA) ++ soa = 1, found = 1; ++ else if (qtype == T_NS) ++ ns = 1, found = 1; ++ } + ++ if (qtype == T_PTR && flag) ++ { + intr = NULL; + + if (flag == F_IPV4) +@@ -243,14 +246,20 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n + } + + cname_restart: +- for (zone = daemon->auth_zones; zone; zone = zone->next) +- if (in_zone(zone, name, &cut)) +- break; +- +- if (!zone) ++ if (found) ++ /* NS and SOA .arpa requests have set found above. */ ++ cut = NULL; ++ else + { +- auth = 0; +- continue; ++ for (zone = daemon->auth_zones; zone; zone = zone->next) ++ if (in_zone(zone, name, &cut)) ++ break; ++ ++ if (!zone) ++ { ++ auth = 0; ++ continue; ++ } + } + + for (rec = daemon->mxnames; rec; rec = rec->next) +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0076-Fix-srk-induced-crash-in-new-tftp_no_fail-code.patch b/src/patches/dnsmasq/0076-Fix-srk-induced-crash-in-new-tftp_no_fail-code.patch new file mode 100644 index 000000000..e42dfb0d7 --- /dev/null +++ b/src/patches/dnsmasq/0076-Fix-srk-induced-crash-in-new-tftp_no_fail-code.patch @@ -0,0 +1,36 @@ +From b4c0f092d8ce63ea4763c0ac17aa8d24318ad301 Mon Sep 17 00:00:00 2001 +From: Stefan Tomanek +Date: Thu, 16 Apr 2015 15:20:59 +0100 +Subject: [PATCH 76/78] Fix (srk induced) crash in new tftp_no_fail code. + +--- + src/dnsmasq.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/dnsmasq.c b/src/dnsmasq.c +index a7c5da8fbd01..20b15c05103a 100644 +--- a/src/dnsmasq.c ++++ b/src/dnsmasq.c +@@ -655,7 +655,8 @@ int main (int argc, char **argv) + _exit(0); + } + } +- closedir(dir); ++ else ++ closedir(dir); + } + + for (p = daemon->if_prefix; p; p = p->next) +@@ -670,7 +671,8 @@ int main (int argc, char **argv) + _exit(0); + } + } +- closedir(dir); ++ else ++ closedir(dir); + } + } + #endif +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0077-Note-CVE-2015-3294.patch b/src/patches/dnsmasq/0077-Note-CVE-2015-3294.patch new file mode 100644 index 000000000..15f3a4d44 --- /dev/null +++ b/src/patches/dnsmasq/0077-Note-CVE-2015-3294.patch @@ -0,0 +1,26 @@ +From 0df29f5e23fd2f16181847db1fcf3a8b392d869a Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Thu, 16 Apr 2015 15:24:52 +0100 +Subject: [PATCH 77/78] Note CVE-2015-3294 + +--- + CHANGELOG | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/CHANGELOG b/CHANGELOG +index 0619788e9cef..7f2b1e002e9e 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -84,6 +84,9 @@ version 2.73 + + Fix crash on receipt of certain malformed DNS requests. + Thanks to Nick Sampanis for spotting the problem. ++ Note that this is could allow the dnsmasq process's ++ memory to be read by an attacker under certain ++ circumstances, so it has a CVE, CVE-2015-3294 + + Fix crash in authoritative DNS code, if a .arpa zone + is declared as authoritative, and then a PTR query which +-- +2.1.0 + diff --git a/src/patches/dnsmasq/0078-Log-domain-when-reporting-DNSSEC-validation-failure.patch b/src/patches/dnsmasq/0078-Log-domain-when-reporting-DNSSEC-validation-failure.patch new file mode 100644 index 000000000..2f7fa0aff --- /dev/null +++ b/src/patches/dnsmasq/0078-Log-domain-when-reporting-DNSSEC-validation-failure.patch @@ -0,0 +1,59 @@ +From 554b580e970275d5a869cb4fbfb2716f92b2f664 Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Fri, 17 Apr 2015 22:50:20 +0100 +Subject: [PATCH 78/78] Log domain when reporting DNSSEC validation failure. + +--- + src/forward.c | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +diff --git a/src/forward.c b/src/forward.c +index 3f6b9a23b6ab..1c7da3f5655c 100644 +--- a/src/forward.c ++++ b/src/forward.c +@@ -1014,7 +1014,7 @@ void reply_query(int fd, int family, time_t now) + header->hb3 |= HB3_TC; + else + { +- char *result; ++ char *result, *domain = "result"; + + if (forward->work_counter == 0) + { +@@ -1024,7 +1024,10 @@ void reply_query(int fd, int family, time_t now) + else + result = (status == STAT_SECURE ? "SECURE" : (status == STAT_INSECURE ? "INSECURE" : "BOGUS")); + +- log_query(F_KEYTAG | F_SECSTAT, "result", NULL, result); ++ if (status == STAT_BOGUS && extract_request(header, n, daemon->namebuff, NULL)) ++ domain = daemon->namebuff; ++ ++ log_query(F_KEYTAG | F_SECSTAT, domain, NULL, result); + } + + if (status == STAT_SECURE) +@@ -1975,7 +1978,7 @@ unsigned char *tcp_request(int confd, time_t now, + { + int keycount = DNSSEC_WORK; /* Limit to number of DNSSEC questions, to catch loops and avoid filling cache. */ + int status = tcp_key_recurse(now, STAT_TRUNCATED, header, m, 0, daemon->namebuff, daemon->keyname, last_server, &keycount); +- char *result; ++ char *result, *domain = "result"; + + if (status == STAT_INSECURE_DS) + { +@@ -1993,8 +1996,10 @@ unsigned char *tcp_request(int confd, time_t now, + } + else + result = (status == STAT_SECURE ? "SECURE" : (status == STAT_INSECURE ? "INSECURE" : "BOGUS")); +- +- log_query(F_KEYTAG | F_SECSTAT, "result", NULL, result); ++ if (status == STAT_BOGUS && extract_request(header, m, daemon->namebuff, NULL)) ++ domain = daemon->namebuff; ++ ++ log_query(F_KEYTAG | F_SECSTAT, domain, NULL, result); + + if (status == STAT_BOGUS) + { +-- +2.1.0 + From 0389942c2bc24b93de68269606bcd11a4ce57dab Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 18 Apr 2015 16:16:01 +0200 Subject: [PATCH 115/210] Update translations --- doc/language_issues.de | 8 +++++ doc/language_issues.en | 8 +++++ doc/language_issues.es | 10 ++++++ doc/language_issues.fr | 14 +++++++++ doc/language_issues.it | 17 ++++++++++ doc/language_issues.nl | 14 +++++++++ doc/language_issues.pl | 10 ++++++ doc/language_issues.ru | 14 +++++++++ doc/language_issues.tr | 14 +++++++++ doc/language_missings | 70 ++++++++++++++++++++++++++++++++++++++++++ langs/de/cgi-bin/de.pl | 4 +-- langs/en/cgi-bin/en.pl | 4 +-- 12 files changed, 183 insertions(+), 4 deletions(-) diff --git a/doc/language_issues.de b/doc/language_issues.de index 3a31661f3..1ccc65412 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -75,6 +75,7 @@ WARNING: translation string unused: bad characters in WARNING: translation string unused: behind a proxy WARNING: translation string unused: bitrate WARNING: translation string unused: bleeding rules +WARNING: translation string unused: block WARNING: translation string unused: blue access use hint WARNING: translation string unused: blue interface WARNING: translation string unused: cache management @@ -243,6 +244,7 @@ WARNING: translation string unused: fwhost Standard Network WARNING: translation string unused: fwhost attention WARNING: translation string unused: fwhost blue WARNING: translation string unused: fwhost changeremark +WARNING: translation string unused: fwhost cust geoip WARNING: translation string unused: fwhost err addrgrp WARNING: translation string unused: fwhost err hostorip WARNING: translation string unused: fwhost err mac @@ -258,6 +260,9 @@ WARNING: translation string unused: fwhost wo subnet WARNING: translation string unused: gen static key WARNING: translation string unused: generate WARNING: translation string unused: genkey +WARNING: translation string unused: geoipblock country code +WARNING: translation string unused: geoipblock country name +WARNING: translation string unused: geoipblock flag WARNING: translation string unused: green interface WARNING: translation string unused: gz with key WARNING: translation string unused: hint @@ -576,6 +581,8 @@ WARNING: translation string unused: transfer limits WARNING: translation string unused: transparent on WARNING: translation string unused: umount WARNING: translation string unused: umount removable media before to unplug +WARNING: translation string unused: unblock +WARNING: translation string unused: unblock all WARNING: translation string unused: unencrypted WARNING: translation string unused: update transcript WARNING: translation string unused: updates @@ -632,6 +639,7 @@ WARNING: untranslated string: bytes WARNING: untranslated string: community rules WARNING: untranslated string: dead peer detection WARNING: untranslated string: emerging rules +WARNING: untranslated string: fwhost cust geoipgrp WARNING: untranslated string: fwhost err hostip WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: no data diff --git a/doc/language_issues.en b/doc/language_issues.en index da14d97b8..b7be8627b 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -93,6 +93,7 @@ WARNING: translation string unused: bewan adsl pci st WARNING: translation string unused: bewan adsl usb WARNING: translation string unused: bitrate WARNING: translation string unused: bleeding rules +WARNING: translation string unused: block WARNING: translation string unused: blue access use hint WARNING: translation string unused: blue interface WARNING: translation string unused: cache management @@ -266,6 +267,7 @@ WARNING: translation string unused: fwhost Standard Network WARNING: translation string unused: fwhost attention WARNING: translation string unused: fwhost blue WARNING: translation string unused: fwhost changeremark +WARNING: translation string unused: fwhost cust geoip WARNING: translation string unused: fwhost err addrgrp WARNING: translation string unused: fwhost err hostorip WARNING: translation string unused: fwhost err mac @@ -283,6 +285,9 @@ WARNING: translation string unused: g.lite WARNING: translation string unused: gen static key WARNING: translation string unused: generate WARNING: translation string unused: genkey +WARNING: translation string unused: geoipblock country code +WARNING: translation string unused: geoipblock country name +WARNING: translation string unused: geoipblock flag WARNING: translation string unused: green interface WARNING: translation string unused: gz with key WARNING: translation string unused: hint @@ -609,6 +614,8 @@ WARNING: translation string unused: transfer limits WARNING: translation string unused: transparent on WARNING: translation string unused: umount WARNING: translation string unused: umount removable media before to unplug +WARNING: translation string unused: unblock +WARNING: translation string unused: unblock all WARNING: translation string unused: unencrypted WARNING: translation string unused: update transcript WARNING: translation string unused: updates @@ -664,6 +671,7 @@ WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs WARNING: untranslated string: bytes +WARNING: untranslated string: fwhost cust geoipgrp WARNING: untranslated string: fwhost err hostip WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: no data diff --git a/doc/language_issues.es b/doc/language_issues.es index f76cd5e6a..086dfbdc9 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -233,6 +233,9 @@ WARNING: translation string unused: g.lite WARNING: translation string unused: gen static key WARNING: translation string unused: generate WARNING: translation string unused: genkey +WARNING: translation string unused: geoipblock country code +WARNING: translation string unused: geoipblock country name +WARNING: translation string unused: geoipblock flag WARNING: translation string unused: green interface WARNING: translation string unused: gz with key WARNING: translation string unused: hint @@ -650,6 +653,7 @@ WARNING: untranslated string: ccd none WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used +WARNING: untranslated string: check all WARNING: untranslated string: count WARNING: untranslated string: countries WARNING: untranslated string: country codes and flags @@ -794,6 +798,7 @@ WARNING: untranslated string: fwdfw wd_thu WARNING: untranslated string: fwdfw wd_tue WARNING: untranslated string: fwdfw wd_wed WARNING: untranslated string: fwhost OpenVPN N-2-N +WARNING: untranslated string: fwhost addgeoipgrp WARNING: untranslated string: fwhost addgrp WARNING: untranslated string: fwhost addgrpname WARNING: untranslated string: fwhost addhost @@ -806,6 +811,9 @@ WARNING: untranslated string: fwhost ccdhost WARNING: untranslated string: fwhost ccdnet WARNING: untranslated string: fwhost change WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust geoipgroup +WARNING: untranslated string: fwhost cust geoipgrp +WARNING: untranslated string: fwhost cust geoiplocation WARNING: untranslated string: fwhost cust grp WARNING: untranslated string: fwhost cust net WARNING: untranslated string: fwhost cust service @@ -845,6 +853,7 @@ WARNING: untranslated string: fwhost ip_mac WARNING: untranslated string: fwhost ipsec net WARNING: untranslated string: fwhost menu WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgeoipgrp WARNING: untranslated string: fwhost newgrp WARNING: untranslated string: fwhost newhost WARNING: untranslated string: fwhost newnet @@ -1025,6 +1034,7 @@ WARNING: untranslated string: tor traffic limit hard WARNING: untranslated string: tor traffic limit soft WARNING: untranslated string: tor traffic read written WARNING: untranslated string: tor use exit nodes +WARNING: untranslated string: uncheck all WARNING: untranslated string: uplink WARNING: untranslated string: upload dh key WARNING: untranslated string: uptime load average diff --git a/doc/language_issues.fr b/doc/language_issues.fr index 178ddff61..47ee3fb3f 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -660,6 +660,7 @@ WARNING: untranslated string: ccd none WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used +WARNING: untranslated string: check all WARNING: untranslated string: count WARNING: untranslated string: countries WARNING: untranslated string: country codes and flags @@ -805,6 +806,7 @@ WARNING: untranslated string: fwdfw wd_thu WARNING: untranslated string: fwdfw wd_tue WARNING: untranslated string: fwdfw wd_wed WARNING: untranslated string: fwhost OpenVPN N-2-N +WARNING: untranslated string: fwhost addgeoipgrp WARNING: untranslated string: fwhost addgrp WARNING: untranslated string: fwhost addgrpname WARNING: untranslated string: fwhost addhost @@ -817,6 +819,9 @@ WARNING: untranslated string: fwhost ccdhost WARNING: untranslated string: fwhost ccdnet WARNING: untranslated string: fwhost change WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust geoipgroup +WARNING: untranslated string: fwhost cust geoipgrp +WARNING: untranslated string: fwhost cust geoiplocation WARNING: untranslated string: fwhost cust grp WARNING: untranslated string: fwhost cust net WARNING: untranslated string: fwhost cust service @@ -856,6 +861,7 @@ WARNING: untranslated string: fwhost ip_mac WARNING: untranslated string: fwhost ipsec net WARNING: untranslated string: fwhost menu WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgeoipgrp WARNING: untranslated string: fwhost newgrp WARNING: untranslated string: fwhost newhost WARNING: untranslated string: fwhost newnet @@ -872,6 +878,13 @@ WARNING: untranslated string: fwhost used WARNING: untranslated string: fwhost welcome WARNING: untranslated string: gen dh WARNING: untranslated string: generate dh key +WARNING: untranslated string: geoip +WARNING: untranslated string: geoipblock +WARNING: untranslated string: geoipblock block countries +WARNING: untranslated string: geoipblock configuration +WARNING: untranslated string: geoipblock country is allowed +WARNING: untranslated string: geoipblock country is blocked +WARNING: untranslated string: geoipblock enable feature WARNING: untranslated string: grouptype WARNING: untranslated string: hardware support WARNING: untranslated string: ike lifetime should be between 1 and 8 hours @@ -1033,6 +1046,7 @@ WARNING: untranslated string: tor traffic limit hard WARNING: untranslated string: tor traffic limit soft WARNING: untranslated string: tor traffic read written WARNING: untranslated string: tor use exit nodes +WARNING: untranslated string: uncheck all WARNING: untranslated string: uplink WARNING: untranslated string: upload dh key WARNING: untranslated string: upload new ruleset diff --git a/doc/language_issues.it b/doc/language_issues.it index 0f69ce835..098f4401e 100644 --- a/doc/language_issues.it +++ b/doc/language_issues.it @@ -672,13 +672,26 @@ WARNING: untranslated string: advproxy basic authentication WARNING: untranslated string: advproxy group access control WARNING: untranslated string: advproxy group required WARNING: untranslated string: bytes +WARNING: untranslated string: check all WARNING: untranslated string: fwdfw err concon WARNING: untranslated string: fwdfw err ratecon WARNING: untranslated string: fwdfw limitconcon WARNING: untranslated string: fwdfw maxconcon WARNING: untranslated string: fwdfw numcon WARNING: untranslated string: fwdfw ratelimit +WARNING: untranslated string: fwhost addgeoipgrp +WARNING: untranslated string: fwhost cust geoipgroup +WARNING: untranslated string: fwhost cust geoipgrp +WARNING: untranslated string: fwhost cust geoiplocation WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost newgeoipgrp +WARNING: untranslated string: geoip +WARNING: untranslated string: geoipblock +WARNING: untranslated string: geoipblock block countries +WARNING: untranslated string: geoipblock configuration +WARNING: untranslated string: geoipblock country is allowed +WARNING: untranslated string: geoipblock country is blocked +WARNING: untranslated string: geoipblock enable feature WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: incoming compression in bytes per second WARNING: untranslated string: incoming overhead in bytes per second @@ -700,3 +713,7 @@ WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table WARNING: untranslated string: samba join a domain WARNING: untranslated string: samba join domain +WARNING: untranslated string: uncheck all +WARNING: untranslated string: vpn statistic n2n +WARNING: untranslated string: vpn statistic rw +WARNING: untranslated string: vpn statistics n2n diff --git a/doc/language_issues.nl b/doc/language_issues.nl index 1053474fc..602441d0b 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -671,6 +671,7 @@ WARNING: untranslated string: advproxy group required WARNING: untranslated string: atm device WARNING: untranslated string: bytes WARNING: untranslated string: capabilities +WARNING: untranslated string: check all WARNING: untranslated string: default WARNING: untranslated string: dh WARNING: untranslated string: dh key move failed @@ -691,9 +692,21 @@ WARNING: untranslated string: fwdfw limitconcon WARNING: untranslated string: fwdfw maxconcon WARNING: untranslated string: fwdfw numcon WARNING: untranslated string: fwdfw ratelimit +WARNING: untranslated string: fwhost addgeoipgrp +WARNING: untranslated string: fwhost cust geoipgroup +WARNING: untranslated string: fwhost cust geoipgrp +WARNING: untranslated string: fwhost cust geoiplocation WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost newgeoipgrp WARNING: untranslated string: gen dh WARNING: untranslated string: generate dh key +WARNING: untranslated string: geoip +WARNING: untranslated string: geoipblock +WARNING: untranslated string: geoipblock block countries +WARNING: untranslated string: geoipblock configuration +WARNING: untranslated string: geoipblock country is allowed +WARNING: untranslated string: geoipblock country is blocked +WARNING: untranslated string: geoipblock enable feature WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: imei WARNING: untranslated string: imsi @@ -747,6 +760,7 @@ WARNING: untranslated string: show tls-auth key WARNING: untranslated string: software version WARNING: untranslated string: source ip country WARNING: untranslated string: ta key +WARNING: untranslated string: uncheck all WARNING: untranslated string: upload dh key WARNING: untranslated string: vendor WARNING: untranslated string: vpn statistic n2n diff --git a/doc/language_issues.pl b/doc/language_issues.pl index f76cd5e6a..086dfbdc9 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -233,6 +233,9 @@ WARNING: translation string unused: g.lite WARNING: translation string unused: gen static key WARNING: translation string unused: generate WARNING: translation string unused: genkey +WARNING: translation string unused: geoipblock country code +WARNING: translation string unused: geoipblock country name +WARNING: translation string unused: geoipblock flag WARNING: translation string unused: green interface WARNING: translation string unused: gz with key WARNING: translation string unused: hint @@ -650,6 +653,7 @@ WARNING: untranslated string: ccd none WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used +WARNING: untranslated string: check all WARNING: untranslated string: count WARNING: untranslated string: countries WARNING: untranslated string: country codes and flags @@ -794,6 +798,7 @@ WARNING: untranslated string: fwdfw wd_thu WARNING: untranslated string: fwdfw wd_tue WARNING: untranslated string: fwdfw wd_wed WARNING: untranslated string: fwhost OpenVPN N-2-N +WARNING: untranslated string: fwhost addgeoipgrp WARNING: untranslated string: fwhost addgrp WARNING: untranslated string: fwhost addgrpname WARNING: untranslated string: fwhost addhost @@ -806,6 +811,9 @@ WARNING: untranslated string: fwhost ccdhost WARNING: untranslated string: fwhost ccdnet WARNING: untranslated string: fwhost change WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust geoipgroup +WARNING: untranslated string: fwhost cust geoipgrp +WARNING: untranslated string: fwhost cust geoiplocation WARNING: untranslated string: fwhost cust grp WARNING: untranslated string: fwhost cust net WARNING: untranslated string: fwhost cust service @@ -845,6 +853,7 @@ WARNING: untranslated string: fwhost ip_mac WARNING: untranslated string: fwhost ipsec net WARNING: untranslated string: fwhost menu WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgeoipgrp WARNING: untranslated string: fwhost newgrp WARNING: untranslated string: fwhost newhost WARNING: untranslated string: fwhost newnet @@ -1025,6 +1034,7 @@ WARNING: untranslated string: tor traffic limit hard WARNING: untranslated string: tor traffic limit soft WARNING: untranslated string: tor traffic read written WARNING: untranslated string: tor use exit nodes +WARNING: untranslated string: uncheck all WARNING: untranslated string: uplink WARNING: untranslated string: upload dh key WARNING: untranslated string: uptime load average diff --git a/doc/language_issues.ru b/doc/language_issues.ru index f524498c0..94724d4c2 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -653,6 +653,7 @@ WARNING: untranslated string: ccd none WARNING: untranslated string: ccd routes WARNING: untranslated string: ccd subnet WARNING: untranslated string: ccd used +WARNING: untranslated string: check all WARNING: untranslated string: community rules WARNING: untranslated string: count WARNING: untranslated string: countries @@ -789,6 +790,7 @@ WARNING: untranslated string: fwdfw wd_thu WARNING: untranslated string: fwdfw wd_tue WARNING: untranslated string: fwdfw wd_wed WARNING: untranslated string: fwhost OpenVPN N-2-N +WARNING: untranslated string: fwhost addgeoipgrp WARNING: untranslated string: fwhost addgrp WARNING: untranslated string: fwhost addgrpname WARNING: untranslated string: fwhost addhost @@ -801,6 +803,9 @@ WARNING: untranslated string: fwhost ccdhost WARNING: untranslated string: fwhost ccdnet WARNING: untranslated string: fwhost change WARNING: untranslated string: fwhost cust addr +WARNING: untranslated string: fwhost cust geoipgroup +WARNING: untranslated string: fwhost cust geoipgrp +WARNING: untranslated string: fwhost cust geoiplocation WARNING: untranslated string: fwhost cust grp WARNING: untranslated string: fwhost cust net WARNING: untranslated string: fwhost cust service @@ -840,6 +845,7 @@ WARNING: untranslated string: fwhost ip_mac WARNING: untranslated string: fwhost ipsec net WARNING: untranslated string: fwhost menu WARNING: untranslated string: fwhost netaddress +WARNING: untranslated string: fwhost newgeoipgrp WARNING: untranslated string: fwhost newgrp WARNING: untranslated string: fwhost newhost WARNING: untranslated string: fwhost newnet @@ -856,6 +862,13 @@ WARNING: untranslated string: fwhost used WARNING: untranslated string: fwhost welcome WARNING: untranslated string: gen dh WARNING: untranslated string: generate dh key +WARNING: untranslated string: geoip +WARNING: untranslated string: geoipblock +WARNING: untranslated string: geoipblock block countries +WARNING: untranslated string: geoipblock configuration +WARNING: untranslated string: geoipblock country is allowed +WARNING: untranslated string: geoipblock country is blocked +WARNING: untranslated string: geoipblock enable feature WARNING: untranslated string: grouptype WARNING: untranslated string: hardware support WARNING: untranslated string: ike lifetime should be between 1 and 8 hours @@ -1014,6 +1027,7 @@ WARNING: untranslated string: tor traffic limit hard WARNING: untranslated string: tor traffic limit soft WARNING: untranslated string: tor traffic read written WARNING: untranslated string: tor use exit nodes +WARNING: untranslated string: uncheck all WARNING: untranslated string: uplink WARNING: untranslated string: upload dh key WARNING: untranslated string: uptime load average diff --git a/doc/language_issues.tr b/doc/language_issues.tr index 310b63668..6f846c738 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -664,7 +664,20 @@ WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs WARNING: untranslated string: bytes +WARNING: untranslated string: check all +WARNING: untranslated string: fwhost addgeoipgrp +WARNING: untranslated string: fwhost cust geoipgroup +WARNING: untranslated string: fwhost cust geoipgrp +WARNING: untranslated string: fwhost cust geoiplocation WARNING: untranslated string: fwhost err hostip +WARNING: untranslated string: fwhost newgeoipgrp +WARNING: untranslated string: geoip +WARNING: untranslated string: geoipblock +WARNING: untranslated string: geoipblock block countries +WARNING: untranslated string: geoipblock configuration +WARNING: untranslated string: geoipblock country is allowed +WARNING: untranslated string: geoipblock country is blocked +WARNING: untranslated string: geoipblock enable feature WARNING: untranslated string: ike lifetime should be between 1 and 8 hours WARNING: untranslated string: incoming compression in bytes per second WARNING: untranslated string: incoming overhead in bytes per second @@ -677,6 +690,7 @@ WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: uncheck all WARNING: untranslated string: vpn statistic n2n WARNING: untranslated string: vpn statistic rw WARNING: untranslated string: vpn statistics n2n diff --git a/doc/language_missings b/doc/language_missings index 0d73d2acf..9fdc0d276 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -29,6 +29,7 @@ < atm device < attention < bit +< block < capabilities < ccd add < ccd choose net @@ -70,6 +71,7 @@ < ccd routes < ccd subnet < ccd used +< check all < ConnSched dial < ConnSched hangup < ConnSched reboot @@ -233,6 +235,7 @@ < fwdfw wd_tue < fwdfw wd_wed < fwdfw xt access +< fwhost addgeoipgrp < fwhost addgrp < fwhost addgrpname < fwhost addhost @@ -248,6 +251,9 @@ < fwhost change < fwhost changeremark < fwhost cust addr +< fwhost cust geoip +< fwhost cust geoipgroup +< fwhost cust geoiplocation < fwhost cust grp < fwhost cust net < fwhost Custom Host @@ -298,6 +304,7 @@ < fwhost IpSec Network < fwhost menu < fwhost netaddress +< fwhost newgeoipgrp < fwhost newgrp < fwhost newhost < fwhost newnet @@ -327,6 +334,16 @@ < fw settings ruletable < gen dh < generate dh key +< geoip +< geoipblock +< geoipblock block countries +< geoipblock configuration +< geoipblock country code +< geoipblock country is allowed +< geoipblock country is blocked +< geoipblock country name +< geoipblock enable feature +< geoipblock flag < grouptype < hardware support < imei @@ -496,6 +513,9 @@ < tor traffic limit soft < tor traffic read written < tor use exit nodes +< unblock +< unblock all +< uncheck all < updxlrtr sources < updxlrtr standard view < uplink @@ -589,6 +609,7 @@ < atm device < attention < bit +< block < capabilities < ccd add < ccd choose net @@ -630,6 +651,7 @@ < ccd routes < ccd subnet < ccd used +< check all < ConnSched dial < ConnSched hangup < ConnSched reboot @@ -792,6 +814,7 @@ < fwdfw wd_tue < fwdfw wd_wed < fwdfw xt access +< fwhost addgeoipgrp < fwhost addgrp < fwhost addgrpname < fwhost addhost @@ -807,6 +830,9 @@ < fwhost change < fwhost changeremark < fwhost cust addr +< fwhost cust geoip +< fwhost cust geoipgroup +< fwhost cust geoiplocation < fwhost cust grp < fwhost cust net < fwhost Custom Host @@ -857,6 +883,7 @@ < fwhost IpSec Network < fwhost menu < fwhost netaddress +< fwhost newgeoipgrp < fwhost newgrp < fwhost newhost < fwhost newnet @@ -1071,6 +1098,9 @@ < tor traffic limit soft < tor traffic read written < tor use exit nodes +< unblock +< unblock all +< uncheck all < updxlrtr sources < updxlrtr standard view < uplink @@ -1140,6 +1170,7 @@ < atm device < attention < bit +< block < capabilities < ccd add < ccd choose net @@ -1181,6 +1212,7 @@ < ccd routes < ccd subnet < ccd used +< check all < ConnSched dial < ConnSched hangup < ConnSched reboot @@ -1335,6 +1367,7 @@ < fwdfw wd_tue < fwdfw wd_wed < fwdfw xt access +< fwhost addgeoipgrp < fwhost addgrp < fwhost addgrpname < fwhost addhost @@ -1350,6 +1383,9 @@ < fwhost change < fwhost changeremark < fwhost cust addr +< fwhost cust geoip +< fwhost cust geoipgroup +< fwhost cust geoiplocation < fwhost cust grp < fwhost cust net < fwhost Custom Host @@ -1400,6 +1436,7 @@ < fwhost IpSec Network < fwhost menu < fwhost netaddress +< fwhost newgeoipgrp < fwhost newgrp < fwhost newhost < fwhost newnet @@ -1429,6 +1466,16 @@ < fw settings ruletable < gen dh < generate dh key +< geoip +< geoipblock +< geoipblock block countries +< geoipblock configuration +< geoipblock country code +< geoipblock country is allowed +< geoipblock country is blocked +< geoipblock country name +< geoipblock enable feature +< geoipblock flag < grouptype < hardware support < imei @@ -1598,6 +1645,9 @@ < tor traffic limit soft < tor traffic read written < tor use exit nodes +< unblock +< unblock all +< uncheck all < updxlrtr sources < updxlrtr standard view < uplink @@ -1668,6 +1718,7 @@ < atm device < attention < bit +< block < capabilities < ccd add < ccd choose net @@ -1709,6 +1760,7 @@ < ccd routes < ccd subnet < ccd used +< check all < ConnSched dial < ConnSched hangup < ConnSched reboot @@ -1867,6 +1919,7 @@ < fwdfw wd_tue < fwdfw wd_wed < fwdfw xt access +< fwhost addgeoipgrp < fwhost addgrp < fwhost addgrpname < fwhost addhost @@ -1882,6 +1935,9 @@ < fwhost change < fwhost changeremark < fwhost cust addr +< fwhost cust geoip +< fwhost cust geoipgroup +< fwhost cust geoiplocation < fwhost cust grp < fwhost cust net < fwhost Custom Host @@ -1932,6 +1988,7 @@ < fwhost IpSec Network < fwhost menu < fwhost netaddress +< fwhost newgeoipgrp < fwhost newgrp < fwhost newhost < fwhost newnet @@ -1961,6 +2018,16 @@ < fw settings ruletable < gen dh < generate dh key +< geoip +< geoipblock +< geoipblock block countries +< geoipblock configuration +< geoipblock country code +< geoipblock country is allowed +< geoipblock country is blocked +< geoipblock country name +< geoipblock enable feature +< geoipblock flag < grouptype < hardware support < hour-graph @@ -2130,6 +2197,9 @@ < tor traffic limit soft < tor traffic read written < tor use exit nodes +< unblock +< unblock all +< uncheck all < updxlrtr sources < updxlrtr standard view < uplink diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index bb23f2fc1..e29541256 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -533,7 +533,7 @@ 'chain' => 'Verknüpfung', 'change passwords' => 'Passwörter Ã¤ndern', 'change share' => 'Freigabeeinstellungen ändern', -'check all' =>'Alle auswählen', +'check all' => 'Alle auswählen', 'check for net traffic update' => 'Prüfe auf Net-Traffic-Updates', 'check vpn lr' => 'Überprüfen', 'choose config' => 'Konfiguration auswählen', @@ -2231,11 +2231,11 @@ 'type' => 'Typ', 'umount' => 'Abmelden', 'umount removable media before to unplug' => 'Wechselmedien vor dem Entfernen unbedingt abmelden', -'uncheck all' => 'Alle abwählen', 'unable to alter profiles while red is active' => 'Profile können nicht geändert werden, solange ROT aktiv ist.', 'unable to contact' => 'Kann nicht erreicht werden', 'unblock' => 'Entblocken', 'unblock all' => 'Alle entblocken', +'uncheck all' => 'Alle abwählen', 'unencrypted' => 'Nicht verschlüsselt', 'uninstall' => 'Deinstallieren', 'unix charset' => 'UNIX-Charset', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 476bde753..80c05520b 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -551,7 +551,7 @@ 'chain' => 'Chain', 'change passwords' => 'Change passwords', 'change share' => 'edit share options', -'check all' =>'Check all', +'check all' => 'Check all', 'check for net traffic update' => 'Check for Net-Traffic updates', 'check vpn lr' => 'Check', 'choose config' => 'Choose config', @@ -2270,11 +2270,11 @@ 'type' => 'Type', 'umount' => 'Umount', 'umount removable media before to unplug' => 'Umount removable media before unplugging the device', -'uncheck all' => 'Uncheck all', 'unable to alter profiles while red is active' => 'Unable to alter profiles while RED is active.', 'unable to contact' => 'Unable to contact', 'unblock' => 'Unblock', 'unblock all' => 'Unblock all', +'uncheck all' => 'Uncheck all', 'unencrypted' => 'Unencrypted', 'uninstall' => 'Uninstall', 'unix charset' => 'UNIX Charset', From f14de8277aad5e57267d843e63b111e575801ab9 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 18 Apr 2015 16:42:22 +0200 Subject: [PATCH 116/210] xtables-addon: Build all matches and targets --- config/rootfiles/common/xtables-addons | 26 ++++++++++++++++++ config/xtables-addons/mconfig | 38 +++++++++++++------------- 2 files changed, 45 insertions(+), 19 deletions(-) diff --git a/config/rootfiles/common/xtables-addons b/config/rootfiles/common/xtables-addons index 9053c280c..f6e85aeed 100644 --- a/config/rootfiles/common/xtables-addons +++ b/config/rootfiles/common/xtables-addons @@ -1,7 +1,33 @@ +lib/xtables/libxt_ACCOUNT.so +lib/xtables/libxt_CHAOS.so +lib/xtables/libxt_DELUDE.so +lib/xtables/libxt_DHCPMAC.so +lib/xtables/libxt_DNETMAP.so +lib/xtables/libxt_ECHO.so +lib/xtables/libxt_IPMARK.so +lib/xtables/libxt_LOGMARK.so +lib/xtables/libxt_TARPIT.so +lib/xtables/libxt_condition.so +lib/xtables/libxt_dhcpmac.so +lib/xtables/libxt_fuzzy.so lib/xtables/libxt_geoip.so +lib/xtables/libxt_iface.so +lib/xtables/libxt_ipp2p.so +lib/xtables/libxt_ipv4options.so +lib/xtables/libxt_length2.so +lib/xtables/libxt_lscan.so +lib/xtables/libxt_pknock.so +lib/xtables/libxt_psd.so +lib/xtables/libxt_quota2.so +#usr/lib/libxt_ACCOUNT_cl.la +#usr/lib/libxt_ACCOUNT_cl.so +usr/lib/libxt_ACCOUNT_cl.so.0 +usr/lib/libxt_ACCOUNT_cl.so.0.0.0 #usr/libexec/xtables-addons usr/libexec/xtables-addons/xt_geoip_build usr/libexec/xtables-addons/xt_geoip_dl +usr/sbin/iptaccount #usr/share/man/man1/xt_geoip_build.1 #usr/share/man/man1/xt_geoip_dl.1 +#usr/share/man/man8/iptaccount.8 #usr/share/man/man8/xtables-addons.8 diff --git a/config/xtables-addons/mconfig b/config/xtables-addons/mconfig index 92e47f0ad..933d717a6 100644 --- a/config/xtables-addons/mconfig +++ b/config/xtables-addons/mconfig @@ -1,24 +1,24 @@ # -*- Makefile -*- # -build_ACCOUNT=n -build_CHAOS=n -build_DELUDE=n -build_DHCPMAC=n -build_DNETMAP=n -build_ECHO=n -build_IPMARK=n -build_LOGMARK=n +build_ACCOUNT=m +build_CHAOS=m +build_DELUDE=m +build_DHCPMAC=m +build_DNETMAP=m +build_ECHO=m +build_IPMARK=m +build_LOGMARK=m build_SYSRQ=n -build_TARPIT=n -build_condition=n -build_fuzzy=n +build_TARPIT=m +build_condition=m +build_fuzzy=m build_geoip=m build_gradm=n -build_iface=n -build_ipp2p=n -build_ipv4options=n -build_length2=n -build_lscan=n -build_pknock=n -build_psd=n -build_quota2=n +build_iface=m +build_ipp2p=m +build_ipv4options=m +build_length2=m +build_lscan=m +build_pknock=m +build_psd=m +build_quota2=m From ab2d15486b4f874ebd832dfce84081031f42b7c5 Mon Sep 17 00:00:00 2001 From: Wolfgang Apolinarski Date: Sat, 18 Apr 2015 15:15:45 +0200 Subject: [PATCH 117/210] Added clientAuth to EKU of client certificate. Fixed the comment. --- html/cgi-bin/vpnmain.cgi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi index b0041ef42..4138f4dea 100644 --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -1673,7 +1673,7 @@ END (my $city = $cgiparams{'CERT_CITY'}) =~ s/^\s*$/\./; (my $state = $cgiparams{'CERT_STATE'}) =~ s/^\s*$/\./; - # Create the Host certificate request + # Create the Client certificate request &General::log("ipsec", "Creating a cert..."); if (open(STDIN, "-|")) { @@ -1700,7 +1700,7 @@ END exit (0); } - # Sign the host certificate request + # Sign the client certificate request &General::log("ipsec", "Signing the cert $cgiparams{'NAME'}..."); #No easy way for specifying the contain of subjectAltName without writing a config file... @@ -1709,6 +1709,7 @@ END basicConstraints=CA:FALSE nsComment="OpenSSL Generated Certificate" subjectKeyIdentifier=hash + extendedKeyUsage=clientAuth authorityKeyIdentifier=keyid,issuer:always END ; From fb245d5ec12977d91670dc04590758a4e173dfed Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 18 Apr 2015 23:36:20 +0200 Subject: [PATCH 118/210] core90: Add changed vpnmain.cgi --- config/rootfiles/core/90/filelists/files | 1 + 1 file changed, 1 insertion(+) diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files index 5f05eb549..63e7220ba 100644 --- a/config/rootfiles/core/90/filelists/files +++ b/config/rootfiles/core/90/filelists/files @@ -7,6 +7,7 @@ etc/rc.d/rcsysinit.d/S90network-trigger srv/web/ipfire/cgi-bin/firewall.cgi srv/web/ipfire/cgi-bin/fwhosts.cgi srv/web/ipfire/cgi-bin/geoip-block.cgi +srv/web/ipfire/cgi-bin/vpnmain.cgi usr/lib/firewall/firewall-lib.pl usr/lib/firewall/rules.pl usr/local/bin/xt_geoip_build From f51bc66149e561868041407d4e3e447d2c84ea7b Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 19 Apr 2015 01:15:02 +0200 Subject: [PATCH 119/210] Core 90: Add changed ovpnmain.cgi. --- config/rootfiles/core/90/filelists/files | 1 + 1 file changed, 1 insertion(+) diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files index 63e7220ba..c68a27ae0 100644 --- a/config/rootfiles/core/90/filelists/files +++ b/config/rootfiles/core/90/filelists/files @@ -7,6 +7,7 @@ etc/rc.d/rcsysinit.d/S90network-trigger srv/web/ipfire/cgi-bin/firewall.cgi srv/web/ipfire/cgi-bin/fwhosts.cgi srv/web/ipfire/cgi-bin/geoip-block.cgi +srv/web/ipfire/cgi-bin/ovpnmain.cgi srv/web/ipfire/cgi-bin/vpnmain.cgi usr/lib/firewall/firewall-lib.pl usr/lib/firewall/rules.pl From c98b743c09cac78a865ca8ef102dacf69a5004da Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 19 Apr 2015 01:04:14 +0200 Subject: [PATCH 120/210] firewall.cgi: Dynamically show/hide DNAT and SNAT configure elements. Fixes #10732. --- html/cgi-bin/firewall.cgi | 23 +++++++++++++++---- html/html/themes/darkdos/include/style.css | 4 ++++ .../themes/ipfire-legacy/include/style.css | 4 ++++ html/html/themes/ipfire/include/css/style.css | 4 ++++ html/html/themes/maniac/include/style.css | 4 ++++ 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/html/cgi-bin/firewall.cgi b/html/cgi-bin/firewall.cgi index 3e1b33618..c207ec748 100644 --- a/html/cgi-bin/firewall.cgi +++ b/html/cgi-bin/firewall.cgi @@ -157,6 +157,19 @@ print<
- +
+ - + END - my $res = $dbh->selectall_arrayref("SELECT SUM(BYTES),min(TIME_RUN),max(TIME_RUN),NAME from ACCT where TIME_RUN between ".$from." and ".$till." group by NAME;"); + my $res; + if (($mon)+1 == $mon1 && ($year)+1900 == $year1){ + $res = $dbh->selectall_arrayref("SELECT SUM(BYTES),min(TIME_RUN),max(TIME_RUN),NAME from ACCT where TIME_RUN between ".$from." and ".$till." group by NAME;"); + }else{ + $res = $dbh->selectall_arrayref("SELECT SUM(BYTES),min(strftime('%s',TIME_RUN)),max(strftime('%s',TIME_RUN)),NAME from ACCT_HIST where date(TIME_RUN) > date($from,'unixepoch') and date(TIME_RUN) < date($till,'unixepoch') group by NAME;"); + } my $sumbytes; my $type; my $lineval; @@ -2036,8 +2041,8 @@ END - - + + diff --git a/src/squid-accounting/acct-lib.pl b/src/squid-accounting/acct-lib.pl index 7969a5023..689123584 100644 --- a/src/squid-accounting/acct-lib.pl +++ b/src/squid-accounting/acct-lib.pl @@ -93,8 +93,8 @@ sub delbefore { } sub movedbdata { - $dbh->do("insert into ACCT_HIST select datetime(TIME_RUN,'unixepoch'),NAME,SUM(BYTES) from ACCT where date(TIME_RUN,'unixepoch') < date('now','-2 months') group by NAME,date(TIME_RUN,'unixepoch');"); - $dbh->do("DELETE FROM ACCT WHERE datetime(TIME_RUN,'unixepoch') < date('now','-2 months');"); + $dbh->do("insert into ACCT_HIST select datetime(TIME_RUN,'unixepoch'),NAME,SUM(BYTES) from ACCT where datetime(TIME_RUN,'unixepoch') < datetime('now','start of month') group by NAME,datetime(TIME_RUN,'unixepoch');"); + $dbh->do("DELETE FROM ACCT WHERE datetime(TIME_RUN,'unixepoch') < date('now','start of month');"); } sub gethourgraphdata { @@ -119,10 +119,10 @@ sub getmonthgraphdata { my $name=$_[3]; my $res; $dbh=connectdb; - if ($table eq 'ACCT'){ - $res = $dbh->selectall_arrayref( "SELECT strftime('%d.%m.%Y',xx.tag),(SELECT SUM(BYTES)/1024/1024 FROM ACCT WHERE date(TIME_RUN,'unixepoch') <= xx.tag and NAME = '".$name."') kum_bytes FROM (SELECT date(TIME_RUN,'unixepoch') tag,SUM(BYTES)/1024/1024 sbytes FROM ACCT WHERE NAME='".$name."' and TIME_RUN between ".$from." and ".$till." GROUP by date(TIME_RUN,'unixepoch')) xx;"); + if ($table eq 'ACCT_HIST'){ + $res = $dbh->selectall_arrayref( "SELECT strftime('%d.%m.%Y',TIME_RUN),(SELECT SUM(BYTES)/1024/1024 FROM ACCT_HIST WHERE TIME_RUN <= ah.TIME_RUN and TIME_RUN > date($from,'unixepoch') and NAME = '".$name."') kum_bytes FROM ACCT_HIST ah WHERE date(TIME_RUN) > date(".$from.",'unixepoch') AND date(TIME_RUN) < date(".$till.",'unixepoch') AND NAME = '".$name."' group by date(TIME_RUN);"); }else{ - $res = $dbh->selectall_arrayref( "SELECT TIME_RUN, (SELECT SUM(BYTES)/1024/1024 FROM ACCT_HIST WHERE TIME_RUN <= ah.TIME_RUN and NAME = '".$name."') kum_bytes FROM ACCT_HIST ah WHERE TIME_RUN BETWEEN date(".$from.",'unixepoch') AND date(".$till.",'unixepoch') AND NAME = '".$name."' group by TIME_RUN;"); + $res = $dbh->selectall_arrayref( "SELECT strftime('%d.%m.%Y',xx.tag),(SELECT SUM(BYTES)/1024/1024 FROM ACCT WHERE date(TIME_RUN,'unixepoch') <= xx.tag and TIME_RUN > ".$from." and NAME = '".$name."') kum_bytes FROM (SELECT NAME,date(TIME_RUN,'unixepoch') tag,SUM(BYTES)/1024/1024 sbytes FROM ACCT WHERE NAME='".$name."' and TIME_RUN between ".$from." and ".$till." GROUP by NAME,date(TIME_RUN,'unixepoch')) xx;"); } $dbh=closedb; return $res; @@ -337,12 +337,7 @@ sub getmonth{ my $monat=$_[0]-1 if($_[0]); my $tag=1; my $time1=timelocal(0,0,0,$tag,$monat,$jahr); - my $time2=0; - if (($monat+1) == 12){ - $time2=timelocal(0,0,0,$tag,0,$jahr+1); - }else{ - $time2=timelocal(0,0,0,$tag,$monat+1,$jahr); - } + my $time2=timelocal(0,0,0,$tag,($monat+1),$jahr); --$time2; return ($time1,$time2); } diff --git a/src/squid-accounting/acct.pl b/src/squid-accounting/acct.pl index 79fc7bae4..722268945 100755 --- a/src/squid-accounting/acct.pl +++ b/src/squid-accounting/acct.pl @@ -100,7 +100,7 @@ if (-f $proxyenabled && $proxylog eq $Lang::tr{'running'}){ open (FH,">/var/log/accounting.log"); close (FH); chmod 0755, "/var/log/accounting.log"; - #move all db entries older than 2 months to second table and cumulate them hourly + #move all db entries older than this month to second table and cumulate them daily &ACCT::movedbdata; &ACCT::logger($settings{'LOG'},"New Month. Old trafficvalues moved to ACCT_HIST Table\n"); if ($settings{'USEMAIL'} eq 'on'){ From db1078ff114c1cd6b8818848660ee72848874836 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 22 Apr 2015 13:06:52 +0200 Subject: [PATCH 133/210] index.cgi: Hide blue and green if not enabled Those were shown when a blue or orange interface was assigned which is not the same as enabled. --- config/rootfiles/core/90/filelists/files | 1 + html/cgi-bin/index.cgi | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files index 85d3de335..7635acfb0 100644 --- a/config/rootfiles/core/90/filelists/files +++ b/config/rootfiles/core/90/filelists/files @@ -8,6 +8,7 @@ etc/rc.d/rcsysinit.d/S90network-trigger srv/web/ipfire/cgi-bin/firewall.cgi srv/web/ipfire/cgi-bin/fwhosts.cgi srv/web/ipfire/cgi-bin/geoip-block.cgi +srv/web/ipfire/cgi-bin/index.cgi srv/web/ipfire/cgi-bin/ovpnmain.cgi srv/web/ipfire/cgi-bin/vpnmain.cgi srv/web/ipfire/html/themes/darkdos/include/style.css diff --git a/html/cgi-bin/index.cgi b/html/cgi-bin/index.cgi index 53adeacce..eafbdb137 100644 --- a/html/cgi-bin/index.cgi +++ b/html/cgi-bin/index.cgi @@ -301,7 +301,7 @@ END print ''; print ''; } -if ( $netsettings{'BLUE_DEV'} ) { +if (&Header::blue_used()) { my $sub=&General::iporsubtocidr($netsettings{'BLUE_NETMASK'}); print < @@ -318,7 +318,7 @@ END print ''; print ''; } -if ( $netsettings{'ORANGE_DEV'} ) { +if (&Header::orange_used()) { my $sub=&General::iporsubtocidr($netsettings{'ORANGE_NETMASK'}); print < From 92a6d92e826f056ae788da902dffb0513f1152df Mon Sep 17 00:00:00 2001 From: Alexander Marx Date: Wed, 22 Apr 2015 13:32:04 +0200 Subject: [PATCH 134/210] squid-accounting: fix mistakenly deleted lines from last commit --- src/squid-accounting/acct-lib.pl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/squid-accounting/acct-lib.pl b/src/squid-accounting/acct-lib.pl index 689123584..779ecf810 100644 --- a/src/squid-accounting/acct-lib.pl +++ b/src/squid-accounting/acct-lib.pl @@ -337,7 +337,12 @@ sub getmonth{ my $monat=$_[0]-1 if($_[0]); my $tag=1; my $time1=timelocal(0,0,0,$tag,$monat,$jahr); - my $time2=timelocal(0,0,0,$tag,($monat+1),$jahr); + my $time2=0; + if (($monat+1) == 12){ + $time2=timelocal(0,0,0,$tag,0,$jahr+1); + }else{ + $time2=timelocal(0,0,0,$tag,$monat+1,$jahr); + } --$time2; return ($time1,$time2); } From e8b3bb0edcf5b6768326b01620f318a56aaf4814 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 22 Apr 2015 14:08:41 +0200 Subject: [PATCH 135/210] vpnmain.cgi: Rewrite algorithm generation code --- html/cgi-bin/vpnmain.cgi | 135 ++++++++++++++++++++++----------------- 1 file changed, 76 insertions(+), 59 deletions(-) diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi index b25cb6ade..55566d7cf 100644 --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -310,67 +310,33 @@ sub writeipsecfiles { # Algorithms if ($lconfighash{$key}[18] && $lconfighash{$key}[19] && $lconfighash{$key}[20]) { - print CONF "\tike="; - my @encs = split('\|', $lconfighash{$key}[18]); - my @ints = split('\|', $lconfighash{$key}[19]); - my @groups = split('\|', $lconfighash{$key}[20]); - my $comma = 0; - foreach my $i (@encs) { - foreach my $j (@ints) { - foreach my $k (@groups) { - if ($comma != 0) { print CONF ","; } else { $comma = 1; } + my @encs = split('\|', $lconfighash{$key}[18]); + my @ints = split('\|', $lconfighash{$key}[19]); + my @groups = split('\|', $lconfighash{$key}[20]); - my @l = split("", $k); - if ($l[0] eq "e") { - shift @l; - print CONF "$i-$j-ecp".join("", @l); - } else { - print CONF "$i-$j-modp$k"; - } - } - } - } - if ($lconfighash{$key}[24] eq 'on') { #only proposed algorythms? - print CONF "!\n"; - } else { - print CONF "\n"; - } - } - if ($lconfighash{$key}[21] && $lconfighash{$key}[22]) { - print CONF "\tesp="; - my @encs = split('\|', $lconfighash{$key}[21]); - my @ints = split('\|', $lconfighash{$key}[22]); - my @groups = split('\|', $lconfighash{$key}[20]); - my $comma = 0; - foreach my $i (@encs) { - foreach my $j (@ints) { - my $modp = ""; - if ($pfs eq "on") { - foreach my $k (@groups) { - if ($comma != 0) { print CONF ","; } else { $comma = 1; } - if ($pfs eq "on") { - my @l = split("", $k); - if ($l[0] eq "e") { - $modp = ""; - } else { - $modp = "-modp$k"; - } - } else { - $modp = ""; - } - print CONF "$i-$j$modp"; - } - } else { - if ($comma != 0) { print CONF ","; } else { $comma = 1; } - print CONF "$i-$j"; - } + my @algos = &make_algos("ike", \@encs, \@ints, \@groups, 1); + print CONF "\tike=" . join(",", @algos); + + if ($lconfighash{$key}[24] eq 'on') { #only proposed algorythms? + print CONF "!\n"; + } else { + print CONF "\n"; + } + } + + if ($lconfighash{$key}[21] && $lconfighash{$key}[22]) { + my @encs = split('\|', $lconfighash{$key}[21]); + my @ints = split('\|', $lconfighash{$key}[22]); + my @groups = split('\|', $lconfighash{$key}[20]); + + my @algos = &make_algos("esp", \@encs, \@ints, \@groups, ($pfs eq "on")); + print CONF "\tesp=" . join(",", @algos); + + if ($lconfighash{$key}[24] eq 'on') { #only proposed algorythms? + print CONF "!\n"; + } else { + print CONF "\n"; } - } - if ($lconfighash{$key}[24] eq 'on') { #only proposed algorythms? - print CONF "!\n"; - } else { - print CONF "\n"; - } } # IKE V1 or V2 @@ -3025,3 +2991,54 @@ END &Header::closebox(); &Header::closebigbox(); &Header::closepage(); + +sub array_unique($) { + my $array = shift; + my @unique = (); + + my %seen = (); + foreach my $e (@$array) { + next if $seen{$e}++; + push(@unique, $e); + } + + return @unique; +} + +sub make_algos($$$$$) { + my ($mode, $encs, $ints, $grps, $pfs) = @_; + my @algos = (); + + foreach my $enc (@$encs) { + foreach my $int (@$ints) { + foreach my $grp (@$grps) { + my @algo = ($enc); + + my $is_aead = ($enc =~ m/[cg]cm/); + if (!$is_aead) { + push(@algo, $int); + } + + if ($mode eq "ike") { + if ($grp =~ m/^e(\d+)/) { + push(@algo, "ecp$1"); + } else { + push(@algo, "modp$grp"); + } + } + + if ($mode eq "esp" && $pfs) { + if ($grp =~ m/^e\d+/) { + push(@algo, $grp); + } else { + push(@algo, "modp$grp"); + } + } + + push(@algos, join("-", @algo)); + } + } + } + + return &array_unique(\@algos); +} From 78039c1585df96ae932d3b9c50168c052186ec16 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 22 Apr 2015 14:44:16 +0200 Subject: [PATCH 136/210] vpnmain.cgi: Use integrity functions as PRF for AEAD --- html/cgi-bin/vpnmain.cgi | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi index 55566d7cf..5c6fd72d7 100644 --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -3014,20 +3014,22 @@ sub make_algos($$$$$) { foreach my $grp (@$grps) { my @algo = ($enc); - my $is_aead = ($enc =~ m/[cg]cm/); - if (!$is_aead) { - push(@algo, $int); - } - if ($mode eq "ike") { + push(@algo, $int); + if ($grp =~ m/^e(\d+)/) { push(@algo, "ecp$1"); } else { push(@algo, "modp$grp"); } - } - if ($mode eq "esp" && $pfs) { + } elsif ($mode eq "esp" && $pfs) { + my $is_aead = ($enc =~ m/[cg]cm/); + + if (!$is_aead) { + push(@algo, $int); + } + if ($grp =~ m/^e\d+/) { push(@algo, $grp); } else { From a4d24f90525ff980c36decfda4755777f3974004 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 22 Apr 2015 14:45:10 +0200 Subject: [PATCH 137/210] vpnmain.cgi: Order ciphers by strength strongSwan uses them in the defined order. Hence it makes much more sense to present them to the user as well in that order. --- html/cgi-bin/vpnmain.cgi | 56 ++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi index 5c6fd72d7..0d23d0d09 100644 --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -1849,11 +1849,11 @@ END $cgiparams{'REMOTE_ID'} = ''; #use default advanced value - $cgiparams{'IKE_ENCRYPTION'} = 'aes256|aes192|aes128|aes256gcm128|aes192gcm128|aes128gcm128|aes256gcm96|aes192gcm96|aes128gcm96|aes256gcm64|aes192gcm64|aes128gcm64'; #[18]; + $cgiparams{'IKE_ENCRYPTION'} = 'aes256gcm128|aes256gcm96|aes256gcm64|aes256|aes192gcm128|aes192gcm96|aes192gcm64|aes192|aes128gcm128|aes128gcm96|aes128gcm64|aes128'; #[18]; $cgiparams{'IKE_INTEGRITY'} = 'sha2_512|sha2_256|sha'; #[19]; $cgiparams{'IKE_GROUPTYPE'} = '4096|3072|2048|1536|1024'; #[20]; $cgiparams{'IKE_LIFETIME'} = '3'; #[16]; - $cgiparams{'ESP_ENCRYPTION'} = 'aes256|aes192|aes128|aes256gcm128|aes192gcm128|aes128gcm128|aes256gcm96|aes192gcm96|aes128gcm96|aes256gcm64|aes192gcm64|aes128gcm64'; #[21]; + $cgiparams{'ESP_ENCRYPTION'} = 'aes256gcm128|aes256gcm96|aes256gcm64|aes256|aes192gcm128|aes192gcm96|aes192gcm64|aes192|aes128gcm128|aes128gcm96|aes128gcm64|aes128'; #[21]; $cgiparams{'ESP_INTEGRITY'} = 'sha2_512|sha2_256|sha1'; #[22]; $cgiparams{'ESP_GROUPTYPE'} = ''; #[23]; $cgiparams{'ESP_KEYLIFE'} = '1'; #[17]; @@ -2387,42 +2387,42 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || @@ -2434,9 +2434,9 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || + - @@ -2464,14 +2464,14 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || "; + print ""; print ""; print "\n"; } @@ -81,7 +86,7 @@ foreach $flag (@flaglistfiles) $col="style='background-color:${Header::table1colour};'"; } print ""; - print ""; + print ""; print ""; print ""; print ""; diff --git a/html/cgi-bin/logs.cgi/firewalllog.dat b/html/cgi-bin/logs.cgi/firewalllog.dat index 752562666..5a584d60d 100644 --- a/html/cgi-bin/logs.cgi/firewalllog.dat +++ b/html/cgi-bin/logs.cgi/firewalllog.dat @@ -21,6 +21,7 @@ use Getopt::Std; #use CGI::Carp 'fatalsToBrowser'; require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/geoip-functions.pl"; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; @@ -372,10 +373,15 @@ foreach $_ (@log) END ; - if ( $fcode ne "" ){ - print "";} - else { - print "";} + # Get flag icon for of the country. + my $flag_icon = &GeoIP::get_flag_icon($fcode); + + if ( $flag_icon) { + print ""; + } else { + print ""; + } + print <$macaddr diff --git a/html/cgi-bin/logs.cgi/firewalllogcountry.dat b/html/cgi-bin/logs.cgi/firewalllogcountry.dat index 3a774f922..29c084218 100644 --- a/html/cgi-bin/logs.cgi/firewalllogcountry.dat +++ b/html/cgi-bin/logs.cgi/firewalllogcountry.dat @@ -19,6 +19,7 @@ use Getopt::Std; #use CGI::Carp 'fatalsToBrowser'; require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/geoip-functions.pl"; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; @@ -460,11 +461,15 @@ for($s=0;$s<$lines;$s++) print ""; } else { - if($key[$s] ne 'unknown' ) { - my $fcode = lc($key[$s]); - print "";} - else { - print ""; + my $fcode = lc($key[$s]); + + # Get flag icon for of the country. + my $flag_icon = &GeoIP::get_flag_icon($fcode); + + if($flag_icon) { + print ""; + } else { + print ""; } } print ""; diff --git a/html/cgi-bin/logs.cgi/firewalllogip.dat b/html/cgi-bin/logs.cgi/firewalllogip.dat index 07bcc77f8..7d82d20e7 100644 --- a/html/cgi-bin/logs.cgi/firewalllogip.dat +++ b/html/cgi-bin/logs.cgi/firewalllogip.dat @@ -19,6 +19,7 @@ use Getopt::Std; #use CGI::Carp 'fatalsToBrowser'; require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/geoip-functions.pl"; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; @@ -441,13 +442,19 @@ for($s=0;$s<$lines;$s++) $color++; print ""; print ""; - if ( $fcode ne "" ){ - print "";} - else { - print "";} - print ""; - print ""; - print ""; + + # Get flag icon for of the country. + my $flag_icon = &GeoIP::get_flag_icon($ccode); + + if ( $flag_icon ) { + print ""; + } else { + print ""; + } + + print ""; + print ""; + print ""; } if($cgiparams{'otherspie'} == 2 ){} From 0ee35ce0cac70ac4da8817f2ed3c84d84ddcfc44 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 2 May 2015 14:29:46 +0200 Subject: [PATCH 180/210] core90: Also regenerate IPsec configuration during the update --- config/rootfiles/core/90/update.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/rootfiles/core/90/update.sh b/config/rootfiles/core/90/update.sh index 2a69278f9..68798cb84 100644 --- a/config/rootfiles/core/90/update.sh +++ b/config/rootfiles/core/90/update.sh @@ -195,6 +195,9 @@ fcrontab -z &>/dev/null # Generate ddns configuration file sudo -u nobody /srv/web/ipfire/cgi-bin/ddns.cgi +# Regenerate IPsec configuration +sudo -u nobody /srv/web/ipfire/cgi-bin/vpnmain.cgi + # Update Language cache perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" From 382ffe320c05b4dc99a77f4e5002265d0e0c70c6 Mon Sep 17 00:00:00 2001 From: Alexander Marx Date: Sun, 3 May 2015 05:12:13 +0200 Subject: [PATCH 181/210] Core90: make N2N Graphs higher to them correctly Graphs in core 89 where not heigh enough so that they where zoomed which looked bad --- html/cgi-bin/netovpnsrv.cgi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/cgi-bin/netovpnsrv.cgi b/html/cgi-bin/netovpnsrv.cgi index ddf41771a..15a95b6b9 100755 --- a/html/cgi-bin/netovpnsrv.cgi +++ b/html/cgi-bin/netovpnsrv.cgi @@ -59,7 +59,7 @@ if ( $querry[0] ne ""){ if (@vpns){ foreach (@vpns) { &Header::openbox('100%', 'center', "$_ $Lang::tr{'graph'}"); - &Graphs::makegraphbox("netovpnsrv.cgi",$_, "day"); + &Graphs::makegraphbox("netovpnsrv.cgi",$_, "day",320); &Header::closebox(); } }else{ From 57e86b559393116238e67dd3a7593d0ffcff6a1e Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 3 May 2015 12:53:28 +0200 Subject: [PATCH 182/210] core90: Add updated netovpnsrv.cgi to update --- config/rootfiles/core/90/filelists/files | 1 + 1 file changed, 1 insertion(+) diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files index 35f079823..d4dcfae61 100644 --- a/config/rootfiles/core/90/filelists/files +++ b/config/rootfiles/core/90/filelists/files @@ -11,6 +11,7 @@ srv/web/ipfire/cgi-bin/firewall.cgi srv/web/ipfire/cgi-bin/fwhosts.cgi srv/web/ipfire/cgi-bin/geoip-block.cgi srv/web/ipfire/cgi-bin/index.cgi +srv/web/ipfire/cgi-bin/netovpnsrv.cgi srv/web/ipfire/cgi-bin/ovpnmain.cgi srv/web/ipfire/cgi-bin/vpnmain.cgi srv/web/ipfire/html/themes/darkdos/include/style.css From a8e3b15d77512134c29d86ec0489d25f8a801fec Mon Sep 17 00:00:00 2001 From: Alexander Marx Date: Sun, 3 May 2015 05:24:39 +0200 Subject: [PATCH 183/210] squid-accounting: fix monthly dbmove funktion to put values in history table --- src/squid-accounting/acct-lib.pl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/squid-accounting/acct-lib.pl b/src/squid-accounting/acct-lib.pl index 779ecf810..58b154a34 100644 --- a/src/squid-accounting/acct-lib.pl +++ b/src/squid-accounting/acct-lib.pl @@ -93,8 +93,10 @@ sub delbefore { } sub movedbdata { + &connectdb; $dbh->do("insert into ACCT_HIST select datetime(TIME_RUN,'unixepoch'),NAME,SUM(BYTES) from ACCT where datetime(TIME_RUN,'unixepoch') < datetime('now','start of month') group by NAME,datetime(TIME_RUN,'unixepoch');"); $dbh->do("DELETE FROM ACCT WHERE datetime(TIME_RUN,'unixepoch') < date('now','start of month');"); + &closedb; } sub gethourgraphdata { From 9666a34d0e20328bc43ba90904382176b7844796 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sun, 3 May 2015 13:02:30 +0200 Subject: [PATCH 184/210] toolchain: set version to 9. --- make.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make.sh b/make.sh index 26f9d4217..cd78bf705 100755 --- a/make.sh +++ b/make.sh @@ -36,7 +36,7 @@ BUILD_IMAGES=1 # Flash and Xen Downloader KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'` GIT_TAG=$(git tag | tail -1) # Git Tag GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit -TOOLCHAINVER=8 +TOOLCHAINVER=9 # New architecture variables BUILD_ARCH="$(uname -m)" From 97a5baac82620e31e3446a276e3eb94b43418ff8 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 3 May 2015 21:51:04 +0200 Subject: [PATCH 185/210] Update flag icon-set. Move the flag icon-set into an own lfs file and replace the current used one by a more recent version. --- config/rootfiles/common/apache2 | 182 ++++++++++++++++++++- config/rootfiles/common/flag-icons | 243 +++++++++++++++++++++++++++++ lfs/flag-icons | 90 +++++++++++ make.sh | 1 + 4 files changed, 515 insertions(+), 1 deletion(-) create mode 100644 config/rootfiles/common/flag-icons create mode 100644 lfs/flag-icons diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index 8033a874a..96c2871c5 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -1445,5 +1445,185 @@ srv/web/ipfire/cgi-bin/wakeonlan.cgi srv/web/ipfire/cgi-bin/webaccess.cgi srv/web/ipfire/cgi-bin/wireless.cgi srv/web/ipfire/cgi-bin/wirelessclient.cgi -srv/web/ipfire/html +#srv/web/ipfire/html +srv/web/ipfire/html/accounting +srv/web/ipfire/html/blob.gif +srv/web/ipfire/html/clwarn.cgi +srv/web/ipfire/html/dial.cgi +srv/web/ipfire/html/favicon.ico +srv/web/ipfire/html/graphs +#srv/web/ipfire/html/images +srv/web/ipfire/html/images/addblue.gif +srv/web/ipfire/html/images/add.gif +srv/web/ipfire/html/images/addgreen.gif +srv/web/ipfire/html/images/address-book-new.png +srv/web/ipfire/html/images/application-certificate.png +srv/web/ipfire/html/images/applications-accessories.png +srv/web/ipfire/html/images/applications-development.png +srv/web/ipfire/html/images/applications-games.png +srv/web/ipfire/html/images/applications-graphics.png +srv/web/ipfire/html/images/applications-internet.png +srv/web/ipfire/html/images/applications-multimedia.png +srv/web/ipfire/html/images/applications-office.png +srv/web/ipfire/html/images/applications-other.png +srv/web/ipfire/html/images/applications-system.png +srv/web/ipfire/html/images/application-x-executable.png +srv/web/ipfire/html/images/appointment-new.png +srv/web/ipfire/html/images/audio-volume-high.png +srv/web/ipfire/html/images/audio-volume-high-red.png +srv/web/ipfire/html/images/audio-volume-low.png +srv/web/ipfire/html/images/audio-volume-low-red.png +srv/web/ipfire/html/images/audio-x-generic.png +srv/web/ipfire/html/images/audio-x-generic-red.png +srv/web/ipfire/html/images/background.gif +srv/web/ipfire/html/images/bookmark-new.png +srv/web/ipfire/html/images/clock.gif +srv/web/ipfire/html/images/computer.png +srv/web/ipfire/html/images/delete.gif +srv/web/ipfire/html/images/dialog-error.png +srv/web/ipfire/html/images/dialog-information.png +srv/web/ipfire/html/images/dialog-warning.png +srv/web/ipfire/html/images/dns_link.png +srv/web/ipfire/html/images/document-new.png +srv/web/ipfire/html/images/document-open.png +srv/web/ipfire/html/images/document-print.png +srv/web/ipfire/html/images/document-print-preview.png +srv/web/ipfire/html/images/document-properties.png +srv/web/ipfire/html/images/document-save-as.png +srv/web/ipfire/html/images/document-save.png +srv/web/ipfire/html/images/down.gif +srv/web/ipfire/html/images/drive-harddisk.png +srv/web/ipfire/html/images/drive-optical.png +srv/web/ipfire/html/images/drive-removable-media.png +srv/web/ipfire/html/images/edit-find.png +srv/web/ipfire/html/images/edit.gif +srv/web/ipfire/html/images/edit-redo.png +#srv/web/ipfire/html/images/flags +srv/web/ipfire/html/images/floppy.gif +srv/web/ipfire/html/images/folder-drag-accept.png +srv/web/ipfire/html/images/folder-new.png +srv/web/ipfire/html/images/folder-open.png +srv/web/ipfire/html/images/folder.png +srv/web/ipfire/html/images/folder-remote.png +srv/web/ipfire/html/images/folder-saved-search.png +srv/web/ipfire/html/images/folder-visiting.png +srv/web/ipfire/html/images/format-indent-less.png +srv/web/ipfire/html/images/format-indent-more.png +srv/web/ipfire/html/images/format-justify-center.png +srv/web/ipfire/html/images/format-justify-fill.png +srv/web/ipfire/html/images/format-justify-left.png +srv/web/ipfire/html/images/format-justify-right.png +srv/web/ipfire/html/images/forward.gif +srv/web/ipfire/html/images/go-bottom.png +srv/web/ipfire/html/images/go-down.png +srv/web/ipfire/html/images/go-first.png +srv/web/ipfire/html/images/go-home.png +srv/web/ipfire/html/images/go-jump.png +srv/web/ipfire/html/images/go-last.png +srv/web/ipfire/html/images/go-next.png +srv/web/ipfire/html/images/go-previous.png +srv/web/ipfire/html/images/go-top.png +srv/web/ipfire/html/images/go-up.png +srv/web/ipfire/html/images/help-browser.png +srv/web/ipfire/html/images/help.gif +srv/web/ipfire/html/images/image-loading.png +srv/web/ipfire/html/images/image-missing.png +srv/web/ipfire/html/images/image-x-generic.png +srv/web/ipfire/html/images/indicator.gif +srv/web/ipfire/html/images/info.gif +srv/web/ipfire/html/images/input-gaming.png +srv/web/ipfire/html/images/input-keyboard.png +srv/web/ipfire/html/images/input-mouse.png +srv/web/ipfire/html/images/internet-group-chat.png +srv/web/ipfire/html/images/internet-mail.png +srv/web/ipfire/html/images/internet-news-reader.png +srv/web/ipfire/html/images/internet-web-browser.png +srv/web/ipfire/html/images/IPFire.png +srv/web/ipfire/html/images/list-add.png +srv/web/ipfire/html/images/list-remove.png +srv/web/ipfire/html/images/mail-attachment.png +srv/web/ipfire/html/images/mail-forward.png +srv/web/ipfire/html/images/mail-mark-junk.png +srv/web/ipfire/html/images/mail-mark-not-junk.png +srv/web/ipfire/html/images/mail-message-new.png +srv/web/ipfire/html/images/mail-reply-all.png +srv/web/ipfire/html/images/mail-reply-sender.png +srv/web/ipfire/html/images/mail-send-receive.png +srv/web/ipfire/html/images/media-flash.png +srv/web/ipfire/html/images/media-floppy.png +srv/web/ipfire/html/images/media-optical.png +srv/web/ipfire/html/images/media-playback-start-all.png +srv/web/ipfire/html/images/media-playback-start.png +srv/web/ipfire/html/images/media-playback-stop.png +srv/web/ipfire/html/images/media-repeat.png +srv/web/ipfire/html/images/media-resume.png +srv/web/ipfire/html/images/media-shuffle.png +srv/web/ipfire/html/images/media-skip-backward.png +srv/web/ipfire/html/images/media-skip-forward.png +srv/web/ipfire/html/images/mpfire +srv/web/ipfire/html/images/network-error.png +srv/web/ipfire/html/images/network-idle.png +srv/web/ipfire/html/images/network-offline.png +srv/web/ipfire/html/images/network.png +srv/web/ipfire/html/images/network-receive.png +srv/web/ipfire/html/images/network-server.png +srv/web/ipfire/html/images/network-transmit.png +srv/web/ipfire/html/images/network-transmit-receive.png +srv/web/ipfire/html/images/network-wired.png +srv/web/ipfire/html/images/network-wireless-encrypted.png +srv/web/ipfire/html/images/network-wireless.png +srv/web/ipfire/html/images/network-workgroup.png +srv/web/ipfire/html/images/null.gif +srv/web/ipfire/html/images/off.gif +srv/web/ipfire/html/images/on.gif +srv/web/ipfire/html/images/openvpn.gif +srv/web/ipfire/html/images/openvpn.png +srv/web/ipfire/html/images/package-x-generic.png +srv/web/ipfire/html/images/printer-error.png +srv/web/ipfire/html/images/printer.png +srv/web/ipfire/html/images/process-stop.png +srv/web/ipfire/html/images/process-working.png +srv/web/ipfire/html/images/reload.gif +srv/web/ipfire/html/images/start-here.png +srv/web/ipfire/html/images/stock_down-16.png +srv/web/ipfire/html/images/stock_ok.png +srv/web/ipfire/html/images/stock_stop.png +srv/web/ipfire/html/images/stock_up-16.png +srv/web/ipfire/html/images/system-file-manager.png +srv/web/ipfire/html/images/system-installer.png +srv/web/ipfire/html/images/system-lock-screen.png +srv/web/ipfire/html/images/system-log-out.png +srv/web/ipfire/html/images/system-search.png +srv/web/ipfire/html/images/system-shutdown.png +srv/web/ipfire/html/images/system-software-update.png +srv/web/ipfire/html/images/system-users.png +srv/web/ipfire/html/images/table-header.gif +srv/web/ipfire/html/images/tab-new.png +srv/web/ipfire/html/images/text-html.png +srv/web/ipfire/html/images/text-x-generic.png +srv/web/ipfire/html/images/text-x-generic-template.png +srv/web/ipfire/html/images/text-x-script.png +srv/web/ipfire/html/images/tux.png +srv/web/ipfire/html/images/updbooster +srv/web/ipfire/html/images/up.gif +srv/web/ipfire/html/images/urlfilter +srv/web/ipfire/html/images/user-home.png +srv/web/ipfire/html/images/user-multiple.png +srv/web/ipfire/html/images/user-option-add.png +srv/web/ipfire/html/images/user-option-remove.png +srv/web/ipfire/html/images/user-trash-full.png +srv/web/ipfire/html/images/user-trash.png +srv/web/ipfire/html/images/utilities-system-monitor.png +srv/web/ipfire/html/images/utilities-terminal.png +srv/web/ipfire/html/images/view-fullscreen.png +srv/web/ipfire/html/images/view-refresh.png +srv/web/ipfire/html/images/wakeup.gif +srv/web/ipfire/html/images/window-new.png +srv/web/ipfire/html/include +srv/web/ipfire/html/index.cgi +srv/web/ipfire/html/proxy.pac +srv/web/ipfire/html/redirect.cgi +srv/web/ipfire/html/redirect-templates +srv/web/ipfire/html/themes +srv/web/ipfire/html/wpad.dat var/updatecache diff --git a/config/rootfiles/common/flag-icons b/config/rootfiles/common/flag-icons new file mode 100644 index 000000000..eee2c0ce8 --- /dev/null +++ b/config/rootfiles/common/flag-icons @@ -0,0 +1,243 @@ +srv/web/ipfire/html/images/flags +#srv/web/ipfire/html/images/flags/AD.png +#srv/web/ipfire/html/images/flags/AE.png +#srv/web/ipfire/html/images/flags/AF.png +#srv/web/ipfire/html/images/flags/AG.png +#srv/web/ipfire/html/images/flags/AI.png +#srv/web/ipfire/html/images/flags/AL.png +#srv/web/ipfire/html/images/flags/AM.png +#srv/web/ipfire/html/images/flags/AN.png +#srv/web/ipfire/html/images/flags/AO.png +#srv/web/ipfire/html/images/flags/AQ.png +#srv/web/ipfire/html/images/flags/AR.png +#srv/web/ipfire/html/images/flags/AS.png +#srv/web/ipfire/html/images/flags/AT.png +#srv/web/ipfire/html/images/flags/AU.png +#srv/web/ipfire/html/images/flags/AW.png +#srv/web/ipfire/html/images/flags/AX.png +#srv/web/ipfire/html/images/flags/AZ.png +#srv/web/ipfire/html/images/flags/BA.png +#srv/web/ipfire/html/images/flags/BB.png +#srv/web/ipfire/html/images/flags/BD.png +#srv/web/ipfire/html/images/flags/BE.png +#srv/web/ipfire/html/images/flags/BF.png +#srv/web/ipfire/html/images/flags/BG.png +#srv/web/ipfire/html/images/flags/BH.png +#srv/web/ipfire/html/images/flags/BI.png +#srv/web/ipfire/html/images/flags/BJ.png +#srv/web/ipfire/html/images/flags/BL.png +#srv/web/ipfire/html/images/flags/BM.png +#srv/web/ipfire/html/images/flags/BN.png +#srv/web/ipfire/html/images/flags/BO.png +#srv/web/ipfire/html/images/flags/BR.png +#srv/web/ipfire/html/images/flags/BS.png +#srv/web/ipfire/html/images/flags/BT.png +#srv/web/ipfire/html/images/flags/BW.png +#srv/web/ipfire/html/images/flags/BY.png +#srv/web/ipfire/html/images/flags/BZ.png +#srv/web/ipfire/html/images/flags/CA.png +#srv/web/ipfire/html/images/flags/CC.png +#srv/web/ipfire/html/images/flags/CD.png +#srv/web/ipfire/html/images/flags/CF.png +#srv/web/ipfire/html/images/flags/CG.png +#srv/web/ipfire/html/images/flags/CH.png +#srv/web/ipfire/html/images/flags/CI.png +#srv/web/ipfire/html/images/flags/CK.png +#srv/web/ipfire/html/images/flags/CL.png +#srv/web/ipfire/html/images/flags/CM.png +#srv/web/ipfire/html/images/flags/CN.png +#srv/web/ipfire/html/images/flags/CO.png +#srv/web/ipfire/html/images/flags/CR.png +#srv/web/ipfire/html/images/flags/CU.png +#srv/web/ipfire/html/images/flags/CV.png +#srv/web/ipfire/html/images/flags/CW.png +#srv/web/ipfire/html/images/flags/CX.png +#srv/web/ipfire/html/images/flags/CY.png +#srv/web/ipfire/html/images/flags/CZ.png +#srv/web/ipfire/html/images/flags/DE.png +#srv/web/ipfire/html/images/flags/DJ.png +#srv/web/ipfire/html/images/flags/DK.png +#srv/web/ipfire/html/images/flags/DM.png +#srv/web/ipfire/html/images/flags/DO.png +#srv/web/ipfire/html/images/flags/DZ.png +#srv/web/ipfire/html/images/flags/EC.png +#srv/web/ipfire/html/images/flags/EE.png +#srv/web/ipfire/html/images/flags/EG.png +#srv/web/ipfire/html/images/flags/EH.png +#srv/web/ipfire/html/images/flags/ER.png +#srv/web/ipfire/html/images/flags/ES.png +#srv/web/ipfire/html/images/flags/ET.png +#srv/web/ipfire/html/images/flags/EU.png +#srv/web/ipfire/html/images/flags/FI.png +#srv/web/ipfire/html/images/flags/FJ.png +#srv/web/ipfire/html/images/flags/FK.png +#srv/web/ipfire/html/images/flags/FM.png +#srv/web/ipfire/html/images/flags/FO.png +#srv/web/ipfire/html/images/flags/FR.png +#srv/web/ipfire/html/images/flags/GA.png +#srv/web/ipfire/html/images/flags/GB.png +#srv/web/ipfire/html/images/flags/GD.png +#srv/web/ipfire/html/images/flags/GE.png +#srv/web/ipfire/html/images/flags/GG.png +#srv/web/ipfire/html/images/flags/GH.png +#srv/web/ipfire/html/images/flags/GI.png +#srv/web/ipfire/html/images/flags/GL.png +#srv/web/ipfire/html/images/flags/GM.png +#srv/web/ipfire/html/images/flags/GN.png +#srv/web/ipfire/html/images/flags/GQ.png +#srv/web/ipfire/html/images/flags/GR.png +#srv/web/ipfire/html/images/flags/GS.png +#srv/web/ipfire/html/images/flags/GT.png +#srv/web/ipfire/html/images/flags/GU.png +#srv/web/ipfire/html/images/flags/GW.png +#srv/web/ipfire/html/images/flags/GY.png +#srv/web/ipfire/html/images/flags/HK.png +#srv/web/ipfire/html/images/flags/HN.png +#srv/web/ipfire/html/images/flags/HR.png +#srv/web/ipfire/html/images/flags/HT.png +#srv/web/ipfire/html/images/flags/HU.png +#srv/web/ipfire/html/images/flags/IC.png +#srv/web/ipfire/html/images/flags/ID.png +#srv/web/ipfire/html/images/flags/IE.png +#srv/web/ipfire/html/images/flags/IL.png +#srv/web/ipfire/html/images/flags/IM.png +#srv/web/ipfire/html/images/flags/IN.png +#srv/web/ipfire/html/images/flags/IQ.png +#srv/web/ipfire/html/images/flags/IR.png +#srv/web/ipfire/html/images/flags/IS.png +#srv/web/ipfire/html/images/flags/IT.png +#srv/web/ipfire/html/images/flags/JE.png +#srv/web/ipfire/html/images/flags/JM.png +#srv/web/ipfire/html/images/flags/JO.png +#srv/web/ipfire/html/images/flags/JP.png +#srv/web/ipfire/html/images/flags/KE.png +#srv/web/ipfire/html/images/flags/KG.png +#srv/web/ipfire/html/images/flags/KH.png +#srv/web/ipfire/html/images/flags/KI.png +#srv/web/ipfire/html/images/flags/KM.png +#srv/web/ipfire/html/images/flags/KN.png +#srv/web/ipfire/html/images/flags/KP.png +#srv/web/ipfire/html/images/flags/KR.png +#srv/web/ipfire/html/images/flags/KW.png +#srv/web/ipfire/html/images/flags/KY.png +#srv/web/ipfire/html/images/flags/KZ.png +#srv/web/ipfire/html/images/flags/LA.png +#srv/web/ipfire/html/images/flags/LB.png +#srv/web/ipfire/html/images/flags/LC.png +#srv/web/ipfire/html/images/flags/LI.png +#srv/web/ipfire/html/images/flags/LK.png +#srv/web/ipfire/html/images/flags/LR.png +#srv/web/ipfire/html/images/flags/LS.png +#srv/web/ipfire/html/images/flags/LT.png +#srv/web/ipfire/html/images/flags/LU.png +#srv/web/ipfire/html/images/flags/LV.png +#srv/web/ipfire/html/images/flags/LY.png +#srv/web/ipfire/html/images/flags/MA.png +#srv/web/ipfire/html/images/flags/MC.png +#srv/web/ipfire/html/images/flags/MD.png +#srv/web/ipfire/html/images/flags/ME.png +#srv/web/ipfire/html/images/flags/MF.png +#srv/web/ipfire/html/images/flags/MG.png +#srv/web/ipfire/html/images/flags/MH.png +#srv/web/ipfire/html/images/flags/MK.png +#srv/web/ipfire/html/images/flags/ML.png +#srv/web/ipfire/html/images/flags/MM.png +#srv/web/ipfire/html/images/flags/MN.png +#srv/web/ipfire/html/images/flags/MO.png +#srv/web/ipfire/html/images/flags/MP.png +#srv/web/ipfire/html/images/flags/MQ.png +#srv/web/ipfire/html/images/flags/MR.png +#srv/web/ipfire/html/images/flags/MS.png +#srv/web/ipfire/html/images/flags/MT.png +#srv/web/ipfire/html/images/flags/MU.png +#srv/web/ipfire/html/images/flags/MV.png +#srv/web/ipfire/html/images/flags/MW.png +#srv/web/ipfire/html/images/flags/MX.png +#srv/web/ipfire/html/images/flags/MY.png +#srv/web/ipfire/html/images/flags/MZ.png +#srv/web/ipfire/html/images/flags/NA.png +#srv/web/ipfire/html/images/flags/NC.png +#srv/web/ipfire/html/images/flags/NE.png +#srv/web/ipfire/html/images/flags/NF.png +#srv/web/ipfire/html/images/flags/NG.png +#srv/web/ipfire/html/images/flags/NI.png +#srv/web/ipfire/html/images/flags/NL.png +#srv/web/ipfire/html/images/flags/NO.png +#srv/web/ipfire/html/images/flags/NP.png +#srv/web/ipfire/html/images/flags/NR.png +#srv/web/ipfire/html/images/flags/NU.png +#srv/web/ipfire/html/images/flags/NZ.png +#srv/web/ipfire/html/images/flags/OM.png +#srv/web/ipfire/html/images/flags/PA.png +#srv/web/ipfire/html/images/flags/PE.png +#srv/web/ipfire/html/images/flags/PF.png +#srv/web/ipfire/html/images/flags/PG.png +#srv/web/ipfire/html/images/flags/PH.png +#srv/web/ipfire/html/images/flags/PK.png +#srv/web/ipfire/html/images/flags/PL.png +#srv/web/ipfire/html/images/flags/PN.png +#srv/web/ipfire/html/images/flags/PR.png +#srv/web/ipfire/html/images/flags/PS.png +#srv/web/ipfire/html/images/flags/PT.png +#srv/web/ipfire/html/images/flags/PW.png +#srv/web/ipfire/html/images/flags/PY.png +#srv/web/ipfire/html/images/flags/QA.png +#srv/web/ipfire/html/images/flags/RO.png +#srv/web/ipfire/html/images/flags/RS.png +#srv/web/ipfire/html/images/flags/RU.png +#srv/web/ipfire/html/images/flags/RW.png +#srv/web/ipfire/html/images/flags/SA.png +#srv/web/ipfire/html/images/flags/SB.png +#srv/web/ipfire/html/images/flags/SC.png +#srv/web/ipfire/html/images/flags/SD.png +#srv/web/ipfire/html/images/flags/SE.png +#srv/web/ipfire/html/images/flags/SG.png +#srv/web/ipfire/html/images/flags/SH.png +#srv/web/ipfire/html/images/flags/SI.png +#srv/web/ipfire/html/images/flags/SK.png +#srv/web/ipfire/html/images/flags/SL.png +#srv/web/ipfire/html/images/flags/SM.png +#srv/web/ipfire/html/images/flags/SN.png +#srv/web/ipfire/html/images/flags/SO.png +#srv/web/ipfire/html/images/flags/SR.png +#srv/web/ipfire/html/images/flags/SS.png +#srv/web/ipfire/html/images/flags/ST.png +#srv/web/ipfire/html/images/flags/SV.png +#srv/web/ipfire/html/images/flags/SY.png +#srv/web/ipfire/html/images/flags/SZ.png +#srv/web/ipfire/html/images/flags/TC.png +#srv/web/ipfire/html/images/flags/TD.png +#srv/web/ipfire/html/images/flags/TF.png +#srv/web/ipfire/html/images/flags/TG.png +#srv/web/ipfire/html/images/flags/TH.png +#srv/web/ipfire/html/images/flags/TJ.png +#srv/web/ipfire/html/images/flags/TK.png +#srv/web/ipfire/html/images/flags/TL.png +#srv/web/ipfire/html/images/flags/TM.png +#srv/web/ipfire/html/images/flags/TN.png +#srv/web/ipfire/html/images/flags/TO.png +#srv/web/ipfire/html/images/flags/TR.png +#srv/web/ipfire/html/images/flags/TT.png +#srv/web/ipfire/html/images/flags/TV.png +#srv/web/ipfire/html/images/flags/TW.png +#srv/web/ipfire/html/images/flags/TZ.png +#srv/web/ipfire/html/images/flags/UA.png +#srv/web/ipfire/html/images/flags/UG.png +#srv/web/ipfire/html/images/flags/US.png +#srv/web/ipfire/html/images/flags/UY.png +#srv/web/ipfire/html/images/flags/UZ.png +#srv/web/ipfire/html/images/flags/VA.png +#srv/web/ipfire/html/images/flags/VC.png +#srv/web/ipfire/html/images/flags/VE.png +#srv/web/ipfire/html/images/flags/VG.png +#srv/web/ipfire/html/images/flags/VI.png +#srv/web/ipfire/html/images/flags/VN.png +#srv/web/ipfire/html/images/flags/VU.png +#srv/web/ipfire/html/images/flags/WF.png +#srv/web/ipfire/html/images/flags/WS.png +#srv/web/ipfire/html/images/flags/YE.png +#srv/web/ipfire/html/images/flags/YT.png +#srv/web/ipfire/html/images/flags/ZA.png +#srv/web/ipfire/html/images/flags/ZM.png +#srv/web/ipfire/html/images/flags/ZW.png +#srv/web/ipfire/html/images/flags/unknown.png diff --git a/lfs/flag-icons b/lfs/flag-icons new file mode 100644 index 000000000..8f3364cdc --- /dev/null +++ b/lfs/flag-icons @@ -0,0 +1,90 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2015 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.6 + +THISAPP = flag-icons-$(VER) +DL_FILE = $(THISAPP).zip +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 992db1bc950dfdd436699b7d2ad33c2d + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + # Create DIR_APP and move the source tarball to its location. + @rm -rf $(DIR_APP) && mkdir -pv $(DIR_APP) && cd $(DIR_SRC) && cp -avf $(DIR_DL)/$(DL_FILE) $(DIR_APP) + + # Extract the source tarball. + cd $(DIR_APP) && unzip $(DL_FILE) + + # Create flage image folder. + cd $(DIR_APP) && mkdir -pv /srv/web/ipfire/html/images/flags/ + + # Only copy the country flags. + cd $(DIR_APP) && cp -avf flags-iso/shiny/16/??.png \ + /srv/web/ipfire/html/images/flags/ + + # Copy flag icon for unknown countries. + cd $(DIR_APP) && cp -avf flags-iso/shiny/16/_unknown.png \ + /srv/web/ipfire/html/images/flags/unknown.png + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/make.sh b/make.sh index cd78bf705..95aae640f 100755 --- a/make.sh +++ b/make.sh @@ -508,6 +508,7 @@ buildipfire() { ipfiremake apache2 ipfiremake php ipfiremake apache2 PASS=C + ipfiremake flag-icons ipfiremake jquery ipfiremake arping ipfiremake beep From f28a284c33a77cbbe06fa63480eb559877906c26 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 3 May 2015 21:53:03 +0200 Subject: [PATCH 186/210] Drop old flag icons. --- html/html/images/flags/ad.png | Bin 570 -> 0 bytes html/html/images/flags/ae.png | Bin 411 -> 0 bytes html/html/images/flags/af.png | Bin 594 -> 0 bytes html/html/images/flags/ag.png | Bin 670 -> 0 bytes html/html/images/flags/ai.png | Bin 670 -> 0 bytes html/html/images/flags/al.png | Bin 572 -> 0 bytes html/html/images/flags/am.png | Bin 574 -> 0 bytes html/html/images/flags/an.png | Bin 578 -> 0 bytes html/html/images/flags/ao.png | Bin 588 -> 0 bytes html/html/images/flags/aq.png | Bin 610 -> 0 bytes html/html/images/flags/ar.png | Bin 578 -> 0 bytes html/html/images/flags/as.png | Bin 653 -> 0 bytes html/html/images/flags/at.png | Bin 551 -> 0 bytes html/html/images/flags/au.png | Bin 634 -> 0 bytes html/html/images/flags/aw.png | Bin 573 -> 0 bytes html/html/images/flags/az.png | Bin 603 -> 0 bytes html/html/images/flags/ba.png | Bin 619 -> 0 bytes html/html/images/flags/bb.png | Bin 574 -> 0 bytes html/html/images/flags/bd.png | Bin 572 -> 0 bytes html/html/images/flags/be.png | Bin 534 -> 0 bytes html/html/images/flags/bf.png | Bin 568 -> 0 bytes html/html/images/flags/bg.png | Bin 555 -> 0 bytes html/html/images/flags/bh.png | Bin 514 -> 0 bytes html/html/images/flags/bi.png | Bin 668 -> 0 bytes html/html/images/flags/bj.png | Bin 544 -> 0 bytes html/html/images/flags/bm.png | Bin 615 -> 0 bytes html/html/images/flags/bn.png | Bin 633 -> 0 bytes html/html/images/flags/bo.png | Bin 583 -> 0 bytes html/html/images/flags/br.png | Bin 665 -> 0 bytes html/html/images/flags/bs.png | Bin 606 -> 0 bytes html/html/images/flags/bt.png | Bin 614 -> 0 bytes html/html/images/flags/bv.png | Bin 604 -> 0 bytes html/html/images/flags/bw.png | Bin 566 -> 0 bytes html/html/images/flags/by.png | Bin 556 -> 0 bytes html/html/images/flags/bz.png | Bin 618 -> 0 bytes html/html/images/flags/ca.png | Bin 606 -> 0 bytes html/html/images/flags/cc.png | Bin 668 -> 0 bytes html/html/images/flags/cd.png | Bin 608 -> 0 bytes html/html/images/flags/cf.png | Bin 611 -> 0 bytes html/html/images/flags/cg.png | Bin 558 -> 0 bytes html/html/images/flags/ch.png | Bin 581 -> 0 bytes html/html/images/flags/ci.png | Bin 533 -> 0 bytes html/html/images/flags/ck.png | Bin 606 -> 0 bytes html/html/images/flags/cl.png | Bin 481 -> 0 bytes html/html/images/flags/cm.png | Bin 548 -> 0 bytes html/html/images/flags/cn.png | Bin 482 -> 0 bytes html/html/images/flags/co.png | Bin 573 -> 0 bytes html/html/images/flags/cr.png | Bin 593 -> 0 bytes html/html/images/flags/cs.png | Bin 442 -> 0 bytes html/html/images/flags/cu.png | Bin 624 -> 0 bytes html/html/images/flags/cv.png | Bin 603 -> 0 bytes html/html/images/flags/cx.png | Bin 627 -> 0 bytes html/html/images/flags/cy.png | Bin 564 -> 0 bytes html/html/images/flags/cz.png | Bin 582 -> 0 bytes html/html/images/flags/de.png | Bin 540 -> 0 bytes html/html/images/flags/dj.png | Bin 509 -> 0 bytes html/html/images/flags/dk.png | Bin 562 -> 0 bytes html/html/images/flags/dm.png | Bin 681 -> 0 bytes html/html/images/flags/do.png | Bin 607 -> 0 bytes html/html/images/flags/dz.png | Bin 568 -> 0 bytes html/html/images/flags/ec.png | Bin 607 -> 0 bytes html/html/images/flags/ee.png | Bin 543 -> 0 bytes html/html/images/flags/eg.png | Bin 559 -> 0 bytes html/html/images/flags/eh.png | Bin 552 -> 0 bytes html/html/images/flags/er.png | Bin 606 -> 0 bytes html/html/images/flags/es.png | Bin 589 -> 0 bytes html/html/images/flags/et.png | Bin 607 -> 0 bytes html/html/images/flags/eu.png | Bin 632 -> 0 bytes html/html/images/flags/fi.png | Bin 569 -> 0 bytes html/html/images/flags/fj.png | Bin 612 -> 0 bytes html/html/images/flags/fk.png | Bin 684 -> 0 bytes html/html/images/flags/fm.png | Bin 572 -> 0 bytes html/html/images/flags/fo.png | Bin 583 -> 0 bytes html/html/images/flags/fr.png | Bin 522 -> 0 bytes html/html/images/flags/ga.png | Bin 580 -> 0 bytes html/html/images/flags/gb.png | Bin 679 -> 0 bytes html/html/images/flags/gd.png | Bin 599 -> 0 bytes html/html/images/flags/ge.png | Bin 495 -> 0 bytes html/html/images/flags/gf.png | Bin 514 -> 0 bytes html/html/images/flags/gh.png | Bin 456 -> 0 bytes html/html/images/flags/gi.png | Bin 561 -> 0 bytes html/html/images/flags/gl.png | Bin 574 -> 0 bytes html/html/images/flags/gm.png | Bin 457 -> 0 bytes html/html/images/flags/gn.png | Bin 543 -> 0 bytes html/html/images/flags/gp.png | Bin 577 -> 0 bytes html/html/images/flags/gq.png | Bin 585 -> 0 bytes html/html/images/flags/gr.png | Bin 585 -> 0 bytes html/html/images/flags/gs.png | Bin 661 -> 0 bytes html/html/images/flags/gt.png | Bin 595 -> 0 bytes html/html/images/flags/gu.png | Bin 579 -> 0 bytes html/html/images/flags/gw.png | Bin 461 -> 0 bytes html/html/images/flags/gy.png | Bin 535 -> 0 bytes html/html/images/flags/hk.png | Bin 609 -> 0 bytes html/html/images/flags/hm.png | Bin 651 -> 0 bytes html/html/images/flags/hn.png | Bin 578 -> 0 bytes html/html/images/flags/hr.png | Bin 604 -> 0 bytes html/html/images/flags/ht.png | Bin 587 -> 0 bytes html/html/images/flags/hu.png | Bin 552 -> 0 bytes html/html/images/flags/id.png | Bin 535 -> 0 bytes html/html/images/flags/ie.png | Bin 518 -> 0 bytes html/html/images/flags/il.png | Bin 590 -> 0 bytes html/html/images/flags/in.png | Bin 578 -> 0 bytes html/html/images/flags/io.png | Bin 760 -> 0 bytes html/html/images/flags/iq.png | Bin 583 -> 0 bytes html/html/images/flags/ir.png | Bin 573 -> 0 bytes html/html/images/flags/is.png | Bin 608 -> 0 bytes html/html/images/flags/it.png | Bin 504 -> 0 bytes html/html/images/flags/jm.png | Bin 663 -> 0 bytes html/html/images/flags/jo.png | Bin 597 -> 0 bytes html/html/images/flags/jp.png | Bin 556 -> 0 bytes html/html/images/flags/ke.png | Bin 614 -> 0 bytes html/html/images/flags/kg.png | Bin 563 -> 0 bytes html/html/images/flags/kh.png | Bin 606 -> 0 bytes html/html/images/flags/ki.png | Bin 608 -> 0 bytes html/html/images/flags/km.png | Bin 562 -> 0 bytes html/html/images/flags/kn.png | Bin 611 -> 0 bytes html/html/images/flags/kp.png | Bin 624 -> 0 bytes html/html/images/flags/kr.png | Bin 611 -> 0 bytes html/html/images/flags/kw.png | Bin 456 -> 0 bytes html/html/images/flags/ky.png | Bin 605 -> 0 bytes html/html/images/flags/kz.png | Bin 603 -> 0 bytes html/html/images/flags/la.png | Bin 528 -> 0 bytes html/html/images/flags/lb.png | Bin 594 -> 0 bytes html/html/images/flags/lc.png | Bin 613 -> 0 bytes html/html/images/flags/li.png | Bin 481 -> 0 bytes html/html/images/flags/lk.png | Bin 599 -> 0 bytes html/html/images/flags/lr.png | Bin 567 -> 0 bytes html/html/images/flags/ls.png | Bin 668 -> 0 bytes html/html/images/flags/lt.png | Bin 531 -> 0 bytes html/html/images/flags/lu.png | Bin 554 -> 0 bytes html/html/images/flags/lv.png | Bin 565 -> 0 bytes html/html/images/flags/ly.png | Bin 463 -> 0 bytes html/html/images/flags/ma.png | Bin 527 -> 0 bytes html/html/images/flags/mc.png | Bin 519 -> 0 bytes html/html/images/flags/md.png | Bin 577 -> 0 bytes html/html/images/flags/mg.png | Bin 548 -> 0 bytes html/html/images/flags/mh.png | Bin 680 -> 0 bytes html/html/images/flags/mk.png | Bin 657 -> 0 bytes html/html/images/flags/ml.png | Bin 436 -> 0 bytes html/html/images/flags/mm.png | Bin 528 -> 0 bytes html/html/images/flags/mn.png | Bin 560 -> 0 bytes html/html/images/flags/mo.png | Bin 590 -> 0 bytes html/html/images/flags/mp.png | Bin 623 -> 0 bytes html/html/images/flags/mq.png | Bin 514 -> 0 bytes html/html/images/flags/mr.png | Bin 510 -> 0 bytes html/html/images/flags/ms.png | Bin 617 -> 0 bytes html/html/images/flags/mt.png | Bin 497 -> 0 bytes html/html/images/flags/mu.png | Bin 419 -> 0 bytes html/html/images/flags/mv.png | Bin 591 -> 0 bytes html/html/images/flags/mw.png | Bin 463 -> 0 bytes html/html/images/flags/mx.png | Bin 606 -> 0 bytes html/html/images/flags/my.png | Bin 597 -> 0 bytes html/html/images/flags/mz.png | Bin 602 -> 0 bytes html/html/images/flags/na.png | Bin 653 -> 0 bytes html/html/images/flags/nc.png | Bin 621 -> 0 bytes html/html/images/flags/ne.png | Bin 527 -> 0 bytes html/html/images/flags/nf.png | Bin 583 -> 0 bytes html/html/images/flags/ng.png | Bin 513 -> 0 bytes html/html/images/flags/ni.png | Bin 524 -> 0 bytes html/html/images/flags/nl.png | Bin 554 -> 0 bytes html/html/images/flags/no.png | Bin 615 -> 0 bytes html/html/images/flags/np.png | Bin 531 -> 0 bytes html/html/images/flags/nr.png | Bin 578 -> 0 bytes html/html/images/flags/nu.png | Bin 531 -> 0 bytes html/html/images/flags/nz.png | Bin 606 -> 0 bytes html/html/images/flags/om.png | Bin 551 -> 0 bytes html/html/images/flags/pa.png | Bin 587 -> 0 bytes html/html/images/flags/pe.png | Bin 583 -> 0 bytes html/html/images/flags/pf.png | Bin 606 -> 0 bytes html/html/images/flags/pg.png | Bin 557 -> 0 bytes html/html/images/flags/ph.png | Bin 606 -> 0 bytes html/html/images/flags/pk.png | Bin 616 -> 0 bytes html/html/images/flags/pl.png | Bin 514 -> 0 bytes html/html/images/flags/pm.png | Bin 653 -> 0 bytes html/html/images/flags/pn.png | Bin 693 -> 0 bytes html/html/images/flags/pr.png | Bin 607 -> 0 bytes html/html/images/flags/ps.png | Bin 481 -> 0 bytes html/html/images/flags/pt.png | Bin 573 -> 0 bytes html/html/images/flags/pw.png | Bin 571 -> 0 bytes html/html/images/flags/py.png | Bin 579 -> 0 bytes html/html/images/flags/qa.png | Bin 520 -> 0 bytes html/html/images/flags/re.png | Bin 514 -> 0 bytes html/html/images/flags/ro.png | Bin 542 -> 0 bytes html/html/images/flags/ru.png | Bin 550 -> 0 bytes html/html/images/flags/rw.png | Bin 471 -> 0 bytes html/html/images/flags/sa.png | Bin 558 -> 0 bytes html/html/images/flags/sb.png | Bin 637 -> 0 bytes html/html/images/flags/sc.png | Bin 646 -> 0 bytes html/html/images/flags/sd.png | Bin 579 -> 0 bytes html/html/images/flags/se.png | Bin 608 -> 0 bytes html/html/images/flags/sg.png | Bin 557 -> 0 bytes html/html/images/flags/sh.png | Bin 632 -> 0 bytes html/html/images/flags/si.png | Bin 576 -> 0 bytes html/html/images/flags/sj.png | Bin 604 -> 0 bytes html/html/images/flags/sk.png | Bin 596 -> 0 bytes html/html/images/flags/sl.png | Bin 560 -> 0 bytes html/html/images/flags/sm.png | Bin 591 -> 0 bytes html/html/images/flags/sn.png | Bin 494 -> 0 bytes html/html/images/flags/so.png | Bin 558 -> 0 bytes html/html/images/flags/sr.png | Bin 525 -> 0 bytes html/html/images/flags/st.png | Bin 526 -> 0 bytes html/html/images/flags/sv.png | Bin 543 -> 0 bytes html/html/images/flags/sy.png | Bin 448 -> 0 bytes html/html/images/flags/sz.png | Bin 723 -> 0 bytes html/html/images/flags/tc.png | Bin 609 -> 0 bytes html/html/images/flags/td.png | Bin 560 -> 0 bytes html/html/images/flags/tf.png | Bin 548 -> 0 bytes html/html/images/flags/tg.png | Bin 596 -> 0 bytes html/html/images/flags/th.png | Bin 574 -> 0 bytes html/html/images/flags/tj.png | Bin 524 -> 0 bytes html/html/images/flags/tk.png | Bin 685 -> 0 bytes html/html/images/flags/tl.png | Bin 520 -> 0 bytes html/html/images/flags/tm.png | Bin 548 -> 0 bytes html/html/images/flags/tn.png | Bin 601 -> 0 bytes html/html/images/flags/to.png | Bin 543 -> 0 bytes html/html/images/flags/tp.png | Bin 582 -> 0 bytes html/html/images/flags/tr.png | Bin 551 -> 0 bytes html/html/images/flags/tt.png | Bin 664 -> 0 bytes html/html/images/flags/tv.png | Bin 606 -> 0 bytes html/html/images/flags/tw.png | Bin 525 -> 0 bytes html/html/images/flags/tz.png | Bin 621 -> 0 bytes html/html/images/flags/ua.png | Bin 551 -> 0 bytes html/html/images/flags/ug.png | Bin 607 -> 0 bytes html/html/images/flags/um.png | Bin 599 -> 0 bytes html/html/images/flags/us.png | Bin 570 -> 0 bytes html/html/images/flags/uy.png | Bin 560 -> 0 bytes html/html/images/flags/uz.png | Bin 536 -> 0 bytes html/html/images/flags/va.png | Bin 574 -> 0 bytes html/html/images/flags/vc.png | Bin 548 -> 0 bytes html/html/images/flags/ve.png | Bin 579 -> 0 bytes html/html/images/flags/vg.png | Bin 613 -> 0 bytes html/html/images/flags/vi.png | Bin 646 -> 0 bytes html/html/images/flags/vn.png | Bin 566 -> 0 bytes html/html/images/flags/vu.png | Bin 572 -> 0 bytes html/html/images/flags/wf.png | Bin 514 -> 0 bytes html/html/images/flags/ws.png | Bin 537 -> 0 bytes html/html/images/flags/ye.png | Bin 543 -> 0 bytes html/html/images/flags/yt.png | Bin 514 -> 0 bytes html/html/images/flags/yu.png | Bin 567 -> 0 bytes html/html/images/flags/za.png | Bin 662 -> 0 bytes html/html/images/flags/zm.png | Bin 525 -> 0 bytes html/html/images/flags/zw.png | Bin 618 -> 0 bytes 242 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 html/html/images/flags/ad.png delete mode 100644 html/html/images/flags/ae.png delete mode 100644 html/html/images/flags/af.png delete mode 100644 html/html/images/flags/ag.png delete mode 100644 html/html/images/flags/ai.png delete mode 100644 html/html/images/flags/al.png delete mode 100644 html/html/images/flags/am.png delete mode 100644 html/html/images/flags/an.png delete mode 100644 html/html/images/flags/ao.png delete mode 100644 html/html/images/flags/aq.png delete mode 100644 html/html/images/flags/ar.png delete mode 100644 html/html/images/flags/as.png delete mode 100644 html/html/images/flags/at.png delete mode 100644 html/html/images/flags/au.png delete mode 100644 html/html/images/flags/aw.png delete mode 100644 html/html/images/flags/az.png delete mode 100644 html/html/images/flags/ba.png delete mode 100644 html/html/images/flags/bb.png delete mode 100644 html/html/images/flags/bd.png delete mode 100644 html/html/images/flags/be.png delete mode 100644 html/html/images/flags/bf.png delete mode 100644 html/html/images/flags/bg.png delete mode 100644 html/html/images/flags/bh.png delete mode 100644 html/html/images/flags/bi.png delete mode 100644 html/html/images/flags/bj.png delete mode 100644 html/html/images/flags/bm.png delete mode 100644 html/html/images/flags/bn.png delete mode 100644 html/html/images/flags/bo.png delete mode 100644 html/html/images/flags/br.png delete mode 100644 html/html/images/flags/bs.png delete mode 100644 html/html/images/flags/bt.png delete mode 100644 html/html/images/flags/bv.png delete mode 100644 html/html/images/flags/bw.png delete mode 100644 html/html/images/flags/by.png delete mode 100644 html/html/images/flags/bz.png delete mode 100644 html/html/images/flags/ca.png delete mode 100644 html/html/images/flags/cc.png delete mode 100644 html/html/images/flags/cd.png delete mode 100644 html/html/images/flags/cf.png delete mode 100644 html/html/images/flags/cg.png delete mode 100644 html/html/images/flags/ch.png delete mode 100644 html/html/images/flags/ci.png delete mode 100644 html/html/images/flags/ck.png delete mode 100644 html/html/images/flags/cl.png delete mode 100644 html/html/images/flags/cm.png delete mode 100644 html/html/images/flags/cn.png delete mode 100644 html/html/images/flags/co.png delete mode 100644 html/html/images/flags/cr.png delete mode 100644 html/html/images/flags/cs.png delete mode 100644 html/html/images/flags/cu.png delete mode 100644 html/html/images/flags/cv.png delete mode 100644 html/html/images/flags/cx.png delete mode 100644 html/html/images/flags/cy.png delete mode 100644 html/html/images/flags/cz.png delete mode 100644 html/html/images/flags/de.png delete mode 100644 html/html/images/flags/dj.png delete mode 100644 html/html/images/flags/dk.png delete mode 100644 html/html/images/flags/dm.png delete mode 100644 html/html/images/flags/do.png delete mode 100644 html/html/images/flags/dz.png delete mode 100644 html/html/images/flags/ec.png delete mode 100644 html/html/images/flags/ee.png delete mode 100644 html/html/images/flags/eg.png delete mode 100644 html/html/images/flags/eh.png delete mode 100644 html/html/images/flags/er.png delete mode 100644 html/html/images/flags/es.png delete mode 100644 html/html/images/flags/et.png delete mode 100644 html/html/images/flags/eu.png delete mode 100644 html/html/images/flags/fi.png delete mode 100644 html/html/images/flags/fj.png delete mode 100644 html/html/images/flags/fk.png delete mode 100644 html/html/images/flags/fm.png delete mode 100644 html/html/images/flags/fo.png delete mode 100644 html/html/images/flags/fr.png delete mode 100644 html/html/images/flags/ga.png delete mode 100644 html/html/images/flags/gb.png delete mode 100644 html/html/images/flags/gd.png delete mode 100644 html/html/images/flags/ge.png delete mode 100644 html/html/images/flags/gf.png delete mode 100644 html/html/images/flags/gh.png delete mode 100644 html/html/images/flags/gi.png delete mode 100644 html/html/images/flags/gl.png delete mode 100644 html/html/images/flags/gm.png delete mode 100644 html/html/images/flags/gn.png delete mode 100644 html/html/images/flags/gp.png delete mode 100644 html/html/images/flags/gq.png delete mode 100644 html/html/images/flags/gr.png delete mode 100644 html/html/images/flags/gs.png delete mode 100644 html/html/images/flags/gt.png delete mode 100644 html/html/images/flags/gu.png delete mode 100644 html/html/images/flags/gw.png delete mode 100644 html/html/images/flags/gy.png delete mode 100644 html/html/images/flags/hk.png delete mode 100644 html/html/images/flags/hm.png delete mode 100644 html/html/images/flags/hn.png delete mode 100644 html/html/images/flags/hr.png delete mode 100644 html/html/images/flags/ht.png delete mode 100644 html/html/images/flags/hu.png delete mode 100644 html/html/images/flags/id.png delete mode 100644 html/html/images/flags/ie.png delete mode 100644 html/html/images/flags/il.png delete mode 100644 html/html/images/flags/in.png delete mode 100644 html/html/images/flags/io.png delete mode 100644 html/html/images/flags/iq.png delete mode 100644 html/html/images/flags/ir.png delete mode 100644 html/html/images/flags/is.png delete mode 100644 html/html/images/flags/it.png delete mode 100644 html/html/images/flags/jm.png delete mode 100644 html/html/images/flags/jo.png delete mode 100644 html/html/images/flags/jp.png delete mode 100644 html/html/images/flags/ke.png delete mode 100644 html/html/images/flags/kg.png delete mode 100644 html/html/images/flags/kh.png delete mode 100644 html/html/images/flags/ki.png delete mode 100644 html/html/images/flags/km.png delete mode 100644 html/html/images/flags/kn.png delete mode 100644 html/html/images/flags/kp.png delete mode 100644 html/html/images/flags/kr.png delete mode 100644 html/html/images/flags/kw.png delete mode 100644 html/html/images/flags/ky.png delete mode 100644 html/html/images/flags/kz.png delete mode 100644 html/html/images/flags/la.png delete mode 100644 html/html/images/flags/lb.png delete mode 100644 html/html/images/flags/lc.png delete mode 100644 html/html/images/flags/li.png delete mode 100644 html/html/images/flags/lk.png delete mode 100644 html/html/images/flags/lr.png delete mode 100644 html/html/images/flags/ls.png delete mode 100644 html/html/images/flags/lt.png delete mode 100644 html/html/images/flags/lu.png delete mode 100644 html/html/images/flags/lv.png delete mode 100644 html/html/images/flags/ly.png delete mode 100644 html/html/images/flags/ma.png delete mode 100644 html/html/images/flags/mc.png delete mode 100644 html/html/images/flags/md.png delete mode 100644 html/html/images/flags/mg.png delete mode 100644 html/html/images/flags/mh.png delete mode 100644 html/html/images/flags/mk.png delete mode 100644 html/html/images/flags/ml.png delete mode 100644 html/html/images/flags/mm.png delete mode 100644 html/html/images/flags/mn.png delete mode 100644 html/html/images/flags/mo.png delete mode 100644 html/html/images/flags/mp.png delete mode 100644 html/html/images/flags/mq.png delete mode 100644 html/html/images/flags/mr.png delete mode 100644 html/html/images/flags/ms.png delete mode 100644 html/html/images/flags/mt.png delete mode 100644 html/html/images/flags/mu.png delete mode 100644 html/html/images/flags/mv.png delete mode 100644 html/html/images/flags/mw.png delete mode 100644 html/html/images/flags/mx.png delete mode 100644 html/html/images/flags/my.png delete mode 100644 html/html/images/flags/mz.png delete mode 100644 html/html/images/flags/na.png delete mode 100644 html/html/images/flags/nc.png delete mode 100644 html/html/images/flags/ne.png delete mode 100644 html/html/images/flags/nf.png delete mode 100644 html/html/images/flags/ng.png delete mode 100644 html/html/images/flags/ni.png delete mode 100644 html/html/images/flags/nl.png delete mode 100644 html/html/images/flags/no.png delete mode 100644 html/html/images/flags/np.png delete mode 100644 html/html/images/flags/nr.png delete mode 100644 html/html/images/flags/nu.png delete mode 100644 html/html/images/flags/nz.png delete mode 100644 html/html/images/flags/om.png delete mode 100644 html/html/images/flags/pa.png delete mode 100644 html/html/images/flags/pe.png delete mode 100644 html/html/images/flags/pf.png delete mode 100644 html/html/images/flags/pg.png delete mode 100644 html/html/images/flags/ph.png delete mode 100644 html/html/images/flags/pk.png delete mode 100644 html/html/images/flags/pl.png delete mode 100644 html/html/images/flags/pm.png delete mode 100644 html/html/images/flags/pn.png delete mode 100644 html/html/images/flags/pr.png delete mode 100644 html/html/images/flags/ps.png delete mode 100644 html/html/images/flags/pt.png delete mode 100644 html/html/images/flags/pw.png delete mode 100644 html/html/images/flags/py.png delete mode 100644 html/html/images/flags/qa.png delete mode 100644 html/html/images/flags/re.png delete mode 100644 html/html/images/flags/ro.png delete mode 100644 html/html/images/flags/ru.png delete mode 100644 html/html/images/flags/rw.png delete mode 100644 html/html/images/flags/sa.png delete mode 100644 html/html/images/flags/sb.png delete mode 100644 html/html/images/flags/sc.png delete mode 100644 html/html/images/flags/sd.png delete mode 100644 html/html/images/flags/se.png delete mode 100644 html/html/images/flags/sg.png delete mode 100644 html/html/images/flags/sh.png delete mode 100644 html/html/images/flags/si.png delete mode 100644 html/html/images/flags/sj.png delete mode 100644 html/html/images/flags/sk.png delete mode 100644 html/html/images/flags/sl.png delete mode 100644 html/html/images/flags/sm.png delete mode 100644 html/html/images/flags/sn.png delete mode 100644 html/html/images/flags/so.png delete mode 100644 html/html/images/flags/sr.png delete mode 100644 html/html/images/flags/st.png delete mode 100644 html/html/images/flags/sv.png delete mode 100644 html/html/images/flags/sy.png delete mode 100644 html/html/images/flags/sz.png delete mode 100644 html/html/images/flags/tc.png delete mode 100644 html/html/images/flags/td.png delete mode 100644 html/html/images/flags/tf.png delete mode 100644 html/html/images/flags/tg.png delete mode 100644 html/html/images/flags/th.png delete mode 100644 html/html/images/flags/tj.png delete mode 100644 html/html/images/flags/tk.png delete mode 100644 html/html/images/flags/tl.png delete mode 100644 html/html/images/flags/tm.png delete mode 100644 html/html/images/flags/tn.png delete mode 100644 html/html/images/flags/to.png delete mode 100644 html/html/images/flags/tp.png delete mode 100644 html/html/images/flags/tr.png delete mode 100644 html/html/images/flags/tt.png delete mode 100644 html/html/images/flags/tv.png delete mode 100644 html/html/images/flags/tw.png delete mode 100644 html/html/images/flags/tz.png delete mode 100644 html/html/images/flags/ua.png delete mode 100644 html/html/images/flags/ug.png delete mode 100644 html/html/images/flags/um.png delete mode 100644 html/html/images/flags/us.png delete mode 100644 html/html/images/flags/uy.png delete mode 100644 html/html/images/flags/uz.png delete mode 100644 html/html/images/flags/va.png delete mode 100644 html/html/images/flags/vc.png delete mode 100644 html/html/images/flags/ve.png delete mode 100644 html/html/images/flags/vg.png delete mode 100644 html/html/images/flags/vi.png delete mode 100644 html/html/images/flags/vn.png delete mode 100644 html/html/images/flags/vu.png delete mode 100644 html/html/images/flags/wf.png delete mode 100644 html/html/images/flags/ws.png delete mode 100644 html/html/images/flags/ye.png delete mode 100644 html/html/images/flags/yt.png delete mode 100644 html/html/images/flags/yu.png delete mode 100644 html/html/images/flags/za.png delete mode 100644 html/html/images/flags/zm.png delete mode 100644 html/html/images/flags/zw.png diff --git a/html/html/images/flags/ad.png b/html/html/images/flags/ad.png deleted file mode 100644 index ffbe26a9c725e02fb3c12fb585326a334c7bea8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmV-A0>%A_P)1000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005WNklUyi%;N{ZQ-BsstPf_{c*^RQizk6rBSYt7=p#eNXDR6<&D_Nn4 zn(1`Bzdt!XHoqo|uj7yRc5dFfzO9u(o#bm}fN_KoILBrgU~q17a4_53*b864)RiQWXA&F zUVIl9#7w}&tY&XH=~14ev8t*_ahFf1bC^sWT7f7ujLlGNaJs>qX@BO@EpO%M|7b&` zVs8O*P#iEZJz+w@?i%A#Q?K~Kg3`Dl$Sx@z&d>@}MJeG?aEU5#`;i+R@oGVLcbvKs z04C~mCUrEq1l1rNx^wHGm*`)OrfSLkeDwI#-KDgyMn}gMEOrXlMmH{!Yso!)byD3w z<-OV3?5Sz(+QhSEvSjUeoMJ9FLLqP=&**o`Iws*Ga-ODt0lZe$syt?yGXMYp07*qo IM6N<$f|%w53jhEB diff --git a/html/html/images/flags/ae.png b/html/html/images/flags/ae.png deleted file mode 100644 index 0ee169b3b70893ad1c36a784f90a1fd5a12cdb84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmV;M0c8G(P)Dphn0M!cF;8iF)$d=AM%_;5`9WX@!0;CnoH3jIX7V>XFfMNLx>*t>yCZ-oh5@ zf~N?0@%bhP0{`icvI=04=P!2!{0|4b_hnfgWzoSqXT(S)zvt71NDVU(i6_5ft1%3w z#Lh*=aNIDQs)(qnfDt2yR_nyymP8REf^F`Q2#v~_tc_}!rnLZWR2j!`21%0W=k;JF zR68Fu-b2`jKU<>>Tj}*a5O+i?=0rpqwzx`2Wr9uPvL z4hf`kJc-91|BS~@7*||`_?B}qae0w}u> ziHf1;Xxr)?Sg$vGO>zBGd3>6tX^|FrlJ7#EpPx}m5%NQf*(NVYC5m&b5chkv_kyb? zyri)@#@Ju`4BlaRQLL6r&+}LYN+Q{`R+DQW)cK9%&%X-12pX-J9e^GVLmb7s*)Bd@ zOdV%7n+HKq6vgvH*?v+{_4YxxS63uI-2PhfC4h03WrUFNcwBb7o!mN(10iHd*efl4 zK5Uy-tM*8xfD86a2zMgvZ!c(u^#=_G`Gf8L6)X#Kg{oy gQOd}NeXLUd0UJ*XuK#=({Qv*}07*qoM6N<$f_JO{^#A|> diff --git a/html/html/images/flags/ag.png b/html/html/images/flags/ag.png deleted file mode 100644 index 1c731bae87b41de0d2a30281018d38e6c6a85f05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 670 zcmV;P0%84$P)}XJd?wh(!<-EB^z*LM&_qE8C#p zj}#)<9ub2V;#nm|w2-I}6Mr1W825J1+uM7;oQt*&-{Qf1X5M#Z@XX*)ZGYeR_;@y( zwbsJ_0}ZC4|6yH!^0!Es*kGFRk^`($ZYHyx4zG zR2?zfwdeZFitD#IzZrTd8LrC3y{^t89%a;z7?l;1QQJMe-wquw7Vd_e<`K}%edZ5Tc6Ri+n9FQ&o*;2a) zlBY9#cB=2>gf+5#E9RuH7L!M}RB*sy3avF3xTSum1Zo6BqKoRT{$~@Xey1(X98wFQ zbmW-yd)wePLogYnDoID73T>GrdAK)oxiWv@Hp>QIqfeRs5eAyZp`-zAK{Z_d2lqD*df-5t8~^|S07*qoM6N<$ Ef=`$zi2wiq diff --git a/html/html/images/flags/ai.png b/html/html/images/flags/ai.png deleted file mode 100644 index afc38d9f14ed1ed0802127a47bc77aed32963bc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 670 zcmV;P0%84$P)o&r4KM6vw~kz5ASI-i&XW9JNLVEc-!(o5GMH`T-7Y$|;C;E&B_CS`@Aff@s-7 z+l3H`5l9V&8x=FAh=funn6$~jv{C2HI6vNf_jc#arpw{G`hL#&o^xs8{-D3-?AVGg z6ks>oHX*gqKV1;{WOuXwpgB5e0~{m>E|IVc#rgT=Y&NH-HU>^;*&Ej{wOoit>>WKE zHjl>o`@%fhKKDade#f$!8Wl8+Uu*fXmub#9EhdwNQmwVkid?%|%&Y(uj33~-S>4(( zLwNeL69hm44tJcHnM^vp8Zdo~ICnOSJRGjPnb`jHO<9b~=Zl{gd9;IBcrn|JI>&p@ zge)r@>okl&H2r>;y86bS-|IaTTON9AJy;kPyX(WxMsCk;&3%}@_0Gg<7I1;T-!pfF zcqPPP&X1ow^@uX5>Cn{bv5_pAPUjL6q&Xe0FQV04o9f2+LTs=AsRO>;%6?H|ZoW`s zyyx6+>WDwI3+*5R83f^Nq5+%0K4?COT@TBD`PkpWCY|QQ(vp2;AVr<=C$=p~Veq8> z#DA)J>KMUtZTT*0HFo5&2AvU#-k&re@_Y@tp|YX8wB4Qk}@P)neROxX%(4g0 zuT2wpo*x8gFmQuFb6ssZHU7~jL9oXrlOL3VH2oFF(>(7uztr^M2muIn$7%Zi znk?USC386*!>*%g`gJ}(U9HxPF;)F-+uuCTM##a~^t@Kn%I#Jnd$n*ljKc5~;blT* zas04Ye5oo!>4uiwxb7!}N{nsa-x)^D`KBrlYA;4-7w6~o`f)?ZQIhP6;zWp@VQw5J zl7nF!`MzRVTOo?7+LYBn?fPQEDb3S_60*zl8_u8U`gZ`1A^eC?0AcAkTu~@v>w>bj zJz!?nJ*H_skJ~H@8GEU!jcwPS#}GQg_^sy!(voB-WrEi|wjYu%mpO^+#iFaKu@LQ0Z|qELjeO!JN7gbS->P)9{@bc92=jH+4IHX_4)a`)v8X@WWCO!s7+I#HNu#T z$9@=!`J9EJ%b0t6>;9vkgrUW5mP;*V7RSYAqqEF1E`%N-lyfEo;T%$`kM+m~X49vO z7Z;Z+Gms=sw|7~&Ym7pU!$%{E#-bO~A(-j0s9jVjb;7oTu)0DL=O)5WW^mv1*|y}oav2apy-8-Ou_lsMc+fpC1L zJ=Y45mC4J_B8SSe~j;000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005eNklwUEpiblBp?i;NLorNDoVr?(9mNFo*=J*#9L5Of+(U0 zFeI`a@9yl)yR$cDV?RMY=}dLLIY;^r0Cxhan$PFz^*rz4@$uQ|X?C^v^ZreE@v{gv zfRO(A7ye*snx<{rx~`)gJKJ?#r9GX^%Cd~2FkAj@LV=5tg0{yf=UfSlF^sWlQ2j(z zO?7K>aR2C0++zPmtX3kBWJ^qBnfh?pB3>f~P_L{}Ba1kW_uA*kI?SAJSK9LX;^N+X4^avkuReCw38>ZB$q2+TnA!=YuPj>j{Yl0eT_Wx2Ana7AgIecO%ow1 zS?o1LXmI1N0}XzIiBVW9C`2f%v?2&rl>7l5JqQ{qK45DkN+cTof-XJn3MgpU zt+qf)oF#s5?AV^z9zPhHe8FDnN~6&|b4PcEVQv*H%@6%*Ivzio&7Pm0?!(Yutzv6g zh9OfBVK9(YRWl5IGy;af0l+O5+<$%7FerOApOZ9=Juk6s@+4+H5^l(gvaCP|bX|s! zR}|9McT59-nx`ixV%zRKFWziQ?xt;X_7^LDmSj_<1|T$0)r#Y?qByXLY0f5-BORqd z5Zm_N_nU{9ecuY-MClTMcbyS6tr3JhAv>HMm^r>TJ3bDh?Z$CD*G;vgS=KkN2ZT}B z2uf2_YZ?~CZC$$qNwU(aB%^e1{K8} z%R=k5j8M}wndhaXkFqRjW!KGi>^P3;7SHoCeI*4Fq89~(P^oLivT}O6{=};6+3h}7 a7ykhFq5{>LGo7jc0000;2*Y diff --git a/html/html/images/flags/aq.png b/html/html/images/flags/aq.png deleted file mode 100644 index a4f9700e0e77ec8e016687f1cc8c2c4c5d1d428b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmV-o0-gPdP)=-{JN$O*6ymE@;xF`fJtXq?Y#?dJT!-IxhEfppWi zo8{|w#X;{16O8{lFBk;56hu@d^J`XrbU*uc>UL9z;{;Zqji$M};Rk1-mKYEd0E&QI zc!XdGqv6cJ6t4O}?K6l3@!G7aK{X_-zkHKNQ8_x{MV8pumm%PCf0Uxx7HVrz%zYpM w<3TH__Dk{Q2z1?;!A7$@6H+t4k<$I_Kc*+|*b>5twEzGB07*qoM6N<$f_bbHp8x;= diff --git a/html/html/images/flags/ar.png b/html/html/images/flags/ar.png deleted file mode 100644 index d3a0d9dfc64268d658b32ce70ebf49ae5f3dc526..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)Pr06aZk)PiAb-PtuNPRn$gN8nsa((xwZfF(eXkp0PcicyJ-TK%d^Ty!m9k_YA;;!m)Mm@~u4|9}SPEv*pugq!O3EZ?E!# zibi+9_x%XLK@w+aI!G||+;@lnmyV-8cxs73#EUO;+n9v(6s>@;Cj6vga{!V zB1^oc(U$nO#=G%&GQ7B0q*3r|O`s?;w@IT8IF9cHNd$LNY%_*E*R-{&w(Ql};giL9 zKHDqH@>Wom34!v}>T8@Fjz;r1#z}%P3cAizmB>x;=07_gjTZB{5P}s{)iv1Y@83S$ zTz}N<{`}-q8et4W*8x(gnzM?r?Q6^Bxz@TUDC68-?3^6nkH@L$`au{&2tCiX)Nsxz zp;F2%vrSV%C@qy##&nMBp3YvZ*9WK5=Se^F{hn@H&a0eIAw@0j+4~>-YDHI6RN8a^ z1U)~FC;h$GUp7hfC-8w$wJ7p}(Mr~LZp%L3(93mAq{f|@=U1*X~7{~wTec$8Ek6bG^6V##NMvSy3wt}Twf{bLvqS{r^7TBzi!Jvy`bThh( zsGysI?xc&l3xW{@UF?JIGP)R*8!b0$>RZ$K^?EvcMF{ri&%*=f{GNyNoQIf9i9n!t zaL}XI>lhOO0pO9S=3*@?gzQv{#q5Vy?rcVq<@)^mN+96u=`jdG6Ct6DO|Z*DwQNa!!Io?d?y5wB(=KLfbs#X`$W-q)Pj&7&?a9#{JH*P;$#$R$yxO( z9FBHTECRUzK8;zrLKlwX(h%CL{AdT53=dFQu^-W!PbW_GdwBUypa7)2tEpIj--(G3 zF5d)<_)lldW~Yb_C#(NPx5H((9VT_xXwWVE5v?uVH+=;dYP4!$^z( z)@GlY!j|7Ysuq^?hoZ^Xv%$#Y;Lt!mpXb=U<}d;N&TU}JkEM9K;c7gH#27mJIGm|& zzIYb58l0Kz>bbM`DPfNmQhI>cKxg5uC z0Xkq`%WWzzsTNg!qXY7FQoeo7MW(zJo2O7H5R+-T(a_cFTE_TtX$j%UE<=dG*zT4P nqA;fL-zOvkeDNb4wd(%?lPI%W8{8N<00000NkvXXu0mjf5l%Fs diff --git a/html/html/images/flags/at.png b/html/html/images/flags/at.png deleted file mode 100644 index bd0cbe1a738a6bb37e8e796e126453a67911342c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)j^4 z=t-6*C~zc%`1Jq(0fas@Fw{?kJVN)kx6_A*Z_m#<&$p{pxmRmI!eakJ^l5*QqYgfT89Pg5pkzc{tDwbXytC#A4+5$HhcvP=wz^ybD5Lp6o!-BJGuF|nNG@R>)2sL7Zt2pi!SV`9N*5xoiktcaT)GolSN;Np zE-bj!RT1f6MOyH?V{2f_d{1VQ%uFW9%}wGRm|xHXFPz2u@WOiz#~o{UrU#36xl=P( z%{{hv;+1vGIp13Rs|};{`GABm0APA*Vs&Ni!^a)~2xD<`^9E#Cfi&|znVn89r3j2M#MzfyH;+y1&2m41Vm zB7{^`X0!XljbeUzDSK@mGh~!Dxb;Z5e71gWL3;P1IDe-p8pYklwvi$tr>Q8LozQhn z(-a7~a@p!y);KK>QbnWi{!_i)ao)V%UwhlTT9EIZHc<+mIH^5-GMCS%0pKBsjI#Ob zPh*_6&tLa#`n}rPFcvGO<@D&YHacIJ$z&v1R`-4mgMbGD9eM+IU`H_-r|}%O8_*y%KHH=mH=*Wv>>II(Da|W(Q!(fb=9j97tEnJXZu3fpgG?gR*R+Y&~ zHJ!#PmXO4Up&!#>M14vFwvVw!qth`5flqBKga|S#D}XVY#<~ZDkR%!2zpZ06@_nC> z5e7yFK+DaxTl(AI`O-Z&^b|$a^|a1x3gS5Gd#-JF%QdIg=m)`&1is@GkM~>Lf4j8y Ue~%1gE{`?*IS* diff --git a/html/html/images/flags/aw.png b/html/html/images/flags/aw.png deleted file mode 100644 index 1e5aff9e88c51a987c2b45190b106dbb1905bc68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmV-D0>b@?P)8V?ix}~a2YtIYJfqxV7anAV@0Inox=gFJ50E1`gFZ%q|?Z;1>T%9hHRa%s~ z82~^C3C=^GPogOBJxa)nyAHM(E7J$^Z2#!zeDB-W!<}PCBxzQt$_x-fz^F?J;vSvZdYRw3(jlIo<5K$BczAqR9!%%5uk&PQXc$B<+ zJ^A$h^Wx#h>$B`6ZyGa#kznk)m@}6%W(|klG?ms$Zn4>|o!R34hif;!t4{tY>dsmL zmrxrl5PlSfwwp^F8&4@E%S&wU-a%b;r#)WfrL0Wb1B?kmF0-J=DfJM9_S9z2)1t1L zEk;O@ty6WeG>yVePmn_?`R4=T(BZ5f`(D?wRcm0%vAgURjPH~=p5mo1)TR<~h48~5 zj>3u00|;@g+6$RMr}S{8QN6`Z61+-jYo`4WV=Ka;8zLG*614+q>MqanG;1pjwIWKA zEp~W5&*Ytc1ooM1n_=Vx#TtsyFryn;mgmW;*46)wR7zj%V{P;oFv8;Su0Q9N00000 LNkvXXu0mjfkMaOa diff --git a/html/html/images/flags/az.png b/html/html/images/flags/az.png deleted file mode 100644 index f2137c2d8179a7e8e7cc55a463cd2042f72c9ab5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)9*x(NQ5p z6DUClA&|(DRg9fYd>K2oXT}~Jh(y0f=ls?A^q&g=XNtyJI!|ip_WBnu9gIdd7eRJB zolj1pMMx+G5K6j^?545fSaws>RN>WgLHI}8POH1y9}Y*!iu&`&^>7r?nh`|-A=%Vb z%hXI0sYnDBt^1|Ab~SpTtB(dfgGV!e$)-~!V%ws^d5T2If~sRUj!{}Dmq3+ec!NFd zzrJ>PaM1Y@%{@Q(k?c8*JGc1v&-~MSZOgWLdxi*f)8w+UD#)_JhXAaHywY#o*gp?a zpPn8A?CE#!%af02{9;?<-3JeQkDj&n2RbAY&#EG-@^IsJeR#D~}W674nA^%EtSRBW=krql(RCDsn~3q)20$5`mBgE%+K+pTwQJ5njJZ1R{dSR87mWOv6;6 p3K+=KJc%&NS)C-O9-OMWsEDpHCfQ~)DHG!FbMFK2T{k9j^e2BY54 z>KXRtAG<%aO4Wr&pKg$}B&jOPK}vz|hpubKG|E{5Si`iseRDMSFaXS->P)5LZ7{KvKGRwC8lXyUcQGt>s)t7viakaf)=;G1K4?0m8y!!nHI!`jj;kP z+r|j#05lT(W2T9vIX-^Wb;>$TK7IDEnY4A)0>yC#SKsk)WYw*Ov7xGf1U+$dUkUa&*L>mQW2T~_F{FfU#an-I$~AykFnl;#_@Kc38HN6XdP_rt}Xcs9+r zXdv7Y9L1^qpE;2Ax%*f8#bSx<~a?5*z==gnU7p?IMu#>Gp?@f{XH_=CWC=Y zYO9LoSytD4)7ExM5G0F5n8a%p2qBag&-GtE)>QK5!U3A8sDQCD&$GJW;y;U`rSAt} zxT2I{1iDVYKSj^ZiD1sbp|$cM=Q62etdeblvkj9;zMo_nZJHKtL4=Ue+Aq%>ePDq? zXT0f?degrRlSye>2+?R7Gz`gX6OoZ+>pEf#NYE#BvWg4F`)hZczaz*0nAs8O#Q*>R M07*qoM6N<$g0UtEk^lez diff --git a/html/html/images/flags/bd.png b/html/html/images/flags/bd.png deleted file mode 100644 index e68816fb8e943cda0017011cc70548677b629318..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmV-C0>k}@P)WdM6aZl7Ke3Z|G8$B7I{bFTNPq;0RTu0EXW$AfI7k;PxB>@2m0-&nv95$D zqWnoT|1(MBc#_ze;LwNz^ga8n{OS2U04^0$U*>(8&Zf8aZa;kVAkETWe?F)I2{kvpC(j>_% diff --git a/html/html/images/flags/be.png b/html/html/images/flags/be.png deleted file mode 100644 index 2f92d5f81767fc04632510b19a698366e18ca6c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmV+x0_pvUP)U_i9&TY{!{+445C=luWH2 zU|tD{1&=;n0N`DL|99K%_Urxq_iqo6PcMV{eQEz#+d$wZ#mtXS8UB!e`IxQOIAx!I z{=)yvdc6+pbUX?vnwJWUg?6n6E{YJslrFNAENQlcG%=G8=WmQL7R=#r@ZO*6`g$!E z^y0mS5E4RTumE|^NKP0VVI=#0W}D4sx7)4q6)$;N7OJn4SOMrUrU_*P=P=JH&OE}} zxmP7;cDKFT@Apm9aL((x9Gn1PL@1^-P19vE6jZzt@J|cYbT5wW;S_WRn_xzacLS4bOeKmX|f20u@y2*LZpmpg)oEb zoeLxi>wG?QUetB1lmb3fibJLJ%@C4JQ>?9hl~QRFx*2QdY5bP5>$-6qaU32mW$7|y zD@rp6h_RzkI#ddyv~|68Gb?z}wykpxA(VtqV%Z{8N|qR<&H^d>YuATLdbk<=Htn7H Y3t74D%+NVy0000007*qoM6N<$g4>kd!~g&Q diff --git a/html/html/images/flags/bf.png b/html/html/images/flags/bf.png deleted file mode 100644 index 618fd041df64b7228e222940a2d9819c3326b9b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmV-80>}M{P)|Wm#*{IdBrzcd!oAi#?@w&9c>U)3U0#(%mDk&~RPA9hCSQI0HrjuuzE0qTs5lVg zSnqkQ`HB7hy!@%V$9#Rq@?zcyr9I#Ka)mBt^v5SgLrQT34uE%}t~wU>FJ# z5)kM>Ei~Wtl1nWIE!2tSMV?pdR&WyP50EMS2<*tl4n@uE27pbZDkc+cf|2 zUxKTa3(S+>llA1!){_jtivrqQEEcv-r_-C+?C$oqZQC?W^E{VQ+CD;vQW}OK=R61k z=NxA}nM^GEI-e`0EGWy;ZfxHkAcXk7Z-K?G>z@0_CZYK4`#0CK&pkBzLz?b(byN4f zfe;en5eEU>13YLTMc3LJFYM>vZ_DWV;rFlfu=%roT<@N$uIL9tuos4G%*XNgbrg=U zOJu9^V{u{eyZGa$59=&hCCkE)+&JttgAC$WH7u+n4#QmQ|W< zHu-ZQat)P3TpG}jGZt~inMeI$0BzTmRi%u+yyolSxZPIk#2ogX=qQBL^O$=zMm$Cl z16Qta+Pdox6=_u8{%7~!ciV@gcuIBNfPTQl3s}Hn&R<3TCUok t_`Zao6kS%At zvpCC=`}^pmtE!sM=eO6_ZWwCL+ubkMG+=NXCyeo;;Ady7C?d|?@%vYniyX|io126X zx!pF8k8Zyot;HDAG=))Mva(Es2vMZ^eqx_4FTX68=hZoE)yA0T=b$x0BcYUKS#~ru z&kuwc?^~@V_Ia`Rx>^})>fKHm6D}^$IL0JNIfr;)Se|1_`w*not_ySsJXH%-$@ z>7Jg@W&^vFF(?D0K*q;Powa{tXNO^838hlXrmo%LfEdHhf#E`A|0)epq#=LT^})Zf zuIuW$Hr57XP@0mfD@euPRkDypE0D$y*13s+QA&jn5XN!aru+TtsQ)WTr2)gEy$3>0 z(>z=e{Dac8EIA>fEVH5@$4biDx|97dKs-3f)3gt+zx1ZZ~y=R07*qoM6N<$ Ef;s=|Q2+n{ diff --git a/html/html/images/flags/bi.png b/html/html/images/flags/bi.png deleted file mode 100644 index 3b4ebca278c0dbe94769fdf9da9e9b519abe6eb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmV;N0%QG&P)K6O#WqMi6iF-|3W8XuS_GAP3>5tV9(t<> zPoa1c3YH$kg5brASPj%Atua`sO=DxGiIc@yGMUv0<`?vX_xQlK0l<+8)N_B~t{Wo< zStk6em~eU999`SnZ|xMtIt_r52{9uk3?GdX=>_ak@_^YJb_9(&qlkjj<(Np$jNO@6 z8;8x!k4?xRrcyw3#K1IRK}K)P;){>5SnSR2i`C7{yXRXbof#qUhmbEQAEIysx_Z6k z8|pY5d}&8hRL9Isg!zk(B^qF3CA++Rkdp;LCtY^j=Lwwbugc}c_4EZY6(ZxZqEOk_ zC`!1`Uqp$KPt~_Czdch_z@SP3&-IvZfDDEL4Tjz=mz+v2fS=V{AD(-FAShPM)e>2)Ugwt{fo&e+S#Ehr5*ZjqRT&U?foZXl zDEAm((5iIxXQeV|^^BiLiWZ0;>N8>{Glm#Lej`Cl_^;qbORcUO=|AgkGBh<N!AFr}doJ0V_&;m-Ft z#=p>tS#Ni_OW&mTpYJ-^9m)gZ**G=UY5;tUDWih1m{I{Do2He3Zu5{k=JwOAh4xS% z9*f6wUwc*o2nY$>Q!I=*PcRORfqg%2*j0M9f4fgElJZpMMOK^&HA@d!6c8G69>-iH zghvZR!=%rB?~pa*_5S+i<4tw0@*>ZVPpxW~(fCJ90>-T1D4{R{iYR5;lRVdQ!|uP_ zb%RrS%BsBS8y#r>w@-dj_Db-Jm|Y4#V$P_O>Uivwo;Pd(&q`%hx0TWg1b~2m*^tAS z`w6z;JV2?`sp&>{JBg_~JBjFetMXt)xm{!WRmkxGIYQ2Tbs%%v<+J`<3sNg~v*Peikxw3l~uWQG7 iR`WbK^8d%ZZ2kdCWAB(w2$ll?0000% zH2Mjbo}5UX%@j3XeO&&usxT%i3d-e3K5tkS&gUhJrDjvkSh3S8$HNOmx^5N0)`x?^ zu(I7+ws#fIB>?q4NA?LUKVI&zN}YzIbKvNBu5^>RWvEd-d9udG^Kd+$2L7f52VZX9smH!ST`ve{>|Pp5 z`|sV&KXhm3nd8LN7u%>{;#>}6!{9OlUi&hra^CBY4p@@RLYjw3(zBzzJ?1!y@9Uy4 zCyNLunZc&n1-;jmjbB!)VZU+3IQq|g$8qg$)bCHiP&ho4A)JnMWFR5u+rV1ytPUFU z?`+^DW5#A7N46cuPF0D<{G|m6V75WPHh2QbR=Lg>}0H+Fba*rRC5;`ap@WO(s zX-lpLjSn~YvoDEyA)C$T2spFF z^Hm(Sk8H;o2SJb|Nu$x2+6?3G(Cmf5NDyMkrLTmSSfjne@3Pm?bM@h-^1=v&}yA-S^)e9CXD{! T%Kmyi00000NkvXXu0mjf@&6w! diff --git a/html/html/images/flags/bo.png b/html/html/images/flags/bo.png deleted file mode 100644 index bcf79862d7437dabb2f7f5a1c55c75c8a58f7fa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)injZ5jmo^_s3$c@Rhd zs-_w3w&}WduSZ;0Aw*d&m4EuebsM&r&44kw+r^#-lr}~|NH+{@S;V#t%R(5#XC1|j#8a+{UxZYllAuV^*w zf7`x#i(7qDQuIueamJ&JH{{{A#bO4)DBZ@)2cSigZ@)_+8kJ-i{=!ID2w?z;F%ce_ z5XE^(3Dt*icYp9W52{*djy!$W629+T$m6-yoe}{`9EtsbF%B&G&)$E&UvIq4ejf{7 z)pbj6IUS?Z&w8EM$L`lJYR-X%35&8UEkv51+1+n{y`(kNa2;`3ok^ V15V)0u1){|002ovPDHLkV1nX213Lf! diff --git a/html/html/images/flags/br.png b/html/html/images/flags/br.png deleted file mode 100644 index 73e93700717b22da2bd9a0b362d4a0fa37c1e608..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665 zcmV;K0%rY*P))mH7$q1|xP%M`^P^diXc;!zKJ(}O3kgZU2( zMDQRYOc<1*ICX+moWqxOb&lCq=epFaYm=r)eobS8{R{TM^PHX!pXUn?0J|#08N&eB zfEW4R{>b29LaxaIS-3cm#}Rqz6`Wnh37la$mh0kJA4?PT%(WTJ!EC?=SYF`c(HMoQ zmtqp78S@!IGlCZ)mGg(HkG^=My4OQ{D4YV8LpT`C(0quG9vn#a*{AkO=>_WUbi69J z0D@2+;@0K0>8tC{a=te|nWpK|q25N&c8e#(k)ht3DSk98eP7e=JvfG81Q)JG-tR`++nV3&;{zUorqw#LQUqs{ znSEW>jimMz(O&;Qa{Oe>)lw@vTZ&p*|6{G>D;U#6D^O_IK^7Hzy8FeTVE|Rt>x#;f z%}%z5AMDvBX>8A?z{vXr(?Fmbr)h?ah&?Dy5pIT|-|M=u`dfXRfiJVoPPXuw@M7-Q zlaHGas$Ue%Q`Zm3!OwBcxi_nCoyeK=i(%(`^*^+C@{TJ3k z9>0C=>qr927KglkGZ|gw0@=yA`twhkX+qe7(10Bqnn1T}+lFPJ1X^oQ?>2l#4uI>a zozn>^E6bDV#^)bZ*lM;#hHjd=p?p(z_gml}JO}Vv>j>$VE~}v89noWkVR)W*e2|O3AENqx4NPN5Mpk260|+&Q%&~)Ar^FUjq_)WE z&g5h=IXXI;PNu;!xHvz*aWi`QY;!nmE3WAVLdZpUY#25W!z`~>tL^Rimwwy6w?CWB zk|YT_EtkK3CqKSdZ(gfsXOd-UR%g-FBnhyhXgIC;wnL<@7K=HhGz^!15D-GDs>(At zir^3;!@v+CNzyq7DP`*oWvt$1Yejd4@aoE6B}vKH;*R?6Ej&HNvf=>AZ3WH?B~4iz z=V{tzS-ZpHI1U0oilUr#j$hQ%2Oqz|Pd|}sk4D(k)B$JtmaJ(?N|rO01MsTHg8!M) zcG?`iRLA$01ae{RxmYMhQA=&jXu95Z!xHl{D+{{Y=7)snPpX6GvI?O(Kv>3(hHOPQ s1rP+ieg8pi(Z}tyQ-kJ-~)C zlFrfij97|8W)v**JQR5#ri3WYvxkxRyAP3&h2};!T`3jT@85GBLsN(PWZ+o33vy=W z8OT2M(@QL8agi?7JdG%wkX*6^&xKX>wHnI=+IWc6KCx8K!#=DDQ3FFEn=f*X$-reR zD%mVOXQg7kx>Q=oic?KO>cG-f;>YO-NY0LY!wpISd(lZ9G>9NF`e=%#b9Sq|xVC!R zG8Ijg3{BD4$M)jOuo%w9G5U^>TLqS8FBD0A6aU=Dt#5O-v3@y8S7f9aYEYFEuVS*E zprc;#3C!hSlobwtUSI;272!1+v!?uA1Pokx2CnO9mFJl`RWJt8+lV>|Ag zg_Dq%3|uPR`dDbU=#5Qwdspauy(wMLJZJU)qCwYjNqDwLESFrd;lTa!3wBRpHcHSl zws#!+y`MoNnv2^EFaq0cH)js9eGiB7f7>ta~2T^1O!CT5aI}m2%*qG2S~gE55P+xL{HBvAPOp)1VI5Z zU?~kKC=?+UX)Xcm+&T8%-tMqR5_`2;O)w!o_ednO9Sz5~lbRmlimH2?pZI(bv>B zQyej>5I`SxItWN^_LsVz8(4{V^!F}A5geb2l+yUNsz7EuEO1baKD6DpO}usH{n`8b zLwH!e%+@!dk&Lm5D{Zm6i-NX5PHr#NtY#7#=5%FwxJQ5Yfvzq#mr|%TPO!?ObKtJc zl@6suy!&WN+Xi{5sOkZ2t@VtN*1efQSt-NGG!bzk*4aYL9s?p0At|7MSRsb!#j60v zQzoDV2PgzY{DPk(&O{1AovY;=kCUg}6kabrht3)_>Jx?Dl9R%sMo2}t|87I_JR%6Q z>~w!;aQT^Lpp7?wUVVn<%s55|U_}Zax`V!AhFXm1J)$2C^XHFKo4o+_A5fn@!NiO6 zi^J;ry)%oqSbc`p%P_1%Yb@AesssiJ|6`RQan@E5|Kx>#lHYrFoNJA1_ujkrR*$B~51yR7c=@W};$pS=wWXzKb#HDAc zm2LCi>#ShB)t&3Q004}VL7EOzn;kTL*VJsg-B@in|M2$B{*m7@vsmfNB491Pr06bEp7#va?_k7=q@CWgA`cURrs+M<}8Ll{%e#E#ry6x6C4e&ljm@pQ`3x)~-lVtF|(YopMDedj` z%2}(|+kUeFRfV04;+Rs(rIbpEF#K_)!I-vb$8kI{{ABUx*Uuj~ug;1Q8wenwge$Jj zl{(Lu?{=oAlJFN=(=*SdK@|n zz8_ij?Q0j_=wok)#}FgRsE}M`l#2)^gYm7=^`PzES?>ntPH9cuT4?s(#UQ4LN+K0g u;bxEl3ru6$zs;z}aBSzSwvYQ*hx!M&UgClqZ^*m=00006_QtkGzTI=W7A=$L{|JW&u)@WdbGfxkpgiz0%at#vvO z9i6pbTe>vgdGqE?6Qfjrz;3vovkUHn2g6PjJnQ4rx3jylT&-*M8|&BInKS53^!|}= zddVDdd5RZ!X-O(5vRII4E_eUs3n~L$`kq`YQEH>MzSTzL&@gfpBYzE|c{2G%_V?K( zIj<;Uu_*9)I!z-C`^yTvpf1;%jV6OJ(?j#}+Oe?p(ZTf`&Z$qBjrZG~cf2Cnx+Xni?;?7Jtl4O4P@m{Aq{zQH8%VJSm!zmI&G4wsx_uU0+uC@Xn9ZxM?_o5I% zED*}8vqR;(ot}Ge7h@BO#?ll4;JL09#o=OPiZO;^>PL=a!+w`5ZRcmz(esBbmRFq0 zSf#IYdvqANeqbR45cl3! z5d;f1(5;~!*ugx`M(3#4Z`eD|t;U9AO8miy_}mFy;JSeuMj?#C@IPw}UulLthX^MK zp63Ks;`U@|BvS%gz~Y;+YnTRrFn}NkK>&jG$v!K~Z*Ii^bg}O{82|tP07*qoM6N<$ Ef``l%CIA2c diff --git a/html/html/images/flags/ca.png b/html/html/images/flags/ca.png deleted file mode 100644 index 0a5003452e38ea686b1bb49f0b26e96cb577ca58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)DYhBO~wuP{oE|gSkRN zFfcGOvH(L71u2xOge1hZ&wuXh*RHv!`2>BWXL)r$z3)Bmi_ocLXg_8MVbpE3FWkR# z?ZG1{@fW54W6+WEj1h6mG)-84*+2hh~I&=W8F@BV{OgGScG9HMDF{>#}D}XPr5(Qt(X?) z7V`=NCt0QuqP^T|^;VY8*6JdTgZ*Ff#Ws`$cB$QN6no6Bx%EY|b-U_c zPIOSQW$aEdUaz`wQ>LkigbqWRg*tho9gO}a z<53w$sH*gq975Qwd!9d~1~S$+luV;25>cW6R0%SN`H<0{Ap{}H0GsA)OPsS>om$vb sF;rD7RS+C0$W>OP8Az3%?yzS14-|IxGca786aWAK07*qoM6N<$g10FSbpQYW diff --git a/html/html/images/flags/cc.png b/html/html/images/flags/cc.png deleted file mode 100644 index 6e29f453e5f81c01619df5329ac15c28fa83fe8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmV;N0%QG&P)1XdU_lCk2RJpElCammJC|* z_}oQZk=-{-O@IZv72xqIZ>Hmule0<<6)&`2z8xFbyZK`_QE7QGraJxdwOh@JcQ0o$ z_dl9Tvol_|v%RBXZf?miSTebG{YGSUT@|km2J6SCj^2I0Zg&4V$%-42jB;?z&;{qmRSMp+yZI= zqphbsxtcPJ40TAu6`cYEP@|V3^$pF5uW>HYVF>``MhalRtxPIY)+!E35(!l9XGpU0 zVDu0ngwiLxLh)a)zW%QGVltP_5lGZzU6y5w%8V7#S?h7^!{X;}fMnl_FVNV@^muHj zplY8M;wIBcpmwB?*C`eGFm`7r;Nv3+)kE*_w)G|;G6t_t64hcs5L}$80+O};rvG4! zY%@C7Xo8^Gh*+s;Tv7dc)mY$LB^LdS(McD|cF>K|T18d%|Zb3*Xl!nYtSHI0K?S9|MbQDURK(kamyAf-<{^!u^=&aVP!@Fsr>`k82AI27?`>S z7+_;!fQ13U1ZpZp%}+bN*yo(@VjoTv{((N}`-Ufd^wE2I0Gz9|A`rF?4myr=_1EwH zo$Xt`A3Zqza+98`ncn2 zDUcE&XnU0lZn;*gRI3%+CIF}fQsn6H@wLsy-rjD#UJZiDfKI{dAL1`BY1;n7=KYt? zT|%6)jWN#hEQ+Gz<0aO-*=V&|%^O?OXllURSyNI68BqEfa;uffM%^wfgeavLV?uzH zt#+|?Wpkq+^hd){NW;Q{_{@X`B1A_9*K?S0!35`g5>5g?SYe-oPwkKGZm-+voeskx z1?kZr{sd#ow!iy7-@Sk4Axq0N7O^l01s5x9nnvA0_oRDr=AXqpE@nz2*s@H=F$mFe z87DDkoK7fDW+|5|j3r}Ad&z91fy6{gS;%orQ#hvU+D@5Zs1m6JD`hEE^LhT?c6hfx z2?uE!K~ZE?g`;%X+;14002ovPDHLkV1j%94}Jgu diff --git a/html/html/images/flags/cg.png b/html/html/images/flags/cg.png deleted file mode 100644 index 1d712ffa20c036915d740b71681428baa984ca03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)jOe9+PS~;aPQH<%l){FFP0bQ$$4DI zhpqnXxPl5Uhceg_a%i1#^5&=0u@()thQOu=Pcoe?){F2aOseD%>0@j&ml7(O7*HXt zU#$Mp2@4MQIhe`QN$a+Yo5f{vd0k(>M(P-2K|F^F<`1|G+%sWLtU^^i+a7I?9*=^1 z!Bu`0t;1!xd}WGHsHG0EDd%7Y0r~B3PMosRNs;$#_rdOXZ@f~gXca~I{DnzBB13K0 z_88+544wJ-E2$cj7DbvDK)SZ+v)iP3m_^U)!EUSzz|FheqX}NrF3KzAlLnz}6%%6aK z_cxZKbe9CO)Qzg^en?1~{-GN#4ddd#HLagEZEQ$D_){P zLah)|+mI>=knzmeV~;%-+&1t4{iWlTKl%LDv@1ndGnq`(X?@&_wgyke<9xMRPEX^L z<04))Wobf)Jg?np>z$4J`(KQUfJ@!&cEdZjqwSHP1fR_qa{X6tyt*bIcFp4-uJ3!T zmKFr2X$m3KeM61!`~7}@dpHD5lP(tV^hDH+_27~7@TqhCh7F-&ZqTxjTb3oIRFU)7 zdcEFYFbLZr`L)DJ!i6w&P1iL5fYa$%y}RDcTQ+he0F1FTP1bDl-sWgDI*Q|bJ_pa9 zZ)^=UwT%gE+rIX8C-6M@{V?BqUr3o{S(;{R7DZzzC0;K1Vs7g?M6N1rSr$Ub3j(!a zN(6px_)p z0d!IbLUYxPpR0c?Bbn;fNNGR-9UFxqoSo90*V6MvA@ZuiSysrBOPMov$*!2cKcDnE THf82v00000NkvXXu0mjf*}Miu diff --git a/html/html/images/flags/ci.png b/html/html/images/flags/ci.png deleted file mode 100644 index 3f34f51ac209e444162f8bca9b3fb70cce31a03a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533 zcmV+w0_y#VP)WdM6bEpBjbmrhsXB$yGPHbDszj?Ib%TH<2jBoKIR!h8!L-}Uy#-|r-2 zC-Z0XgCoiF-{1bQy?%Z?zgV2z-ChT0l-g+RLI|)=2;qzudBG%~I{bJkO<&f{P&{*Eq8^(Z?}uf`|1(sml9yTP1;$5klm< z>PRF#X>GeRA+&K!Gin9KZOYy^7!5E3Xm4-8_e1a7P@5Vgn9%w$O_j^~;a}%8>N}do zAolG6hNrD-8&fyBiERMyT^Q5!>ORy8b%7AdcVhqpO;SqX>ltIT(r~0*6fpm^A1l=( X)Gy+dGtzI100000NkvXXu0mjfi*fF@ diff --git a/html/html/images/flags/ck.png b/html/html/images/flags/ck.png deleted file mode 100644 index c86af2c1b0ffe78d3e1af19d9fb9f00349ff1e95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)lNY9GB`296U)?>|m^ z-~KGK93j-&khExl0vxGQSRK; zN{VQj>e#6{TU2Dl7-OO|_$~r;9L-O@j)rIE)Jl_lnLWIrtGD)V_WQoTm%iiNKU9P8 zij{}2HXrQ+Z72TnVbpzU;hi73b@~@ji0X8j=Vu|ooFs8HUG{$(gd}TrZ(E)@8~;rI zw&ffThyC;L#RE)o?_^R3G{TtXc@Dx_o+Y-mkQ>FCIp831b8~8Z9_>yo+w;ja zFMW#2JwIGC$My_k?$~~sq}4@W)ilS}>wM)l+wzviM^WTe>tP^B6jfwvHk(;<(+k3+ zSe6XKuq+Y9sslk$#6i!3u-MWe!da^YC8;*}Wn3}CUieX-6?BcR&MEM`C<=neW5NJX so_-%E$)(ytoB(>gi#Up}_gJg^2Ye&t3~!f25&!@I07*qoM6N<$f*P$0Z~y=R diff --git a/html/html/images/flags/cl.png b/html/html/images/flags/cl.png deleted file mode 100644 index 194fd91b94d58f0f74a460386c982f2e5b338a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)Y5Ph>*<3$q>A)?qQ#7ZPKHX{B5KYAPUU-WNS+u7TRSOj|!L-*}H$-lN#q|&o8Z@+1$6*#4%56F$>dJ8w7y{7EoTkx&28Zynhy3Ehwd- zNYNBWmemD?#E>qC+CxuO?AHiTSXx9F_4_rsS288UEIP)Rcr@yCI&|mzqPhgk0WshK zZ-5bG+POcoE-5bM`<|yi98?I}`M`xd+eD`yr@w^AA=9el;%rxwG|JU7fE;O=fdqv- zg`6;}hP-G7)|8}|H)DmznKYTtV9Hv})#^Yg7z24x=^)8{;KrJA70IJwa+$0#-}Cdo X4F}90c!ywp00000NkvXXu0mjfkR8vR diff --git a/html/html/images/flags/cm.png b/html/html/images/flags/cm.png deleted file mode 100644 index 00fc99100afcd880fd55a52a8f2283616ed59a61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP);`i2dsoGz!KO5&%?_klk0e#IQBRm zN z;4BE@v+~AK9gl-WT>GzYuJ0f2JJuCdQ8xSOz#OdMH$VImMM;9Q3`MaOOQ{*-$0J{C zPtTj4_hr4$>q0YXv;rsSe@6%>I89NSxG*}MoW2)b*9$o<*cq6zEq7(!(grEvx*&id z`c3ddvzh-2f;mFRKcgB-_6 zh|^*#%A#oZY-IYZea}buf2BAEK_Dj0dd?g!gtCuwwb=4Hr;IACAhh9Z|Abgol6X;M mPkJFJWl~ztWVQcnubjW~A@PfNh8m3k0000(->000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0004TNklqVHJzmgg`6;A#vepcobfV0}}7S3jh)#ZrVT{JL|*^6NosV za>1H8e*Wk4n2>)R4f_^*k!*YG$D8}tR~PwGJbrlLPtR2x69B_B`-6cS1m5y84Fa7~ z{qD|a*#)w46Ko%@Up}1xll(CfGK7>PqxX7NzwZo()bskoVb5`@uQVOowJ9>^dq-B@ zBvHiQ-m2uifkM+X%eFBJ8S4AyU{LFNT9$~kXIe7=Y{H+9p$fB4ES=4oxW;V@7s}xpI+$xcIO2|lAD9C>>Ihk-4=Hu}U z2T+Y+&sW07$e}K(svC03Sjt992%;2j=`W=M01L0^Fu_9L^S9I~Nr6gO8DdrSzmL_P YPpf?BIN4hx4FCWD07*qoM6N<$f_1IUpa1{> diff --git a/html/html/images/flags/co.png b/html/html/images/flags/co.png deleted file mode 100644 index cba9e49db616043f9c9c47a64df676ea385b531d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmV-D0>b@?P)lHkyCf&QgW^1?q^-(Pl|JH@s0>HTmTKYVa}bolnoOHr>D^YbG6t>wz;4TLBl zA&ZhY-lHr59tGpC;70H7C6>K@bz*c?Fl8(Y<|MRm&ouiDuDtjqCOh zVV_dUV#+ustaG7IrrgxG?D6>E^ysOm*Ln7*F0Wg?ak|z6$j5{P5hdLBnbTt>+fCV& zWn&4n^L_E*+n4rgHoLew$g*Q?>`H(V8ply$v%^D5`mU?0YMo_L3CH;{u(Qdd%jxph zc|E=EswTDdk^sjsOLuvyIIk)694Ty7ND8C|_V2Z#T&%KLQLeVFz{tTEMa(0}&))7~zC(Q>GJG5!tpywaM&GN;OJXN`Aay z{PN6S&U-0<=LH@OeJ`ep5rtr_O;a{ao3CAE0zXD2000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005tNklF^1re-h zu`X$|N!lhenIx0cbnO%DAI{;Niy!CkKSxn+B+vyMKJW7I&e6U5RXYMN?U*mG&$cYT*&q+OgpRXgC-vy&hQjz{COvnM+Mqt(?iqKw^b+7?2HOw+b) z$DxGShOSFlU7Ra>Y%&VQzH7frLy^8Xm@;&d{pM6rqEY@OtGF}wWTc#TOM10gTVO`eys7PUMqsl9j! zm!XxUMpc5QJuL3Wacah@JU>i({pNj|W~FR<0GbH7)bf1Sa|lAF($qQ2()dbzXD2000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0003=NklBU3w;=zKRd)7zw>{AG$6;I;1pa)wNv9(f4t7RuMW@qWr zsx=dmWiwxr&4xM$XNR5k$?1Nxxf22bCO~baDnXS>>xsf__SL(7d3<=~_pu*7jk?|T z(Q(6CgAE2XsVd^{?-rLAqekwTICY?_-W#We6Z;S53ejs$+cC@nBf!n=c=$YLHY?x< zR$Ax$VDPD-rSsJ9_wzhwC8A)v_$bb~$z;O%6k>KVWUL{gKbfF{>cEMxknz?APAN&q z+6w#KqH-h>ibAUdW4S!cS;9%0SRLh-KD8+kjRp0J(0Qx1JDp}g0_Yq~oqkQUxCeA{ z1+WA@vWyu>0bViH?87F57^;7T7GUEXR>}POyw{j|U#bh%dk%Yh3+-71<;Ut`QFQ7l kdgyQww@%+w+2>jI4KVto&Dgt)%m4rY07*qoM6N<$f{IPTIsgCw diff --git a/html/html/images/flags/cu.png b/html/html/images/flags/cu.png deleted file mode 100644 index ff1b7ea99969f238b59f80c14130c123be1ce0be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)u=J6x%p5p% z{KV})sh6pUq&(9YUh=;>y zFp#}|BlunxY$#QcHC2VGqKcxBWmyzO{wN?M*}F~N-E|*59B*!>Vfgpv-Nx*l`yyvq zVy!0IwruDE~X!|nm{o3Yja0000< KMNUMnLSTZyRTrfI diff --git a/html/html/images/flags/cv.png b/html/html/images/flags/cv.png deleted file mode 100644 index 49e77387032b04d1f4a95f8eceee83c37f001476..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)t;I6aDV^y!v~KkO{UYi zI}I4)RaL8sVq&A+wmY3xyJP7{ef#bN{-?X$-e531ynmc!A_yYiqe+rCj0_>tH4B@B zU_wlU)OuAl`)drFmgDT+y>o9RDZU?Hx-q3(h#CT*A~6Q!Y7wL>RVjE;)>5&lgv~qvfP48l3_)G&UR6-lYE@;LKHKiSBoEf2Pym6DXEX&8n}#?pV1K7Czd?>~Nb-9;4H+x-c~ zzn5&hH>!5}dO{Bk)2%8IFDau@F0!UZ&eKiWpj+5e*pzZ@>A*bh-Cl(002ovPDHLkV1nDt1rh)N diff --git a/html/html/images/flags/cx.png b/html/html/images/flags/cx.png deleted file mode 100644 index a64c13f228809382de6c2d2ce97158d95c9ce69f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP)c(jR000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP00064Nkl0i|VQi7lL%53zzOHxKpHCMReiD zg$oygA5ajqDoR9XKv*9%6EAz!_k*!ynrOA9&&StcXOtL@0J77e(o|~{g-LUem8)59y9EM&L zu0IcDLrP77h0cToo7-=zg)b?LeUzxX`$?lVM9>DOUbC5-$N;~AY5X4oV$2-eEV7)Xrb>jU)brViZ zL9+*A!#I@$hLOr3-Gh-BbdDqM@otUeKTFe=<@NT-jhbC9Z37NR@A}fDzc2Aonr+cusD>x6nI z@N|!OmE%{*H1Aid%ymPar*Ix33UTfe5`ni3B+j`&+C(k?PhhDk`v;v_yCOT1jw%2E N002ovPDHLkV1nBu6vhAm diff --git a/html/html/images/flags/cy.png b/html/html/images/flags/cy.png deleted file mode 100644 index c3a559c6ea2f44c73dba53134a35eaabf5d57ac7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P)2wS^5Az=PmLCd4yg|ZVBYn zQ0SqzVruP5+7C&VwqwV6f&7;}>@2^T{m-mry+}6f`Fw7S>G%6_9M5JmrPN}v;GCCb z32{P*@B6KdD5V%<$8iu~aM$T{0GmuEWmPi9QX!rg+qNCg4`?e0Lx2%N5C>$9MNtII zcszzQnNVEHV)@r#f?U^&B7Y_Pf4@V59M`Sul@J0D0=w7iot&QT9~@+iEg$d2pI_ze zjkWX2>7U_Rdjy4VKe$o5X&R+;nx`-DA(E&?hM+2a_AoP-88Vw110s*B%}dL z9*=t`5YtM*Jfx7|4YYkEOBnR01~qjj+PjQD8lwXje;IuaNC4@;5xCMDNvXEgAXHTq z3?9KO32wLA!^0tsC=42$Kt{%Rv0>D@oO;>ETI)Z5TnZAY%5!@F0000_t4|HR)%Q**t5CRt{L4&4ghG75z zu%am4y9&m(wY)Yivh_FbPWNxCn-dOm+P0Nt85ros|J3jI>$;|tUSOlq>e~9mSz7w@ zJNWY1UA^8uJGeGpMz9`2sAGT^LcsoMnw)O|URfD$Y-~nJ<_57Flj$e#;Q6l)Q-Xvr zgutypO(W%b8AZhNQg3!KZD;pZmX)(vbmqlLT5*J>m}alv%I|+_!^PfU*qA1h<(SfW z9Mdi*uxORpJUDfuFf3WsyHlUM5Yv4e>dH`8)V?G&j8VoQD#i*{{f}fGrmh?K0dI@! z6*+p`ezz=3wFiddXr|e!YQcG$Q(Bgc*X(kd>n5(xZ$>9Cqr;uvTwPdDEDJjhGEIn* zH4VvgLi3Vy;PcB52tEJN+0m2mqpnD;ju9}nty`927|@b27H6cW>+{2TH|>i03q+g$ UZ=ncEMF0Q*07*qoM6N<$f@aRGlXIqjZJD%EP zyMP|h%X>f%&vBd&4fx;UIR1Kf_x$u!mgR1@+ithE7-JAZob&m7zFaPCGR8KWjeBA2 zZn5=h)wXS(=Sh;(b!{2X^9Uhf7z!b5Qc5rXp?x#PzQpnOhX*`OMV=pCU)AB@YRv&4 zzArdm2(gGFTcGPIt*_Xxo169R?Kctq$oaeuGM@|32tEMrYGjUz;eP#W0t-WeBTHI6{azLQtm<9emqw#>6bn(DfCi~*j9 z2!UaUg|K<1)LvF=y>D7M3|9={=~(3TF*&Ky@iYhkCO#FMEd=`%p@cA=K0t~y!wN)1|`oZs(QrPFT6M%*}X^dRyX zrD4dTh=c)vSodRdmdz-&Ycwztn5(TV6VujUG_LFU9-%noL@+;ufS!7%YjkyNdTBj_ elIG3!;rR;(SKXx1j*nUZ0000Y5S`iC+%0#UUnr=*KqQ@@onRvfLaem%KUn!6>`h~9XCc~%jS4BmLP5k2 z1c{=RXhaQ~n7f;G?&8HnoP7+-?!K8fGm9Igvy(J2YzbXA8QN}l|iO|+C>Lr@sA z)tFioN26XHLRi1YfgHHlL2ITLTBR1n7Ndyq;`+MV_w{L6jgKg$>J3=FfEvIsLAzN7 zwj8q{3g2H8vZd9--0Y;YvhUQnJ8;(~%;J!FMFV7z5)b5pc8~-)C9Pr5T9aaw(7Bsq z>Yo$AQdu!v*sE@VZciu0r3k@%8m$mjK2XI?8tfw?(Mh|MT$>J&z*&`1;?jUKV`vOI z&Q9f^a5xPffD3=E$x#Vpy1zOK=kvRF+t8K0XdhhrC{m`DA<9XxABgBA4|o2N7J;+! ztZZ4Ao=QsxOP=R3v3;}Bl4hWPHnP&LxHb115HO*1VW60N00000NkvXXu0mjf;K|s9 diff --git a/html/html/images/flags/dk.png b/html/html/images/flags/dk.png deleted file mode 100644 index b2b9b12c2b1bf9fece5d5818c9fb74f7afc8e792..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)GSF7iLC2~`+Kgnw$`a@+_oX5jIkcHiepf# zlv*qn^QWhy^Yc}=Dx^5T-7)Ok)MqKQDIx000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0006wNkl6kOPa zs0*QsE+Pt|R74@GmaYsaQZYDM8e3CCJ`72lPVzo{QxWd!y>srp=bTFtPZNW&!Lj&Q z)QT#lpa36}`|$2PHtHuYObpF~I_>5l=t_G@(ScoXu1+5gB0&Og}9Y7c6R-)PxIEaqKyUObC0aGQDRhwT>9@ z2W{EbFb$@X5_j6Iks1v2cl5Iu!*68nAU_V}xwPHj`^CXGI6eg=!Pj}dk=K(Q-yyl2 z8;R8PP)c=?pV!g+2v)|;;oBEKt)8-;HREvmus01Um6YHdl}dhy3bbUZ775Ji+OD&!#Cgoiz3=o4bQ}HgQ&KX1_TI1heJf2`* zDYq3Eh2Sq0Ybvp+M^f4(p69u)YumPES%zUOUpX&6&#nDJUlg|naCsRg!r+OcLvI&_ z5Up0r_x)nANZf~R&8)!;d`B;^is~eOOo7ZnhOluMr)NPP0Ed8luq4{B>o!Fgh;COW zun8PN_ba$*M8nu+W8n2DNdsqr27+w)u9=|c?C2M+qeG$8i?zT)mu)y P00000NkvXXu0mjfC?Omh diff --git a/html/html/images/flags/do.png b/html/html/images/flags/do.png deleted file mode 100644 index 5afc6d03fbe002a98a99aad14159bfaf86a3c779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)|1**DZS@HnI0$%Y>|MJPPiG-xf*g84nYo-dZ{FSh+5_m>x zA(4tmM8qTfPqHBuinL%wL1hyv3IAftt4Xv)&&c^S)(nx_>$F<9W^)NW0715MctQmh tEhN_E*T}M{P)ybv!$6a;TY5w8XD83bRTAov6odf_Vw zf=UsuR1o$J3c8cc-^ot0lQf%&lVs@w^atl$osS>i>2%H&sa|*MWsmG@*S9CP_k%b% z`FG+F@96naPk{gc2w}h9Hw*(IB)4g4>w;xpviEN6CM{XAggdZ$4A1vspgNTrr6fs6M6xUs z2oS@ClIPBR9L7PaW``5${@?EL3T!@mik`f%?4eMiX-Wvma>g30ZmX4i>=AEyy5vRm z@s<{Dqk}1|e*chUex@XzQA3Qa+Z^93R)$O`Pjfj%&hkzX{mp}mroT8Tt0vt+Er&YAzWRR{;lIM8nZ0000Xf2f^aKUmh!0cL9O*QhzogZiyU@EsMi%m&u>JGvlZ6f-Pn87 zzIVSKFYGw6M(4qBS~!371Z}>0J;liyG!#`g3NELF#VKB45`S)h-smiForPuBr!#c+ zb3-}k7VXv#|1aeB__7)KW}2}uT=)T4RdRZYvP_&^&o9TJWzlyhpKf6Kvh#NEU`O%k z5%~J;%ln!2kYrvMx|HF;;6>?{=bCK?*R#ZR^DGlUO_7mfO@4Jay)zHB<0@e$AvlT= zp^VUc6*8M!$aaXkkdj>G)nYE~9&qv-3tk{?awziDqe2qP)K^);8Cr!L_TL1PE9wQD zQAJVYrYauSzwbQLV6(49cW1~yXK@^3Mlqp?WGCZc>Bj8~Eph-$E0UxE2qkD8;sL!vQ+Iy7c>C$|ov7tGO1&`4N+~;pG17I7Tb5(nHs>0neb)doU^>IEUd~sm zWhAlhRbB5F@4?e{lY%|M~lu=WRBdzx#cXByHO< z#yGdgbXL#j^6G9lKriN`3dKIHq)$$m^_ diff --git a/html/html/images/flags/eg.png b/html/html/images/flags/eg.png deleted file mode 100644 index 0f47afc95faf6227f1d61bb69c436a358f2e7a80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmV+~0?_@5P)WyT5QQmHlqu0vEZJz|qHPKzKpQ7OTzJzH^h#cJ*WM%t$g(%+#)ps=u?yRR zEQ$J~{xULjf;?bmLGqhNJQATdNrU=@P>0ax`TTCN`0@Cd2f@+zBhOPo&{dUADdSu? zj+o83;}FZD&(9cLn3>}MwpuQgl;^`C-tScu0izK@88d}2ZJP;!O;cUmbSOUm@bSyd z{c1(V<8ZeNmCAL!xpMHtG1!O-VN9nZ*TuH2bRzR&z&`!?ef#k6ez}Z6heHv^sBQ?V zDJ2$n#Fz`PGEF#HrfCv}=;^7y|zP*j!~LM^ip%k=6m!~ZOiTJNqISaDtw zBAX_u>%ndPeN`)!oX=^JG)iF&<3_T|=N%dwH8&Z>SSghyNfd^v$Oo+Jx&YEU9?| xLI`8rA$3#zVb$Xac2&oILenO9|~C(3=O3f`=Ze5Wz|gJ!uO(%S^X0yp3b-OQI_jG2aR4QdMng7V*IBvJwuInnL_z|!HYQi6FQOyqcVRmm5cT_M4k^aMn*flC@f`Q8=4rua&ZcfCIOI zsme=PeUS2gRn~J`)znQ4NZjdktb~%L5bzzSZ#_L(T9#4@DUT;6a_i6Zw@!DpCWN?Q zVB7XZ{T7u%W&!k}4UCN!>5kjB1zX-y_&Ly@4*%3x2G~*REpPyQ1fuF*oZ`su-dl}N z<9Imoq9_W(kOtuUexuP~HKm*&SO8Y$u)FEteIKDodKwr2Kd6aUc2Q3R(WjmRv%uqd z>^`R-`w$ozk$jWAW7f-_P&bWn@H@bhIn>sG&xVb^S7r{W@~RVjbMfZ>{mA)%Bu+Fm qjaw($5STX7Q3RI}+Gz%IAkP8v@xSGupE(Qw0000y*RFK%P<74;7zrupW98=RPC&KX?^ep^FE{IK&)r@xoE@lNzMk1C~6>C^g z1tjI^ZrYAvSw3nV^v^l~rm<@r{#tz)heN>rtxKaeT(=ci)L1Rdt5D0>*AwZTi(|92Jkci|yb_>Ov<HdI?4*IMAZo~RUk2m18^A5zzyIM902Vn5*Gjo32D+0 zztFmgc63dbq>1g=PEA^s3+$7>pO0R>wl(cuqc{6b)0CzibvmPd|McX9Cdut&l3iZ% zBvC?`064CT!w|=@8-^xA=GmFqu=PVNj>1R%&iK`_lts$tnLlHPnQ9B8)iR-D2iS>x zJH)yR**0y%@LSY-+IfCD6t4aII^%LtS4+KSx~^Nc4N;TjBOElLb#0Ip)821cw|6iY zcH;-Z*H8BMFEW12MsJATQl{A$gto?po>C^GA}3`-jAnaBhojLjovw|GZ%&r4qk|$3 z4Gq`;LK`C|aDb;PtD^NPCwWSCZ2aQ5D#-O`IQx}M?e5L_YjQERfa5@nkPjW)YC+Dm zqF{G-1*_z)8vtrCn=kX*KcvjAezc>xHRx_Cc|LLjV7XEngs?O#s!A~WpA}@Wkkj;8 zxsTHN=PDjp{3QW_51VU%-ddSdh>VnFRZ$_S;5)YbaKk3keU_L~K52TKE9;86dy(aO z%C#7+GfJ`rp;DBED7n}%@^PmArVi!JD>=wQdpL+Zw~YaYT-PXJt8^u}WwWr!W8w&Q>IUiJ2E!YIP&%G->U#-%3^zvWe8K3?b@+Z$Z?p|VZ>j>v6GB$l zo2Tao!>xYb2t#|Zu-<*YGd@0iwDTG8+Qd72cwKpU?~^1qIUt~fdR}t$4?EbsIJ$cc zW0x?y2^Z6_H)u~JSTxo2f%zi<_qWe|6Zk5J0faHY6;gNGzrB~z*bkg2wh0Xr#-Utm zX@x9lxzL3TgYgojAdHFcN0{U*On_yyT!g-rVvjG9o91s<*pd~w)e=kf!eDa-X`V!B z;Kc;z1kqJD^lB0QnUR@OMhPg(=kO>WUHzgz*`{LubouP~Bl(bpL4u-`q?C|sg)P6@ z$#l-#2v8=7Vpm14y|?pU6Q$kmC3D7zAEPitB%{^h^nY4pTQmp&r96adk|b-IrmLOQ t7NaENxR{V-9FaV)7Ey|`>}-!!>n}&z0)h0FoihLc002ovPDHLkV1i#>3t0dF diff --git a/html/html/images/flags/eu.png b/html/html/images/flags/eu.png deleted file mode 100644 index 4c09a5ad32381300ac9b012c11c8bb5a349479c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmV-;0*C#HP)8S7T-X000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP00069Nkl_@fY}qlzu6Kv_)*Cw6#ha zYLFCTV=l?%?smtyDlW6^vO6>H&6}acjaRLE%Uh3ED&-rFHK3RkftU#>4%vml61ibK z-q}4nKKW*@M(W-B?~m5+wpJ@z6=5aMX1STK{T?M@GBp5OCn=nDcK>iF&QYL@(LSJe zc00bOJmZ1Y#!CC*veElt$7yL{?q`yk^KKm`%ko^@00|+gw%!clBH8VQ%3^)Ax!ivH z>3(L7%QXmrp9yU1R(JcLInB6p5euDa#D+PN1me-@@@2ndljx)kW((v}8=R`m7^Ld# zTpksu29`^1z!e|>YX!Br_W7v2;qnmL;qOxTHBbrXOZ9T6I|D7bMj=kaAFaM>n4|_j`jim#cq(scAH>mgc^GJe`H^Uqd-i zDrjS1TCjoACS92A-KkeE2bDOEK&~<0*JPc`VTQ;ET!ax>9n_yEnKV?uXquG{PF7!T z?S($-)k!7FUp(9G4`;SNtUHrkiu~$PzaO?Z4fG@ko!*`p2m~%al2v3 zS}PzEQKI0*lX94tT4ap~E6R|^T(q9qBdEhK4@hxXl1gN(1j-j~;8doq9N0getn!^b Sw{`mf0000=G`P)8S%6oqY%?bu_F9WU8MNwFvhkPyO=($kY?prfKrAMK+cBqT%uPe6l!4hcd9 zq96ffH}QYQGvo2k+KktJf*j4A;_7}!S93;^ZX{XMVzChSd_KSb;NgeQxU^bSkg|-zSU*L40`?GggSc7|?ayG)(~r7ywY$b?+rg zI0?r0ecLwUI9*;wm=I{HvMdWmOv8;dO>3HlQaWPi7i() zI}-#g=sM1}=OWuu6qy$+%aRfM_5-&{_3_K6^S`TqR}tl9U9Vrh{%S$!dCtx)&+}Xe z^>$qof-z1V+N z40dl@QIgA@WSCorkMGQ86R%$n0!1ncnx>WT;idL{2p~?%~ diff --git a/html/html/images/flags/fj.png b/html/html/images/flags/fj.png deleted file mode 100644 index a02aaa3582d89469e4213ab9a458c343cc309bc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)d3$b79wx0+ZTq%vg3@a9agHZ7}SwZ2#F)I5E&3v3n&ugRUKn& zD3Fy}gXXUN;oY|i9@2Uq1gE!6r{f9n{U~P{&vTLhR9V(k6(fXXxZpTv%0oT}TvB6vzK}W_EUGTN!L+)3pdc(baZKD;0_;G4i2;L{Z8>f(#Y*q}1ucEpN_w#TXxOdY+Sc}aXJ&8Xm4z;c%b#=Z|NPG3l7)`8+~ZwC zA)8HIZ+6IqInn#e6~Jl(g4NCSW1soo>pnmr&_VQQB>Hyh)5^CM;n0V(*TuPOgYBHH zCK3o+zrH)#Qs&NgK$ju~Uf<006G5f`f*^n+ z$WRnG;12-sOI42&IlzXc(%pT!sO9#;th20QbcE#P^tL^{+VAH0v1jR@7R&G;78fxy zs?SDRlZRL5rr`Ta@P*2)ldl``19^76qH=^g|KP-cXU1FCm478;P5JrDCWm9(HB}|{ z?V8yAN}2a5iuzqqto5FK_vZR;o~(KJJl9pi#k+@{&go|57?3WwYibJjre}nL%Sg)oN>_rkVL_8}}%x{PoAZl9ao5vHK=h~ymk9)Lnvdz{L+oVxO*rIJ= z2@{kBX{Z&YWF)W=3@TJEcN(=$z{G|WvcWU+mOsP7=&Lfg#=4}1rlwL&H}kxe5{be> zVa`CHRG`ded?Fzl2aO;_kR&vr>v4fMG)@5)Kw{gQvt<6iA@wXR#Wpv#P5uLh;o>M_ S>s84B0000k}@P)8tk`|cI*RfycgV0R}0WFU%Q)N!1g-%1V=0i=+B{w|Kks~yvvkVN(LVo@i}sv$;Mh`hd^ zT;$z(sX`~X)@BZKFo;Z1GyQbgo-ODVV}O>#=L=MjuXA=86S$fge_gL=x>{Q{D#e@A z&l}94rl`n1)gn0)n2DmTQ_ebkWCDI2mDYJ}&@@r@W@ z8#V6%x2gJfq0A}AkDOe(@7oe%$|gM7fJq>6N)GYb+Az#A~Yz<}6KV(Z4jGcd3s@dPYP z?c4!SNjZ+(UG7ip#EG2*-}RoLU+L$`AAf)TehuSB0(wTHQP*|*QFM586q>!^hxg}B zfAQ+|9;&2jEz80f`&)UQXPPEL$h@Y*FpQ$;IF3bCEz@+BriG~WTL1vtwh6|B=mTp; zN~!N#dV;_o4)^2uF-B;$T)X43=tI*4Ce%K*>$+Pf>Nrl*s7jPOtPSqM@PMJguL=7* znf9ksMZ(LqQk_Mx82~%5kzNk)x+sc8mhG@dU%#A;6aM)VNUrYx{2}vv@8aBl_Y%9F z-|Gdp2ejXZ1Pj#&mV?!5hdp_C(54ffB*o=#Yn&KTLTLF_Nie!)G_-3_Eu<6`FZgny z>Ux*t*_h3;>|Z*aRjT~<{n_c;KPOMGPCq^v(121G2Vas_o#!h(RG~jxvB=V;h-y^v0HLJ&(`Z)*0r>4ou5O9OFiN^ z$hKS6mZDs4wBmY6UNFWrvgwU6cHM?fUH^yZT7BPjF@#VmsjW0qiH*v#6x#xBsQ=6L V>L3^%EJ^?X002ovPDHLkV1k|~6QTeB diff --git a/html/html/images/flags/fr.png b/html/html/images/flags/fr.png deleted file mode 100644 index bfd4a21486cd3dc78d3fd445b3e903d19f665919..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmV+l0`>igP)Qvv5QVi+5{I;G7;q4%a2vD@5Hv=C{K+BGlO#Pu50y(LVI8@aEKv&=Gb2ms z0YY#HaKMlA-t)W!OF7FU%y@dy1V`T&=+OC-xo?LM~MIQ#P9D@fONIu%Vo$| z{P;*ldbwO>*~RAiMoL|jMO`1XQrHiIAc|v{%^2s9rXhejy&o{fW?A;->guO+QJ(M0 z@?eZ|sKoczc1!z;%{|47H!*vp+$-iLX!j-WAjA} za3rMFx@_cxeabE_FMsTItq_IpOJi&pdSMtQ$lxfYXqx&#&{Wt=epjAXFX_ZU=f zb^9O7^BU#7zP3$cof|AA2}N}b81l}!(GrraHr<#omJoX(WK~&fy(oIO#2BTC@A-Y- zS5l&-PHWuw#T3blsLN90^%Mg^hI7=%aI7-AmU57147x&Qoc6)>1{zf0ejP(ck^lez M07*qoM6N<$g30RV6aWAK diff --git a/html/html/images/flags/ga.png b/html/html/images/flags/ga.png deleted file mode 100644 index 18eed1acaec656f961c1270d2209564eebd7c145..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)WyT5QQm{`XePuw1XB7QXox@1aN->7r8<=UG_W$dWWuig06ar?z`v#Vi>g@ zE0QgV5-HM>Dx>ZN@&>c~=Di0D08f%NEdBsM4<;9rtLv-VyW6Zt7wg61;XV_o?u?CX zN+@T19G{ICCl2}k=?5IJLkAe=&(0?|uV?#8{7JUUWc^s?l`&n95cWJb^nK=gAx6H@ zM>jm|BvU-eNLI?|oiHINc0N0htvg+GE?E2OD`*+h?rb=wu=D~)gZMPWPp63Ta z$XG;a0HGsgt7UCuJs`(!^Z860k?$YMa$`&mdIKSH9MAWMT+H)Bh&gm)AmWRCQpA@E zMUlR!AmVLan25URq`pkq=4Lx;+a;#gv`N!6Yila|1pCAP@y9s_4gjnvpwf#QHj=&F z9lm{uoJLwP=F-_g%1n)iMTU9fI~9&ZF=ywoom~MP*XJZxdGT+wyV31moAG@ZPdt{YjEg`W7~1L@f%1bUz#h01Ym$+BlfM>It1LLS-R*XJ`ul6SzjQ2)v@t!B zxWEfA2vV?sZu5}qyTPi|&iy&()s_2zXLtWI{ijJMUrE1y$0U=vM6#02He?xAtJOH3 zym3p{(a!61FoM*YjS|lnN}NJkw^1IC#0!NCTUe&WVzJq1s35ovL9{rI5d?~&uokI< zfFOz-UzTKfbxHG?0L!od%Q{qzx+H-m4mBC*J7EmRsNgj%K??bzAV~sOR%dffsS13a zXtDF5>AEcV_qzwMTIJE>BuL=?Lv~vyfgnlDYB1|Dfu~=*{0Zrwr{wq&tq@45|L}>? zgT0QqZ*1h@G;9qmp(Kgzs4*mof7RGS_dg;wquFIu|A?Bn<&p-Oo1JP+8{1`JAB5+b z@>4DKVOG@36|;dv^8^e*Fa)xxOz`IKO_Y6PXxK9Ieeaj(leK-8l7Dfe^6;PYTk-$^ N002ovPDHLkV1iY~H=qCj diff --git a/html/html/images/flags/gd.png b/html/html/images/flags/gd.png deleted file mode 100644 index bde8e2e8bd4b3f8aa1236d130ce8d7146ba0a0f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)&JIH1xr9$*7~KHs07fmh zS;=j#uIhMPtR#~;Z*L`kZ8>uL2sZy82lVb8yt|psX4*r_;M0=qm+TFvd}T~6P5qlQ z|DE^ce(`AWzK7TEE6-eGR*0fqENzO{UwL+!rxU^1J}6$5Soq`@I;x4`nr*FpwYuvY zP;p74OHmfTvA98XiI5^O2N6i}#~EojxLQk7$0R+)n+jvTgZ{-vClE^G_PKr}W5(C*_ANH*R|sfqvq002ovPDHLkV1iu-3V{Fs diff --git a/html/html/images/flags/ge.png b/html/html/images/flags/ge.png deleted file mode 100644 index cf5a612acff96ed8e7db622a6a571010e3ad97f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmVx>y_cC{r9b;a=3;E{buCP<6D7Dj8X`9BTv39X5 zvf-W#3539paJS}0&XN()+-fQts1qOQLU-~WW^n4HhLd*d)?v7uwJk4 zc01Q`KF4E!v5-Vj({+H**_ft|P%cS_Bq`bOb!gjm|FIuNp^)dYD9VCx5^`PB0favW z7>1}Q31gVVC2KdE51mf9_r1+F2*X1hpLmj@RscZ!d8UaBL)J8wWtb2glahtg>BnT^ zE|=^1Jlt$plAI`oS4nY_gb_}U$C71)Y*s60HrqQ6#h9M}0N_#BP1BP3uDf@?XcXmH#((LO1pg+bjL~9V*qZ$JOIndc lcoL3y5`W&A6}R0uz5#Z*<^eM#LxBJQ002ovPDHLkV1n=H))N2# diff --git a/html/html/images/flags/gf.png b/html/html/images/flags/gf.png deleted file mode 100644 index df12fb49f5959f1f9a4a7affd5c21438ce07a96e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmV+d0{#7oP);czvZspXe@ zfBS5=8@G35Aq4@YX-agWG0vJzrh&Dq$z(eiP^F@jDgofjC@YnOh$MmQc56(tju!*( zV&Zl>Wg2PyJsNS5xOP!{Uayg>SJ!1!XhDz1_s(gp15HWBYp3J8joB?07GRgA3LpVc z1h`m$LudUgLByVlZ9@Fa=bR7&fVEp9CZq&00`s|>PhyfJF;ekR5Ln&ZH225eUKf)YlDP3DE^b?2RFlKx0=r1Tt*c^PnJ7hFLoI zCXe2{yC|#@g-97h9?-|R`dqL_;RfN~J5kJ5#_Wqh`Eq5gHP%@Zw(%E1I28A=xjpC9 zd7V{o*TFd!=M;)8%ZxQzBirMXM3G#^asG3;z}&_09}acDkbiP; z#p#sOl#v+$PV;#b$I$7tbvvDureq;%Y7~C4IPP{}61Q9F_1>PV;48RJ--lO&P#C)_{s-2*?b!6i*nf1OR3eZl3j*X`!cT~c`I zhfY&~WqCXgs5`D}bq8e$`+dU7BWj>E3Jn?>%KNlZDwA19ov;zpN+oCs_MUoqoI?V@ z0FjaO=*$_o2#Q=cp|(t`w)hC{%W*?>R-+(;Ew0L;0#i9B!&TA9?9n$$!SJ{2fA8Z; yu(p8$_n}WE)ny$ph^`1x?1|k7^s_nLkNX9}fRP7VQPo8N0000d-aQC-6Y3d9D4c$XfcL2u+^B>VONS!I(GG-`ZG70Ap<^mkX^SVN&5Z%aeT}<&j`_zNpy2F z;QYOiy}PgR>Mt-*v94>FpVF-9)_dC<4u=pTgiuPq-`_DQXPXV$8gC+OKR%vXyELT~ z3{NR*u+eBQi7?Lfc6;O;9v}ot4g>!+#!07*97mTW%tF>gO4(rcv!pDerBbyhlEos4 zA~(WDyOVS}p;Tp26iUG?QVH=N<6k~!i-malQ%hkz{eBgO!ATOlgOwizX4^2${OXdL zD5n&JNFf@GTwdk#`DV2;w6<*94FX@O)=3>$$Ye^^HJ?sFvn)$+p;WU;_Uk7o1I9$i zaa}JAeT>~OM9PCV;!+aMWL1F|T8rmD@Iw0stJnG3f_nWz00000NkvXXu0mjfoe%W4 diff --git a/html/html/images/flags/gl.png b/html/html/images/flags/gl.png deleted file mode 100644 index 565c7a170424a07fbaf786b0c0699ff9bcd5bf52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmV-E0>S->P)^*V(1pGQPnvv$4bN(Np4@rR4@AqN1ZTr*F(YNDc>NpF>!FkRO z50Pa_lB8*xX`1zV-7t(=DQQbLn@zyJG#Y%+$3K6C<1wGlQKM12xKK_{bzKJlU{Mqq zWAMHP3w{FTbE~ObT?HctzrC^5sz?%HHd8JywWlYelq}0xmJvcKtle&RI-S<g3YQbI!C4_1B^NirDJ^4vQ)@rokFxX5!bt!es>xnu3_nlRk=TNXx`(uKb!Ed6?a zzllViO#I0Nce||DEB5vTK~Pjx12>ihCC}&C%a{bg8sj9Pl<{iFXt~7hl-}IH^l*j5 zRaM=_u(328QbK~5kTj({OUfiS-8Poo+56vrsMV6r&w<${4hJ;+kv=?xaU761;T(!` zUSXj-4^vfBss9~Y|id3v4hj{pDw M07*qoM6N<$f(?HDmjD0& diff --git a/html/html/images/flags/gm.png b/html/html/images/flags/gm.png deleted file mode 100644 index cdecab3e8ff687a9a24da31ee06e62f7189c74ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmV;)0XF`LP)^J3{S6-y*uM9 z7f>O3GB=rQ=A1ca_u_rCdDLn(E-sQvMGXK}JHWgU{e1q~?M?;*meFW293G#aAGX^- z1b@&XLYVaXi%v(&Wd>%Od+YV6P{1VF=WLnky^UEf&f#OT-blxau5fbdnE%-(S+;z6 z7KLfC#CMkugjI(?&MJy-JpDja!XO$1f(GwrSgqYoC*`dX_z(Gj6pQZ+s+%LXqrY<_ zxl>qODPLWml@996Ok`zY5%+eQZ&3|FLdd*drselODeP%#<{ z_7U@BrXOhrgzAju)`Z_4bFzw{fM$xHz=&e@z(vw39%+=tO(g3Sqf{`b-~>pJfNM!@ z<`+KLb_-z19EgosgR5UHs;P0}>zH0Z&5}T0$8DpMfW@?X00000NkvXXu0mjf8z#da diff --git a/html/html/images/flags/gn.png b/html/html/images/flags/gn.png deleted file mode 100644 index 56db38e908679e76958ffe6a482d7ac7f61eef27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)`N5UlE%dCzP#L`B7jq9}OMgC`IBAL9Rc5dXtKR07FC5CR&aL9**2WL@$$ zGu`&gM&hI4%}jSqS5*(+JsEF4et3KQGF@9&rN`E*KU^A=@Q;S1Z}#qWK`FL4n}7JS z`|ampv|qpHM>}_4Jl}Zw2olw>wtmJQP&612?ZKTJQ2@*PhtutY-8JbVVh0Sf_n$(S z7-CUwj_3HlTW6ntZ1oXZ&OaXP8A-&b2#Pq{*&mK4WGn@@UQakT)y!?QqW{>4~aqxZe&7L{op z+%K4vddh+di(DpDUVfv)q>ZSmT4@W$u$17Pd^!y#^m%ANk;+M$-^68H2sUG@*LJNs z<;XmEqSUm*Lh;DL4CIw1zA%*DO0hO^qL^v4o7Wd|T8FEmMREuyCmm1SxL|Ias6Vtc hBzHqXBcsLT`~{!Z)&t^H$KwD1002ovPDHLkV1fz5?}h*X diff --git a/html/html/images/flags/gp.png b/html/html/images/flags/gp.png deleted file mode 100644 index d7fbdfc6d306431183572f26891847e30481e585..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)q>>uwv5^MtWPOvHsT>jTQyPtFyY803*bPGy zAqfB#BFm|$>z$g_w(CE)#Gh4{%hnT}RY$vXegDp$<@>c^=tvo*LP`D)ql*PeXZ&*B zqztGQI*t?mCsI+CT-Kthc3AfIT`@XUgaUmf({g--;>e3*2jgudS>=RmG9m;MTyVy~ zWU|FRkFVA|tD4F%OynXQs4j-x!1AoNkxfDJ)nX-zQWTsQf>USHOX_oH5yDvGptVktgjrN9>Vz2y(R?0XySy9L zRKNqlg0K=Ue~E8>e57WT6q1ZU!L24ea#d-_9jAA-$?Hl=Ip&sw`lI5~iN;0#bO++F z0~7{+YC1Yt;Jd_|5!_a4tL-;c(=9SMj)R!>Ian9Ml~CDV);oY8^{?s|LuGYxWF zxPj)Yu>EO>%*z~Xy|Eq0L07C;(~Wb<;IC< zC@mx_k-XmZ&U*GXd&%+QC*Wu_8jbYL`Tz3|$GxlgZvU~rZ{6OWJw5Thf3&kB_IhkK z3s$SVu3J$QbzQ^QvTcNrDa+z;xGMtW`{?lS<6y9Rb@hpm5@Y5#t){7UEenDG2h%h# zaF(eka#b-v*4Xv+!RG`2`1lB8H;&1}!=JmmNt!mGMO77q49~-!ixJjEvCT5N!5$y! z<)!ld+xGqa`1fS`<-{C~&WoawBuUqG3ko4!(>SiBG>xKgH0m(R>}`8{G)*Uy*~`nn zXsN|<-nIfTV8(G6LZzaJWtkJQTrQ(cx1YoF4}B#|$zUMxJf^f7kHc;Zyz9!2Qy2!< zwiTr$3KvD0Z6*nChhaFM&ncyKUGuyE)(r#XArJ`m;4(>)U=gg61aw|pd|h|Dx%oAn z{(XI25K=Tv3k;0Tb&==Uwqq!=z*t5|L}^?U8LW-S(^GY@hv-VK>*g&bgu0ZlB}-e3 z<#7y_Sf2A~DrcGW{M=#vK4;rn)2NV=s=lSPmZvBZV=PHn5HyY>0Yhn-(yjM>tabed Xs0P+1S?b!>00000NkvXXu0mjfFRKd- diff --git a/html/html/images/flags/gs.png b/html/html/images/flags/gs.png deleted file mode 100644 index 6fd7edf038f31aa484ca261128adb1459e01a2f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4w-kF5|bJeXkx&Vm42;sJEzkC0!T>4F3R>R91U+=A^ojY04?q~zDd?h;N z0~QRFTW);V*Yya10AK-)x7$ZwHh+1&96#jqY+#?sT|bw<#YW?iW$V$XtNJJt8nWUb z_QMJSxWSMwpesgYV|~*y>MD62S-D-9UP{ru{SNJRwCYa%{_2cr)M}lNho0hgsccv> zO%Hl*ES^0)XlV&u)VNw$d_3>c7wZR4iWn5*S?E1@8~Q%bvdOTg)qb;8uQZ_F=cu`Q zRDjoEuAifgH!nTiuhWL@la}eQ2;uOj8RX0g#4cRB7~0z@HEabDQ@M8hJk4a8u{*b0 z{-pNYrLKhlid@%Vq_jqw5DdUahi1)aTht?;5XE$65RLO8nbWllGbuqZ0jOl)xCH#S zgzE2`voT&7wUSeu)+_?hm&=_1$^=#>AMqa}Apo0A0=?eWYty;9O}PhE^$}w#fD}2E zI)P7kK9Tfg3XJ*j#Z^^K78a7I1Q0cW0RVZ**@yrsbrQ-DTtpXz1K^;rg>VG7WhW~D vegMhHWoiJP)3m=$o}|h7B{>4H0fv77aY+VVlX?8j00000NkvXXu0mjf{&XdA diff --git a/html/html/images/flags/gt.png b/html/html/images/flags/gt.png deleted file mode 100644 index 2be4460bec2252d1ae31370d8d5d223a91e2c7db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmV-Z0<8UsP)$~wl;o&AR>ZA@Z6hMkAiscPw7zvuiia+(jG*? zt0x7~);8Ji*_qkhnc3_*k%;%c@Xlc#emw8jbD|6DJN!N|FMW&7UV-KUd| z?|B$wA%s$O2w%LP0mIr@>-1Vp!$1cQ9k>+AqQBO2hJ)+VX_hfJDj6YC%B7_1l@8km zL{`0PLJL%-$d>=AZM!)bjkd2&YXAfhPLc%Uc;>qwzkUV)7|3Wh?Urp@2x;Ylr|Aki zHyApXHoNQn5EC!Le&oLS@S10z;*)nT-@f`0d|&VO?1rIhHNkU6lNB~}E>5;~Vw%qV zC?f3C{XOmv&iCt&?l-`K1mVxN-9$hyBu^=!geYX0?b?l-Ea!e0xe+eWVo_EnM@RGC z-tnmn@t1z5^GgFXl^J6M<3jM2TLtQVgy%sV(~JqRHJ+ID*5S89PpdYa-3Pb#rAV_Z zr3scIS97l1LY&NlC?G78g>yJg*%pIsRO9YjFOa6$(L6Du~|%$ypWZyL137TrrNb-nWm|>uP&~}OA^9` hltL;q{x{nh>kl|p4J^@r*WdsE002ovPDHLkV1gUs57Ynv diff --git a/html/html/images/flags/gu.png b/html/html/images/flags/gu.png deleted file mode 100644 index 2e6f0e020640f092d3e69a0a1340f3f2d3c87302..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)PTI~L6ukT?KW;v}p%0vm=65)!KjT6Aoe z9gpRq%63s{MI4}?>b>1p(qHui;Z7wUdve96>n>K0)-Nt!9pdcwpPSvaAI1gkdsWdO zG{^R6a?c*y769hQ5AUQ~${fdDxbtV*ZH0>v1zvz?7{WYJ#op4G1C+@?b)ahLg3uFA z6y6X(cfQzco-jc|A=-N=4U(%38IQ$JUziLBBkOnuK$k^^o9e`-v-$GD`N($sAo9G> z3v*Yj%eTg1ro2gw?-*FtZ~%cUON7)V#+*pEsg~=D$4Q#`e(0k(jq&onF&&*hR4-q@ zbe9@~L#SzT*V2+BT%6eU>GK@d0gCoPl;)Tcs;bhuTb*IUu!PAF7`n##uCB@=%UViK ztUpFN?7i?1=S|Z}njS>e&dheRavx=#eWpmPY3icL+P0zpS#(G|AE78ME5aB9rtFv2 z>etuz$u~cm^gyKzkHl}RxuK*vJ&EUs9*PTGcl?)B1)92KJ3l_#;ZN{)IF;HOmj%zn z0VSN#6T3!vRCHCZ%BrpdQ?smrJwjurhNdWxoU{pUNXJMg)NM~_f49Xt)<4*M2ml&l R0Pp|+002ovPDHLkV1mpU0geCw diff --git a/html/html/images/flags/gw.png b/html/html/images/flags/gw.png deleted file mode 100644 index ae52ec3aed15a1a3ffd9a8820f9bcd99a066800f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmV;;0W$uHP)Bb5PfsEc!vZb5lu8P6jD&rlUUjKC#Wr~Z2cS7)+YV}VH_m!O`Tm(A?kdGlsx>AGI8HX6I_cA;Em5eD`me*{n03_=f7Yy zZt56-LVCnplVV@>*H|PYb&^(0;Nv$PiC5Bk?bRn|`w~G4LspGf9VwZ>cVgF?q)eF= zVqzn;+ItYBGh!x@h$xx~K0u@a=ydH7}ngoOI2N92Bk%~kmLWVs%LEqGM zt(%c8KP+sm59@W6XTYn_flnzzgi(p&v5FXX{m{1UvC;s5gyP1eYO~pAnb~fgHS{rw z#|avoFl2%_YC5Zr8Z3Z0jqF&K`#fulqHi1GoFA}D5;7La!3DL=E9!1 Z{sG!z@5!!D)Oi2^002ovPDHLkV1kT1?5qF) diff --git a/html/html/images/flags/hk.png b/html/html/images/flags/hk.png deleted file mode 100644 index d5435b6e74e3a002934940b9d4b41f3ca466dfa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmV-n0-pVeP)*;XhG|Qut;$&Oqe>k`oQ+$zE(B2$iZu5>T>20nm~;KHQ{ zx)6#eh>JoOTAkXN%ruipa&K~PZZg*!J5SKVIdB%|$N&7#k)&gVEb2w8?$+AN7tVBg z-OX$gj{Co(-8~wFlEnZ}4a>59-)*)m-&dgNynfp_q8FO}srGXB(nW?*JRYUNK)Kd4 z9&afM&>=K!$8ucLae!_xUeDKTfC9pmB)f)>%;Nv@eR?Yy(3zlF!$4;-b zH_onSQ5Xe7TuR{KGw{@xzkO1-KkJ=!bMvYu71f9Lw5(E`B{-X7!cu|JbQGlVF#q~p z+27aNiyEft#uXTk_{-;&>o8MBh)h#NSUJZ4=aH}!4Co}}8j%nGz`KuZ*EN28v9I5h zb3}jcWQ4?mE7=iNp9D<~r@Txf{2X@$dnO;a>Yj_-^n5>b6-K9!oL)RFG2Ju5%|TcDLqJBAD=ppdyn zFl16CzD|Ban`?#v8xS&?lIuFUz6|(8kqCRnQ!hsjOQD$u`GM=-Zl?E5^d?4k6+b=7 zRG+-f!z_)RJ@oZ+DVHl!YHM2G#ErezuD+0_wv&fX@7>ZXz_zi21NZgm_bYFbr;n#j z*st@;vxXJf(CtcHi;E2<5OQ4k^2HB|(l4m$q-ioI0$>Sfx^RF#pbA7FwBfR47(f>w zhcz{%br7syK>Z?s9{XzjsEW+zi_3?cgP3=eqi0Usx^bnDa*1W0u5e! zExK7Ggj_in1&TnKy#N)DmE@73+jmD;0GLc7nI?N>VqxLOtfuAabylSpXmQ)%JsGx7 zYL-iXfI2&%Wx4F{JRos1l85L4e&`O=gAGq59uc18^N_r$z>^%F)8hQscVs>;V|g;C lBkP##v=z8jhsP|S{{Tik--hzTX*>V`002ovPDHLkV1fp!9}xfm diff --git a/html/html/images/flags/hn.png b/html/html/images/flags/hn.png deleted file mode 100644 index 56e0b0248a9c6993b8c2dec499ece0d13654adc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)pzpE2L5XWbB=l1U6%LTPi3qwd@KoGREu&`CIv#{4j>jxHMBM26PomT!2b{4OC zC~6~i;>%%>JZ;P~aPi0G_V#X^-6N1;7M9)l%y(vXadP4QczpKC<;hNVj9CL{U}R9R zF@zT602;*R&+6~n4+pc^A^lpe4}avBE{@JkPH8Qe@{wB@2nK?+P1Ah(x!iw~_fjCO z6K4DF{Z|udBHAz*90I@{>70`=W~ET$U~so6)^af%o*+`2=mfxqjR9D9ymRe*zLcbC zs`1&2eWhX|R45LzWHbL>j7P^M*X-MBG|Zf1v6i7_fw?SKIGs-W{k}0q8dIVl?B0We z=Z_~MaeMdk%cti#SljycthI~90`ol2vMi3{D2jv>2AKbq?$zFrF?jvz$uuP?LNHf50S}tUgcZ$OLR|eYhSl&0dOtJ!STi(QROUYnhy{b$+VN5;1 zCS=iJ?g2*0TOpV77|d&9N@|@@U0ej50E!N=7wkSti(Wy=j|);Y%12}OAD*Yy*o%he Qv;Y7A07*qoM6N<$g5XI8kpKVy diff --git a/html/html/images/flags/hr.png b/html/html/images/flags/hr.png deleted file mode 100644 index bd133ba62c529d255667d3d4d7b953081ffcaf1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)b0V)LV(APll7;HgQV%r5`jZ}5T zq6i_eD={shG_l=yempaFY#hiF^yr@5{dBJGy#U-uO6gYsgTE{@}A7+#%znI67(M51_}v9;McI50HLFpQ!oC}U9+-s|?3XQ@tWZ&c=RA>$a&f`C#= zC|#}O#mmp<{>5YxVIuMzAPAn_Z#;J{em;Eq;q~Q0C#j%i5GHfMnGk%19e+9>kN*S# zOVeCck!kAhNb_W4bIn&_0rNa0B#z@q%0$W%OIBDA%#%bySY8DghVD34&DIyHgOo}I qWsGqlu%eWkkVPT$T-@xjmih|~82bb*i8*-y0000B zDpgg-Mjt%VcWjt z&zSEqtcZ7Sn~)S0`ep2A{xF-3yENLnz4k6I zmXouaw)AvR_e{RqinV$s@iEROTieIMXOw;lgK_AOR*A3f?wuE}`Rcna@K192iu`z~ zeT6lXoQLd+SLOLX%xSW#V1lN<^k_=+6m#>rUO#^EtZnZcxQ_KLT}uVa^L3iE>XoR( z)|P}}1Ut>=73UaY@%+x45Br@Prt7LZR;9>Xhy~9Wq#-I^{!cRYVXIlq7^-WT5S3D@ zQN>VYsx%TVs)}*WGM)V3ng&<0JdaZba9&j_AUC#a Z)*tMz`Q#v>WRm~@002ovPDHLkV1g4n3Ss~N diff --git a/html/html/images/flags/hu.png b/html/html/images/flags/hu.png deleted file mode 100644 index fd76de396132c7e9a870e8ec723ca41afe2b192a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmV+@0@wYCP)n7PJc|UaJS*r@i#dxsSj*R9cYORk!5VPGZOT z>15d_;M0s{&G^&z&B&JZA=r@L_qWeyXYYbjFvTvW1y`T3oT{3+vVG>DvI718zGMn!WiY;XAJp%yVr0b`RVDG^Yi6u zg~Kp=eHB`F2sxZ1&M_eY=j`|xf<#e|kW%Vk^4E`_H#gVczAl6)|Lt}{h_36P0rn`R zY!9E(aU83FQ$wpRnb)Y@`et6luY?6&oVz376;V@uvbTo@*Q5bp1Yn!&rN?A%>E7j-& z?di|c`tLfCiRq2!dI1e$6nDPqbSDNem_Zh@%u66c=vp6U+ZNkG7sfJRj8MWj<42Ip qCq8sx7+Fob1+>Prrv2E*n(!a(pXfm+1+4=B0000n_;#>cjPJw`NIwIu(yk%`qDqX-4Bh zOA!*rgeE?Y3_wZ`qG~O&n7saUbNG5_c_Ergs%D19C86tigwiOnE4`0aDZ)gLlk5g* z%;hAKmk@$HKjnF$wQ`IB0EQS_ERN%dMV{yN{UC(MvaFTz`;VW?w1CBBS=QY+LIg1d z00fIU!WfGfv-voVO7)fQdk1s|Ty|@kMhLEyn&;(A2%$4(<@>%Z+OMh-ZQCkk-KY!3 zId5AzP17qAhM{F_Vk=$O)pcD}wSJL$#pZ@*gg#V(-|qaj*=@f4`2PFX-NVlZe&SVC8DrpkNO1D!ekO{=m(Ogu!ZE}5 ze?u=ET3xJwUEds9)s|%`gs|4a3C5U4VVcgETO`?>M5!6P@Qh__bGg|c_KrAS@_JcA zALm>U1eDSwp=>^9SVu|LBiu?gvGsPn`?_0xS{A$@lE}40BMJf(hG87XEKOOqpiYfA zl-kx!JF)HM_G*8{1qViZIt&8|2qE62-mo~EA$`_%5KUJ%ogW_7_3fci&GGp$FAE`s zL(WH{)EmZ{y;KxMJqlW-&jO5<=8Zko zPX*6U;?&vB1ulFU@6~`G$5AQ+kwAh`+DzFXQc*n$ErxOMCW&9i0}Q8HE77(PN%dA~ z3%4?L%gelyl^rb!$$K9d60QaQ9<({vHAGUn?+h^Wv4`dBKLpd}zgPf<1^@s607*qo IM6N<$g8hoy00000 diff --git a/html/html/images/flags/il.png b/html/html/images/flags/il.png deleted file mode 100644 index 52dc8d3852989c4ace58118863e1359d24e6f578..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmV-U09X3Zg-Zwkl4)dvy??$tnNAi*i(5NMin8pwmE1j98YTco`=RNVOT*Dug8E9%ogVDP z%K27G!O9{lvQ$vQDPa}aVzesFw(dB<@=U$4ZUp;Drys+PZ>vUBk^q|f1_z3(mbWdt c*~i-0AHJ6XnFFV20RR9107*qoM6N<$g4WRs{{R30 diff --git a/html/html/images/flags/in.png b/html/html/images/flags/in.png deleted file mode 100644 index 771f21709e917317e2bb593f2ff27645e2d75d8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)s}1}B000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005eNkllV@4vuKG~jU%OpeEk`Ap`V?zU{ZmYlW*0s~{qc6`Srmg5`9mUSmO z=K20)a`I|E!zN5=NTY34u|{d75%xUGA2`E>|xlLDC-T_?d zquKPd?>Yd&vM892Q~dA9#o|IrNom43Z-+*K04u086AB82o4#Qf?VfX<#7R*U`y(Mn zQ5=Vq=A}?g1I-?JLXL86^vuiaQ;VRYmMr7DB;sYB75Sch{{CUPyxm0WtYjK!jQRtg zSRV15VG;E%4wXI zMOEh2f3{=mT+#+gY#O$05#JvU$$IE47a;&W^pL6?G_%F`OP06>n2-qHNwg4ex?~fZ$0% z5b-cPD8qw-AWRPqr{dOaxOMA$$<{W_k~EK|seY#qyqI5zpPdkpQ1i$&7U=M(`k~3; zj>(6~1WV;q08v2GsHU1~OM__Far9b6gcfyyYzQ|m4W+X@OQIgPi{m4w)BaF`5p2i= z2$mr*6#P#(j_sSJ=O16&GKN0tE_Z$_)o1zG)MVG{C|Wzf1at)J*u5m;Y`Rm2o(So7 zL9FKrN=rM7P5U6EWuY^CA3ZZQn&FET<*+2$xwYEZq_1b~73FsuRvl6V?QS#`2*K*^ z-<4l06X}_VHwG3SE}r*VpMMHVx$gX^eg)m0t(_a;J-4%zRNVg};!WT&HH)C|K!ol? zwDp~iVd`M^#+#A|=v0Ual3hV+*Xm7AFfl;mv>TCCyVH#iv5}CwR5izwFvB(KI~!$hK- zzpXopY@jHBh$|d+i=qTvHs@)XkX8)`y>lz$^x)tiOOix>PcD=-j-yA10&S!FXQREn zYdpA{PR6KxL4Nt_2N&h9UmX#}Lohe@R5xL6Lsk?R?~jF#1r7wOnAdOuOAPqf2>$I; qwUqxJPo^(lGr-m@vHChGHxL0000j>J diff --git a/html/html/images/flags/iq.png b/html/html/images/flags/iq.png deleted file mode 100644 index 3097303905741647b262999d653b583814cb60ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)uaDBgNG`?nRk!Tke+a{mBc=_t=by^jluD<+;el=|;H=CO* z{CxeD*~;kpR+oJH^ZhFN$;)!B%Dvm0vvH}4bhY{&UQ3c8y^U-n%bewlmRaA+f3C9c z?!%ntoyWM4Vn0bCl=~*9(`gU{Ns=g~EX(pdSP#ub zE=2CSE)?RNr)gU31SJ63j%4jLb@?P)wRX000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005ZNklNEUU7gX4e6 zviyS#d4ir9oz?wx?zsRwOVVgxM)P0#7q2f@A8+G4-tM-WXcJd4@3^LF7P2PJWaiF< zBOR^3uH}&!z+^h{U-<8Ww1uJc z`tW}0xle}>LU=wqCzD!HRb5sbjL-0yi(LmfB7hOL2J3OjANTh`aI<`~EQ;bO3ezG7 z9Z>gsrSFa9V&-^;rQ4=0MhT(EX_}RJ&6^&89&{QQAg!Q<3QgsW zmXajNl7tZg`c7(FZ9X^dN;Cj72()2no0jBxDh4Q_RdvFuhllLXfkubErc&FfiekF1 zg)#Dd{qeDv71}gev=_yMYVq}dEdBni+HAWx2AqrQ85j!;c^>pU8JcwH%VJdBu$ncL zu~WA)40)1Bj46_27>0?EW!uQMRbA&pUlAg1%bKQcxQMO)Vb9cG&K2<=SpUz+00000 LNkvXXu0mjfT#Wm? diff --git a/html/html/images/flags/is.png b/html/html/images/flags/is.png deleted file mode 100644 index ea1c49370f5989eb8371ee630a4db06ef75aab8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)#1)Q%nh#h#gXn1nn*ujbC`emZCF8A-ZO)kH)1gmd0rzx@8q z&WrfR@z&F~yS?G>aTw)}GT$#-3&)uOgt)a!uKS(1cl8WS=r z%h^gzY}^l0GG{=lU=5gh-EQHgV+c~DG@qB0iU7qll_bJBSz)756h{S}b07m%WTT6e uY9c74sUjueO6V{q;F1t=ii>@$Mg0TC7w!@SsY4_H0000=f>M=s3v5zeFU@1Un= zS2M((U!E#m?Zv*44FKRdAtVgL(Rj=mV;2`Bj^Xrwhw+3XvwB)N;__XNd1yo;_6VBpMl2}42tq1I8ezUk=OfRQdk!^}x)heNh?|VTIL{Y?j5>2MayCA3m4yqck z+q>K4YFS8xvO*NLwI1~-?U*=@`Dlbi;u~mdrBa7V4Hznwx?FF6(_N-b?L5~jbqwbW zz{Lz|Ew$duQnzjAjPpp{dbj@Bq+3~-)(lFF@l#+jOK4?`C`)bOAKM5lF3k_Q0)?pt zrBfh(bgph1R6E30x}%DQd40nleVGyVWd0{Z^~}odJqp4DR{6a$M6-%4wepO zAf@kMvZHvg17Roy6&)zuT)MVtVzajEFIk#jlA4IGU=MsR56|a$o-faXAZH5HR`Dr9 zGe{GQwaJT@uFk5e+!T0TJUmupXhN6Ejkf!ZJ|CkC#-eNXZsUVUV%H4`> z=4TRqz>89=Ck)l0%}h|-#J$VYfj9T*2iF3-yX5McGtFfS8dPm3mdRY6pPM|&NT%G` zY##SD4MEW;Lp)ya6>ic{V_v`VeW+oYoktMdRw9u|rBbF5d-qt!oDogKYw{3go*-qo_D6jWASu4Ez2^`cel62`5U7r1+%i^CP>m62TCQT zUiVX!$FfXSRTV|G5yx9LI|BfaBvI&ghr{9TL#V2_hwxHl0Kw>!lK@GQcA32%7y-jD z{$ti;B1uxGBS2lw=e24TWm3d?-BduuDnanervwEP+WGp6Efa4N*I%sIa| xfSM>6sa>(py5PN}et{V8?P;se+GqPMIqP)v56US+yfDlTFs8R?el(=>#TZQHe4O}c5CgTVkw>`?}Kjy<~HEV}z~9M9+T*=!aBfn-!w)pZ?X zY+06c!!T~PU15f4?lqe4cK4=0dX_{_AervV5 zz24*IT{69x{F%;Q9OZA06^vn?nI^*5yJR*XL_)}N=|6qaRV4PH-R_*8lKqb7y8QR# z&d1OAEmQRo`(OjF1MQ$a9ewn~=T3L!Km;t7YiAEC>MS%EE&|SdypchQ6&U zio(_`3ZvC>brbRm(|mu`?}x*o@O?mY`s#J5-#6M1wM-~rtKbEpB#I)>_oNd-Hdx|$ z@x>%tEPiR^>#;U{KF2@aSBBWBRLi(rQcEml;bjnq$vUMpU2m}1bwl^>_j}Q&mw8%O zkUFBKEh-#XBGuA@6)}y&G-Mf*wdVh^pULdQQE=AbYN48ijuEzyg-vWg17v^_8V6Cf j&SWvl8D+P7tSkKk6bbdtT*C@$00000NkvXXu0mjfxI-1( diff --git a/html/html/images/flags/jp.png b/html/html/images/flags/jp.png deleted file mode 100644 index 5e342fdf21de433b807d68990bba23df77f8a922..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmV+{0@MA8P)>0wE8OghkoAW^a=G%Ub*ZJ}_G>^Zn;LXB6dLRl%7~r}(y7t?iwiC*!e{ z(s3N$_p>a+e^pgAO*2i?wryS4$!)0{y3uF=8x96}o&yMe{hVK%u2RV!k9dD1ga81T zQd(x=APG#b*W;YKuKWMXC-3lM@yCHlrEZYd`}*7Wz!+miQN(c!gy1xr%}%GY)!2%n z$o+ol9vu|3Sw*bWI_E;8$DjF+Z%AA&m+%h)zr@-P+TCtfCerh~;Or#-`%j?@sxl33 zbxXHv>h)J#OVczA!ypJtY&hJEL3VVb-@F7}>vP6VKf+b1662J?jP>zmj(w1R;Jar6%7=+&e59S#8hHO%kLvaC|Myt}iLPW)O^zkFPE- zQMWsCoC8WGv@jjR-=3(tzVQNftFt zND^69c}a=@@S_O*z|m}WiU8|q)Gd5;PkyIjzf}(1mw1)jXXpsWdu$TMM(yt z2-MuWLZnJOn6tzWu|J>9xJ>bkjVbf5uk`o)1ltVqwsj(A761SM07*qoM6N<$g2-YN AvH$=8 diff --git a/html/html/images/flags/kg.png b/html/html/images/flags/kg.png deleted file mode 100644 index 230b1f6f35c8c670fa119c91e8c3a8309df6ba1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmV-30?hr1P)Q!kSpnyak_vZbu zV<$GrZC21DpP4^>|9=2@&?xhM+yEfKX?Xnd;{4t14au|g&+qc?jun}hxQ-yUZ6^r4 zgF`zAbknjweb(>k!-L=~Jbv@)igj&~rfm@kztT-EYt0ZQc3jK#uLjMPOL$Al&VHF7s8KcM;(W8gYBzV*}r znlX%1)AjRPL*DKym1$DP@n}|%b46&@TN5J}?<)xd4+6A|mQ73fxMC2*z46C}XRwNaA*zjBNwNq#>x4So!K|zkKD$Vch7usUb_Hfpf|@8Tg7dNyO_4 zj9gPSG^g`i3wuboN{yKUx}{RHc=$M9^4|8q`41nC{CM;wi*^72002ovPDHLkV1kPn B0$uF6+xR>6GXJ4<#KNGVeUq+qP8qE#== zdZFSJf~Z0^*n9Ev(B3;6ESvO)H=EwxTu08FaRtq6C*umC`iah0JsVp zwvD5m)~=4(?Uerc1%*&vyV~hNl>Hi#-_~(J)*u=E2mVJOS+v_vS*>O~H3~<#-G&L)`6S+fw>{WjGKz?fm((s7N;q zqY2Howxt^`oI8IR=DY&rmhkN-*Xk5lDlLneCIw}bV-EQ+-XOs%>SV`&)seiEfL&eE8W`0DE2#&+${#Tq5F#v=~O5^SiPsdJ`Q ssA2?ZwS~%)F+QUlp)k!J_E-1$2dTp9hYPTk%m4rY07*qoM6N<$g196V#sB~S diff --git a/html/html/images/flags/ki.png b/html/html/images/flags/ki.png deleted file mode 100644 index 244104ad48dbd4de5614f91c628a99ae97167e7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)sfq=+D(6etoSgisL!#z+iV06SnKtbkz`z^G!x z6sal%NNAMWPU`q=U%z4!$O?L-Gy6ZC$q&G_LTvg0fC_+~rrqxMj~?C+Gkf{_PcWV4 zj$NubNNMN`4Tzws3JBGBo<2FD{%aMX4LcZ(3NLirg~1uwJCEGUBe&N0#EKKhNfHYo z$#L1g`z;fBeq-(qhjdlB)*_u;vc?KWxY7vpnP~%oZ%Vu@(}GZvWQ6gK-E6n}y55rH zz%o6<@a^Sl6sHd=1~Q<@Q>PNo$#qd&Q&f`YejM%CEv*TSrO3<|k*L>kSq5<&MDd1@n?8E`rc#i9we(H1XsN>M=V&l&ORR>V($Jg7ubAT( zMH7V>d!m>>KHROH9=voHma6T6$o~QL@3T<<$~-xAL|EeB=x5oXp8@r$lZ?;C6+3kj z06uQn`S{}3WImpG3C@b-T!GBY5WbDkey^h_pk6oamFEW@NfH@$IBLCHi#%6it9$#X zUaLho_kv9Cwsh?Vl*Ec4!Y~rKk}8Qf$rGHMT`qTwXNjv-dNFs&H7Uy6u-{cxM38h8 uq@9i=u;qO2q(ouaZjocXEne@jw)qQ5_TM)0Dw6mB0000V|6foL7=?tYA-FZ|s`CAa!*?pDu*u5LouAx*|8DL)bNmh&`Aoln(R?fa(L)|qy{ zl5s+{o?QF9*m=5VcKC5KsrvqL94n>5Fr?T+ zailo5G@dU!J9aYnes#L-cH7;h8M+^gF=B6E%+_`U9q7G5HGMt*{3tn5RePq@n7~ZE z7z>^R6JFU%AcSxeIF4gGtt@xlBaAX|>l46|R{$4*uP7fs<3#_L1XNN`OV6VVD-Wnk zPo3-iskVZaG_pW9ZoY)NhsmfutwENMCbW~`U-h&1JHo>6%Wnp=dGuYY4?ajMRRgT{ z4zMl+hmTUF;J<2d8RWx!wKPbY$EK~3fCT;slzE(qkppJ0%LVH@tNuHoXvPug3+Yr(atO@b!FEN_QciQH1WB>pF07*qoM6N<$f~nm0 A&Hw-a diff --git a/html/html/images/flags/kn.png b/html/html/images/flags/kn.png deleted file mode 100644 index 3ce40183faaddbb34ee0dacda58b308c8cd1f42c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmV-p0-XJcP)DAGQ~lmP(}(uePe?Z{_sybkaZ>eL~Ckn>+6< z%hGk7bA`i){nZZha7YdHFq9RTLofnt%%akiJq7&gm z7*D~U!NLLp3>1rVQ&V>xXVrCGHH(>J5l-zcgIjZ%V9+r!jy?y^E}-67ks2AJ_4d2n z%1`&!bv*E~@metBPLB;CoIH($j@o@V<^3m75zApQg~8{r>ZofP?@~pM;$jY!hnO!& z`n{oKF&o2`?HY8__ytUiye}E`%=J2E+Kb~T~(_nitA^on~AmFBH(tZ8FKQ|dX x5+eMDy=nu~6)6Y-}uSQV1e;DPkJ2 z(8eO5ZT3K)@zBa-f&Z?PhmpXLfgX&po`qAP>H;`|#d_CrM{2xr&M&R{i|K zV*66(`s$6bA0H0>91f08#x&1MpaE2ajRtX=^=1=8sO|3D1r>O98@P_!xx9R<*Og@M z4M*NmKzpJTKv5JEnh0Z3w~0-3)65I8yCY56l^oUkYwspH}^+R(&Ug)pB;G3P-Pb0I1+y-kxQL?nq&7T2+nY#Lt$AB-pwa|vl7}g! zMam|Em)UIE{@UYl*Go^sk}>u7iKWexryF9<%?MUCjb~YK8u&p#Swb13G?Dt7Q}*Oj zI66)_2dY9KH0yQZI=0(H2zIfD0000< KMNUMnLSTZ)^BejA diff --git a/html/html/images/flags/kr.png b/html/html/images/flags/kr.png deleted file mode 100644 index 2b4e7b9918475020159bdbc0e522b82d5a086146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmV-p0-XJcP)5X}rt3M~OMB@|RrHByONA*O0q`WIZ}$0T4DOM;_zkG2Th%7xciri_1CRxsT7~x)IzE<#HKvBoZMh>c!z9 zj^l&DKvh-KG@*`Rm}Oa#B=I~S2n24efnBSE!5~FZqtU2Zt!A@Xpw8!Wr~?CXtyUWj zhv9G-XwF*@2q7r-`~Ase0%8wInm>P7m8#pA5rqO>c**baZL!^GG&VQy;yB^RLZMJR z9#5y!f*`Ql+l%w_)%y=_UBd{Hyy(y*@#yHSs;C^tdA+nOU)fzi#GaycJD zzdoIemWrw4cRLit_z(t-)a##tz;P_>89W@BKGtEjJ)ZCNday2* xWoep5h=GUAH8Pn@tJR7|W7C<9n|&-B{{ey+<}#b6RS5t9002ovPDHLkV1iBQ4+Q`K diff --git a/html/html/images/flags/kw.png b/html/html/images/flags/kw.png deleted file mode 100644 index 19c8dc215276dd89d05aa3301fed999eee671352..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmV;(0XP1MP)Bb5Pkb`97qTaw$M;e(;0J#zrdg1pHajAv7n>kDh<)v&_JURI75&`?sj$^ z_CPu0Wi!dlX5O25BU)FjcCQ^ZqT0IVoCCv$0)!7jtkTu+Z8)Bf_55i*xtMexx}B(_ zz7#T?h5$JlEk=W6P_tT#Zl0+96y(Q&xnWeIn4h(TySPLR& z$ZV|sw*rD7-~mai{d7A@!95wQl&&OCwDE>46c&GYJR&KV?SMpKUVfX_t$f|Me3BMHp0000uTK0wyGO{s0Cf2Ih)R z6=OO?VxXV^{gJeF;@FOT{&DBC&9w^uK%exs_tE$C-qmW?s=Dk~PoCm-8<6#v@Wgoj zrilDN1^LpP$-lDu(GTG0J@GX%e3U@&n@XCyrJkR)5nsUWF8YMy$ilWFX$!W`yyC4|B rsw~nhj-pVMnJ5^Sh_mZ`tjqcb5~%X30fXzY00000NkvXXu0mjfetHry diff --git a/html/html/images/flags/kz.png b/html/html/images/flags/kz.png deleted file mode 100644 index f90f0ef5407c6930146824cde8ce73d9ae17ce3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)Jd-#R+et_uO@m0Fi>N@$!GzzgsSAaPl< zMioLrV%tTbO#nAeVrT5}*fZnUI4I=-dUVe6)30AgQBE~#e(O)4^~&G(^%vdV<-zq^ zGa4NoPYx$!#)Mob2*NVfYo^htS~U~n0{D0vz?>y1P_2!2vwfvMpjJOo-|f7wBeLL}1wj}DtF)_I1I9l)-rSy3g~uRU zK%l(!o(~Jdk#+~`XUL+PCTYwlCG$kYE2bjwYbI^icbN?3xp&T!4b!e$;;VdM6x%&x zvgh7)d_?_eA|lC87^PDX96A0CCY3Z(ZL!(ZhUd*6H*4R{mJcd0{4l(qSK?79<2bLk zVuw>!Vi^_5B83RS5-vLG_7`@qtBXb&1q_b;B%~zIS?+%}CvFQK#3|I^$(Jl_8oE$T pn~6NfC$qd#!ehZB@sFKy{sL@)002ovPDHLkV1j-M{=NVJ diff --git a/html/html/images/flags/la.png b/html/html/images/flags/la.png deleted file mode 100644 index c3e9154bce3ec662c1f7c1601fe9d4fdaf32f9e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmV+r0`L8aP)NkldYwzWBID)%$Ihs>KTB&1_6FYs-yBQ4S#X&!J>Q^n1(}MWA+j|J&jog=Mv~1xCUBa4H)!= zVqFVt0#wFOQG6*&7VvcHnUkEQfVSUGoui|}xw10xO%vzyKk^t1Dq1Z*C0f^qV(99& zmzS>}6;3AK#f$nFAH;fpXAE+KCl(`%!o<}Wi=B5byw4SB<*~c>GR7522|!>1rkHWR zCj+p0GRDaXp{wm2JI*x4I&7mGH6rqJSxUnPPTk34C zsrs>urjtEa+AXl?r*He=ZrYZ^c)XBxh9I)Le~U=3Zg9O}h|=yQ(rVAUJpT(uJD{D8 S{^Vi+0000RLYUS?nAn}J?z(n$S7Ie(<92>d!J+DW{O6p~v`a}>=jAr*bvk#$@WJ6BOOn4) zl%1c8B+<&UR z$JyI+0k8ouJx^>sHkkMPMQ?ED-gw+-x6?Gu;#e>~`}5s%{hQZA+p%5WS5ddDN=kx| zHklX-JGk8s2ZL+f8(3LU%A{Oy`1-@-&8HJ#8LBZA4c}kY>*^`zOd%Vrf2%(n4jE?< zLPBXJtB+^z=P3Gp@ooC`t?gJ!s;npqgixNN9X1->FUvB^Ai`KBUw(alcQyr58@7AJ znv;r{rm5~R#xRAP^W7$;lxn0njwz+9)e1?5iX2W)+O1&x>{ZKatt+W~RDm+Xgg!hz z-mC=A=hVHl2KxTa~#$}E@=I;IrDl#7xJ gL5qTIXS<~S0cH{q76$E=&;S4c07*qoM6N<$f-idq6951J diff --git a/html/html/images/flags/lc.png b/html/html/images/flags/lc.png deleted file mode 100644 index 78c606f7ea6e662b9e591692420b0fbed67c0988..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)Nkl=2@GS5uGgDQW24&*0%F?^A*A0w3`tnm zx8~^_LVy*BF%%_Xo}~=onGwQ`rm?=hQR2$3J01=l0MdiQz2oEkRtrf0Dpf^QFqB1( z%Ls`WvPfHAZmg`_s%g68c$VdoDB;V0P16)bi5INK(mj9$h(M`aiYW>FX_00aH#>Ja zms6juXImb^<+FZ|=PQyV4~8eJ?HUA75QKS>1Oe+C6xinGgCHcXGq!Cnislv3{qgg( zu7Tza<-)c!Ey5UOSsF&cbT&;BT43Cw(qcW&n`xT#>-Tpk@?SroZy&2mIvQAK^*RW{ zaOO{wgwi-Ju(3B8S>U^6$^lm-q15PWADYy89N7E>6>Y5=CJ|qBy2WObTpd zyS8%~_(aAiPfk9+$zMEGU|E$)c>BKi?s+)#4zfIt7fH;txFo9-`fOO@S>cAT)Rb{B>Q`$W}0!DQcB6y9&4fhXp;Yo5GL%A00000NkvXXu0mjfX5bF1 diff --git a/html/html/images/flags/li.png b/html/html/images/flags/li.png deleted file mode 100644 index e991d1fd305e844e787cd9b716f0ce3294db4a31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)R|oY%8gc{toVT<*DZKWK7nePVKCVKI{!5Lz>ULiC_LQpYMHU8{W-jvlVB z9(nmy-P~1YW~XzxTD3k5L>bzF23@5`*H!0djl+YNc)#Mr;{vUv?3%Ea#}oXvl)kuJ zWvEl=H~%5q^0@E}Fvd7nh^5k{?EFcoSRS2{d%M|<&3qJ3^qq}B1}Sy%zM&zcY|@au zQ*j2Z=*L|CG?h`?TPuV{1QP$CHJKXPvg%~p1;>d2319$-01i5{G4y~kYzy&5`?ei( z90BwJ+=P3=Yt%LMTEM$y@d{u8!f1G~!9RQStu$?x!)OxK1V;jKOuGl-3$V#(AEM2P5)#??seR)`j>2 XqDz@k$5dkn00000NkvXXu0mjfY>&z` diff --git a/html/html/images/flags/lk.png b/html/html/images/flags/lk.png deleted file mode 100644 index f9e227fbf0ca3aaae5dffff97f53e785b825ff25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)56000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005zNkl%6K&4i8%gTeL{HwXp~?Cm!nh+XXsKo$JgTOM_>I``EF+da&@p!XYOzI$}Mt zvJJ<>tJBG5;1@Z zL`6W;Xq%eKEh&R0^kw17fi7KZ$f6{)TsL`Ve~+*tPa+e|xPw<~P!wvI@IIVA^4t-0 zURiYw@;Srrib{yJt(7~J#wiMGl5{PTWJxy+KXFF)JbUUJl7kQBB&p^pzBoC&}}<#z2?1NQkUlH`3J7Nq=Z#95Ult9$7X02BD^iwPSm8`)4 zO0h3Ww>{SJpN7^YI4vuaGsY{x*VuU)<`lPr%d(=k=GGHfo_TTvb<0Y>0K8y$LD(m; l6oM99JE+0;%e@u=e*wOe{;!$#RVV-e002ovPDHLkV1hKw6*2$- diff --git a/html/html/images/flags/lr.png b/html/html/images/flags/lr.png deleted file mode 100644 index 1c826c85a64a6193cae81cce82c39216fa526e0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 567 zcmV-70?7S|P)W{6%o;c7*K>r z@E9-))KK43rm(l{S)`FjZ%m#eg-aPqUOo70OT-lQY0(6XBMz!^1HSIT9 zgx1J$Omfc+jfi)1uBpz+eIdqQV|F2sus&d(Zc{d z&F`UF$6sn@6bc9tr0|Fn1VL5*Jl@k0Xhuz}9jV!e58~-C3WHEdDTNSn67o+y5IN^a zTQ|~%e|K@`)@p6o4-pj#;VF1JmF;@Eb zG_uxctw-%N#WzWUS>_*^$m=QvmIcn6asA);;V;y&o_hcQ002ovPDHLk FV1hEO^tS*2 diff --git a/html/html/images/flags/ls.png b/html/html/images/flags/ls.png deleted file mode 100644 index bd78c5bcedeb94e7d8f7aa2b7bed22b4c45143c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmV;N0%QG&P)=4TX!L8gryfQpcJ1?(IHXw5fY8m&>{5JHPL6DVn;`M?HXq}zt(=VezWL15mO5$r+&q|vzlh2 zfnWi3vLPKjILnxz`GstGV>MP)S6LM+C|^^(}MQ7OJOs()i3)J z$iU9qTn4gg$L>hfC1y44+rt=3jIVWf&1#wjPT)Y3Y#sHVTvjgd4k+rL`hkHAW{`4h zJ&_eZ{r1H~4sh)dvR5JS@5Y0{R4Diy3UpeL(*0ly=;>c3f1K(}0hR@i5LIZAjbr}s zMO6#T0Dpc&R~y?j)6`e9r)xGjT>xrCIC_KrIsZ`!72$ZreO_SRwvsU)ACTpk#j z3D4I?$4&cI=|-t0000XP)@njsy+ExQYdo6&{ALXBpd;A7eaX?g1DG7Vgz+b6XR!JK>z~%vegmZjQ&vzu z&!$I!9r5;9-l<;=VY2@ih94j-!TyEjck8l7AsAgiu?Iyj8+ITCu2<~i9=v~TVDu4G z7uLVPO(CvX(5(QAN1z8=)EM+$Cis6l+2?fl#8*$lpL+4VorldzCpzT3M4=EBO0B%1 zD{xnq8h?9F>%K70_J=LG=qQE6)qp}4LTaHpXi8&bDTVaZMo+P&+>w1a>4y{=*MyoV zB-o}!A+VH%QCb=l7*ll7ZkCZ-?`T5E+OIejnwSzlc_qnAz7<13Y{)mU=J~lG*n8R6 zlQ;hCEKH}ZbNtkZ*z4h7phhDO0FjoFk>e4YnPMhKm8{2L0S zq`FSdu^`N5v{8 V)Pn`xI#2)r002ovPDHLkV1hZ0WyT5QQmqUhTe+!IQD z&OwLAu@?kALRzWfa6q@WBX+e~y}!B9TIbd(j62R@=n~>HHrk70fDy(gW6EJDdce_` zZM(g;)=HU|RRzsBg-9L<1Rw@BUDt(qRaN;hH^!VzB22~MmHFRR#--Tx2@QxB z3=YwzEz2s)j->*d|FeDnk^SC1?z2Lf7WU*(I+?h$DN1He9CZZOMk|>M2o8;|)fxNw z>+t7qDJ$D`1EFMsJ>Ov+4qD_XGqlzKAdltA)R14-^*Ni!OKlp2VCR?zUL3Jm%%@Qh s_^vb9lc`jhcdZ7#Z8V&heXOyb0Q$4%v)wZ>j{pDw07*qoM6N<$f?cupr2qf` diff --git a/html/html/images/flags/lv.png b/html/html/images/flags/lv.png deleted file mode 100644 index fa94bb27839f7ec77b88a2ec36092e6e9b9f1d61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?Pe~P)n(?LB$5d9#$3a!;bd=vE&7K57r2#rISv^ zaWc6&H{+;-#JWevXJPr%Isf?$z@5U-=fXSI^=P>|Iezl;>_w5J(fTT0|0$Df?0RTJ z4`UYi{vxDdV7ut;myhNxy_km&AFR%vJ(p#b#5-{l*IBL^(=r`|Jfb;<8L^Qws8PS4 zFzkA(;L>Bm9bs6cel}Dg@AT+zWT)IUdl=_t!V+ zpuN$MvH8y@pLv#^Gy(k!Df}AoKT|3ifNcOw0dJ{vPLi|i=xO&&bp-fbP`}my3p?H zvdXtv+hET2vam}3C+UBZ43;FJ8s)prV02{BHfF~=BvINY8GVxVF9}tM8H^gv*fj(x zPg0d*5;LGrYIss_Fs_g6uv`P99aMW002ovPDHLk FV1oE%#tQ%d diff --git a/html/html/images/flags/ma.png b/html/html/images/flags/ma.png deleted file mode 100644 index 05448bf182b688d3af02b70e122f683f3f987c98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmV+q0`UEbP)})nB#`aJO)k7~u>&vA*^wu6qFU7MI{0{vJJ&WKM5y7h-3PM{W zLZDs>(iGazJt!rn=0%ds?l?P}mBrz|%rnpY|NFd+yj@lQftw8XO+ldR?Qn^K_4ogGxoh@Lz;P zNFgkRw$rJjWrkAP-8pod&2b!y*6znn`WOz@7*=`Hzh z;zKzE9(~KF54`+LFQi-L`59l{^V`mDbEXnefiK1(f~v<4IN4xQBdyb1BZivyM+MVK zboQ0caG}^b<@H&{-hWCv;BGP-U7loMt-PC?tKHsKyg(Iq4H)?DIisIf?F9xV@GFY6 z7?Vw@G*(-59B-8UIZdUhwhId*rQ8c3O|uS*_$_-%e$N`#s-5!sk&9wqG^h%R_&x!`!i`T(%0E5^>zBM{nJP>G#F!y;{@*# zP#>TtknDpG-yK2lsR-fzcUpbFy1HAf{ysdIx)!gm^5tb$*MW05j*~3Q%W`pX!O9Xb zhMu0#q`#CUu;2IhuIuDxqt$w(c4o`V%hhuEby0LxCD&^s#Mt*?;4vYTvB{7;A2Bx0 zwY{F%k8jJLH#er0jS#x34#q$-q6y_ZJv(FP=d>t-G_~F zh!9GWB+GMN6glTHAv@=!QbJVP^nV^7F|hdhdb{09?{|!WnOlPLU=m;`-S78WsV0tx z7#rQsMRqVf*%)KSafB_#n9^fY5QGp&!lSm8T5Ds5;nc#BHBF;+e>faIOq!-(U;!Cx ztx~FO)o=>)!BnT5JN^%72|hm==q-vO$U`knvz<(D%)~w!{{eT;;8@>`53K+I002ov JPDHLkV1mzF=xP7} diff --git a/html/html/images/flags/md.png b/html/html/images/flags/md.png deleted file mode 100644 index e100650f67d45ee7f5cd0297445772be23aac86b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)L000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005dNkl2J;SsZ)Ihh?5<5m9u}9(nBNps90{7qq9Dv0ffdzXO z?AQ!KBRc)dKaLaUgL}vcrc|z#UsXNJl60?-k7aZv%EUjN&7NIeEjFZ+^)>oWyCF;&?Me6w&pw$3;#woMdAF^mR)g0TS`kNxTC%o%yXIz2@D zDBOMhLZ@yIfcE_x`EX_XCyv^i9YQ7NDJ=%f_s=dao*tq+*o1MG#(6GB?UO&EJN_}U zpzdgvDKWKb+lW8S1!ZQqEYM<*aE2 ztn1NsxBDAJVN@t;H+d-QuG~P<$lm#*5@XcJps1MGg0;N7!+<#ZFcItR4mmB`uIq`R zzI%foa5^_OuV2atqp~_G6;)O8hSl{jO)$YW&GNc!WdNaV;rUzb@vV)C@qDSWu#NJg z660K?c$EPYN=eFi(?O`{x~6L;A$aw|QWPv&=b2E-gpx=qu)4nA$2!J8{Vw?vGO9O6 P00000NkvXXu0mjfL(>OX diff --git a/html/html/images/flags/mg.png b/html/html/images/flags/mg.png deleted file mode 100644 index 080b0d4d10038f828081d3e233b9bb542c032146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)+4y5{_3w4SD^&mvu9 zuEb%%!lG~(%PH!mYP9G>tApXLIkq7O23;$_)uJVrU9+FlNeS%9(K#@_M(wGoyAm|Igw7&v%yZ9ICFkS5-ZK{f6>_ zLfw-@Pym`!7RgH4+ar>hNxQSliAKMPxU|MFG-0_?nMMAWERv7o>O+0$ z()Pyl`E5c7%>s?YChJaD`u)D=Pse`5Oh(dNHVN`j$X2D@v%mY2ir%nNNb`!ClNluv zSrZ84^B)my+4#k@9iL=x#X%78*W%?V+%0pQNIY)oM#;rHLc-8g&CvbXwiGT8iBXxF zfGf*@k}7<-f}^W|0U%vdyQHn9VELknR7wyG%U0`mB;LNO(1dUIzTw~FfT8BD>71D6RCF+T zq@h1h+^y@aoQ(-!p1A1+cKUN8cAbG;ymyoH@P)`R@#*Vi==xCegM^EznZe}ip0Gg{ z76RcDIC)FylaCsFJ8!Ue??5_qHq!be4%mPS2o0pb^WZ3Qnko5p4EHbZc~94_!aVp) zDxq!tov#OZzRV#Zj}c1Nc5^Q_!2+h~@$vf2%MP?Gu4`%<{r+l{p8!pPCg95r&ciHb z24G5+t?l8SG*jexf~2mJCV5YI+~kvTcBdd6UJ@d%_AkTy{>(pIyY;6gdqHRb O0000`Z2!-}~__o4%Yo@#ttr>MWG= z>qW$&SE37F+)~s_4(y{YutOkJ=;?r`!eJl?;E&jZoYvDL_{Vu zW&?Y22!I2Z=vLJ?mOk{)s#J>GoRjX;?S;N^d;hq#w}8?^4WtVit}G)2dha3#;7zr^ zO)LnYZ5V9Ab%pO!8+JC!I6w0ip^N1_dLFXMTUV%J>k-M z3`hDmykq*6Qa6FWLKp;)4ZA=lk1?ffAVm%6zJc^P{EGon7ZnZ_P>;og7|kFcW@H9K zb5IIXv4~cvv;k(^_A92J2B&dhURP^{p|P)+9$s_8lgW*ra?%lPDJw$QBf|6K)|QZ0 rL`6y^#8XFY5Qg8~ox3E2h(!o!b08^Fr%&teu=YO*;{QmMgH$Q)0+Pd6#25nk^1S`< zc8)W$;;&0d< zydDlN1_}xWtyYL#CLV(^+u3YC9=mp%NKhF|-_uydk%-D_w><>5fA*LwicOk&At}j+ zEvD<~^0f34Iqs9N+UpZzS|75^0=d@Y!))0x6GGqwDMRe|!dPj(1dMZBP4JO$!j<1< zGsJ$RamH!}#10{fLX0?X`C6@%&PNkl3pWGwD`tx=)SQUIv@9F0UV$Q6W{v) diff --git a/html/html/images/flags/mn.png b/html/html/images/flags/mn.png deleted file mode 100644 index 81f355b4e537a05e89456750d93a7c68337ae3eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)}zo8Z=~@yWyKv+PPqx!P=Ug?DY&J0IdGi80|B*}NY}ccO+%ANUjZ$KUpy^auH_BK*_9wxE zU%7na=DH}nwjm0E;WQSU0Y-)azO>d=($;WDN*e=wr_I48zs=o`3TcCQ y6i0+}>Hq^Hj;u9ZE4OuHjqQwW0sCjW;rs>VG3?N)#TDKF0000W zUp`8^CBZb?L0<4ZRtcpjT!)(&Zee$Ao?!JokjGNLWy!tSwV~9 cFLuNE0{}w}t!qBlAOHXW07*qoM6N<$g5~)K&Hw-a diff --git a/html/html/images/flags/mp.png b/html/html/images/flags/mp.png deleted file mode 100644 index 1bf89752c38ea289fb0716658f03461d94a28f5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 623 zcmV-#0+9WQP)^Zwh%wdxvv9wB~w$Mszso(*MQc%3`Z+YPl@Ji4t1-%ffAQTY= zA!1Ra(FAKk*+cg9?S8xaWwUXE`30Sscdq8)Wro49Qw5%>R@uwCsx}wTEv>CxF-?%- zKJ@+!Ox+&|nw}OUwkS(VNmgW$WpfW7-J$-|#bQ})EVSFJ0HUU9Ut4v%yo!VyY3sH7a-i9);x%ZN1U%d82fiFqI`-AXJufB4FRAio@NQ6)T!Q8E> zHkTKdP0Kg+K^jr+H+gd>zq@;hr06I<8Xr&B_mtyLDew{)fB=BGTl?bW0LG?a4GgD` zmvb!L{~bw^P*h~srb(Rj2`(ijVF&?mlLXDNDMlKGt!X3u1O#TVwNa$=ID`%W4lm|! z-&!C|)*gj^Fk=vk=a^-=nr2#-7XtM2qjPor%+2d{$BPXs+}^5gZdAT}0InUxC`98p ztNCuaJ~9m#!kD7TuZP~#m)e87EskdyQB;Rx7GpEc8%`Qo1s+4vd#~;TN zf+R$N^L?`0O9)y>r_BDlzdyd~A#_m^qd1IEmeKI!^XYyI`v>Qa2qf9@+_C@w002ov JPDHLkV1hk_6ZZfB diff --git a/html/html/images/flags/mq.png b/html/html/images/flags/mq.png deleted file mode 100644 index 00a8cc418a371479c6d1932c0852096a135025cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmV+d0{#7oP);czvZspXe@ zfBS5=8@G35Aq4@YX-agWG0vJzrh&Dq$z(eiP^F@jDgofjC@YnOh$MmQc56(tju!*( zV&Zl>Wg2PyJsNS5xOP!{Uayg>SJ!1!XhDz1_s(gp15HWBYp3J8joB?07GRgA3LpVc z1h`m$LudUgLByVlZ9@Fa=bR7&fVEp9CZq&00`s|>PhyfJF;ekR5Ln&ZH225eUKf)YlDP3DE^b?2RFlKx0=r1Tt*c^PnJ7hFLoI zCXe2{yC|#@g-97h9?-|R`dqL_;RfN~J5kJ5#_Wqh`Eq5gHP%@Zw(%E1I28A=xjpC9 zd7V{o*TFd!=M;)8%ZxQzBirMXM3G#^asG3;z}&_09}acDkV`*t&BiQ)}HtGXd=qm`K!Ptlo zU^IFdA|X+aAST}JtvkCLQi#Ja%+7q@-h6Y*rgx|3CgxV=SMpw7B?|u=Rb3ZN1c9iZjIpe<8(E)c?z66r_@O!QDmeBFAzm+FLQs*MMi>8;F1^ z&eqYCu4|EuF-`|zJVPEfaPx!s5UVAWmeD@K=Md_T^jQK}B-g?0oT9zY$KDYdo4DMf zvG;FrZ~{!Z@thW}SYf9SBBZlr+W*!z!mN!CR8djF>v}@3)uH<%-tI~77bj?^M*A|rYybcN07*qoM6N<$f+keo AZvX%Q diff --git a/html/html/images/flags/ms.png b/html/html/images/flags/ms.png deleted file mode 100644 index 82dfd87af539c6e1f68d6990a5e5d93a5446bdb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617 zcmV-v0+#)WP)bmhXO%dT9w=(Y%T zp(3~uwIoOuQflZeA-BoQoYOOxGZ!Zi|3F`Om(TZp-^<5w*HWqQ^9Rr5im6swPq?o7 z_>~a5mpI%%^o~2{8A|{VHBGfFWS335tgDLn^7S21VAXWE&eN?5x~tS=@@?wltK-2_ z#eb8xf|4XDylw!yq9Fsw5}&4Vfh;iOPUCc-xZyUNpY^3MY>L;o$7;K3mcAwl!2Gpd(luwo+ZIHR?%{V@xQ;%d{!jjYvK{ z8Gkx!4;|`x>ATNTqgpqRrfE8aLgaOavm;J3F!mXXmub8JJjWdj<`=V^(oB+gRT831 z)sSwLE#?pACwqV!4SMg1>%<9LVspnIjb?L)uxK$!6hX0=X+Q%(9f2$F#(94$^Rxc% zCM6PM|0|h{o#_-)%Cam60H~^rP*FF8x+;oXlBB)PJ&bRLG-U~iqhOgf8oLCCNs{qA zuP8FqAwm%8nj(vNmIeVK*kxhPSP;iy6h+s2tcCsoA%ph2yXO&W00000NkvXXu0mjf DiKr4M diff --git a/html/html/images/flags/mt.png b/html/html/images/flags/mt.png deleted file mode 100644 index df861546538002209df79179452c811a1b9c4f1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmVY5Z&3C%NbI5*VrWyu?vWbMJmBc?frX7uo1z(kSZy?N~4H^U?W&W&4+@w zAI|K>CHNSY*}Zv>H}BxODDph78JlLSUMcUCK!eus+Ur5MK~(_dbow?Jd^|l7r73>R z?j9a@y4^;WIp>rY8Y64BBTZoKM^ViBecxyh&Sqzqr>(91vM4(1&AheYoK;$Q)6qyr z4jU=U@o*>&f4v>ur=RcV7gvXe2b;Tl#yRgj5NgDmZa31zzcKTd7pv5~UMDt{G+QUf zNBMTgAu8rDwBY;sd6_19e6m^ZiJzSDYkRvAgwj+?q)D`(^bYHF9O~W6p`jaWCfuCF$q_~P&8?jDnr9s1X^+NFc-@2(n1RjRoZ{v;IBb3 zDR-|H6)iy=jjs?SFr1tuZ|I%C8*6o-16WSuCk(-o&&7Jqkuhd6nII(+4e)xzK|{h1 nI8IY0a7tCAoR$mBd7AzLas8%tSqz$800000NkvXXu0mjfw#v^- diff --git a/html/html/images/flags/mu.png b/html/html/images/flags/mu.png deleted file mode 100644 index b146f3877a4cff7044550522df04ed2093aa68d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmV;U0bKrxP)ba{HnK$don$dVo5C2;J9tP%34OT!d-28%9xLZPAxbgj!fy$~kCvmkW-^ zE^C}I1(c&ur_sDGc4caSQurpE@Xv2EWma0WIez^>Vga3eP=Z>1T-BE%gH6DBn8TJ6 z;lJllAA9|%0Xbmct>-b1&DFTfd3b@4A@Nemrt+zk4vM9Hz!yw=wZA`relDj;E{gyF N002ovPDHLkV1nQtu!jHu diff --git a/html/html/images/flags/mv.png b/html/html/images/flags/mv.png deleted file mode 100644 index 9d8704bb4e24488130dec95eca9f18f4654a693d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0~9Kba%JYXed5AyEr_qPkVYXUr3Z0 zho;&LHKKq7QI>_%WY4@WR%G>;aBiS3Y#fS z)8n<){f1b7n>tzwlsa^L*vy|ePGZX#{ch#W#@6Fj_fQB$a5OfIS(@%3VHTDqfS80$ z$xK$#e){y`>laD;rK`N$|E*fygQ6ko0#lcFe;2iA466 zNn%K*oUx*&@p0h=a|-bMA>%7gW1 z_4*I=PaSBhjer|yPa&`!Zx)NQ-EQr=+`22ToU;+W9nf%;{ET^KQiT39Z8vrd-%E7w zKrfvrdKE33RZIqCtbC)X)j7X@jw6;GO(9oz*(V*2?kOae`1uHw0OZvn-(059va!*Y6P)+LQ6n8}T$fJOB3i z%So$sx1l!apNoO>ucPLc2xHTLuryt$&5&Sw8x$YMLCQ@umsGAr|c>f zfaQ!VZydxVn`MwvQ4%#>?>~7CXNLe7V?h{#CB`{)bQKI>h;1DETu8;DsFcf^VE_T{ sE{YIqP)J?mgJvI)r$$sCG84cL!(r z$?+%|_xJC8V|sy*K~2;4T-OVj>p+a*?tNHeS1$i-wSsgm$%z5cs}7=X;p>m-v(jSWRw~R zNm*upG1LrdY;^8wA3pk@jz(_|tb_N#cmiFsLak-uQ|9_C@Ud-I5OOYJ&KH<0yZ%yj zr}O&R^YG#0?cPup6@fsIqc3J?u`nc_2MC=NMUo_O6fLms+REFf6;Hp%pMT`1b8BAs znpzDUb8nBeJnFbQ!E-6oIF8Q7g6ClWNrOFVf1Ugq4o-Uf(oik&I$TVN?Yb8Z`z#0y z+m=wvvOJ0=BFniD|Aq{mnMk1YXo!JQ2FA>?9M7{{A3JuX>y0I-XG(EQ#D8zm@oCoY zmuUjZ5+Ou@W>UozAW8u-Yb?dnIGPHYVt zZv5(3>;Y z?-k$N{YgH4)qV#bcmV()gfPbH^}4DU=bTR_lPu%2 zndo#nOKkISH0=Ie1SkGWp*`xovjYbcN*SdB;jGeZ&hs#cqbTKEsMy;(cN-rJ6Ywv4 zo6MVqnf#KFNSzg+o?B5Vu@DOdgyEEDl5-XLYRQBR`15$q3Nv4xgfJzJtNbj03aRl- oMAJmbQsm_DQ8(!St}&s-tvm$2<&%=upw=2C^aQWg-I|c+isvFa813 zOYs9e>?XJkopjKHOoZ;B2SujV6}xpSYtye((OY8$^ibZ6KWP9|VFXNJ(cylgQT%Sof>Rj+rC z(EG9(R4P?@UJykYPpiv`Fy2X z6;<3iGaj0afbh3ha3u>F#(KzGyLf7`rv~Ogn-OMTVb_%+{i$TLz?aHpf$DNTxD`B| zjKTQ?q+O6@ZDW_dPK2K2VjJt94boDBOUFmNH~Q71@hG{Trac~b zB!I3?#KPq3&G||$Co4*a1p>jUfO5MP2WP)OY9Ia{H%H&w2#RJoI6b{~t}mv4;eTu? zk|N2Hj`R*|?X}9Hcr46a>n+mJho)@NM$?o(fbPz`7*N+T3l^QwkS0ln!C3pxoZa@b zLEZoHP4nqnpkj-gwO*O}aKRThCFE3@w2~NOr7mj?%`jL)9X8v$*?9g0{oDc=TLOcB z?#(=gpE8vN59Nk5Y@((jE3%|u4Y#Y}4%6ly;bI98B$%9hH|AYJi)yXPFbqx6KnJR# nN@88tbfZYaNJaZQRy%(IW?c(@u-!q&00000NkvXXu0mjf#0(|e diff --git a/html/html/images/flags/nc.png b/html/html/images/flags/nc.png deleted file mode 100644 index ee025d7f32cf930d11676aa09a22d7a5cd16d773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)sErplNj zqfF9u9a{z=2C-zMiD^39ly^mkH|qHL%l_Kh&)wa>Cnvu*H`~k0VEn=mF zHG(7wurLbF*^A3xZm)Z*530S>!Tx^d;Go}V1dEGw=gGGE+Qulq?2@570BC+F#?;&S z&lW24cQ)!Y8iqkPj(Z4E+fJvFf>%^r(lIeiODm`_N~0uT!uN7g$XmI!#53l)J?3{k z&t*&$3X-box``1XI>rTrH~=(?#*~Fga?W5jb@xtvw=)89ByGP0p% zMpD7!@xW((D(D%T9r>&=7)?6s?S7R6H|x`OTf2VM;E-%5HhXO8n#?2NO?*n@I7*_B zgYReTquTw$dmr}b!&3VGn*srP`xXDN?6zVVH8m3{a|164xFmQeVnyUcnsrYau~9#W zKM$m20jUl9SLO)SF_8%q7}C%ixgtzNZUWAOn0}%c`z`Pf{73cI_;FOV00000NkvXX Hu0mjf7M35+ diff --git a/html/html/images/flags/ne.png b/html/html/images/flags/ne.png deleted file mode 100644 index aeb771d29af1f3b595af993ff4b134e0e389fd9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmV+q0`UEbP)A~3;V zNRU;?1Usk*L|8bS{&;uC-|ii% zcwYMXk8k1fs=`oaiJm?q%QXJ2zG8tb|6Zbl=LMe+hs|bFL`;g+faO_Vi&^dE>(xz2 z;hdXHCSsVy+6P%?tp&y@7QOGcpWc(F{PUOm!&^-O#(NLjFi=p0YA{(MIa)?g8<>!< zLq?WGg{qMuDn(UTNtOeVlQ-S`@Q8|ny6;vB@djBbdh~H~8m7?$n;hfhq$S&a0rl?U z1X8O@9BA}ZyRFINttSo58KxP+TrK@p((7^j+SpF+$9=FI1z>6xFi^cL~yK diff --git a/html/html/images/flags/nf.png b/html/html/images/flags/nf.png deleted file mode 100644 index 2f9ae9475d218c123eb6c275a9dcd1f82ec12127..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P) zB`bTz0fg{kc5!)g**)m`u8$GEdU*x@(SFyL*psIxj59(=mStb&pT8}q004v#HnHot zj^&uTsnomoI}BU6|DZoPnY5ryNFuR<6>q=4d;jZ$j&#E?Y|Hj6&+1s91*~8afpQ%V z4u_A1-hD5O!YGdXj(d#8qzI+l zmXy%Cs`prF^Kytzxt^p0|(6QXJXJ_+zu4x)lki1G0B9&@hSBzI>b+?bTt3SS< V1*J9o3%dXS002ovPDHLkV1mV*1H>{(`UK6p0^*;J|6bfmOs~CqR}Y zv+;QBZhFKi1Lcd=uIj388IRu_J=lNz?BHdLiz+Y-{j23`xQ&z36ZW17Q@U-QVUOfoIuVlghbxP zxD6|ko1Ua9Of2F+H%ucl+NvyM4vCp(vfa?fU`1aMi@A|7y9_RQXWK#58eI8zHt$Ms ziLew0J8Nh55NAXoD*HCMnucQX9JBoHP*xI3R z6BgSs<>U)^3o&ec*L72WoSOZ;q~2q--vuNVvP#iELlMd+TfrKq00000NkvXXu0mjf Dr4-l8 diff --git a/html/html/images/flags/ni.png b/html/html/images/flags/ni.png deleted file mode 100644 index f679bf20652e678f818bcc0e1bd578c451b2c4cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)&uSDw5XQgisovQ*N)E1IE(S3NFBIxEAd5OWQGu>T&-LnaTP0{qw_3QfTtC8I&&-d=`JbircMzdw+fC_Lh0T^5cF(3g^B>g!% zKYsi9)5%Z$z3jeD=Z_xVxxY85sw!t^cwlfz60;cNyZ7zUbl!|j)jaz2YWij5#Ct8k ze^{<&eIJ;H-no$|T8~wH^YX{{k1JJI@&w}HEa!_u>|#8kR%Vmo%^+%n4dhTTV|w%T!9Fkswg5jU!Ff9{jTpNri)gmNt1SKLbHAoLtNDYj#Dj642 zOYs2000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005GNkl|&d+tzu-&eHeAJ8qgDlJOJQ4&n480(*2+>dXF@zsRi^bdb z>$QV%k)|xmI?ktQG6@033qv}e(~}cBih7K>lt=8%*DuTU`t@p6F~-tVFg9up>Or1M zDa?WGP&yihXxpmT8+UgH?A_J%#mz?{M5z>y_1>J+U z&E|vF;H9ja29iS+A;)nDAutSNT9yU%rfJHel+Pj!Was-L%Ngf#97huv%SM)qZGs&# znOMlauA3|?YA!ezN9@zLpT8b|-6)KT-eYTxjk@f&c&j07*qoM6N<$f+aooZ~y=R diff --git a/html/html/images/flags/no.png b/html/html/images/flags/no.png deleted file mode 100644 index de11ab77679cfa464b9f777df29eda6c2f0c51ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmV-t0+{`YP)2h000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005@NkldJv$F~iJVH8u+&E5085IOUfsjja23eM@>$xaK zS;i5G&*ajr>2q@vr_cD4HSc@B=aPI>2#eRG#(8L2$hMJVD;O6QDM?eG5U{>pVxQ^@ z;NqosVbuH9eZBc5VC>cAkFRH^m6>_V#ExxR7%Q^GXchoMpm(T7|;)h(Et>~I0}g8Wm$6QWZY~G`hB;%H`LW98`~={K0Lm6eW`Iu z$_vx7psEdvA_zmb@A5Z_<14q9OEvc3e%fjk&7Z~MRcU5{+hAe?tv9kq9cK>$)JRU}PQ5z-J;p<#d#$l`>H_`aV~$~zfjWdK2UkL~Y| zQxYLmu%R11637?A(~002ovPDHLkV1m`C B4w?V} diff --git a/html/html/images/flags/np.png b/html/html/images/flags/np.png deleted file mode 100644 index eb365c93b898dfebfbe6c2d9bac0902c6f5c86af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531 zcmV+u0_^>XP)s1^Z)@wo2a0mx}u_`vGL2F%zK_PZFs@H z?MfdWZ7e{FM_yJ&RZZ8=pVQr)|HM)IRm%)GJ}hMtxxgrQnMe7JqV|~!4QM(++GKcm zl>Pn1BceXBvA(yo{r>AWb6cAx!&_a}FI;SozkR>E((dJ5HHWG>;V6DPZe?w3Xz=~d z@An@+T)OsZ^YFONfYy2>jvTdCbgr|L4E|jL()XEeC1)k(&DV z=g&8fAANZ8!K&6|1t|K}AHWaZ*|{f}wQFXbZw^2?TIqiDOLApi5_tN+Xl zOmcD@fBta)`pwHP$RjMw!pr-ck@4fVZ?8VQzxRu6C#&ieF2R5Qt{*eh{anV)_so2DU81n8ht(VAOR| z_3toBt>eLP^yq2V>u(gZ3c@I_>IMRUu}+D}8C6M43_x3zg+eq{+`D`8)(D$}*&_P& zdwVgLajLbgremZ73K8$?4$x>Nfyj#_sSntjGk-D}Ch3>O{PM9o&mP20BN0NTNjP_0 z&t=Tf5f(zkaT%l{C<>JBcl*4vWc?@Vn(X!Yo$(X9 zX&bC7#|_SjV^hX3(mE-NB2Pq}OHrykIJsD^8(BVk=$;ISra?-u&CDHR83ux_tcq=# zZ?ip9iTaXP)Ugx#1C4QZJb90h=KKFdjxnz50v3+#>3Yzt-urLt2OV%7m zoet?W(Ba58L7V#sjNs*yF(sQlNu_SY+s0W>@qTWy*FWe>>k6%Nj(HpU23-$UIicpe zT&g75E2;;GY1%I5I^BHS%!D)Xj;OQX4*O(_%3JO-3Ae5B`mM+DuK5{!MzK&hCj=8p zyu-UIOQV6e%g_Zh^V6KQ)ipBT^Kub9;Aht7(8g*NVyvj^PmF=0)YG*IV%rLK?iUYGUvkRvOQM5upIDCA+4|PyP%9sx^op z)(M~hh^1S>90k5M<(0Gi89G2MVmD}@D#rdaSrtH>s;V(kE@!L+9sXkyg=<71@&PJN Vv~VjM4Ez89002ovPDHLkV1kB6;lKa@ diff --git a/html/html/images/flags/nz.png b/html/html/images/flags/nz.png deleted file mode 100644 index c50ae5fa471333182c93dbcdbda7b35b90392fda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)dfim1d;A)=&e(m0Oe*jL+k=NB9lzCa)8zdb)aFN$)ds+4*D_yECT@V7_a;N&cmnWn+(HF&3?$HuMN1~CwLb=U(XYowFgO1!g4@0(2&esz}t|1&>+jq9fj;`?&H65t8o1X;w(8K=s}N%ZATX?~AI$wB9@YRl1stjBo>kjk*t~H zc&-~pk<9Y~0L?TFN-?zwu}lcnviDjs>ZyG$WjRXlWPO|C_$*A)G*?v>A%j?$(sDtJ s3{alLV>aeuscqyk<|5($rd_fA0^2G1lYfbs>P8Fq?5K5_1%4AFdgb*QQ00RR6F88j9cruxN`?_5HgoneiEb)3R zZM)aneq(~Z4;|Zd@w9HGtSG%=Uk1Ykt3GXV(kfgO{PD44%y6y+yGAs~_K@$Vkv&fBQKqw~ zaUCkePBI1*)9)DD?Qp)~W!cqr1N&c3$ht|!$zU`XW^w8PD7nH%&WIAc6TG!v-mp`i zS9zh0MOr(dr-vb!#7>e~X(C-%OU>FEw{>Hy#!{kxUjWTF3ggR2W;tmPdto*}N#q2k pMlw;IXeV0DRclTyKlZWC`VYw5^Na~-QLF#}002ovPDHLkV1iu}^a}t0 diff --git a/html/html/images/flags/pa.png b/html/html/images/flags/pa.png deleted file mode 100644 index ea4adb2266537ad49d15684ef1111bc0e1b9a4da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 587 zcmV-R0<`^!P)b*TyuXWFLfzdvTvHQz+sFEa!D2iGLh>(FXu`FiW z)V5SYM7@2#Wu|E!cwSBSKb)KaSv*8mT=CissaEYq!}1dW>d4J6SIaY&qSPTcC0_xKfH64Wqi<9myxncxPlNWD$;jN zs960z>o|yzT*_3IDF8e6@q6;_+n2v{e>(GnWz37RscP73zj^ig_AQq(rfHgx@-m9j zFtpN*^7ZMKC8?a9FQ&ie^NVQBi{^xAdRalXH=zBlVHjmuZi3*d6ora%r0&wfIQGM3 zaG9i{tRXOTof2xdEk=p1>y?yOKY#o=exKieAcn(?^BwaSp&zc2G?!JasZGhaDZFKw z7~|$PFN)~&)c^EZg;42s`G0o4h~jOML=a+ZSZ4D>W+M?qLWuQxy>VUk@&(7FiMnPt ZoPX9U*L-3&_*wt}002ovPDHLkV1hI63#b49 diff --git a/html/html/images/flags/pe.png b/html/html/images/flags/pe.png deleted file mode 100644 index 38563b81f0dc95d5307e568928a468de7d332714..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)0>|Vm?oU zSsBNQ()B}3?QG{=>&)<6*V}%e1Sf)Llr&^1D<;GSYgQsbs4xaf8J$kYvf2=O5Fy82 ztyYXNObI5GN!c`&@}Di3$t=^P)D5FyAcQtTmSq{bE-Fb#kz&lNsu{1jkk#H V2m?U|-njq(002ovPDHLkV1lAd03!eZ diff --git a/html/html/images/flags/pf.png b/html/html/images/flags/pf.png deleted file mode 100644 index 832a5da41b60e175ebe391adaf0b32ac198bbbd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)Kf|Qid(gq0W2-K7XLXmg^mK9sJ@C1do;58^>2YVK5 z5CS12Dv?rDXw!7;x!4|iE=)xF0zHzKpX~oX2H-+dtIjR}B>Xro^2YR06II?M~dwWX7O5gVyjn3-o=GGR^Gjwzmx($APtq@!WrK+mN zGBg}lw{6KVcv*n|4DRf7*4GE4k?MIU2=M7?dbm%2d&HK_16(5Ckk`3s!|bt0G~{(^Qhc+MO#O{uB;KWxe?s-niNG6r~Jt zf-p)`#^^bV8AC}-vn-e8Y7_pjsX*_`S5Y^#+xObr58NseCJ9M76&Vv^!Gbrhlapyq z5|9^?BCD1;cIx95OEWCDoYMC^41x$@MhUA5AmseE7ca%}NsUrTmNnDVY+G~P+5i9m07*qoM6N<$f)L04rvLx| diff --git a/html/html/images/flags/pg.png b/html/html/images/flags/pg.png deleted file mode 100644 index 96da94f807c6f4cf8a365b38c811e3aead841fe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 557 zcmV+|0@D47P)s*;i@a~8@LdBETtP4)|Fqu zT^CilYA_;H3L=U`Vk>Ui5Hrn;nK*OjdZz=m8t~7(mvcDhf1cNrUtV#>R53HdCzzmKBfCv}z073;cK^`)g~#%8GJbTSMC( zG#WPwg_}YgfbGATc7?Gzj8nN9x1Th!K&ENuwq~>WJqQ=0!EGt$p#|YC`QSyoXPGdJ zv{zEPyt&#c~m|(C;WLepSWD@OFo2GI+m0EZNQ=rK+ z;DW!7c?4?=)5J6kqg*cgzMpf1D2PJwXV~9A$%k+c)^)*xIAtjD9mm}7ktA{aEBa?+ z_u(8Ig<6b|=&CHG{?K%0{l;-Tx@+Ckad-}wppviNb=}-nzjFQ5=_&q;Gw@DtO9;dB vyl%HErL=7kCy7es?hnh7j|w^YPO?=GLJ-mk{sDG^e}P3RO$rNJ z3sXf9MgIaD1v{I=q{yA#WiPvPyR&mMySI+X{RMfvR}G){Wj+spGnJudW8>+UuZI{l z+H;Gm*Kb4-J2>d=@BfLSRH=z=TL}4K7&Mz<7!u!ydwY*9jV&#;=C54+@mzzco sgw#AwZ`P-X(~&3&-TIXIN!l6fA3U$)bG)%^pa1{>07*qoM6N<$f^Vn}rT_o{ diff --git a/html/html/images/flags/pk.png b/html/html/images/flags/pk.png deleted file mode 100644 index d86edf1cd1af1dafbc52768414b9b8351e473140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)nKJX&jA@|ss;d%M2T6h&T}+XRi#X;)naq3?bxUGspoiGm$x3=?&Z>)BC4C!%|^MQ ziYmu&i}@nMDwRsTUSBuXA%tVwI`_^KHhtK6^#0ceK@>Eg-QB+T{Qj=Y%Va^qAfU*~ zWbJCL*=)||bH{VW&e<%OwQjVV*IMwM3yPqqX@}Nl|I;KPNf?9y3Ny8xom+$u2z__r z(ve6^Kwd5zSFYFYXob~COd9?8^9{}*nxdG*8O963bUKA_ib53Oh~?R@qc6Viy?*?n zQQKBhg~Qx};AJAj^m_asLkLkRY7!HiGO17y(ira_>^I6AZ=SsBb$i{L-A=uu=QI+< z1mg_zeLo1oBuSR(lF##!B!Nrd$UJ)bcK4?_YHzelvT<;H`2F`W^-s5wtz?E~RD9Ls z^P(VTucQHMGJHAMn=iu2*#u(}Co!g8BYd%swTi#z9{|eUPQ_jT0000oqd!x<0)#41?>sh#)&XS`Y+n+X^Ah z*kZ9*tyUNF3(h&MDm2;mz3YzcMNxEOz$1uXC_8oz|NZmV&E=)6X;qej(oSmx2^c>} zJTE0ALJecIQtWW3-`~&J=JCPa|E2$T?D?N9OGoQ*q%=*Y({whAXET!hFoVN|sH#dC zea3?Q{;=E8rzi9BGH?!YAwmq@Tz4GE^IFb@QWd32NohVM;csuWc!lbH(>TN6hv7I7 zu<10+vflTlwRIze*3!1>xRnvBib53ojxnd}{2+*+_hbSl$}%Smb=R?`sYRo##gShN zV8ttzMElvaM_}Vw^189ZlipPCU5&!@I07*qoM6N<$ Eg0^+)UH||9 diff --git a/html/html/images/flags/pm.png b/html/html/images/flags/pm.png deleted file mode 100644 index 3d23d0e487caef8db004f195c4df2bafd350c15d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)vC`>8KD8;q{S`D?fMcW3OXg#>Zc+i^%{SU^YXa7SJQ*U~+ z@!~}jON>UKPzxygzzj1C`!XyeP4Ex&CGYs<%S#>roGIYA{zqF^?B4Q72;k1T<#Dmv zPG^KnR%*3t%BYVZ2&N^brb!GpnT#logKu7~Kx526>dkYO<%`RkH?~_Hnd7Sj9P(ZG zOrTW<&A)i~e#M=ojnMtAA5N$ydZXb^AXSa5QZvUMVPk=HnXZF z|6Q`@+MTv2(GwfSFlL8?9S(E=)@&+jxcKzW2SP`REziqm`#b((wzByk@YU;zg%hp~ z_s0pgw!St308y&M63IL(!JvHf+kP0iwt6{hnI)P%21lVOsuPUZ!zYwf`@fCs%6*mv zN<7*SEqb6zgcW4UlxrfEJjtyWPZSX)$zSSW%;#f9~^??M;45`^MsBW?ttpr9L3 z*9F0a3%5mVixsTD1}mhYrD<)NXn$kA)A_u4zD)3Pc^oe1oO^g&9KCTTIdD29617s` zN<5Qw!jne(&Y*RC7pyV;W6GgSAbJQMpjWAy(=&_NrGip8e7mcby>zPWNPm))i#sBb zV_l){p77t+Sbh_NI!3}Y)U36HSX0o+=Z(>~ImhPo+2TWUY-4TfOmuH&jW8k{u4-FN zu|&yE1o4U6M+L@PSGS6hw${RW4m`GkEkgM=`0B#rTk-bDcRU);jIUwBzI-*rHs2Sc z!xqh)_d}iRO^?Zum>-hR(p?Y$pIjytd z0juNF!pjsI)GCODR?q$tMJn)Rz$i5E2jt8l@53s3db^DfQ60u{;$h-~4SN?(TbGRH&Kx^&esQtAvcg<< z(Cr4hyQ%B)Jg-5BFg6IW8VyW{qU+|yMonm6jSJ}b{LNd<*6r0Q&uM=@CJtXX4YOR9 zWlcxev@Ajl$AL)Ccm)nMg6gz+sdwXU`M8x+KN$`s#?-2kBuQ0OU9|s)I2VHP7(9D1 z(N3P4ySjYN@0V|0ZLTg?D%&rzO4OkMW6iWw+p2}QkN{;Y@H}xf(OT`xPoF>du)g*2 z)A!BwANRK3F9q9@3T13?#{rE7pCK{Qld=pV>W)T2kwuH0<-%OE9 z00Gp*Q&gDVE&z*iz7Hf~@uGby{73+p!+O`Ny#|7sZ zrPOoFh?a2-I-QC3=fKoTro~o}2qYNohgpbXspPLT>j- z8_xGA@5u^6(6pd!E2ddO7^kTphQ8<1m_>|H%BGsR*SY`go&9A%fubQD5Jx66^6YG3 tnhZ#zm<#>93 zaMtfn%H>k2WSZs*ObF5KcH8Z?>$(gXI{|nIf+yRyENcapBuNki(G}lF|wR%mRepBr$1YWD87_I6keL%^IjFWV=J5OC=)t z01-K_;A<_<^OB=|+I!3SzWBY?eMXt8lRo5WRs|24%4M;PmF; zaEB?*uXo^bkLIGIQJ)!+xO~!E8j{`ZuHSAOxrva1=B4Nd&A*s}g+pP+(xIiLIb@?P)1q1ZWB9c8c~=ss!2>MLmLc)Gz6U3i3=yhfj`3U;V+B>cW$5^b^s(0 zLTGGgNzd-{aTsekUg< zJdPV7AVMY~j^{a}5%D|&V{~|^w^#$bYo348-@Ut&(|j65SrCXcRg7jB$TTg-u?7Rv zadgY7R%tDU30BPZooyX9vW`&ioQ~!dDRoWj_4_JHG1zqxAyU^V=L&)9uK8=@jq&vx z?mamxJ{9)4PLqDIUyME*CdYWi^lbYQ!a|58qg~qicztWKg+bykrjP5}_RBZ(r_T{E ztYrP(qGGlB>S%>ZJ?c_zCrPHG@Is;8et~HmE|JOxfK7gi}WIlgR^i}d+f*luV=?^ zA5Mnu*WvJwi-xUIDMZRBd?)feZ*ui`h16m7ry*C$z1X@w!&^)KC6PyW;!>avbUjG_7gl00000 LNkvXXu0mjfBZK?~ diff --git a/html/html/images/flags/pw.png b/html/html/images/flags/pw.png deleted file mode 100644 index 063d17fcd130d5b4f35bf7a8fdb29719b7a2636d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmV-B0>u4^P)aJ-2*VSvYL$<$#i=3{N7z(JtBtBlfsB|LM_{dvkF&5NB~hFW-OrusfOq zdF$}CSCqa*Ai&###R~z*Q>vy3=Lu~4D1X4lGYfuDh7SjDo zr#{57uj2Z`S`=&V4afwVkVP$sO0m*FM9jwEzcXbBEKOxX8>E~?SwPS#AkkZcGoOE5 zW=0jS_HJZ8L97vJut3NZ?okX&B=}QI-)=tZj87}+R^rX~m8b7-9rYECDk1W6pZ}J_ zXzpHJdAWYG@%m)k`SNq|MQioq9gs(0`f zE{7fCpvP&HsiJQ!JExp@CgsE2vP<$3<d3k4r+5>+5Vfm4xWJ2CnM` z0m2x?ae%P{Ve{g``Af$b8*DNh$~;dO3p$_6EHjMVXt(IzU2tuf}=A4ryc{e1z< zd)vd<_I=?vtge}?HzMCp#t%}kbXl;>B#ySJ;DwiD9t>SO@I0qsOCdO;*=i{(zQIf+ zWSJysQItxl1^{pRhw-mQaPW5b^kluZDj{>m?(dh3@uK*Lou7Zdx%o4@Td`ayrJGGR z+KSp}C;sW6%c%=2DN9OMjAf=}^}pNI)$Mee5W?$Pxh@C-8{=BUmRu`Hxl$s}GfGn_ zx#5K`tHL< Ry6yk~002ovPDHLkV1lK<21Nh> diff --git a/html/html/images/flags/qa.png b/html/html/images/flags/qa.png deleted file mode 100644 index 9619da62d640c20bfb50d17f95a01c9e5e7d59f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmV+j0{8uiP)wbSy9Y`Tsxndf!?W&T_fLeLNojJUjbwczkztb9;Hcx_^-C)Bw2sK4UE0 z8}1$Ml!MsEt_~AWsHX*9|)h(o^6#%b=YV$noK4~(UFw$`S;czvZspXe@ zfBS5=8@G35Aq4@YX-agWG0vJzrh&Dq$z(eiP^F@jDgofjC@YnOh$MmQc56(tju!*( zV&Zl>Wg2PyJsNS5xOP!{Uayg>SJ!1!XhDz1_s(gp15HWBYp3J8joB?07GRgA3LpVc z1h`m$LudUgLByVlZ9@Fa=bR7&fVEp9CZq&00`s|>PhyfJF;ekR5Ln&ZH225eUKf)YlDP3DE^b?2RFlKx0=r1Tt*c^PnJ7hFLoI zCXe2{yC|#@g-97h9?-|R`dqL_;RfN~J5kJ5#_Wqh`Eq5gHP%@Zw(%E1I28A=xjpC9 zd7V{o*TFd!=M;)8%ZxQzBirMXM3G#^asG3;z}&_09}acDk(^b diff --git a/html/html/images/flags/ro.png b/html/html/images/flags/ro.png deleted file mode 100644 index 7f72dd811e167ae8c9381838928164bb35d800f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 542 zcmV+(0^$9MP)7pm-fx76b0}L=QfH4@x zeI%S9mi;74@6*rUlM#B?vZnI!3Ci_q{q@`ZkMG;(r=RulPnrGgy9{AX)M9)Q0xyHh z3vsq2jQhWS+i&#p?ELy>z1cq0QWizh);rym$Y_j-Yp$!1Vr84 zZHyuN^iUplXv~dKmSs5(br%8$0k^{i7bC_^t7h!#YPJ6SCH!z6#YLKCtxTycEo5w) zQp!0Fa1c7!gL~WSW7Evo>gLn!?R{2MQJm+8V$?OVM?x0VWgx;yh&<0495sxUl(1)P zvwf_kN|Jn+1MPMHFZItdgxp1{C0Vob!ossCPoP0wvi<)j^cf{hSshS+p-J z*^STwa{wg0@?kEP)4cmKTX`}v|WIp8$gJ%DXfOea0QOg6{lgzHCVGj8nx1lO4FvT9XE08 z{9tIgz#hsDBsAAq7L!X)@%0i{$35r6D*yP!Z*{iqPW3k@k>rCf`^-WI*W{6+1yii`ydNu);-n4TJ85}4br*L@$!VJI(O zal@5s^@2dm*3ZKxa7#X4^{L%2EE_2a5fHC?p(BK(jFMeQ`2aiR_GY1=32=))^Z z1IT&vqTjrUU<~n>nNt?w3t**j?$%DtsAr7`BZHdH&##-00kf=Y6$q}&upNruMI&|p{W`Vu+ynkt3##0aX^T)$DFBHh$09> z2m%-kijwPy;$()CC?7K>-kGGNA(?s;k2B@}3ntTfSu3}WVaTP73xGM3XE(55#IA$# zL29MJnPHe=GQKUoCzt^v8>&H?qG@Do{I-xEij7@MFO1Oa!Yd(_RzG^SlB>t~5w-vT N002ovPDHLkV1j}##JT_g diff --git a/html/html/images/flags/sa.png b/html/html/images/flags/sa.png deleted file mode 100644 index 177143012ad1a69a90b41065f8eeab9c2c044b9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)zeM^j)y#d?#pf) z_RY^5ZD0a;7oKFFzkI4_6(=#yFlXF=22`M_n=^BUY&5fHmS%x=5CgLvTbkW|7udmJ zcDPM%J=gOC-_VVSMVhH?7u!ernD9gqN<*5FU9K+IAJ^`MTNF8i)PW9b*)Y$Elwx&L*avCL8}u5yIX=KbcV9H+#gj5SSDW@XFTk@c!LTBJ+yDRo diff --git a/html/html/images/flags/sb.png b/html/html/images/flags/sb.png deleted file mode 100644 index e1ca39b5d730b515f86b7d43533b62ae4e951418..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qXCP)uDa;sccXWs}3i2MbmU`W7np6`{nmbGE<5Fz`pPtKYX7D9t=BCdi+_q^YB}_ z)v?2)snfS^T)j9MeZ00++^@7X6FDA%Q#2`_oj|Kg#rbR%C&GB_73s6WzCy8)sr0FA zc1EhJn%b1Aie^~8ab21ZQ+KcLJzDrWJWP3xuqk!hx=cB8M@C}Hi@A6_@pS!jxl~nj z%>m`wW5>f+AqbX(x#Fdf+Yx)CYa0#CCHhUq5IR2@MlU>=6c zHC3*5GO3+=vm435CWWyd8{Aeqg3)4Mgd;HAGJ)Rl4MO&RR<8llJ9u#I<>kpw7~xh_ zI00000NkvXXu0mjfdB+;V diff --git a/html/html/images/flags/sc.png b/html/html/images/flags/sc.png deleted file mode 100644 index 0d42691b700af2819eea7e1a5632a2149e5e6f34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t$3P);dcmupgt6bAGRh2N?Gzs$qttV8KpYG9To-A=*I$}0~Ss-(C zvW1`?h!;W-)&Wp$bR#{ROZJC##+2DVI1|p4 gG1ApC15d;A50$yugp~t_y#N3J07*qoM6N<$g72ag*Z=?k diff --git a/html/html/images/flags/sd.png b/html/html/images/flags/sd.png deleted file mode 100644 index d9a8e943c01a6d3c8b17ab6df47b47c44b4279ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)ibj%Ky{oBhvd1>s)mz;dR-%U{A1YcO$~=O-sc5G?2O z`1+a$!Md(xgs`e=rm5}js-`I^3c9$E0sFlte0XS1>cO+ov|;Rz?7gb=uyWmy zh}y$Q6glU4n#NJY%c8|rowXnOx6}>OV5kkxUYwl{Pd8`avWpg@mk002ovPDHLkV1jly2T}k4 diff --git a/html/html/images/flags/se.png b/html/html/images/flags/se.png deleted file mode 100644 index 56f85793f5a6f4ada5f6cf75696fc1c1adb143c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)#kk$1KynFQQMbLu}AS`%X zyn0bVFCr=)1$AABv&qhwbS9m2rjv;oohR6$s!sK*e-%{#oXFrZt>16cU@$y&dUWmT z`3Kh@efyd0Jl+jLP}Q}jX~aUFOS@g$cL_%7{*$5dpZ5LU#$a>Dp<(2UTXs*+V5|kJ$IpL^k|Z@cr5awDBDRCL)S6Fln|Q`Y<3`6 z2vMxC{>E}X*Xxas(lnVCd|Fo!!i8a~gc^>6To>Ea(2a$h=S9v|*u&k=mo9=Vdv`Pr zc=Dr>tcw>#e2YTJ(EdX&1FZkA=m*z8Z7yxIGQ?cCH9@Nqgh#PvamB9ZB)0k3R* zwTMd{pU|$Z)47B!&5yOj$Mcoi%MUlAC=7z(BpOjGxV`;a0_XYLTbQhQo=q$ZK$vqL z$1&%;5CVWNOYFs~?So&@VQ_}U&>wuibNRh&y!}sidwAXT&5i-um1gNQ%hT?VL0000T8NENUHi4_aPf(;TI7HoJF9)cI)F%YZ}us~(e z(w|feGl}Ck&YwLvolzg4N4k=Itk3t{>v>m_@9M+*cXqY7b^80^t2a-0pt3)IPmYS? z!!BRizK1X*am><`Uz^5h3JHxregY#qznLB%>^*z_m}4`)QyNg7Wt|X?0U$t8L|8%- zPLd?Rq_ZOdU9p($ru@;}Jp?_Go#elMv|?qu2KYY0IErJ+Ipq`A)BvD#U5ktn5!+e8v#JPd=fvRHc!!n!xxkX2O)QE08L z9RolJF~;;l2q9;>r?M1EDXp7E>n&Ckg;KRK=8_?VIK~~E)3&XYvMgnDA$^I-O7?v} vUI1|4Zx}aQ5CqP5S&AaxFtyej?27sihh*c@`hI?h00000NkvXXu0mjf7jp3# diff --git a/html/html/images/flags/sh.png b/html/html/images/flags/sh.png deleted file mode 100644 index 070cd3bb88cddaa11d7dd2dfd3ee08c47dfc205a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmV-;0*C#HP)+KB{@#9;Z$35pe=UjSx<@(MuqqFWl-8Uw> z$`Lr(^&>#z{C=;y*UZj`a6Lc}0+4T4o!4`PudD0)T4ngox6;k4y_+3}qpK@M-MV2~d7(gf~k@y7k?qtc%8xKF!-fv#7lFVK_A{C44ePm$D+65h=7v+oxA z`rA^_IAxO416cv*4 zi%1WJCcyuy5qw4ggiENCXb8!$CUcX33A6zTAg+$Vx2J8Xg-Wdf)YOD>DfAxCeH37AR%Q%u^=j*08ws-kZ6#2j64S|kFZb?8X6EOkZ9N~ zP@?RGWRu;*@S^Dod101Z;oZ%OTg54Jic0`z@ww1(W{deA+a}`4P#77 zXZdUe?|8^RL;}%|-%cLmMHV;D|AZv diff --git a/html/html/images/flags/sj.png b/html/html/images/flags/sj.png deleted file mode 100644 index 2b44b90e4948c20601dd50d5e4c978a8b8c0e3ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)ta~2T^1O!CT5aI}m2%*qG2S~gE55P+xL{HBvAPOp)1VI5Z zU?~kKC=?+UX)Xcm+&T8%-tMqR5_`2;O)w!o_ednO9Sz5~lbRmlimH2?pZI(bv>B zQyej>5I`SxItWN^_LsVz8(4{V^!F}A5geb2l+yUNsz7EuEO1baKD6DpO}usH{n`8b zLwH!e%+@!dk&Lm5D{Zm6i-NX5PHr#NtY#7#=5%FwxJQ5Yfvzq#mr|%TPO!?ObKtJc zl@6suy!&WN+Xi{5sOkZ2t@VtN*1efQSt-NGG!bzk*4aYL9s?p0At|7MSRsb!#j60v zQzoDV2PgzY{DPk(&O{1AovY;=kCUg}6kabrht3)_>Jx?Dl9R%sMo2}t|87I_JR%6Q z>~w!;aQT^Lpp7?wUVVn<%s55|U_}Zax`V!AhFXm1J)$2C^XHFKo4o+_A5fn@!NiO6 zi^J;ry)%oqSbc`p%P_1%Yb@AesssiJ|6`RQan@Ew0&mV{3Gz?jifRd$FDu!Vogd~s{ zLb&)#wy}g(uB~lswuD#?Y4ydlHUq184PnFIq13;kaG9p*9Bqf9_*t>5>8-erv z?CnO(D?9b8tLy!Kuy*XnGy&c~ z102d724Y;935BsDinCnsh~WQh>+bz16K5mbjq^JPy~BfGbUkgKl5qF7Q(G>VmQcwA z#VqAKN~kD`1-qGqp68R^@o+qP-F*I)mXNMLc(VJ*5^Z+sAX`n8n9}iN?9e#NvhJL{ z`0*j=9g_Y)V0^N&t~Z}$)yhlyr|q5Cjtycn=6pz|<0y_9lkVf3Vc(;^pOdLN6E}kX zzVaT`S6v-iuB#eGIulV6pA*hxGJbvlRW|WGjxpd|h0rifq{4DBGs|U&5CBZeHS^og`tpMnA{Jc#70000000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005MNkl`<{vstyHhrSj0cI4Pj7)0@Gp3LTYneVL{ysq5q2kr1Mk z(kB>UPfPqaT@1s(Sd$m|>gDTE?P9swTHxu^#=i&Nr$_Vey14hXAU}6Aeo5})2$-a{ssLMjbEpH@e({6{Nu0%V&5r&TE ygpnV`q0X*j0dN+wp{!P_RZ6znJ9)p4HQGPLcjt*i_kD5z0000RZt diff --git a/html/html/images/flags/sm.png b/html/html/images/flags/sm.png deleted file mode 100644 index 9dc99fa25388e1f608b99c1775d2ef291db7ca44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0tw{#If)SS@=!!!iV=Y$7?ANk zh!h93teNTOibORD#)uS@i)C!JY ze(`#+c72^={7{Z(vWhOjP1GD%kQf{s>>N}rTB97(K9V*z@3gw7%Wu!s{o3jkq%V)& z{QOfD(Cd{(EU|K+DNIulfHuQ$;&UO%t{bC_oaNxj4G8w0B=L`)}j$5r+tw!mz5L`f_@zU55TP}C8!08cUm^~R9 z`Tkd*DeR7y%!+ zE+OTbqOeVlC{kg*%+`c;DP#fC$(kugSL kdW?N0$gxQ%%bX_?zuJJOxjJMV#sB~S07*qoM6N<$f|W_uGXMYp diff --git a/html/html/images/flags/so.png b/html/html/images/flags/so.png deleted file mode 100644 index 680bfc28b06695e903e2ce047d221ac8df336b87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)=@9sseastOP#ncNe{ zb}nO_5_o_f=~%Ml&)@lV6y;u}%3i(uD9`0;z1^L?c=V$0A!z29hmY5zg6SgkLfUlPs_X&$9T(Qw`iP17vXz|eLu!U&oM5JNBD1K9{+ z$(-#k6dfc{`a8}K1r6{FXzH&@*!IY{7(#QVihw0 zQ~Qn+Qp=ib=Q0xGahe~pvTXS0tMV#t1J@4bFrxa`XaKqIBQe@YrsZ@RGK#Y}s|oLpLd<|}80PmpJ0#$w-w9)p6ExChz|+scX30 w?EfwKE_M*K6uJSVgd%)J%|V*BIv=pZ{WM^VbM2`eTqH0N8iAc>(PTCD42_| zi>!`l9K|Hl-DP!6!s5Z|rm3#3uKK#VX!+;zYJYX->rN-@Ff&AS`5>eVQ8_73Zchfq zz!tu^DQ>pEY_E6L6H4&8c=l(-*>Q2)@-1uE7SSkww=c4+ms0vazGl$O)9e*j;)adB zd27+t_k%eeC**B!9*Gf>nkl?QSJSSqaOC&FJw1C)h85ATZZ{nct$4`POCl4Xr?(%0 zY?d`J2fzU@d2YNwtCj1R5|w%B8*l#Qtw&zj=c!f8#p>*s4b^!7sfN`l`s*R)7tn5^ zJc`@ep3FQ2%E~5Hl2p$~L+1DRvm06S>quqPC`zSDbQ|pb=#tAVvV^Q583=?Xjn5%3 zX>I~zhT*`$1)g{wIsAKb)ID7pwo2rLl$3+?1%zBnF%meA41wdbD#nN#52Y5PiG1my4bfg=kQSf`~*ABq{+B5wW!LH`w_B+E@sJVj-lm5K^SFQmk!L zC545lBoRy$45%jvA;y4`+>N`JQxxMe+|3N{&CJ_bwze>My*xbIG23Z$l0*3aFwUwU z)pQ|Uw2ETo;w5g~*Af#EGonHBAV2BM``ct^OWD+I%4DX<3$d5OaUyfI;nN>=I4-Ug zt!~#dxeQ*xHO@`~0i#ms0|s{nv^Bw4>j_B}YBU-p+eW3*CS>&nU;)qjrAV0tcmLJq zIHYNcPefeOoUfrSkLYHJ{C>K7py@e^#^}1JLc^f5bL#EI<{mU9pM)HWyCy>+jYHQl z9zh|e3dN#ctL`rKz0HGjX-r784)|Q!p&rTFU5XQgiuHKp54OtU5dr%Y(Vl?68-3K7(!HZ`PJcW{YBfba+9s(|qcp@P& z0hS;txG^zgqD$C?nf^m{&n{T0RBF2G*I#w@(ERG!(?@f!UOby=wnESlhXN?MSV-uh(M>~hdCxc&nF}nGAboz2};d!^G)szYUVKgC~cYELeZXKPrbznvYSM45rYbY{o zrhvk|`5LZlEQ2FOLJbv4`m*<9a9*(16Ol#^>!OBXl;c{~I(PPGD7Uci)bID(?KU&3 zWcM1?Ih2Qfe5dS_S!;`;U?S358)GC2M#(;JZqGJNNAv#gll9e=kW3iooFsBY#H9L; zluudBT7Ki}ryLKLp1hXz*kTC6NK!X7!D_M=l)Vq{-t_W<4ZmN0D@WHIN)&R^QD^1j zztYAn(IFM1Or_bu%&bV@YKYNAnn*zKF$~2>+fgrC}!?7=r1yw)^jG^Q)D(_0}wlZ}M=e74b1nHa8FBUJ5hNei# hx{nE^R}DTRcMFvZ#V=fw6!-uD002ovPDHLkV1mxr>~#PD diff --git a/html/html/images/flags/sy.png b/html/html/images/flags/sy.png deleted file mode 100644 index 5b350b780cc4e670b6bd0ed83bfca742a21f0d58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmV;x0YCnUP)Bb5Qb-WW^ainVnIx-Xh@`{G*au|vGL!~XhPwCASOaWMT~_7kp>b94S@^a za{J-jU8F!Qcr(fE&b`m>%x1)6sdQQ{pVewApZ6>Pjy;Jigox+!&sHny_sNgPi^1T$ zT0N;$01^Jd5?LE{yNhPihamwGXD01727yp2Gx*;OC*zoH$wEq60Wi1ebfVFSkHFMt z0Ay-)0J{trvm6dBz{(i$*6SUGp(0Ao;P`Q8q)0JHx5hc)Tx`sAG9l-D@>ifnQUY)K zcXRvkT)9{2b<&CJ_uG|?o-XPr?A9}Gjdi4?)QCAnS_O#s`qkK&SzZUbo?h0Cty>=F z9;~$_VB;+Nxf`h{`JiG7mzUGMXIx*+lCquSqRFGO$Ose)1vpSzYk4S>Ng87gWw>A} q7K>6!ZkIPaTRcJOgu$PSU6J3=W|x&Kl?V+}M zO%^#va1*xbzd#Pa-HOPKq80fWUx;l8$xLWDDR(t$?IDHYfAm)4qTLgGYvgb~oyoub zR#2#blW)S3q-%k0HP}n2$T-MAsa`1Ac7aoL9FMA?T3P1YHZl<-Jyj^F_`D-57IaFu zFR&90p`{iwW&H+Y9bG-wZ;mD(-(Pw962S*PndR~YJHb38PbJz{*HScTG2vyzXdB8# zqUpiUE7A9Jsj1Y+v2NJkTiknMMR49pbENnx9| zMoOZ?JdC;K5)moq1Q$^Dpf48ON&vG8X^<002ovPDHLk FV1g3KL|Om< diff --git a/html/html/images/flags/tc.png b/html/html/images/flags/tc.png deleted file mode 100644 index 6e164c34885029fad1181ebfcf0201b0b3dbbfae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmV-n0-pVeP)HV%6aa81w&Rbp&*wNvQ3XK^q$29Tju_csWS|=ZLJSQ2A21^}7MLm(7C>TR zNGqyJNFX5;iYOs<96Pa-*pBV<`OHO1#oniT%Spd`dhZ>_ohvFVAKto+>&=k2c6eX8 z`v^>jGL)WvI(@s>%ZgkSMF3P284b%cO{gl;n-}*5#%P{jt0bK**d-9*!J-=We@t&i z_J=AZB`?d84gl13T?2|-Yry>PT&a1m=E}Qk=}U-hiQPA0dK;@yK)l`Eb>G*3YAa@qF2*GQXl@-?y21C!DWKo<{6tP-zZcMEv zGLXiV;NbTaOuzi?3#?L}XKOa`XU^F3{P{9vFL075s+tOsZa_8QqQFCE`Mqyp9Oop<@fjP9r}G87DtNxS+L8v~ vYE3|qM2;3|!iF~|Bqb!ncy-SAu~zX9upsr`1Z+8?00000NkvXXu0mjfw5W7fM#<3tS8SfNOXDldk*;@c~9faG@Y526YT1 zIGJQ7J!5y@D$ng{vABKdTbxs;PL=HMKib{Be&^ukWNVz%|5=w0?mtHpp$-gzjqL1c zg975DT`uOYU(CLJ4YOG_oqoP``^MhhHIdNNak#aE*1@Ew4Ul#c0?g9l!~4sZ&oCSX zABI5v=I~1qz4LLsD(@bAL>-_#jZuASsb;CUIDD1g&IhxhT6p{J*YR-$3Fq_i!+TFq z6A@G^&ET3G6sGLn=LZ;CmRTI@Ju2FKg zzB}$;+Z#FC{B-ZUN*4D-r*_p9k2GO60w$@=^8Y8-rwKH{|CYSjfvc^$ea27du_xZJkbiSiEUp2nm|N83n?uU=h$Kxg`R_s21*&Ys11ac5+7w6x<$^DWL z!(wrLa&mid!Sk8?Xm1VkawAuK775Ia8m?DM~~N!0KK`sjJbpPuCf;6hPW_e#@%l!MV|x7WM7wO9gjcwoa`?T-7K8ASwaICK_gqMcH!Q)5!eo%k^!RDt2w`blCmvyVECPJ9l zlzKiT)PhdiC}RND%t3hY;Qr{zQxkyYyZ3B5y|>No+-MZVgwVp+B_voCLbqx3G%dh6 zyXunbWwph5a&p3sjzk!J{mtVoX{r$0mJ4jEJGO!qu8OQ&F4GOWc4g;g&=;@Y#4O2J zB3b(3b9EeQj-dyx75H|~wUD8whF#=u#K}7>0R(2_bYL$!n$F`$G(uA~j0{R}K<%D~2{IKa^E8hmR*AY2 iRUyhUFD~|2>-+S->P)nOc^B9q5+8+6(rCs<|dqgJ0P**2yhv;NbEQOyO~m$ zHl#@!J9gYO!G)e+p8QtU_ulgl0QU;$^8M^&7{J-&^!aRh^>VJuBKx_hmW#G3K)1t~ z&?w?bDju9fX^JQdK77KCp||hGM4ry`HqT*ef?@DHk5Z?iI2N39LWs33 z_|K{`8jl|(;>B`-^SoHC%X({eT@N7)d>rvW2$l%S80!07EtMk&_WfI+axT|>mi@TB zS^Zj;b!~?p_&(u08jaj^ZIWt2fVEAvEgbP&PEH>`ojt26xn6CutX9hQ`vKv@DR|7{ zgmF%t>AF@mZnr+N%ZquVcln<(%eJa+`#r!Ig)9(pm?T_?h%z@+XIdp?)$QBkkVbpU zWqy0Jx%;h}rh@=diU0@@Vi;2hurZx6vM39qwXyoh=CAR?2|RleYE8fZh)<%(^$}?r z^EgBZXsyapS6gcIzR|;%um9Mqt6^IC)`~+JSD#XM*FuOe4BZ15V~WD$xu=w`)J{r! z>{fjKXv%WvEc86gLKF)!N>P&bEHwMRk}}(D8g1lZ>88>5`&ftg3vc1(?H|&tj{pDw M07*qoM6N<$f&z&JuK)l5 diff --git a/html/html/images/flags/tj.png b/html/html/images/flags/tj.png deleted file mode 100644 index dd802f02eb1176cea99180fb29e5aaebb0ba6035..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)Kw44Js^Y?dLrvV%JG%Rkf;PMTzCl{`?tFcXv1U_O=fX?QF(k0OEfc7Dx2U<@bw={`S`J{rz}% zw{vi?vA+*m!+&7OV(hQ4$MbV;TjPz9$hXT&s4BF!B=El&33@MS9>6JuSH~xf2Bo=r z)q?y>7EakOIXcyB1C0qIm5A2kBSjomYttQlXr-w!D%-EpJwq$B0G<&xONg?C5cuK2 z$e>zlYpvWWb;Hnq)y-S+?n5`Y@CYTswRt*wNvVS9m4OX>jX6WXG3p;5Q zIAbjX3Pu2h)C;U2OGDeegVmG0`3M|g(0h?N7En{J1&K95S6HXd!Y(jzrZOcTD z(+EtB`>a*R{Q#L^@btWj%O5N3j=P~Aq#o$(q9o-`#huVZHz(i)u zj(@Bv=DWnpDmj(N(LyRr3a*gaws8dSN{Z;k;57GOPl`y O0000jJBG;BMu z@kDmk8x;+fh&R*8^7L{q0x1I^0*OeT>%V{Z_ji6n8~bo|_GGr!@2qv6OB(TBIyh*S z`VBs_JCaH@SxX~d zc2qX&<;_N=F4M-62%;-ps{YnPK;OmRLtyU*Dr+KPSd*f&(BE zM=g86vPhcfIJ4DiT#qWz1saS3P85I!7-}R0^5IkZ>WXx0VGN|t6fdxiZHXIT2qH2vw9{s5hqTV2Q26+U&VO0ME*9jT$ Tgx|ZC00000NkvXXu0mjfQ7tXM diff --git a/html/html/images/flags/tl.png b/html/html/images/flags/tl.png deleted file mode 100644 index 22169214cf47a5ee0118e0a08dd36a6ca48df0a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmV+j0{8uiP)$-=B z#JmucNF;3A=Er0*IW((pt`an0fpE+4FCSE%=Vh}Ju1hUjfzEtsX6ny19}5qfjsa8oSCN1Qv;)O znx-|xV^vEZB^XA2Zol}C~iK|TnX5|Y~xaDh*NHFLm4WU?wU zu?*#sQlwHsfuglkMd}N1LhL*;8O2_Xrke;Oz!8u6s2!GNVUX+-@v$PxATPYt-z@XO zeEP_wVdzsmE$i{Z%a|v8DNGft8~$QM?DnVd!^)@NqiprnG`|5o9Iv*Zq2a6m0000< KMNUMnLSTY7#pE*p diff --git a/html/html/images/flags/tm.png b/html/html/images/flags/tm.png deleted file mode 100644 index efc4867d3314b28acc584f38053f537fadaee717..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)iSiEUp2nm|N83n?uU=h$Kxg`R_s21*&Ys11ac5+7w6x<$^DWL z!(wrLa&mid!Sk8?Xm1V5LZ7{@0wNhXtIv(4_7x~o;FiZ4~HC+k5d2rBJGQ9-a@px?mn;aBjaC0S+~jNWoMF^Bu?ypfH7M2#z%(vU=(ckFMD{tL}8_(+fpRzrBbIX0cWs)|w>`GN>!Q(8OVdn;e z<%<_+97e-omL4g0?u(tbsM}S4{lI&>&iZ4r&;v-%MVVw%d1lznYfYpm@MC{i#8F)e zXc!nFGB;NS(K!Viy5YYIvxcR-^(ZCYLbc%ug#4o2F9)1YxaYO;Oi$& z#gylhG-ZO*|5!7UCX(;b@u;LzMXRgbcd*+v*Pj|CSGHf}Uv^mCM9Nq$RjepxSm+Pa zkuTB&R3*|iOfdZX9_)Xs+)e>8Q>uhEk#f#i!D-HCO(wp_;|UNPL7Bpk`>}eCT(PR_ nLIYVYBPET83pvSS+X?F*gN*wlwpfjV00000NkvXXu0mjfK1dQ0 diff --git a/html/html/images/flags/to.png b/html/html/images/flags/to.png deleted file mode 100644 index 27df6fdafca8d90576c38e9e21e08386774f4d76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)~1r4-OL_iy7 z&2D@f&&}ftW5-C;IXb8O=A3VSO}keCHS6`d`*gloK7aA{?Dex{`TlHoaZzlpM0%@9 zX_%&qkUu*J4dHf+Xf8%{`Gh^JDShokMCug70Fg)X)ibcz_M(|LyGaj$n;RF>qLkNd-CqXaE0M=_pl4K+AHFH!x9T`F;-}6SAy`LZF(bi^cKL8zw}a7vwf=3D&ySuua=_ zhx4My@qM+IH!Wtg99|r;<1e2D0O|E6yS(JvSYrg3hHd{-3Pz<~!;I&+;!QJQFpjh9 zO@8&0$8kq1U~0<9@zLFRlM>?vQHw3cSWJ{8yt+3X#2Aq^o7}>#~B$N`Rs)dw_r?s3gm69ySl%Qe#my%%*N)=a1 hn8{{rdAIGJ^%v0p^3Whc!PEc%002ovPDHLkV1mvhG#3nb(gFpYq-5_z67?mRB#n)z5C{YVs>d zbD{JOLYMfsAJM};>qmj_xu4#Tfnj0MMGt%9OK>$hZ_8?tWb z_!zlXs|>kggb;jkJa~Lo0V_+=*>b(!2q8P$wtEPfMMg4FW5&F`{)bB$?#&}s!CB*bTwh9NW9Ba`92C*`L+xp*t8N z*Y!Qm3xa?#=KDSXKnP(Bv-JM7=PzGv1Cjs&U~b>eblaLu2qBEI0R}scBclcQQ8#-Qi#XPCic;k&=)$C3Y1!`D&eFTOsyo^7 zf)`mKg*3jYntcQ2t9j0IrIlkj9`tBHS!mvm;vTkkmI=elQkzm*N@d3VKGt3R1=~ID UO&gw-4FCWD07*qoM6N<$f;+zi;Q#;t diff --git a/html/html/images/flags/tr.png b/html/html/images/flags/tr.png deleted file mode 100644 index ca88f97d5f93563ca129867ab07e0871ee78d7a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)6gBO#Wvz>@Jd0b|EO@O0nLg1wrt82<=Dk+>0N@n>Rl|`x!iV(TnWr zVYk+}nN4OgnMsGkX&&>cs% zX)l=Xy1;zc-X@!y+13_CNIpL|LTH+1S{6hBzQ#3G7tqMZk2K&mRT;Us!JnHv%I>Z z-+##CV{~()U0<6I4-TbnzyGRK={gr8&GWKWf3f`ODVn)?f}x20-R ztepr11VOlXAsVR`#b-%PtwW{(fZaioH0xqKUV?Q2oWPT7h{dLxrReOOjpKRFr>bf? z{Xq|f130XI{{f*0isJ7Rr_Ev*hWhjC%hwks1wjfopi;UPY?g)R_b3F6$W{~42PD+xbw3?5SPhPr0o*Q>* zz*uP*NeuzebVF9veKyW<;fYYYA+=YMw*tPfaLzPMfY?&0mG|C&cQHYr6l6#H15;7E zR$FAW+v9l5>}k!~&hFMP_)~g%W=1+RR{mY0Npho5pfAPFpFN}Ha&k{=$g*Y_sbY1M z2B1Az65F+kuGD*-7I^XW!R5%6xp{_RoD{XTy7~@yhLI_y(dik6W(@Yz?oIOb^0q2g z25JX}hA;xi;>K(u(K+gG)pt=8{ql9a%ZJ9iu1+D})%90@>LYf?&$cUNLvBIl0NCv~ zMPNAL-rl+zzb3i4Qejh7l+T%r9y~S9`IKz#b+t8Ow>?O|*?^2bVnZDNuSC092hCuA yOQ)k#n>{n1%NmA}&1NA!=yMWpzU2<~ThKqIS?T2_4FmrG0000&D^hPG)X+IxRF+XN+2gQL*e=1zoFuzG-jiB|8U(m$|swwA$JQntz%|uh$zrTM9e+ zom4>>K~4~*6_aaq_V>V9E6JQ$#|P(Yt7~`)!!X$GoctPOLx<>!+PsYrW|Rd_k$rBi( zR=fC4mRom`jfugi!5Gx_Je6UXu;d#D@q+ONj>e9g_@}y&lBBi*Fw_MgHszc#g7jID zMM74T_kC~K^}&L<<)G2T4@91%v zB-5-=lyV0C4E1Z(|k4q03d`orDln!S?4E2 sJsdhz6?4$bb^rhX diff --git a/html/html/images/flags/tw.png b/html/html/images/flags/tw.png deleted file mode 100644 index 85eb1ffa4ee109d73afddb30046f77484d692d03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcmV+o0`mQdP)p22jPQV#}#cU8`90GP8 zlW}6ZZFk!Vm0%4U*ifoke)ZS?7ee1E3Fe2ki;48}VDIqopw--Z{PXI1e(1U9?HkH7 zqA0p)T8>j&TB44FDaF^<7_bse*H)XyCr4)&r+fR&(cfX$?bhauv{ut? zTQ&?aSDRrLH5Z)4^|j3;N;>Us5cI;~m}gv)BvsQu3K&|iE2ddsoa8wm1ZKI>Y&2S) zJN|Wd_51$e)gLl0BncB$(I|aqRLhzWk_s_qNri2!uI%sZcn^;+ZQpaB^CXt})K;)g z=chJWnmO&MNwg` zg8vITdB;=w{)EL4u4Wiim#v!pVF{Qx&PtKau~{VXU@!{&wBMgFhNe@Zs-IedFj7%u zoL5*F1WC{>qX?BHdQ^~9L~000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005}NklTJ8NXcg-aMaN(&I1yZ73bL;-zl&c$QM}qjgev0e zl`tGdl#Pj~%&m)S(lp&-nwKVd+GS5^)%zVd=j!}8|BDj{9I6o5_}K`Y@nj;C%N8e! zd-|Rz{jN%)r0FTvxhdG0 z$8iizof{9%O%jmwuEpXf%7>t+AjmesZx$<@V=gQmK%L+g-jG_n_44TpuJylFBe?PPG6*tY@!L@whl;v0x zq!_Ayd$gpiZUPiVaU6#x8Dkf2aS`GC((*}3b=-Et?>YmP;X6rVbM3>AhtE}2a}Wdx zhhaQw<^o%qK3+4Y-+defZp(AEPR9el9k8^z@nCVQvaag7?fX77*%WzqPN4Y9uh%cx z9Rk@mU8m(bZD>62FT3|x{ci%&mY+s9(j-WLF?Z5c)j02t5v#|~KsB98HtH8Fvr00000NkvXX Hu0mjfR?-wp diff --git a/html/html/images/flags/ua.png b/html/html/images/flags/ua.png deleted file mode 100644 index 46b0aaf5d181c1447d717389de94d4ac5eec2ea6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)2$?lpnm^Dp21d%E7dc=h`IhmX8hSKIP>&$%{}15p&wgdAn;IM0t5 z#UcE*f$$%_didzcdUJ7ksf?`}Uhz&0)-w=7f)PuSETxPR9EI~}{r!TaDf7(v#k(Lv zJKk=a#bccdV1N;#gs_xmlqPWurculOfSsH^U7tNK9-Qo2al3DJLdkLVsxXW&#*}&w zB?tjGYo$8QJremnd-nM4o0pBOIWL85=Gh?V;w4g8FtEykB6T>_R%_eWrr#ebsrc6b znqBp~+W%5&>)fzJA~a2lJYQvO701jPz*||CwUp-bryq;$7}s@kHH)8Qyhfo20)SCM zQ000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005*Nkl%s!^6WT0A#-JdH#~%q-iL}3#zIZIx;QO zL`afUT7&5nbZqaD#>~ONWH4x>$ZIy&suDI$!2wQIWKGi%V#JbVy{`E*Eg0$8-P1eU z(YUv=qQLRy%XHz>{-}KUs?SN__^V(dp>F}xC`1vLG>Y*J8&;!TemDLR_*ZT;b7@A^ zj~`;)GKTkzvljgN35KXtvvLx)qR;mqsCkhcADzJ7 zS%WOB0s=58qd2Ronh}B3cV%Ol7tNvIXZc~hkN?B)9*xq1PZINxX#ug zEkjB@$LkJoe(~CKFOy_WX#&6oLK#9d9&bZQmnBmWWI|{duHzUJQej-aeRJMDQWhQ4 za1|+KMiilzvvS>cB%DQjHRSx#|Y-R@&``42k~ai&@RQnfKlfK7RCebMxljlfinwkOW91K+F)pJ`INv zkcAKh01z=&^YPa&<=L5?&*bNi+0O3Z?wuZzS*4lLN4$OTvhggEF#rN0i)z;F?>oP= z30&jh`_Uy48AB^r5}YsX&gf(4-q3PrFUL4JKAxPM_|6(WeDGdk9&&5YHI}rsQ8J8| z6Z`4)MLGJLcr}fgrMar2P}Q)FP2n3ygy-ivCpXnNGK{9CdUv=e?xjpp6PQ?OYKrQZ z?0D*`X^+6Ns?S}?frK1jZ~K|AU5MB!168R=ol48fzIt(_!vs<`hf&m7!qXQA*QH)F;7B?KTLaLdG}8NxyRgy)S`5lOF!%&z6YQVu z=iW%ylCx;kN~E?li|MzvW`Zc0VM-y2jj3KNZT)SC!AGN#$e_BYuBxBZA~QS8l3SFd z0PGXj`aeg*p(=B(<7{C}M`3E0BH{mG-I8`#6QU2H8DEw7VQUM@QddYgF9hYk&NMaP lc0Wu8@oEk99fcP~@ee0Q9<9z!p3eXP002ovPDHLkV1j;P4>%A_P)$ERZRm#D#5JIl& z`iupfdw~xj!s|6MOx1($Pan<}XBVq&QpK0s{MT0}+jdoLLkL~h;haPfjv~wRs=*v( z-LWb6AD=E)tJQ>}tE=1nQ8w@1B2e1{AcVNS@0mKB2|>^|$Xf>JV~_@x#!cPDv1$cB{HR=K08$^To5L&y!T-agyvZDI0xuZZpRrlyXj^ z5C_b{ST&6hBDd|4ef;uX>%rgk*Vhcr5bhWeKT(4yV=jagAzSN4_eD|cvrN_1$UcA{ zhy5;&uVs-Ax&bD$h?pyd;Uo;P=XC%`DRXP639kBnWLbK+-6SFwt^_vK-8V;XPG(?Q_4MrqXcsBYS$s@nE&%o9;6RhCK?@;_@& zAHjgqPETw=sOzzS@i5>F5!!ZLcN8k6cBBTSdMVAg-^aSkKm8Hnwz7BqA^-pY07*qo IM6N<$f;Y_nCjbBd diff --git a/html/html/images/flags/uy.png b/html/html/images/flags/uy.png deleted file mode 100644 index 3aed8f7eb90038b069700f6c137927bec4ef391e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)4GY@RNhZm} z*IXPtqdY;6Y}sCX(tpme=RHcm?Zsl@$?K!p^!3I251+pL{l~xG+?Qpgw6TMS5Q?HO zN!TP!8KVfo^J9Xxth_q3m(Tq_Z=bzv#m(&lyI$r->CO(o_oEQ?9)tmg#$9aR8Aog} z7J9RU%uipz=B~=~Bp5!<18WfgfCMC_ak5iLNY{0oHzW4q=;ZWiIGr8TE!znGV@baK zED-Vnj48EgiuWcRW5x$sD_Iun5j#HreDP*q)vHZuMe~FbbuuL+aF(JpVQK1oF^Hhi zsO7bEudDz9qU^@G1_ yDNWF%#dQw}cP;6<-eg&3ln^`2osauiTm1*TSm*%)e@pTJ0000`Lj@@~5)3f%0WLmA!jHXLfQ#E+w$@ATv?d@w9TM+yBQ_;PH1np&lgqL=oKA2y4e>h&>>NOw`h+!IO^$UppvenK-55Fx9 zxD}PRk8gDeWJW|r?6;?q5E#yt>rlm<;bgTIy?4j@9-0Q39f}S>Jdd!cRG}1$F&`hh zA{R!E;ShYm|1le&W7Ky(OeFg1gK>)uqttVK&&GpIp`V;-lBgDou7AplFV6yxA%HM) z)rc^~v`Niyqq3;GVkyCL<-_-Pq*M09Bp?MNaj&MvQzC>?TQh0moGfPf5rr2EjN(?B zgpB^wMj@!DU_3cm2yzXoew73{WBx76wNtclfDt(xd(w)cm5L^*R_y{tP)`Sq{o1vr aq5J_Incp(-#CwJS0000S->P)X$a`=@yaE>v9C!c@ zr9HPILUro=*z13LZOpj!6Lh56%j~x^->f9vDP+h`A0?@h#^d49kv)5PoF?m~`-g|? zf_#=_17oad8e^>2>rqOT+i2KY>hIngKNwDrCnAry=Z4%7SpWsNKnMY>gAtqvAt3}1 z7?O1a}IaJA@#irAVC?f7(hv7oxT&jhlATZK(gNJ8jIUkwX=@}jn>+faG zj4MEzm2_|&1fb*;*}ASXS(XV=HOeT}RlOrBqLeR8HYmzC3^!36x80(6)hH#65^N8{ zbSfYWDARm%cu@1r=Hl1s{e5d^RL3`1)2&si8YPT7DojTWO1D%^gKD1VX;Ij-SMVEI zmZfRhb_)|nlw4A7lr&B68noBbn1K{j2oXh*?|WGeNS37OEq2HF4=K>y(XdwYrvLx| M07*qoM6N<$f;CY1cmMzZ diff --git a/html/html/images/flags/vc.png b/html/html/images/flags/vc.png deleted file mode 100644 index 230ef4c22cb56b3713966cc4cab7b8601c9fe29b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)&%pvND4@Ui-KZej0;o4hUhPFD?f%cAz?v?Zj2jNto#8kiHTH= znr=YD0+K0XP%@Q zmht{A-n;}edX8000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005fNklsE>@=vUT15yJAW~IPc@5Yiv0;l?_CzK5v2o!C_-PYo?!^I|D?l{r;lA@1m|g4E{x&5K?pmJM@UF1^SlsaqV+y) z&rZ$;gYL@6De zL>3~jc8#*sP6^Q#MRQ0yznF@hO4r$9xk02M6yN+&HgcK000SaNLh0L08StP08StQ7JZrC00004XF*Lt006O%3;baP0005>NkliG8H!XOGse*WMQ?>Hl&vIk~p z_h~+K%O&acvG;NR5Mv?(phIZeW_i`NZ3H#t)0;hMLG!$pk%t@BW@e+XGZ*pIxqpA+ z9--na5>!=28Z@DfbX`*cSEP(AnBMJ{ETf)KKBA*$)BW4_d!8C&F{mm^#Vm2#k5ASr zR^-;g%Q~TW$<*B^TidrIbDcjt_+7sz);H$AuHK(Ut&l)oSuusi7HF*3zJ3WNF~uZc zL}1+j#ZgCn_w9P>dHbK6FW#QUy7lZ<=4c{9hF;b+uFNGyL{f}HmgThX*_}x@>J0|3 z+T6MC_4>if55Z2&5jARRXiYB^2oga8DZzN0rty;DR2cY^R%dYSrgKbq2xLL{5_TliQ69z{V9&4g69=Uh6Xfk%d$+v0zWURrEVeft&_8r z8O|srOU8^l@Pj$YvRsxWO;eEp88Hk9fS6Ev+16*{YLW%a(B%Ikd;QUL7Sc2mMNw51 zwguBP*fKOl=JK47a2}3RE@r<cgcha6v{Z^KlqzDH5YXTyL^g=JBPR71Xk5B<<&L#3 zbYo(?EKHi%4KXH!4e|uh@u-c4yY8JcgZn}M{gyQh4JwN05;m~w|js2AG`MeQ%AjU zNZRxVwTbLY2*bnj|&=NuBL;@&C2iDVG&+CO$6J_NtR0(x5J{zk(QScFN7~` za~m3N#4>lBn>%Pu3C#=0S=8z;md+rF#RT_q5vIS^Y&JWcF0sjKVs$1k1U<28Hx|$8 zp=sIDkDh-kIr`{X8Fvsy2)SSFv$ozgP18LRzJbw5iEwn#AMgtq7VJ3SMlssJUK{m@ gYr2NI{*Lx07*qoM6N<$f*?5`D*ylh diff --git a/html/html/images/flags/vn.png b/html/html/images/flags/vn.png deleted file mode 100644 index 20ef1c2683f96254eaf01ac963c898aa4d8addbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}P)9B~?J_Q0x${3D{tEsIE{FqHt~+yq3x{cc z1f7JMv|ZL_Ngda&XPheh1AFp2e)N5x_YA$aQI?8zBoH;%W`pZQ%xqS zEUnf-7~(i)S;hu~ILkar(dDHFcFZ8l9QNwuL^aK7KEKa%Wh^PjAP?@VzcS7(ZRuZG}=%3`u29U z%-ecllmKsR@D^cC=^&*;j*{dd2wJTxv35w{`f&K<^yo;G<*F#wdo%N)2C?y^ zJENH6p9#D|(wJI^dM*02*QcFQHJ{xVh5A*2ui8UC;uvR)j#Bc2`B$A%BjvJgk}@P)O=wd=5XXP}^3s)D`=2jD%#o>DSlxOiaAKH1w9Cn-26DHN3qAA zJgEl-@z84vnp{MKiU%)+YQP@+D19c4ZSr>4xBCp%b{W{6Wq&&}{~0lPG&7XSo*5pN zot+J>HH5ZliO7U#)oR~LrIm#R_sHQNOWj{y$bpev{k^f+IyASCBHE-}sZ{E7b2^oB z?>u#Tc5?S>`D<6l>r#Bb<`DdX^-WCpSF5#LE}Mhnh;%yb`+n$Ly3jLz++B+EW|};V zK^4}(X=5q~8r7;czvZspXe@ zfBS5=8@G35Aq4@YX-agWG0vJzrh&Dq$z(eiP^F@jDgofjC@YnOh$MmQc56(tju!*( zV&Zl>Wg2PyJsNS5xOP!{Uayg>SJ!1!XhDz1_s(gp15HWBYp3J8joB?07GRgA3LpVc z1h`m$LudUgLByVlZ9@Fa=bR7&fVEp9CZq&00`s|>PhyfJF;ekR5Ln&ZH225eUKf)YlDP3DE^b?2RFlKx0=r1Tt*c^PnJ7hFLoI zCXe2{yC|#@g-97h9?-|R`dqL_;RfN~J5kJ5#_Wqh`Eq5gHP%@Zw(%E1I28A=xjpC9 zd7V{o*TFd!=M;)8%ZxQzBirMXM3G#^asG3;z}&_09}acDk9$BYkOpBv53#kX4&Q)0DTyitJSuyIwgc*S+?gPLQoibgqR5RBiJ*H zgXb@1^ZBBxob9%}xvBEJS6mr}0bLjRzBV|D9N(9w$vD@<)ZcXaQtd99_UZX+p62vn zBN$T>ST=+%#&|R^2zIvJ3Q@7 zxs;SK+OPxr^5z?;zoyADx&3{WuYuq?33=!VF<=<#Fl$VzIWK6|F$Jn5hg3!X)`6r2wNv!KyG4Q@W zvLtDe2T3WA(sCSEHxYu5N!>9?V?Fh$92iYjqN;!pre#6T)Axh_ORA|((!a+v>-)z& bto`@{OzY4|U1J;czvZspXe@ zfBS5=8@G35Aq4@YX-agWG0vJzrh&Dq$z(eiP^F@jDgofjC@YnOh$MmQc56(tju!*( zV&Zl>Wg2PyJsNS5xOP!{Uayg>SJ!1!XhDz1_s(gp15HWBYp3J8joB?07GRgA3LpVc z1h`m$LudUgLByVlZ9@Fa=bR7&fVEp9CZq&00`s|>PhyfJF;ekR5Ln&ZH225eUKf)YlDP3DE^b?2RFlKx0=r1Tt*c^PnJ7hFLoI zCXe2{yC|#@g-97h9?-|R`dqL_;RfN~J5kJ5#_Wqh`Eq5gHP%@Zw(%E1I28A=xjpC9 zd7V{o*TFd!=M;)8%ZxQzBirMXM3G#^asG3;z}&_09}acDkt*)@>z3fddi}ZFiBj5)$Ra1&Iq!!jUs?fVlD;TzCyG9J#bw zM0b}>VsHMOIP2h4%L{Zg9$6!QGvC1g+$-Q%9=;#T>Eox*o-Yzol#lZ;_I=-p z#Bt0R^E^*$o#zc5;6d{8a$$^7N)~15E@Rj8D5XIVIKaUOA=fX%u=~c z+q$yWLI^RX6Xf{>yTo8Hx+#ky+ishxsH^IL{rdcIy}VJkf4XW1tR-~9oSP6@9M?(W zX4Gw$-^tW%TQ%(gTmSr#F0ZvrtudGo8ivRUjG>2NZ*<#RS(cgFIoM^X|6?kXXh_O!;xy40apBhU7+r{zW_{j02 zU%nSsYFlXPtcV7|`Z_SXydc0(2uhMDNi2jG!#pgNytLbMVmNlFWsDOFHyfMfjk0Fa z=?mA-4UM3s&!XRtu!JOuhXI=bJGwD=>!z31Y{t@)hi9%vWwrjb_;;&TZK{pshg=@j!t*1K(Nln~Nt)#9=3#4$A(w0w-uFZhv&f-s065;y_$0M#f_ ziEY}zYY+g(b&n+Kxm>ldCf~n9HJuRxJY-;U>_j$o62brj7+up9Md`a?(AAHt9+tb< zq;B=m^G4yD-s4=J<--WiT)J}p%v`;-zdzKVnxe@3p0*)sx~>86!oya}+fQECYPFpn z+o!m6Dm8!OuH$AOzZBZ4?YNW>rK7gZE-|}Wmuml)eDrx+o+(Dg_Wp2Tyan^u!XO(%u%Y`hSirF$}KQIiu_%bGTiF*QOYD!Q;Tn zXlm6~3=5(LS|A4wTi>(iAM)KiJnN5D*Un=U=faYZG?MD*DASgh85umTpW3^hJEz?X zoQ?IQmvE~To~EbfF;n0lrhS}v&^7txfV295ECyuQFjShcbp$o!f8{xJSu%+oitT}x zuOw4*gL*YdxY`ne({xDA%$i&071pX+a`B$|^aRZc%vEa+ML4FQ^6I!$2T40LnN2R@ zBAN&)Wl=`rWq)H(QA{!DYKi_d(#%9xNgYp^1b>{lfkmF{lHsJ%jq!g0BXg#`f3R4c P00000NkvXXu0mjfBMjv& diff --git a/html/html/images/flags/zw.png b/html/html/images/flags/zw.png deleted file mode 100644 index 98095dfead874ef80d9dd8631b88c879dfe4ce3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmV-w0+s!VP)AiLRDB>8-xxoxdR4fd$t! z4cfMcd>jUt5Zm(=&>7`mpG~=_SzoKg-#NGzx6h@|*UFf|QE5Wk#GY0Qv<4Z4h}k9+ zB1!3l9qnwKm@&HZTf5J0YS~%!AIm5T)xG=Sh~ON-!y}?6WMV8aeOfRLHmH>w7Jt& Date: Mon, 4 May 2015 07:40:30 +0200 Subject: [PATCH 187/210] squid: rootfile update. --- config/rootfiles/common/squid | 1 - 1 file changed, 1 deletion(-) diff --git a/config/rootfiles/common/squid b/config/rootfiles/common/squid index 76abbe851..1b78c8e0c 100644 --- a/config/rootfiles/common/squid +++ b/config/rootfiles/common/squid @@ -34,7 +34,6 @@ usr/lib/squid/basic_smb_auth usr/lib/squid/basic_smb_auth.sh #usr/lib/squid/cachemgr.cgi usr/lib/squid/cert_tool -usr/lib/squid/cert_valid.pl usr/lib/squid/digest_file_auth usr/lib/squid/digest_ldap_auth usr/lib/squid/diskd From afa91a4df5755569b91c87a6b3b6fae095529ed1 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 4 May 2015 16:02:39 +0200 Subject: [PATCH 188/210] fireinfo: Fix SEGV on QEMU without KVM --- lfs/fireinfo | 1 + ...hypervisor-name-when-the-CPU-string-.patch | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/patches/fireinfo-Skip-search-for-hypervisor-name-when-the-CPU-string-.patch diff --git a/lfs/fireinfo b/lfs/fireinfo index e63bdc812..9d657653e 100644 --- a/lfs/fireinfo +++ b/lfs/fireinfo @@ -71,6 +71,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo-Add-an-other-forbidden-string-Serial.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo-Skip-search-for-hypervisor-name-when-the-CPU-string-.patch cd $(DIR_APP) && [ -x "configure" ] || sh ./autogen.sh cd $(DIR_APP) && ./configure --prefix=/usr diff --git a/src/patches/fireinfo-Skip-search-for-hypervisor-name-when-the-CPU-string-.patch b/src/patches/fireinfo-Skip-search-for-hypervisor-name-when-the-CPU-string-.patch new file mode 100644 index 000000000..24a8ca10f --- /dev/null +++ b/src/patches/fireinfo-Skip-search-for-hypervisor-name-when-the-CPU-string-.patch @@ -0,0 +1,34 @@ +From c667589410912ca980a78f417e86dd6585d58f9a Mon Sep 17 00:00:00 2001 +From: Michael Tremer +Date: Mon, 4 May 2015 16:00:31 +0200 +Subject: [PATCH] Skip search for hypervisor name when the CPU string is empty + +--- + src/_fireinfo/fireinfo.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/src/_fireinfo/fireinfo.c b/src/_fireinfo/fireinfo.c +index fc639d9d4cd9..6601c21a733f 100644 +--- a/src/_fireinfo/fireinfo.c ++++ b/src/_fireinfo/fireinfo.c +@@ -156,11 +156,12 @@ int detect_hypervisor(int *hypervisor) { + + *hypervisor = HYPER_OTHER; + +- int id; +- for (id = HYPER_NONE + 1; id < HYPER_LAST; id++) { +- if (strcmp(hypervisor_ids[id], sig.text) == 0) { +- *hypervisor = id; +- break; ++ if (*sig.text) { ++ for (int id = HYPER_NONE + 1; id < HYPER_LAST; id++) { ++ if (strcmp(hypervisor_ids[id], sig.text) == 0) { ++ *hypervisor = id; ++ break; ++ } + } + } + +-- +2.1.0 + From b59da37ee2e5755c93645271ff810d284a014d35 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 4 May 2015 16:18:24 +0200 Subject: [PATCH 189/210] core90: Ship updated fireinfo --- config/rootfiles/core/90/filelists/fireinfo | 1 + 1 file changed, 1 insertion(+) create mode 120000 config/rootfiles/core/90/filelists/fireinfo diff --git a/config/rootfiles/core/90/filelists/fireinfo b/config/rootfiles/core/90/filelists/fireinfo new file mode 120000 index 000000000..c46115521 --- /dev/null +++ b/config/rootfiles/core/90/filelists/fireinfo @@ -0,0 +1 @@ +../../../common/fireinfo \ No newline at end of file From 359efc4bfd201a2972387b30c93372541d56feab Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Mon, 4 May 2015 20:10:46 +0200 Subject: [PATCH 190/210] Core90: Drop old and add new flag-icons. --- config/rootfiles/core/90/filelists/flag-icons | 1 + config/rootfiles/core/90/update.sh | 3 +++ 2 files changed, 4 insertions(+) create mode 120000 config/rootfiles/core/90/filelists/flag-icons diff --git a/config/rootfiles/core/90/filelists/flag-icons b/config/rootfiles/core/90/filelists/flag-icons new file mode 120000 index 000000000..8776b6b79 --- /dev/null +++ b/config/rootfiles/core/90/filelists/flag-icons @@ -0,0 +1 @@ +../../../common/flag-icons \ No newline at end of file diff --git a/config/rootfiles/core/90/update.sh b/config/rootfiles/core/90/update.sh index 68798cb84..1e0a54881 100644 --- a/config/rootfiles/core/90/update.sh +++ b/config/rootfiles/core/90/update.sh @@ -132,6 +132,9 @@ esac /etc/init.d/ipsec stop /etc/init.d/apache stop +# Drop old flag icons, before extracting the new ones. +rm /srv/web/ipfire/html/images/flags/* + # #Extract files tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C / From dfbee171cc3ee4d05958a5a35bacaa68b7a4445d Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Mon, 4 May 2015 20:13:52 +0200 Subject: [PATCH 191/210] geoip-functions: Adjust for new flag-icons and usage of "unknown" icon. --- config/cfgroot/geoip-functions.pl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/config/cfgroot/geoip-functions.pl b/config/cfgroot/geoip-functions.pl index 85a8dc84f..fc2dfdd34 100644 --- a/config/cfgroot/geoip-functions.pl +++ b/config/cfgroot/geoip-functions.pl @@ -41,8 +41,8 @@ sub get_flag_icon($) { # Remove whitespaces. chomp($input); - # Convert given country code to lower case. - my $ccode = lc($input); + # Convert given country code to upper case. + my $ccode = uc($input); # Generate filename, based on the contry code in lower case # and the defined file extension. @@ -58,6 +58,21 @@ sub get_flag_icon($) { if (-e "$absolute_path") { # Return content of flag_icon. return $flag_icon; + } else { + # If no icon for the specified country exists, try to use + # the icon for "unknown". + my $ccode = "unknown"; + + # Redoing all the stuff from abouve for the "unknown" icon. + my $file = join('.', $ccode,$ext); + my $flag_icon = join('/', $flagdir,$file); + my $absolute_path = join('', $webroot,$flag_icon); + + # Check if the icon is present. + if (-e "$absolute_path") { + # Return "unknown" icon. + return $flag_icon; + } } } From e1c540b08eb637ee26fd18696920a603a085ccbd Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Mon, 4 May 2015 20:19:19 +0200 Subject: [PATCH 192/210] Core 90: Add modified cgi files for firewall log statistics. --- config/rootfiles/core/90/filelists/files | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files index d4dcfae61..d36ece088 100644 --- a/config/rootfiles/core/90/filelists/files +++ b/config/rootfiles/core/90/filelists/files @@ -11,6 +11,9 @@ srv/web/ipfire/cgi-bin/firewall.cgi srv/web/ipfire/cgi-bin/fwhosts.cgi srv/web/ipfire/cgi-bin/geoip-block.cgi srv/web/ipfire/cgi-bin/index.cgi +srv/web/ipfire/cgi-bin/logs.cgi/firewalllog.dat +srv/web/ipfire/cgi-bin/logs.cgi/firewalllogcountry.dat +srv/web/ipfire/cgi-bin/logs.cgi/firewalllogip.dat srv/web/ipfire/cgi-bin/netovpnsrv.cgi srv/web/ipfire/cgi-bin/ovpnmain.cgi srv/web/ipfire/cgi-bin/vpnmain.cgi From 6e609c0d20716604eabd84361845d72d17b139dc Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 5 May 2015 12:19:11 +0200 Subject: [PATCH 193/210] core90: Ship updated CGI files --- config/rootfiles/core/90/filelists/files | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files index d4dcfae61..d36ece088 100644 --- a/config/rootfiles/core/90/filelists/files +++ b/config/rootfiles/core/90/filelists/files @@ -11,6 +11,9 @@ srv/web/ipfire/cgi-bin/firewall.cgi srv/web/ipfire/cgi-bin/fwhosts.cgi srv/web/ipfire/cgi-bin/geoip-block.cgi srv/web/ipfire/cgi-bin/index.cgi +srv/web/ipfire/cgi-bin/logs.cgi/firewalllog.dat +srv/web/ipfire/cgi-bin/logs.cgi/firewalllogcountry.dat +srv/web/ipfire/cgi-bin/logs.cgi/firewalllogip.dat srv/web/ipfire/cgi-bin/netovpnsrv.cgi srv/web/ipfire/cgi-bin/ovpnmain.cgi srv/web/ipfire/cgi-bin/vpnmain.cgi From afdf1483887e7c31567ed4469b3b9922d213e295 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 5 May 2015 14:00:20 +0200 Subject: [PATCH 194/210] Split web-user-interface from apache2 LFS file It is completely unnecssary to have this in one file and using options for the LFS is more of a hack than a solution. --- config/httpd/httpd.conf | 3 +- config/rootfiles/common/apache2 | 270 ++------------------------------ lfs/apache2 | 39 +---- lfs/web-user-interface | 72 +++++++++ make.sh | 2 +- 5 files changed, 98 insertions(+), 288 deletions(-) create mode 100644 lfs/web-user-interface diff --git a/config/httpd/httpd.conf b/config/httpd/httpd.conf index 7e00b8826..9c1fb2b10 100644 --- a/config/httpd/httpd.conf +++ b/config/httpd/httpd.conf @@ -117,4 +117,5 @@ Include /etc/httpd/conf/default-server.conf # Include /etc/httpd/conf/vhosts.d/*.conf - +# Dummy LoadModule directive to aid module installations +#LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index 96c2871c5..68c99eac5 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -1,5 +1,8 @@ #etc/httpd #etc/httpd/conf +#etc/httpd/conf/conf.d +#etc/httpd/conf/conf.d/php5.conf +#etc/httpd/conf/default-server.conf #etc/httpd/conf/extra #etc/httpd/conf/extra/httpd-autoindex.conf #etc/httpd/conf/extra/httpd-dav.conf @@ -12,9 +15,14 @@ #etc/httpd/conf/extra/httpd-ssl.conf #etc/httpd/conf/extra/httpd-userdir.conf #etc/httpd/conf/extra/httpd-vhosts.conf +etc/httpd/conf/global.conf +etc/httpd/conf/hostname.conf etc/httpd/conf/httpd.conf +etc/httpd/conf/listen.conf +etc/httpd/conf/loadmodule.conf etc/httpd/conf/magic etc/httpd/conf/mime.types +etc/httpd/conf/mod_log_config.conf #etc/httpd/conf/original #etc/httpd/conf/original/extra #etc/httpd/conf/original/extra/httpd-autoindex.conf @@ -29,6 +37,14 @@ etc/httpd/conf/mime.types #etc/httpd/conf/original/extra/httpd-userdir.conf #etc/httpd/conf/original/extra/httpd-vhosts.conf #etc/httpd/conf/original/httpd.conf +etc/httpd/conf/server-tuning.conf +etc/httpd/conf/ssl-global.conf +etc/httpd/conf/uid.conf +#etc/httpd/conf/vhosts.d +etc/httpd/conf/vhosts.d/ipfire-interface-ssl.conf +etc/httpd/conf/vhosts.d/ipfire-interface.conf +#etc/httpd/conf/vhosts.d/nagios.conf +#etc/httpd/conf/vhosts.d/openmailadmin.conf #srv/web #srv/web/ipfire #srv/web/ipfire/cgi-bin @@ -1373,257 +1389,3 @@ usr/sbin/httpd #usr/share/man/man8/rotatelogs.8 #usr/share/man/man8/suexec.8 var/log/httpd -etc/httpd/conf/conf.d -etc/httpd/conf/default-server.conf -etc/httpd/conf/global.conf -etc/httpd/conf/hostname.conf -etc/httpd/conf/listen.conf -etc/httpd/conf/loadmodule.conf -etc/httpd/conf/mod_log_config.conf -etc/httpd/conf/server-tuning.conf -etc/httpd/conf/ssl-global.conf -etc/httpd/conf/uid.conf -etc/httpd/conf/vhosts.d/ipfire-interface-ssl.conf -etc/httpd/conf/vhosts.d/ipfire-interface.conf -srv/web/ipfire/cgi-bin/aliases.cgi -srv/web/ipfire/cgi-bin/atm-status.cgi -srv/web/ipfire/cgi-bin/backup.cgi -srv/web/ipfire/cgi-bin/chpasswd.cgi -srv/web/ipfire/cgi-bin/connections.cgi -srv/web/ipfire/cgi-bin/connscheduler.cgi -srv/web/ipfire/cgi-bin/country.cgi -srv/web/ipfire/cgi-bin/credits.cgi -srv/web/ipfire/cgi-bin/dns.cgi -srv/web/ipfire/cgi-bin/dnsforward.cgi -srv/web/ipfire/cgi-bin/ddns.cgi -srv/web/ipfire/cgi-bin/dhcp.cgi -srv/web/ipfire/cgi-bin/entropy.cgi -srv/web/ipfire/cgi-bin/extrahd.cgi -srv/web/ipfire/cgi-bin/fireinfo.cgi -srv/web/ipfire/cgi-bin/firewall.cgi -srv/web/ipfire/cgi-bin/fwhosts.cgi -srv/web/ipfire/cgi-bin/geoip-block.cgi -srv/web/ipfire/cgi-bin/gpl.cgi -srv/web/ipfire/cgi-bin/gui.cgi -srv/web/ipfire/cgi-bin/hardwaregraphs.cgi -srv/web/ipfire/cgi-bin/hosts.cgi -srv/web/ipfire/cgi-bin/ids.cgi -srv/web/ipfire/cgi-bin/index.cgi -srv/web/ipfire/cgi-bin/ipinfo.cgi -srv/web/ipfire/cgi-bin/iptables.cgi -srv/web/ipfire/cgi-bin/logs.cgi -srv/web/ipfire/cgi-bin/mac.cgi -srv/web/ipfire/cgi-bin/media.cgi -srv/web/ipfire/cgi-bin/memory.cgi -srv/web/ipfire/cgi-bin/modem.cgi -srv/web/ipfire/cgi-bin/modem-status.cgi -srv/web/ipfire/cgi-bin/netexternal.cgi -srv/web/ipfire/cgi-bin/netinternal.cgi -srv/web/ipfire/cgi-bin/netother.cgi -srv/web/ipfire/cgi-bin/netovpnrw.cgi -srv/web/ipfire/cgi-bin/netovpnsrv.cgi -srv/web/ipfire/cgi-bin/optionsfw.cgi -srv/web/ipfire/cgi-bin/ovpnmain.cgi -srv/web/ipfire/cgi-bin/p2p-block.cgi -srv/web/ipfire/cgi-bin/pakfire.cgi -srv/web/ipfire/cgi-bin/pppsetup.cgi -srv/web/ipfire/cgi-bin/proxy.cgi -srv/web/ipfire/cgi-bin/qos.cgi -srv/web/ipfire/cgi-bin/remote.cgi -srv/web/ipfire/cgi-bin/routing.cgi -srv/web/ipfire/cgi-bin/services.cgi -srv/web/ipfire/cgi-bin/shutdown.cgi -srv/web/ipfire/cgi-bin/speed.cgi -srv/web/ipfire/cgi-bin/system.cgi -srv/web/ipfire/cgi-bin/time.cgi -srv/web/ipfire/cgi-bin/traffic.cgi -srv/web/ipfire/cgi-bin/updatexlrator.cgi -srv/web/ipfire/cgi-bin/upnp.cgi -srv/web/ipfire/cgi-bin/urlfilter.cgi -srv/web/ipfire/cgi-bin/vpnmain.cgi -srv/web/ipfire/cgi-bin/wakeonlan.cgi -srv/web/ipfire/cgi-bin/webaccess.cgi -srv/web/ipfire/cgi-bin/wireless.cgi -srv/web/ipfire/cgi-bin/wirelessclient.cgi -#srv/web/ipfire/html -srv/web/ipfire/html/accounting -srv/web/ipfire/html/blob.gif -srv/web/ipfire/html/clwarn.cgi -srv/web/ipfire/html/dial.cgi -srv/web/ipfire/html/favicon.ico -srv/web/ipfire/html/graphs -#srv/web/ipfire/html/images -srv/web/ipfire/html/images/addblue.gif -srv/web/ipfire/html/images/add.gif -srv/web/ipfire/html/images/addgreen.gif -srv/web/ipfire/html/images/address-book-new.png -srv/web/ipfire/html/images/application-certificate.png -srv/web/ipfire/html/images/applications-accessories.png -srv/web/ipfire/html/images/applications-development.png -srv/web/ipfire/html/images/applications-games.png -srv/web/ipfire/html/images/applications-graphics.png -srv/web/ipfire/html/images/applications-internet.png -srv/web/ipfire/html/images/applications-multimedia.png -srv/web/ipfire/html/images/applications-office.png -srv/web/ipfire/html/images/applications-other.png -srv/web/ipfire/html/images/applications-system.png -srv/web/ipfire/html/images/application-x-executable.png -srv/web/ipfire/html/images/appointment-new.png -srv/web/ipfire/html/images/audio-volume-high.png -srv/web/ipfire/html/images/audio-volume-high-red.png -srv/web/ipfire/html/images/audio-volume-low.png -srv/web/ipfire/html/images/audio-volume-low-red.png -srv/web/ipfire/html/images/audio-x-generic.png -srv/web/ipfire/html/images/audio-x-generic-red.png -srv/web/ipfire/html/images/background.gif -srv/web/ipfire/html/images/bookmark-new.png -srv/web/ipfire/html/images/clock.gif -srv/web/ipfire/html/images/computer.png -srv/web/ipfire/html/images/delete.gif -srv/web/ipfire/html/images/dialog-error.png -srv/web/ipfire/html/images/dialog-information.png -srv/web/ipfire/html/images/dialog-warning.png -srv/web/ipfire/html/images/dns_link.png -srv/web/ipfire/html/images/document-new.png -srv/web/ipfire/html/images/document-open.png -srv/web/ipfire/html/images/document-print.png -srv/web/ipfire/html/images/document-print-preview.png -srv/web/ipfire/html/images/document-properties.png -srv/web/ipfire/html/images/document-save-as.png -srv/web/ipfire/html/images/document-save.png -srv/web/ipfire/html/images/down.gif -srv/web/ipfire/html/images/drive-harddisk.png -srv/web/ipfire/html/images/drive-optical.png -srv/web/ipfire/html/images/drive-removable-media.png -srv/web/ipfire/html/images/edit-find.png -srv/web/ipfire/html/images/edit.gif -srv/web/ipfire/html/images/edit-redo.png -#srv/web/ipfire/html/images/flags -srv/web/ipfire/html/images/floppy.gif -srv/web/ipfire/html/images/folder-drag-accept.png -srv/web/ipfire/html/images/folder-new.png -srv/web/ipfire/html/images/folder-open.png -srv/web/ipfire/html/images/folder.png -srv/web/ipfire/html/images/folder-remote.png -srv/web/ipfire/html/images/folder-saved-search.png -srv/web/ipfire/html/images/folder-visiting.png -srv/web/ipfire/html/images/format-indent-less.png -srv/web/ipfire/html/images/format-indent-more.png -srv/web/ipfire/html/images/format-justify-center.png -srv/web/ipfire/html/images/format-justify-fill.png -srv/web/ipfire/html/images/format-justify-left.png -srv/web/ipfire/html/images/format-justify-right.png -srv/web/ipfire/html/images/forward.gif -srv/web/ipfire/html/images/go-bottom.png -srv/web/ipfire/html/images/go-down.png -srv/web/ipfire/html/images/go-first.png -srv/web/ipfire/html/images/go-home.png -srv/web/ipfire/html/images/go-jump.png -srv/web/ipfire/html/images/go-last.png -srv/web/ipfire/html/images/go-next.png -srv/web/ipfire/html/images/go-previous.png -srv/web/ipfire/html/images/go-top.png -srv/web/ipfire/html/images/go-up.png -srv/web/ipfire/html/images/help-browser.png -srv/web/ipfire/html/images/help.gif -srv/web/ipfire/html/images/image-loading.png -srv/web/ipfire/html/images/image-missing.png -srv/web/ipfire/html/images/image-x-generic.png -srv/web/ipfire/html/images/indicator.gif -srv/web/ipfire/html/images/info.gif -srv/web/ipfire/html/images/input-gaming.png -srv/web/ipfire/html/images/input-keyboard.png -srv/web/ipfire/html/images/input-mouse.png -srv/web/ipfire/html/images/internet-group-chat.png -srv/web/ipfire/html/images/internet-mail.png -srv/web/ipfire/html/images/internet-news-reader.png -srv/web/ipfire/html/images/internet-web-browser.png -srv/web/ipfire/html/images/IPFire.png -srv/web/ipfire/html/images/list-add.png -srv/web/ipfire/html/images/list-remove.png -srv/web/ipfire/html/images/mail-attachment.png -srv/web/ipfire/html/images/mail-forward.png -srv/web/ipfire/html/images/mail-mark-junk.png -srv/web/ipfire/html/images/mail-mark-not-junk.png -srv/web/ipfire/html/images/mail-message-new.png -srv/web/ipfire/html/images/mail-reply-all.png -srv/web/ipfire/html/images/mail-reply-sender.png -srv/web/ipfire/html/images/mail-send-receive.png -srv/web/ipfire/html/images/media-flash.png -srv/web/ipfire/html/images/media-floppy.png -srv/web/ipfire/html/images/media-optical.png -srv/web/ipfire/html/images/media-playback-start-all.png -srv/web/ipfire/html/images/media-playback-start.png -srv/web/ipfire/html/images/media-playback-stop.png -srv/web/ipfire/html/images/media-repeat.png -srv/web/ipfire/html/images/media-resume.png -srv/web/ipfire/html/images/media-shuffle.png -srv/web/ipfire/html/images/media-skip-backward.png -srv/web/ipfire/html/images/media-skip-forward.png -srv/web/ipfire/html/images/mpfire -srv/web/ipfire/html/images/network-error.png -srv/web/ipfire/html/images/network-idle.png -srv/web/ipfire/html/images/network-offline.png -srv/web/ipfire/html/images/network.png -srv/web/ipfire/html/images/network-receive.png -srv/web/ipfire/html/images/network-server.png -srv/web/ipfire/html/images/network-transmit.png -srv/web/ipfire/html/images/network-transmit-receive.png -srv/web/ipfire/html/images/network-wired.png -srv/web/ipfire/html/images/network-wireless-encrypted.png -srv/web/ipfire/html/images/network-wireless.png -srv/web/ipfire/html/images/network-workgroup.png -srv/web/ipfire/html/images/null.gif -srv/web/ipfire/html/images/off.gif -srv/web/ipfire/html/images/on.gif -srv/web/ipfire/html/images/openvpn.gif -srv/web/ipfire/html/images/openvpn.png -srv/web/ipfire/html/images/package-x-generic.png -srv/web/ipfire/html/images/printer-error.png -srv/web/ipfire/html/images/printer.png -srv/web/ipfire/html/images/process-stop.png -srv/web/ipfire/html/images/process-working.png -srv/web/ipfire/html/images/reload.gif -srv/web/ipfire/html/images/start-here.png -srv/web/ipfire/html/images/stock_down-16.png -srv/web/ipfire/html/images/stock_ok.png -srv/web/ipfire/html/images/stock_stop.png -srv/web/ipfire/html/images/stock_up-16.png -srv/web/ipfire/html/images/system-file-manager.png -srv/web/ipfire/html/images/system-installer.png -srv/web/ipfire/html/images/system-lock-screen.png -srv/web/ipfire/html/images/system-log-out.png -srv/web/ipfire/html/images/system-search.png -srv/web/ipfire/html/images/system-shutdown.png -srv/web/ipfire/html/images/system-software-update.png -srv/web/ipfire/html/images/system-users.png -srv/web/ipfire/html/images/table-header.gif -srv/web/ipfire/html/images/tab-new.png -srv/web/ipfire/html/images/text-html.png -srv/web/ipfire/html/images/text-x-generic.png -srv/web/ipfire/html/images/text-x-generic-template.png -srv/web/ipfire/html/images/text-x-script.png -srv/web/ipfire/html/images/tux.png -srv/web/ipfire/html/images/updbooster -srv/web/ipfire/html/images/up.gif -srv/web/ipfire/html/images/urlfilter -srv/web/ipfire/html/images/user-home.png -srv/web/ipfire/html/images/user-multiple.png -srv/web/ipfire/html/images/user-option-add.png -srv/web/ipfire/html/images/user-option-remove.png -srv/web/ipfire/html/images/user-trash-full.png -srv/web/ipfire/html/images/user-trash.png -srv/web/ipfire/html/images/utilities-system-monitor.png -srv/web/ipfire/html/images/utilities-terminal.png -srv/web/ipfire/html/images/view-fullscreen.png -srv/web/ipfire/html/images/view-refresh.png -srv/web/ipfire/html/images/wakeup.gif -srv/web/ipfire/html/images/window-new.png -srv/web/ipfire/html/include -srv/web/ipfire/html/index.cgi -srv/web/ipfire/html/proxy.pac -srv/web/ipfire/html/redirect.cgi -srv/web/ipfire/html/redirect-templates -srv/web/ipfire/html/themes -srv/web/ipfire/html/wpad.dat -var/updatecache diff --git a/lfs/apache2 b/lfs/apache2 index 0d7b11ed0..57c344718 100644 --- a/lfs/apache2 +++ b/lfs/apache2 @@ -31,11 +31,8 @@ THISAPP = httpd-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(PASS)" "C" - TARGET = $(DIR_INFO)/$(THISAPP)-config -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif + +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -77,32 +74,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) -ifeq "$(PASS)" "C" - # DO THIS IN AN EXTRA STEP BECAUSE PHP AND SUBVERSION WILL FAIL. - - cp -rf $(DIR_CONF)/httpd/* /etc/httpd/conf - ln -sf $(CONFIG_ROOT)/main/hostname.conf /etc/httpd/conf/ - - # Copy all html/cgi-bin files - mkdir -p /srv/web/ipfire/{cgi-bin,html} - mkdir -p /var/updatecache/{download,metadata} - cp -aR $(DIR_SRC)/html/* /srv/web/ipfire - - # Change CONFIG_ROOT in cgi-scripts - for i in /srv/web/ipfire/cgi-bin/{*,logs.cgi/*,vpn.cgi/*}; do \ - if [ -f $$i ]; then \ - sed -i "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" $$i; \ - fi; \ - done - chown -R root:root /srv/web/ipfire - chmod -R 755 /srv/web/ipfire/cgi-bin - chmod -R 644 /srv/web/ipfire/html - chmod 755 /srv/web/ipfire/html /srv/web/ipfire/html/{index.cgi,redirect.cgi,dial.cgi,images,include,themes,themes/*,themes/*/*} - ln -svf ipfire /srv/web/ipfire/html/themes/ipfire-rounded - - # Reset permissions of redirect templates and theme directories - find /srv/web/ipfire/html/{redirect-templates,themes} -type d | xargs chmod -v 755 -else @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 -i $(DIR_DL)/httpd-2.2.2-config-1.patch @@ -140,6 +111,10 @@ else /usr/share/man/man1/{dbmmanage,ht{dbm,digest,passwd,txt2dbm}}.1 \ /usr/share/man/man8/{ab,apachectl,apxs,htcacheclean,httpd}.8 \ /usr/share/man/man8/{logresolve,rotatelogs,suexec}.8 + + # Install apache config + cp -rf $(DIR_CONF)/httpd/* /etc/httpd/conf + ln -sf $(CONFIG_ROOT)/main/hostname.conf /etc/httpd/conf/ + @rm -rf $(DIR_APP) -endif @$(POSTBUILD) diff --git a/lfs/web-user-interface b/lfs/web-user-interface new file mode 100644 index 000000000..919acbe76 --- /dev/null +++ b/lfs/web-user-interface @@ -0,0 +1,72 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2015 IPFire Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = ipfire + +THISAPP = web-user-interface-$(VER) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +install: $(TARGET) + +check: + +download: + +md5: + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + + # Copy all html/cgi-bin files + mkdir -p /srv/web/ipfire/{cgi-bin,html} + mkdir -p /var/updatecache/{download,metadata} + cp -aR $(DIR_SRC)/html/* /srv/web/ipfire + + # Change CONFIG_ROOT in cgi-scripts + for i in /srv/web/ipfire/cgi-bin/{*,logs.cgi/*,vpn.cgi/*}; do \ + if [ -f $$i ]; then \ + sed -i "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" $$i; \ + fi; \ + done + chown -R root:root /srv/web/ipfire + chmod -R 755 /srv/web/ipfire/cgi-bin + chmod -R 644 /srv/web/ipfire/html + chmod 755 /srv/web/ipfire/html /srv/web/ipfire/html/{index.cgi,redirect.cgi,dial.cgi,images,include,themes,themes/*,themes/*/*} + ln -svf ipfire /srv/web/ipfire/html/themes/ipfire-rounded + + # Reset permissions of redirect templates and theme directories + find /srv/web/ipfire/html/{redirect-templates,themes} -type d | xargs chmod -v 755 + @$(POSTBUILD) diff --git a/make.sh b/make.sh index 95aae640f..1d287469d 100755 --- a/make.sh +++ b/make.sh @@ -507,7 +507,7 @@ buildipfire() { ipfiremake openldap ipfiremake apache2 ipfiremake php - ipfiremake apache2 PASS=C + ipfiremake web-user-interface ipfiremake flag-icons ipfiremake jquery ipfiremake arping From 5ea73f56601411d842456243fc88bdde8834742c Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Tue, 5 May 2015 22:34:30 +0200 Subject: [PATCH 195/210] dracut: add sdhci-pci module to initrd. fixes #10792 --- lfs/dracut | 1 + src/patches/dracut-038_add_sdhci-pci.patch | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 src/patches/dracut-038_add_sdhci-pci.patch diff --git a/lfs/dracut b/lfs/dracut index fef3ad77d..97d12f3f5 100644 --- a/lfs/dracut +++ b/lfs/dracut @@ -71,6 +71,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dracut-038-always-enable-mdraid.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dracut-038_add_sdhci-pci.patch cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install sbindir=/sbin sysconfdir=/etc diff --git a/src/patches/dracut-038_add_sdhci-pci.patch b/src/patches/dracut-038_add_sdhci-pci.patch new file mode 100644 index 000000000..b002246d4 --- /dev/null +++ b/src/patches/dracut-038_add_sdhci-pci.patch @@ -0,0 +1,12 @@ +diff -Naur dracut-038.org/modules.d/90kernel-modules/module-setup.sh dracut-038/modules.d/90kernel-modules/module-setup.sh +--- dracut-038.org/modules.d/90kernel-modules/module-setup.sh 2014-06-30 12:03:12.000000000 +0200 ++++ dracut-038/modules.d/90kernel-modules/module-setup.sh 2015-05-05 14:58:56.820197839 +0200 +@@ -47,7 +47,7 @@ + atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logitech \ + hid-logitech-dj hid-microsoft firewire-ohci \ + pcmcia usb_storage nvme hid-hyperv hv-vmbus \ +- sdhci_acpi ++ sdhci_acpi sdhci_pci + + if [[ "$(uname -p)" == arm* ]]; then + # arm specific modules From dcca805182bef76740752aa90542362806eaa47f Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 6 May 2015 09:43:53 +0200 Subject: [PATCH 196/210] Rootfile update --- config/rootfiles/common/web-user-interface | 358 +++++++++++++++++++++ 1 file changed, 358 insertions(+) create mode 100644 config/rootfiles/common/web-user-interface diff --git a/config/rootfiles/common/web-user-interface b/config/rootfiles/common/web-user-interface new file mode 100644 index 000000000..5da892bbd --- /dev/null +++ b/config/rootfiles/common/web-user-interface @@ -0,0 +1,358 @@ +srv/web/ipfire/cgi-bin/aliases.cgi +#srv/web/ipfire/cgi-bin/asterisk +#srv/web/ipfire/cgi-bin/asterisk/calls.cgi +#srv/web/ipfire/cgi-bin/asterisk/conf +#srv/web/ipfire/cgi-bin/asterisk/conf.cgi +#srv/web/ipfire/cgi-bin/asterisk/conf/telbook.conf +#srv/web/ipfire/cgi-bin/asterisk/status.cgi +srv/web/ipfire/cgi-bin/atm-status.cgi +srv/web/ipfire/cgi-bin/backup.cgi +srv/web/ipfire/cgi-bin/bluetooth.cgi +srv/web/ipfire/cgi-bin/chpasswd.cgi +srv/web/ipfire/cgi-bin/connections.cgi +srv/web/ipfire/cgi-bin/connscheduler.cgi +srv/web/ipfire/cgi-bin/country.cgi +srv/web/ipfire/cgi-bin/credits.cgi +srv/web/ipfire/cgi-bin/ddns.cgi +srv/web/ipfire/cgi-bin/dhcp.cgi +srv/web/ipfire/cgi-bin/dns.cgi +srv/web/ipfire/cgi-bin/dnsforward.cgi +srv/web/ipfire/cgi-bin/entropy.cgi +srv/web/ipfire/cgi-bin/extrahd.cgi +srv/web/ipfire/cgi-bin/fireinfo.cgi +srv/web/ipfire/cgi-bin/firewall.cgi +srv/web/ipfire/cgi-bin/fwhosts.cgi +srv/web/ipfire/cgi-bin/geoip-block.cgi +srv/web/ipfire/cgi-bin/gpl.cgi +srv/web/ipfire/cgi-bin/gui.cgi +srv/web/ipfire/cgi-bin/hardwaregraphs.cgi +srv/web/ipfire/cgi-bin/hosts.cgi +srv/web/ipfire/cgi-bin/ids.cgi +#srv/web/ipfire/cgi-bin/imspector.cgi +srv/web/ipfire/cgi-bin/index.cgi +srv/web/ipfire/cgi-bin/ipinfo.cgi +srv/web/ipfire/cgi-bin/iptables.cgi +srv/web/ipfire/cgi-bin/logs.cgi +srv/web/ipfire/cgi-bin/logs.cgi/calamaris.dat +srv/web/ipfire/cgi-bin/logs.cgi/config.dat +srv/web/ipfire/cgi-bin/logs.cgi/firewalllog.dat +srv/web/ipfire/cgi-bin/logs.cgi/firewalllogcountry.dat +srv/web/ipfire/cgi-bin/logs.cgi/firewalllogip.dat +srv/web/ipfire/cgi-bin/logs.cgi/firewalllogport.dat +srv/web/ipfire/cgi-bin/logs.cgi/ids.dat +srv/web/ipfire/cgi-bin/logs.cgi/log.dat +srv/web/ipfire/cgi-bin/logs.cgi/proxylog.dat +srv/web/ipfire/cgi-bin/logs.cgi/showrequestfromcountry.dat +srv/web/ipfire/cgi-bin/logs.cgi/showrequestfromip.dat +srv/web/ipfire/cgi-bin/logs.cgi/showrequestfromport.dat +srv/web/ipfire/cgi-bin/logs.cgi/summary.dat +srv/web/ipfire/cgi-bin/logs.cgi/urlfilter.dat +srv/web/ipfire/cgi-bin/mac.cgi +srv/web/ipfire/cgi-bin/mdstat.cgi +srv/web/ipfire/cgi-bin/media.cgi +srv/web/ipfire/cgi-bin/memory.cgi +srv/web/ipfire/cgi-bin/modem-status.cgi +srv/web/ipfire/cgi-bin/modem.cgi +#srv/web/ipfire/cgi-bin/mpfire.cgi +srv/web/ipfire/cgi-bin/netexternal.cgi +srv/web/ipfire/cgi-bin/netinternal.cgi +srv/web/ipfire/cgi-bin/netother.cgi +srv/web/ipfire/cgi-bin/netovpnrw.cgi +srv/web/ipfire/cgi-bin/netovpnsrv.cgi +srv/web/ipfire/cgi-bin/optionsfw.cgi +srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/p2p-block.cgi +srv/web/ipfire/cgi-bin/pakfire.cgi +srv/web/ipfire/cgi-bin/pppsetup.cgi +srv/web/ipfire/cgi-bin/proxy.cgi +srv/web/ipfire/cgi-bin/qos.cgi +srv/web/ipfire/cgi-bin/remote.cgi +srv/web/ipfire/cgi-bin/routing.cgi +#srv/web/ipfire/cgi-bin/samba.cgi +#srv/web/ipfire/cgi-bin/sambahlp.cgi +srv/web/ipfire/cgi-bin/services.cgi +srv/web/ipfire/cgi-bin/shutdown.cgi +srv/web/ipfire/cgi-bin/speed.cgi +srv/web/ipfire/cgi-bin/system.cgi +srv/web/ipfire/cgi-bin/time.cgi +#srv/web/ipfire/cgi-bin/tor.cgi +srv/web/ipfire/cgi-bin/traffic.cgi +#srv/web/ipfire/cgi-bin/tripwire.cgi +srv/web/ipfire/cgi-bin/updatexlrator.cgi +#srv/web/ipfire/cgi-bin/upnp.cgi +srv/web/ipfire/cgi-bin/urlfilter.cgi +srv/web/ipfire/cgi-bin/vpnmain.cgi +srv/web/ipfire/cgi-bin/wakeonlan.cgi +srv/web/ipfire/cgi-bin/webaccess.cgi +srv/web/ipfire/cgi-bin/wireless.cgi +srv/web/ipfire/cgi-bin/wirelessclient.cgi +srv/web/ipfire/cgi-bin/wlanap.cgi +#srv/web/ipfire/html +srv/web/ipfire/html/blob.gif +srv/web/ipfire/html/clwarn.cgi +srv/web/ipfire/html/dial.cgi +srv/web/ipfire/html/favicon.ico +#srv/web/ipfire/html/images +srv/web/ipfire/html/images/IPFire.png +srv/web/ipfire/html/images/add.gif +srv/web/ipfire/html/images/addblue.gif +srv/web/ipfire/html/images/addgreen.gif +srv/web/ipfire/html/images/address-book-new.png +srv/web/ipfire/html/images/application-certificate.png +srv/web/ipfire/html/images/application-x-executable.png +srv/web/ipfire/html/images/applications-accessories.png +srv/web/ipfire/html/images/applications-development.png +srv/web/ipfire/html/images/applications-games.png +srv/web/ipfire/html/images/applications-graphics.png +srv/web/ipfire/html/images/applications-internet.png +srv/web/ipfire/html/images/applications-multimedia.png +srv/web/ipfire/html/images/applications-office.png +srv/web/ipfire/html/images/applications-other.png +srv/web/ipfire/html/images/applications-system.png +srv/web/ipfire/html/images/appointment-new.png +srv/web/ipfire/html/images/audio-volume-high-red.png +srv/web/ipfire/html/images/audio-volume-high.png +srv/web/ipfire/html/images/audio-volume-low-red.png +srv/web/ipfire/html/images/audio-volume-low.png +srv/web/ipfire/html/images/audio-x-generic-red.png +srv/web/ipfire/html/images/audio-x-generic.png +srv/web/ipfire/html/images/background.gif +srv/web/ipfire/html/images/bookmark-new.png +srv/web/ipfire/html/images/clock.gif +srv/web/ipfire/html/images/computer.png +srv/web/ipfire/html/images/delete.gif +srv/web/ipfire/html/images/dialog-error.png +srv/web/ipfire/html/images/dialog-information.png +srv/web/ipfire/html/images/dialog-warning.png +srv/web/ipfire/html/images/dns_link.png +srv/web/ipfire/html/images/document-new.png +srv/web/ipfire/html/images/document-open.png +srv/web/ipfire/html/images/document-print-preview.png +srv/web/ipfire/html/images/document-print.png +srv/web/ipfire/html/images/document-properties.png +srv/web/ipfire/html/images/document-save-as.png +srv/web/ipfire/html/images/document-save.png +srv/web/ipfire/html/images/down.gif +srv/web/ipfire/html/images/drive-harddisk.png +srv/web/ipfire/html/images/drive-optical.png +srv/web/ipfire/html/images/drive-removable-media.png +srv/web/ipfire/html/images/edit-find.png +srv/web/ipfire/html/images/edit-redo.png +srv/web/ipfire/html/images/edit.gif +srv/web/ipfire/html/images/floppy.gif +srv/web/ipfire/html/images/folder-drag-accept.png +srv/web/ipfire/html/images/folder-new.png +srv/web/ipfire/html/images/folder-open.png +srv/web/ipfire/html/images/folder-remote.png +srv/web/ipfire/html/images/folder-saved-search.png +srv/web/ipfire/html/images/folder-visiting.png +srv/web/ipfire/html/images/folder.png +srv/web/ipfire/html/images/format-indent-less.png +srv/web/ipfire/html/images/format-indent-more.png +srv/web/ipfire/html/images/format-justify-center.png +srv/web/ipfire/html/images/format-justify-fill.png +srv/web/ipfire/html/images/format-justify-left.png +srv/web/ipfire/html/images/format-justify-right.png +srv/web/ipfire/html/images/forward.gif +srv/web/ipfire/html/images/go-bottom.png +srv/web/ipfire/html/images/go-down.png +srv/web/ipfire/html/images/go-first.png +srv/web/ipfire/html/images/go-home.png +srv/web/ipfire/html/images/go-jump.png +srv/web/ipfire/html/images/go-last.png +srv/web/ipfire/html/images/go-next.png +srv/web/ipfire/html/images/go-previous.png +srv/web/ipfire/html/images/go-top.png +srv/web/ipfire/html/images/go-up.png +srv/web/ipfire/html/images/help-browser.png +srv/web/ipfire/html/images/help.gif +srv/web/ipfire/html/images/image-loading.png +srv/web/ipfire/html/images/image-missing.png +srv/web/ipfire/html/images/image-x-generic.png +srv/web/ipfire/html/images/indicator.gif +srv/web/ipfire/html/images/info.gif +srv/web/ipfire/html/images/input-gaming.png +srv/web/ipfire/html/images/input-keyboard.png +srv/web/ipfire/html/images/input-mouse.png +srv/web/ipfire/html/images/internet-group-chat.png +srv/web/ipfire/html/images/internet-mail.png +srv/web/ipfire/html/images/internet-news-reader.png +srv/web/ipfire/html/images/internet-web-browser.png +srv/web/ipfire/html/images/list-add.png +srv/web/ipfire/html/images/list-remove.png +srv/web/ipfire/html/images/mail-attachment.png +srv/web/ipfire/html/images/mail-forward.png +srv/web/ipfire/html/images/mail-mark-junk.png +srv/web/ipfire/html/images/mail-mark-not-junk.png +srv/web/ipfire/html/images/mail-message-new.png +srv/web/ipfire/html/images/mail-reply-all.png +srv/web/ipfire/html/images/mail-reply-sender.png +srv/web/ipfire/html/images/mail-send-receive.png +srv/web/ipfire/html/images/media-flash.png +srv/web/ipfire/html/images/media-floppy.png +srv/web/ipfire/html/images/media-optical.png +srv/web/ipfire/html/images/media-playback-start-all.png +srv/web/ipfire/html/images/media-playback-start.png +srv/web/ipfire/html/images/media-playback-stop.png +srv/web/ipfire/html/images/media-repeat.png +srv/web/ipfire/html/images/media-resume.png +srv/web/ipfire/html/images/media-shuffle.png +srv/web/ipfire/html/images/media-skip-backward.png +srv/web/ipfire/html/images/media-skip-forward.png +srv/web/ipfire/html/images/mpfire +srv/web/ipfire/html/images/mpfire/box.png +srv/web/ipfire/html/images/network-error.png +srv/web/ipfire/html/images/network-idle.png +srv/web/ipfire/html/images/network-offline.png +srv/web/ipfire/html/images/network-receive.png +srv/web/ipfire/html/images/network-server.png +srv/web/ipfire/html/images/network-transmit-receive.png +srv/web/ipfire/html/images/network-transmit.png +srv/web/ipfire/html/images/network-wired.png +srv/web/ipfire/html/images/network-wireless-encrypted.png +srv/web/ipfire/html/images/network-wireless.png +srv/web/ipfire/html/images/network-workgroup.png +srv/web/ipfire/html/images/network.png +srv/web/ipfire/html/images/null.gif +srv/web/ipfire/html/images/off.gif +srv/web/ipfire/html/images/on.gif +srv/web/ipfire/html/images/openvpn.gif +srv/web/ipfire/html/images/openvpn.png +srv/web/ipfire/html/images/package-x-generic.png +srv/web/ipfire/html/images/printer-error.png +srv/web/ipfire/html/images/printer.png +srv/web/ipfire/html/images/process-stop.png +srv/web/ipfire/html/images/process-working.png +srv/web/ipfire/html/images/reload.gif +srv/web/ipfire/html/images/start-here.png +srv/web/ipfire/html/images/stock_down-16.png +srv/web/ipfire/html/images/stock_ok.png +srv/web/ipfire/html/images/stock_stop.png +srv/web/ipfire/html/images/stock_up-16.png +srv/web/ipfire/html/images/system-file-manager.png +srv/web/ipfire/html/images/system-installer.png +srv/web/ipfire/html/images/system-lock-screen.png +srv/web/ipfire/html/images/system-log-out.png +srv/web/ipfire/html/images/system-search.png +srv/web/ipfire/html/images/system-shutdown.png +srv/web/ipfire/html/images/system-software-update.png +srv/web/ipfire/html/images/system-users.png +srv/web/ipfire/html/images/tab-new.png +srv/web/ipfire/html/images/table-header.gif +srv/web/ipfire/html/images/text-html.png +srv/web/ipfire/html/images/text-x-generic-template.png +srv/web/ipfire/html/images/text-x-generic.png +srv/web/ipfire/html/images/text-x-script.png +srv/web/ipfire/html/images/tux.png +srv/web/ipfire/html/images/up.gif +srv/web/ipfire/html/images/updbooster +srv/web/ipfire/html/images/updbooster/updxl-globe.gif +srv/web/ipfire/html/images/updbooster/updxl-gr.gif +srv/web/ipfire/html/images/updbooster/updxl-led-blue.gif +srv/web/ipfire/html/images/updbooster/updxl-led-gray.gif +srv/web/ipfire/html/images/updbooster/updxl-led-green.gif +srv/web/ipfire/html/images/updbooster/updxl-led-red.gif +srv/web/ipfire/html/images/updbooster/updxl-led-yellow.gif +srv/web/ipfire/html/images/updbooster/updxl-rd.gif +srv/web/ipfire/html/images/updbooster/updxl-src-adobe.gif +srv/web/ipfire/html/images/updbooster/updxl-src-apple.gif +srv/web/ipfire/html/images/updbooster/updxl-src-avast.gif +srv/web/ipfire/html/images/updbooster/updxl-src-avg.gif +srv/web/ipfire/html/images/updbooster/updxl-src-avira.gif +srv/web/ipfire/html/images/updbooster/updxl-src-kaspersky.gif +srv/web/ipfire/html/images/updbooster/updxl-src-linux.gif +srv/web/ipfire/html/images/updbooster/updxl-src-microsoft.gif +srv/web/ipfire/html/images/updbooster/updxl-src-symantec.gif +srv/web/ipfire/html/images/updbooster/updxl-src-trendmicro.gif +srv/web/ipfire/html/images/updbooster/updxl-src-unknown.gif +srv/web/ipfire/html/images/updbooster/updxl-src-windows.gif +srv/web/ipfire/html/images/updbooster/updxl-yl.gif +srv/web/ipfire/html/images/urlfilter +srv/web/ipfire/html/images/urlfilter/1x1.gif +srv/web/ipfire/html/images/urlfilter/bg_cool_tux.jpg +srv/web/ipfire/html/images/urlfilter/bgcool.gif +srv/web/ipfire/html/images/urlfilter/copy.gif +srv/web/ipfire/html/images/urlfilter/gmg_tux_ip_fire.gif +srv/web/ipfire/html/images/urlfilter/led-green.gif +srv/web/ipfire/html/images/urlfilter/led-red.gif +srv/web/ipfire/html/images/user-home.png +srv/web/ipfire/html/images/user-multiple.png +srv/web/ipfire/html/images/user-option-add.png +srv/web/ipfire/html/images/user-option-remove.png +srv/web/ipfire/html/images/user-trash-full.png +srv/web/ipfire/html/images/user-trash.png +srv/web/ipfire/html/images/utilities-system-monitor.png +srv/web/ipfire/html/images/utilities-terminal.png +srv/web/ipfire/html/images/view-fullscreen.png +srv/web/ipfire/html/images/view-refresh.png +srv/web/ipfire/html/images/wakeup.gif +srv/web/ipfire/html/images/window-new.png +srv/web/ipfire/html/include +srv/web/ipfire/html/include/snortupdateutility.js +srv/web/ipfire/html/index.cgi +srv/web/ipfire/html/redirect-templates +srv/web/ipfire/html/redirect-templates/legacy +srv/web/ipfire/html/redirect-templates/legacy/template.html +srv/web/ipfire/html/redirect.cgi +srv/web/ipfire/html/themes +srv/web/ipfire/html/themes/darkdos +srv/web/ipfire/html/themes/darkdos/images +srv/web/ipfire/html/themes/darkdos/images/IPFire.png +srv/web/ipfire/html/themes/darkdos/images/b1.gif +srv/web/ipfire/html/themes/darkdos/images/b2.gif +srv/web/ipfire/html/themes/darkdos/images/b3.gif +srv/web/ipfire/html/themes/darkdos/images/b4.gif +srv/web/ipfire/html/themes/darkdos/images/b5.gif +srv/web/ipfire/html/themes/darkdos/images/b6.gif +srv/web/ipfire/html/themes/darkdos/images/spacer.gif +srv/web/ipfire/html/themes/darkdos/include +srv/web/ipfire/html/themes/darkdos/include/colors.txt +srv/web/ipfire/html/themes/darkdos/include/functions.pl +srv/web/ipfire/html/themes/darkdos/include/style.css +srv/web/ipfire/html/themes/ipfire +srv/web/ipfire/html/themes/ipfire-legacy +srv/web/ipfire/html/themes/ipfire-legacy/images +srv/web/ipfire/html/themes/ipfire-legacy/images/n1.gif +srv/web/ipfire/html/themes/ipfire-legacy/images/n2.gif +srv/web/ipfire/html/themes/ipfire-legacy/images/n3.gif +srv/web/ipfire/html/themes/ipfire-legacy/images/n4.gif +srv/web/ipfire/html/themes/ipfire-legacy/images/n5.gif +srv/web/ipfire/html/themes/ipfire-legacy/images/n6.gif +srv/web/ipfire/html/themes/ipfire-legacy/images/spacer.gif +srv/web/ipfire/html/themes/ipfire-legacy/include +srv/web/ipfire/html/themes/ipfire-legacy/include/colors.txt +srv/web/ipfire/html/themes/ipfire-legacy/include/functions.pl +srv/web/ipfire/html/themes/ipfire-legacy/include/style.css +srv/web/ipfire/html/themes/ipfire-rounded +srv/web/ipfire/html/themes/ipfire/images +srv/web/ipfire/html/themes/ipfire/images/n2.gif +srv/web/ipfire/html/themes/ipfire/images/n3.gif +srv/web/ipfire/html/themes/ipfire/images/n5.gif +srv/web/ipfire/html/themes/ipfire/images/n6.gif +srv/web/ipfire/html/themes/ipfire/images/tux2.png +srv/web/ipfire/html/themes/ipfire/include +srv/web/ipfire/html/themes/ipfire/include/colors.txt +srv/web/ipfire/html/themes/ipfire/include/css +srv/web/ipfire/html/themes/ipfire/include/css/style-rounded.css +srv/web/ipfire/html/themes/ipfire/include/css/style.css +srv/web/ipfire/html/themes/ipfire/include/functions.pl +srv/web/ipfire/html/themes/ipfire/include/js +srv/web/ipfire/html/themes/ipfire/include/js/refreshInetInfo.js +srv/web/ipfire/html/themes/maniac +srv/web/ipfire/html/themes/maniac/images +srv/web/ipfire/html/themes/maniac/images/IPFire.png +srv/web/ipfire/html/themes/maniac/images/Thumbs.db +srv/web/ipfire/html/themes/maniac/images/b1.gif +srv/web/ipfire/html/themes/maniac/images/b2.gif +srv/web/ipfire/html/themes/maniac/images/b3.gif +srv/web/ipfire/html/themes/maniac/images/b4.gif +srv/web/ipfire/html/themes/maniac/images/b5.gif +srv/web/ipfire/html/themes/maniac/images/b6.gif +srv/web/ipfire/html/themes/maniac/images/spacer.gif +srv/web/ipfire/html/themes/maniac/include +srv/web/ipfire/html/themes/maniac/include/colors.txt +srv/web/ipfire/html/themes/maniac/include/functions.pl +srv/web/ipfire/html/themes/maniac/include/style.css +var/updatecache +var/updatecache/download +var/updatecache/metadata From 1d47c971e6bd4490fb54c6dd333f307d89f9cfee Mon Sep 17 00:00:00 2001 From: Alexander Marx Date: Wed, 6 May 2015 16:18:00 +0200 Subject: [PATCH 197/210] BUG10834: fixes ovpn-ccd-convert When restoring an old backup, all OpenVPN RW's get the dynamic network. --- src/scripts/ovpn-ccd-convert | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/ovpn-ccd-convert b/src/scripts/ovpn-ccd-convert index 7aa8cf13e..f49670656 100644 --- a/src/scripts/ovpn-ccd-convert +++ b/src/scripts/ovpn-ccd-convert @@ -42,7 +42,7 @@ foreach my $key (keys %ovpnconfig){ }else{ print "Client $ovpnconfig{$key}[2] NOT converted!\n"; } - $ovpnconfig{$key}[32] = 'dynamic'; + $ovpnconfig{$key}[32] = 'dynamic' if ($ovpnconfig{$key}[32] eq ''); } &General::writehasharray("/var/ipfire/ovpn/ovpnconfig", \%ovpnconfig); if ($running eq 'on') From 5d5f5393fe4a1ef2aa07ee59ab7120112b25fe93 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Wed, 6 May 2015 19:08:09 +0200 Subject: [PATCH 198/210] core90: add Locale-Country to update --- config/rootfiles/core/90/filelists/Locale-Country | 1 + 1 file changed, 1 insertion(+) create mode 120000 config/rootfiles/core/90/filelists/Locale-Country diff --git a/config/rootfiles/core/90/filelists/Locale-Country b/config/rootfiles/core/90/filelists/Locale-Country new file mode 120000 index 000000000..025c27878 --- /dev/null +++ b/config/rootfiles/core/90/filelists/Locale-Country @@ -0,0 +1 @@ +../../../common/Locale-Country \ No newline at end of file From 898474e6ffc676ebc71636cde5bdacf370f3d083 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Wed, 6 May 2015 19:10:47 +0200 Subject: [PATCH 199/210] core90: update kernel version in uEnv.txt --- config/rootfiles/core/90/update.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config/rootfiles/core/90/update.sh b/config/rootfiles/core/90/update.sh index 1e0a54881..80525ef3d 100644 --- a/config/rootfiles/core/90/update.sh +++ b/config/rootfiles/core/90/update.sh @@ -231,6 +231,11 @@ case "$(uname -m)" in esac esac +# Upadate Kernel version uEnv.txt +if [ -e /boot/uEnv.txt ]; then + sed -i -e "s/KVER=.*/KVER=${KVER}/g" /boot/uEnv.txt +fi + # Force (re)install pae kernel if pae is supported rm -rf /opt/pakfire/db/*/meta-linux-pae if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then From ad39b30985d0fe217f355491bbbe9a5515026927 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Wed, 6 May 2015 19:12:06 +0200 Subject: [PATCH 200/210] qemu: update to 2.3.0 --- config/qemu/qemu | 10 +++++ config/rootfiles/packages/qemu | 30 ++++++++++++-- lfs/qemu | 22 ++++++---- ...qemu-0.15.0_missing_definitions_hack.patch | 40 ------------------- 4 files changed, 51 insertions(+), 51 deletions(-) create mode 100644 config/qemu/qemu delete mode 100644 src/patches/qemu-0.15.0_missing_definitions_hack.patch diff --git a/config/qemu/qemu b/config/qemu/qemu new file mode 100644 index 000000000..64b458a3a --- /dev/null +++ b/config/qemu/qemu @@ -0,0 +1,10 @@ +#!/bin/bash +# +# QEMU wrapper to enable kvm as default like old qemu-kvm... +# +if [[ $* == *" -no-kvm"* ]]; then + qemu-system-i386 $* +else + qemu-system-i386 -enable-kvm $* +fi +exit ${?} diff --git a/config/rootfiles/packages/qemu b/config/rootfiles/packages/qemu index 50620663a..9896139ce 100644 --- a/config/rootfiles/packages/qemu +++ b/config/rootfiles/packages/qemu @@ -7,19 +7,33 @@ usr/bin/qemu-img usr/bin/qemu-io usr/bin/qemu-nbd usr/bin/qemu-system-arm +usr/bin/qemu-system-i386 +usr/libexec/qemu-bridge-helper #usr/share/doc/qemu #usr/share/doc/qemu/qemu-doc.html #usr/share/doc/qemu/qemu-tech.html +#usr/share/doc/qemu/qmp-commands.txt #usr/share/man/man1/qemu-img.1 #usr/share/man/man1/qemu.1 #usr/share/man/man8/qemu-nbd.8 -usr/share/qemu +#usr/share/qemu +usr/share/qemu/QEMU,cgthree.bin +usr/share/qemu/QEMU,tcx.bin +usr/share/qemu/acpi-dsdt.aml usr/share/qemu/bamboo.dtb +usr/share/qemu/bios-256k.bin usr/share/qemu/bios.bin -usr/share/qemu/extboot.bin +usr/share/qemu/efi-e1000.rom +usr/share/qemu/efi-eepro100.rom +usr/share/qemu/efi-ne2k_pci.rom +usr/share/qemu/efi-pcnet.rom +usr/share/qemu/efi-rtl8139.rom +usr/share/qemu/efi-virtio.rom usr/share/qemu/keymaps usr/share/qemu/keymaps/ar +usr/share/qemu/keymaps/bepo usr/share/qemu/keymaps/common +usr/share/qemu/keymaps/cz usr/share/qemu/keymaps/da usr/share/qemu/keymaps/de usr/share/qemu/keymaps/de-ch @@ -53,12 +67,13 @@ usr/share/qemu/keymaps/sl usr/share/qemu/keymaps/sv usr/share/qemu/keymaps/th usr/share/qemu/keymaps/tr +usr/share/qemu/kvmvapic.bin usr/share/qemu/linuxboot.bin -usr/share/qemu/mpc8544ds.dtb usr/share/qemu/multiboot.bin usr/share/qemu/openbios-ppc usr/share/qemu/openbios-sparc32 usr/share/qemu/openbios-sparc64 +usr/share/qemu/palcode-clipper usr/share/qemu/petalogix-ml605.dtb usr/share/qemu/petalogix-s3adsp1800.dtb usr/share/qemu/ppc_rom.bin @@ -68,12 +83,19 @@ usr/share/qemu/pxe-ne2k_pci.rom usr/share/qemu/pxe-pcnet.rom usr/share/qemu/pxe-rtl8139.rom usr/share/qemu/pxe-virtio.rom +usr/share/qemu/q35-acpi-dsdt.aml +usr/share/qemu/qemu-icon.bmp +usr/share/qemu/qemu_logo_no_text.svg +usr/share/qemu/s390-ccw.img usr/share/qemu/s390-zipl.rom +usr/share/qemu/sgabios.bin usr/share/qemu/slof.bin usr/share/qemu/spapr-rtas.bin -usr/share/qemu/vapic.bin +usr/share/qemu/trace-events +usr/share/qemu/u-boot.e500 usr/share/qemu/vgabios-cirrus.bin usr/share/qemu/vgabios-qxl.bin usr/share/qemu/vgabios-stdvga.bin usr/share/qemu/vgabios-vmware.bin usr/share/qemu/vgabios.bin +#usr/var/run diff --git a/lfs/qemu b/lfs/qemu index 2fc0476b0..8512568b6 100644 --- a/lfs/qemu +++ b/lfs/qemu @@ -24,16 +24,16 @@ include Config -VER = 0.15.0 +VER = 2.3.0 -THISAPP = qemu-kvm-$(VER) -DL_FILE = $(THISAPP).tar.gz +THISAPP = qemu-$(VER) +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) SUP_ARCH = i586 PROG = qemu -PAK_VER = 14 +PAK_VER = 15 DEPS = "sdl" @@ -45,7 +45,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = b45b0deebba4ce47dcaaab3807f6ed47 +$(DL_FILE)_MD5 = 2fab3ea4460de9b57192e5b8b311f221 install : $(TARGET) @@ -77,12 +77,20 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/qemu-0.15.0_missing_definitions_hack.patch + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ + --enable-kvm --disable-attr \ --target-list="i386-linux-user i386-softmmu arm-softmmu" \ --extra-cflags="$(CFLAGS)" cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + + # install wrapper for old kvm parameter handling + install -m 755 $(DIR_SRC)/config/qemu/qemu /usr/bin/qemu + + # disable PaX MPROTECT + paxctl -m /usr/bin/qemu-system-arm + paxctl -m /usr/bin/qemu-system-i386 + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/src/patches/qemu-0.15.0_missing_definitions_hack.patch b/src/patches/qemu-0.15.0_missing_definitions_hack.patch deleted file mode 100644 index 4ff2c0847..000000000 --- a/src/patches/qemu-0.15.0_missing_definitions_hack.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -Naur qemu-kvm-0.15.0.org/hw/9pfs/virtio-9p-local.c qemu-kvm-0.15.0/hw/9pfs/virtio-9p-local.c ---- qemu-kvm-0.15.0.org/hw/9pfs/virtio-9p-local.c 2011-08-09 14:40:29.000000000 +0200 -+++ qemu-kvm-0.15.0/hw/9pfs/virtio-9p-local.c 2011-08-14 10:31:22.711480316 +0200 -@@ -21,6 +21,16 @@ - #include - #include - -+#ifndef AT_FDCWD -+/* Copied from linux/include/linux/fcntl.h * because direct include fails */ -+#define AT_FDCWD -100 /* Special value used to indicate -+ openat should use the current -+ working directory. */ -+#define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ -+#define AT_REMOVEDIR 0x200 /* Remove directory instead of -+ unlinking file. */ -+#define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ -+#endif - - static int local_lstat(FsContext *fs_ctx, const char *path, struct stat *stbuf) - { -diff -Naur qemu-kvm-0.15.0.org/linux-user/syscall.c qemu-kvm-0.15.0/linux-user/syscall.c ---- qemu-kvm-0.15.0.org/linux-user/syscall.c 2011-08-09 14:40:29.000000000 +0200 -+++ qemu-kvm-0.15.0/linux-user/syscall.c 2011-08-14 12:43:43.190231600 +0200 -@@ -971,6 +971,16 @@ - return result; - } - -+/* Copied from linux/include/asm/resource.h * because direct include fails */ -+ -+#ifndef RLIMIT_NICE -+#define RLIMIT_NICE 13 /* max nice prio allowed to raise to -+ 0-39 for nice level 19 .. -20 */ -+#endif -+#ifndef RLIMIT_RTPRIO -+#define RLIMIT_RTPRIO 14 /* maximum realtime priority */ -+#endif -+ - static inline int target_to_host_resource(int code) - { - switch (code) { From ba837e88425933b863ed2a430a0a53995a57a840 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Wed, 6 May 2015 19:21:05 +0200 Subject: [PATCH 201/210] core90: restart init after glibc update. --- config/rootfiles/core/90/update.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/rootfiles/core/90/update.sh b/config/rootfiles/core/90/update.sh index 80525ef3d..d44172662 100644 --- a/config/rootfiles/core/90/update.sh +++ b/config/rootfiles/core/90/update.sh @@ -139,6 +139,10 @@ rm /srv/web/ipfire/html/images/flags/* #Extract files tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C / +# +# restart init because glibc was updated. +telinit u + # Remove old openssl libraries rm -vf /usr/lib/libcrypto.so.0.9.8 /usr/lib/libssl.so.0.9.8 From 58efaf8e1807eda1f4dbf3bc360698b075ef51d1 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Wed, 6 May 2015 19:28:40 +0200 Subject: [PATCH 202/210] core90: run user update script at kernel update. fixes #10767 --- config/rootfiles/core/90/update.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/config/rootfiles/core/90/update.sh b/config/rootfiles/core/90/update.sh index d44172662..7e41f4ba6 100644 --- a/config/rootfiles/core/90/update.sh +++ b/config/rootfiles/core/90/update.sh @@ -240,6 +240,12 @@ if [ -e /boot/uEnv.txt ]; then sed -i -e "s/KVER=.*/KVER=${KVER}/g" /boot/uEnv.txt fi +# call user update script (needed for some arm boards) +if [ -e /boot/pakfire-kernel-update ]; then + /boot/pakfire-kernel-update +fi + + # Force (re)install pae kernel if pae is supported rm -rf /opt/pakfire/db/*/meta-linux-pae if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then From 086eb9b58233ec19e555a9ded97d00a863fef404 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Wed, 6 May 2015 19:38:07 +0200 Subject: [PATCH 203/210] core90: supply new kernel version to user update script --- config/rootfiles/core/90/update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/rootfiles/core/90/update.sh b/config/rootfiles/core/90/update.sh index 7e41f4ba6..4835c5a29 100644 --- a/config/rootfiles/core/90/update.sh +++ b/config/rootfiles/core/90/update.sh @@ -242,7 +242,7 @@ fi # call user update script (needed for some arm boards) if [ -e /boot/pakfire-kernel-update ]; then - /boot/pakfire-kernel-update + /boot/pakfire-kernel-update ${KVER} fi From d9e80e0b0914f71c90f1bf743be0bc412afe1115 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 7 May 2015 21:05:50 +0200 Subject: [PATCH 204/210] ipsecctrl: Remove unused code block --- src/misc-progs/ipsecctrl.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/misc-progs/ipsecctrl.c b/src/misc-progs/ipsecctrl.c index eb3fc4984..00a38c7aa 100644 --- a/src/misc-progs/ipsecctrl.c +++ b/src/misc-progs/ipsecctrl.c @@ -58,17 +58,7 @@ static void ipsec_reload() { void open_physical (char *interface, int nat_traversal_port) { char str[STRING_SIZE]; - // GRE ??? -// sprintf(str, "/sbin/iptables -A " phystable " -p 47 -i %s -j ACCEPT", interface); -// safe_system(str); - // ESP -// sprintf(str, "/sbin/iptables -A " phystable " -p 50 -i %s -j ACCEPT", interface); -// safe_system(str); - // AH -// sprintf(str, "/sbin/iptables -A " phystable " -p 51 -i %s -j ACCEPT", interface); -// safe_system(str); // IKE - sprintf(str, "/sbin/iptables -D IPSECINPUT -p udp -i %s --dport 500 -j ACCEPT >/dev/null 2>&1", interface); safe_system(str); sprintf(str, "/sbin/iptables -A IPSECINPUT -p udp -i %s --dport 500 -j ACCEPT", interface); From a9600358d86b78d144376fffc8c3b91da6c29e26 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 7 May 2015 21:06:44 +0200 Subject: [PATCH 205/210] ipsecctrl: Use --wait switch for all iptables commands --- src/misc-progs/ipsecctrl.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/misc-progs/ipsecctrl.c b/src/misc-progs/ipsecctrl.c index 00a38c7aa..e99202d9f 100644 --- a/src/misc-progs/ipsecctrl.c +++ b/src/misc-progs/ipsecctrl.c @@ -59,25 +59,25 @@ void open_physical (char *interface, int nat_traversal_port) { char str[STRING_SIZE]; // IKE - sprintf(str, "/sbin/iptables -D IPSECINPUT -p udp -i %s --dport 500 -j ACCEPT >/dev/null 2>&1", interface); + sprintf(str, "/sbin/iptables --wait -D IPSECINPUT -p udp -i %s --dport 500 -j ACCEPT >/dev/null 2>&1", interface); safe_system(str); - sprintf(str, "/sbin/iptables -A IPSECINPUT -p udp -i %s --dport 500 -j ACCEPT", interface); + sprintf(str, "/sbin/iptables --wait -A IPSECINPUT -p udp -i %s --dport 500 -j ACCEPT", interface); safe_system(str); if (! nat_traversal_port) return; - sprintf(str, "/sbin/iptables -D IPSECINPUT -p udp -i %s --dport %i -j ACCEPT >/dev/null 2>&1", interface, nat_traversal_port); + sprintf(str, "/sbin/iptables --wait -D IPSECINPUT -p udp -i %s --dport %i -j ACCEPT >/dev/null 2>&1", interface, nat_traversal_port); safe_system(str); - sprintf(str, "/sbin/iptables -A IPSECINPUT -p udp -i %s --dport %i -j ACCEPT", interface, nat_traversal_port); + sprintf(str, "/sbin/iptables --wait -A IPSECINPUT -p udp -i %s --dport %i -j ACCEPT", interface, nat_traversal_port); safe_system(str); } void ipsec_norules() { /* clear input rules */ - safe_system("/sbin/iptables -F IPSECINPUT"); - safe_system("/sbin/iptables -F IPSECFORWARD"); - safe_system("/sbin/iptables -F IPSECOUTPUT"); + safe_system("/sbin/iptables --wait -F IPSECINPUT"); + safe_system("/sbin/iptables --wait -F IPSECFORWARD"); + safe_system("/sbin/iptables --wait -F IPSECOUTPUT"); } /* From d81456730cbb515711e9ea796f14048b0c4009f5 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 7 May 2015 22:40:08 +0200 Subject: [PATCH 206/210] strongswan: Use --wait option for iptables commands --- src/patches/strongswan-ipfire.patch | 68 ++++++++++++++--------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/src/patches/strongswan-ipfire.patch b/src/patches/strongswan-ipfire.patch index 79bee0469..7071983b8 100644 --- a/src/patches/strongswan-ipfire.patch +++ b/src/patches/strongswan-ipfire.patch @@ -35,11 +35,11 @@ # This is used only by the default updown script, not by your custom # ones, so do not mess with it; see CAUTION comment up at top. - iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables --wait -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables --wait -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT + -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 @@ -64,11 +64,11 @@ # This is used only by the default updown script, not by your custom # ones, so do not mess with it; see CAUTION comment up at top. - iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables --wait -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables --wait -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT + -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 @@ -93,12 +93,12 @@ if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] then - iptables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables --wait -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT - iptables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 -+ iptables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables --wait -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT + -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j RETURN @@ -109,12 +109,12 @@ if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] then - iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables --wait -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j RETURN -+ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables --wait -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT + -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 @@ -126,7 +126,7 @@ if [ -n "$PLUTO_IPCOMP" ] then - iptables -I INPUT 1 -i $PLUTO_INTERFACE -p 4 \ -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p 4 \ ++ iptables --wait -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p 4 \ -s $PLUTO_PEER -d $PLUTO_ME $IPSEC_POLICY_IN -j ACCEPT fi # @@ -145,13 +145,13 @@ + + # + # Open Firewall for IPinIP + AH + ESP Traffic -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p IP \ ++ iptables --wait -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p IP \ + -s $PLUTO_PEER $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p AH \ ++ iptables --wait -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p AH \ + -s $PLUTO_PEER $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p ESP \ ++ iptables --wait -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p ESP \ + -s $PLUTO_PEER $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT -j ACCEPT + if [ $VPN_LOGGING ] @@ -171,7 +171,7 @@ + done + + if [ -n "${src}" ]; then -+ iptables -t nat -A IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src ++ iptables --wait -t nat -A IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src + logger -t $TAG -p $FAC_PRIO \ + "snat+ $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" + else @@ -189,13 +189,13 @@ if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] then - iptables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables --wait -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_MY_CLIENT $S_MY_PORT \ -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ - $IPSEC_POLICY_OUT -j ACCEPT - iptables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + $IPSEC_POLICY_OUT -j MARK --set-mark 50 -+ iptables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables --wait -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT @@ -207,13 +207,13 @@ if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] then - iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables --wait -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT - iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + $IPSEC_POLICY_IN -j RETURN -+ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables --wait -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_MY_CLIENT $S_MY_PORT \ -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ - $IPSEC_POLICY_OUT -j ACCEPT @@ -224,7 +224,7 @@ if [ -n "$PLUTO_IPCOMP" ] then - iptables -D INPUT -i $PLUTO_INTERFACE -p 4 \ -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p 4 \ ++ iptables --wait -D IPSECINPUT -i $PLUTO_INTERFACE -p 4 \ -s $PLUTO_PEER -d $PLUTO_ME $IPSEC_POLICY_IN -j ACCEPT fi # @@ -243,13 +243,13 @@ + + # + # Close Firewall for IPinIP + AH + ESP Traffic -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p IP \ ++ iptables --wait -D IPSECINPUT -i $PLUTO_INTERFACE -p IP \ + -s $PLUTO_PEER $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p AH \ ++ iptables --wait -D IPSECINPUT -i $PLUTO_INTERFACE -p AH \ + -s $PLUTO_PEER $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p ESP \ ++ iptables --wait -D IPSECINPUT -i $PLUTO_INTERFACE -p ESP \ + -s $PLUTO_PEER $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT -j ACCEPT + if [ $VPN_LOGGING ] @@ -269,7 +269,7 @@ + done + + if [ -n "${src}" ]; then -+ iptables -t nat -D IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src ++ iptables --wait -t nat -D IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src + logger -t $TAG -p $FAC_PRIO \ + "snat- $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" + else @@ -287,11 +287,11 @@ # This is used only by the default updown script, not by your custom # ones, so do not mess with it; see CAUTION comment up at top. - ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables --wait -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables --wait -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT # @@ -300,11 +300,11 @@ # This is used only by the default updown script, not by your custom # ones, so do not mess with it; see CAUTION comment up at top. - ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables --wait -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables --wait -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT # @@ -313,11 +313,11 @@ if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] then - ip6tables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables --wait -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_MY_CLIENT $S_MY_PORT \ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT - ip6tables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables --wait -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT fi @@ -326,11 +326,11 @@ if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] then - ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables --wait -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables --wait -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_MY_CLIENT $S_MY_PORT \ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT fi @@ -339,12 +339,12 @@ if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] then - ip6tables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables --wait -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_MY_CLIENT $S_MY_PORT \ -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ $IPSEC_POLICY_OUT -j ACCEPT - ip6tables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables --wait -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_MY_CLIENT $D_MY_PORT \ $IPSEC_POLICY_IN -j ACCEPT @@ -353,12 +353,12 @@ if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] then - ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables --wait -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ -d $PLUTO_MY_CLIENT $D_MY_PORT \ $IPSEC_POLICY_IN -j ACCEPT - ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables --wait -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -s $PLUTO_MY_CLIENT $S_MY_PORT \ -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ $IPSEC_POLICY_OUT -j ACCEPT From 962ac5bdc6d8abd09819c2a43d4bf2cbd5fc5336 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 7 May 2015 22:42:04 +0200 Subject: [PATCH 207/210] core90: Ship changed ipsecctrl --- config/rootfiles/core/90/filelists/files | 1 + 1 file changed, 1 insertion(+) diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files index d36ece088..431dcd61c 100644 --- a/config/rootfiles/core/90/filelists/files +++ b/config/rootfiles/core/90/filelists/files @@ -25,6 +25,7 @@ usr/lib/firewall/firewall-lib.pl usr/lib/firewall/rules.pl usr/local/bin/backupiso usr/local/bin/ddnsctrl +usr/local/bin/ipsecctrl usr/local/bin/xt_geoip_build usr/local/bin/xt_geoip_update var/ipfire/general-functions.pl From 9c7093a18bb01066834deb865cee976efbe3385d Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 7 May 2015 22:46:59 +0200 Subject: [PATCH 208/210] apache2: Ship all config files --- config/rootfiles/common/apache2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index 68c99eac5..7e33a155e 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -1,8 +1,8 @@ #etc/httpd #etc/httpd/conf #etc/httpd/conf/conf.d -#etc/httpd/conf/conf.d/php5.conf -#etc/httpd/conf/default-server.conf +etc/httpd/conf/conf.d/php5.conf +etc/httpd/conf/default-server.conf #etc/httpd/conf/extra #etc/httpd/conf/extra/httpd-autoindex.conf #etc/httpd/conf/extra/httpd-dav.conf From 589b334571919c64acd25fb9906d39f621f64a3d Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Fri, 8 May 2015 13:25:36 +0200 Subject: [PATCH 209/210] kernel: update to 3.14.41 --- lfs/linux | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lfs/linux b/lfs/linux index a68dda73e..b2d2552dc 100644 --- a/lfs/linux +++ b/lfs/linux @@ -24,11 +24,11 @@ include Config -VER = 3.14.40 +VER = 3.14.41 -RPI_PATCHES = 3.14.40-grsec-ipfire1 -A7M_PATCHES = 3.14.40-grsec-ipfire1 -GRS_PATCHES = grsecurity-3.1-3.14.40-201504290821.patch.xz +RPI_PATCHES = 3.14.41-grsec-ipfire1 +A7M_PATCHES = 3.14.41-grsec-ipfire1 +GRS_PATCHES = grsecurity-3.1-3.14.41-201505072056.patch.xz THISAPP = linux-$(VER) DL_FILE = linux-$(VER).tar.xz @@ -77,10 +77,10 @@ rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES). arm7-multi-patches-$(A7M_PATCHES).patch.xz = $(URL_IPFIRE)/arm7-multi-patches-$(A7M_PATCHES).patch.xz $(GRS_PATCHES) = $(URL_IPFIRE)/$(GRS_PATCHES) -$(DL_FILE)_MD5 = 8a66901cdcce5b2650672af41ad4a9fd -rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 375dc501711ff3ffeffdfc9848675d26 +$(DL_FILE)_MD5 = b28dfc6907c388c2adcc65aee2ad68ff +rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 9c8b20647429a64d656999a3c7af890f arm7-multi-patches-$(A7M_PATCHES).patch.xz_MD5 = a4a4103255e93bfcb02652212b0ae3fc -$(GRS_PATCHES)_MD5 = 52d5d8dae26f4c1fd1c8d67268260bdd +$(GRS_PATCHES)_MD5 = 8af3b27954311da581cc6f803f048779 install : $(TARGET) From 16c18d2ea06f833cec3ea7058b8ebd0368b685ba Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Fri, 8 May 2015 18:30:31 +0200 Subject: [PATCH 210/210] core90: set pakfire version to 90 --- make.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make.sh b/make.sh index 1d287469d..835a3a623 100755 --- a/make.sh +++ b/make.sh @@ -26,7 +26,7 @@ NAME="IPFire" # Software name SNAME="ipfire" # Short name VERSION="2.17" # Version number CORE="90" # Core Level (Filename) -PAKFIRE_CORE="89" # Core Level (PAKFIRE) +PAKFIRE_CORE="90" # Core Level (PAKFIRE) GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` # Git Branch SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir
@@ -1655,9 +1668,9 @@ END END print <$Lang::tr{'dnat address'}:$Lang::tr{'dnat address'}: - END @@ -1688,9 +1701,9 @@ END $Lang::tr{'fwdfw snat'} $Lang::tr{'snat new source ip address'}:$Lang::tr{'snat new source ip address'}: - END foreach my $alias (sort keys %aliases) { diff --git a/html/html/themes/darkdos/include/style.css b/html/html/themes/darkdos/include/style.css index e7140cde8..cc4b3c965 100644 --- a/html/html/themes/darkdos/include/style.css +++ b/html/html/themes/darkdos/include/style.css @@ -366,6 +366,10 @@ min-width: 2.0em; max-width: 2.5em; } +table.fw-nat tbody tr td { + height: 2.25em; +} + /* LAYOUT - 3 COLUMNS */ /* Primary content */ diff --git a/html/html/themes/ipfire-legacy/include/style.css b/html/html/themes/ipfire-legacy/include/style.css index d2c458e51..288a0feeb 100644 --- a/html/html/themes/ipfire-legacy/include/style.css +++ b/html/html/themes/ipfire-legacy/include/style.css @@ -343,6 +343,10 @@ min-width: 2.0em; max-width: 2.5em; } +table.fw-nat tbody tr td { + height: 2.25em; +} + /* LAYOUT - 3 COLUMNS */ /* Primary content */ diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index 0e990d681..e0ac3cd11 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -324,3 +324,7 @@ table { .tbl tr:last-child td { border-bottom: 1px solid lightgrey; } + +table.fw-nat tbody tr td { + height: 2.25em; +} diff --git a/html/html/themes/maniac/include/style.css b/html/html/themes/maniac/include/style.css index eca34cb85..3cb274130 100644 --- a/html/html/themes/maniac/include/style.css +++ b/html/html/themes/maniac/include/style.css @@ -372,6 +372,10 @@ min-width: 2.0em; max-width: 2.5em; } +table.fw-nat tbody tr td { + height: 2.25em; +} + /* LAYOUT - 3 COLUMNS */ /* Primary content */ From dc127e0faab368273aca09a57cc79f8186547189 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 19 Apr 2015 01:23:18 +0200 Subject: [PATCH 121/210] Core 90: Add changed css files. --- config/rootfiles/core/90/filelists/files | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files index c68a27ae0..d346264d8 100644 --- a/config/rootfiles/core/90/filelists/files +++ b/config/rootfiles/core/90/filelists/files @@ -9,6 +9,10 @@ srv/web/ipfire/cgi-bin/fwhosts.cgi srv/web/ipfire/cgi-bin/geoip-block.cgi srv/web/ipfire/cgi-bin/ovpnmain.cgi srv/web/ipfire/cgi-bin/vpnmain.cgi +srv/web/ipfire/html/themes/darkdos/include/style.css +srv/web/ipfire/html/themes/ipfire-legacy/include/style.css +srv/web/ipfire/html/themes/ipfire/include/css/style.css +srv/web/ipfire/html/themes/maniac/include/style.css usr/lib/firewall/firewall-lib.pl usr/lib/firewall/rules.pl usr/local/bin/xt_geoip_build From 2805275ecca612fc88319f44a4395802150ce17a Mon Sep 17 00:00:00 2001 From: Matthias Fischer Date: Sun, 19 Apr 2015 00:49:26 +0200 Subject: [PATCH 122/210] openssl: Update to 1.0.2a --- lfs/openssl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lfs/openssl b/lfs/openssl index 588cf045e..47670a673 100644 --- a/lfs/openssl +++ b/lfs/openssl @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2014 IPFire Team # +# Copyright (C) 2007-2015 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 1.0.1m +VER = 1.0.2a THISAPP = openssl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -51,7 +51,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = d143d1555d842a069cb7cc34ba745a06 +$(DL_FILE)_MD5 = a06c547dac9044161a477211049f60ef install : $(TARGET) From 1245aa72df932f3764be1ba7c5ce09b89b79ac5e Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 19 Apr 2015 11:58:50 +0200 Subject: [PATCH 123/210] openssl: Fix build by updating the patches --- lfs/openssl | 4 +-- ...ld.patch => openssl-1.0.2a-rpmbuild.patch} | 32 +++++++------------ 2 files changed, 13 insertions(+), 23 deletions(-) rename src/patches/{openssl-1.0.1e-rpmbuild.patch => openssl-1.0.2a-rpmbuild.patch} (55%) diff --git a/lfs/openssl b/lfs/openssl index 47670a673..6f31e02b1 100644 --- a/lfs/openssl +++ b/lfs/openssl @@ -33,7 +33,7 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) ifeq "$(MACHINE)" "i586" - CONFIGURE_ARGS = linux-elf no-asm 386 + CONFIGURE_ARGS = linux-generic32 no-asm 386 endif ifeq "$(MACHINE)" "armv5tel" @@ -82,7 +82,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.0-beta5-enginesdir.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.1e-rpmbuild.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.2a-rpmbuild.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.1m-weak-ciphers.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-disable-sslv2-sslv3.patch diff --git a/src/patches/openssl-1.0.1e-rpmbuild.patch b/src/patches/openssl-1.0.2a-rpmbuild.patch similarity index 55% rename from src/patches/openssl-1.0.1e-rpmbuild.patch rename to src/patches/openssl-1.0.2a-rpmbuild.patch index b01520ea2..3cab5c277 100644 --- a/src/patches/openssl-1.0.1e-rpmbuild.patch +++ b/src/patches/openssl-1.0.2a-rpmbuild.patch @@ -1,6 +1,15 @@ diff -up openssl-1.0.1e/Configure.rpmbuild openssl-1.0.1e/Configure ---- openssl-1.0.1e/Configure.rpmbuild 2014-08-13 19:19:53.211005598 +0200 -+++ openssl-1.0.1e/Configure 2014-08-13 19:29:21.704099285 +0200 +--- openssl-1.0.2a.vanilla/Configure 2015-03-19 13:30:36.000000000 +0000 ++++ openssl-1.0.2a/Configure 2015-04-19 09:53:04.381491868 +0000 +@@ -348,7 +348,7 @@ + #### + # *-generic* is endian-neutral target, but ./config is free to + # throw in -D[BL]_ENDIAN, whichever appropriate... +-"linux-generic32","gcc:-O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-generic32","gcc:\$(CFLAGS) -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:\$(CFLAGS):.so.\$(SHLIB_SONAMEVER)", + "linux-ppc", "gcc:-DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + + ####################################################################### @@ -1675,7 +1676,7 @@ while () elsif ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*\.[^\.]*$/) { @@ -42,22 +51,3 @@ diff -up openssl-1.0.1e/Makefile.org.rpmbuild openssl-1.0.1e/Makefile.org LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \ LIBDEPS="$$libs $(EX_LIBS)" \ link_a.$(SHLIB_TARGET); \ ---- a/Configure.old 2015-03-19 18:10:45.101201021 +0000 -+++ b/Configure 2015-03-19 18:11:19.324547495 +0000 -@@ -345,14 +345,14 @@ - #### - # *-generic* is endian-neutral target, but ./config is free to - # throw in -D[BL]_ENDIAN, whichever appropriate... --"linux-generic32","gcc:-O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-generic32","gcc:-O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_SONAMEVER)", - "linux-ppc", "gcc:-DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - # It's believed that majority of ARM toolchains predefine appropriate -march. - # If you compiler does not, do complement config command line with one! - "linux-armv4", "gcc:-O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - #### IA-32 targets... - "linux-ia32-icc", "icc:-DL_ENDIAN -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"linux-elf", "gcc:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-elf", "gcc:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_SONAMEVER)", - "linux-aout", "gcc:-DL_ENDIAN -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out", - #### - "linux-generic64","gcc:-O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", From fde9c9dd035ebd5a24527e1b99069d3df5a03d13 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 19 Apr 2015 12:51:44 +0200 Subject: [PATCH 124/210] ovpnmain.cgi: Update the certificate revocation list when a connection has been deleted. Reference #10554. --- html/cgi-bin/ovpnmain.cgi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi index 6bf7b2bfd..fb52e6801 100644 --- a/html/cgi-bin/ovpnmain.cgi +++ b/html/cgi-bin/ovpnmain.cgi @@ -2346,7 +2346,9 @@ else &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash); if ($confighash{$cgiparams{'KEY'}}) { + # Revoke certificate if certificate was deleted and rewrite the CRL my $temp = `/usr/bin/openssl ca -revoke ${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem -config ${General::swroot}/ovpn/openssl/ovpn.cnf`; + my $tempA = `/usr/bin/openssl ca -gencrl -out ${General::swroot}/ovpn/crls/cacrl.pem -config ${General::swroot}/ovpn/openssl/ovpn.cnf`; ### # m.a.d net2net From 2e28ecea3ef7b96ef55d9b3dc3ad67414c023853 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Mon, 20 Apr 2015 22:48:46 +0200 Subject: [PATCH 125/210] functions.network: update dhcp client commandline. this fix trailing space before hostname. --- config/rootfiles/core/90/filelists/files | 1 + src/initscripts/init.d/networking/functions.network | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files index d346264d8..85d3de335 100644 --- a/config/rootfiles/core/90/filelists/files +++ b/config/rootfiles/core/90/filelists/files @@ -2,6 +2,7 @@ etc/system-release etc/issue etc/rc.d/init.d/firewall etc/rc.d/init.d/network-trigger +etc/rc.d/init.d/networking/functions.network etc/rc.d/init.d/networking/red.up/99-geoip-database etc/rc.d/rcsysinit.d/S90network-trigger srv/web/ipfire/cgi-bin/firewall.cgi diff --git a/src/initscripts/init.d/networking/functions.network b/src/initscripts/init.d/networking/functions.network index f459b7775..1af3482df 100644 --- a/src/initscripts/init.d/networking/functions.network +++ b/src/initscripts/init.d/networking/functions.network @@ -75,7 +75,7 @@ dhcpcd_start() { fi # Start dhcpcd. - /sbin/dhcpcd "${device}" "${dhcp_start}" >/dev/null 2>&1 + /sbin/dhcpcd ${dhcp_start} ${device} >/dev/null 2>&1 ret="$?" if [ "${ret}" -eq 0 ]; then @@ -124,7 +124,7 @@ dhcpcd_stop() { fi # Stop dhcpcd. - /sbin/dhcpcd "${device}" "${dhcp_stop}" &> /dev/null + /sbin/dhcpcd ${dhcp_stop} ${device} &> /dev/null ret="$?" # Wait until dhcpd has stopped. From 785c9195204b12f9391d3d13e56e7ec11576cfeb Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Mon, 20 Apr 2015 22:57:24 +0200 Subject: [PATCH 126/210] remove ipp2p patches. ipp2p is build by xtables addons now. --- config/rootfiles/core/90/filelists/iptables | 1 + lfs/iptables | 3 --- lfs/linux | 3 --- 3 files changed, 1 insertion(+), 6 deletions(-) create mode 120000 config/rootfiles/core/90/filelists/iptables diff --git a/config/rootfiles/core/90/filelists/iptables b/config/rootfiles/core/90/filelists/iptables new file mode 120000 index 000000000..8caf12bcc --- /dev/null +++ b/config/rootfiles/core/90/filelists/iptables @@ -0,0 +1 @@ +../../../common/iptables \ No newline at end of file diff --git a/lfs/iptables b/lfs/iptables index d3c8402b0..ec65ae04a 100644 --- a/lfs/iptables +++ b/lfs/iptables @@ -93,9 +93,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && cp -vf $(DIR_SRC)/netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/* \ ./extensions/ - # ipp2p 0.8.2-pomng - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch - # imq cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.12-IMQ-test4.diff diff --git a/lfs/linux b/lfs/linux index 300fd8703..5675f95b1 100644 --- a/lfs/linux +++ b/lfs/linux @@ -118,9 +118,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # Linux Intermediate Queueing Device cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.22-imq.patch - # ipp2p 0.8.2-ipfire - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10-ipp2p-0.8.2-ipfire.patch - # Layer7-patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14-layer7-filter.patch From 0505af9dc07f3a2b46d15e726d40585e4ee20099 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Mon, 20 Apr 2015 23:14:11 +0200 Subject: [PATCH 127/210] rules.pl: fix geoip initialisation. --- config/firewall/rules.pl | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/config/firewall/rules.pl b/config/firewall/rules.pl index 535899611..daa95651b 100644 --- a/config/firewall/rules.pl +++ b/config/firewall/rules.pl @@ -580,17 +580,15 @@ sub p2pblock { sub geoipblock { my %geoipsettings = (); + $geoipsettings{'GEOIPBLOCK_ENABLED'} = "off"; + + # Flush iptables chain. + run("$IPTABLES -F GEOIPBLOCK"); # Check if the geoip settings file exists if (-e "$geoipfile") { # Read settings file &General::readhash("$geoipfile", \%geoipsettings); - } else { - # Drop active rules. - run("$IPTABLES -F GEOIPBLOCK"); - - # Exit submodule, go on processing the remaining script - return; } # If geoip blocking is not enabled, we are finished here. @@ -602,9 +600,6 @@ sub geoipblock { # Get supported locations. my @locations = &fwlib::get_geoip_locations(); - # Flush iptables chain. - run("$IPTABLES -F GEOIPBLOCK"); - # Loop through all supported geoip locations and # create iptables rules, if blocking this country # is enabled. From 2b4830c5ab71ce04cc14979ec3ed9c91049c8d4c Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Tue, 21 Apr 2015 14:02:47 +0200 Subject: [PATCH 128/210] kernel: update to 3.14.39 --- lfs/linux | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lfs/linux b/lfs/linux index 5675f95b1..8b4f94112 100644 --- a/lfs/linux +++ b/lfs/linux @@ -24,11 +24,11 @@ include Config -VER = 3.14.38 +VER = 3.14.39 -RPI_PATCHES = 3.14.38-grsec-ipfire1 -A7M_PATCHES = 3.14.38-grsec-ipfire1 -GRS_PATCHES = grsecurity-3.1-3.14.38-201504142259.patch.xz +RPI_PATCHES = 3.14.39-grsec-ipfire1 +A7M_PATCHES = 3.14.39-grsec-ipfire1 +GRS_PATCHES = grsecurity-3.1-3.14.39-201504190814.patch.xz THISAPP = linux-$(VER) DL_FILE = linux-$(VER).tar.xz @@ -77,10 +77,10 @@ rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES). arm7-multi-patches-$(A7M_PATCHES).patch.xz = $(URL_IPFIRE)/arm7-multi-patches-$(A7M_PATCHES).patch.xz $(GRS_PATCHES) = $(URL_IPFIRE)/$(GRS_PATCHES) -$(DL_FILE)_MD5 = c4d0154627e02dc43c67fa616ff1e569 -rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = e423c8b3a408f23b9a26f8f0f4384c50 +$(DL_FILE)_MD5 = 3581855d0dbfcbe1140dfcd1406d0a91 +rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 5056304af0a199194abd0bcb00015f28 arm7-multi-patches-$(A7M_PATCHES).patch.xz_MD5 = a4a4103255e93bfcb02652212b0ae3fc -$(GRS_PATCHES)_MD5 = 6d6ed13c08ae96f6470c30c00e08b130 +$(GRS_PATCHES)_MD5 = 2121d0bf825da9ff6321e2940f247c5e install : $(TARGET) From b3c1c8342cf336b949b849579bce76b2de83cfde Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Tue, 21 Apr 2015 19:16:03 +0200 Subject: [PATCH 129/210] Revert "Revert roofile update for Locale-Country." This reverts commit 91d6b6ef07fc9915dcb2ca8ed0147118615b690d. --- config/rootfiles/common/Locale-Country | 63 ++++++++++++++++++++------ 1 file changed, 50 insertions(+), 13 deletions(-) diff --git a/config/rootfiles/common/Locale-Country b/config/rootfiles/common/Locale-Country index bbe51eee7..0ed312f43 100644 --- a/config/rootfiles/common/Locale-Country +++ b/config/rootfiles/common/Locale-Country @@ -1,13 +1,50 @@ -#usr/lib/perl5/site_perl/5.12.3/Locale -usr/lib/perl5/site_perl/5.12.3/Locale/Constants.pm -usr/lib/perl5/site_perl/5.12.3/Locale/Constants.pod -usr/lib/perl5/site_perl/5.12.3/Locale/Country.pm -usr/lib/perl5/site_perl/5.12.3/Locale/Country.pod -usr/lib/perl5/site_perl/5.12.3/Locale/Currency.pm -usr/lib/perl5/site_perl/5.12.3/Locale/Currency.pod -usr/lib/perl5/site_perl/5.12.3/Locale/Language.pm -usr/lib/perl5/site_perl/5.12.3/Locale/Language.pod -usr/lib/perl5/site_perl/5.12.3/Locale/Script.pm -usr/lib/perl5/site_perl/5.12.3/Locale/Script.pod -#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Locale-Codes -#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Locale-Codes/.packlist +#usr/lib/perl5/5.12.3/Locale/Codes +usr/lib/perl5/5.12.3/Locale/Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes.pod +usr/lib/perl5/5.12.3/Locale/Codes/API.pod +usr/lib/perl5/5.12.3/Locale/Codes/Changes.pod +usr/lib/perl5/5.12.3/Locale/Codes/Constants.pm +usr/lib/perl5/5.12.3/Locale/Codes/Constants.pod +usr/lib/perl5/5.12.3/Locale/Codes/Country.pm +usr/lib/perl5/5.12.3/Locale/Codes/Country.pod +usr/lib/perl5/5.12.3/Locale/Codes/Country_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/Country_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/Currency.pm +usr/lib/perl5/5.12.3/Locale/Codes/Currency.pod +usr/lib/perl5/5.12.3/Locale/Codes/Currency_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/Currency_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangExt.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangExt.pod +usr/lib/perl5/5.12.3/Locale/Codes/LangExt_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangExt_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangFam.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangFam.pod +usr/lib/perl5/5.12.3/Locale/Codes/LangFam_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangFam_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangVar.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangVar.pod +usr/lib/perl5/5.12.3/Locale/Codes/LangVar_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/LangVar_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/Language.pm +usr/lib/perl5/5.12.3/Locale/Codes/Language.pod +usr/lib/perl5/5.12.3/Locale/Codes/Language_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/Language_Retired.pm +usr/lib/perl5/5.12.3/Locale/Codes/Script.pm +usr/lib/perl5/5.12.3/Locale/Codes/Script.pod +usr/lib/perl5/5.12.3/Locale/Codes/Script_Codes.pm +usr/lib/perl5/5.12.3/Locale/Codes/Script_Retired.pm +#usr/lib/perl5/5.12.3/i586-linux-thread-multi/auto/Locale +#usr/lib/perl5/5.12.3/i586-linux-thread-multi/auto/Locale/Codes +#usr/lib/perl5/5.12.3/i586-linux-thread-multi/auto/Locale/Codes/.packlist +#usr/share/man/man3/Locale::Codes.3 +#usr/share/man/man3/Locale::Codes::API.3 +#usr/share/man/man3/Locale::Codes::Changes.3 +#usr/share/man/man3/Locale::Codes::Constants.3 +#usr/share/man/man3/Locale::Codes::Country.3 +#usr/share/man/man3/Locale::Codes::Currency.3 +#usr/share/man/man3/Locale::Codes::LangExt.3 +#usr/share/man/man3/Locale::Codes::LangFam.3 +#usr/share/man/man3/Locale::Codes::LangFam_Retired.3 +#usr/share/man/man3/Locale::Codes::LangVar.3 +#usr/share/man/man3/Locale::Codes::Language.3 +#usr/share/man/man3/Locale::Codes::Script.3 From c4e106d181124550af7c9bd81e07e9eee4b985ee Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Tue, 21 Apr 2015 19:16:26 +0200 Subject: [PATCH 130/210] Revert "Revert "perl-Locale-Country: Update country codes to version 3.33."" This reverts commit cbc5a4374fd19c8657792f14813da52b801fd681. --- lfs/Locale-Country | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lfs/Locale-Country b/lfs/Locale-Country index b2c1455ef..02bf7a026 100644 --- a/lfs/Locale-Country +++ b/lfs/Locale-Country @@ -24,7 +24,7 @@ include Config -VER = 2.07 +VER = 3.33 THISAPP = Locale-Codes-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = af0537cc4a882096d0320612c440df6d +$(DL_FILE)_MD5 = bc7496f97889de8504e80addaa0ee40c install : $(TARGET) From a47376207fbce85385dc6086a87d54ec2e6aa0f1 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 21 Apr 2015 19:36:40 +0200 Subject: [PATCH 131/210] ipsec: Always enable support for IKE fragmentation --- html/cgi-bin/vpnmain.cgi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi index 4138f4dea..b25cb6ade 100644 --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -435,6 +435,10 @@ sub writeipsecfiles { } else { print CONF "\tauto=start\n"; } + + # Fragmentation + print CONF "\tfragmentation=yes\n"; + print CONF "\n"; }#foreach key print SECRETS $last_secrets if ($last_secrets); From 0fa8d28e8fe5f6a9a04b8d13b4dc6bb6b1f54c8f Mon Sep 17 00:00:00 2001 From: Alexander Marx Date: Tue, 21 Apr 2015 11:25:29 +0200 Subject: [PATCH 132/210] Squid-accounting: new Version 1.0.3 (graph updates, movedb update) New Version. Now the data is correctly moved to hist table when month has changed. Also the graphs for old month starts by zero. In old version graphdata was started by total amount of bytes. --- lfs/squid-accounting | 4 ++-- src/squid-accounting/accounting.cgi | 21 +++++++++++++-------- src/squid-accounting/acct-lib.pl | 17 ++++++----------- src/squid-accounting/acct.pl | 2 +- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/lfs/squid-accounting b/lfs/squid-accounting index 7eae4fbb6..af7b281e4 100644 --- a/lfs/squid-accounting +++ b/lfs/squid-accounting @@ -9,13 +9,13 @@ include Config -VER = 1.0.2 +VER = 1.0.3 THISAPP = squid-accounting-$(VER) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = squid-accounting -PAK_VER = 4 +PAK_VER = 5 DEPS = "perl-DBI perl-DBD-SQLite perl-File-ReadBackwards perl-PDF-API2 sendEmail" diff --git a/src/squid-accounting/accounting.cgi b/src/squid-accounting/accounting.cgi index eabb0c295..1ec9849eb 100755 --- a/src/squid-accounting/accounting.cgi +++ b/src/squid-accounting/accounting.cgi @@ -907,7 +907,7 @@ sub generatemonthgraph{ my $sth; my $cnt=0; #If we want to show Data from within last 2 months, get DATA from ACCT - if ( ! $grmon < ($mon+1) && $gryear == ($year+1900)){ + if ( $grmon == ($mon)+1 && $gryear == ($year+1900)){ $sth=&ACCT::getmonthgraphdata("ACCT",$from,$till,$grhost); }else{ #If we want to show data from a date older than last two months, use ACCT_HIST @@ -1959,9 +1959,9 @@ END sub viewtablehosts{ $dbh=&ACCT::connectdb; &Header::openbox('100%', 'left', $Lang::tr{'acct hosts'}); - my $mon=$_[0]; - my $year=$_[1]; - my ($from,$till)=&ACCT::getmonth($mon,$year); + my $mon1=$_[0]; + my $year1=$_[1]; + my ($from,$till)=&ACCT::getmonth($mon1,$year1); $count=0; #Menu to display another month print<
$Lang::tr{'encryption'}
@@ -2444,9 +2444,9 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || + -
$flagcode$flagcode$flagcode$country
$flagcode$flagcode$flagcode$country $srcport
$dstport
$ccode$ccode
$key[$s]$key[$s]$key[$s]$key[$s]$key[$s]$value[$s]
$key[$s]$ccode$value[$s]$percent
$ccode$value[$s]$percent