## Table of Contents

1. NCSA HTTPD

1.1 Makefile
1.2 httpd.c
1.3 httpd.h
1.4 http_config.c
1.5 http_log.c
1.6 http_mime.c
1.7 http_request.c
1.8 util.c

## 1. NCSA HTTPD

The aim was to have a replacement for the Netscape commerce server that with the simple addition of a key would be able to server Netscape clients. The patches to NCSA Mosaic were done such that it can talk to this server.

Still to do is the work for a SSL pipe to CGI interface ... at the moment we have not done that block of work (other time pressures) which simply involves an extra process acting as a filter for the SSL encoded I/O.

Note: cgi's are mostly working now ... still have to track down a bug in handling submission of forms, but activation of cgi scripts seems okay.

The httpd stuff was a little messy as the I/O is done in multiple different locations and involved lots of printf's so I cut a printf wrapper (which is in ssl/ssl_trc.c to make life a little easy and the code more maintainable. This wrapper really should be put into httpd and the I/O restructured to go though a single point however that will take more time than is available at the moment.

### 1.1 Makefile

Usual changes for SSL

### 1.2 httpd.c

Command line option addition -z ssl

     -z ssl
     -z debug
     -z verify=INT
     -z cert=filename
     -z key=filename
     -z standalone        # run standalone for a single request
                          # which is very useful for debugging

Note: this means that to run http in a mode that will offer https services you must start httpd with the -z ssl option.

### 1.3 httpd.h

Added DEFAULT_SSL_POR of 443 and defined the global state variables. Also the macro FPRINTF for the SSL version of fprintf was added to make "porting" easier.

### 1.4 http_config.c

Set the port to DEFAULT_SSL_PORT rather than DEFAULT_PORT if we are running as a SSL HTTPS server.

### 1.5 http_log.c

Catch heaps of fprintf's

### 1.6 http_mime.c

Catch some fprintf's

### 1.7 http_request.c

Initial SSL connection negotiation added here ... also had to trap the write sequence in send_fd().

### 1.8 util.c

Changed getline() to support SSL