Configuring outer (3 May 99 v 1.4) [Rework buffer doc. See bracketed note there. WJS] Please refer to [?] if you need an overview of the outer program. Generally, outer can be configured at compile time or at run time. Run-time configuration is controlled by environment variables. If present when outer runs, they are used. If not present, the compile-time constant of the same name, if any, is used. If neither is present, a default value is used. (Sometimes another environment variable is looked at before the default is used - see below.) Some options are logically true/false switches. They can be specified either as a switch (eg; TOPLINKS), or as a value (eg; TOPLINKS = TRUE). Specification as a switch is equivalent to specifying a value of TRUE. As compilation constants, values are integers. 0 is false. 1 is recommended for true. TRUE and FALSE are also accepted. Some switches are also accepted in their negated form (eg; specifying NOTOPLINKS is the same as specifying TOPLINKS=FALSE). As environment variables, specification as switches is not possible. Values are strings. FALSE, false, NO, no, F, f, N, n and 0 all represent false. TRUE, true, YES, yes, T, t, Y, y and 1 all represent true. Strings that evaluate to integers other than 0 or 1 are not accepted. Each method should include in its makefile a compilation of outer. The exact syntax of specifying compilation switches depends on the c compiler in use. A typical compiler will have each switch preceded by -D. Typically, the shell or make utility running the compiler will require string values to be enclosed in escaped "s; eg, -DMYADDR='"mynode.wherever.domain"' The options, with their default values, follow. See the [code?] for the meanings of the options. QUOTENOLINK FALSE USE_DOUBLE FALSE (Not looked for in environment) Each of next group of switches accepts prefix of NO - see above DIRLINK TRUE DOCLINK TRUE PLOTLINK TRUE LEV0LINK TRUE LEVNLINK TRUE FLATLINK TRUE OTHEROPTS TRUE (Same as PLOTLINK. Specified values must match) TOPLINKS TRUE (See note 1) TEST_GIFS FALSE GENERATE_ALPHA_SELECTIONS TRUE BREVSTART 1 BREVCOUNT 20 (Value of 0 equivalent to infinity) BUTTONIMAGESDIR "\0" MYADDR "\0" (See note 2) MYPORT "80" (See note 3) DIRSERVER "\0" INFOSERVER "\0" OPTIONSERVER "\0" (See note 4) OPTIONS (See note 5) JGOFS_DATA_CGI_SPEC "/jg/serv" (Not looked for in environment) ERROR_EXIT_STATUS 250 (See note 6) OO_OUTER FALSE Toggles differences between outer used by data servers and outer used by option servers (See note 7) Notes: 1) This switch controls the default value of several of the preceding *LINK switches. If any *LINK switch is explicitly specified one way or the other, the explicit specification overrides the value of the TOPLINKS switch 2) Before the default is used, the environment variable SERVER_NAME is checked. If it is null, the default is used. 3) This option is not normally used. If specified as a compilation constant, it must be specified as a string, even though its value is an integer. Before the default is used, the environment variable SERVER_PORT is checked. If it is null, the default is used. 4) The program serv, which normally causes outer to run, puts a value of OPTIONSERVER into the environment. Therefore, the only time the OPTIONSERVER compile-time value (or its default) is used is when outer is being run "standalone" 5) There is no default for this option, nor is it looked for in the environment. There are several buffers used by outer. The sizes of these buffers may not be correct for your application. The OPTIONS option allows you to specify the name of a file which defines appropriate sizes. The contents of this file is expected to be #define statements for any or all of the constants described below. This file should be secure (as should all files related to methods), since an unscrupulous person could put code in it that could compromise your system. When specifying this file to the switch, include angle brackets; eg, -DOPTIONS= It may be useful to include this file in your set of inner routines, too. If you specify this compilation option, you should probably also add /my_method/src/my_method_buf_sizes.h to the list of dependencies for outer in any makefile you are using. This file may define any or all of the following symbols. All sizes refer to a number of characters. The things being described are documented [?] [NOTE: It appears that the names actually used do not include the MAX. Also, some of the values with or without the MAX are not used. Rework doc. WJS 3 May] Name Purpose Default MAXATTRSIZE Maximum size of a single attribute 40 including its value and the equal sign, but not brackets or the semi-colon MAXCOMMENTLINE Maximum size of a comment line, not 80 including # or newline MAXDATUMSIZE Maximum size of a single datum, including 80 any sign, decimal point or exponent MAXPATHSIZE Maximum size of an html path related to 1024 this method (environment variable PATH_ _INFO) PARSAVSIZE Maximum size of an html query passed to 1024 this method (environment variable QUERY_ STRING) TOTATTRSIZE Maximum size of the entire attribute string 1024 for a variable, including values, brackets, semi-colons, and equal signs MAXVARNAMESIZE Maximum size of a variable name 40 6) This option is not generally used. It defines the exit status that outer will use if it exits because of a method-detected error condition. If used, it must specify an integer between 1 and 255. This option is not looked for in the environment. 7) Differences due to OO_OUTER a) If TRUE, "level 0" button includes original query string. If FALSE, it does not.