1. Installing the Proxy Server

1.1 Get the CERN-httpd

Contact the WWW-page <http://www.w3.org/hypertext/WWW/Daemon/User/Installation/Installation.html> to see how to get the CERN-Server program. Uncompress and untar the received files.

Important note: Don't compile the program yet.

1.2 Configure the CERN-httpd

Edit the configuration files as described under <Configuration File> in <http://www.w3.org/hypertext/WWW/Daemon/User/Installation/Installation.html>.

1.3 Add the files of 'WWW Access for Blinds'

Copy the files from the distribution tar-file into the machine's directory </where_ever/WWW/Daemon/Implementation".

1.4 Edit 'HTDaemon.c'

Next you have to edit the file "/where_ever/WWW/ Daemon/Implementation/HTDaemon.c". Make the following changes (written in italic bold):
edited HTDaemon.c
...    
#include "HTFile.h"   
#include "HTParse.h   
#include "HTRequest.h"
#include "HTAuth.h"    /* HTUser */  
#include "HTConfig.h" 
#include "HTDaemon.h" 
#include "HTLog.h"    
#include "HTCache.h"  
#include "HTUserInit.h"    
#include "HTFWriter.h"
#include "HTims.h"    
#include "HTError.h"  
#include "HTBlinds.h" 

/* Forking */    
#ifdef FORKING   
#include <sys/types.h>
...    

PUBLIC int HTHandle ARG1(int, soc)   
{ 
    HTRequest *req;   
    int status;  
    ...
    /* 
* If HEAD add a stream that makes sure we only send the head  
    */ 
    if (req->method == METHOD_HEAD)  
   req->output_stream = HTHeadStream(req ->output_stream);    
  
    /* 
* Handle command 
*/
    if (HTReason == HTAA_OK_GATEWAY) { /* Not a local file ... */  
        req->output_stream = HTBlindsStream(req->output_stream);             
        output_timeout_on();    
        HTImProxy = YES;   
        ...      
...    

1.5 Edit 'CommonMakeFile'

Edit the file "/where_ever/WWW/ Daemon/Implementation/ CommonMakeFile". Make the following changes:


edited CommonMakeFile
...              
OBJS = reader.o transform.o HTBlinds.o \  
       HTDaemonDIR.o HTRequest.o HTRetrieve.o HTScript.o HTLoad.o 
       ...            
...                   

#    Access Authorization                 
#    (these were originally in libwww by mistake)             
...                   
inc: $(HTMLFILES)     
    echo "Include files generated from hypertext."            

#    HTBlinds program 
reader.o: $(SRC)/reader.h $(SRC)/reader.c 
    $(CC) -c $(CFLAGS2) $(SRC)/reader.c   
  
transform.o: $(SRC)/reader.h $(SRC)/transform.c               
    $(CC) -c $(CFLAGS2) $(SRC)/transform.c
  
HTBlinds.o: $(SRC)/HTBlinds.c \           
    $(SRC)/HTDaemon.h $(SRC)/HTConfig.h $(SRC)/reader.h       
    $(CC) -c $(CFLAGS2) $(SRC)/HTBlinds.c 
  
#    Administration program               
...                   

1.6 Compile

Compile the program as described in <http://www.w3.org/hypertext/WWW/Daemon/User/Installation/Installation.html>.

1.7 Start your proxy-server

Go to your directory "/where_ever/WWW/ Daemon/Implementation" and start the proxy-server as described in <http://www.w3.org/hypertext/WWW/Daemon/User/Installation/Installation.html>.


2. Configuration files of 'WWW Access for Blinds'

There are two configuarion files that define the behaviour of the transformation process:

The order of the lines is significant. A line that begins with a ";" is a comment. Comments are not significant.

2.1 tf.prod.config

Each line has the effect of a switch: if there is a "+", the corresponding production will be executed. It follows an explanation of each line in the file to show the connection between the lines and the productions. Lines that are comments are not listed. Elements that are written "<...>" are HTML-tags. If you want to know more about them, please refer to <http://www.hpl.hp.co.uk/people/dsr/html/Contents.html>. Parts that are written in Courier are actually text-variables and configurable in the file tf.text.config.The following listing is of the format:

(Name of the production): Effect, if the corresponding line in the file is set to +

  1. (ADR): <address> and </address> will be removed
  2. (BLK): <blockquote> and </blockquote> will be removed
  3. (TT): <tt> and </tt> will be removed
  4. (B): <b> and </b> will be removed
  5. (I): <i> and </i> will be removed
  6. (U): <u> and </u> will be removed
  7. (EM): <em> and </em> will be removed
  8. (STR): <strong> and </strong> will be removed
  9. (DFN): <dfn> and </dfn> will be removed
  10. (CIT): <cite> and </cite> will be removed
  11. (VAR): <var> and </var> will be removed
  12. (CEN): <center> and </center> will be removed
  13. (S): <s> and </s> will be removed
  14. (BIG): <big> and </big> will be removed
  15. (SML): <small> and </small> will be removed
  16. (BDY): <body ...> will be replaced by <body>
  17. (P): <p ...> will be replaced by <p>
  18. (FT): <font ...> and </font> will be removed
  19. (RAD): Radiobuttons will be tagged (e.g. Radiobutton).
  20. (CHK): Checkboxes will be tagged (e.g. Checkbox).
  21. (EDT): Editboxes will be tagged (e.g. Editbox).
  22. (CBB): Comboboxes will be tagged (e.g. Combobox).
  23. (BUT): Buttons will be tagged (e.g. Button).
  24. (IMG): Images will be replaced by text (e.g. Image "picture.gif"nn;).
  25. (LNK): Links will be tagged (e.g. Link) and inserted in the linklist.
  26. (TIT): Titel-formattings will be removed. Titels will be tagged (e.g. Titel level 1). Titels will be inserted in the titel-structure.
  27. (BEG): At the beginning of the document, links to titel- and link-structure will be inserted.
  28. (TLS): At the end of the document, the titel-structure will be inserted.
  29. (LLS): At the end of the document, the link-structure will be inserted.
  30. (EDC): The end of the document will be marked.
  31. (ELL): The end of the linklist will be marked.
  32. (BLU): There will be 60 <br> inserted at the end of the file.

2.2 tf.text.config

Each line contains a text. In this text, every character except the carriage return at the end of the line is significant (space also!). Lines that contain only a carriage return are significant too. How these texts are used is explained in the following list. Lines of the file that are comments are not listed. The listing is of the format:

default value: use of the text

  1. Link: is inserted before an original link.
  2. Ref to: is inserted before a link that is used to structure the document and is therefore inserted by the document transforming process.
  3. Titel level 1: is inserted before the corresponding titels in the document text.
  4. Titel level 2: as (3)
  5. Titel level 3: as (3)
  6. Titel level 4: as (3)
  7. Titel level 5: as (3)
  8. Titel level 6: as (3)
  9. Titel level 1: is used as a reference to the list of titels of level 1.
  10. Titel level 2: as (9) but level 2
  11. Titel level 3: as (9) but level 3
  12. Titel level 4: as (9) but level 4
  13. Titel level 5: as (9) but level 5
  14. Titel level 6: as (9) but level 6
  15. Titel level 1: is inserted before the corresponding titels in the titellist.
  16. Titel level 2: as (15)
  17. Titel level 3: as (15)
  18. Titel level 4: as (15)
  19. Titel level 5: as (15)
  20. Titel level 6: as (15)
  21. Linklist: is used as a reference to the linklist.
  22. Links: is used as the header of the linklist.
  23. Back to text: is used as a reference from the titellist to the corresponding text.
  24. Upper level: is used as a reference to a higher titel level in the titellist.
  25. Lower level: is used as a reference to a lower titel level in the titellist.
  26. Image: is used as a replacement for images.
  27. Radiobutton: is inserted before radiobuttons.
  28. Checkbox: is inserted before checkboxes.
  29. Editbox: is inserted before editboxes.
  30. Combobox: is inserted before comboboxes.
  31. Button: is inserted before buttons.
  32. End of linklist: is written at the end of the linklist.
  33. End of document: is written at the end of the document.
  34. Top of document: is used as a reference to the very beginning of the document.

Contact:

We would like to hear you suggestions, ideas, opinions and comments on this project. Feel free to send email.

Louis Perrochon, Andrea Kennel
Institut für Informationsysteme
ETH Zentrum
8092 Zürich
+41 1 632 7282
perrochon@acm.org, kennel@inf.ethz.ch


[ CS-Department | Up ]
ETH Zürich: Department of Computer Science
Comments to webmaster@inf.ethz.ch.
June 15, 1995

This page is <http://www.inf.ethz.ch/department/IS/ea/blinds/install.html>.