Article 2805 of comp.sources.unix:
Submitted-By: peter@ifm.liu.se (Peter Eriksson)
Posting-Number: Volume 29, Issue 125
Archive-Name: pidentd-2.7/part02

#!/bin/sh
# This is part 02 of a multipart archive.
save_IFS="${IFS}"
IFS="${IFS}:"
gettext_dir=FAILED
locale_dir=FAILED
first_param="$1"
for dir in $PATH
do
  if test "$gettext_dir" = FAILED && test -f $dir/gettext \
     && ($dir/gettext --version >/dev/null 2>&1)
  then
    set `$dir/gettext --version 2>&1`
    if test "$3" = GNU
    then
      gettext_dir=$dir
    fi
  fi
  if test "$locale_dir" = FAILED && test -f $dir/shar \
     && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
  then
    locale_dir=`$dir/shar --print-text-domain-dir`
  fi
done
IFS="$save_IFS"
if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
then
  echo=echo
else
  TEXTDOMAINDIR=$locale_dir
  export TEXTDOMAINDIR
  TEXTDOMAIN=sharutils
  export TEXTDOMAIN
  echo="$gettext_dir/gettext -s"
fi
touch -am 1231235999 $$.touch >/dev/null 2>&1
if test ! -f 1231235999 && test -f $$.touch; then
  shar_touch=touch
else
  shar_touch=:
  echo
  $echo 'WARNING: not restoring timestamps.  Consider getting and'
  $echo "installing GNU \`touch', distributed in GNU File Utilities..."
  echo
fi
rm -f 1231235999 $$.touch
#
if mkdir _sh08724; then
  $echo 'x -' 'creating lock directory'
else
  $echo 'failed to create lock directory'
  exit 1
fi
# ============= pidentd-2.7/READMEs/README.DES ==============
if test ! -d 'pidentd-2.7'; then
  $echo 'x -' 'creating directory' 'pidentd-2.7'
  mkdir 'pidentd-2.7'
fi
if test ! -d 'pidentd-2.7/READMEs'; then
  $echo 'x -' 'creating directory' 'pidentd-2.7/READMEs'
  mkdir 'pidentd-2.7/READMEs'
fi
if test -f 'pidentd-2.7/READMEs/README.DES' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.DES' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.DES' '(binary)'
  sed 's/^X//' << 'SHAR_EOF' | uudecode &&
begin 600 pidentd-2.7/READMEs/README.DES
M5&AI<R!214%$344N1$53(&9I;&4@<VAO=6QD('!R;V)A8FQY(&)E(&-L96%N
M960@=7`N($)U="!F;W(@86X@86QP:&$*<F5L96%S92!O9B!0:61E;G1D(&ET
M(&UI9VAT(&1O(&9O<B!N;W<N+B`Z+2D*"D%L<V\@<V5E('1H92!F:6QE($1%
M4RU$3T,@*&EN8VQU9&5D(&QA<W0@:6X@=&AI<R!F:6QE*2!F;W(@;6]R90II
M;F9O<FUA=&EO;BP@97-P96-I86QL>2!R96=A<F1I;F<@=&AE(&9O<FUA="!O
M9B!T:&4@:61E;G1D+FME>2!F:6QE+@I$;VXG="!B96QI979E(&%L;"!)('-A
M>2!B96QO=R!A8F]U="!I="X@1$53+41/0R!I<R!M;W)E(&-O<G)E8W0N($DG
M;&P*=W)I=&4@8F5T=&5R(&1O8W5M96YT871I;VX@9F]R(&$@0F5T82!V97)I
M<V]N(&]F(%!I9&5N=&0@,BXS("XN+@H*1&\@:6YS=&%L;"!A;B!E;F-R>7!T
M:6YG('9E<G-I;VX@;V8@4&ED96YT9"!Y;W4G;&P@;F5E9"!T;R!C<F5A=&4@
M80HQ,#(T(&)Y=&4@8FEG(&9I;&4@(B]E=&,O:61E;G1D+FME>2(@=&AA="!S
M:&]U;&0@8V]N=&%I;B!T:&4@1$53(&ME>0I0:61E;G1D('-H;W5L9"!U<V4N
M($D@8W)E871E9"!O;F4@=VET:#H*"@ED9"!I9CTO8FEN+W!A<W-W9"!O9CTO
M971C+VED96YT9"YK97D@8G,],3`R-"!C;W5N=#TQ"@IW:&EC:"!S965M960@
M=&\@=V]R:RX@0G5T('1H96X@86=A:6XL($DG;2!N;W0@<F5A;&QY(&EN=&\@
M=&AI<R!C<GEP=&\*=&AI;F<N($%N>6)O9'D@:VYO=R!T:&4@82!C;W)R96-T
M('=A>2!T;R!G96YE<F%T92!A($1%4R!K97D_"@I4:&5N('5S92!T:&4@)VED
M96-R>7!T)R!C;VUM86YD('1O(&1E8W)Y<'0@=&\@:61E;G1I9FEE<B!R971U
M<FYE9"X*"EEO=2!C86X@=&5S="!Y;W5R(%!I9&5N=&0@8GD@:6YS=&%L;&EN
M9R!I="!A;F0@=&AE;B!T>7!I;F<Z"@H)=&5L;F5T(&QY<V%T;W(N;&EU+G-E
M(#$Q-"!\(&ED96-R>7!T"@I4:&%T('-H;W5L9"!T<F%N<VQA=&4@=&AE(&5N
M8W)Y<'1E9"!I9&5N=&EF:65R(')E='5R;F5D(&EN=&\*<V]M92!U<V%B;&4@
M:6YF;W)M871I;VX@*&1A=&4L('5I9"P@;&]C86P@86YD(&9O<F5I9VX@<&]R
M="!A;F0@861D<F5S<V5S*2X*"B]0971E<B!%<FEK<W-O;B`\<&5N0&QY<V%T
M;W(N;&EU+G-E/BP@,C,@1F5B(#$Y.30*"@I"96QO=R!F;VQL;W=S('1H92!O
M<FEG:6YA;"!L971T97(Z"@H*1G)O;2!D;VQI9V5Z0&QI>"YP;VQY=&5C:&YI
M<75E+F9R(%=E9"!&96(@,C,@,30Z,#DZ-#$@,3DY-`I&;&%G<SH@,#`P,#`P
M,#`P,#`Q"E)E8V5I=F5D.B!F<F]M('!O;'ET96-H;FEQ=64N<&]L>71E8VAN
M:7%U92YF<B`H<F]O=$!P;VQY=&5C:&YI<75E+G!O;'ET96-H;FEQ=64N9G(@
M6S$R.2XQ,#0N,S`N,5TI(&)Y(&=O9&]T+FQY<V%T;W(N;&EU+G-E("@X+C8N
M-BY"971A,B\X+C8N-BY"971A,BD@=VET:"!%4TU44"!I9"!/04$Q,C$Y.2!F
M;W(@/'!E;D!L>7-A=&]R+FQI=2YS93X[(%=E9"P@,C,@1F5B(#$Y.30@,30Z
M,#DZ,C(@*S`Q,#`*4F5C96EV960Z(&9R;VT@;&EX+G!O;'ET96-H;FEQ=64N
M9G(@*&QI>"YP;VQY=&5C:&YI<75E+F9R(%LQ,CDN,3`T+C$Q+C)=*2!B>2!P
M;VQY=&5C:&YI<75E+G!O;'ET96-H;FEQ=64N9G(@*#@N-BXT+S@N-BXT*2!W
M:71H(%--5%`@:60@3T%!,#,R-#8@9F]R(#QP96Y`;'ES871O<BYL:74N<V4^
M.R!7960L(#(S($9E8B`Q.3DT(#$T.C$V.C4V("LP,3`P"E)E8V5I=F5D.B!B
M>2!L:7@N<&]L>71E8VAN:7%U92YF<B`H-2XV-2\U+C8U8RU)1$$M<&]L>71E
M8VAN:7%U92D*"6ED($%!,3`Y,C<[(%=E9"P@,C,@1F5B(#$Y.30@,30Z,#<Z
M-38@*S`Q,#`*1&%T93H@5V5D+"`R,R!&96(@,3DY-"`Q-#HP-SHU-B`K,#$P
M,`I&<F]M.B!D;VQI9V5Z0&QI>"YP;VQY=&5C:&YI<75E+F9R("A$86UI96X@
M1&]L:6=E>BD*365S<V%G92U)9#H@/#DT,#(R,S$S,#<N04$Q,#DR-T!L:7@N
M<&]L>71E8VAN:7%U92YF<CX*5&\Z('!E;D!L>7-A=&]R+FQI=2YS90I3=6)J
M96-T.B!293H@<&ED96YT9`I+97EW;W)D<SH@<&ED96YT9"UC<GEP=`H*"CY9
M97,L('!L96%S92!S96YD(&UE('1H92!D:69F<R$@22!W;W5L9"!V97)Y(&UU
M8V@@;&EK92!T;R!I;G1E9W)A=&4*/G1H96T@:6YT;R!T:&4@<W1A;F1A<F0@
M<&ED96YT9"!D:7-T<FEB=71I;VXA"@I)('=A<R!H;W!I;F<@>6]U('=O=6QD
M('-A>2!T:&%T+@H*5&AI<R!I<R!T:&4@<&%T8V@L(&%L;VYG('=I=&@@82!L
M:7-T(&]F('1H:6YG<R!T:&%T($D@<VAO=6QD(&AA=F4@9&]N92`Z+2D*"@I(
M;W<@=&\@:6YS=&%L;"!T:&4@<&%T8V@Z"EY>7EY>7EY>7EY>7EY>7EY>7EY>
M7EY>7EX*+2!%>'1R86-T('1H92!P:61E;G1D+3(N,B!D:7)E8W1O<GD@9G)O
M;2!I=',@9&ES=')I8G5T:6]N+@H*+2!-;W9E('1H:7,@9FEL92!I;G1O('1H
M92!P:61E;G1D+3(N,B!D:7)E8W1O<GD@=6YD97(@=&AE(&YA;64*("`B<&%T
M8V@M8W)Y<'1O(BX*"BT@1V\@=&\@=&AE('!I9&5N=&0M,BXR(&1I<F5C=&]R
M>2!A;F0@='EP93H@('!A=&-H("UP(#QP871C:"YC<GEP=&\*"BT@<F5M;W9E
M('1H92!P871C:"YC<GEP=&\@9FEL92X*"@I(;W<@=&\@8V]M<&EL93H*7EY>
M7EY>7EY>7EY>7EY>"BT@5')A;G-F97(@;&EB9&5S+G1A<BXY,BTQ,"TQ,RY:
M(&9R;VT*("`@("`@("`@9G1P+F9U;F5T+F9I.B]P=6(O8W)Y<'0O;&EB9&5S
M+VQI8F1E<RYT87(N.3(M,3`M,3,N6@H@(&-R96%T92!A('!I9&5N=&0M,BXR
M+VQI8F1E<R!D:7)E8W1O<GD@86YD(&5X=')A8W0@=&AE('1A<B!F:6QE(&EN
M"B`@=&AA="!D:7)E8W1O<GDN"@HM(%1Y<&4@(FUA:V4B(&EN('1H92!L:6)D
M97,@9&ER96-T;W)Y+@H*+2!4>7!E(")M86ME(#QO<W1Y<&4^(B!I;B!T:&4@
M<&ED96YT9"TR+C(@9&ER96-T;W)Y+@H*"E1H:6YG<R!T;R!D;SH@("`H268@
M>6]U(&EN<VES="P@22!C86X@9&\@<V]M92!O9B!T:&5S92!M>7-E;&8N*0I>
M7EY>7EY>7EY>7EY>"BT@1&]C=6UE;G0@=&AE(&-R>7!T;R!O<'1I;VX@86YD
M(&AO=R!I="!U<V5S(&QI8F1E<R!I;B!T:&4@24Y35$%,3"!F:6QE+@H*+2!$
M;R!S;VUE=&AI;F<@=&\@(VEN8VQU9&4@/&1E<RYH/B!A;F0@;&EN:R!W:71H
M("UL9&5S(&EF(&QI8F1E<R!I<PH@(&%L<F5A9'D@:6YS=&%L;&5D(&]N('1H
M92!M86-H:6YE("AS964@;&EB9&5S+TE.4U1!3$Q!5$E/3BDN"@HM($-H86YG
M92!T:&4@;6%N('!A9V4@=&\@9&]C=6UE;G0@=&AE("U#(&]P=&EO;B!A;F0@
M=&AE(&9O<FUA="!O9B!T:&4*("!K97D@9FEL92X*"BT@1&]C=6UE;G0@=&AE
M(&ED96-R>7!T(&-O;6UA;F0N("!4:&4@;W5T<'5T(&9I96QD<R!A<F4Z"B`@
M("`\9&%T93X@/'5I9#X@/&QO8V%L+4E0/B`\;&]C86PM<&]R=#X@/')E;6]T
M92U)4#X@/')E;6]T92UP;W)T/@H*+2!#:&%N9V4@=&AE(%1/1$\@9FEL92!T
M;R!R96UO=F4@=&AE(&QI;F4@86)O=70@96YC<GEP=&EO;BX*"BT@5&5L;"!T
M:&4@=7-E<B!T;R!C;VUP87)E('1H92!O=71P=71S(&]F(")M86ME(B!A;F0@
M(FUA:V4@?"!I9&5C<GEP="(@:6X*("!T97-T9&ER("AI;B!)3E-404Q,*2X*
M"BT@0VAE8VL@=&AE('!O<G1A8FEL:71Y(&]F('1H92!E;F-R>7!T:6]N(&-O
M9&4N("`H97-P+B!O;B`V-"UB:70@;6%C:&EN97,I+@H*+2!);G1E9W)A=&4@
M=&AE(&UA:V4@:6X@;&EB9&5S(&EN=&\@=&AE(&UA:6X@36%K969I;&4N"@HM
M(%)E=V]R:R!T:&4@(G=H>2UE;F-R>7!T(B!D;V-U;65N="X@(%-O;64@<&%R
M=',@;V8@:70@<VAO=6QD(&)E(&EN('1H90H@(&UA;B!P86=E+@H*+2!&:6YD
M(&]U="!H;W<@<V5C=7)E('1H92!#0D,@96YC<GEP=&EO;B!W:71H;W5T(&%N
M($E6(')E86QL>2!I<RX*"BT@8W)Y<'1O+F@@<VAO=6QD(&AA=F4@86X@(VEF
M9&5F($M%65]&24Q%("-E;F1I9B!A<F]U;F0@:70N"@HM(%1E<W0@=&AE(&UA
M:V4@=VET:&]U="!T:&4@8W)Y<'1O(&]P=&EO;BX@($1I9"!)(&)R96%K('-O
M;65T:&EN9R`_"@H*"CT]/3T@1$53+41/0R`]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/0H*"D9R;VT@9&]L:6=E>D!L:7@N<&]L>71E8VAN:7%U92YF<B!4:'4@36%R
M(#,Q(#$S.C4U.C`Y(#$Y.30*1FQA9W,Z(#`P,#`P,#`P,#`P,0I296-E:79E
M9#H@9G)O;2!P;VQY=&5C:&YI<75E+G!O;'ET96-H;FEQ=64N9G(@*')O;W1`
M<&]L>71E8VAN:7%U92YP;VQY=&5C:&YI<75E+F9R(%LQ,CDN,3`T+C,P+C%=
M*2!B>2!G;V1O="YL>7-A=&]R+FQI=2YS92`H."XV+C<O."XV+C8I('=I=&@@
M15--5%`@:60@3D%!,#0V,CD@9F]R(#QP96Y`;'ES871O<BYL:74N<V4^.R!4
M:'4L(#,Q($UA<B`Q.3DT(#$S.C4U.C`Q("LP,C`P"E)E8V5I=F5D.B!F<F]M
M(&QI>"YP;VQY=&5C:&YI<75E+F9R("AL:7@N<&]L>71E8VAN:7%U92YF<B!;
M,3(Y+C$P-"XQ,2XR72D@8GD@<&]L>71E8VAN:7%U92YP;VQY=&5C:&YI<75E
M+F9R("@X+C8N-"\X+C8N-"D@=VET:"!33510(&ED($]!03$X-SDU(&9O<B`\
M<&5N0&QY<V%T;W(N;&EU+G-E/CL@5&AU+"`S,2!-87(@,3DY-"`Q-#HP-#HT
M-R`K,#(P,`I296-E:79E9#H@8GD@;&EX+G!O;'ET96-H;FEQ=64N9G(@*#4N
M-C4O-2XV-6,M241!+7!O;'ET96-H;FEQ=64I"@EI9"!!03(V-34T.R!4:'4L
M(#,Q($UA<B`Q.3DT(#$S.C4U.C$Y("LP,C`P"D1A=&4Z(%1H=2P@,S$@36%R
M(#$Y.30@,3,Z-34Z,3D@*S`R,#`*1G)O;3H@9&]L:6=E>D!L:7@N<&]L>71E
M8VAN:7%U92YF<B`H1&%M:65N($1O;&EG97HI"DUE<W-A9V4M260Z(#PY-#`S
M,S$Q,34U+D%!,C8U-31`;&EX+G!O;'ET96-H;FEQ=64N9G(^"E1O.B!P96Y`
M;'ES871O<BYL:74N<V4*4W5B:F5C=#H@<&ED96YT9"TR+C-A;'!H83$*"DD@
M:&%V92!J=7-T(')E860@=&AE(%)%041-12Y$15,@9FEL92!F<F]M('1H92!A
M;'!H82!R96QE87-E(&]F"G!I9&5N=&0N("!))VT@869R86ED($D@:&%V92!N
M;W0@8F5E;B!C;&5A<B!I;B!D97-C<FEB:6YG('1H92!F;W)M870@;V8*=&AE
M(&ME>2!F:6QE+@H*5VAA="!F;VQL;W=S(&ES(&$@;6]R92!T:&]R;W5G:"!D
M97-C<FEP=&EO;BX@($9E96P@9G)E92!T;R!A<VL@;64@9F]R"FUO<F4@9&5T
M86EL<RP@22!A;2!N;W0@=&]O(&=O;V0@870@=W)I=&EN9R!D;V-U;65N=&%T
M:6]N+@H*/CX^"EEO=2!W<FET92!T:&%T('1H92!K97D@9FEL92!H87,@=&\@
M8F4@,3`R-"!B>71E<R!L;VYG+B`@5&AI<R!I<R!N;W0*<75I=&4@=')U92X@
M(%1H92!K97D@9FEL92!I<R!A('1E>'0@9FEL92X@($5A8V@@;&EN92!O9B!T
M97AT(&ES(&$@:V5Y+@I4:&4@,3`R-"UB>71E(&QI;6ET(&ES('1H92!M87AI
M;75M(&QE;F=T:"!O9B!A(&ME>2P@<V\@96%C:"!L:6YE(&EN"G1H92!K97D@
M9FEL92!M=7-T(&)E(&QE<W,@=&AA;B`Q,#(T(&-H87)A8W1E<G,@:6X@;&5N
M9W1H("AO<B!M87EB90HQ,#(S*2X*"E1H92!K97D@9FEL92!I<R!U<V5D(&)Y
M('1H92!P<F]G<F%M<R!A<R!F;VQL;W=S.@H*5&AE('!I9&5N=&0@9&%E;6]N
M('=I;&P@=7-E('1H92!F:7)S="!L:6YE(&]F('1H92!F:6QE(&%S(&$@:V5Y
M('1O"F5N8W)Y<'0@:71S(')E<W!O;G-E<RP@86YD(&EG;F]R92!T:&4@<F5S
M="!O9B!T:&4@9FEL92X*"E1H92!D96-R>7!T:6]N('5T:6QI='D@*&ED96-R
M>7!T*2!W:6QL('1R>2!E=F5R>2!K97D@:6X@=&AE(&9I;&4@;VX*96%C:"!E
M;F-R>7!T960@<&%C:V5T+"!U;G1I;"!I="!F:6YD<R!T:&4@<FEG:'0@;VYE
M+B`@*$1E8W)Y<'1E9`IP86-K971S(&AA=F4@82!C:&5C:W-U;2P@<V\@=&AE
M(&1E8W)Y<'1I;VX@=71I;&ET>2!K;F]W<R!W:&5N(&ET(&AA<PIF;W5N9"!T
M:&4@<FEG:'0@:V5Y+BD*"E1H92!I;G1E;F1E9"!U<V4@;V8@=&AE(&ME>2!F
M:6QE(&ES(&%S(&9O;&QO=W,Z"@I7:&5N('EO=2!W86YT('1O(&-H86YG92!Y
M;W5R(&ME>2P@>6]U(&%D9"!A(&YE=R!L:6YE(&%T('1H92!T;W`@;V8@=&AE
M"FME>2!F:6QE+B`@4VEN8V4@=&AI<R!I<R!A('1E>'0@9FEL92!A;F0@=&AE
M(&QI;F4@8V%N(&)E('%U:71E(&QO;F<L"FET(&UI9VAT(&)E(&$@9V]O9"!I
M9&5A('1O(&EN8VQU9&4@=&AE(&1A=&4L('1H92!N86UE(&]F('1H92!M86-H
M:6YE+`IA;F0@;6%Y8F4@>6]U<B!O=VX@;F%M92X@($1O;B=T(&9O<F=E="!T
M;R!A9&0@82!G;V]D(&YU;6)E<B!O9B!R86YD;VT*8VAA<F%C=&5R<RP@;W(@
M>6]U<B!K97D@=VEL;"!B92!T;V\@96%S>2!T;R!F:6YD+B`@5&AE(&1A96UO
M;B!W:6QL('5S90IT:&4@;F5W(&ME>2!A<R!S;V]N(&%S('EO=2!S879E('1H
M92!F:6QE+B`@:61E8W)Y<'0@=VEL;"!A;'-O(&MN;W<*86)O=70@=&AI<R!N
M97<@:V5Y+"!B=70@:70@=VEL;"!S=&EL;"!B92!A8FQE('1O('1R>2!T:&4@
M;VQD(&]N97,@87,*=V5L;"X@(%1H=7,@:68@>6]U(&AA=F4@=&\@9&5C<GEP
M="!A;B!O;&0@;&]G+"!I="!W:6QL('=O<FL*=')A;G-P87)E;G1L>2X*"D%N
M(&]T:&5R(&QI;6ET871I;VX@;V8@=&AE(&ME>2!F:6QE(&ES('1H870@;VYL
M>2!T:&4@,3`R-"!F:7-T(&ME>7,*87)E('1A:V5N(&EN=&\@86-C;W5N="!B
M>2!I9&5C<GEP="X@($%N9"!S:6YC92!T:&4@9&5C<GEP=&EO;B!U=&EL:71Y
M"G1R:65S(&%L;"!T:&4@:V5Y<R!O;B!E=F5R>2!P86-K970@=&AA="!I="!C
M86YN;W0@9&5C<GEP="P@:70@=VEL;"!B90IS;&]W960@9&]W;B!B>2!A(&)I
M9R!K97D@9FEL92X@(%-O(&ET(&ES(&$@9V]O9"!I9&5A('1O(')E;6]V92!V
M97)Y"F]L9"!K97ES(&9R;VT@=&AI<R!F:6QE+@H*06QS;RP@:68@>6]U(&AA
M=F4@<V5V97)A;"!M86-H:6YE<RP@:70@:7,@8F5T=&5R('1O('5S92!A(&1I
M9F9E<F5N=`IK97D@;VX@96%C:"!M86-H:6YE+"!I;B!C87-E(&]N92!O9B!T
M:&4@;6%C:&EN97,@:7,@8V]M<')O;6ES960L(&%N9`IY;W4@8V%N(&%D9"!T
M:&4@:V5Y<R!F;W(@86QL('1H92!M86-H:6YE<R!O;B!Y;W5R(&-E;G1R86P@
M*&UO<W0*<V5C=7)E*2!M86-H:6YE('-O('1H870@>6]U(&-A;B!D96-R>7!T
M(&ED96YT(')E<W!O;G-E<R!F<F]M(&%L;"!Y;W5R"FUA8VAI;F5S(&)Y(')U
M;FYI;F<@:61E8W)Y<'0@;VX@=&AA="!C96YT<F%L(&UA8VAI;F4N"@I!;B!E
M>&%M<&QE.@H*070@9FER<W0L(&UY(&ME>2!F:6QE(&QO;VME9"!L:6ME('1H
M:7,Z"BTM+2T*,3DY-"XP,BXR,"!T:71U<RYP;VQY=&5C:&YI<75E+F9R(&1O
M;&EG97H@-C(T,34S,3(V,S4Q,C0Q-38R"BTM+2T*5&AE('-E<FEE<R!O9B!D
M:6=I=',@870@=&AE(&5N9"!O9B!T:&4@;&EN92!W87,@9V5N97)A=&5D(&)Y
M(')O;&QI;F<@80ID:6-E+B`@*$%N9"!I="!I<R!T;V\@<VAO<G0@9F]R(&=O
M;V0@<V5C=7)I='DN*0H*5'=O('=E96MS(&QA=&5R+"!)(&9E;'0@<&%R86YO
M:60@86YD($D@9&5C:61E9"!T;R!C:&%N9V4@;7D@:V5Y+"!S;PIT:&4@9FEL
M92!L;V]K960@;&EK93H*+2TM+0HQ.3DT+C`S+C`W('1I='5S+G!O;'ET96-H
M;FEQ=64N9G(@9&]L:6=E>B`R,34V-38R,34V-38S-C$R-3(*,3DY-"XP,BXR
M,"!T:71U<RYP;VQY=&5C:&YI<75E+F9R(&1O;&EG97H@-C(T,34S,3(V,S4Q
M,C0Q-38R"BTM+2T*3F]T92!T:&%T($D@:V5P="!T:&4@;VQD(&ME>2P@=VAI
M8V@@86QL;W=S(&ED96-R>7!T('1O(&EN=&5R<')E="!M>0IO;&0@:61E;G0@
M<F5S<&]N<V5S+@H*5&AE;B!)(&YO=&EC960@82!B<F5A:RUI;B!O;B!M>2!M
M86-H:6YE+"!A;F0@*&%F=&5R(&-L96%N:6YG('5P(&%N9`IP;'5G9VEN9R!T
M:&4@:&]L97,I(&-H86YG960@=&AE(&ME>2!F:6QE('1O.@HM+2TM"C$Y.30N
M,#,N,3D@=&ET=7,N<&]L>71E8VAN:7%U92YF<B!D;VQI9V5Z(#4V-#$R-38T
M,C$U-C$R-#8V-0HQ.3DT+C`S+C$Y('9L<VDN<&]L>71E8VAN:7%U92YF<B!D
M;VQI9V5Z(#8S-3(T-38R,S0Q-38R,3(U,0HQ.3DT+C`S+C`W('1I='5S+G!O
M;'ET96-H;FEQ=64N9G(@9&]L:6=E>B`R,34V-38R,34V-38S-C$R-3(*+2TM
M+0I)(')E;6]V960@=&AE(&ME>2!D871E9"`Q.3DT+C`R+C(P+"!B96-A=7-E
M($DG;2!N;W0@:6YT97)E<W1E9"!I;@HQ+6UO;G1H+6]L9"!L;V<@96YT<FEE
M<RP@86YD($D@861D960@=&AE(&ME>2!F;W(@;7D@<V5C;VYD(&UA8VAI;F4L
M"F)E8V%U<V4@22!A;2!L;V=G960@;VX@=&ET=7,@87,@<F]O="!M;W-T(&]F
M('1H92!T:6UE+"!S;R!I9B!)(&=E="!A"FUA:6P@9G)O;2!A;F]T:&5R(&%D
M;6EN:7-T<F%T;W(@86)O=70@82!S96-U<FET>2!P<F]B;&5M+"!)(&-A;@ID
M96-R>7!T('1H92!L;V<@979E;B!I9B!T:&4@871T96UP=',@8V%M92!F<F]M
M('9L<VDN"@H*66]U(&UA>2!U<V4@86YY('!A<G0@;V8@=&AI<R!T97AT(&9O
M<B!T:&4@=7-E<B!D;V-U;65N=&%T:6]N(&9O<@IP:61E;G1D+VED96-R>7!T
#+@H*
`
end
SHAR_EOF
  $shar_touch -am 0611130694 'pidentd-2.7/READMEs/README.DES' &&
  chmod 0644 'pidentd-2.7/READMEs/README.DES' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.DES' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.DES:' 'MD5 check failed'
da42530b0cca5fc01e72dfdeba2e0e19  pidentd-2.7/READMEs/README.DES
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.DES'`"
    test 8238 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.DES:' 'original size' '8238,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.aix ==============
if test -f 'pidentd-2.7/READMEs/README.aix' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.aix' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.aix' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.aix' &&
Here are some tips&tricks for IBM users:
X
XFrom Chris Moller (moller@vnet.ibm.com, moller@futserv.austin.ibm.com):
X
"Under IBM weirdness, after you modify /etc/services or /etc/inetd.conf,
you have to update the ODM by running, from root, the following:
X
X        inetimp
X        chrctcp -S -c inetd -f debug='no' -f file='/etc/inetd.conf'
X
or the changes don't take effect.  Other than that, everything worked
fine out of the box."
X
X
X
XFrom James Carlson <carlson@xylogics.com>:
X
One minor note, this program suffers from the same problem that a lot
of other kernel-reading programs do on AIX.  Gcc doesn't align the
contents of the user structure correctly.  Users have to add a "long
foo" element right before U_irss in a private copy of sys/user.h in
order to make it work.
SHAR_EOF
  $shar_touch -am 0811210096 'pidentd-2.7/READMEs/README.aix' &&
  chmod 0644 'pidentd-2.7/READMEs/README.aix' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.aix' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.aix:' 'MD5 check failed'
74e743f7ced446187110c27bfa78dda7  pidentd-2.7/READMEs/README.aix
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.aix'`"
    test 775 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.aix:' 'original size' '775,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.dynix3 ==============
if test -f 'pidentd-2.7/READMEs/README.dynix3' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.dynix3' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.dynix3' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.dynix3' &&
Machine Type:		Sequent Dynix 3.*
X
Make using:		make dynix3
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" dynix3
X
Person(s) porting:	Peter Eriksson <pen@lysator.liu.se>
X			Frank Maas <maas@dutiws.tudelft.nl>
X
Port date:		A long time ago...
X
Verified working:	OS version(s)	Pident vers	Person
X			3.0.14		2.1beta10	<pen@lysator.liu.se>
X
Build comments:		Nothing unusual
X
Install comments:	Generally install into /usr/etc
X
Usage comments:		Works as daemon (started from rc.local), or
X			from inetd (if you port an Inetd yourself
X			from for example 4.3BSD-net2).
X			We run as user root, but any user with read
X			access to /dev/kmem would be fine.
SHAR_EOF
  $shar_touch -am 0418024693 'pidentd-2.7/READMEs/README.dynix3' &&
  chmod 0644 'pidentd-2.7/READMEs/README.dynix3' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.dynix3' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.dynix3:' 'MD5 check failed'
c8a42071545a1fa6b0833afb46cce6e7  pidentd-2.7/READMEs/README.dynix3
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.dynix3'`"
    test 645 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.dynix3:' 'original size' '645,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.irix4 ==============
if test -f 'pidentd-2.7/READMEs/README.irix4' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.irix4' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.irix4' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.irix4' &&
Machine Type:		Silicon Graphics IRIX 4.*
X
Make using:		make irix4
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" irix4
X
Person(s) porting:	Simon Leinen <simon@lia.di.epfl.ch>
Port date:		A long time ago...
Verified working:	OS version(s)	Pident vers	Person
X			4		2.1beta.10	<simon@lia.di.epfl.ch>
X
Build comments:		Nothing unusual
X
Install comments:	Generally install into /usr/etc
X
Usage comments:		Works as daemon or from inetd with wait/nowait
X
Known bugs:		It returns the <uid> of the process owning the
X			socket in question instead of the <ruid>. Ie,
X			it returns "root" instead of the actual user
X			when the user runs a setuid-root program like rsh..
SHAR_EOF
  $shar_touch -am 0422173493 'pidentd-2.7/READMEs/README.irix4' &&
  chmod 0644 'pidentd-2.7/READMEs/README.irix4' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.irix4' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.irix4:' 'MD5 check failed'
3a7feb92a6f7de9148492129365718a4  pidentd-2.7/READMEs/README.irix4
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.irix4'`"
    test 660 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.irix4:' 'original size' '660,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.irix5 ==============
if test -f 'pidentd-2.7/READMEs/README.irix5' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.irix5' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.irix5' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.irix5' &&
Frank Maas says:
X
I have had this question a couple of times, so I wondered if you could
add the following comment just before the #include <sys/vnode.h> state-
ment in src/kernel/irix5.c... (we are talking pident2.5.1 here ;-):
X
/** Well... here some problems begin: when upgrading IRIX to 5.3 the **/
/** `inst' program shows one of its peculiar bugs: the file vnode.h  **/
/** has changed location in between versions and now the file is up- **/
/** grade first (new package) and then deleted (old package). So if  **/
/** you have problems finding this file: reinstall eoe1.sw.unix.     **/
SHAR_EOF
  $shar_touch -am 0605153795 'pidentd-2.7/READMEs/README.irix5' &&
  chmod 0644 'pidentd-2.7/READMEs/README.irix5' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.irix5' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.irix5:' 'MD5 check failed'
2638e94d283102613b77adb9a312e3f7  pidentd-2.7/READMEs/README.irix5
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.irix5'`"
    test 595 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.irix5:' 'original size' '595,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.next ==============
if test -f 'pidentd-2.7/READMEs/README.next' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.next' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.next' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.next' &&
Machine Type:		NeXTstep 2.x/3.0
X
Make using:		make next
Make optimised:		make "CFLAGS=-O -pipe" "LDFLAGS=-object" next
X
Person(s) porting:	Nigel Metheringham <nigelm@ohm.york.ac.uk>
Port date:		5 April, 1993
Verified working:	OS version    Pident vers  Person
X			3.0	      2.1beta9	   <nigelm@ohm.york.ac.uk>
X			2.1	      2.1beta9	   <Piete.Brooks@cl.cam.ac.uk>
X
Build comments:		Build using the optimising make line above - makes a
X			much smaller tighter daemon.
X			Edit the destination part of the Makefile to suit
X			your system -
X			common values are:-
X				DESTROOT=
X				DESTDIR=/usr/etc
X				MANROOT=/usr/man
X				MANDIR=$(MANROOT)/man8
X			This has only been tested on black (ie NeXT) hardware,
X			however there is no reason why it should not run on
X			white (486) hardware under NeXTstep for Intel
X			Processors.
X
X
Install comments:	Generally install into /usr/etc
X			Start from inetd (or as daemon if you prefer)
X
Usage comments:		Make sure that the user this runs under from inetd
X			can read /dev/kmem.  Alternatively run it as root -
X			its quite safe!
SHAR_EOF
  $shar_touch -am 0418025293 'pidentd-2.7/READMEs/README.next' &&
  chmod 0644 'pidentd-2.7/READMEs/README.next' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.next' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.next:' 'MD5 check failed'
2990a16fe2d633ab446f05c8e975ca0f  pidentd-2.7/READMEs/README.next
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.next'`"
    test 1062 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.next:' 'original size' '1062,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.next31-m68k-i486 ==============
if test -f 'pidentd-2.7/READMEs/README.next31-m68k-i486' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.next31-m68k-i486' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.next31-m68k-i486' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.next31-m68k-i486' &&
Machine Type:		NeXTstep 3.1 for Motorola (or Intel - untested)
X
Make using:		make nextmab
X
Make optimised:		make "CFLAGS=-O2 -pipe" "LDFLAGS=-object -s" nextmab
X			(is the default)
X
Build-Architecture:	make "NEXTARCHS=-arch m68k -arch i386" 
X				for Multi-Architecture-Binary (default)
X			make "NEXTARCHS=-arch m68k" 
X				for Motorola M68000 Binary
X			make "NEXTARCHS=-arch i386" 
X				for Intel i486 Binary
X
Person(s) porting:	Nigel Metheringham <nigelm@ohm.york.ac.uk>
X				(original NeXTSTEP 2.x / 3.0 version)
X			Michael Kuch (NeXTSTEP 3.1 version)
X				<mike@atlas.physchem.chemie.uni-tuebingen.de>
X			others (?)
X
Port date:		5 April, 1993   - NeXTSTEP 2.x / 3.0 version
X			11 August, 1993 - NeXTSTEP 3.1 version
X
Verified working:	OS version    Pident vers  Person
X			3.1-m68k      2.2alpha1	   <mike@atlas.physchem.chemie.
X							uni-tuebingen.de>
X
Build comments:		Edit the destination part of the Makefile to suit
X			your system -
X			common values are:-
X				DESTROOT=
X				DESTDIR=/usr/etc
X				MANROOT=/usr/man
X				MANDIR=$(MANROOT)/man8
X			Edit the NEXTARCH part of the Makefile if you want 
X			build a Single-Architecture-Binary (smaller).
X
X			This has only been tested on black (ie NeXT) hardware,
X			however there is no reason why it should not run on
X			white (i486) hardware under NeXTstep 3.1 for Intel
X			Processors.
X
X
Install comments:	Generally install into /usr/local/etc
X			Start from inetd (or as daemon if you prefer)
X
Usage comments:		Make sure that the user this runs under from inetd
X			can read /dev/kmem.  Alternatively run it as root -
X			its quite safe!
SHAR_EOF
  $shar_touch -am 0811234893 'pidentd-2.7/READMEs/README.next31-m68k-i486' &&
  chmod 0644 'pidentd-2.7/READMEs/README.next31-m68k-i486' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.next31-m68k-i486' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.next31-m68k-i486:' 'MD5 check failed'
21ee6782e5f75620221ca4efa591dbdb  pidentd-2.7/READMEs/README.next31-m68k-i486
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.next31-m68k-i486'`"
    test 1580 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.next31-m68k-i486:' 'original size' '1580,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.ptx ==============
if test -f 'pidentd-2.7/READMEs/README.ptx' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.ptx' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.ptx' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.ptx' &&
Machine Type:		Sequent Dynix/ptx versions 2 & 4
X
Make using:		make ptx or make ptx4
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" ptx2/4
X
Person(s) porting:	Tim Wright <timw@sequent.com>
X
Port date:		Wed 19 Apr 1995
X
Verified working:	OS version(s)	Pident vers	Person
X			2.1.6		2.5.2		<timw@sequent.com>
X			4.1beta		2.5.2		<timw@sequent.com>
X
Build comments:		Nothing unusual
X
Install comments:	Generally install into /usr/etc
X
Usage comments:		Tested running under inetd. This will *not* work
X			unless you have ptx TCP/IP v2.4.0 or later. This
X			was the first version where inetd will (optionally)
X			pass a socket instead of a TLI endpoint.
X			Has been tested in standalone mode.
X			It has also not been tested under ptx 4.0.X.
X			It may be necessary to change ptx4.c to open /dev/mem
X			instead of /dev/kmem for this release.
SHAR_EOF
  $shar_touch -am 0803175395 'pidentd-2.7/READMEs/README.ptx' &&
  chmod 0644 'pidentd-2.7/READMEs/README.ptx' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.ptx' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.ptx:' 'MD5 check failed'
532e75d304389851bab5f37b6e0435e9  pidentd-2.7/READMEs/README.ptx
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.ptx'`"
    test 832 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.ptx:' 'original size' '832,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.riscos4 ==============
if test -f 'pidentd-2.7/READMEs/README.riscos4' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.riscos4' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.riscos4' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.riscos4' &&
Machine Type:		MIPS RISC/OS 4.5x
X
Make using:		make riscos4
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" riscos4
X
Person(s) porting:	Nigel Metheringham <nigelm@ohm.york.ac.uk>
Port date:		5 April, 1993
Verified working:	OS version	Pident vers	Person
X			4.51, 4.52	2.1beta10	<nigelm@ohm.york.ac.uk>
X
Build comments:		Nothing unusual
X
Install comments:	Generally install into /usr/etc
X
Usage comments:		Works as daemon or from inetd with wait/nowait
X			We run as user bin, but as root would be fine.
SHAR_EOF
  $shar_touch -am 0406140793 'pidentd-2.7/READMEs/README.riscos4' &&
  chmod 0644 'pidentd-2.7/READMEs/README.riscos4' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.riscos4' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.riscos4:' 'MD5 check failed'
c86045086790dd3c7ed139b44f3b1360  pidentd-2.7/READMEs/README.riscos4
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.riscos4'`"
    test 500 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.riscos4:' 'original size' '500,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.sunos3 ==============
if test -f 'pidentd-2.7/READMEs/README.sunos3' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.sunos3' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.sunos3' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.sunos3' &&
Machine Type:		SunOS 3.5 (other v3 SunOSs may work)
X
Make using:		make sunos3
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" sunos3
X
Person(s) porting:	Nigel Metheringham <nigelm@ohm.york.ac.uk>
X			[We are disposing of our Sun3s soon, so no further
X			support will be done for this architecture]
X
Port date:		5 April, 1993
Verified working:	OS version	Pident vers	Person
X			3.5		2.1beta10	<nigelm@ohm.york.ac.uk>
X
Build comments:		A link is needed to allow compilation (due to code in
X			the sys/file.h include file).  This can be put in
X			place by executing:
X				ln -s /usr/include/sys h
X			in the current directory (ie top directory of pidentd).
X			Gcc works OK - probably rather better than system cc.
X
Install comments:	Generally install into /usr/etc
X			Start from inetd (/etc/servers) (or as daemon if you
X			prefer) Since this is an *old* BSD system, several of
X			the inetd options are missing.  You can only start it
X			as a one shot daemon from inetd (edit /etc/servers),
X			and you can specify no parameters.
X			Remember there are limits on the number of lines in
X			/etc/servers
X
Usage comments:		Since inetd calls identd with a parameter made up of
X			the calling IP and port address (identd does not use
X			this parameter), identd drops one argument if there
X			are no options set!  To get round this (ie from the
X			command line) specify at least one option.
SHAR_EOF
  $shar_touch -am 0406140793 'pidentd-2.7/READMEs/README.sunos3' &&
  chmod 0644 'pidentd-2.7/READMEs/README.sunos3' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.sunos3' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.sunos3:' 'MD5 check failed'
1cb166495e0b83aea0fa563bcaf39a7a  pidentd-2.7/READMEs/README.sunos3
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.sunos3'`"
    test 1375 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.sunos3:' 'original size' '1375,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.sunos4 ==============
if test -f 'pidentd-2.7/READMEs/README.sunos4' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.sunos4' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.sunos4' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.sunos4' &&
Machine Type:		Sun SunOS 4.*
X
Make using:		make sunos4
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" sunos4
X
Person(s) porting:	Peter Eriksson <pen@lysator.liu.se>
Port date:		A long time ago...
Verified working:	OS version(s)	Pident vers	Person
X			4.0.3, 4.1.1,	2.1beta10	<pen@lysator.liu.se>
X			4.1.3
X
Build comments:		Nothing unusual
X
Install comments:	Generally install into /usr/etc
X
Usage comments:		Works as daemon or from inetd with wait/nowait
X			We run as user sys, but as root would be fine.
SHAR_EOF
  $shar_touch -am 0418023793 'pidentd-2.7/READMEs/README.sunos4' &&
  chmod 0644 'pidentd-2.7/READMEs/README.sunos4' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.sunos4' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.sunos4:' 'MD5 check failed'
3a8b367f2e5c30646adc5022b6b7097f  pidentd-2.7/READMEs/README.sunos4
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.sunos4'`"
    test 504 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.sunos4:' 'original size' '504,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.sunos5 ==============
if test -f 'pidentd-2.7/READMEs/README.sunos5' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.sunos5' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.sunos5' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.sunos5' &&
Please note that the Solaris 2 port of Pidentd is very dependant
on the version of Solaris. So when you upgrade to a new version of Solaris
you most probably also must upgrade the Pidentd server. You can always
find the latest version of Pidentd on ftp.lysator.liu.se in pub/ident/servers.
X
Some common problems that may occur when compiling under Solaris 2:
X
X	* You use /usr/ucb/cc - NEVER ever EVER use that compiler
X
X	* You use GCC, but didn't run "fixincludes" correctly when
X	  installing it
X
X	* You use GCC and have just upgraded from Solaris 2.3 to 2.4
X	  (for example) and have forgotten to RERUN the "fixincludes".
X	  This just *MUST* do or things will fail in mysterious ways.
X
You may have to enable the "SOLARIS24_WORKAROUND" feature in the
file "src/kernel/sunos5.c" if you have problems getting "-b" and/or "-w"
to work correctly under Solaris 2.4. Please tell me if you do and it helps
you (send an email to pen@lysator.liu.se).
X
Casper Dik <casper@fwi.uva.nl> says:
X
X  I found a bug in Solaris 2.x inetd which may affect identd
X  installations:  if you change a tcp service from "nowait" to "wait" mode,
X  inetd will still pass the connected socket (as happens in nowait
X  mode) instead of the socket to do accept() on.  The workaround
X  is to first comment out the service and -HUP inetd, then reinstall
X  the service as wait service and resend -HUP.  Inetd apparently needs
X  to forget all about this service.  The symptom is accept returing
X  errno 22.
X
SHAR_EOF
  $shar_touch -am 0605200195 'pidentd-2.7/READMEs/README.sunos5' &&
  chmod 0644 'pidentd-2.7/READMEs/README.sunos5' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.sunos5' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.sunos5:' 'MD5 check failed'
70164a019b910c9205a1c6c962848bb0  pidentd-2.7/READMEs/README.sunos5
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.sunos5'`"
    test 1473 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.sunos5:' 'original size' '1473,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.ultrix ==============
if test -f 'pidentd-2.7/READMEs/README.ultrix' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.ultrix' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.ultrix' '(binary)'
  sed 's/^X//' << 'SHAR_EOF' | uudecode &&
begin 600 pidentd-2.7/READMEs/README.ultrix
M22!G;W0@=&AE(&9O;&QO=VEN9R!M97-S86=E(&%B;W5T('1H92!P<F]B;&5M
M<R!W:71H(%5L=')I>"!A;F0@8V]N;F5C=&EO;G,*=&AA="!S=61D96YL>2!A
M<F4@8VQO<V5D.@H*1G)O;2!S96YD;6%I;"UR."UR97%U97-T0$-3+D)E<FME
M;&5Y+D5$52!4=64@3V-T(#$R(#$U.C4U.C$R(#$Y.3,*1FQA9W,Z(#`P,#`P
M,#`P,#`P,0I296-E:79E9#H@9G)O;2!H;V9M86YN+D-3+D)E<FME;&5Y+D5$
M52`H:&]F;6%N;BY#4RY"97)K96QE>2Y%1%4@6S$R."XS,BXQ,S$N,3)=*2!B
M>2!G;V1O="YL>7-A=&]R+FQI=2YS92`H."XU+S@N-2D@=VET:"!%4TU44"!I
M9"!004$P,C`V-CL@5'5E+"`Q,B!/8W0@,3DY,R`Q-3HU-3HP,B`K,#$P,`I2
M96-E:79E9#H@9G)O;2!M87-T;V1O;BY#4RY"97)K96QE>2Y%1%4@*&UA<W1O
M9&]N+D-3+D)E<FME;&5Y+D5$52!;,3(X+C,R+C$T.2XV.%TI(&)Y(&AO9FUA
M;FXN0U,N0F5R:V5L97DN1415("@X+C8N8F5T82XQ,R\X+C8N8F5T82XT*2!W
M:71H($533510(&ED($A!03`R,#<R(&9O<B`\<V5N9&UA:6PM<CA`0U,N0F5R
M:V5L97DN1415/CL@5'5E+"`Q,B!/8W0@,3DY,R`P-SHT-3HQ-2`M,#<P,`I2
M96-E:79E9#H@9G)O;2!L;V-A;&AO<W0@*&5R:6-`;&]C86QH;W-T*2!B>2!M
M87-T;V1O;BY#4RY"97)K96QE>2Y%1%4@*#@N-2\X+C4I(&ED($A!03$Y-3,U
M.R!4=64L(#$R($]C="`Q.3DS(#`W.C0W.C(V("TP-S`P"DUE<W-A9V4M260Z
M(#PQ.3DS,3`Q,C$T-#<N2$%!,3DU,S5`;6%S=&]D;VXN0U,N0F5R:V5L97DN
M1415/@I4;SH@<V5N9&UA:6PM<CA`0U,N0F5R:V5L97DN1415"D9R;VTZ($5R
M:6,@06QL;6%N(#QE<FEC0$-3+D)E<FME;&5Y+D5$53X*4W5B:F5C=#H@241%
M3E0@<')O=&]C;VP@:6YF;PI$871E.B!4=64L(#$R($]C="`Q.3DS(#`W.C0W
M.C(V("TP-S`P"E-E;F1E<CH@97)I8T!M87-T;V1O;BY#4RY"97)K96QE>2Y%
M1%4*2V5Y=V]R9',Z('!I9&5N=&0*"DD@<F5C96EV960@=&AE(&9O;&QO=VEN
M9R!D97-C<FEB:6YG('1H92!C:&%N9V5S(&YE961E9"!T;R!R=6X@241%3E0*
M;VX@56QT<FEX+@H*97)I8PH*+2TM+2TM+2!&;W)W87)D960@365S<V%G90H*
M1G)O;3H@1&%N($UO<V5D86QE(#QM;W-E9&%L94!G96YO;64N<W1A;F9O<F0N
M961U/@I-97-S86=E+4ED.B`\,3DY,S$P,3$Q.#`V+D%!,#8V-31`865F9FQE
M+E-T86YF;W)D+D5$53X*4W5B:F5C=#H@4F4Z(&%N;VYY;6]U<R!M86EL"E1O
M.B!E<FEC0$-3+D)E<FME;&5Y+D5$50I$871E.B!-;VXL(#$Q($]C="`Q.3DS
M(#$Q.C`V.C(U("LQ,3DS,#,Y,C@@*%!$5"D*3F5W<V=R;W5P<SH@8V]M<"YS
M96-U<FET>2YM:7-C"D]R9V%N:7IA=&EO;CH@4W1A;F9O<F0@56YI=F5R<VET
M>2!'96YE=&EC<R!$97!A<G1M96YT"@I);B!A<G1I8VQE(#PR.31D.&DD:6PX
M0&%G871E+F)E<FME;&5Y+F5D=3X@>6]U('=R:71E.@H^26X@87)T:6-L92`\
M,CDT.&YP)#9E=4!U<V5N970N24Y3+D-74E4N161U/BP@;6-N0&YO<W1R;VUO
M+F-W<G4N961U("A-:6-H865L($YE=6UA;BD@=W)I=&5S.@H^?#X@,BD@2&%C
M:R!U<"!S96YD;6%I;"!T;R!U<V4@<F9C.3,Q+@H^"CY5;F9O<G1U;F%T96QY
M+"!40U`O25`@8G5G<R!I;B!M86YY(&]P97)A=&EN9R!S>7-T96US(&UA:V4@
M:70@:6UP;W-S:6)L90H^=&\@:6UP;&5M96YT(%)&0SDS,2`H86-T=6%L;'D@
M4D9#(#$T,3,@+2T@.3,Q(&AA<R!B965N(&]B<V]L971E9"DN("!);@H^<&%R
M=&EC=6QA<BP@22=V92!H860@<')O8FQE;7,@=VET:"!(4"U56"!A;F0@56QT
M<FEX+"!A;6]N9R!O=&AE<G,N"@I&5TE7+"!))W9E(&=O="!P:61E;G1D(#(N
M,2XR(')U;FYI;F<@=6YD97(@56QT<FEX(#0N,R!W:71H(&$@9F5W"F-A=F5A
M=',N("!&;W(@;VYE('1H:6YG+"!I="!D;V5S;B=T('=O<FL@<')O<&5R;'D@
M9G)O;2!I;F5T9"P@:70@:&%S"G1O(&)E(')U;B!I;B!D865M;VX@;6]D92X@
M($AO=V5V97(L('1H92!F86-T('1H870@:70@<G5N<R!A="!A;&P@:7,*<')O
M8F%B;'D@9'5E('1O('1H92!F86-T('1H870@22=V92!G;W0@=&AE(&9O;&QO
M=VEN9R!P871C:"!I;G-T86QL960Z"@HO=7-R+W-Y<R]-25!3+T))3D%262]I
M;E]P8V(N;R`@("`@("`@("`@("`@("`@("`H0TQ$($-83RTX.3$Y*0I#2$5#
M2U-533H@(#4V-#$R(#<R"B]U<W(O<WES+TU)4%,O0DE.05)9+VEP7VEC;7`N
M;PI#2$5#2U-533H@(#,P,#8P(#0S"B]U<W(O<WES+TU)4%,O0DE.05)9+W1C
M<%]S=6)R+F\*0TA%0TM354TZ("`U.#`X-2`U-B`*+W5S<B]S>7,O34E04R]"
M24Y!4EDO=61P7W5S<G)E<2YO"D-(14-+4U5-.B`@,C0X-C(@-S0*+W5S<B]S
M>7,O34E04R]"24Y!4EDO=6EP8U]D;VUA:6XN;PI#2$5#2U-533H@(#(Y-3<S
M(#$W"BT@+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0H*17-T
M86)L:7-H(&%N(&9T<"!S97-S:6]N('=I=&@@82!H;W-T(&%C<F]S<R!T:&4@
M9V%T97=A>2!A;F0@<'5T('1H90IP<F]C97-S(&EN(&)A8VMG<F]U;F0N(%1E
M;&YE="!T;R!T:&4@<V%M92!H;W-T('5S:6YG(&%N('5N=7-E9"!P;W)T('1O
M"F9O<F-E(&$@(DAO<W0@56YR96%C:&%B;&4B('-I='5A=&EO;BX@1V\@8F%C
M:R!T;R!T:&4@9G1P('-E<W-I;VX@86YD"FET(&ES(&1E860N"@I);B!O<F1E
M<B!T;R!F:7@@=&AE('!R;V)L96TL('1H92!I;E]P8V)N;W1I9GDH*2!R;W5T
M:6YE(&EN(&EN7W!C8BYC('-H;W5L9`IB92!A=V%R92!O9B!T:&4@;&]C86P@
M86YD(&9O<F5I9VX@<&]R=',@9F]R(&$@9VEV96X@8V]N;F5C=&EO;BX@5&\@
M9F%S8VEL:71A=&4*=&AI<R!T:&4@;'!O<G0@86YD(&9P;W)T('!A<F%M971E
M<G,@=V5R92!A9&1E9"!T;R!I;E]P8V)N;W1I9GDN(%1H:7,@<F5Q=6ER960*
M=&AE(&-A;&QI;F<@<F]U=&EN97,@*'1C<%]C=&QI;G!U="!A;F0@=61P7V-T
M;&EN<'5T*2!T;R!B92!C86QL960@=VET:"!A;@IA9&1I=&EO;F%L('!A<F%M
M971E<BP@82!P;VEN=&5R('1O('1H92!I<"!S=')U8W1U<F4N(%1H92!T8W`@
M:&5A9&5R(&-A;B!B90IA8V-E<W-E9"!I;B!T:&ES(&EP('-T<G5C='5R92X@
M(%1H92!T8W`@:&5A9&5R('EI96QD<R!T:&4@9F]R96EG;B!A;F0@;&]C86P*
M<&]R=',N"@HM("U$86X*"BTM+2TM+2T@16YD(&]F($9O<G=A<F1E9"!-97-S
'86=E"@H*"@HM
`
end
SHAR_EOF
  $shar_touch -am 1130011293 'pidentd-2.7/READMEs/README.ultrix' &&
  chmod 0644 'pidentd-2.7/READMEs/README.ultrix' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.ultrix' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.ultrix:' 'MD5 check failed'
89b716f5f2cca8c50516cb1b60506cdb  pidentd-2.7/READMEs/README.ultrix
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.ultrix'`"
    test 3112 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.ultrix:' 'original size' '3112,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/READMEs/README.unicos6 ==============
if test -f 'pidentd-2.7/READMEs/README.unicos6' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/READMEs/README.unicos6' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/READMEs/README.unicos6' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/READMEs/README.unicos6' &&
Machine Type:		Cray UNICOS 6
X
Make using:		make unicos6
Make optimised:		make "CFLAGS=-O" "LDFLAGS=-s" sunos6
X
Person(s) porting:	Douglas Lee Schales <Doug.Schales@sc.tamu.edu>
Port date:		A long time ago...
Verified working:	OS version(s)	Pident vers  Person
X			6.0.12		2.1beta.7    <Doug.Schales@sc.tamu.edu>
X
Build comments:		Nothing unusual
X
Install comments:	Generally install into /usr/etc
X
Usage comments:		Works as daemon or from inetd with wait/nowait
X
Known bugs:		It returns the <uid> of the process owning the
X			socket in question instead of the <ruid>. Ie,
X			it returns "root" instead of the actual user
X			when the user runs a setuid-root program like rsh..
SHAR_EOF
  $shar_touch -am 0422173493 'pidentd-2.7/READMEs/README.unicos6' &&
  chmod 0644 'pidentd-2.7/READMEs/README.unicos6' ||
  $echo 'restore of' 'pidentd-2.7/READMEs/README.unicos6' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/READMEs/README.unicos6:' 'MD5 check failed'
b326bb73bc533b9424204887552a238c  pidentd-2.7/READMEs/README.unicos6
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/READMEs/README.unicos6'`"
    test 674 -eq "$shar_count" ||
    $echo 'pidentd-2.7/READMEs/README.unicos6:' 'original size' '674,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/TODO ==============
if test -f 'pidentd-2.7/TODO' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/TODO' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/TODO' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/TODO' &&
* Use the output from "uname -s" to auto-select the target in the Makefile.
X
* Write more ./READMEs/README.* files
X
* Implement more test programs in ./testdir
X
* Long and short command options.
X
* Implement a config file (/etc/identd.conf).
X
* Implement some way for an external program to register indirect
X  pointers. For example a TCP/IP relaying daemon might wanna do this.
X  So that the <Identifier> returned will look something like:
X
X      42 , 4711 : USERID : OTHER : foo (fubar.su!bar)
X
X  or:
X
X      42 , 4711 : USERID : OTHER : foo (this.host.se!foo (fubar.su!bar))
X
X  Probably should be implemented using a UNIX domain socket with access
X  control.
X
* Implement some way to encrypt <Identifiers>.
X
SHAR_EOF
  $shar_touch -am 0813210795 'pidentd-2.7/TODO' &&
  chmod 0644 'pidentd-2.7/TODO' ||
  $echo 'restore of' 'pidentd-2.7/TODO' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/TODO:' 'MD5 check failed'
1f184567eae0f5fc5ca0131f45bf725f  pidentd-2.7/TODO
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/TODO'`"
    test 710 -eq "$shar_count" ||
    $echo 'pidentd-2.7/TODO:' 'original size' '710,' 'current size' "$shar_count!"
  fi
fi
# ============= pidentd-2.7/doc/RFC1413 ==============
if test ! -d 'pidentd-2.7/doc'; then
  $echo 'x -' 'creating directory' 'pidentd-2.7/doc'
  mkdir 'pidentd-2.7/doc'
fi
if test -f 'pidentd-2.7/doc/RFC1413' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'pidentd-2.7/doc/RFC1413' '(file already exists)'
else
  $echo 'x -' extracting 'pidentd-2.7/doc/RFC1413' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'pidentd-2.7/doc/RFC1413' &&
X
X
X
X
X
X
Network Working Group                                       M. St. Johns
Request for Comments: 1413                      US Department of Defense
Obsoletes: 931                                             February 1993
X
X
X                        Identification Protocol
X
Status of this Memo
X
X   This RFC specifies an IAB standards track protocol for the Internet
X   community, and requests discussion and suggestions for improvements.
X   Please refer to the current edition of the "IAB Official Protocol
X   Standards" for the standardization state and status of this protocol.
X   Distribution of this memo is unlimited.
X
1.  INTRODUCTION
X
X   The Identification Protocol (a.k.a., "ident", a.k.a., "the Ident
X   Protocol") provides a means to determine the identity of a user of a
X   particular TCP connection.  Given a TCP port number pair, it returns
X   a character string which identifies the owner of that connection on
X   the server's system.
X
X   The Identification Protocol was formerly called the Authentication
X   Server Protocol.  It has been renamed to better reflect its function.
X   This document is a product of the TCP Client Identity Protocol
X   Working Group of the Internet Engineering Task Force (IETF).
X
2.  OVERVIEW
X
X   This is a connection based application on TCP.  A server listens for
X   TCP connections on TCP port 113 (decimal).  Once a connection is
X   established, the server reads a line of data which specifies the
X   connection of interest.  If it exists, the system dependent user
X   identifier of the connection of interest is sent as the reply.  The
X   server may then either shut the connection down or it may continue to
X   read/respond to multiple queries.
X
X   The server should close the connection down after a configurable
X   amount of time with no queries - a 60-180 second idle timeout is
X   recommended.  The client may close the connection down at any time;
X   however to allow for network delays the client should wait at least
X   30 seconds (or longer) after a query before abandoning the query and
X   closing the connection.
X
X
X
X
X
X
X
St. Johns                                                       [Page 1]
X
RFC 1413                Identification Protocol            February 1993
X
X
3.  RESTRICTIONS
X
X   Queries are permitted only for fully specified connections.  The
X   query contains the local/foreign port pair -- the local/foreign
X   address pair used to fully specify the connection is taken from the
X   local and foreign address of query connection.  This means a user on
X   address A may only query the server on address B about connections
X   between A and B.
X
4.  QUERY/RESPONSE FORMAT
X
X   The server accepts simple text query requests of the form:
X
X            <port-on-server> , <port-on-client>
X
X   where <port-on-server> is the TCP port (decimal) on the target (where
X   the "ident" server is running) system, and <port-on-client> is the
X   TCP port (decimal) on the source (client) system.
X
X   N.B - If a client on host A wants to ask a server on host B about a
X   connection specified locally (on the client's machine) as 23, 6191
X   (an inbound TELNET connection), the client must actually ask about
X   6191, 23 - which is how the connection would be specified on host B.
X
X      For example:
X
X                 6191, 23
X
X   The response is of the form
X
X   <port-on-server> , <port-on-client> : <resp-type> : <add-info>
X
X   where <port-on-server>,<port-on-client> are the same pair as the
X   query, <resp-type> is a keyword identifying the type of response, and
X   <add-info> is context dependent.
X
X   The information returned is that associated with the fully specified
X   TCP connection identified by <server-address>, <client-address>,
X   <port-on-server>, <port-on-client>, where <server-address> and
X   <client-address> are the local and foreign IP addresses of the
X   querying connection -- i.e., the TCP connection to the Identification
X   Protocol Server.  (<port-on-server> and <port-on-client> are taken
X   from the query.)
X
X      For example:
X
X         6193, 23 : USERID : UNIX : stjohns
X         6195, 23 : ERROR : NO-USER
X
X
X
St. Johns                                                       [Page 2]
X
RFC 1413                Identification Protocol            February 1993
X
X
5.  RESPONSE TYPES
X
A response can be one of two types:
X
USERID
X
X     In this case, <add-info> is a string consisting of an
X     operating system name (with an optional character set
X     identifier), followed by ":", followed by an
X     identification string.
X
X     The character set (if present) is separated from the
X     operating system name by ",".  The character set
X     identifier is used to indicate the character set of the
X     identification string.  The character set identifier,
X     if omitted, defaults to "US-ASCII" (see below).
X
X     Permitted operating system names and character set
X     names are specified in RFC 1340, "Assigned Numbers" or
X     its successors.
X
X     In addition to those operating system and character set
X     names specified in "Assigned Numbers" there is one
X     special case operating system identifier - "OTHER".
X
X     Unless "OTHER" is specified as the operating system
X     type, the server is expected to return the "normal"
X     user identification of the owner of this connection.
X     "Normal" in this context may be taken to mean a string
X     of characters which uniquely identifies the connection
X     owner such as a user identifier assigned by the system
X     administrator and used by such user as a mail
X     identifier, or as the "user" part of a user/password
X     pair used to gain access to system resources.  When an
X     operating system is specified (e.g., anything but
X     "OTHER"), the user identifier is expected to be in a
X     more or less immediately useful form - e.g., something
X     that could be used as an argument to "finger" or as a
X     mail address.
X
X     "OTHER" indicates the identifier is an unformatted
X     character string consisting of printable characters in
X     the specified character set.  "OTHER" should be
X     specified if the user identifier does not meet the
X     constraints of the previous paragraph.  Sending an
X     encrypted audit token, or returning other non-userid
X     information about a user (such as the real name and
X     phone number of a user from a UNIX passwd file) are
X
X
X
St. Johns                                                       [Page 3]
X
RFC 1413                Identification Protocol            February 1993
X
X
X     both examples of when "OTHER" should be used.
X
X     Returned user identifiers are expected to be printable
X     in the character set indicated.
X
X     The identifier is an unformatted octet string - - all
X     octets are permissible EXCEPT octal 000 (NUL), 012 (LF)
X     and 015 (CR).  N.B. - space characters (040) following the
X     colon separator ARE part of the identifier string and
X     may not be ignored. A response string is still
X     terminated normally by a CR/LF.  N.B. A string may be
X     printable, but is not *necessarily* printable.
X
ERROR
X
X   For some reason the port owner could not be determined, <add-info>
X   tells why.  The following are the permitted values of <add-info> and
X   their meanings:
X
X          INVALID-PORT
X
X          Either the local or foreign port was improperly
X          specified.  This should be returned if either or
X          both of the port ids were out of range (TCP port
X          numbers are from 1-65535), negative integers, reals or
X          in any fashion not recognized as a non-negative
X          integer.
X
X          NO-USER
X
X          The connection specified by the port pair is not
X          currently in use or currently not owned by an
X          identifiable entity.
X
X          HIDDEN-USER
X
X          The server was able to identify the user of this
X          port, but the information was not returned at the
X          request of the user.
X
X          UNKNOWN-ERROR
X
X          Can't determine connection owner; reason unknown.
X          Any error not covered above should return this
X          error code value.  Optionally, this code MAY be
X          returned in lieu of any other specific error code
X          if, for example, the server desires to hide
X          information implied by the return of that error
X
X
X
St. Johns                                                       [Page 4]
X
RFC 1413                Identification Protocol            February 1993
X
X
X          code, or for any other reason.  If a server
X          implements such a feature, it MUST be configurable
X          and it MUST default to returning the proper error
X          message.
X
X   Other values may eventually be specified and defined in future
X   revisions to this document.  If an implementer has a need to specify
X   a non-standard error code, that code must begin with "X".
X
X   In addition, the server is allowed to drop the query connection
X   without responding.  Any premature close (i.e., one where the client
X   does not receive the EOL, whether graceful or an abort should be
X   considered to have the same meaning as "ERROR : UNKNOWN-ERROR".
X
FORMAL SYNTAX
X
X   <request> ::= <port-pair> <EOL>
X
X   <port-pair> ::= <integer> "," <integer>
X
X   <reply> ::= <reply-text> <EOL>
X
X   <EOL> ::= "015 012"  ; CR-LF End of Line Indicator
X
X   <reply-text> ::= <error-reply> | <ident-reply>
X
X   <error-reply> ::= <port-pair> ":" "ERROR" ":" <error-type>
X
X   <ident-reply> ::= <port-pair> ":" "USERID" ":" <opsys-field>
X                     ":" <user-id>
X
X   <error-type> ::= "INVALID-PORT" | "NO-USER" | "UNKNOWN-ERROR"
X                    | "HIDDEN-USER" |  <error-token>
X
X   <opsys-field> ::= <opsys> [ "," <charset>]
X
X   <opsys> ::= "OTHER" | "UNIX" | <token> ...etc.
X               ;  (See "Assigned Numbers")
X
X   <charset> ::= "US-ASCII" | ...etc.
X                 ;  (See "Assigned Numbers")
X
X   <user-id> ::= <octet-string>
X
X   <token> ::= 1*64<token-characters> ; 1-64 characters
X
X   <error-token> ::= "X"1*63<token-characters>
X                     ; 2-64 chars beginning w/X
X
X
X
St. Johns                                                       [Page 5]
X
RFC 1413                Identification Protocol            February 1993
X
X
X   <integer> ::= 1*5<digit> ; 1-5 digits.
X
X   <digit> ::= "0" | "1" ... "8" | "9" ; 0-9
X
X   <token-characters> ::=
X                  <Any of these ASCII characters: a-z, A-Z,
X                   - (dash), .!@#$%^&*()_=+.,<>/?"'~`{}[]; >
X                               ; upper and lowercase a-z plus
X                               ; printables minus the colon ":"
X                               ; character.
X
X   <octet-string> ::= 1*512<octet-characters>
X
X   <octet-characters> ::=
X                  <any octet from  00 to 377 (octal) except for
X                   ASCII NUL (000), CR (015) and LF (012)>
X
Notes on Syntax:
X
X   1)   To promote interoperability among variant
X        implementations, with respect to white space the above
X        syntax is understood to embody the "be conservative in
X        what you send and be liberal in what you accept"
X        philosophy.  Clients and servers should not generate
X        unnecessary white space (space and tab characters) but
X        should accept white space anywhere except within a
X        token.  In parsing responses, white space may occur
X        anywhere, except within a token.  Specifically, any
X        amount of white space is permitted at the beginning or
X        end of a line both for queries and responses.  This
X        does not apply for responses that contain a user ID
X        because everything after the colon after the operating
X        system type until the terminating CR/LF is taken as
X        part of the user ID.  The terminating CR/LF is NOT
X        considered part of the user ID.
X
X   2)   The above notwithstanding, servers should restrict the
X        amount of inter-token white space they send to the
X        smallest amount reasonable or useful.  Clients should
X        feel free to abort a connection if they receive 1000
X        characters without receiving an <EOL>.
X
X   3)   The 512 character limit on user IDs and the 64
X        character limit on tokens should be understood to mean
X        as follows: a) No new token (i.e., OPSYS or ERROR-TYPE)
X        token will be defined that has a length greater than 64
X        and b) a server SHOULD NOT send more than 512 octets of
X        user ID and a client MUST accept at least 512 octets of
X
X
X
St. Johns                                                       [Page 6]
X
RFC 1413                Identification Protocol            February 1993
X
X
X        user ID.  Because of this limitation, a server MUST
X        return the most significant portion of the user ID in
X        the first 512 octets.
X
X   4)   The character sets and character set identifiers should
X        map directly to those defined in or referenced by RFC 1340,
X        "Assigned Numbers" or its successors.  Character set
X        identifiers only apply to the user identification field
X        - all other fields will be defined in and must be sent
X        as US-ASCII.
X
X   5)   Although <user-id> is defined as an <octet-string>
X        above, it must follow the format and character set
X        constraints implied by the <opsys-field>; see the
X        discussion above.
X
X   6)   The character set provides context for the client to
X        print or store the returned user identification string.
X        If the client does not recognize or implement the
X        returned character set, it should handle the returned
X        identification string as OCTET, but should in addition
X        store or report the character set.  An OCTET string
X        should be printed, stored or handled in hex notation
X        (0-9a-f) in addition to any other representation the
X        client implements - this provides a standard
X        representation among differing implementations.
X
6.  Security Considerations
X
X   The information returned by this protocol is at most as trustworthy
X   as the host providing it OR the organization operating the host.  For
X   example, a PC in an open lab has few if any controls on it to prevent
X   a user from having this protocol return any identifier the user
X   wants.  Likewise, if the host has been compromised the information
X   returned may be completely erroneous and misleading.
X
X   The Identification Protocol is not intended as an authorization or
X   access control protocol.  At best, it provides some additional
X   auditing information with respect to TCP connections.  At worst, it
X   can provide misleading, incorrect, or maliciously incorrect
X   information.
X
X   The use of the information returned by this protocol for other than
X   auditing is strongly discouraged.  Specifically, using Identification
X   Protocol information to make access control decisions - either as the
X   primary method (i.e., no other checks) or as an adjunct to other
X   methods may result in a weakening of normal host security.
X
X
X
X
St. Johns                                                       [Page 7]
X
RFC 1413                Identification Protocol            February 1993
X
X
X   An Identification server may reveal information about users,
X   entities, objects or processes which might normally be considered
X   private.  An Identification server provides service which is a rough
X   analog of the CallerID services provided by some phone companies and
X   many of the same privacy considerations and arguments that apply to
X   the CallerID service apply to Identification.  If you wouldn't run a
X   "finger" server due to privacy considerations you may not want to run
X   this protocol.
X
7.  ACKNOWLEDGEMENTS
X
X   Acknowledgement is given to Dan Bernstein who is primarily
X   responsible for renewing interest in this protocol and for pointing
X   out some annoying errors in RFC 931.
X
References
X
X   [1] St. Johns, M., "Authentication Server", RFC 931, TPSC, January
X       1985.
X
X   [2] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1340,
X       USC/Information Sciences Institute, July 1992.
X
Author's Address
X
X       Michael C. St. Johns
X       DARPA/CSTO
X       3701 N. Fairfax Dr
X       Arlington, VA 22203
X
X       Phone: (703) 696-2271
X       EMail: stjohns@DARPA.MIL
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
St. Johns                                                       [Page 8]
X
SHAR_EOF
  $shar_touch -am 0204173093 'pidentd-2.7/doc/RFC1413' &&
  chmod 0644 'pidentd-2.7/doc/RFC1413' ||
  $echo 'restore of' 'pidentd-2.7/doc/RFC1413' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'pidentd-2.7/doc/RFC1413:' 'MD5 check failed'
ced71cd04dc21eda2d2a071d1af8b255  pidentd-2.7/doc/RFC1413
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'pidentd-2.7/doc/RFC1413'`"
    test 16292 -eq "$shar_count" ||
    $echo 'pidentd-2.7/doc/RFC1413:' 'original size' '16292,' 'current size' "$shar_count!"
  fi
fi
: || $echo 'restore of' 'pidentd-2.7/doc/TAP.doc' 'failed'
$echo 'End of part' '2,' 'continue with part' '3'
exit 0


