Commit 6926fd2a authored by Axel Beckert's avatar Axel Beckert

Imported Upstream version 2.8.5

parents
This diff is collapsed.
This diff is collapsed.
/* Copyright (C) 1995 University of Kansas.
This file is part of Lynx, a text-based WWW browser.
Lynx is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.
Lynx 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 Lynx; see the file COPYING. If not, write to the Free
Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
Any licensing or usage questions should be directed to Michael
Grobe <grobe@ukans.edu>.
*/
This diff is collapsed.
This diff is collapsed.
/* definitions for help files */
#ifndef LYHELP_H
#define LYHELP_H
#define ALT_EDIT_HELP "keystrokes/@ALT_EDIT_HELP@"
#define BASHLIKE_EDIT_HELP "keystrokes/@BASHLIKE_EDIT_HELP@"
#define COOKIE_JAR_HELP "@LYNX_USERS_GUIDE@#Cookies"
#define CURRENT_KEYMAP_HELP "keystrokes/@KEYSTROKE_HELP@"
#define DIRED_MENU_HELP "keystrokes/@DIRED_HELP@"
#define EDIT_HELP "keystrokes/@EDIT_HELP@"
#define DOWNLOAD_OPTIONS_HELP "@LYNX_USERS_GUIDE@#RemoteSource"
#define HISTORY_PAGE_HELP "keystrokes/@HISTORY_HELP@"
#define LIST_PAGE_HELP "keystrokes/@FOLLOW_HELP@"
#define LYNXCFG_HELP "lynx.cfg"
#define OPTIONS_HELP "keystrokes/@OPTION_HELP@"
#define PRINT_OPTIONS_HELP "keystrokes/@PRINT_HELP@"
#define UPLOAD_OPTIONS_HELP "@LYNX_USERS_GUIDE@#DirEd"
#define VISITED_LINKS_HELP "keystrokes/@VISITED_HELP@"
#endif /* LYHELP_H */
This diff is collapsed.
This diff is collapsed.
Lynx README file
Lynx Version 2.8.4 is the latest release (July 2001).
See the CHANGES file for a complete record of all changes and bug fixes.
New releases are announced on the lynx-dev mailing list (see below).
FOR REAL NOVICES
To use this package, you need a compiler & a bit of experience
at very simple programming. If you just want something which will work
`out-of-the-box', you can get pre-compiled versions of Lynx
by following the links from <URL: http://lynx.browser.org/> ;
for DOS or Windows, goto <URL: http://www.fdisk.com/doslynx/lynxport.htm>.
WHAT IS LYNX?
Lynx is a fully-featured World Wide Web (WWW) client for users running
cursor-addressable, character-cell display devices such as vt100 terminals,
vt100 emulators running on Windows 95/NT or Macintoshes, or any other
character-cell display. It will display Hypertext Markup Language (HTML)
documents containing links to files on the local system, as well as files on
remote systems running http, gopher, ftp, wais, nntp, finger, or cso/ph/qi
servers, and services accessible via logins to telnet, tn3270 or rlogin
accounts. Current versions of Lynx run on Unix, VMS, Windows95/NT, 386DOS
and OS/2 EMX.
Lynx can be used to access information on the WWW, or to establish
information systems intended primarily for local access. Lynx has been
used to build several Campus Wide Information Systems (CWIS). Lynx can
also be used to build systems isolated within a single LAN.
HOW TO GET LYNX
For the latest release of Lynx goto:
<URL: http://lynx.isc.org/release>;
<URL: ftp://lynx.isc.org/release>;
the latest development version is at:
<URL: http://lynx.isc.org/current>.
The Lynx homepage is <URL: http://lynx.browser.org/>.
The on-line help page (enter `h') has links to many useful things.
LICENSE
Lynx is distributed under the GNU General Public License (GPL) without
restrictions on usage or redistribution. The Lynx copyright statement,
"COPYHEADER", and GNU GPL, "COPYING", are included in the top-level
directory of the distribution. Lynx is supported by the Lynx user
community, an entirely volunteer (and unofficial) organization.
Certain portions of the Lynx source distribution were originally
created by CERN and have been modified during the development of
Lynx. See WWW/FreeofCharge.html for copyright info regarding CERN
products used in Lynx.
Note that Lynx is not self-contained; typically it is built with a
variety of add-on libraries, including those for compression, IPv6,
SOCKS and SSL support.
YEAR 2000 COMPLIANCE
We believe Lynx works properly for the Year 2000 issues, since it does
not store dates in 2-digit form. Since it must communicate with a wide
range of web servers, it interprets dates in a variety of formats. In
particular, if Lynx receives a date with a 2-digit year, it assumes that
values less than 70 are in the range 2000-2069.
INSTALLING LYNX
To install Lynx, follow the steps in the INSTALLATION file, which is
located in the top directory of the source distribution.
DOCUMENTATION
A users guide is included in this distribution along with a man page
for Unix systems and a help file for VMS systems. All documentation is
contained in the top directory and the docs, samples and lynx_help
subdirectories.
While running Lynx, type 'h', 'H', or '?' to invoke the help menu
system. From the help menu you may access several useful documents
pertaining to Lynx and the World Wide Web. The most important of
these is the Lynx Users Guide. By default, Lynx will use the Lynx
Enhanced Pages, which includes http links for help and FAQs concerning
Lynx. It is recommended that you install your own help menu system at
your site in order to lessen the load on http servers. This also will
allow you to customize the help menu system for your site and greatly
speed up access for those using Lynx over a slow connection.
INSTALLING THE DOCUMENTATION
For Unix and related systems which support the autoconf configure script,
the help menu system is installed by the "make install-help" command.
For other systems (such as VMS), copy COPYHEADER and COPYING into the
lynx_help/ subdirectory. Then copy the lynx_help subdirectory to a public
place on your system, or into your $HOME directory if you are a single
user. Finally, edit the lynx.cfg file so that the HELPFILE line is
defined as follows:
HELPFILE:file://localhost/[public_path]/lynx_help/lynx_help_main.html
where [public_path] is the absolute path to the lynx_help directory.
Customizing the help menu system is just a matter of editing a set of
HTML files. Additional information about installing and customizing
the help file set is available at <URL:http://www.irm.nara.kindai.ac.jp/
lynxdev/README.help>.
INSTALLING LYNX
To install Lynx, follow the steps in the INSTALLATION file, which is
located in the top directory of the source distribution. Win32 users
who need pre-compiled distributions should visit the site
<URL:http://www.fdisk.com/doslynx/lynxport.htm>.
PROBLEMS
If you experience problems configuring, compiling or installing Lynx,
please read Section VI. "General installation instructions" in the
INSTALLATION file. Instructions are given there for reporting your
problem to the "lynx-dev" mailing list, which is frequented by experienced
Lynx users.
LYNX-DEV MAILING LIST
To subscribe to lynx-dev, send email to <URL: mailto:majordomo@sig.net>
with only the following message in the body:
SUBSCRIBE LYNX-DEV address
where inclusion of your email address is optional if it can be obtained,
correctly, from the mail headers of your subscription request.
If you wish to unsubscribe from lynx-dev, send email to
<URL: mailto:majordomo@sig.net> with only the following message in the body:
UNSUBSCRIBE LYNX-DEV address
where inclusion of your email address is optional if it can be obtained,
correctly, from the mail headers of your request.
Also, to get a list of useful majordomo commands, send email to
<URL: mailto:majordomo@sig.net> with the following command:
^^^^^^^^^
HELP
PLEASE!!! do not send commands to the lynx-dev mailing list itself.
Any messages you wish to post should be sent to
<URL: mailto:lynx-dev@sig.net>.
PLEASE use the lynx-dev list, NOT private email to the developers,
for questions or discussion about Lynx, or contributions of patches.
Patches should use the unified diff format (diff -u), which can be
generated by building the target, "make lynx.patch" after unpacking
a pristine copy of the source into a subdirectory called "orig".
You need not be subscribed to the lynx-dev list in order to post. If
you post without subscribing, though, you should read replies to your
questions or comments in the archive since more often than not nobody
will send a carbon copy to you. View the archives at:
"lynx-dev Mailing list archives"
<URL:http://www.flora.org/lynx-dev/html/>
$!
$! Lynx_Dir:VMSPrint.com - Alan J. Hirsh (hirsh@atuk.aspentec.com)
$! ---------------------
$! Lynx deletes temporary files on exit. If your printer queue
$! is very busy such that Lynx is deleting the files before they
$! have been queued for printing, use PRINTER commands in lynx.cfg
$! which invoke this script.
$!
$! PRINTER:description for menu:@Lynx_Dir\:VMSPrint queue_name %s:FALSE:58
$!
$! P1 = queue_name (e.g., sys$print) P2 = temporary Lynx file (%s)
$! --------------------------------- -----------------------------
$ copy 'P2' 'P2'_temp_print
$ print/queue='P1'/delete 'P2'_temp_print
$ exit
<!-- X-URL: http://www.w3.org/History/1993/WWW/Conditions/old/FreeofCharge.html -->
<BASE HREF="http://www.w3.org/History/1993/WWW/Conditions/old/FreeofCharge.html">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<HTML><HEAD><TITLE>
CERN WWW software freely available</TITLE><NEXTID N="z9"></HEAD><BODY><H1>
Software freely available</H1>The following CERN software is hereby put into
the public domain.
<UL>
<LI>WWW basic ("line-mode") client <LI>WWW basic server <LI>WWW Library of
common code.</UL>CERN relinquishes all intellectual property rights to this
code, both source and binary form and permission is granted for anyone to use,
duplicate,
modify and redistribute it.<P>CERN provides absolutely NO WARRANTY OF ANY KIND
with respect to this software.
The entire risk as to the quality and performance of this software is with the
user.
IN NO EVENT WILL CERN BE LIABLE TO ANYONE FOR ANY DAMAGES ARISING OUT THE USE
OF THIS SOFTWARE, INCLUDING, WITHOUT LIMITATION,
DAMAGES RESULTING FROM LOST DATA OR LOST PROFITS, OR FOR ANY SPECIAL,
INCIDENTAL OR CONSEQUENTIAL DAMAGES.<P>This is part of the <A
HREF="Introduction.html" NAME="z8">
CERN WWW</A> distribution condidtions.<P>Declaration to this effect signed by
the CERN directors of Administration (H. Weber) and Research (W.
Hoogland), May 1993.</BODY></HTML>
This diff is collapsed.
/* BROWSER SIDE ACCESS AUTHORIZATION MODULE
This module is the browser side interface to Access Authorization (AA) package. It
contains code only for browser.
Important to know about memory allocation:
Routines in this module use dynamic allocation, but free automatically all the memory
reserved by them.
Therefore the caller never has to (and never should) free() any object returned by
these functions.
Therefore also all the strings returned by this package are only valid until the next
call to the same function is made. This approach is selected, because of the nature of
access authorization: no string returned by the package needs to be valid longer than
until the next call.
This also makes it easy to plug the AA package in: you don't have to ponder whether to
free()something here or is it done somewhere else (because it is always done somewhere
else).
The strings that the package needs to store are copied so the original strings given as
parameters to AA functions may be freed or modified with no side effects.
Also note:The AA package does not free() anything else than what it has itself
allocated.
*/
#ifndef HTAABROW_H
#define HTAABROW_H
#include <HTAAUtil.h> /* Common parts of AA */
/*
Routines for Browser Side Recording of AA Info
Most of the browser-side AA is done by the following two functions (which are called
from file HTTP.c so the browsers using libwww only need to be linked with the new
library and not be changed at all):
HTAA_composeAuth() composes the Authorization: line contents, if the AA package
thinks that the given document is protected. Otherwise this function returns NULL.
This function also calls the functions HTPrompt(),HTPromptPassword() and HTConfirm()
to get the username, password and some confirmation from the user.
HTAA_shouldRetryWithAuth() determines whether to retry the request with AA or with a
new AA (in case username or password was misspelled).
*/
/* PUBLIC HTAA_composeAuth()
**
** COMPOSE THE ENTIRE AUTHORIZATION HEADER LINE IF WE
** ALREADY KNOW, THAT THE HOST MIGHT REQUIRE AUTHORIZATION
**
** ON ENTRY:
** hostname is the hostname of the server.
** portnumber is the portnumber in which the server runs.
** docname is the pathname of the document (as in URL)
**
** ON EXIT:
** returns NULL, if no authorization seems to be needed, or
** if it is the entire Authorization: line, e.g.
**
** "Authorization: basic username:password"
**
** As usual, this string is automatically freed.
*/
extern char *HTAA_composeAuth PARAMS((
CONST char * hostname,
CONST int portnumber,
CONST char * docname,
BOOL IsProxy));
/* BROWSER PUBLIC HTAA_shouldRetryWithAuth()
**
** DETERMINES IF WE SHOULD RETRY THE SERVER
** WITH AUTHORIZATION
** (OR IF ALREADY RETRIED, WITH A DIFFERENT
** USERNAME AND/OR PASSWORD (IF MISSPELLED))
** ON ENTRY:
** start_of_headers is the first block already read from socket,
** but status line skipped; i.e., points to the
** start of the header section.
** length is the remaining length of the first block.
** soc is the socket to read the rest of server reply.
**
** This function should only be called when
** server has replied with a 401 (Unauthorized)
** status code.
** ON EXIT:
** returns YES, if connection should be retried.
** The node containing all the necessary
** information is
** * either constructed if it does not exist
** * or password is reset to NULL to indicate
** that username and password should be
** reprompted when composing Authorization:
** field (in function HTAA_composeAuth()).
** NO, otherwise.
*/
extern BOOL HTAA_shouldRetryWithAuth PARAMS((
char * start_of_headers,
int length,
int soc,
BOOL IsProxy));
/*
** Function to allow clearing of all Authorization info
** via a browser command. - FM
*/
extern void HTClearHTTPAuthInfo NOPARAMS;
/*
Enabling Gateway httpds to Forward Authorization
These functions should only be called from daemon code, and HTAAForwardAuth_reset()
must be called before the next request is handled to make sure that authorization
string isn't cached in daemon so that other people can access private files using
somebody else's previous authorization information.
*/
extern void HTAAForwardAuth_set PARAMS((
CONST char * scheme_name,
CONST char * scheme_specifics));
extern void HTAAForwardAuth_reset NOPARAMS;
/*
*/
#endif /* NOT HTAABROW_H */
/*
End of file HTAABrow.h. */
This diff is collapsed.
/* PROTECTION SETUP FILE
*/
#ifndef HTAAPROT_H
#define HTAAPROT_H
#include <HTGroup.h>
#include <HTAssoc.h>
/*
Server's Representation of Document (Tree) Protections
*/
typedef struct {
char * template; /* Template for this protection */
char * filename; /* Current document file */
char * uid_name; /* Effective uid (name of it) */
char * gid_name; /* Effective gid (name of it) */
GroupDef * mask_group; /* Allowed users and IP addresses */
HTList * valid_schemes;/* Valid authentication schemes */
HTAssocList * values; /* Association list for scheme specific */
/* parameters. */
} HTAAProt;
/*
Callbacks for rule system
The following three functioncs are called by the rule system:
HTAA_clearProtections() when starting to translate a filename
HTAA_setDefaultProtection() when "defprot" rule is matched
HTAA_setCurrentProtection() when "protect" rule is matched
Protection setup files are cached by these functions.
*/
/* PUBLIC HTAA_setDefaultProtection()
** SET THE DEFAULT PROTECTION MODE
** (called by rule system when a
** "defprot" rule is matched)
** ON ENTRY:
** cur_docname is the current result of rule translations.
** prot_filename is the protection setup file (second argument
** for "defprot" rule, optional)
** eff_ids contains user and group names separated by
** a dot, corresponding to the effective uid
** gid under which the server should run,
** default is "nobody.nogroup" (third argument
** for "defprot" rule, optional; can be given
** only if protection setup file is also given).
**
** ON EXIT:
** returns nothing.
** Sets the module-wide variable default_prot.
*/
extern void HTAA_setDefaultProtection PARAMS((CONST char * cur_docname,
CONST char * prot_filename,
CONST char * eff_ids));
/* PUBLIC HTAA_setCurrentProtection()
** SET THE CURRENT PROTECTION MODE
** (called by rule system when a
** "protect" rule is matched)
** ON ENTRY:
** cur_docname is the current result of rule translations.
** prot_filename is the protection setup file (second argument
** for "protect" rule, optional)
** eff_ids contains user and group names separated by
** a dot, corresponding to the effective uid
** gid under which the server should run,
** default is "nobody.nogroup" (third argument
** for "protect" rule, optional; can be given
** only if protection setup file is also given).
**
** ON EXIT:
** returns nothing.
** Sets the module-wide variable current_prot.
*/
extern void HTAA_setCurrentProtection PARAMS((CONST char * cur_docname,
CONST char * prot_filename,
CONST char * eff_ids));
/* SERVER INTERNAL HTAA_clearProtections()
** CLEAR DOCUMENT PROTECTION MODE
** (ALSO DEFAULT PROTECTION)
** (called by the rule system)
** ON ENTRY:
** No arguments.
**
** ON EXIT:
** returns nothing.
** Frees the memory used by protection information.
*/
extern void HTAA_clearProtections NOPARAMS;
/*
Getting Protection Settings
HTAA_getCurrentProtection() returns the current protection mode (if there was a
"protect" rule). NULL, if no "protect" rule has been matched.
HTAA_getDefaultProtection() sets the current protection mode to what it was set to
by "defprot" rule and also returns it (therefore after this call also
HTAA_getCurrentProtection() returns the same structure.
*/
/* PUBLIC HTAA_getCurrentProtection()
** GET CURRENT PROTECTION SETUP STRUCTURE
** (this is set up by callbacks made from
** the rule system when matching "protect"
** (and "defprot") rules)
** ON ENTRY:
** HTTranslate() must have been called before calling
** this function.
**
** ON EXIT:
** returns a HTAAProt structure representing the
** protection setup of the HTTranslate()'d file.
** This must not be free()'d.
*/
extern HTAAProt *HTAA_getCurrentProtection NOPARAMS;
/* PUBLIC HTAA_getDefaultProtection()
** GET DEFAULT PROTECTION SETUP STRUCTURE
** (this is set up by callbacks made from
** the rule system when matching "defprot"
** rules)
** ON ENTRY:
** HTTranslate() must have been called before calling
** this function.
**
** ON EXIT:
** returns a HTAAProt structure representing the
** default protection setup of the HTTranslate()'d
** file (if HTAA_getCurrentProtection() returned
** NULL, i.e., if there is no "protect" rule
** but ACL exists, and we need to know default
** protection settings).
** This must not be free()'d.
*/
extern HTAAProt *HTAA_getDefaultProtection NOPARAMS;
/*
Get User and Group IDs to Which Set to
*/
#ifndef VMS
/* PUBLIC HTAA_getUid()
** GET THE USER ID TO CHANGE THE PROCESS UID TO
** ON ENTRY:
** No arguments.
**
** ON EXIT:
** returns the uid number to give to setuid() system call.
** Default is 65534 (nobody).
*/
extern int HTAA_getUid NOPARAMS;