Release Date: 05/31/02
File: release.htm
Part Number: 1-53-03
Ejscript Error Messages
Summary:
Changed ejEval() function so it displays in the browser the error string that is reported by the ejScript interpreter (old code discarded it completely).Fix:
modified websuemf.cSecurity Handler Response Codes
Summary:
Several places in the websSecurityHandler() function were returning error code 200 (success) instead of the correct 400-level error code.Fix:
Corrected error codes in security.cSecurity Handler Memory Leak
Summary:
In websSecurityHandler(), if the WebServer was compiled with WEBS_SSL_SUPPORT enabled, there was a return path that leaked memory.Fix:
Added call to bfree(B_L, accessLimit);Ejscript Write Corruption
Summary:
Very long text strings passed to the Ejscript write() function were being corrupted before being displayed.Fix:
Commented out a trace() statement in ejGetLexToken()that appears to have been the culprit. The value of ep->token was being corrupted somewhere in the trace.Error in dsnprintf(): "%X" format
Summary:
The "%X" format specifier did not correctly cause the function to output uppercase hexadecimal digits.Fix:
Added support for the "%X" format specifier.BUG018565 Re-fixed
Summary:
See 2.1.1 release notes (below). This bug fix did not make it into the 2.1.1 release.Fix:
Corrected code in sockGen.c.Potential Error in error()
Summary:
If error() is called where the etype parameter is not E_LOG, E_ASSERT, or E_USER, the call to bfreeSafe(B_L, buf) now at line 71 will fail, because 'buf' is randomly initialized.Fix:
We format a message saying that this is an unknown message type, and in doing so give buf a valid value.Added Support For Customized Access Control
Summary:
Several users requested a method to control URL access in a hierarchical fashion. For example, users assigned to an 'admin' group might have access to all URLs on the WebServer, and users assigned to the group 'technician' would have access to a smaller set of pages, and users assigned to the group 'users' would perhaps only have access to a set of read-only pages. The built-in WebServer access control system only allows users to access URLs that exactly match their group membership.Fix:
Added call to a user-supplied function bool_t alfCanAccess(const char_t* userGroup, const char_t* group). This function is called from inside umUserCanAccessURL() if the macro qHierarchicalAccess is defined.Memory Leak in websParseRequest()
Summary:
Memory was being leaked in the code now at line 907 of webs.c.Fix:
Added a call to bfree().
Intermittent Access Error for CGI Scripts (BUG01937)
Summary:
Pages were occasionally replaced with the message, "Access Error: Data follows when trying to obtain CGI generated no output".Fix:
On multiple CPU systems, it is possible for a CGI application to exit before its output is flushed to disk. The change for this release locates the code that collects the output from the CGI application in a separate routine. In addition to calling that routine from within the CGI application processing loop, it is also called in a brief loop after the CGI application has exited. This extra loop runs for only up to one second while the collected output remains empty. If, after 1 second, the output remains empty, the original course of action is followed ("Access Error" is reported).
CPU Utilization Hangs at 100% on a Socket Disconnect (BUG01865)Summary:
This error occurs whenever a user terminates a request before the server has had ample time to service it. This can be simulated by quickly hitting the refresh button on the browser twice in a row, causing the first request to be terminated. The server then enters into a tight loop that utilizes all of its time.Fix:
Always close the socket prior to a disconnect.
Security Features can be Bypassed by Adding an Extra Slash in the URL (BUG01518)Summary:
By adding an extra slash in a URL, password prompting is bypassed, allowing unrestricted access to secured pages.Fix:
Remove multiple adjacent occurrences of slashes in the URL before passing it to the security handler.
Call to websSetVar causes a crash (BUG01938)Summary:
Whenever a request is not completed while being processed by websGetInput(), a call to websDone is made, followed by an attempt to process the partial request data.Fix:
Return immediately after closing the socket.
Remove stray semicolon in emfdb.c (BUG01820)Summary and Fix:
A stray semicolon was removed from this file.
With the addition of Novell Netware in this 2.11 release, WebServer now supports these platforms:
- LINUX
- LynxOS
- Novell Netware 4.2, 5.1
- UNIX - SCO OpenServer 3.2V5.0.0
- VxWorks 5.3.1
- Windows 2000
- Windows 98
- Windows 95
- Windows NT
- Windows CE
To make a Novell Netware target file (webs.nlm):
cd NW wmake webs.nlm load <path> \webs.nlm websNote: This makefile lacks a valid default rule. In addition, an environment variable (QMKVER) controls the amount of debug information that is compiled and linked into the nlm file. If this variable is set to "P", it produces a production version. All other settings (or the omission of the variable) results in a debug version.
For other platforms supported by WebServer, please refer to your WebServer 2.1 documentation for appropriate instructions.
Trademarks
GoAhead and GoAhead WebServer are registered trademarks of GoAhead Software. All other brand or product names are the trademarks or registered trademarks of their respective holders.
Copyright
Copyright © 2000, 2001 GoAhead Software, Inc. All rights reserved.
Product and technical information in this document is subject to change without notice and does not represent a commitment on the part of GoAhead Software, Inc.
Copy Restrictions
The software described in this document may be used and copied only in accordance with the terms of the accompanying license agreement.
GoAhead Software, Inc.
10900 NE 8th Street
Suite 750
Bellevue, WA 98004
+1 ( 425) 453-1900
www.goahead.com
info@goahead.com1-53-03