Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

This commit was manufactured by cvs2svn to create tag 'DEB_4_6_4_1'.

  • Loading branch information...
commit 4ba36b726f56ef44c585141599b77917a5d932c6 1 parent c06c442
cvs2svn authored
View
46 dist/src/mod_interchange/Makefile
@@ -1,46 +0,0 @@
-##
-## Makefile -- Build procedure for mod_interchange Apache module
-## Originally autogenerated via ``apxs -n mod_interchange -g''.
-##
-
-# the used tools
-APXS=apxs
-APACHECTL=apachectl
-
-# additional defines, includes and libraries
-#DEF=-Dmy_define=my_value
-#INC=-Imy/include/dir
-#LIB=-Lmy/lib/dir -lmylib
-
-# the default target
-all: mod_interchange.so
-
-# compile the shared object file
-mod_interchange.so: mod_interchange.c
- $(APXS) -c $(DEF) $(INC) $(LIB) mod_interchange.c
-
-# install the shared object file into Apache
-install: all
- $(APXS) -i -a -n interchange mod_interchange.so
-
-# cleanup
-clean:
- -rm -f mod_interchange.o mod_interchange.so
-
-# simple test
-test: reload
- lynx -mime_header http://localhost/mod_interchange
-
-# install and activate shared object by reloading Apache to
-# force a reload of the shared object file
-reload: install restart
-
-# the general Apache start/restart/stop
-# procedures
-start:
- $(APACHECTL) start
-restart:
- $(APACHECTL) restart
-stop:
- $(APACHECTL) stop
-
View
147 dist/src/mod_interchange/README
@@ -1,147 +0,0 @@
-mod_interchange
-===============
-
-Version: 1.04
-
-Description
------------
-mod_interchange is designed to replace the vlink and tlink programs that
-come with Interchange. The Interchange link protocol is implemented via
-an Apache module which saves us the (small) overhead of the execution
-of a CGI program.
-
-Requires
---------
-Apache 1.3.6 or later
-Any version of Interchange (all the way back to MiniVend 3.12)
-
-Installing
-----------
-The included Makefile builds the module as a DSO object. So if your
-Apache has mod_dso.so configured you can do:
-
-make
-make install
-
-If not, you can copy the file mod_interchange.c to src/modules/extra
-and add the option:
-
---activate-module=src/modules/extra/mod_interchange.c
-
-to the 'configure' command when building Apache.
-
-Configuring Interchange
------------------------
-First you need to decide what URL path you want to point to Interchange,
-and make sure you don't need any files from that same path. For example,
-with the default Construct Something demo you have HTML and images in:
-
-http://www.yourdomain.com/construct/*
-
-So you can't have mod_interchange take over the /construct path. Instead
-use a different name like /store, so that users will access the site with
-a URL like:
-
-http://www.yourdomain.com/store
-
-And Apache will still be able to serve images from /construct/* just fine.
-
-To make such a change, you need to modify the Catalog directive in
-interchange.cfg to look like this:
-
-Catalog construct /var/lib/interchange/construct /store
-
-And update the CGI_URL variable in catalog.cfg by uncommenting and changing
-this line:
-
-Variable CGI_URL /store
-
-Configuring Apache
-------------------
-The module understands one directive which specifies the way to contact
-the Interchange server. The directive InterchangeServer takes either a
-full pathname to the Interchange UNIX socket or a host:port specification
-if you want to use INET mode.
-
-That means you need to add new Location section to your Apache httpd.conf.
-We'll discuss the two kinds of InterchangeServer settings separately.
-
-UNIX socket setup
------------------
-Here is an example httpd.conf section for connecting to Interchange via
-a UNIX socket on the same machine Apache's running on:
-
-<Location /store>
- SetHandler interchange-handler
- InterchangeServer /var/run/interchange/socket
-</Location>
-
-Since you're not using the set-UID CGI executable anymore, you need to
-allow the Apache daemon to read from and write to the socket directly.
-This is slightly tricky because Interchange recreates the socket file each
-time it is run, so you can't just modify the ownership and permissions
-of the socket file directly.
-
-We solve this by setting the group ownership of the directory the socket
-is in to a group Apache is a member of (usually www, apache, http, nobody,
-or similar):
-
-chgrp apache /var/run/interchange
-
-Then we make the directory set-GID so any files created in it will have
-the same group ownership as the directory:
-
-chmod g+srx /var/run/interchange
-
-Obviously you'll need to substitute the correct group for 'apache' and the
-right parent directory of the socket where we show '/var/run/interchange'.
-In a non-RPM Interchange installation the directory is 'etc' inside the
-Interchange software directory (perhaps /usr/local/interchange).
-
-Next you need to add this directive to interchange.cfg:
-
-SocketPerms 0660
-
-This tells Interchange to allow reading from and writing to the socket by
-the group (which our set-GID directory will set to the group the Apache
-daemon is in), instead of the default 0600, which would only allow reading
-and writing by the owner (the Interchange user, usually 'interch').
-
-INET socket setup
------------------
-This is the configuration to connect to Interchange via INET sockets:
-
-<Location /store>
- SetHandler interchange-handler
- InterchangeServer ic.host.com:7786
-</Location>
-
-The port number is optional if you're using the default port 7786.
-
-Support
--------
-Visit http://developer.akopia.com/ to find information on how you can join
-the Interchange mailing lists, browse documentation and mailing list
-archives, and get other support.
-
-History
--------
-mod_interchange is the direct descendant of mod_minivend, created by
-Francis J. Lacoste <francis.lacoste@iNsu.com> at iNsu Innovations Inc.
-in 1999. Thanks, Francis!
-
-Maintenance of the module was taken over by Red Hat (formerly Akopia)
-in February 2001, with Francis's blessing. The only changes we've made
-so far are to rename occurrences of MiniVend to Interchange, expand the
-documentation, and include it in the standard Interchange distribution
-starting with Interchange 4.6.4.
-
-Copyright
----------
-Copyright (c) 1999 Francis J. Lacoste and iNsu Innovations Inc.
-All rights reserved.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
View
561 dist/src/mod_interchange/mod_interchange.c
@@ -1,561 +0,0 @@
-/*
- * mod_interchange.c
- * Apache module implementation of the Interchange link program.
- *
- * Support: http://developer.akopia.com/
- *
- * Author: Francis J. Lacoste <francis.lacoste@iNsu.COM>
- *
- * Copyright (C) 1999 Francis J. Lacoste, iNsu Innovations
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- * 02111-1307 USA
- */
-
-/*
- * $Id: mod_interchange.c,v 1.2 2001-03-09 07:11:22 jon Exp $
- *
-*/
-
-#include "httpd.h"
-#include "http_config.h"
-#include "http_core.h"
-#include "http_log.h"
-#include "http_main.h"
-#include "http_protocol.h"
-#include "util_script.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <unistd.h>
-
-#define IC_DEFAULT_PORT 7786
-#define IC_DEFAULT_ADDR "127.0.0.1"
-
-/* Forward declaration */
-module MODULE_VAR_EXPORT interchange_module;
-
-typedef struct ic_conf_struct
-{
- struct sockaddr *sockaddr; /* Socket of Interchange Server */
- int family; /* The socket family of that one */
- NET_SIZE_T size; /* The size of the socket */
- char *address; /* Human readable version of the above */
-} ic_conf_rec;
-
-typedef struct ic_response_buffer_struct
-{
- int buff_size;
- int pos;
- char buff[HUGE_STRING_LEN];
-} ic_response_buffer;
-
-static void*
-ic_create_dir_config(pool *p, char *dir)
-{
- struct sockaddr_in *inet_sock;
-
- ic_conf_rec *conf_rec = (ic_conf_rec *)ap_pcalloc(p, sizeof(ic_conf_rec));
-
- /* Default connection method is INET to localhost */
- inet_sock =
- (struct sockaddr_in *)ap_pcalloc( p, sizeof (struct sockaddr_in));
- inet_sock->sin_family = AF_INET;
- inet_aton( IC_DEFAULT_ADDR, &inet_sock->sin_addr );
- inet_sock->sin_port = htons( IC_DEFAULT_PORT );
-
- conf_rec->sockaddr = (struct sockaddr *)inet_sock;
- conf_rec->size = sizeof (struct sockaddr_in);
- conf_rec->family = PF_INET;
- conf_rec->address = IC_DEFAULT_ADDR ":" "IC_DEFAULT_PORT";
-
- return conf_rec;
-}
-
-static const char*
-ic_server_cmd(cmd_parms *parms, void *mconfig, const char *arg)
-{
- ic_conf_rec *conf_rec = (ic_conf_rec *)mconfig;
-
- conf_rec->address = ap_pstrdup( parms->pool, arg );
- if ( conf_rec->address == NULL )
- return "not enough memory";
-
- /* Verify type of the argument */
- if ( *arg == '/' ) {
- /* This is a UNIX socket specification */
- struct sockaddr_un *unix_sock;
-
- unix_sock = (struct sockaddr_un *)
- ap_pcalloc( parms->pool, sizeof( struct sockaddr_un ) );
- if (unix_sock == NULL)
- return "not enough memory";
-
- unix_sock->sun_family = AF_LOCAL;
- ap_cpystrn( unix_sock->sun_path, conf_rec->address,
- sizeof (unix_sock->sun_path));
-
- conf_rec->family = PF_LOCAL;
- conf_rec->size = SUN_LEN( unix_sock );
- conf_rec->sockaddr = (struct sockaddr *)unix_sock;
- } else {
- /* INET Socket
-
- The argument is an IP address or hostname followed by
- an optional port specification.
- */
- struct sockaddr_in *inet_sock;
- char **hostaddress, *hostname;
-
- inet_sock = (struct sockaddr_in *)
- ap_pcalloc( parms->pool, sizeof( struct sockaddr_in ) );
- if (inet_sock == NULL)
- return "not enough memory";
- inet_sock->sin_family = AF_INET;
-
- hostaddress = &(conf_rec->address);
- hostname = ap_getword_nc( parms->temp_pool, hostaddress, ':');
-
- if ( ! inet_aton( hostname, &inet_sock->sin_addr ) )
- {
- /* Address must be a host */
- struct hostent * host;
- host = ap_pgethostbyname( parms->temp_pool, hostname );
- if ( ! host )
- return "invalid host specification";
-
- memcpy(&inet_sock->sin_addr, host->h_addr,
- sizeof(inet_sock->sin_addr) );
- }
-
- /* Check if there is a port spec */
- if ( **hostaddress ) {
- int port = atoi( *hostaddress );
-
- if ( port < 1 || port > 65535 )
- return "invalid port specification";
-
- inet_sock->sin_port = htons( port );
- } else {
- inet_sock->sin_port = htons( IC_DEFAULT_PORT );
- }
-
- conf_rec->sockaddr = (struct sockaddr *)inet_sock;
- conf_rec->family = PF_INET;
- conf_rec->size = sizeof( struct sockaddr_in );
- conf_rec->sockaddr = (struct sockaddr *)inet_sock;
- }
-
- return NULL;
-}
-
-static BUFF *
-ic_connect( request_rec *r, ic_conf_rec *conf_rec )
-{
- int ic_sock;
- BUFF *ic_buff;
-
- /* Open connection to the server */
- ic_sock = ap_psocket( r->pool, conf_rec->family, SOCK_STREAM, 0 );
- if ( ic_sock < 0 ) {
- ap_log_reason( "socket", r->uri, r);
- return NULL;
- }
-
- /* Initialize a timeout */
- ap_hard_timeout( "ic_connect", r );
- if ( connect( ic_sock, conf_rec->sockaddr, conf_rec->size ) < 0 )
- {
- ap_log_reason( "Connection failed", r->uri, r );
- return NULL;
- }
- ap_kill_timeout( r );
-
- /* Create a BUFF struct of that socket */
- ic_buff = ap_bcreate( r->pool, B_RDWR | B_SOCKET );
- if ( !ic_buff) {
- ap_log_reason( "failed to create BUFF", r->uri, r );
- return NULL;
- }
- ap_bpushfd( ic_buff, ic_sock, ic_sock );
-
- return ic_buff;
-}
-
-static int
-ic_send_request( request_rec *r, ic_conf_rec *conf_rec, BUFF *ic_buff )
-{
- char **env, **e;
- int env_count, rc;
-
- /* Initialize a timeout */
- ap_hard_timeout( "ic_send_request", r );
-
- /* Send the arg param
- This is always empty for a CGI request
- */
- if ( ap_bputs( "arg 0\n", ic_buff ) < 0 ) {
- ap_log_reason( "error writing to Interchange", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- ap_reset_timeout( r );
-
- /* Now on with the environment */
-
- /* Initialize Environment to send to Interchange */
- ap_add_common_vars( r );
- ap_add_cgi_vars( r );
-
- env = ap_create_environment( r->pool, r->subprocess_env );
-
- /* Send the count */
- for (e = env, env_count = 0; *e != NULL; ++e, ++env_count);
- if ( ap_bprintf( ic_buff, "env %d\n", env_count ) < 0 ) {
- ap_log_reason( "error writing to Interchange", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- ap_reset_timeout( r );
-
- /* Now the vars */
- for ( e = env; *e != NULL; ++e) {
- if ( ap_bprintf(ic_buff, "%d %s\n", strlen(*e), *e ) < 0 ) {
- ap_log_reason( "error writing to Interchange", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- ap_reset_timeout( r );
- }
-
- /* Send the request body if any */
- if ( r->method_number == M_POST ) {
- if ( (rc = ap_setup_client_block( r, REQUEST_CHUNKED_ERROR) ) != OK)
- return rc;
-
- if ( ap_should_client_block(r) ) {
- char buffer[HUGE_STRING_LEN];
- int len_read;
- long length = r->remaining;
-
- if (ap_bprintf( ic_buff, "entity\n%ld ", length ) < 0 ) {
- ap_log_reason( "error writing to Interchange", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-
- while ( (len_read =
- ap_get_client_block(r, buffer, sizeof(buffer ))
- ) > 0 )
- {
- ap_reset_timeout(r);
-
- /* Send that to Interchange */
- if ( ap_bwrite( ic_buff, buffer, len_read ) != len_read ) {
- ap_log_reason( "error writing to Interchange", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- ap_reset_timeout(r);
- }
- if ( len_read < 0 ) {
- ap_log_reason( "error reading from client", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- /* Send end of line */
- if ( ap_bputc( '\n', ic_buff ) < 0 ) {
- ap_log_reason( "error writing to Interchange", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- }
- }
-
- /* We are done */
- if ( ap_bputs( "end\n", ic_buff ) < 0 ) {
- ap_log_reason( "error writing to Interchange", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- ap_reset_timeout( r );
- if ( ap_bflush( ic_buff ) < 0 ) {
- ap_log_reason( "error writing to Interchange", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-
- ap_kill_timeout( r );
-
- return OK;
-}
-
-static int
-ic_transfer_response( request_rec *r, ic_conf_rec *conf_rec,
- BUFF *ic_buff )
-{
- char error_buff[MAX_STRING_LEN];
- BUFF *client_buff;
- int rc;
-
- array_header *resp_buff_arr;
- int cur_reading_elt;
- int cur_writing_elt;
-
- /* For ap_select */
- fd_set readers,writers;
- int client_fd,ic_fd,maxfd;
- int reading,writing;
-
- ap_hard_timeout( "ic_transfer_response", r );
-
- /* Scan the request response for CGI headers */
- if ( ap_scan_script_header_err_buff( r, ic_buff, error_buff ) != OK )
- {
- ap_log_rerror( APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, r,
- "Error while scanning response headers: %s",
- error_buff );
-
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-
- /* Send beggining of the response */
- ap_reset_timeout( r );
- ap_send_http_header( r );
- /* Make sure all headers are flushed */
- if ( ap_rflush( r ) < 0 ) {
- ap_log_reason( "error sending headers to client", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- ap_reset_timeout(r);
-
- /* OK, now turn on non blocking IO */
- client_buff = r->connection->client;
- if ( (rc = ap_bnonblock( client_buff, B_WR ) ) != 0 )
- {
- ap_log_reason( "error turning non blocking I/O on client",
- r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- if ( (rc = ap_bnonblock( ic_buff, B_RD ) ) != 0 )
- {
- ap_log_reason( "error turning non blocking I/O on Interchange",
- r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- ap_bsetflag( ic_buff, B_SAFEREAD, 1 );
-
- reading = 1, writing = 1;
- client_fd = ap_bfileno( client_buff, B_WR );
- ic_fd = ap_bfileno( ic_buff, B_RD );
- maxfd = client_fd > ic_fd ? client_fd : ic_fd;
- maxfd++;
-
- /* Allocate array for response */
- resp_buff_arr = ap_make_array(r->pool, 5, sizeof(ic_response_buffer ) );
- if ( !resp_buff_arr ) {
- ap_log_reason( "failed to allocate response buffer", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- /* Create the first element */
- if ( ap_push_array( resp_buff_arr ) == NULL ) {
- ap_log_reason( "failed to allocate first element", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- cur_reading_elt = 0, cur_writing_elt = 0;
-
- while (1) {
- int i;
-
- FD_ZERO(&readers);
- FD_ZERO(&writers);
-
- if ( !reading && !writing) {
- break;
- }
-
- if ( reading )
- FD_SET( ic_fd, &readers );
-
- if ( writing )
- FD_SET(client_fd, &writers);
-
- if ( ( rc = ap_select( maxfd, &readers, &writers, NULL, NULL ) ) < 0 )
- {
- ap_log_reason( "error in ap_select", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-
- if ( reading && FD_ISSET( ic_fd, &readers ) )
- {
- int read_len,left;
- ic_response_buffer *resp_buff;
- char *buff;
-
- resp_buff = ((ic_response_buffer *)resp_buff_arr->elts);
- for ( i=0; i< cur_reading_elt; i++)
- resp_buff++;
-
- buff = resp_buff->buff;
- buff += resp_buff->buff_size;
- left = HUGE_STRING_LEN - resp_buff->buff_size;
-
- read_len = ap_bread( ic_buff, buff, left );
- if ( read_len < 0 ) {
- ap_log_reason( "error while reading Interchange response",
- r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- } else if ( read_len == 0 ) {
- reading = 0;
- } else {
- resp_buff->buff_size += read_len;
- writing = 1; /* Flag to indicate that there is now
- writing to do */
-
- if ( resp_buff->buff_size == HUGE_STRING_LEN ) {
- /* Create a new response buffer in the array */
- resp_buff =
- (ic_response_buffer *)ap_push_array(resp_buff_arr);
- if ( !resp_buff ) {
- ap_log_reason( "error while allocating "
- "response buffer", r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- cur_reading_elt++;
- }
- }
- }
- if ( writing && FD_ISSET( client_fd, &writers ) )
- {
- int write_len,left;
- ic_response_buffer *resp_buff;
- char *buff;
-
- resp_buff = (ic_response_buffer *)resp_buff_arr->elts;
- for ( i=0; i< cur_writing_elt; i++)
- resp_buff++;
-
- buff = resp_buff->buff;
- buff += resp_buff->pos;
- left = resp_buff->buff_size - resp_buff->pos;
- if ( left > 0 ) {
- write_len = ap_bwrite( client_buff, buff, left );
- if ( write_len < 0 ) {
- ap_log_reason( "error while sending response",
- r->uri, r );
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- resp_buff->pos += write_len;
-
- if ( resp_buff->pos == resp_buff->buff_size ) {
- if ( ! reading && cur_writing_elt ==
- cur_reading_elt )
- {
- /* Done */
- writing = 0;
- } else if ( resp_buff->pos == HUGE_STRING_LEN )
- {
- /* No remaining space in the buffer
- */
- cur_writing_elt++;
- } else {
- /*
- It seems that all that was read has been
- sent, so wait for more data.
- */
- writing = 0;
- }
- }
- } else {
- writing = 0;
- }
- }
-
- ap_reset_timeout(r);
- }
-
- /* Push everything to the client */
- if ( ap_bflush( client_buff ) < 0 ) {
- ap_log_reason( "error sending response to client", r->uri, r);
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-
- ap_kill_timeout(r);
- return OK;
-}
-
-static int
-ic_handler( request_rec *r)
-{
- ic_conf_rec *conf_rec;
- BUFF *ic_buff;
- int result;
-
- /* Grab our configuration */
- conf_rec = (ic_conf_rec *)ap_get_module_config( r->per_dir_config,
- &interchange_module );
- if ( ! conf_rec ) {
- ap_log_reason( "interchange-handler not configured properly",
- r->uri, r);
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-
- ic_buff = ic_connect( r, conf_rec );
- if ( !ic_buff )
- return HTTP_INTERNAL_SERVER_ERROR;
-
- result = ic_send_request( r, conf_rec, ic_buff );
- if ( result != OK )
- return result;
-
- return ic_transfer_response( r, conf_rec, ic_buff );
-}
-
-/* Our configuration directives */
-static command_rec ic_cmds[] =
-{
- {
- "InterchangeServer", /* directive name */
- ic_server_cmd, /* config action routine */
- NULL, /* argument to include in call */
- ACCESS_CONF, /* where available */
- TAKE1, /* arguments */
- "address of Interchange server" /* directive description */
- },
- {NULL}
-};
-
-/* Make the name of the content handler known to Apache */
-static handler_rec ic_handlers[] = {
- {"interchange-handler", ic_handler},
- {NULL}
-};
-
-/* Tell Apache what phases of the transaction we handle */
-module MODULE_VAR_EXPORT interchange_module =
-{
- STANDARD_MODULE_STUFF,
- NULL, /* module initializer */
- ic_create_dir_config, /* per-directory config creator */
- NULL, /* dir config merger */
- NULL, /* server config creator */
- NULL, /* server config merger */
- ic_cmds, /* command table */
- ic_handlers, /* [7] content handlers */
- NULL, /* [2] URI-to-filename translation */
- NULL, /* [5] check/validate user_id */
- NULL, /* [6] check user_id is valid *here* */
- NULL, /* [4] check access by host address */
- NULL, /* [7] MIME type checker/setter */
- NULL, /* [8] fixups */
- NULL, /* [9] logger */
- NULL, /* [3] header parser */
- NULL, /* process initialization */
- NULL, /* process exit/cleanup */
- NULL /* [1] post read_request handling */
-};
View
56 dist/src/mod_interchange/mod_interchange.html
@@ -1,56 +0,0 @@
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <TITLE>Module mod_interchange</TITLE>
-</HEAD>
-<BODY>
-
-<H1>Module mod_interchange</H1>
-
-<H2>Interchange link module</H2>
-
-<p>This module replaces the <tt>tlink</tt> and <tt>vlink</tt> programs
-that come with <a href="http://developer.akopia.com/">Interchange</a>.</p>
-
-<P>This modules requires Apache 1.3.6 or greater, and works with any
-version of Interchange (back to MiniVend 3.12).</p>
-
-<P>&nbsp;</P>
-
-<P><A href="#example">Configuration example</A></p>
-
-<H2>Directives</H2>
-
-<ul>
-<li><A href="#server">InterchangeServer</A></li>
-</ul>
-
-<hr>
-<h2>
-<A name="server"></A>InterchangeServer</H2>
-<B>Syntax:</B> InterchangeServer <I>address</I>
-<BR><B>Context:</B> Directory
-<BR><B>Override:</B> None
-<BR><B>Status:</B> Extension
-
-<p>Specifies the way to connect to the Interchange server.</p>
-
-<HR>
-<H2>
-<A NAME="example"></A>Example</H2>
-Here is an example UNIX configuration:
-
-<PRE>&lt;Location /store&gt;
- SetHandler interchange-handler
- InterchangeServer /var/run/interchange/socket
-&lt;/Location&gt;</PRE>
-
-and here is an INET example:
-
-<PRE>&lt;Location /store&gt;
- SetHandler interchange-handler
- InterchangeServer ic.host.com:7786
-&lt;/Location&gt;</PRE>
-
-</body>
-</html>
View
62 dist/src/mod_interchange/mod_interchange.spec
@@ -1,62 +0,0 @@
-Summary: Apache Module to link with Interchange
-Name: mod_interchange
-Version: 1.04
-Release: 1
-Copyright: GPL
-Group: WWW/Applications
-Source: http://ftp.interchange.com/interchange/%{name}-%{version}.tar.gz
-URL: http://developer.akopia.com/
-BuildRoot: /var/tmp/%{name}-%{version}-root
-
-#
-# To do:
-#
-# Deal with Red Hat 6 vs. 7 Apache doc root location difference.
-#
-# Update httpd.conf with an IfDefine section so this works without any
-# further user intervention.
-#
-
-%description
-Apache module that replaces the tlink and vlink program from the
-Interchange distribution.
-
-%prep
-%setup -q
-
-%build
-/usr/sbin/apxs -c mod_interchange.c
-
-%install
-rm -fr $RPM_BUILD_ROOT
-
-mkdir -p $RPM_BUILD_ROOT/usr/lib/apache
-install -m 755 mod_interchange.so $RPM_BUILD_ROOT/usr/lib/apache
-
-mkdir -p $RPM_BUILD_ROOT/home/httpd/html/manual/mod
-install -m 644 mod_interchange.html $RPM_BUILD_ROOT/home/httpd/html/manual/mod
-
-%clean
-rm -fr $RPM_BUILD_ROOT
-
-%files
-%defattr(-,root,root)
-/usr/lib/apache/mod_interchange.so
-/home/httpd/html/manual/mod/mod_interchange.html
-
-%changelog
-* Mon Feb 12 2001 Jon Jensen <jon@akopia.com>
- [1.04-1]
-- Renamed to mod_interchange.
-
-* Mon Aug 02 1999 Francis J. Lacoste <francis.lacoste@iNsu.COM>
- [1.03-1i]
-- Last bugfixes.
-
-* Mon Aug 02 1999 Francis J. Lacoste <francis.lacoste@iNsu.COM>
- [1.02-1i]
-- Fixed spec files bugs.
-
-* Mon Aug 02 1999 Francis J. Lacoste <francis.lacoste@iNsu.COM>
- [1.00-1i]
-- Packaged for iNs/linux.
Please sign in to comment.
Something went wrong with that request. Please try again.