dwb : groff replacement proposal

Cyrille Lefevre cyrille.lefevre-lists at laposte.net
Fri Jul 2 02:51:53 UTC 2010


Hi,

it works w/ a little change for now.
I made it compile under cygwin but more work is needed.
out of the box, makefiles don't install everything :-(
whenever I have time, I'll make it a port... so, you'll
have the possibility to evaluate it.
one "major" problem is than nroff uses nterm definitions,
this would have to be ported to termcap/terminfo or to
convert termcap/terminfo entries to nterm ones ?
one minor problem is that everything has to be rearanged
to match today's file structure :-)

in attachment, you'll find :

dwb.txt : the actual directory listing
faucet.txt : nroff -Tlp -rd4 -rm1 -ry93 -man | col
faucet.ps : troff -man | dpost
faucet2.ps : nroff ... | postprint

faucet.1 is a standard manual page from netpipes.

how do you found the rendering ?

in fact, this remember me the nroff/troff Solaris
package in regard of dpost filter, etc.

Regards,

Cyrille Lefevre
-- 
mailto:Cyrille.Lefevre-lists at laposte.net
-------------- next part --------------
/opt/dwb/bin/
/opt/dwb/bin/.man.swp
/opt/dwb/bin/atoL1
/opt/dwb/bin/checkdoc
/opt/dwb/bin/col
/opt/dwb/bin/diffmk
/opt/dwb/bin/dnroff
/opt/dwb/bin/dpcl
/opt/dwb/bin/dpost
/opt/dwb/bin/dsplit
/opt/dwb/bin/dwbv
/opt/dwb/bin/eqn
/opt/dwb/bin/gc2pic
/opt/dwb/bin/grap
/opt/dwb/bin/hyphen
/opt/dwb/bin/man
/opt/dwb/bin/mm
/opt/dwb/bin/mmt
/opt/dwb/bin/mvt
/opt/dwb/bin/ndx
/opt/dwb/bin/neqn
/opt/dwb/bin/nroff
/opt/dwb/bin/otbl
/opt/dwb/bin/pic
/opt/dwb/bin/picasso
/opt/dwb/bin/picpack
/opt/dwb/bin/ptx
/opt/dwb/bin/subj
/opt/dwb/bin/tbl
/opt/dwb/bin/tc
/opt/dwb/bin/troff
/opt/dwb/lbin/
/opt/dwb/lbin/postscript
/opt/dwb/lbin/postscript/buildtables
/opt/dwb/lbin/postscript/cropmarks
/opt/dwb/lbin/postscript/download
/opt/dwb/lbin/postscript/grabit
/opt/dwb/lbin/postscript/hardcopy
/opt/dwb/lbin/postscript/postbgi
/opt/dwb/lbin/postscript/postdaisy
/opt/dwb/lbin/postscript/postdmd
/opt/dwb/lbin/postscript/postgif
/opt/dwb/lbin/postscript/postio
/opt/dwb/lbin/postscript/postmd
/opt/dwb/lbin/postscript/postplot
/opt/dwb/lbin/postscript/postprint
/opt/dwb/lbin/postscript/postreverse
/opt/dwb/lbin/postscript/posttek
/opt/dwb/lbin/postscript/printfont
/opt/dwb/lbin/postscript/psencoding
/opt/dwb/lbin/postscript/trofftable
/opt/dwb/lib/
/opt/dwb/lib/dwb
/opt/dwb/lib/dwb/deroff
/opt/dwb/lib/dwb/xpand
/opt/dwb/lib/font
/opt/dwb/lib/font/devLatin1
/opt/dwb/lib/font/devLatin1/AB
/opt/dwb/lib/font/devLatin1/AI
/opt/dwb/lib/font/devLatin1/AR
/opt/dwb/lib/font/devLatin1/AX
/opt/dwb/lib/font/devLatin1/B
/opt/dwb/lib/font/devLatin1/BI
/opt/dwb/lib/font/devLatin1/C
/opt/dwb/lib/font/devLatin1/CB
/opt/dwb/lib/font/devLatin1/charlib
/opt/dwb/lib/font/devLatin1/charlib/12
/opt/dwb/lib/font/devLatin1/charlib/14
/opt/dwb/lib/font/devLatin1/charlib/34
/opt/dwb/lib/font/devLatin1/charlib/bx
/opt/dwb/lib/font/devLatin1/charlib/ci
/opt/dwb/lib/font/devLatin1/charlib/DG
/opt/dwb/lib/font/devLatin1/charlib/ff
/opt/dwb/lib/font/devLatin1/charlib/Fi
/opt/dwb/lib/font/devLatin1/charlib/Fl
/opt/dwb/lib/font/devLatin1/charlib/L1
/opt/dwb/lib/font/devLatin1/charlib/LA
/opt/dwb/lib/font/devLatin1/charlib/lc
/opt/dwb/lib/font/devLatin1/charlib/lf
/opt/dwb/lib/font/devLatin1/charlib/LH
/opt/dwb/lib/font/devLatin1/charlib/lH
/opt/dwb/lib/font/devLatin1/charlib/lh
/opt/dwb/lib/font/devLatin1/charlib/LH.example
/opt/dwb/lib/font/devLatin1/charlib/LV
/opt/dwb/lib/font/devLatin1/charlib/ob
/opt/dwb/lib/font/devLatin1/charlib/PC
/opt/dwb/lib/font/devLatin1/charlib/RC
/opt/dwb/lib/font/devLatin1/charlib/rc
/opt/dwb/lib/font/devLatin1/charlib/README
/opt/dwb/lib/font/devLatin1/charlib/rf
/opt/dwb/lib/font/devLatin1/charlib/rH
/opt/dwb/lib/font/devLatin1/charlib/rh
/opt/dwb/lib/font/devLatin1/charlib/Sl
/opt/dwb/lib/font/devLatin1/charlib/sq
/opt/dwb/lib/font/devLatin1/charlib/~=
/opt/dwb/lib/font/devLatin1/CI
/opt/dwb/lib/font/devLatin1/CO
/opt/dwb/lib/font/devLatin1/CW
/opt/dwb/lib/font/devLatin1/CX
/opt/dwb/lib/font/devLatin1/DESC
/opt/dwb/lib/font/devLatin1/GR
/opt/dwb/lib/font/devLatin1/H
/opt/dwb/lib/font/devLatin1/HB
/opt/dwb/lib/font/devLatin1/Hb
/opt/dwb/lib/font/devLatin1/HI
/opt/dwb/lib/font/devLatin1/Hi
/opt/dwb/lib/font/devLatin1/HK
/opt/dwb/lib/font/devLatin1/HL
/opt/dwb/lib/font/devLatin1/HM
/opt/dwb/lib/font/devLatin1/Hr
/opt/dwb/lib/font/devLatin1/HX
/opt/dwb/lib/font/devLatin1/Hx
/opt/dwb/lib/font/devLatin1/I
/opt/dwb/lib/font/devLatin1/KB
/opt/dwb/lib/font/devLatin1/KI
/opt/dwb/lib/font/devLatin1/KR
/opt/dwb/lib/font/devLatin1/KX
/opt/dwb/lib/font/devLatin1/NB
/opt/dwb/lib/font/devLatin1/NI
/opt/dwb/lib/font/devLatin1/NR
/opt/dwb/lib/font/devLatin1/NX
/opt/dwb/lib/font/devLatin1/PA
/opt/dwb/lib/font/devLatin1/PB
/opt/dwb/lib/font/devLatin1/PI
/opt/dwb/lib/font/devLatin1/PX
/opt/dwb/lib/font/devLatin1/R
/opt/dwb/lib/font/devLatin1/S
/opt/dwb/lib/font/devLatin1/S1
/opt/dwb/lib/font/devLatin1/shell.lib
/opt/dwb/lib/font/devLatin1/shell.lib.last
/opt/dwb/lib/font/devLatin1/shell.lib.old
/opt/dwb/lib/font/devLatin1/ZD
/opt/dwb/lib/font/devLatin1/ZI
/opt/dwb/lib/font/devnroff
/opt/dwb/lib/font/devnroff/B
/opt/dwb/lib/font/devnroff/CW
/opt/dwb/lib/font/devnroff/DESC
/opt/dwb/lib/font/devnroff/I
/opt/dwb/lib/font/devnroff/R
/opt/dwb/lib/font/devnroff/S
/opt/dwb/lib/font/devnroff-12
/opt/dwb/lib/font/devnroff-12/B
/opt/dwb/lib/font/devnroff-12/CW
/opt/dwb/lib/font/devnroff-12/DESC
/opt/dwb/lib/font/devnroff-12/I
/opt/dwb/lib/font/devnroff-12/R
/opt/dwb/lib/font/devnroff-12/S
/opt/dwb/lib/font/devopost
/opt/dwb/lib/font/devopost/AB
/opt/dwb/lib/font/devopost/AI
/opt/dwb/lib/font/devopost/AR
/opt/dwb/lib/font/devopost/AX
/opt/dwb/lib/font/devopost/B
/opt/dwb/lib/font/devopost/BI
/opt/dwb/lib/font/devopost/CB
/opt/dwb/lib/font/devopost/charlib
/opt/dwb/lib/font/devopost/charlib/12
/opt/dwb/lib/font/devopost/charlib/14
/opt/dwb/lib/font/devopost/charlib/34
/opt/dwb/lib/font/devopost/charlib/BRACKETS_NOTE
/opt/dwb/lib/font/devopost/charlib/bx
/opt/dwb/lib/font/devopost/charlib/ci
/opt/dwb/lib/font/devopost/charlib/ff
/opt/dwb/lib/font/devopost/charlib/Fi
/opt/dwb/lib/font/devopost/charlib/Fl
/opt/dwb/lib/font/devopost/charlib/L1
/opt/dwb/lib/font/devopost/charlib/L1.map
/opt/dwb/lib/font/devopost/charlib/Lb
/opt/dwb/lib/font/devopost/charlib/Lb.map
/opt/dwb/lib/font/devopost/charlib/lc
/opt/dwb/lib/font/devopost/charlib/lf
/opt/dwb/lib/font/devopost/charlib/LH
/opt/dwb/lib/font/devopost/charlib/lh
/opt/dwb/lib/font/devopost/charlib/LH.map
/opt/dwb/lib/font/devopost/charlib/ob
/opt/dwb/lib/font/devopost/charlib/rc
/opt/dwb/lib/font/devopost/charlib/README
/opt/dwb/lib/font/devopost/charlib/rf
/opt/dwb/lib/font/devopost/charlib/rh
/opt/dwb/lib/font/devopost/charlib/Sl
/opt/dwb/lib/font/devopost/charlib/sq
/opt/dwb/lib/font/devopost/charlib/~=
/opt/dwb/lib/font/devopost/CI
/opt/dwb/lib/font/devopost/CO
/opt/dwb/lib/font/devopost/CW
/opt/dwb/lib/font/devopost/CX
/opt/dwb/lib/font/devopost/DESC
/opt/dwb/lib/font/devopost/GR
/opt/dwb/lib/font/devopost/H
/opt/dwb/lib/font/devopost/HB
/opt/dwb/lib/font/devopost/Hb
/opt/dwb/lib/font/devopost/HI
/opt/dwb/lib/font/devopost/Hi
/opt/dwb/lib/font/devopost/Hr
/opt/dwb/lib/font/devopost/HX
/opt/dwb/lib/font/devopost/Hx
/opt/dwb/lib/font/devopost/I
/opt/dwb/lib/font/devopost/KB
/opt/dwb/lib/font/devopost/KI
/opt/dwb/lib/font/devopost/KR
/opt/dwb/lib/font/devopost/KX
/opt/dwb/lib/font/devopost/NB
/opt/dwb/lib/font/devopost/NI
/opt/dwb/lib/font/devopost/NR
/opt/dwb/lib/font/devopost/NX
/opt/dwb/lib/font/devopost/PA
/opt/dwb/lib/font/devopost/PB
/opt/dwb/lib/font/devopost/PI
/opt/dwb/lib/font/devopost/PX
/opt/dwb/lib/font/devopost/R
/opt/dwb/lib/font/devopost/S
/opt/dwb/lib/font/devopost/S1
/opt/dwb/lib/font/devopost/ZD
/opt/dwb/lib/font/devopost/ZI
/opt/dwb/lib/font/devpcl
/opt/dwb/lib/font/devpcl/B
/opt/dwb/lib/font/devpcl/BI
/opt/dwb/lib/font/devpcl/CB
/opt/dwb/lib/font/devpcl/CW
/opt/dwb/lib/font/devpcl/DESC
/opt/dwb/lib/font/devpcl/G
/opt/dwb/lib/font/devpcl/GI
/opt/dwb/lib/font/devpcl/GR
/opt/dwb/lib/font/devpcl/H
/opt/dwb/lib/font/devpcl/HB
/opt/dwb/lib/font/devpcl/HI
/opt/dwb/lib/font/devpcl/HK
/opt/dwb/lib/font/devpcl/HL
/opt/dwb/lib/font/devpcl/HM
/opt/dwb/lib/font/devpcl/HX
/opt/dwb/lib/font/devpcl/I
/opt/dwb/lib/font/devpcl/LO
/opt/dwb/lib/font/devpcl/PA
/opt/dwb/lib/font/devpcl/PI
/opt/dwb/lib/font/devpcl/R
/opt/dwb/lib/font/devpcl/S
/opt/dwb/lib/font/devpcl/S1
/opt/dwb/lib/font/devpcl/S2
/opt/dwb/lib/font/devpcl/S3
/opt/dwb/lib/font/devpost
/opt/dwb/lib/font/devpost/a1
/opt/dwb/lib/font/devpost/a2
/opt/dwb/lib/font/devpost/AB
/opt/dwb/lib/font/devpost/AI
/opt/dwb/lib/font/devpost/AR
/opt/dwb/lib/font/devpost/AX
/opt/dwb/lib/font/devpost/B
/opt/dwb/lib/font/devpost/BI
/opt/dwb/lib/font/devpost/C
/opt/dwb/lib/font/devpost/C1
/opt/dwb/lib/font/devpost/c1
/opt/dwb/lib/font/devpost/C2
/opt/dwb/lib/font/devpost/c2
/opt/dwb/lib/font/devpost/C3
/opt/dwb/lib/font/devpost/c3
/opt/dwb/lib/font/devpost/CB
/opt/dwb/lib/font/devpost/charlib
/opt/dwb/lib/font/devpost/charlib/12
/opt/dwb/lib/font/devpost/charlib/14
/opt/dwb/lib/font/devpost/charlib/34
/opt/dwb/lib/font/devpost/charlib/bx
/opt/dwb/lib/font/devpost/charlib/ci
/opt/dwb/lib/font/devpost/charlib/DG
/opt/dwb/lib/font/devpost/charlib/ff
/opt/dwb/lib/font/devpost/charlib/Fi
/opt/dwb/lib/font/devpost/charlib/Fl
/opt/dwb/lib/font/devpost/charlib/L1
/opt/dwb/lib/font/devpost/charlib/LA
/opt/dwb/lib/font/devpost/charlib/lc
/opt/dwb/lib/font/devpost/charlib/lf
/opt/dwb/lib/font/devpost/charlib/LH
/opt/dwb/lib/font/devpost/charlib/lH
/opt/dwb/lib/font/devpost/charlib/lh
/opt/dwb/lib/font/devpost/charlib/LH.example
/opt/dwb/lib/font/devpost/charlib/LV
/opt/dwb/lib/font/devpost/charlib/ob
/opt/dwb/lib/font/devpost/charlib/PC
/opt/dwb/lib/font/devpost/charlib/RC
/opt/dwb/lib/font/devpost/charlib/rc
/opt/dwb/lib/font/devpost/charlib/README
/opt/dwb/lib/font/devpost/charlib/rf
/opt/dwb/lib/font/devpost/charlib/rH
/opt/dwb/lib/font/devpost/charlib/rh
/opt/dwb/lib/font/devpost/charlib/Sl
/opt/dwb/lib/font/devpost/charlib/sq
/opt/dwb/lib/font/devpost/charlib/~=
/opt/dwb/lib/font/devpost/CI
/opt/dwb/lib/font/devpost/CO
/opt/dwb/lib/font/devpost/CW
/opt/dwb/lib/font/devpost/CX
/opt/dwb/lib/font/devpost/DESC
/opt/dwb/lib/font/devpost/devpost.mk
/opt/dwb/lib/font/devpost/F1
/opt/dwb/lib/font/devpost/F2
/opt/dwb/lib/font/devpost/F3
/opt/dwb/lib/font/devpost/F4
/opt/dwb/lib/font/devpost/F5
/opt/dwb/lib/font/devpost/F6
/opt/dwb/lib/font/devpost/G1
/opt/dwb/lib/font/devpost/G2
/opt/dwb/lib/font/devpost/G3
/opt/dwb/lib/font/devpost/G4
/opt/dwb/lib/font/devpost/Gb
/opt/dwb/lib/font/devpost/Gi
/opt/dwb/lib/font/devpost/GR
/opt/dwb/lib/font/devpost/Gr
/opt/dwb/lib/font/devpost/Gx
/opt/dwb/lib/font/devpost/H
/opt/dwb/lib/font/devpost/H1
/opt/dwb/lib/font/devpost/H2
/opt/dwb/lib/font/devpost/H3
/opt/dwb/lib/font/devpost/H4
/opt/dwb/lib/font/devpost/H5
/opt/dwb/lib/font/devpost/H6
/opt/dwb/lib/font/devpost/H7
/opt/dwb/lib/font/devpost/H8
/opt/dwb/lib/font/devpost/HB
/opt/dwb/lib/font/devpost/Hb
/opt/dwb/lib/font/devpost/HC
/opt/dwb/lib/font/devpost/HI
/opt/dwb/lib/font/devpost/Hi
/opt/dwb/lib/font/devpost/HK
/opt/dwb/lib/font/devpost/HL
/opt/dwb/lib/font/devpost/HM
/opt/dwb/lib/font/devpost/Hr
/opt/dwb/lib/font/devpost/HX
/opt/dwb/lib/font/devpost/Hx
/opt/dwb/lib/font/devpost/HY
/opt/dwb/lib/font/devpost/I
/opt/dwb/lib/font/devpost/KB
/opt/dwb/lib/font/devpost/KI
/opt/dwb/lib/font/devpost/KR
/opt/dwb/lib/font/devpost/KX
/opt/dwb/lib/font/devpost/LINKFILE
/opt/dwb/lib/font/devpost/MU
/opt/dwb/lib/font/devpost/NB
/opt/dwb/lib/font/devpost/NI
/opt/dwb/lib/font/devpost/NR
/opt/dwb/lib/font/devpost/NX
/opt/dwb/lib/font/devpost/OA
/opt/dwb/lib/font/devpost/OB
/opt/dwb/lib/font/devpost/OI
/opt/dwb/lib/font/devpost/OX
/opt/dwb/lib/font/devpost/PA
/opt/dwb/lib/font/devpost/PB
/opt/dwb/lib/font/devpost/PI
/opt/dwb/lib/font/devpost/PX
/opt/dwb/lib/font/devpost/R
/opt/dwb/lib/font/devpost/S
/opt/dwb/lib/font/devpost/S1
/opt/dwb/lib/font/devpost/shell.lib
/opt/dwb/lib/font/devpost/shell.lib.bak
/opt/dwb/lib/font/devpost/ZD
/opt/dwb/lib/font/devpost/ZI
/opt/dwb/lib/font/postscript
/opt/dwb/lib/macros
/opt/dwb/lib/macros/an
/opt/dwb/lib/macros/color
/opt/dwb/lib/macros/csmacros
/opt/dwb/lib/macros/mmn
/opt/dwb/lib/macros/mmt
/opt/dwb/lib/macros/pictures
/opt/dwb/lib/macros/ptx
/opt/dwb/lib/macros/safe
/opt/dwb/lib/macros/strings.mm
/opt/dwb/lib/macros/v
/opt/dwb/lib/macros/view
/opt/dwb/lib/manprog
/opt/dwb/lib/nterm
/opt/dwb/lib/nterm/tab.2631
/opt/dwb/lib/nterm/tab.2631-c
/opt/dwb/lib/nterm/tab.2631-e
/opt/dwb/lib/nterm/tab.300
/opt/dwb/lib/nterm/tab.300-12
/opt/dwb/lib/nterm/tab.300S
/opt/dwb/lib/nterm/tab.300s
/opt/dwb/lib/nterm/tab.300S-12
/opt/dwb/lib/nterm/tab.300s-12
/opt/dwb/lib/nterm/tab.37
/opt/dwb/lib/nterm/tab.382
/opt/dwb/lib/nterm/tab.4000A
/opt/dwb/lib/nterm/tab.4000a
/opt/dwb/lib/nterm/tab.450
/opt/dwb/lib/nterm/tab.450-12
/opt/dwb/lib/nterm/tab.832
/opt/dwb/lib/nterm/tab.8510
/opt/dwb/lib/nterm/tab.lp
/opt/dwb/lib/nterm/tab.lpr
/opt/dwb/lib/nterm/tab.man
/opt/dwb/lib/nterm/tab.tn300
/opt/dwb/lib/nterm/tab.X
/opt/dwb/lib/nterm/tab.X97
/opt/dwb/lib/nterm/tab.X97ni
/opt/dwb/lib/nterm/tab.X97test
/opt/dwb/lib/postscript
/opt/dwb/lib/postscript/aps.ps
/opt/dwb/lib/postscript/banner.ps
/opt/dwb/lib/postscript/baseline.ps
/opt/dwb/lib/postscript/color.ps
/opt/dwb/lib/postscript/cropmarks.ps
/opt/dwb/lib/postscript/dpost.ps
/opt/dwb/lib/postscript/draw.ps
/opt/dwb/lib/postscript/fatcourier.ps
/opt/dwb/lib/postscript/forms.ps
/opt/dwb/lib/postscript/grabit.ps
/opt/dwb/lib/postscript/hardcopy.ps
/opt/dwb/lib/postscript/Nroundpage.ps
/opt/dwb/lib/postscript/postbgi.ps
/opt/dwb/lib/postscript/postdaisy.ps
/opt/dwb/lib/postscript/postdmd.ps
/opt/dwb/lib/postscript/postgif.ps
/opt/dwb/lib/postscript/postmd.ps
/opt/dwb/lib/postscript/postnprint.ps
/opt/dwb/lib/postscript/postplot.ps
/opt/dwb/lib/postscript/postprint.ps
/opt/dwb/lib/postscript/posttek.ps
/opt/dwb/lib/postscript/printfont.ps
/opt/dwb/lib/postscript/ps.requests
/opt/dwb/lib/postscript/ps_include.ps
/opt/dwb/lib/postscript/roundpage.ps
/opt/dwb/lib/postscript/setbaud.ps
/opt/dwb/lib/postscript/shade.ps
/opt/dwb/lib/postscript/trofftable.ps
/opt/dwb/lib/postscript/unbind.ps
/opt/dwb/lib/raster
/opt/dwb/lib/raster/rastpcl
/opt/dwb/lib/raster/rastpcl/B.10
/opt/dwb/lib/raster/rastpcl/B.11
/opt/dwb/lib/raster/rastpcl/B.12
/opt/dwb/lib/raster/rastpcl/B.14
/opt/dwb/lib/raster/rastpcl/B.16
/opt/dwb/lib/raster/rastpcl/B.18
/opt/dwb/lib/raster/rastpcl/B.20
/opt/dwb/lib/raster/rastpcl/B.22
/opt/dwb/lib/raster/rastpcl/B.24
/opt/dwb/lib/raster/rastpcl/B.28
/opt/dwb/lib/raster/rastpcl/B.36
/opt/dwb/lib/raster/rastpcl/B.6
/opt/dwb/lib/raster/rastpcl/B.7
/opt/dwb/lib/raster/rastpcl/B.8
/opt/dwb/lib/raster/rastpcl/B.9
/opt/dwb/lib/raster/rastpcl/BI.10
/opt/dwb/lib/raster/rastpcl/BI.11
/opt/dwb/lib/raster/rastpcl/BI.12
/opt/dwb/lib/raster/rastpcl/BI.14
/opt/dwb/lib/raster/rastpcl/BI.16
/opt/dwb/lib/raster/rastpcl/BI.18
/opt/dwb/lib/raster/rastpcl/BI.20
/opt/dwb/lib/raster/rastpcl/BI.22
/opt/dwb/lib/raster/rastpcl/BI.24
/opt/dwb/lib/raster/rastpcl/BI.28
/opt/dwb/lib/raster/rastpcl/BI.36
/opt/dwb/lib/raster/rastpcl/BI.6
/opt/dwb/lib/raster/rastpcl/BI.7
/opt/dwb/lib/raster/rastpcl/BI.8
/opt/dwb/lib/raster/rastpcl/BI.9
/opt/dwb/lib/raster/rastpcl/CW.10
/opt/dwb/lib/raster/rastpcl/CW.11
/opt/dwb/lib/raster/rastpcl/CW.12
/opt/dwb/lib/raster/rastpcl/CW.14
/opt/dwb/lib/raster/rastpcl/CW.16
/opt/dwb/lib/raster/rastpcl/CW.18
/opt/dwb/lib/raster/rastpcl/CW.20
/opt/dwb/lib/raster/rastpcl/CW.22
/opt/dwb/lib/raster/rastpcl/CW.24
/opt/dwb/lib/raster/rastpcl/CW.28
/opt/dwb/lib/raster/rastpcl/CW.36
/opt/dwb/lib/raster/rastpcl/CW.6
/opt/dwb/lib/raster/rastpcl/CW.7
/opt/dwb/lib/raster/rastpcl/CW.8
/opt/dwb/lib/raster/rastpcl/CW.9
/opt/dwb/lib/raster/rastpcl/GR.10
/opt/dwb/lib/raster/rastpcl/GR.11
/opt/dwb/lib/raster/rastpcl/GR.12
/opt/dwb/lib/raster/rastpcl/GR.14
/opt/dwb/lib/raster/rastpcl/GR.16
/opt/dwb/lib/raster/rastpcl/GR.18
/opt/dwb/lib/raster/rastpcl/GR.20
/opt/dwb/lib/raster/rastpcl/GR.22
/opt/dwb/lib/raster/rastpcl/GR.24
/opt/dwb/lib/raster/rastpcl/GR.28
/opt/dwb/lib/raster/rastpcl/GR.36
/opt/dwb/lib/raster/rastpcl/GR.6
/opt/dwb/lib/raster/rastpcl/GR.7
/opt/dwb/lib/raster/rastpcl/GR.8
/opt/dwb/lib/raster/rastpcl/GR.9
/opt/dwb/lib/raster/rastpcl/H.10
/opt/dwb/lib/raster/rastpcl/H.11
/opt/dwb/lib/raster/rastpcl/H.12
/opt/dwb/lib/raster/rastpcl/H.14
/opt/dwb/lib/raster/rastpcl/H.16
/opt/dwb/lib/raster/rastpcl/H.18
/opt/dwb/lib/raster/rastpcl/H.20
/opt/dwb/lib/raster/rastpcl/H.22
/opt/dwb/lib/raster/rastpcl/H.24
/opt/dwb/lib/raster/rastpcl/H.28
/opt/dwb/lib/raster/rastpcl/H.36
/opt/dwb/lib/raster/rastpcl/H.6
/opt/dwb/lib/raster/rastpcl/H.7
/opt/dwb/lib/raster/rastpcl/H.8
/opt/dwb/lib/raster/rastpcl/H.9
/opt/dwb/lib/raster/rastpcl/HI.10
/opt/dwb/lib/raster/rastpcl/HI.11
/opt/dwb/lib/raster/rastpcl/HI.12
/opt/dwb/lib/raster/rastpcl/HI.14
/opt/dwb/lib/raster/rastpcl/HI.16
/opt/dwb/lib/raster/rastpcl/HI.18
/opt/dwb/lib/raster/rastpcl/HI.20
/opt/dwb/lib/raster/rastpcl/HI.22
/opt/dwb/lib/raster/rastpcl/HI.24
/opt/dwb/lib/raster/rastpcl/HI.28
/opt/dwb/lib/raster/rastpcl/HI.36
/opt/dwb/lib/raster/rastpcl/HI.6
/opt/dwb/lib/raster/rastpcl/HI.7
/opt/dwb/lib/raster/rastpcl/HI.8
/opt/dwb/lib/raster/rastpcl/HI.9
/opt/dwb/lib/raster/rastpcl/I.10
/opt/dwb/lib/raster/rastpcl/I.11
/opt/dwb/lib/raster/rastpcl/I.12
/opt/dwb/lib/raster/rastpcl/I.14
/opt/dwb/lib/raster/rastpcl/I.16
/opt/dwb/lib/raster/rastpcl/I.18
/opt/dwb/lib/raster/rastpcl/I.20
/opt/dwb/lib/raster/rastpcl/I.22
/opt/dwb/lib/raster/rastpcl/I.24
/opt/dwb/lib/raster/rastpcl/I.28
/opt/dwb/lib/raster/rastpcl/I.36
/opt/dwb/lib/raster/rastpcl/I.6
/opt/dwb/lib/raster/rastpcl/I.7
/opt/dwb/lib/raster/rastpcl/I.8
/opt/dwb/lib/raster/rastpcl/I.9
/opt/dwb/lib/raster/rastpcl/LO.36
/opt/dwb/lib/raster/rastpcl/PA.10
/opt/dwb/lib/raster/rastpcl/PA.11
/opt/dwb/lib/raster/rastpcl/PA.12
/opt/dwb/lib/raster/rastpcl/PA.14
/opt/dwb/lib/raster/rastpcl/PA.16
/opt/dwb/lib/raster/rastpcl/PA.18
/opt/dwb/lib/raster/rastpcl/PA.20
/opt/dwb/lib/raster/rastpcl/PA.22
/opt/dwb/lib/raster/rastpcl/PA.24
/opt/dwb/lib/raster/rastpcl/PA.28
/opt/dwb/lib/raster/rastpcl/PA.36
/opt/dwb/lib/raster/rastpcl/PA.6
/opt/dwb/lib/raster/rastpcl/PA.7
/opt/dwb/lib/raster/rastpcl/PA.8
/opt/dwb/lib/raster/rastpcl/PA.9
/opt/dwb/lib/raster/rastpcl/PI.10
/opt/dwb/lib/raster/rastpcl/PI.11
/opt/dwb/lib/raster/rastpcl/PI.12
/opt/dwb/lib/raster/rastpcl/PI.14
/opt/dwb/lib/raster/rastpcl/PI.16
/opt/dwb/lib/raster/rastpcl/PI.18
/opt/dwb/lib/raster/rastpcl/PI.20
/opt/dwb/lib/raster/rastpcl/PI.22
/opt/dwb/lib/raster/rastpcl/PI.24
/opt/dwb/lib/raster/rastpcl/PI.28
/opt/dwb/lib/raster/rastpcl/PI.36
/opt/dwb/lib/raster/rastpcl/PI.6
/opt/dwb/lib/raster/rastpcl/PI.7
/opt/dwb/lib/raster/rastpcl/PI.8
/opt/dwb/lib/raster/rastpcl/PI.9
/opt/dwb/lib/raster/rastpcl/R.10
/opt/dwb/lib/raster/rastpcl/R.11
/opt/dwb/lib/raster/rastpcl/R.12
/opt/dwb/lib/raster/rastpcl/R.14
/opt/dwb/lib/raster/rastpcl/R.16
/opt/dwb/lib/raster/rastpcl/R.18
/opt/dwb/lib/raster/rastpcl/R.20
/opt/dwb/lib/raster/rastpcl/R.22
/opt/dwb/lib/raster/rastpcl/R.24
/opt/dwb/lib/raster/rastpcl/R.28
/opt/dwb/lib/raster/rastpcl/R.36
/opt/dwb/lib/raster/rastpcl/R.6
/opt/dwb/lib/raster/rastpcl/R.7
/opt/dwb/lib/raster/rastpcl/R.8
/opt/dwb/lib/raster/rastpcl/R.9
/opt/dwb/lib/raster/rastpcl/RASTERDATA
/opt/dwb/lib/raster/rastpcl/RASTERLIST
/opt/dwb/lib/raster/rastpcl/S.10
/opt/dwb/lib/raster/rastpcl/S.11
/opt/dwb/lib/raster/rastpcl/S.12
/opt/dwb/lib/raster/rastpcl/S.14
/opt/dwb/lib/raster/rastpcl/S.16
/opt/dwb/lib/raster/rastpcl/S.18
/opt/dwb/lib/raster/rastpcl/S.20
/opt/dwb/lib/raster/rastpcl/S.22
/opt/dwb/lib/raster/rastpcl/S.24
/opt/dwb/lib/raster/rastpcl/S.28
/opt/dwb/lib/raster/rastpcl/S.36
/opt/dwb/lib/raster/rastpcl/S.6
/opt/dwb/lib/raster/rastpcl/S.7
/opt/dwb/lib/raster/rastpcl/S.8
/opt/dwb/lib/raster/rastpcl/S.9
/opt/dwb/lib/raster/rastpcl/S1.10
/opt/dwb/lib/raster/rastpcl/S1.11
/opt/dwb/lib/raster/rastpcl/S1.12
/opt/dwb/lib/raster/rastpcl/S1.14
/opt/dwb/lib/raster/rastpcl/S1.16
/opt/dwb/lib/raster/rastpcl/S1.18
/opt/dwb/lib/raster/rastpcl/S1.20
/opt/dwb/lib/raster/rastpcl/S1.22
/opt/dwb/lib/raster/rastpcl/S1.24
/opt/dwb/lib/raster/rastpcl/S1.28
/opt/dwb/lib/raster/rastpcl/S1.36
/opt/dwb/lib/raster/rastpcl/S1.6
/opt/dwb/lib/raster/rastpcl/S1.7
/opt/dwb/lib/raster/rastpcl/S1.8
/opt/dwb/lib/raster/rastpcl/S1.9
/opt/dwb/lib/raster/rastpcl/S2.10
/opt/dwb/lib/raster/rastpcl/S2.11
/opt/dwb/lib/raster/rastpcl/S2.12
/opt/dwb/lib/raster/rastpcl/S2.14
/opt/dwb/lib/raster/rastpcl/S2.16
/opt/dwb/lib/raster/rastpcl/S2.18
/opt/dwb/lib/raster/rastpcl/S2.20
/opt/dwb/lib/raster/rastpcl/S2.22
/opt/dwb/lib/raster/rastpcl/S2.24
/opt/dwb/lib/raster/rastpcl/S2.28
/opt/dwb/lib/raster/rastpcl/S2.36
/opt/dwb/lib/raster/rastpcl/S2.6
/opt/dwb/lib/raster/rastpcl/S2.7
/opt/dwb/lib/raster/rastpcl/S2.8
/opt/dwb/lib/raster/rastpcl/S2.9
/opt/dwb/lib/raster/rastpcl/S3.10
/opt/dwb/lib/raster/rastpcl/S3.11
/opt/dwb/lib/raster/rastpcl/S3.12
/opt/dwb/lib/raster/rastpcl/S3.14
/opt/dwb/lib/raster/rastpcl/S3.16
/opt/dwb/lib/raster/rastpcl/S3.18
/opt/dwb/lib/raster/rastpcl/S3.20
/opt/dwb/lib/raster/rastpcl/S3.22
/opt/dwb/lib/raster/rastpcl/S3.24
/opt/dwb/lib/raster/rastpcl/S3.28
/opt/dwb/lib/raster/rastpcl/S3.36
/opt/dwb/lib/raster/rastpcl/S3.6
/opt/dwb/lib/raster/rastpcl/S3.7
/opt/dwb/lib/raster/rastpcl/S3.8
/opt/dwb/lib/raster/rastpcl/S3.9
/opt/dwb/lib/term
/opt/dwb/lib/tmac
/opt/dwb/lib/tmac/hyphen.tex
/opt/dwb/lib/tmac/tmac.an
/opt/dwb/lib/tmac/tmac.color
/opt/dwb/lib/tmac/tmac.cs
/opt/dwb/lib/tmac/tmac.m
/opt/dwb/lib/tmac/tmac.pictures
/opt/dwb/lib/tmac/tmac.ps
/opt/dwb/lib/tmac/tmac.s
/opt/dwb/lib/tmac/tmac.safe
/opt/dwb/lib/tmac/tmac.scover
/opt/dwb/lib/tmac/tmac.sdisp
/opt/dwb/lib/tmac/tmac.skeep
/opt/dwb/lib/tmac/tmac.srefs
/opt/dwb/lib/tmac/tmac.v
/opt/dwb/lib/tmac/tmac.view
/opt/dwb/man/
/opt/dwb/man/man1
/opt/dwb/man/man1/atoL1.1
/opt/dwb/man/man1/atoL1sim.1
/opt/dwb/man/man1/buildtables.1
/opt/dwb/man/man1/checkdoc.1
/opt/dwb/man/man1/col.1
/opt/dwb/man/man1/cropmarks.1
/opt/dwb/man/man1/diffmk.1
/opt/dwb/man/man1/download.1
/opt/dwb/man/man1/dpost.1
/opt/dwb/man/man1/dsplit.1
/opt/dwb/man/man1/dwbv.1
/opt/dwb/man/man1/eqn.1
/opt/dwb/man/man1/gc2pic.1
/opt/dwb/man/man1/grabit.1
/opt/dwb/man/man1/grap.1
/opt/dwb/man/man1/hardcopy.1
/opt/dwb/man/man1/hyphen.1
/opt/dwb/man/man1/L1toa.1
/opt/dwb/man/man1/laserbar.1
/opt/dwb/man/man1/mm.1
/opt/dwb/man/man1/mmt.1
/opt/dwb/man/man1/mvt.1
/opt/dwb/man/man1/neqn.1
/opt/dwb/man/man1/nroff.1
/opt/dwb/man/man1/otbl.1
/opt/dwb/man/man1/pic.1
/opt/dwb/man/man1/picasso.1
/opt/dwb/man/man1/picpack.1
/opt/dwb/man/man1/postbgi.1
/opt/dwb/man/man1/postdaisy.1
/opt/dwb/man/man1/postdmd.1
/opt/dwb/man/man1/postgif.1
/opt/dwb/man/man1/postio.1
/opt/dwb/man/man1/postmd.1
/opt/dwb/man/man1/postnprint.1
/opt/dwb/man/man1/postplot.1
/opt/dwb/man/man1/postprint.1
/opt/dwb/man/man1/postreverse.1
/opt/dwb/man/man1/posttek.1
/opt/dwb/man/man1/printfont.1
/opt/dwb/man/man1/psencoding.1
/opt/dwb/man/man1/tbl.1
/opt/dwb/man/man1/tc.1
/opt/dwb/man/man1/troff.1
/opt/dwb/man/man1/trofftable.1
/opt/dwb/man/man5
/opt/dwb/man/man5/eqnchar.5
/opt/dwb/man/man5/font.5
/opt/dwb/man/man5/man.5
/opt/dwb/man/man5/mcolor.5
/opt/dwb/man/man5/mcs.5
/opt/dwb/man/man5/mm.5
/opt/dwb/man/man5/mpictures.5
/opt/dwb/man/man5/mpm.5
/opt/dwb/man/man5/mps.5
/opt/dwb/man/man5/ms.5
/opt/dwb/man/man5/msafe.5
/opt/dwb/man/man5/mv.5
/opt/dwb/man/man5/mview.5
/opt/dwb/man/man5/nterm.5
/opt/dwb/man/man5/troff.5
/opt/dwb/man/man5/xpand.5
/opt/dwb/pub/
/opt/dwb/pub/cateqnchar
/opt/dwb/pub/DWB3.3.ps
/opt/dwb/pub/eqnchar
/opt/dwb/pub/i300eqnchar
/opt/dwb/pub/latin1.add.ps
/opt/dwb/pub/mm.notes.ps
/opt/dwb/pub/post.add.ps
/opt/dwb/pub/posteqnchar
/opt/dwb/pub/tbl.notes.ps
/opt/dwb/pub/terminals
-------------- next part --------------



       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))       UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 22228888,,,, 1111999999998888))))	       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))



       NNNNAAAAMMMMEEEE
	    faucet - a fixture for a BSD network pipe

	    netpipes 4.2


       SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
	    ffffaaaauuuucccceeeetttt _p_o_r_t	(--------iiiinnnn|--------oooouuuutttt|--------eeeerrrrrrrr|--------ffffdddd _n)+ [--------oooonnnncccceeee] [--------vvvveeeerrrrbbbboooosssseeee]
	    [--------qqqquuuuiiiieeeetttt] [--------uuuunnnniiiixxxx] [--------ffffoooorrrreeeeiiiiggggnnnnhhhhoooosssstttt _a_d_d_r] [--------ffffoooorrrreeeeiiiiggggnnnnppppoooorrrrtttt _p_o_r_t]
	    [--------llllooooccccaaaallllhhhhoooosssstttt _a_d_d_r] [--------sssseeeerrrriiiiaaaallll] [--------ddddaaaaeeeemmmmoooonnnn] [--------sssshhhhuuuuttttddddoooowwwwnnnn (r|w) ]
	    [--------ppppiiiiddddffffiiiilllleeee _f_i_l_e_n_a_m_e] [--------nnnnoooorrrreeeeuuuusssseeeeaaaaddddddddrrrr] [--------bbbbaaaacccckkkklllloooogggg _n]
	    [----[iiii][oooo][eeee][####_3[,_4[,_5...]]][vvvv][1111][qqqq][uuuu][dddd][ssss]] [----pppp
	    _f_o_r_e_i_g_n-_p_o_r_t] [----hhhh _f_o_r_e_i_g_n-_h_o_s_t] [----HHHH	_l_o_c_a_l-_h_o_s_t] _c_o_m_m_a_n_d _a_r_g_s


       DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
	    ffffaaaauuuucccceeeetttt attempts to provide the functionality of pipes over
	    the	network.  It behaves as	the server end of a
	    server-client connection.  When used with hhhhoooosssseeee((((1111)))) it can
	    function as	a replacement for

	    tar	-cf - .	| rsh other "cd	destdir; tar -xf -"

	    ffffaaaauuuucccceeeetttt and hhhhoooosssseeee are	especially useful when you don't have
	    easy non-interactive access	to the destination account (such
	    as a root account where .rhosts are	a bad idea).

	    ffffaaaauuuucccceeeetttt creates a BSD socket, binds it to the _p_o_r_t specified
	    on the command line, and listens for connections.

	    Every time ffffaaaauuuucccceeeetttt gets a connection	it exec(2)s _c_o_m_m_a_n_d and
	    its	_a_r_g_s with stdin, stdout, stderr, and/or	arbitrary file
	    descriptors	redirected according to	the --------iiiinnnn --------oooouuuutttt --------eeeerrrrrrrr
	    --------ffffdddd _n flags.  ffffaaaauuuucccceeeetttt also automagically shuts down	the
	    unused half	of the connection if only --------iiiinnnn is specified or
	    if only --------oooouuuutttt and/or --------eeeerrrrrrrr are specified.  See the --------sssshhhhuuuutttt----
	    ddddoooowwwwnnnn option	for more information.


       OOOOPPPPTTTTIIIIOOOONNNNSSSS
	    If the --------oooonnnncccceeee flag is specified, ffffaaaauuuucccceeeetttt will exec(2) the
	    _c_o_m_m_a_n_d instead of fork(2)ing and exec(2)ing. --------oooonnnncccceeee means
	    that the network pipe is only good for one shot.

	    The	--------vvvveeeerrrrbbbboooosssseeee flag specifies that ffffaaaauuuucccceeeetttt should print infor-
	    mation about connecting hosts.  This information includes
	    the	numeric	host address, host names, and foreign port num-
	    bers.  The --------qqqquuuuiiiieeeetttt flag specifies that ffffaaaauuuucccceeeetttt should NOT
	    print such info.  --------qqqquuuuiiiieeeetttt is the default.

	    The	--------uuuunnnniiiixxxx flag specifies that the _p_o_r_t is not an internet
	    port number	or service name, but instead it	is a file name



       Page 1					      (last mod. 2/4/93)






       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))       UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 22228888,,,, 1111999999998888))))	       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))



	    for	a UNIX domain socket.

	    The	--------ffffoooorrrreeeeiiiiggggnnnnhhhhoooosssstttt option specifies that faucet should reject
	    all	connections that do not	come from the _h_o_s_t machine.
	    Similarly --------ffffoooorrrreeeeiiiiggggnnnnppppoooorrrrtttt specifies that faucet should reject
	    all	connections that are not bound on their	local machine to
	    the	_p_o_r_t argument.	The above two options allow a crude form
	    of authentication.	Note that on UNIX systems only root can
	    bind a socket to a port number below 1024.

	    PPPPlllleeeeaaaasssseeee do not be fooled into thinking this makes faucet
	    secure.  There are ways to spoof IP	numbers	that have been
	    known for years (but only publicized recently).  I do think
	    that this method is	safe from DNS spoofs, but you probably
	    should have	 nnnnoooossssppppooooooooffff oooonnnn in /etc/host.conf anyway.

	    --------llllooooccccaaaallllhhhhoooosssstttt	specifies that the listening socket should be
	    bound to a specific	internet address on this host.	This is
	    only useful	on hosts with several internet numbers.

	    --------ddddaaaaeeeemmmmoooonnnn specifies that the	faucet should disassociate from
	    the	controlling terminal once it has started listening on
	    the	socket.	 This is done using the	setsid() system	call.
	    If you don't have setsid on	your system, it	uses the stan-
	    dard ``close all file descriptors, ioctl TIOCNOTTY,	fork()
	    and	parent exit'' sequence.

	    --------sssshhhhuuuuttttddddoooowwwwnnnn is used to turn the (normally) bi-directional
	    socket into	a uni-directional one If the `r' is present,
	    then ffffaaaauuuucccceeeetttt	will close half	the connection to make it a
	    read-only socket.  If we try to write, it will fail.  If the
	    remote connection tries to read, it	will percieve the socket
	    as closed.	If instead the `w' is present, then ffffaaaauuuucccceeeetttt will
	    close the other half of the	connection to make it a
	    write-only socket.	If we try to read, we will percieve the
	    socket as closed.  If the remote connection	tries to write,
	    it will fail.  The default behavior	is to leave both halves
	    open, however the shutdown of half of the connection is
	    automagically done by certain combinations of the --------iiiinnnn,
	    --------oooouuuutttt, and --------eeeerrrrrrrr flags.  To	suppress their automagic behav-
	    ior	you can	use (respectively) --fd	0, --fd	1, and --fd 2.

	    --------sssshhhhuuuuttttddddoooowwwwnnnn may not be used with some internet servers (such
	    as certain httpds) because they interpret the closing of one
	    half of the	connection as a	close on the entire connection.
	    This warning applies to --------iiiinnnn, --------oooouuuutttt, and --------eeeerrrrrrrr.

	    --------sssseeeerrrriiiiaaaallll causes faucet to wait for one child to finish
	    before accepting any more connections.  Serialization is a
	    very crude form of critical-section	management.

	    --------ppppiiiiddddffffiiiilllleeee _f_i_l_e_n_a_m_e commands	ffffaaaauuuucccceeeetttt to write	its process id



       Page 2					      (last mod. 2/4/93)






       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))       UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 22228888,,,, 1111999999998888))))	       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))



	    into _f_i_l_e_n_a_m_e.  This is useful when	faucet is part of a
	    larger system and a	controlling process might want to kill
	    the	faucet.	 --------ppppiiiiddddffffiiiilllleeee functions properly when using the
	    --------ddddaaaaeeeemmmmoooonnnn  option.

	    By default,	ffffaaaauuuucccceeeetttt performs	a

	    setsockopt(fd, SOL_SOCKET, SO_REUSEADDR...)

	    which prevents the ``Address in use'' problem that
	    ``plagued''	netpipes versions 4.0 and earlier.  --------nnnnoooorrrreeeeuuuusssseeee----
	    aaaaddddddddrrrr tells faucet to skip that system call,	and revert to
	    pre-4.1 behavior.  Without this call, the socket is	not
	    always available for immediate reuse after the faucet exits.

	    --------bbbbaaaacccckkkklllloooogggg _n	allows you to specify the second parameter to
	    the	listen(2) system call.	The default is 5.


       SSSSHHHHOOOORRRRTTTT FFFFLLLLAAAAGGGGSSSS
	    To reduce the typing requirements for arguments (and to pay
	    homage to the age-old tradition of UNIX cryptotaxonomy) I
	    have added some short forms	of the flags.  Here is a corre-
	    spondence chart:

	    box; |lw(0.4i)|lw(1.2i)| |cBw(0.4i)|lBw(1.2i)|.
	    Short     Long iiii	iiiinnnn oooo	oooouuuutttt eeee	 eeeerrrrrrrr ####_n	  ffffdddd_n
	    vvvv	 vvvveeeerrrrbbbboooosssseeee 1111    oooonnnncccceeee qqqq	qqqquuuuiiiieeeetttt uuuu	   uuuunnnniiiixxxx	dddd    ddddaaaaeeeemmmmoooonnnn
	    ssss	 sssseeeerrrriiiiaaaallll	pppp    ffffoooorrrreeeeiiiiggggnnnnppppoooorrrrtttt hhhh    ffffoooorrrreeeeiiiiggggnnnnhhhhoooosssstttt HHHH    llllooooccccaaaallllhhhhoooosssstttt

	    For	example, the following command

	    example$ faucet 3000 --out --verbose --once	--foreignhost client echo blah

	    could be written

	    example$ faucet 3000 -ov1h client echo blah

	    The	----pppp, ----hhhh,	and ----HHHH flags take an argument, but the flags may
	    be grouped into one	argument.  They	then grab the arguments
	    they need from the command line in the order the flags
	    appear.

	    example$ faucet 3000 -hpHov1 client	2999 example-le2 echo blah

	    Whereas each --------ffffdddd word flag	required an individual descrip-
	    tor, the ----####	character flag can take	multiple descriptors.
	    The	following are equivalent:

	    example$ faucet 3000 --fd 0	--fd 1 --verbose --once	echo blah
	    example$ faucet 3000 -#0,1v	--once echo blah
	    example$ faucet 3000 -v1#0,1 echo blah



       Page 3					      (last mod. 2/4/93)






       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))       UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 22228888,,,, 1111999999998888))))	       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))



	    example$ faucet 3000 -#0,1v1 echo blah

	    Note that you have to pay attention	when using the ----#### char-
	    acter flag and the ----1111 character flag in the	same argument.
	    Also, remember the special shutdown(2) semantics of	----iiiinnnn and
	    ----oooouuuutttt.


       EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
	    This creates a TCP-IP socket on the	local machine bound to
	    port 3000.

	    example$ faucet 3000 --out --verbose tar -cf - .

	    Every time some process (from any machine) attempts	to con-
	    nect to port 3000 on this machine the ffffaaaauuuucccceeeetttt program will
	    fork(2) a process and the child will exec(2) a

	    tar	-cf - .

	    The	--------oooouuuutttt option means that	the output of the child	process
	    will have been redirected into the new socket retrieved by
	    the	accept(2) call.	 --------vvvveeeerrrrbbbboooosssseeee means that faucet will print
	    information	about each new connection.

	    This creates a UNIX	domain socket in the current directory

	    example$ faucet u-socket --out --err --once	--unix csh -c \
		 "dd if=angio.pgm | funky.perl.script"

	    The	--------oooouuuutttt --------eeeerrrrrrrr option means that stdout and stderr	will be
	    redirected in the child process.  The --------oooonnnncccceeee option	means
	    that the faucet will not fork(2), but exec(2) the process so
	    that only the first	process	can connect to the u-socket
	    before the faucet becomes unavailable.

	    This example listens on a socket until the first connection
	    comes through.  It then spawns a bidirectional copy	that is
	    similar to hose -slave.

	    faucet 3000	-1v --fd 3 sh -c 'cat <&3 & cat	>&3 ; sockdown 3'


       SSSSEEEEEEEE AAAALLLLSSSSOOOO
	    netpipes (1), hose (1), sockdown (1), getpeername (1),
	    socket (2),	bind (2), listen (2), accept (2), shutdown (2),
	    services (5), gethostbyaddr	(3)


       BBBBUUUUGGGGSSSS
	    There is a problem with almost every OS I have used	faucet
	    on.	 Ports are sometimes not recycled swiftly enough.  If



       Page 4					      (last mod. 2/4/93)






       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))       UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 22228888,,,, 1111999999998888))))	       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))



	    you	kill one faucet	and try	to start another that wants to
	    listen on the same port you	will often see pre-4.1 faucets
	    print the following	warning	over and over again:

	    faucet: Address 3000 in use, sleeping 10.
	    faucet: Trying again . . .

	    but	you won't actually be able to connect(2) to that port
	    (with hhhhoooosssseeee(1), for example)	because	you'll get a ``connec-
	    tion refused''.

	    There was also an experimental Linux kernel	that NEVER recy-
	    cled ports (I quickly switched back	to my old kernel).

	    I have been	informed that this is a	side-effect of the TCP
	    specification and that I should use	the SO_REUSEADDR option
	    to work around it, so I do.


       NNNNOOOOTTTTEEEESSSS
	    Doubtless there are	bugs in	this program, especially in the
	    unix domain	socket portions.  I welcome problem reports and
	    would like to make these programs as "clean" (no leftover
	    files, sockets) as possible.

	    4.1	added --------bbbbaaaacccckkkklllloooogggg	and --------nnnnoooorrrreeeeuuuusssseeeeaaaaddddddddrrrr.  --------nnnnoooorrrreeeeuuuusssseeeeaaaaddddddddrrrr
	    reflects the fact that 4.1 also added the SO_REUSEADDR
	    socket option as the default.

	    4.0	made the full-word arguments use -- like many GNU pro-
	    grams.  They are still available with a single - for
	    backward-compatibility.

	    3.1	added the single-character flags and the -pidfile
	    option.  It	also switched to the setsid(2) system call to
	    detach itself from the process group for the -daemon flag.
	    I've been hacking at UNIX for years, but there are still
	    some things	that I never really learned, and others	that
	    have been changing.	 I need	to buy a book.

	    Release 2.3	added support for multi-homed hosts: hosts with
	    multiple internet numbers (such as gateways).  Before this
	    faucet assumed that	the first internet number that gethost-
	    byname returned was	the only one.  --------ffffoooorrrreeeeiiiiggggnnnnhhhhoooosssstttt authentica-
	    tion was weakened by this inadequacy so I beefed up	the
	    algorithms.	 --------ffffoooorrrreeeeiiiiggggnnnnhhhhoooosssstttt will accept a connection	from any
	    of the internet numbers associated with the	host name.


       CCCCRRRREEEEDDDDIIIITTTTSSSS
	    Thanks to Steve Clift <clift at ml.csiro.au> for SGI (SysV)
	    patches.



       Page 5					      (last mod. 2/4/93)






       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))       UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((OOOOccccttttoooobbbbeeeerrrr 22228888,,,, 1111999999998888))))	       FFFFAAAAUUUUCCCCEEEETTTT((((1111))))



	    Many people	complained about the old way of	specifying the
	    command.  Thanks to	whoever	gave me	the alternative	which is
	    now	implemented.  It is much better.

	    Randy Fischer <fischer at ucet.ufl.edu> finally prodded me into
	    fixing the old lame	non-handling of	multi-homed host.

	    Thanks to all who suggested	I use setsid() for -daemon mode.

	    Thanks to the Spring 1996 UF CIS consulting	staff
	    <consult at cis.ufl.edu> for pointing out the sys_errlist[]
	    declaration	conflict on FreeBSD.  Sometimes	I hate Sun
	    Microsystems.

	    Thanks to Daniel O'Connor
	    <doconnor at adam.ist.flinders.edu.au>	for suggesting the -pid-
	    file flag.

	    Big	thanks to Joe Traister <traister at gate.net> for his sig-
	    nal	handling patches, strerror surrogate, and other	assorted
	    hacks.

	    Thanks to Thomas A.	Endo <tendo at netcom.com>	for dropping an
	    SO_REUSEADDR patch in my lap.  Otherwise I wouldn't	have
	    gotten to it till 2001.


       CCCCOOOOPPPPYYYYRRRRIIIIGGGGHHHHTTTT
	    Copyright (C) 1992-98 Robert Forsman

	    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 2 of the License, or (at your option) any later ver-
	    sion.

	    This program is distributed	in the hope that it will be use-
	    ful, but WITHOUT ANY WARRANTY; without even	the implied war-
	    ranty of MERCHANTABILITY or	FITNESS	FOR A PARTICULAR PUR-
	    POSE.  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, write to the Free
	    Software Foundation, Inc., 675 Mass	Ave, Cambridge,	MA
	    02139, USA.


       AAAAUUUUTTTTHHHHOOOORRRR
	    Robert Forsman
	     thoth at purplefrog.com
	     Purple Frog Software
	     http://web.purplefrog.com/~thoth/



       Page 6					      (last mod. 2/4/93)




More information about the freebsd-arch mailing list