home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Spezial / SPEZIAL2_97.zip / SPEZIAL2_97.iso / ANWEND / ONLINE / SREFV12J / CONFIG2.CMD < prev    next >
OS/2 REXX Batch file  |  1997-09-08  |  75KB  |  1,759 lines

  1. /*6/97. this is the SRE-FILTER configuration routine */
  2. /* to add variables:
  3.    1) Create a new Param.nn line (say, Param.30='NEW_CONTROL')
  4.   2) Create a new set of output lines in the DISPLAY THEM  section
  5.   3) Create a new set of output lines in the CHANGE THEM section
  6. */
  7.  
  8. config2:
  9.  
  10. CHECKIT=0   /* Change this to 0 if you want to enable REMOTE configuration by SUPERUSERS */
  11.  
  12. USECOLOR='2dd52f'
  13.  
  14.  
  15. /* ---------------- DO NOT MODIFY BELOW THIS LINE  ------------------ */
  16.  
  17.  
  18. parse arg ddir,tempfile,sel,list,verb,uri,user,basedir,workdir,privset, ,
  19.            enmadd,transaction,verbose,servername,host_nickname,homedir
  20.  
  21. if verb="" then do
  22.    say " This SRE-Filter procedure is not meant to be run in stand-alone mode. "
  23.    say " You should invoke it using CONFIGUR.HTM ! "
  24.    exit
  25. end  /* Do */
  26.  
  27. list=translate(list, ' ', '+'||'090a0d'x)  /* Whitespace, etc. */
  28.  
  29. signal on error name badguys
  30. signal on syntax name badguys
  31.  
  32. crlf = '0d0a'x
  33.  
  34. who2=extract('CLIENTADDR')
  35. saddr2=extract('SERVERADDR')
  36.  
  37. NO_REM=VALUE('SREF_NO_REMOTE_CONFIG',,'OS2ENVIRONMENT')
  38.  
  39. select
  40.    when checkit=1 | no_rem>0 then do
  41.  
  42. /* only if user = serveraddress !!! */
  43.      if who2<>saddr2 | no_rem=2 then do
  44.  
  45.         call lineout tempfile, '<!doctype html public "-//IETF//DTD HTML 3.0//EN">'
  46.         call lineout tempfile, "<html><head><title>SRE-FILTER remote configurator disabled </title>"
  47.         call lineout tempfile, '</head><body bgcolor="#'||usecolor||'">'
  48.  
  49.         call lineout tempfile,' <strong> Action not allowed remotely.</strong> <pre>'
  50.         call lineout tempfile,' </body> </html> '
  51.         call lineout tempfile
  52.         'FILE ERASE TYPE text/html NAME' tempfile
  53.       signal off error ; signal off syntax
  54.         return 'CONFIG2: action not allowed remotely. '
  55.      end
  56.    end
  57.    otherwise do
  58.       if wordpos('SUPERUSER',privset)=0 then do
  59.  
  60.       'header add WWW-Authenticate: Basic Realm=<Configure>'  /* challenge */
  61.         call lineout tempfile, '<!doctype html public "-//IETF//DTD HTML 3.0//EN">'
  62.         call lineout tempfile, "<html><head><title>Not authorized </title>"
  63.         call lineout tempfile, '</head><body bgcolor="#'||usecolor||'">'
  64.  
  65.         call lineout tempfile,' <strong> You do not have configuration rights.</strong> <pre>'
  66.         if who2=saddr2 then
  67.                 call lineout tempfile,'<br> <Em> You may want to edit CONFIG2.CMD </em> '
  68.         call lineout tempfile,' </body> </html> '
  69.         call lineout tempfile
  70.          signal off error ; signal off syntax
  71.         return sref_response('unauth', "You do not have configuration rights ",tempfile,servername)
  72.       end
  73.    end
  74. end
  75.  
  76. /* go get initfilt */
  77. aport=extract(serverport)
  78. afile=basedir||"\INITFILT."||aport
  79.  
  80.  
  81. /* the following directories and files are subject to change */
  82. fd.1="messbox_dir"   /* location of message boxes  */
  83. fd.2="tempfile_dir"     /* workspace for server side programs */
  84. fd.3="counter_file" /* used by REPLACE HITS and REPLACE COUNTS keyphrase */
  85. fd.4="record_all_file" /* used if record_option =YES or YES_ALL */
  86. fd.5="sendfile_file"  /* used by the SENDFILE facility*/
  87. fd.6="access_file"   /* used if ALLOW_ACCESS=YES or INHOUSE*/
  88. fd.7="alias_file"   /* list of aliases */
  89. fd.8="repstrgs_file"  /* custom written variables for REPLACE keyphrase */
  90. fd.9="user_file"    /* username/password/privileges file */
  91. fd.10="upload_dir"  /* upload directory (used by GET_URL) */
  92. fd.11="upload_log"  /* log file for upload tracking */
  93. fd.12="cgi_bin_dir" /* cgi-bin directory */
  94. fd.13="virtual_file" /* file containing virtual directory information */
  95. fd.14="mailbox_dir"   /* location of incoming e-mail box */
  96. fd.15="tempdata_dir" /* workspace for srefilter */
  97. fd.16="workdata_dir" /* permanent sre-filter "data file" directory */
  98. fd.17='logon_fail_file' /* file sent if logon failure */
  99. fd.18='access_fail_file' /* file sent if sel-specific access failure */
  100. fd.19='addon_dir'
  101. fd.0=19
  102. do mm=1 to fd.0
  103.    fd.mm=translate(strip(fd.mm))
  104. end
  105.  
  106.  
  107.  
  108. /* IF THE VERB IS POST-- THEN THIS IS A "WRITE INFO CALL
  109.    IF IT'S GET, THEN ITS A "SHOW INFO" OR "LET ME CHANGE INFO" CALL
  110. */
  111.  
  112. if translate(verb)="POST" then signal write_it
  113.  
  114.  
  115.  
  116. /* IF HERE, VERB=GET --- so show vars or request changes  */
  117.  
  118.  
  119.  
  120. parse upper var list foo '=' todo
  121. ll=list
  122. nickname=' '
  123. do until ll=' '
  124.    parse var ll a1 '&' ll
  125.    parse var a1 a1a '=' a2a ; a2a=packur(a2a) ; a1a=packur(a1a)
  126.    if upper(a1a)='TODO' then todo=upper(a2a)
  127.    if upper(a1a)='HOST_NICKNAME' then nickname=strip(upper(a2a))
  128. end /* do */
  129.  
  130. /* read initfilt.80 file into internal storage */
  131.  
  132. FOO=sref_fileREAD(AFILE,'FILELINES',,'E')
  133. IF FOO=0 THEN DO
  134.   SAY " CONFIG2 ERROR: COULD NOT READ INITFILT FILE "
  135.   'String  Error reading initfilt file '
  136.    signal off error ; signal off syntax
  137.   return "CONFIG2 ERROR: Could Not read INITFILT FILE "
  138. end
  139.  
  140. /* convert < to < and > to > */
  141. i=0
  142. do mm=1 to filelines.0
  143.   big=fix_me(filelines.mm)
  144.   filelines.mm.igot=0           /* fill this is later */
  145.   filelines.mm.name=0           /* assume it's comment/blank */
  146.   filelines.mm.stem=' '          /* assume is non stem var */
  147.   filelines.mm.value=' '
  148.   if big  <>" " then do
  149.      big=sref_replacestrg(big,'<','<','all')
  150.      big=sref_replacestrg(big,'>','>','all')
  151.      filelines.mm=big
  152.      if abbrev(strip(big),';')=0  then do
  153.          parse var big atype '=' avalue
  154.          if words(atype)=1  then do
  155.              parse upper var atype aname '.' astem
  156.              filelines.mm.name=upper(strip(aname))
  157.              filelines.mm.value=strip(strip(avalue),,"'")
  158.              if astem<>' ' then filelines.mm.stem=astem
  159.              opop=filelines.mm.name
  160.              if nickname=' ' & verify(astem,'0123456789 .')>0 then do
  161.                   nop                   /* no nickname, but nickname in entry */
  162.              end
  163.              else do
  164.                 if symbol('quiklist.opop')='VAR' then do
  165.                    quiklist.opop=quiklist.opop' 'mm
  166.                 end
  167.                 else do
  168.                    quiklist.opop=mm
  169.                 end   /* quiklist */
  170.              end   /* verify/nickname */
  171.           end      /* one work name */
  172.       end       /* comment */
  173.    end          /* not ' ' line */
  174. end      /* loop over lines */
  175.  
  176. /* the following is a list of parameters that we will adjust
  177. (if end in ., it's a stem variable)*/
  178.  
  179. /* logon control variables */
  180. param.1="checklog"  /* whether require logon: NO YES ALWAYS INHOUSE*/
  181. param.2="owners"     /* list of owners */
  182. param.3="inhouseips."  /* stem variable of inhouse ips */
  183. param.4="unallowedips." /* stem variable of unallowed ip */
  184.  
  185. /* request string modification variables */
  186. param.5="default"   /* the default page : A file name relative to ddir*/
  187. param.6="xxxyyyzzz"      /* fill in later */
  188. param.7="home_dir"    /* the ~ substitution */
  189. param.8="auto_name"  /* list of potential "default documents" for directories */
  190.  
  191. /* access and auditing variables */
  192. param.9="allow_access"   /*File specific: YES=no control, INHOUSE=inhouse only, NO=Superusrs */
  193. param.10="record_option" /*NO YES YES_ALL FILE arguments*/
  194. param.11="verbose" /*  */
  195.  
  196. /* stem variables for  REPLACE keyphrase */
  197. param.12="headers."     /* stem variable of headers */
  198. param.13="footers."    /* stem variable of footers */
  199. param.14="inhouse."    /* stem variables for replace inhouse. static variables */
  200. param.15="superuser."  /* stem variables for replace superuser. static variables*/
  201.  
  202. /* static variables for REPLACE keyphrase */
  203. param.16="webmaster"   /* string containing the webmasters url */
  204. param.17="home_name"  /* colloquial name of this server */
  205.  
  206. /* misc. static variables (used for a variety of internally generated messages  */
  207. param.18="the_realm"    /* Colloquial name of "inhouse" folks*/
  208. param.19="option_hit_line" /* variable used with option_hit.n and option_count.n */
  209. param.20="not_found_url" /* string returned with 404 error */
  210.  
  211. /* late additions */
  212. param.21="INHOUSE_PRIVS"
  213. param.22="PUBLIC_PRIVS"
  214. param.23="PUBLIC_URLS."  /* stem var of public urls */
  215. param.24="AUTO_HEADER"
  216. param.25="UPLOAD_MAXSIZE"
  217. param.26="UPLOAD_MINFREE"
  218. param.27="NOEXT_TYPE"
  219. param.28="POST_FILTER"
  220. param.29="PRE_FILTER"
  221. param.30="DNS_CHECK"
  222. param.31="SMTP_GATEWAY"
  223. param.32='SSI_SHTML_ONLY'
  224. param.33='HOSTS.'
  225. param.34='DO_HTACCESS'
  226. param.35='FIX_EXPIRE'
  227. param.36='HIT_CACHE_LEN'
  228. param.37='HIT_CACHE_DURATION'
  229. param.38='HIT_OWNER_SUPPRESS'
  230. param.39='CHECK_ADD_PRIVS'
  231. param.40='DIR_OPTIONS'
  232. param.41='DIR_EXCLUSION'
  233. param.42='SSI_CACHE_ON'
  234. param.43='WRITE_LOGS'
  235. param.44='DIR_ACCESS'
  236. param.45='DIR_ACCESS_PRIVS'
  237.  
  238. param.0=45
  239. do mm=1 to param.0
  240.    param.mm=strip(translate(param.mm))
  241.    param.mm.stem=0
  242.    if pos('.',param.mm)>0 then param.mm.stem=1
  243.    param.mm=strip(param.mm,,'.')
  244. end
  245.  
  246.  
  247. /* Note that a number of variables will  NOT be settable by this program.
  248. Ambitious users can go into INITFILT.80 and edit these parameters.
  249. */
  250.  
  251.  
  252. /* ************************  DISPLAY THEM --------------------------------*/
  253. if todo="SHOW" then do
  254.    call lineout tempfile, '<!doctype html public "-//IETF//DTD HTML 3.0//EN">'
  255.    call lineout tempfile, "<html><head><title>SRE-Filter Configurator: Current Parameters</title>"
  256.    call lineout tempfile, '</head><body bgcolor="#'||usecolor||'">'
  257.  
  258.    call lineout tempfile," <hr> <h2> Current Settings of SRE-FILTER's Parameters </h2> "
  259.    if nickname<>'' then do
  260.         call lineout tempfile,' <h3> For parameters specific to the ' nickname ' host.</h3>'
  261.         call lineout tempfile,' <blockquote> You selected <strong>' nickname ' </strong> as the  target "host nickname" '
  262.         call lineout tempfile,' The top half of this document contains only parameters specific to <strong>' nickname '. </strong>'
  263.         call lineout tempfile,'<eM> Non host-specific parameters</em>, which are used when a host-specific parameter is '
  264.         call lineout tempfile,' not specified, are listed  at  '
  265.         call lineout tempfile,' the  <A HREF="#otherparams">bottom half of the document</A>. '
  266.  
  267.    end  /* Do */
  268.  
  269.    call lineout tempfile, ' <h3> Logon Control Variables </h3> <menu> '
  270.    do mm=1 to 4
  271.        foo=write_1(mm)
  272.    end
  273.    foo=write_1(30)
  274.  
  275.   call lineout tempfile,' </menu> <h3> PUBLIC_URLS </h3>  <menu>'
  276.    foo=write_1(23)
  277.  
  278.   call lineout tempfile,'  </menu> <H3> HOST Identifiers </h3>  <menu>'
  279.      foo=write_1(33,2)
  280.  
  281.   call lineout tempfile,' </menu>  <h3> Request  modification variables  </h3>  <menu>'
  282.     do mm=5 to 8
  283.         if mm=6 then iterate
  284.        foo=write_1(mm)
  285.     end
  286.     foo=write_1(27)
  287.     foo=write_1(40)
  288.     foo=write_1(41)
  289.     foo=write_1(44)
  290.     foo=write_1(45)
  291.  
  292.    call lineout tempfile,' </menu> <h3> Reponse header creation, Pre and Post filters </h3>  <menu>'
  293.    foo=write_1(24)
  294.    foo=write_1(28)
  295.    foo=write_1(29)
  296.  
  297.   call lineout tempfile,' </menu>  <h3> File access and auditing variables  </h3>  <menu>'
  298.    do mm=9 to 10
  299.        foo=write_1(mm)
  300.     end
  301.     foo=write_1(21)
  302.     foo=write_1(22)
  303.     foo=write_1(34)
  304.     foo=write_1(43)
  305.  
  306.     foo=write_1(36)
  307.     foo=write_1(37)
  308.     foo=write_1(38)
  309.     foo=write_1(39)
  310.  
  311.   call lineout tempfile,' </menu> <h3> SSI control and stem variables for REPLACE keyphrase </h3>  <menu>'
  312.    foo=write_1(32)
  313.    foo=write_1(42)
  314.    do mm=12 to 15
  315.  
  316.        foo=write_1(mm)
  317.     end
  318.  
  319.   call lineout tempfile,' </menu>  <h3> Other variables for REPLACE keyphrase  </h3>  <menu>'
  320.    do mm=16 to 17
  321.        foo=write_1(mm)
  322.     end
  323.  
  324.   call lineout tempfile, '</menu> <h3>Upload control, and E-Mail support, variables </h3>  <menu>'
  325.   do mm=25 to 26
  326.      foo=write_1(mm)
  327.   end
  328.   foo=write_1(31)
  329.  
  330.   call lineout tempfile,'</menu>  <h3> Miscellanous variables (used for error messages, etc.) </h3>  <menu>'
  331.    do mm=18 to 20
  332.        foo=write_1(mm)
  333.     end
  334.     foo=write_1(35)
  335.  
  336.   call lineout tempfile,'</menu>  <hr width=50%>   <h3> Files and Directories .. </h3> <menu> '
  337.   do mm2=1 to fd.0
  338.       foo=write_1(mm2,1)
  339.   end
  340.  CALL LINEOUT TEMPFILE,'</menu>'
  341.  
  342.  
  343.    call lineout tempfile,' <hr>  <h2><a name="otherparams"> Other  SRE-FILTER Parameters </a> </h2>  '
  344.    call lineout tempfile,' Note that the following parameters and filenames: <ol>'
  345.    call lineout tempfile,' <li> Either apply to a  different HOST.  To change them, '
  346.    call lineout tempfile,' re-run this configurator with a different HOST NICKNAME'
  347.    if nickname<>' ' then do
  348.      call lineout tempfile,' <li>Are non-host specific parameters (which may'
  349.      call lineout tempfile,' be used if there is no host-specific entry for the parameter)'
  350.    end
  351.    call lineout tempfile,' <li>Are parameters that this configurator will not modify.'
  352.  
  353.    call lineout tempfile," <em> To change them, you'll have to edit INITFILT."aport
  354.    call lineout tempfile,' </em> </ol> <br>'
  355.    call lineout tempfile, ' <blockquote> <code> <menu>'
  356.  
  357.   spuds=0
  358.    do mm=1 to filelines.0               /* write other host/ misc lines */
  359.        findit=filelines.mm.name
  360.        if findit=0 then iterate
  361.        IF FILELINES.MM.IGOT=1 then ITERATE
  362.        avalue=filelines.mm.value
  363.        dostem=filelines.mm.stem
  364.        spuds=spuds+1
  365.        tofus.spuds.afindit=findit
  366.        tofus.spuds.aavalue=avalue
  367.        tofus.spuds.adostem=dostem
  368.        tofus.spuds.jdone=0
  369.    end
  370. /* sort into "non-host specific" and "host-specific" terms */
  371.    do mu=1 to spuds             /* the non-host specific terms */
  372.        dostem=tofus.mu.adostem
  373.        findit=tofus.mu.afindit
  374.        avalue=tofus.mu.aavalue
  375.        if dostem=' ' then do
  376.           call lineout tempfile, " <li> <b>" findit "</b> =<tt> " avalue '</tt> <br>'
  377.           tofus.mu.jdone=1
  378.        end
  379.        else do
  380.           foox=lastpos('.',dostem)
  381.           yeek=substr(dostem,foox+1)
  382.           if datatype(yeek)='NUM' then do
  383.               call lineout tempfile, " <li> <b>" findit ||'.'|| dostem "</b> =<tt> " avalue '</tt> <br>'
  384.               tofus.mu.jdone=1
  385.           end
  386.        end
  387.    end /* do */
  388.    call lineout tempfile,'</menu><br><menu> '
  389.  
  390. ndid=1
  391. do until ndid=0
  392.    ndid=0
  393.  
  394.    do mu=1 to spuds
  395.        if tofus.mu.jdone=1 then iterate
  396.        ndid=ndid+1
  397.        dostem=tofus.mu.adostem
  398.        foox=lastpos('.',dostem)
  399.        yhost=substr(dostem,foox+1)
  400.        if ndid=1 then do
  401.           nowhost=yhost
  402.        end
  403.        else do
  404.            if yhost<>nowhost then iterate
  405.        end  /* Do */
  406.        findit=tofus.mu.afindit
  407.        avalue=tofus.mu.aavalue
  408.        if dostem=' ' then do
  409.           call lineout tempfile, " <li> <b>" findit "</b> =<tt> " avalue '</tt> <br>'
  410.           tofus.mu.jdone=1
  411.        end
  412.        else do
  413.            call lineout tempfile, " <li> <b>" findit ||'.'|| dostem "</b> =<tt> " avalue '</tt> <br>'
  414.            tofus.mu.jdone=1
  415.        end
  416.    end /* do */
  417.    call lineout tempfile,'</menu><br><menu> '
  418.  
  419. end
  420. call lineout tempfile,'</menu>'
  421.  
  422.  
  423. call lineout tempfile,' </menu> '
  424. call lineout tempfile,'<p> <em> Note: REXX Comments may point to parameter-entry errors! </em>  '
  425. call lineout tempfile,' </blockquote> <hr> </body> </html> '
  426. call lineout tempfile
  427.  
  428. tt=sref_expire_response(0.05,dosdir(tempfile,'s'))
  429. 'FILE ERASE TYPE text/html NAME' tempfile
  430.  
  431. signal off error ; signal off syntax
  432. return ' '
  433.  
  434. end
  435.  
  436.  
  437. /* ****************      CHANGE THEM --------------------------------. */
  438. else do
  439.  
  440.  
  441.  call lineout tempfile, '<!doctype html public "-//IETF//DTD HTML 3.0//EN">'
  442.   call lineout tempfile, "<html><head><title>SRE-Filter Intermediate Mode Configurator: Modify Parameters </title>"
  443.         call lineout tempfile, '</head><body bgcolor="#'||usecolor||'">'
  444.  
  445.         call lineout tempfile,' <h1> SRE-Filter Configurator: Intermediate Mode </h1>'
  446.   call lineout tempfile,'<h2>  Change parameter values </h2>'
  447.   call lineout tempfile,'This form allows you to change most (but not all) of the SRE-Filter parameters. '
  448.   call lineout tempfile,'The current values are shown, and are retained if not explicitily modified.'
  449.  
  450.   if  nickname<>' 'then do
  451.      call lineout tempfile,' <p> You selected the <strong> ' nickname '</strong> host nickname.'
  452.      call lineout tempfile,' Parameters specific to <strong> ' nickname '</strong> '
  453.      call lineout tempfile,'will be displayed (and modified). '
  454.      call lineout tempfile,'<br> <em>Note:</em> When  a <strong> ' nickname '</strong>  specific parameter is not available,'
  455.      call lineout tempfile,' the default (non host-specific) version is used.'
  456.  
  457.   end  /* Do */
  458.  
  459.   call lineout tempfile,'<p><em> If the explanations here are insufficient, '
  460.   call lineout tempfile,' <a href="/samples/initfilt.doc">INITFILT.DOC</a>'
  461.   call lineout tempfile,'might help!</em>'
  462.   call lineout tempfile,'<HR WIDTH=40%>'
  463.   call lineout tempfile,' Notes: <ul>'
  464.   if nickname<>' ' then do
  465.      call lineout tempfile,' <li> If you want to leave a field blank, <strong>we advise inserting a 0 </strong> -- since SRE-Filter will attempt '
  466.      call lineout tempfile,' to use the default (non host-specific) parameter whenever it finds an empty variable (this'
  467.      call lineout tempfile,' is a design "feature" ' " of REXX's use of the OS/2 environment)!<br>"
  468.   end
  469.   call lineout tempfile,' <li> To change the "more obscure" parameters not mentioned here you will have to'
  470.   call lineout tempfile,' edit INITFILT.'||aport ' by hand (see INITFILT.DOC for details) '
  471.   call lineout tempfile,'<li> A caution: '
  472.   call lineout tempfile," do not use <code>single quote</code> (<strong>'</strong>) characters (they will cause errors)!"
  473.   call lineout tempfile,'</ul><hr>'
  474.   call lineout tempfile,'<FORM ACTION="config2" METHOD="POST">'
  475.  
  476.   call lineout tempfile,' <em> <A NAME="section0">Quick jumps...</A> </em> <br>'
  477.  
  478.   call lineout tempfile,'  <dl> <dt> <A HREF="#section1">Logon, privileges, HOSTS, and Public URLS</A> '
  479.   call lineout tempfile,' <dd> CHECKLOG, OWNERS, INHOUSEIPS. INHOUSE_PRIV, PUBLIC_PRIVS, UNALLOWED_IPS., DNS_CHECK, HOSTS., PUBLIC_URLS.'
  480.   call lineout tempfile,' <dt><A HREF="#section2">Request modification </A>'
  481.   call lineout tempfile,' <dd> DEFAULT, HOME_DIR, NOEXT_TYPE, AUTO_NAME DIR_OPTIONS DIR_EXCLUSION DIR_ACCESS DIR_ACCESS_PRIVS'
  482.   call lineout tempfile,'<dt><A HREF="#section3"> Access and Auditing</A> '
  483.   call lineout tempfile,' <dd> ALLOW_ACCESS, DO_HTACCESS, WRITE_LOGS, RECORD_OPTION, HIT_CACHE_LEN, HIT_CACHE_DURATION, HIT_OWNER_SUPPRESS, CHECK_ADD_PRIVS '
  484.   call lineout tempfile,' <dt><A HREF="#section4">SSI control, Response Header, Pre-filter and Post-Filter, and Uploading</A> '
  485.   call lineout tempfile,' <dd> AUTO_HEADER, PRE_FILTER, POST_FILTER, SSI_SHTML_ONLY, SSI_CACHE_ON, SMTP_GATEWAY, UPLOAD_MINFREE, UPLOAD_MAXSIZE '
  486.   call lineout tempfile,' <dt><A HREF="#section5">String Replacements</A> '
  487.   call lineout tempfile,' <dd> HEADERS., FOOTERS., INHOUSE. message, SUPERUSER. message, WEBMASTER address, HOME_NAME '
  488.   call lineout tempfile,'<dt><A HREF="#section5a"> Miscellaneous</A> '
  489.   call lineout tempfile,' <dd> THE_REALM, OPTION_HIT_LINE, NOT_FOUND_URL, FIX_EXPIRE '
  490.   call lineout tempfile,'<dt><A HREF="#section6"> File & Directory Names</A> '
  491.   call lineout tempfile,'</dl> <p> <em> and when you are done.. </em> '
  492.   call lineout tempfile,'<INPUT TYPE="submit" VALUE="make the changes">, '
  493.   call lineout tempfile,' <em> or you can </em> '
  494.   call lineout tempfile,'<INPUT TYPE="reset" VALUE="reset to current values">'
  495.  
  496.  
  497.  
  498.   call lineout tempfile,' <hr width=80%> '
  499.  
  500.   call lineout tempfile,' <H3><a name="section1"> Logon, Privileges, and Public URLS </a></H3>'
  501.  
  502.   call lineout tempfile,'<dl>'
  503.  
  504.  
  505. /* CHECKLOG */
  506.  
  507.   call lineout tempfile,'<dt> <strong>CHECKLOG</strong>:'
  508.   v.1="NO" ; v.2="YES" ; v.3="ALWAYS" ; v.4="INHOUSE" ;
  509.   foo=do_radio(1,4)
  510.   call lineout tempfile,'<dd>'
  511.   call lineout tempfile,'CHECKLOG controls the logon-level:'
  512.   call lineout tempfile,'<ul>'
  513.   call lineout tempfile,'<LI>NO : Logon never required'
  514.   call lineout tempfile,'<LI>YES : Logon required for "empty" (home-page) requests'
  515.   call lineout tempfile,'<LI>ALWAYS : Logon required for any request'
  516. call lineout tempfile,'<LI>INHOUSE : Only requesters with predefined, or explicitily granted (in the'
  517. call lineout tempfile,'USERS.IN file) privileges of INHOUSE or SUPERUSER are allowed in.'
  518. call lineout tempfile,'</ul>'
  519.  
  520.  
  521. /* owners */
  522. call lineout tempfile,'<hr><dt> <strong>OWNERS</strong>:'
  523. call lineout tempfile,' <INPUT TYPE="text" NAME="OWNERS" '
  524. thisval=find_val(2,2)
  525.  
  526. call lineout tempfile,'value="' thisval '"'
  527. call lineout tempfile,' SIZE=30 MAXLENGTH=180>'
  528. call lineout tempfile,'<dd>'
  529. call lineout tempfile,'OWNERS is a space delimited list of  <strong>numeric </strong> IP addresses of the OWNERS.  Owners'
  530. call lineout tempfile,'are automatically granted SUPERUSER privileges.'
  531. call lineout tempfile,'<em>Wildcards are NOT allowed in the OWNERS list </em>'
  532.  
  533. /* INHOUSEIPS.ips */
  534. foo=find_val(3,2)
  535. call lineout tempfile,'<hr><dt> <strong>INHOUSEIPS.</strong>:'
  536. call lineout tempfile,' <TEXTAREA NAME="'||param.3||'." ROWS=4 COLS=25>'
  537. call lineout tempfile,foo
  538. call lineout tempfile,'</TEXTAREA>'
  539. call lineout tempfile,'<dd>'
  540. call lineout tempfile,' INHOUSEIPS. is a "stem" variable that contains the IP '
  541. call lineout tempfile,' addresses (numeric or name) of requesters who will be automatically granted INHOUSE privileges.'
  542. call lineout tempfile,' <br> You should enter each of these addresses on a <strong> seperate line </strong> .'
  543. call lineout tempfile,' <em> Wildcards (the * character) are allowed</em>'
  544. call lineout tempfile,' <p> In addition, you can put (optional)privileges after the '
  545. call lineout tempfile, ' the IP address. '
  546. call lineout tempfile,' <BR> Examples: <ul> <li> 152.22.12.* <li>515.21.512.51 VIEWMESS PROJ1'
  547. call lineout tempfile,' <li> pf.ourisp.org  <li>551.21.512.* </ul> '
  548. call lineout tempfile, ' <br> Note that 515.21.512.51 is granted VIEWMESS and PROJ1 privileges '
  549. call lineout tempfile, " (in addition to the INHOUSE_PRIV's privleges) "
  550.  
  551.  
  552. /*INHOUSE_PRIVS*/
  553. call lineout tempfile,'<hR><dt> <strong>INHOUSE_PRIVS</strong>:'
  554. call lineout tempfile,' <INPUT TYPE="text" NAME="INHOUSE_PRIVS" '
  555. foo=find_val(21)
  556. call lineout tempfile,'value="' foo '"'
  557. call lineout tempfile,' SIZE=30 MAXLENGTH=180>'
  558. call lineout tempfile,'<dd> INHOUSE_PRIVS is a space delimited list of  "extra"'
  559. call lineout tempfile,' privileges to give to OWNERS and to IN-HOUSE requesters.'
  560. call lineout tempfile,' <br>It is <em> highly</em> recommended that <strong>INHOUSE</strong>'
  561. call lineout tempfile,' be included in this list! <p>'
  562. call lineout tempfile,' Example: if you want to give all IN-HOUSE requesters '
  563. call lineout tempfile,' message-box reading privileges, add VIEWMESS to this list.'
  564.  
  565. /*PUBLIC_PRIVS*/
  566. call lineout tempfile,'<hR><dt> <strong>PUBLIC_PRIVS</strong>:'
  567. call lineout tempfile,' <INPUT TYPE="text" NAME="PUBLIC_PRIVS" '
  568. foo=find_val(22)
  569. call lineout tempfile,'value="' foo '"'
  570. call lineout tempfile,' SIZE=30 MAXLENGTH=180>'
  571. call lineout tempfile,'<dd> PUBLIC_PRIVS is a space delimited list of "extra" '
  572. call lineout tempfile,' privileges to give to  everyone. '
  573.  
  574.  
  575. /* Unallowed ips */
  576. foo=find_val(4,2)
  577. call lineout tempfile,'<hr><dt> <strong>UNALLOWEDIPS.</strong>:'
  578. call lineout tempfile,' <TEXTAREA NAME="'||param.4||'." ROWS=4 COLS=25>'
  579. call lineout tempfile,foo
  580. call lineout tempfile,'</TEXTAREA>'
  581. call lineout tempfile,'<dd>'
  582. call lineout tempfile,' UNALLOWEDIPS. is the "opposite" of INHOUSEIPS. It is a list of '
  583. call lineout tempfile,' the IP addresses of requesters who will NOT be allowed access.'
  584. call lineout tempfile,' Note  INHOUSEIPS. and OWNERS takes precedence over UNALLOWEDIPS.'
  585. call lineout tempfile,' Thus, entering *.*.*.* as an UNALLOWEDIPS. will keep everyone, except '
  586. call lineout tempfile,' OWNERS and INHOUSE requesters, out! '
  587.  
  588. /* DNS_CHECK */
  589.   call lineout tempfile,'<hr><dt> <strong>DNS_CHECK</strong>:'
  590.   v.1="NO" ; v.2="YES"
  591.   foo=do_radio(30,2)
  592.   call lineout tempfile,'<dd>'
  593.   call lineout tempfile,'DNS_CHECK controls whether a domain name check should occur:'
  594.   call lineout tempfile,'<ul>'
  595.   call lineout tempfile,"<LI>NO : Do not check the user's <tt> IP Name </tt> "
  596.   call lineout tempfile,"<LI>YES : Get the user's <tt> IP Name </tt> (by calling the DNS), and deny access if not found"
  597.   call lineout tempfile,'</ul>'
  598.   call lineout tempfile,' DNS_CHECK=YES  provides extra security, but will slow response time '
  599.   call lineout tempfile, ' (and may keep out legitimate clients with faulty DNS servers).'
  600.  
  601. /* hosts */
  602. foo=""
  603. call lineout tempfile,'<hr><dt> <strong>HOSTS.</strong>:'
  604. call lineout tempfile,' <TEXTAREA NAME="'||param.33||'." ROWS=4 COLS=45>'
  605. foo=find_val(33,1)
  606. call lineout tempfile,foo
  607. call lineout tempfile,'</TEXTAREA>'
  608. call lineout tempfile,'<dd>'
  609. call lineout tempfile,'HOSTS. is a stem variable used to identify what HOSTS '
  610. call lineout tempfile,'GoServe is servicing.'
  611. call lineout tempfile,'Each HOSTS. entry should contain the following comma-delimited information:<br>'
  612. call lineout tempfile,'<code> IP_address , host_nickname , default_dir</code> <p>'
  613. call lineout tempfile,'Where <blockquote>'
  614. call lineout tempfile,'<STRONG>IP_address</STRONG> is the IP address (numeric or character) of the host. <br>'
  615. call lineout tempfile,' <STRONG>host_nickname</STRONG> is the "nickname" that you will use to refer to this host <br>'
  616. call lineout tempfile,' <STRONG>default_directory</STRONG> is the default data directory for this host </blockquote>'
  617. call lineout tempfile,' Examples:<MENU>'
  618. call lineout tempfile,'<LI>www.ag.gov , main , e:\WWW1  <br>'
  619. call lineout tempfile,'<LI>w3.ag.gov , second , e:\WWW2  <LI> 0</MENU>'
  620. if nickname<>' ' then
  621.   call lineout tempfile,'<p><strong> Reminder: the HOSTS. parameters are NOT host-specific! </strong>'
  622.  
  623. /* public urls */
  624. foo=find_val(23)
  625. call lineout tempfile,'<hr><dt> <strong>PUBLIC_URLS.</strong>:'
  626. call lineout tempfile,' <TEXTAREA NAME="'||param.23||'." ROWS=4 COLS=25>'
  627. call lineout tempfile,foo
  628. call lineout tempfile,'</TEXTAREA>'
  629. call lineout tempfile,'<dd>'
  630. call lineout tempfile,' PUBLIC_URLS. is a "stem" variable that contains a '
  631. call lineout tempfile,' list of "publically accessible URLs".  These URLs '
  632. call lineout tempfile,'will be available to all requesters -- no logon or '
  633. call lineout tempfile,'access control is attempted when PUBLIC_URLS are requested.<br>'
  634. call lineout tempfile,'PUBLIC_URLS. entry may include * (for wildcard matching). <br>'
  635. call lineout tempfile,'You can also specify <strong>LITERAL </strong> PUBLIC_URLS. <br>'
  636. call lineout tempfile,' <em> Note that PUBLIC_URLS. entries  will be checked against your ALIASES</em>'
  637.  
  638. call lineout tempfile,'</dl>  '
  639. call lineout tempfile,' <hr width=40%>  '
  640. call lineout tempfile,' <A HREF="#section0"><EM>go to top of document</EM></A> '
  641. call lineout tempfile,' <hr width=40%>  '
  642. call lineout tempfile,'  <H3><A name="section2">Request Modification </a3> </H3>'
  643. call lineout tempfile,' <dl> '
  644.  
  645. /* DEFAULT */
  646. call lineout tempfile,'<p> <dt> <strong>DEFAULT</strong>:'
  647. call lineout tempfile,' <INPUT TYPE="text" NAME="DEFAULT" '
  648. foo=find_val(5)
  649. call lineout tempfile,'value="' foo '"'
  650. call lineout tempfile,' SIZE=30 MAXLENGTH=180>'
  651. call lineout tempfile,'<dd>'
  652. call lineout tempfile,' Enter the name of the HTML document to be used as your '
  653. call lineout tempfile,' "default document" (your home page).  This will be used '
  654. call lineout tempfile,' when an empty request selector is recieved. <br>Note that  '
  655. call lineout tempfile,' INDEX.HTM (located in the root of your "data directory") '
  656. call lineout tempfile, ' is often used as the default document.'
  657.  
  658.  
  659.  
  660. /* HOME_DIR */
  661. call lineout tempfile,'<hR><dt> <strong>HOME_DIR</strong>:'
  662. call lineout tempfile,' <INPUT TYPE="text" NAME="HOME_DIR" '
  663. foo=find_val(7)
  664. call lineout tempfile,'value="' foo '"'
  665. call lineout tempfile,' SIZE=30 MAXLENGTH=180>'
  666. call lineout tempfile,'<dd>'
  667. call lineout tempfile,' HOME_DIR is used when a ~ appears in the request selector. '
  668. call lineout tempfile,' Typically, it is a shorthand for a "home directory" --'
  669. call lineout tempfile,' under which personal directories are placed.'
  670. call lineout tempfile,' <br>Advanced option:  include a $ to specify a <em> web subdirectory </em>'
  671. call lineout tempfile,' of the  <em> personal </em> directory.'
  672.  
  673.  
  674. /* NOEXT_TYPE */
  675. call lineout tempfile,'<hR><dt> <strong>NOEXT_TYPE</strong>:'
  676. v.1="NO" ; v.2="DIR" ; V.3="REDIR" ; v.4="HTM" ; v.5="HTML"
  677.   foo=do_radio(27,5)
  678. call lineout tempfile,'<dd> NOEXT_TYPE controls how SRE-FILTER handles request that '
  679. call lineout tempfile,' have no extension, that do not have a ? in them, and that do not '
  680. call lineout tempfile,' end with a /.  <ul> <li> NO : Use as is '
  681. call lineout tempfile,' <li>DIR: Treat as directories (append a / to the end) '
  682. call lineout tempfile,' <li>REDIR: Append a /, and then redirect '
  683. call lineout tempfile,' <li> HTM or HTML : Treat as HTML documents (append a '
  684. call lineout tempfile,' .HTM or a .HTML respectively) </ul>'
  685.  
  686.  
  687.  
  688. /* AUTO_NAME */
  689. call lineout tempfile,'<hR><dt> <strong>AUTO_NAME</strong>:'
  690. call lineout tempfile,' <INPUT TYPE="text" NAME="AUTO_NAME" '
  691. foo=find_val(8)
  692. call lineout tempfile,'value="' foo '"'
  693. call lineout tempfile,' SIZE=30 MAXLENGTH=180>'
  694. call lineout tempfile,'<dd>'
  695. call lineout tempfile,' AUTO_NAME is a space delimited list of "default document for directories".'
  696. call lineout tempfile,' It is used when <code>NOEXT_TYPE=DIR</code>, and a  request for a '
  697. call lineout tempfile, 'directory name (an <code>action</code> that ends with a /) is recieved.'
  698. call lineout tempfile,' <br> Notes: <menu> <li> a *.HTM (or *.HTML)  means "use a file '
  699. call lineout tempfile,     ' called directory_name.htm (or .html) " '
  700. call lineout tempfile, ' (if it exists in the requested directory) '
  701. call lineout tempfile,' <li> !CREATE means "create a list of links to each file in the directory </menu>'
  702.  
  703.  
  704. /* DIR_OPTIONS */
  705. call lineout tempfile,'<hR><dt> <strong>DIR_OPTIONS</strong>:'
  706. call lineout tempfile,' <INPUT TYPE="text" NAME="DIR_OPTIONS" '
  707. foo=find_val(40)
  708. call lineout tempfile,'value="' foo '"'
  709. call lineout tempfile,' SIZE=50 MAXLENGTH=180>'
  710. call lineout tempfile,'<dd>'
  711. call lineout tempfile," DIR_OPTIONS is used by the DIR: SRE-Filter's built in directory lister."
  712. call lineout tempfile,' <br> It is used to customize the format and content of the directory listing.'
  713. call lineout tempfile,'<br>Notes:<menu><li>DIR_OPTIONS should contain a space-delimited list of options'
  714. call lineout tempfile, '<li> DIR is used when a !CREATE option is included in '
  715. call lineout tempfile,' the AUTO_NAME variable </ul>'
  716.  
  717.  
  718.  
  719. /* DIR_Exclusion */
  720. call lineout tempfile,'<hR><dt> <strong>DIR_EXCLUSION</strong>:'
  721. call lineout tempfile,' <INPUT TYPE="text" NAME="DIR_EXCLUSION" '
  722. foo=find_val(41)
  723. call lineout tempfile,'value="' foo '"'
  724. call lineout tempfile,' SIZE=50 MAXLENGTH=180>'
  725. call lineout tempfile,'<dd>'
  726. call lineout tempfile," DIR_EXCLUSION is used by !DIR: SRE-Filter's built in directory lister."
  727. call lineout tempfile,' <br> It is used to indicate files and directories that should <b>not</b> be displayed.'
  728. call lineout tempfile,'<br>Notes:<menu><li>DIR_EXCLUSION should contain a space-delimited list of filenames and directory names'
  729. call lineout tempfile,' <li> To indicate subdirectories, start the directory name with a / '
  730. call lineout tempfile,' <LI> You can use * as a wildcard character '
  731. call lineout tempfile,' the AUTO_NAME variable </ul>'
  732.  
  733.  
  734. /* DIR_EXCLUSION */
  735. call lineout tempfile,'<hR><dt> <strong>DIR_ACCESS</strong>:'
  736. call lineout tempfile,' <INPUT TYPE="text" NAME="DIR_ACCESS" '
  737. foo=find_val(44)
  738. call lineout tempfile,'value="' foo '"'
  739. call lineout tempfile,' SIZE=50 MAXLENGTH=180>'
  740. call lineout tempfile,'<br> and <strong>DIR_ACCESS_PRIVS:</strong>'
  741. call lineout tempfile,' <br><INPUT TYPE="text" NAME="DIR_ACCESS_PRIVS" '
  742. foo=find_val(45)
  743. call lineout tempfile,'value="' foo '"'
  744. call lineout tempfile,' SIZE=50 MAXLENGTH=180>'
  745.  
  746. call lineout tempfile,'<dd>'
  747. call lineout tempfile," DIR_ACCESS is used by !DIR: SRE-Filter's built in directory lister."
  748. call lineout tempfile,' <br> It is used to indicate directories that should be displayed <b>only</b> to clients with one of the DIR_ACCESS_PRIVS <em>client</em> privileges.'
  749. call lineout tempfile,'<br>Notes:<menu><li>DIR_ACCESS should contain a space-delimited list of (relative) directory names'
  750. call lineout tempfile,' <br> You can use * as a wildcard character '
  751.  
  752. call lineout tempfile,'<li>DIR_ACCESS_PRIVS should contain a space-delimited list of <em>client privileges</em> '
  753. call lineout tempfile,'</ul>'
  754.  
  755. call lineout tempfile,'</dl>  '
  756. call lineout tempfile,' <hr width=40%>  '
  757. call lineout tempfile,' <A HREF="#section0"><EM>go to top of document</EM></A> '
  758. call lineout tempfile,' <hr width=40%>  '
  759. call lineout tempfile,'<H3><A name="section3"> Access and Auditing </a></H3>'
  760. call lineout tempfile,'<dl> '
  761.  
  762. /* ALLOW_ACCESS */
  763. call lineout tempfile,'<p><dt> <strong>ALLOW_ACCESS</strong>:'
  764.   v.1="YES" ; v.2="INHOUSE" ; v.3="NO"
  765.   foo=do_radio(9,3)
  766. call lineout tempfile,'<dd>ALLOW_ACCESS turns on and off "URL" specific access control'
  767. call lineout tempfile,' <ul> <LI>YES = Do not check (allow all requests to go through'
  768. call lineout tempfile,' <LI> INHOUSE = Check access privileges of everyone except OWNERS or INHOUSE requesters.'
  769. call lineout tempfile,' <LI>  NO = Check access privileges of everyone except OWNERS '
  770. call lineout tempfile, ' (those with SUPERUSER privileges) </ul>'
  771. call lineout tempfile,' Notes: <menu><li> ALLOW_ACCESS uses the ACCESS_FILE to store file-specific access information'
  772. call lineout tempfile,'  </ul>'
  773.  
  774.  
  775. /* DO_HTACCESS */
  776. call lineout tempfile,'<hr><dt> <strong>DO_HTACCESS</strong>:'
  777. htfile=get_value('DO_HTACCESS')
  778.   v.1="YES" ;  v.2="NO"
  779.   foo=do_radio(34,2)
  780. call lineout tempfile,'<dd>DO_HTACCESS turns on and off the HTACCESS-file method "directory" specific access controls'
  781. call lineout tempfile,' <ul> <LI>YES = Look for, and use, HTACCESS files to control access '
  782. call lineout tempfile,' <LI>  NO = Do not attempt to use HTACCESS files </ul>'
  783. call lineout tempfile,' Notes: <menu><li> ALLOW_ACCESS and DO_HTACCESS can be used simultaneously '
  784. call lineout tempfile,'<li> The  name of (directory specific) HTACCESS file is set using the <var>HTACCESS_FILE</var> variable.'
  785. call lineout tempfile,' <br> <var> HTACCESS_FILE </var> is currently:<strong> ' htfile '</strong>'
  786.  
  787. call lineout tempfile,'  </ul>'
  788.  
  789.  
  790. /* write common-log */
  791. call lineout tempfile,'<hr><dt> <strong>WRITE_LOGS</strong>:'
  792.   v.1="YES" ; v.2="NO"
  793.   foo=do_radio(43,2)
  794. call lineout tempfile,'<dd> WRITE_LOGS instructs SRE-FILTER to record requests in'
  795. call lineout tempfile,' the <b>common-log</b> audit file (and in the browser and referer log files).'
  796. call lineout tempfile,' <ul> <LI> NO = Do  <b>NOT</b> record requests in the log files.'
  797. call lineout tempfile,' <LI>YES =Record requests </ul>'
  798. call lineout tempfile,' Note: see the SREFLOGS.INI file for additional common-log options. <br>'
  799.  
  800.  
  801. /*RECORD_OPTION */
  802. call lineout tempfile,'<hr><dt> <strong>RECORD_OPTION</strong>:'
  803.   v.1="YES" ; v.2="YES_ALL" ; v.3="FILE" ; v.4="NO" ;
  804.   foo=do_radio(10,4)
  805. call lineout tempfile,'<dd> RECORD_OPTION turns on and off "recording all requests"'
  806. call lineout tempfile,' <ul> <LI>YES = Record all requests, but remove arguments (such as <code>?xxx</code>) first'
  807. call lineout tempfile,' <LI>YES_ALL = Record all requests, but do not remove "arguments" '
  808. call lineout tempfile,' (this can lead to a lot of unique entries!) '
  809. call lineout tempfile,' <li> FILE = Record all request by absolute file name (rather then by "URL") '
  810. call lineout tempfile,' <LI>  NO = Do not record all requests </ul>'
  811. call lineout tempfile,' Notes: <br>'
  812. call lineout tempfile,' i) RECORD_OPTIONS uses the RECORD_ALL_FILE to keep track of the number '
  813. call lineout tempfile,' of requests recieved, and the date of the most recent request.<br>'
  814. call lineout tempfile,' ii) Requests that are not "honored" (due to logon or access constraints) are NOT recorded'
  815.  
  816.  
  817. /* hit_cache_len and hit_cache_duration */
  818. call lineout tempfile,' <hr> <dt> <strong> HIT_CACHE_LEN: '
  819. call lineout tempfile,' <INPUT TYPE="text" NAME="HIT_CACHE_LEN" '
  820. foo=find_val(36)
  821. call lineout tempfile,'value="' strip(foo) '" '
  822. call lineout tempfile,' SIZE=10 MAXLENGTH=10> <br>'
  823. call lineout tempfile,' HIT_CACHE_DURATION: </strong>'
  824. call lineout tempfile,' <INPUT TYPE="text" NAME="HIT_CACHE_DURATION" '
  825. foo=find_val(37)
  826. call lineout tempfile,', value="' strip(foo)'" '
  827. call lineout tempfile,' SIZE=10 MAXLENGTH=10>'
  828.  
  829. call lineout tempfile,'<dd>'
  830. call lineout tempfile,' The HIT_CACHE_ variables are used to prevent recording of "false requests",'
  831. call lineout tempfile,' that occur when a client repetitively reloads a document<br>'
  832. call lineout tempfile,'  HIT_CACHE_LEN is the number of entries (in menory) set aside for the <em>hit </em> storage cache<br>'
  833. call lineout tempfile,' <blockquote> On busy sites, small values of this will cause entries to be prematurely lost.'
  834. call lineout tempfile,' Alternatively, use a value of <b>FILE</b>  -- entries will be stored in a file'
  835. call lineout tempfile,' (this is slower, but might be safer if you are storing thousands of hits) </blockquote>'
  836. call lineout tempfile,' HIT_CACHE_DURATION is the time (in minutes) each entry is retained.<p>'
  837. call lineout tempfile,' Note that each entry contains a request selector and client IP address '
  838. call lineout tempfile,' (averaging around 50 bytes). '
  839.  
  840.  
  841. call lineout tempfile,'<hr><dt> <strong>HIT_OWNER_SUPPRESS</strong>:'
  842.   v.1="YES" ; v.2="NO"
  843.   foo=do_radio(38,2)
  844. call lineout tempfile,'<dd> HIT_OWNER_SUPPRESS instructs SRE-FILTER to <b>not</b> record '
  845. call lineout tempfile,' from <b>OWNERS</b> (as listed in the OWNERS variable).'
  846. call lineout tempfile,' <ul> <LI>YES = Do NOT record such requests.'
  847. call lineout tempfile,' <LI>NO =allow recording </ul>'
  848.  
  849.  
  850. call lineout tempfile,'<hr><dt> <strong>CHECK_ADD_PRIVS</strong>:'
  851.   v.1="YES" ; v.2="NO"
  852.   foo=do_radio(39,2)
  853. call lineout tempfile,'<dd> CHECK_ADD_PRIVS instructs SRE-FILTER to check the dynamic privileges <code>cache</code>. '
  854. call lineout tempfile," <Ul> <li>YES = Check the dynamic privileges cache for entries that match this client's IP address"
  855. call lineout tempfile,' <LI> NO = Do not check </ul>'
  856. call lineout tempfile,' <em> The dynamic-privileges <code>cache</code> is used to grant additional, "transient", '
  857. call lineout tempfile,' privileges to a client.</em>'
  858.  
  859.  
  860. call lineout tempfile,'</dl>  '
  861. call lineout tempfile,' <hr width=40%>  '
  862. call lineout tempfile,' <A HREF="#section0"><EM>go to top of document</EM></A> '
  863. call lineout tempfile,' <hr width=40%>  '
  864. call lineout tempfile,' <H3><a name="section4">Response Header, Pre-filter, and Uploading </a></H3>'
  865. call lineout tempfile,' <dl> '
  866.  
  867.  
  868. /*AUTO_HEADER */
  869. call lineout tempfile,'<p><dt> <strong>AUTO_HEADER</strong>:'
  870.   v.1="NO" ; v.2="HEAD" ; v.3="ALWAYS"
  871.   foo=do_radio(24,3)
  872. call lineout tempfile,'<dd> AUTO_HEADER controls the "automatic creation of response headers"'
  873. call lineout tempfile,'<ul> <LI>NO = Do not create additional response headers '
  874. call lineout tempfile,'<LI>HEAD = Automatic creation of response headers for HEAD requests'
  875. call lineout tempfile,'<LI>ALWAYS= Automatic creation of response headers fo GET and  HEAD requests'
  876. call lineout tempfile,'</ul> Note: When active, LINK and META HTTP-EQUIV elements found in the '
  877. call lineout tempfile,'<HEAD> portion of an HTML document are used to generate additional response headers'
  878.  
  879. /*PRE_FILTER */
  880. call lineout tempfile,'<hr><dt> <strong>PRE_FILTER</strong>:'
  881.   v.1="NO" ; v.2="YES" ; v.3="FIRST"
  882.   foo=do_radio(29,3)
  883. call lineout tempfile,'<dd> PRE_FILTER controls whether the PREFILTR  "pre-filter" is called '
  884. call lineout tempfile,' before SRE-FILTER processes the request .'
  885. call lineout tempfile,' <ul> <li> NO = Do not call a pre-filter '
  886. call lineout tempfile,'  <li> YES =Call a pre-filter after ascertaining logon rights'
  887. call lineout tempfile,' <li> FIRST = Call a pre-filter before anything else </ul>'
  888. call lineout tempfile,'<br> Notes: <menu><li>The default pre-filter procedure is PREFILTR.80'
  889. call lineout tempfile,' <li> To change the name of the pre-filter procedure, '
  890. call lineout tempfile,' you will have to "hand edit" the PREFILTER_NAME parameter'
  891. call lineout tempfile," <li> SRE-FILTER's default pre-filter (PREFILTR.80) implements"
  892. call lineout tempfile,' the GoRemote server remote control package.'
  893. call lineout tempfile,' <li><em>Suggestion:</em>To perform simple load balancing, change the BackupServerList and '
  894. call lineout tempfile,' LoadThreshold variables in SREFILTER.80 (see INITFILT.DOC for details)</menU>'
  895.  
  896. /*POST_FILTER */
  897. call lineout tempfile,'<hr><dt> <strong>POST_FILTER</strong>:'
  898.   v.1="YES" ; v.2="NO"
  899.   foo=do_radio(28,2)
  900. call lineout tempfile,'<dd> POST_FILTER instructs SRE-FILTER to call a set of "post-filters"'
  901. call lineout tempfile,' <ul> <LI>YES = Call the post-filter procedure(s).'
  902. call lineout tempfile,' <LI>NO = do not call </ul>'
  903. call lineout tempfile,' If POST_FILTER=YES, then the postfilter(s) will be called <strong>after</strong>'
  904. call lineout tempfile,' the response has been sent to the client '
  905. call lineout tempfile,' <br> Notes: <menu> <LI> The default Post-filter is POSTFILT.80 '
  906. call lineout tempfile,' <li> To change the name(s) of the pre-filter procedure,'
  907. call lineout tempfile,'  you will have to "hand edit" the POSTFILTER_NAME parameter.'
  908. call lineout tempfile,' <li> SRE-Filter includes a few sample post-filters (POSTMAIL.80 and POSTRCRD.80) </menu>'
  909.  
  910.  
  911. /* SSI_SHTML_ONLY */
  912. call lineout tempfile,'<hr><dt> <strong>SSI_SHTML_ONLY</strong>:'
  913.   v.1="YES" ; v.2="NO"
  914.   foo=do_radio(32,2)
  915. call lineout tempfile,'<dd> SSI_SHTML_ONLY is used to tell SRE-Filter to attempt '
  916. call lineout tempfile,' server side includes <em> only </em> on files with a "SHTML" '
  917. call lineout tempfile,' extension -- other html/text files (say, with .HTM or .HTML'
  918. call lineout tempfile,' extensions) will NOT be checked for server side includes. '
  919. call lineout tempfile,'<p> Select <b>YES</b> to turn SSI_SHTML_ONLY on, '
  920. call lineout tempfile,'<Br> <b>NO</b> to attempt server side includes on all html/text files '
  921. call lineout tempfile,'<p>Notes:<menu><li> SRE-Filter defines four extensions as "SHTML extensions": '
  922. call lineout tempfile,' .SHTML, .SHT, .HTM-SSI and .HTML-SSI.'
  923. call lineout tempfile,' <li> To add or modify this list, change the SSI_EXTENSIONS variable '
  924. call lineout tempfile,' (see INITFILT.DOC for details) </menu>'
  925.  
  926. /* SSI_CACHE_ON*/
  927. call lineout tempfile,'<hr><dt> <strong>SSI_CACHE_ON</strong>:'
  928.   v.1="YES" ; v.2="NO"
  929.   foo=do_radio(42,2)
  930. call lineout tempfile,'<dd> SSI_CACHE_ON is used to enable the <em>server side include cache </em>'
  931. call lineout tempfile,' (the SSI-CACHE). <p> '
  932. call lineout tempfile,' The SSI-cache is used to store "compiled" versions of HTML documents that '
  933. call lineout tempfile,' contain server side includes.  When a request for such document arrives,'
  934. call lineout tempfile,' SRE-Filter will return it (perhaps with further modifications).'
  935. call lineout tempfile,' <blockquote> Turning off caching is sometimes useful (or necessary) in highly'
  936. call lineout tempfile,'   dynamic environments; say, where INCLUDE files are constantly changing.</blockquote>'
  937. call lineout tempfile,"For more information on SRE-Filter's server side include caching "
  938. call lineout tempfile,'algorithim, see <a href="/samples/ssicache.htm">SSICACHE.HTM </a>'
  939.  
  940.  
  941. /*SMTP_GATEWAY */
  942. call lineout tempfile,'<hr><dt> <strong>SMTP_GATEWAY</strong>:'
  943. call lineout tempfile,' <INPUT TYPE="text" NAME="SMTP_GATEWAY" '
  944. foo=find_val(31)
  945. call lineout tempfile,'value="' foo '"'
  946. call lineout tempfile,' SIZE=30 MAXLENGTH=180>'
  947. call lineout tempfile,"<dd> SMTP_GATEWAY is used by SRE-FILTER's <em>e-mail alert</em> facility "
  948. call lineout tempfile," (as implemented in the POSTMAIL.80 post-filter routine). "
  949. call lineout tempfile,' SMTP_GATEWAY should contain the name of your SMTP mail server. <br> '
  950. call lineout tempfile,' If you do not know it, or do not need to use e-mail alerts, leave this field empty (or set it to 0)<p>'
  951. call lineout tempfile,' For more details on SMTP_GATEWAY, see POSTMAIL.80 '
  952.  
  953. /* UPLOAD_Minfree and upload_maxsize */
  954. call lineout tempfile,' <hr> <dt> <strong> UPLOAD_MINFREE: '
  955. call lineout tempfile,' <INPUT TYPE="text" NAME="UPLOAD_MINFREE" '
  956. foo=find_val(26)
  957. call lineout tempfile,'value="' strip(foo) '" '
  958. call lineout tempfile,' SIZE=10 MAXLENGTH=10>'
  959. call lineout tempfile,' , and UPLOAD_MAXSIZE: </strong>'
  960. call lineout tempfile,' <INPUT TYPE="text" NAME="UPLOAD_MAXSIZE" '
  961. foo=find_val(25)
  962. call lineout tempfile,', value="' strip(foo)'" '
  963. call lineout tempfile,' SIZE=10 MAXLENGTH=10>'
  964. call lineout tempfile,'<dd>'
  965. call lineout tempfile,' The UPLOAD_ variables are needed when GET_URL is used to upload '
  966. call lineout tempfile,' files from another server. <pr>'
  967. call lineout tempfile,' UPLOAD_MINFREE is the amount of space (in K bytes) that must be free '
  968. call lineout tempfile,' in the UPLOAD_DIRECTORY <em> after </em> the file has been uploaded.'
  969. call lineout tempfile,' <br> UPLOAD_MAXSIZE is the maximum allowable size (in K bytes) of a uploaded file '
  970. call lineout tempfile, '<p> If either of these limits are exceeded, the file will <strong> not </strong> be uploaded.'
  971.  
  972.  
  973. call lineout tempfile,'</dl>  '
  974. call lineout tempfile,' <hr width=40%>  '
  975. call lineout tempfile,' <A HREF="#section0"><EM>go to top of document</EM></A> '
  976. call lineout tempfile,' <hr width=40%>  '
  977. call lineout tempfile,' <h3> <a name="section5">  String Replacements </a> </h3>'
  978. call lineout tempfile,' <dl> '
  979.  
  980. /* headers */
  981. foo=find_val(12)
  982. call lineout tempfile,'<p><dt> <strong>HEADERS.</strong>:'
  983. call lineout tempfile,' <TEXTAREA NAME="'||param.12||'." ROWS=4 COLS=25>'
  984. call lineout tempfile,foo
  985. call lineout tempfile,'</TEXTAREA>'
  986. call lineout tempfile,'<dd> HEADERS. are added to the top of all requested HTML '
  987. call lineout tempfile,' documents (they are added just after the first <BODY> tag).'
  988.  
  989. call lineout tempfile,' You should enter valid HTML code in this box '
  990. call lineout tempfile,' (or leave it blank if you do not want a HEADER added). '
  991. call lineout tempfile,' Note that HEADERS can contain keyphrases. '
  992.  
  993. /* footers */
  994. foo=find_val(13)
  995. call lineout tempfile,'<hr><dt> <strong>FOOTERS.</strong>:'
  996. call lineout tempfile,' <TEXTAREA NAME="'||param.13||'." ROWS=4 COLS=25>'
  997. call lineout tempfile,foo
  998. call lineout tempfile,'</TEXTAREA>'
  999. call lineout tempfile,'<dd> FOOTERS. are added to the top of all requested HTML '
  1000. call lineout tempfile,' documents (they are added just before  the last </BODY> tag).'
  1001. call lineout tempfile,' You should enter valid HTML code in this box '
  1002. call lineout tempfile,'(or leave it blank if you do not want a FOOTER added). '
  1003. call lineout tempfile,' Note that FOOTERS can contain keyphrases. '
  1004.  
  1005. /* inhouse. */
  1006. foo=find_val(14)
  1007. if strip(foo)=0 then foo=" "
  1008. call lineout tempfile,'<hr><dt> <strong>INHOUSE.</strong>:'
  1009. call lineout tempfile,' <TEXTAREA NAME="'||param.14||'." ROWS=4 COLS=65>'
  1010. call lineout tempfile,foo
  1011. call lineout tempfile,'</TEXTAREA>'
  1012. call lineout tempfile,'<dd> The INHOUSE. variable(s) are used by the REPLACE INHOUSE.n keyphrase'
  1013. call lineout tempfile,' Each line of this box corresponds to a different value of n '
  1014. call lineout tempfile,' -- the first line is for INHOUSE.1, the second for INHOUSE.2, etc.'
  1015.  
  1016. /* SUPERUSER. */
  1017. foo=find_val(15)
  1018. call lineout tempfile,'<hr><dt> <strong>SUPERUSER.</strong>:'
  1019. if strip(foo)=0 then foo=" "
  1020. call lineout tempfile,' <TEXTAREA NAME="'||param.15||'." ROWS=4 COLS=65>'
  1021. call lineout tempfile,foo
  1022. call lineout tempfile,'</TEXTAREA>'
  1023. call lineout tempfile,'<dd> The SUPERUSER. variable(s) are used by the REPLACE SUPERUSER.n keyphrase'
  1024. call lineout tempfile,' Each line of this box corresponds to a different value of n '
  1025. call lineout tempfile,' -- the first line is for SUPERUSER.1, the second for SUPERUSER.2, etc.'
  1026.  
  1027.  
  1028. /* webmaster */
  1029. call lineout tempfile,'<hR><dt> <strong>WEBMASTER</strong>:'
  1030. foo=find_val(16)
  1031. call lineout tempfile, ' <TEXTAREA NAME="WEBMASTER" ROWS=1 COLS=68>' foo
  1032. call lineout tempfile, ' </TEXTAREA>'
  1033. call lineout tempfile,'<dd>'
  1034. call lineout tempfile,' The WEBMASTER variable is used in the REPLACE WEBMASTER keyphrase,'
  1035. call lineout tempfile,' and is used in some internally generated messages.  It should contain'
  1036. call lineout tempfile,' a contact address (preferably as a MAILTO URL) of the site''s "webmaster"'
  1037.  
  1038.  
  1039. /*HOME_NAME */
  1040. call lineout tempfile,'<hR><dt> <strong>HOME_NAME</strong>:'
  1041. call lineout tempfile,' <INPUT TYPE="text" NAME="HOME_NAME" '
  1042. foo=find_val(17)
  1043. call lineout tempfile,'value="' foo '"'
  1044. call lineout tempfile,' SIZE=30 MAXLENGTH=180>'
  1045. call lineout tempfile,'<dd>'
  1046. call lineout tempfile,' HOME_NAME is used in the REPLACE HOME_NAME keyphrase, and  is'
  1047. call lineout tempfile,' used in the default Not Found response (see below).  It should contain the '
  1048. call lineout tempfile,' commonly-used name of your organization (not necessarily the IP name!)'
  1049.  
  1050.  
  1051. call lineout tempfile,'</dl>  '
  1052. call lineout tempfile,' <hr width=40%>  '
  1053. call lineout tempfile,' <A HREF="#section0"><EM>go to top of document</EM></A> '
  1054. call lineout tempfile,' <hr width=40%>  '
  1055. call lineout tempfile,' <h3> <a name="section5a">  Miscellaneous  </a> </h3>'
  1056. call lineout tempfile,' <dl> '
  1057.  
  1058.  
  1059. /*the_realm */
  1060. call lineout tempfile,'<hR><dt> <strong>THE_REALM</strong>:'
  1061. call lineout tempfile,' <INPUT TYPE="text" NAME="the_realm" '
  1062. foo=find_val(18)
  1063. call lineout tempfile,'value="' foo '"'
  1064. call lineout tempfile,' SIZE=30 MAXLENGTH=180>'
  1065. call lineout tempfile,'<dd>'
  1066. call lineout tempfile,' THE_REALM is the realm name that will be shown to the client '
  1067. call lineout tempfile,' when  a username/password is requested.  Note that the "realm"'
  1068. call lineout tempfile,' value for a url that is contained in the ACCESS_FILE is also used '
  1069. call lineout tempfile,' (THE_REALM is used first). '
  1070.  
  1071.  
  1072.  
  1073. /*option_hIT_LINE */
  1074. call lineout tempfile,'<hR><dt> <strong>OPTION_HIT_LINE</strong>:'
  1075. call lineout tempfile,' <INPUT TYPE="text" NAME="OPTION_HIT_LINE" '
  1076. foo=find_val(19)
  1077. call lineout tempfile,'value="' foo'"'
  1078. call lineout tempfile,' SIZE=30 MAXLENGTH=180>'
  1079. call lineout tempfile,'<dd> OPTION_HIT_LINE is used by the REPLACE OPTION_HITS.n keyphrase'
  1080.  
  1081.  
  1082. /*NOT_FOUND_URL */
  1083. call lineout tempfile,'<hR><dt> <strong>NOT_FOUND_URL</strong>:'
  1084. foo=find_val(20)
  1085. call lineout tempfile, ' <TEXTAREA NAME="NOT_FOUND_URL" ROWS=1 COLS=60>' foo
  1086. call lineout tempfile, ' </TEXTAREA>'
  1087. call lineout tempfile,'<dd> NOT_FOUND_URL is a string that is displayed when a Not Found '
  1088. call lineout tempfile,' response is generated (say, when a requested file can not be found).'
  1089. call lineout tempfile,' Typically it will contain a link to your home page, or some other ';
  1090. call lineout tempfile,' "catchall" document.  Note that HOME_NAME is used in the default '
  1091. call lineout tempfile,' definition of NOT_FOUND_URL '
  1092.  
  1093. /* FIX_EXPIRE */
  1094. call lineout tempfile,' <hr> <dt> <strong> FIX_EXPIRE: </strong> '
  1095. call lineout tempfile,' <INPUT TYPE="text" NAME="FIX_EXPIRE" '
  1096. foo=find_val(35)
  1097. call lineout tempfile,'value="' foo '" '
  1098. call lineout tempfile,' SIZE=10 MAXLENGTH=10>'
  1099. call lineout tempfile,'<dd>'
  1100. call lineout tempfile,' The FIX_EXPIRE variable is used to suppress "immediate expiraton" of '
  1101. call lineout tempfile,'  documents containing server side includes, and documents generated by CGI-BIN scripts.'
  1102. call lineout tempfile,' <BR> <em> "Immediate expiration" can cause annoying reloads when clients use the back '
  1103. call lineout tempfile,' arrow key on their browsers </em> <br>'
  1104. call lineout tempfile,' <br> Set FIX_EXPIRE to a fractional value  '
  1105. call lineout tempfile,' to indicate a future expiration date (in 24hrs * FIX_EXPIRE). '
  1106. call lineout tempfile,' <br> To suppress this (and use default "immediate expiration"), set this to 0'
  1107.  
  1108.  
  1109.  
  1110. call lineout tempfile,' </dl> '                 /* END OF PARAMTERS LIST */
  1111. call lineout tempfile,' <A HREF="#section0"><EM>go to top of document</EM></A> '
  1112.  
  1113.  
  1114.  
  1115. /* === File info SECTION === */
  1116.  
  1117. wow=find_fnames()
  1118.  
  1119. call lineout tempfile,'<hr> <h3> <a name="section6"> File & Directory Names </a> </h3>'
  1120. if nickname<>' ' then
  1121.   call lineout tempfile,' <em> File and directory names are <strong>not</strong> host-specific </em><p>'
  1122.   call lineout tempfile,' <br> <b> We recommend restarting GoServe immediately after changing any of these filenames or directories!</b>'
  1123. call lineout tempfile,'<dl> <dt> <br> ' fd.1 ' = '
  1124. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.1||'"  VALUE="'||fd.1.val||'"  '
  1125. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1126. Call lineout tempfile,' <dd> The MESSBOX_DIR is where the SRE-FILTER message boxes are stored'
  1127.  
  1128. call lineout tempfile,'<dt> <br> ' fd.15 ' = '
  1129. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.15||'"  VALUE="'||fd.15.val||'"  '
  1130. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1131. Call lineout tempfile,' <dd> The TEMPDATA_DIR is where SRE-Filter puts temporary  files;  '
  1132. call lineout tempfile,' such as the $xxxx.80 temporary response files, and the SSI-Cache files.'
  1133. call lineout tempfile,' It is <b>not</b> supposed to be used by <em> user supplied programs </em> (see TEMPFILE_DIR) .'
  1134.  
  1135. call lineout tempfile,'<dt> <br> ' fd.2 ' = '
  1136. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.2||'"  VALUE="'||fd.2.val||'"  '
  1137. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1138. Call lineout tempfile,' <dd> The TEMPFILE_DIR is working space for your various <em> user supplied programs </em>'
  1139.  
  1140.  
  1141. call lineout tempfile,'<dt> <br> ' fd.16 ' = '
  1142. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.16||'"  VALUE="'||fd.16.val||'"  '
  1143. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1144. Call lineout tempfile,' <dd> The WORKDATA_DIR is where SRE-Filter puts username, alias, access control'
  1145. call lineout tempfile, ' and other permanent data files.'
  1146.  
  1147.  
  1148. call lineout tempfile,'<dt> <br> ' fd.11 ' = '
  1149. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.11||'"  VALUE="'||fd.11.val||'"  '
  1150. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1151. Call lineout tempfile,' <dd> The UPLOAD_DIR is where "uploaded" files will be put. '
  1152.  
  1153. call lineout tempfile,'<dt> <br> ' fd.12 ' = '
  1154. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.12||'"  VALUE="'||fd.12.val||'"  '
  1155. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1156. Call lineout tempfile,' <dd> The CGI_BIN_DIR is where "CGI-BIN" programs should be stored. '
  1157.  
  1158. call lineout tempfile,'<dt> <br> ' fd.19 ' = '
  1159. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.19||'"  VALUE="'||fd.19.val||'"  '
  1160. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1161. Call lineout tempfile,' <dd> The ADDON_DIR is where various SRE-Filter configuration tools and <B>addons</b>  programs should be stored. '
  1162.  
  1163. call lineout tempfile,'<dt> <br> ' fd.14 ' = '
  1164. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.14||'"  VALUE="'||fd.14.val||'"  '
  1165. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1166. call lineout tempfile,"<dd> The MAILBOX_DIR is where SRE-Filter's will read and write e-mail messages from"
  1167. call lineout tempfile,' (it should be the "inbox" directory of an SMTP server).'
  1168.  
  1169. call lineout tempfile,'<dt> <br> ' fd.3 ' = '
  1170. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.3||'"  VALUE="'||fd.3.val||'"  '
  1171. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1172. Call lineout tempfile,' <dd> The COUNTER_FILE is where the REPLACE HITS and REPLACE COUNTS '
  1173. call lineout tempfile,' keyphrases store the "number of hits" statistics. '
  1174.  
  1175.  
  1176. call lineout tempfile,'<dt> <br> ' fd.4 ' = '
  1177. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.4||'"  VALUE="'||fd.4.val||'"  '
  1178. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1179. Call lineout tempfile,' <dd> The RECORD_ALL_FILE is where the RECORD_OPTIONS stores the '
  1180. call lineout tempfile,' "number of hits " statistics. '
  1181.  
  1182.  
  1183.  
  1184. call lineout tempfile,'<dt> <br> ' fd.5 ' = '
  1185. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.5||'"  VALUE="'||fd.5.val||'"  '
  1186. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1187. Call lineout tempfile,' <dd> The SENDFILE_FILE is where the SENDFILE facility stores "number of hits"'
  1188. call lineout tempfile,' statistics" '
  1189.  
  1190.  
  1191. call lineout tempfile,'<dt> <br> ' fd.10 ' = '
  1192. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.10||'"  VALUE="'||fd.10.val||'"  '
  1193. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1194. Call lineout tempfile,' <dd> The UPLOAD_LOG is where information on uploaded files '
  1195. call lineout tempfile,' will be stored.  If you do not want to store such info, enter <strong>0</strong> '
  1196.  
  1197.  
  1198.  
  1199. call lineout tempfile,'<dt> <br> ' fd.6 ' = '
  1200. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.6||'"  VALUE="'||fd.6.val||'"  '
  1201. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1202. Call lineout tempfile,' <dd> The ACCESS_FILE is where  ALLOW_ACCESS looks for action-specific'
  1203. call lineout tempfile,' access information'
  1204.  
  1205.  
  1206. call lineout tempfile,'<dt> <br> ' fd.7 ' = '
  1207. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.7||'"  VALUE="'||fd.7.val||'"  '
  1208. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1209. Call lineout tempfile,' <dd> The ALIAS_FILE contains the lists of ALIASES '
  1210.  
  1211. call lineout tempfile,'<dt> <br> ' fd.13 ' = '
  1212. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.13||'"  VALUE="'||fd.13.val||'"  '
  1213. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1214. Call lineout tempfile,' <dd> The VIRTUAL_FILE contains the "virtual directory" list '
  1215.  
  1216. call lineout tempfile,'<dt>  <br> ' fd.8 ' = '
  1217. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.8||'"  VALUE="'||fd.8.val||'"  '
  1218. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1219. Call lineout tempfile,' <dd> The REPSTRGS_FILE contains the list of custom "variable names" '
  1220. call lineout tempfile,' for use by the REPLACE keyphrase '
  1221.  
  1222.  
  1223. call lineout tempfile,'<dt> <br> ' fd.9 ' = '
  1224. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.9||'"  VALUE="'||fd.9.val||'"  '
  1225. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1226. Call lineout tempfile,' <dd> The USER_FILE contains logon/password/privileges information '
  1227.  
  1228. call lineout tempfile,'<dt> <br> ' fd.17 ' = '
  1229. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.17||'"  VALUE="'||fd.17.val||'"  '
  1230. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1231. Call lineout tempfile,' <dd> The LOGON_FAIL_FILE is sent when a logon-failure occurs.'
  1232. call lineout tempfile,' <br> The LOGON_FAIL_FILE should contain an "absolute" file name (i.e.;<code> D:\GOSERVE\LOGFAIL.HTM</code>)'
  1233. call lineout tempfile,' <br> If you want to use the generic response, set this to 0. '
  1234. call lineout tempfile,' <br><em> Note that if the LOGON_FAIL_FILE is an HTML document, '
  1235. call lineout tempfile,' SRE-Filter will perform a few textual substitutions.</em> '
  1236.  
  1237. call lineout tempfile,'<dt> <br> ' fd.18 ' = '
  1238. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.18||'"  VALUE="'||fd.18.val||'"  '
  1239. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1240. Call lineout tempfile,' <dd> The ACCESS_FAIL_FILE is sent when "SEL-specific" access is not allowed.'
  1241. call lineout tempfile,' <br> The ACCESS_FAIL_FILE should contain an "absolute" file name (i.e.;<code> D:\GOSERVE\ACCFAIL.HTM</code>)'
  1242. call lineout tempfile,' <br> If you want to use the generic response, set this to 0. '
  1243. call lineout tempfile,' <br><em> Note that if the ACCESS_FAIL_FILE is an HTML document, '
  1244. call lineout tempfile,' SRE-Filter will perform a few textual substitutions.</em> '
  1245.  
  1246. /* ----- no longer officially supported
  1247. call lineout tempfile,'<dt> <br> ' fd.10 ' = '
  1248. call lineout tempfile,'<INPUT TYPE="text" NAME="'||fd.10||'"  VALUE="'||fd.10.val||'"  '
  1249. call lineout tempfile,' SIZE=30 MAXLENGTH=60>'
  1250. Call lineout tempfile,' <dd> The INTERPRET_FILE contains the "REXX-code blocks" used by the '
  1251. call lineout tempfile,' INTERPRET keyphrase '
  1252. */
  1253.  
  1254. call lineout tempfile,'</dl>'           /* end OF FILE INFO SECTION */
  1255.  
  1256. call lineout tempfile,' <A HREF="#section0"><EM>go to top of document</EM></A> '
  1257.  
  1258.  
  1259. /* Retain current file contents */
  1260. pud=0
  1261.  do bob=1 to filelines.0
  1262.     if filelines.bob.igot=1 then iterate
  1263.     pud=pud+1
  1264.     dog=filelines.bob
  1265.     DOG=sref_REPLACESTRG(DOG,'"','%22','ALL')
  1266.     DOG=sref_REPLACESTRG(DOG,"'",'%27','ALL')
  1267.     DOG=sref_REPLACESTRG(DOG,"+",'%2B','ALL')
  1268.     dog=sref_replacestrg(dog,'&','%26','ALL')
  1269.     DOG=sref_REPLACESTRG(DOG,"<",'%3c','ALL')
  1270.     DOG=sref_REPLACESTRG(DOG,">",'%3e','ALL')
  1271.  
  1272.     DOG=translate(DOG,"+",' ')
  1273.  
  1274.    call lineout tempfile,'<INPUT TYPE="hidden" NAMe="lines.'||pud|| '" value="'||DOG||'" >'
  1275.  
  1276. /*   dog0=strip(filelines.bob.name)
  1277.    call lineout tempfile,'    <INPUT TYPE="hidden" NAMe="lines_name.'||pud|| '" value="'||DOG0||'" >'*/
  1278.  
  1279.  
  1280.  end
  1281.  call lineout tempfile,'<INPUT TYPE="hidden" NAMe="nickname" value="'||nickname||'" >'
  1282.  call lineout tempfile,'<INPUT TYPE="hidden" NAMe="lines.0" value="'||PUD||'" >'
  1283.  
  1284.  
  1285.   call lineout tempfile,'<p> <EM>if you are done you can</EM> <INPUT TYPE="submit" VALUE="make the changes">,'
  1286.   call lineout tempfile,' <EM>or you can </EM><INPUT TYPE="reset" VALUE="reset to current values">'
  1287.   call lineout tempfile,'</FORM> <hr>'
  1288.   call lineout tempfile,' <h3>Special feature: Look up an IP address </h3>'
  1289.    call lineout tempfile,' For several of these variables (i.e.; OWNERS), numeric IP '
  1290.   call lineout tempfile,' addresses are expected.  If you need to lookup a numeric address:'
  1291.   call lineout tempfile,'  <FORM ACTION="!host" METHOD="GET">'
  1292.   call lineout tempfile,'  <em> enter the IP name here and Look It Up: </em> '
  1293.   call lineout tempfile,'  <INPUT TYPE="text" NAME=""  VALUE=""  SIZE=25 MAXLENGTH=25>'
  1294.   call lineout tempfile,'  <INPUT TYPE="submit" VALUE=" Look It Up"> </form>'
  1295.  
  1296.  
  1297.   call lineout tempfile,' <hr> </body> </html> '
  1298.   call lineout tempfile
  1299. end
  1300.  
  1301. tt=sref_expire_response(0.05,dosdir(tempfile,'s'))
  1302. 'FILE ERASE TYPE text/html NAME' tempfile
  1303. signal off error ; signal off syntax
  1304. return ' Done with Config2 -- submitted parameters '
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310. /****************************************************/
  1311. /*  JUMP HERE ON POST CALLS, which are always "write info" calls */
  1312. /* you should never need to modify this */
  1313.  
  1314. write_It:   nop
  1315. crlf = '0d0a'x
  1316.  
  1317. ooks=fd.1
  1318. do pp=2 to fd.0
  1319.    ooks=ooks||' '||fd.pp
  1320. end
  1321.  
  1322.  call lineout tempfile, '<!doctype html public "-//IETF//DTD HTML 3.0//EN">'
  1323.         call lineout tempfile, "<html><head><title>CONFIG2 Results </title>"
  1324.         call lineout tempfile, '</head><body bgcolor="#'||usecolor||'">'
  1325.  
  1326.         call lineout tempfile,' <h1> SRE-FILTER Configurator </h1> '
  1327.  
  1328. foo=stream(afile,'c','query exists')
  1329. if foo="" then do
  1330.    call lineout tempfile,' Warning: Old INITFILT.'aport ' did not exist '
  1331. end
  1332. else do
  1333.  acf1='INITFILT.B'
  1334.   do hi=1 to 99
  1335.      try1=acf1||hi
  1336.      if stream(acf1||hi,'c','query exists')='' then leave
  1337.   end /* do */
  1338.  
  1339.   foo=dosrename(aFILE,try1)
  1340.    CALL LINEOUT TEMPFILE,'The old version of ' Afile ' has been saved as ' try1
  1341. end
  1342.  
  1343. /* Parse the argument list.  Extract current file (in LINES.n) variables
  1344. to the FILELINES. array.
  1345.  Check for arguments.  Note that if no arguments, error. */
  1346. param.0=0 ; fparam.0=0
  1347. do until list=""
  1348.     parse var list a0  '&' list
  1349.     parse var  a0 a1 '=' a2
  1350.     a1=packur(a1) ; a2=strip(packur(a2))
  1351.     a1=upper(strip(a1))
  1352.     select
  1353.        when abbrev(a1,'LINES.')=1 then do
  1354.            parse var a1 foo '.' ith
  1355.           a2=translate(a2,' ','+')
  1356.           filelines.ith=packur(a2)
  1357.         end  /* Do */
  1358.         when abbrev(a1,'NICKNAME')=1 then do
  1359.              nickname=a2
  1360.         end
  1361.         otherwise do
  1362.             a2=translate(a2,' ','+')
  1363.             if wordpos(a1,ooks)>0 then do
  1364.                fparam.0=fparam.0+1 ; IARF0=fPARAM.0
  1365.                fparam.iarf0=a2 ; fparam.iarf0.name=a1
  1366.             end  /* Do */
  1367.             else do
  1368.                param.0=param.0+1 ; IARF=PARAM.0
  1369.                param.IARF=a2 ; PARAM.IARF.NAME=A1
  1370.             end
  1371.         end
  1372.      end
  1373. end
  1374.  
  1375.  
  1376. POOP=afile
  1377. call lineout poop,'; Last modified on : ' time() ' ' Date()
  1378. do mm=1 to filelines.0
  1379.    aa=sref_replacestrg(filelines.mm,'<','<','ALL')
  1380.    aa=sref_replacestrg(aa,'>','>','ALL')
  1381.    if aa=' ' then iterate
  1382.    if abbrev(aa,'; Last modified on')=1 then iterate
  1383.    call lineout POOP,packur(aa)
  1384. end /* do */
  1385.  
  1386. do mm=1 to fparam.0
  1387.   yow=fPARAM.MM.NAME "= '"fPARAM.MM "'"
  1388.   yow=translate(yow,' ','000d0a1a'x)
  1389.   call lineout POOP,yow
  1390. end
  1391.  
  1392. do mm=1 to param.0
  1393.  
  1394.  
  1395.    gosh1=param.mm ;   name1=param.mm.name ; inthis=0
  1396.    gosh1=bad_entry(gosh1,name1)
  1397.  
  1398.    if pos('.',name1)>0 then do          /* is a stem var */
  1399.        do until gosh1=""
  1400.           parse var gosh1 al1 (crlf) gosh1
  1401.           al1=packur(translate(al1,' ','0d0a00'x))
  1402.           if al1=' ' then iterate
  1403.           inthis=inthis+1
  1404.           if nickname=' ' | abbrev(upper(name1),'HOSTS')=1 then do
  1405.               yow=name1||inthis " =  '" al1 "'  "
  1406.           end
  1407.           else do
  1408.               yow=name1||inthis||'.'||nickname " =  '" al1 "'  "
  1409.           end
  1410.           yow=translate(yow,' ','000d0a1a'x)
  1411.           call lineout poop, yow
  1412.        end /* do */
  1413.    end  /* Do */
  1414.    else do
  1415.       gosh1=packur(gosh1)
  1416.       if nickname=' '  then do
  1417.           yow=name1 "= '"gosh1 "'"
  1418.       end
  1419.       else do
  1420.           yow=NAME1||'.'||nickname|| "= '"gosh1 "'"
  1421.       end
  1422.       yow=translate(yow,' ','000d0a1a'x)
  1423.  
  1424.       call lineout poop,yow
  1425.    end
  1426. end /* do */
  1427.  
  1428. CALL LINEOUT POOP
  1429. call lineout tempfile,' <p> ' afile  ' succesfully created.'
  1430.  
  1431. call lineout tempfile,' <hr> </body> </html> '
  1432. call lineout tempfile
  1433. foo=value('SREF_REDO',1,'os2environment')
  1434.  
  1435. tt=sref_expire_response(0.05,dosdir(tempfile,'s'))
  1436. 'FILE ERASE TYPE text/html NAME' tempfile
  1437. signal off error ; signal off syntax
  1438. return 'Done with CONFIG2 -- saved parameters'
  1439.  
  1440.  
  1441. /* jumnp here on error */
  1442. badguys:
  1443. signal off error ; signal off syntax
  1444. call pmprintf_sref(" Config2 error: at line " sigl)
  1445. 'STRING  Config2 error: at line ' sigl
  1446. return ' '
  1447.  
  1448.  
  1449. /********************************************/
  1450. /* --- create a row of radio buttons */
  1451. do_radio: procedure expose param. filelines. v. tempfile nickname quiklist.
  1452. parse arg ith,inlist,nonick
  1453. unickname=nickname
  1454. if nonick=1 then unickname=' '
  1455. got1=0 ;
  1456. domark=1   /* domark=0 prevents marking for comments -- use on 2nd pass */
  1457.  
  1458.  
  1459. foobax:
  1460. do jj=1 to inlist
  1461.    v2.jj=' '
  1462. end
  1463. findit=strip(param.ith)
  1464.  
  1465.  
  1466. if symbol('quiklist.findit')<>'VAR' then   do        /* no candiate entries */
  1467.    call lineout tempfile,' <INPUT TYPE=RADIO NAME="'||param.ith||'" '
  1468.    call lineout tempfile,' VALUE="'   ||v.mm||  '" '  ||v2.mm||  '>'   v.mm  '      , '
  1469.    return ' '
  1470. end
  1471.  
  1472. /* look at candidates only */
  1473. candlist=quiklist.findit
  1474. do mm0=1 to words(candlist)
  1475.     mm=strip(word(candlist,mm0))
  1476.     if mm=' ' then iterate
  1477.  
  1478.     bval=strip(upper(filelines.mm.name))
  1479.  
  1480.     if bval<>findit then iterate
  1481.  
  1482. /* check nickname stuff */
  1483.      if unickname<>' '   then do  /* check for .nickname at end of name */
  1484.         if pos(unickname,filelines.mm.stem)=0 then iterate
  1485.      end  /* Do */
  1486.      if unickname=' ' & filelines.mm.stem<>' ' & nonick<>1 then do /* check for nickname */
  1487.         foo1=lastpos('.',filelines.mm.stem)
  1488.         if datatype(substr(filelines.mm.stem,foo1+1))<>'NUM' then iterate
  1489.      end  /* Do */
  1490.  
  1491.     if domark=1 then FILELINES.MM.IGOT=1
  1492.     got1=1
  1493.     do mm2=1 to inlist
  1494.       cval=strip(filelines.mm.value)
  1495.       if v.mm2=cval then  do
  1496.           v2.mm2="CHECKED"
  1497.       end
  1498.       else do
  1499.           v2.mm2=' '
  1500.           if upper(v.mm2)='NO' & (cval=0 | abbrev(upper(cval),'N')=1 ) then
  1501.               v2.mm2="CHECKED"
  1502.           if upper(V.mm2)='YES' & (cval=1 | abbrev(upper(cval),'Y')=1) then  
  1503.              v2.mm2="CHECKED"
  1504.      end
  1505.     end
  1506. end             /* always use last match, if more then one */
  1507.  
  1508.  
  1509. if got1=0 then  do
  1510.       if unickname=' ' | nonick>0 then
  1511.           nop
  1512.       else do
  1513.          unickname=' ' ; domark=0
  1514.          signal foobax            /* try looking for non host specific value */
  1515.       end
  1516.  end
  1517.  
  1518.  
  1519. do mm=1 to inlist
  1520.    call lineout tempfile,' <INPUT TYPE=RADIO NAME="'||param.ith||'" '
  1521.    call lineout tempfile,' VALUE="'   ||v.mm||  '" '  ||v2.mm||  '>'   v.mm  '      , '
  1522. end
  1523. return isit
  1524.  
  1525.  
  1526.  
  1527. /***********************************/
  1528. /* write out values for a variable (or a stem variable )
  1529. isfile=1 use file list
  1530. isfile=2 don't use hostnickname
  1531.  */
  1532. write_1:procedure expose param. filelines. tempfile fd. nickname quiklist.
  1533. parse arg iat,isfile
  1534.  
  1535. unickname=strip(nickname)
  1536. if isfile>0 then unickname=' '
  1537.  
  1538. isstem=0 ;dostem=0
  1539. if isfile<>1 then do
  1540.   findit=param.iat
  1541.   dostem=param.iat.stem
  1542. end
  1543. else do
  1544.   findit=fd.iat
  1545. end
  1546.  
  1547. towrite=0                 /* search filelines for findit */
  1548. if symbol('quiklist.findit')<>'VAR' then    do       /* no candiate entries */
  1549.    call lineout tempfile, "  <li> <b>" findit  "</b> =<tt> n.a. </tt> <br>"
  1550.    return ' '
  1551. end
  1552.  
  1553.  
  1554.  
  1555. /* look at candidates only */
  1556. candlist=quiklist.findit
  1557. do mm0=1 to words(candlist)
  1558.     mm=strip(word(candlist,mm0))
  1559.  
  1560.     if mm=' ' then iterate
  1561.     if unickname<>' ' & filelines.mm.stem=' ' then iterate
  1562.    if filelines.mm.name=findit then do
  1563.       if unickname<>' ' & pos(unickname,filelines.mm.stem)=0 then iterate
  1564.       if unickname=' ' & filelines.mm.stem<>' '  then do /* check for unickname */
  1565.         foo1=lastpos('.',filelines.mm.stem)
  1566.         if datatype(substr(filelines.mm.stem,foo1+1))<>'NUM' then iterate
  1567.       end  /* Do */
  1568.  
  1569.       wow1=filelines.mm.value
  1570.       filelines.mm.igot=1
  1571.       if dostem=0 then do
  1572.            towrite=1
  1573.            dowrite=" <li> <b>" ||findit ||"</b> =<tt> "|| wow1 ||'</tt> <br>'
  1574.            iterate              /* get latter ones? */
  1575.       end
  1576.       astem=filelines.mm.stem
  1577.       if unickname=' ' & pos('.',astem)>0 then iterate
  1578.       poop='.'||unickname
  1579.       if unickname<>' ' then astem=sref_replacestrg(astem,poop,'')
  1580.       if unickname<>' ' then astem=sref_replacestrg(astem,unickname||'.','')
  1581.       towrite=towrite+1
  1582.       dowrite.towrite="  <li> <b>"|| findit ||'.' ||astem ||"</b> =<tt> " ||wow1|| '</tt> <br>'
  1583.       isstem=1+isstem
  1584.    end
  1585. end
  1586.  
  1587. select
  1588.    when towrite=0 then
  1589.       call lineout tempfile, "  <li> <b>" findit  "</b> =<tt> n.a. </tt> <br>"
  1590.    when dostem=0 then
  1591.        call lineout tempfile,dowrite
  1592.    otherwise do
  1593.         do mm=1 to towrite
  1594.            call lineout tempfile,dowrite.mm
  1595.         end
  1596.    end
  1597. end
  1598. return ' '
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604. /* ----------- */
  1605. /* get environment value, possibly host specific */
  1606. /* ------------ */
  1607. get_value: procedure expose enmadd host_nickname
  1608. parse arg vname,hname0
  1609. if hname0=0 then
  1610.         hname=' '
  1611. else
  1612.     hname=strip(host_nickname)
  1613.  
  1614. vname=strip(vname) ;
  1615. if hname<>' ' then do
  1616.    aval=value(enmadd||vname||'.'||hname,,'os2environment')
  1617.    if aval<>' ' Then
  1618.         return aval
  1619. end
  1620. aval=value(enmadd||vname,,'os2environment')
  1621. return aval
  1622.  
  1623.  
  1624. /* **************************************
  1625.  get current value of a parameter.  If stem variable, return
  1626. in sorted order
  1627. nonick=' ' -- check for nickname
  1628. 1= never check nickname
  1629. 2= only check for nickname
  1630. */
  1631.  
  1632. find_val:procedure expose param. filelines. nickname quiklist.
  1633.  
  1634.  parse arg ith,nonick
  1635.  unickname=nickname
  1636.  if nonick=1 then unickname=' '
  1637.   findit=param.ith
  1638.   isstem=param.ith.stem
  1639.   domark=1   /* domark=0 prevents marking for comments -- use on 2nd pass */
  1640.  
  1641. if symbol('quiklist.findit')<>'VAR' then do          /* no candiate entries */
  1642.    return ' '
  1643. end
  1644.  
  1645.  
  1646. bowser:
  1647.  
  1648.   gots=0
  1649.   dowrite=0
  1650.  
  1651. /* look at candidates only */
  1652. candlist=quiklist.findit
  1653. do mm0=1 to words(candlist)
  1654.     mm=strip(word(candlist,mm0))
  1655.     if mm=' ' then iterate
  1656.  
  1657.      aval=filelines.mm.name
  1658.      if aval<>findit then iterate
  1659.      if unickname<>' ' then do  /* check for unickname at end of name */
  1660.         if pos(unickname,filelines.mm.stem)=0 then iterate
  1661.      end  /* Do */
  1662.      if unickname=' ' & filelines.mm.stem<>' '  then do /* check for unickname */
  1663.         foo1=lastpos('.',filelines.mm.stem)
  1664.         if datatype(substr(filelines.mm.stem,foo1+1))<>'NUM' then iterate
  1665.      end  /* Do */
  1666.      if domark=1 then FILELINES.MM.IGOT=1
  1667.      gogo=translate(filelines.mm.value, ' ','00090a0d'x)
  1668.      if isstem=0 then do
  1669.         dowrite=1
  1670.         towrite=gogo
  1671.       end
  1672.       else do
  1673.           dowrite=1
  1674.           if filelines.mm.stem=' ' then iterate /* bad entry */
  1675.           fii=translate(filelines.mm.stem,' ','.') ; fii=strip(word(fii,1))
  1676.           if datatype(fii)<>'NUM' then iterate
  1677.           got.value.fii=gogo
  1678.           gots=max(gots,fii)
  1679.       end
  1680.    end          /* all lines in file */
  1681.  
  1682.    if dowrite=0 then  do
  1683.       if unickname=' ' | nonick>0 then return ' '
  1684.       unickname=' ' ; domark=0
  1685.       signal bowser             /* try looking for non host specific value */
  1686.    end
  1687.  
  1688.    if isstem=0 then return towrite
  1689.    eek=' '
  1690.    do jj=1 to gots
  1691.       if symbol('got.value.jj')<>'VAR' then iterate
  1692.       eek=eek||strip(got.value.jj)||'0d0a'x
  1693.    end /* do */
  1694.  
  1695. return strip(eek)
  1696.  
  1697.  
  1698.  
  1699. /* ***************** fill in file names */
  1700. find_fnames: procedure expose fd. filelines.
  1701. do mm=1 to fd.0
  1702.    findit=strip(fd.mm)
  1703.    do mm2=1 to filelines.0
  1704.       aval=strip(filelines.mm2.name)
  1705.       if aval<>findit then iterate
  1706.       fd.mm.val=filelines.mm2.value
  1707.       FILELINES.MM2.IGOT=1
  1708.       leave
  1709.    end /* do */
  1710. end /* do */
  1711.  
  1712. return 0
  1713.  
  1714. /* --- variable names of convert foo.bar.1 to foo.1.bar */
  1715. fix_me:procedure
  1716. parse arg a1
  1717.  
  1718. if a1=' '  then return a1
  1719. a1=strip(a1)
  1720. if abbrev(a1,';') then return a1
  1721.  
  1722. parse var a1  aname '=' avalue
  1723. if pos('.',aname)=0 then return a1
  1724.  
  1725. foo=translate(aname,' ','.')
  1726. if words(foo)<>3 then return a1
  1727.  
  1728. /* if here, array.x.y (3 elements) */
  1729. if datatype(word(foo,3))='NUM' & datatype(word(foo,2))<>'NUM' then do  /* rearrange */
  1730.    foo2=word(foo,1)||'.'||word(foo,3)||'.'||word(foo,2)||' = '||avalue
  1731.    return foo2
  1732. end  /* Do */
  1733. else do
  1734.    return a1
  1735. end  /* Do */
  1736.  
  1737.  
  1738.  
  1739. /* */
  1740. badguys:
  1741. signal off error ; signal off syntax
  1742. call pmprintf_sref(" Config2 error: at line " sigl)
  1743. 'STRING  Config2 error: at line ' sigl
  1744. return ' '
  1745.  
  1746.  
  1747. /********/
  1748. /* check for bad syntax in an initfilt.80 entry */
  1749. bad_entry:procedure expose tempfile
  1750.  
  1751. parse arg anent,fullent
  1752. anent1=sref_replacestrg(anent,"''","'",'ALL')
  1753. if pos("'",anent1)>0 then do
  1754.  call lineout tempfile," <p><b>WARNING!</b> converting ' in: "fullent'='anent
  1755.  anent=sref_replacestrg(anent1,"'","''",'ALL')
  1756. end
  1757. return anent
  1758.  
  1759.