Mbedthis AppWeb Features

topNew Features in 1.3

This is a major feature release and is part of the development branch. Users wanting stability should continue to use the stable 1.2.X series. This 1.3 release does have some compatibility changes.

Major Features

  • Embedded Server Pages greatly enhanced. New parser, new Embedded JavaScript. Now supporting:
    • Session state access via the session[] array
    • Global application data via the application[] array
    • Uploaded files accessible via files[] array
    • Configurable auto-session creation
    • Other variable arrays include: cookies[], server[], request[], headers[], form[], global[], local[]
  • Embedded Server Pages broken out as a separate source code module.
  • Embedded JavaScript rewritten and greatly enhanced. Now supports:
    • Object type and the new reserved word
    • Array type
    • Boolean type
    • Floating point
    • 64 bit integer support
    • Automatic casting between types
    • Functions
    • for / in statement to iterate through arrays or objects
    • Extended standard procedure library: print, println, printVars, trace
  • Easier invocation by supporting configuration via command line. Can now just run "appWeb".
  • Merged appWeb and winAppWeb. Windows application intelligently runs as a command line program, windows program or system service depending on the command line switches.
  • File upload module completed and now supported. File upload usable from ESP, EGI and CGI.
  • PHP 5.0 support
  • Save configuration routines to save the run-time configuration back to a standard AppWeb configuration file.

    Minor Features

    • Simplify the build system by removing the need for template files.
    • Aliases are now per host instead of being per server.
    • Allow Aliases to preceed or follow directory blocks that describe the alias destination.
    • Build system improvements for building external packges
    • Improved 64-bit and Solaris support.

    Fixes

    • Fix bug where URLs that matched aliases were incorrectly defining an their CGI EXTRA_PATH calculation. Added a new configuration directive ExtraPath that can be used in Location blocks to specify that a handler should perform extra path calculations. NOTE: this is normally not required.
    • Fix some build issues with various configuration options.
    • Fix the inheriting of directory authorization information.

    Compatibility Changes

    • The MaServer::configure command has reduced its parameter count from 2 to 1.
    • maGetVar and maSetVar now require an object array argument to specify the variable array to access.
    • The C++ EspProc method of creating ESP procedures is now deprecated. It will be supported until version 3.X when it will be removed from the product. Users should call espDefineCFunction instead.
    • The EJS module has been removed it is now integrated into the ESP module.
    • The previous session APIs have been integrated into MaRequest::setVar and MaRequest::getVar

    topNew Features in 1.2.3

    This is a minor bug fix release.

    Fixes

    • Fix compatibility issue in libcompatModule with GoAhead WebServer. Was not creating environment variables for posted data. Will only do this if the data is URL encoded.
    • Fixed Windows not matching case of URL extensions correctly. (Thanks Ziv).

    topNew Features in 1.2.2

    This is a minor bug fix release.

    Fixes

    • Fix for ESP includes. On windows, was including files with text processing which resulted in bad content lengths. Now reading RAW.
    • Added MatrixSSL handler (Thanks to J, Brian and Steve @ peersec)
    • Re-added some missing documentation pages
    • Changed default MPR number of threads to 10. Can be overridden in the appWeb.conf file. Thanks XDM.
    • Fixed several authorization issues relating to ordering of directives in the configuration file. (Thanks Mathew O'Brien)
    • Fixed encoding of "/" in query vars. (Thanks XDM)
    • Fixed Windows not matching case of URL extensions correctly. (Thanks Ziv).

    topNew Features in 1.2.1

    This is a minor bug fix release.

    Fixes

    • Fix for large SSL requests. Some large requests would not be processed and would be prematurely terminated. There are no known security implications.

    topNew Features in 1.2

    This 1.2 release rolls all the changes in the 1.1.X development stream into a new stable release. The description below is a summary of the key changes.

    Major Features

    • Integrated module for PHP4 and PHP5
    • Enhanced Embedded Server Pages supporting post-back
    • Session handling and cookie management
    • Extended documentation with a wealth of new material
    • Small C library support via uClibc
    • uClinux support. Get the Patch for uClinux to support AppWeb.
    • Completely revised build system and configuration to better support cross-compilation and modular selection of features.

    Minor Features

    • Enhanced C-API
    • httpClient supports single threaded operation.
    • New compact libminiStdc++ library to replace libstdc++ reduces memory footprint.
    • Experimental ports for Solaris and MAC
    • Upgraded PHP and OpenSSL versions

    Fixes

    • All fixes mentioned in the 1.1 stream below
    • Fixed a Denial of Service issue where accesses to /esp could consume 100% of the CPU. (Thanks again Ziv Kamir)

    Compatibility Changes

    • None

    topNew Features in 1.1.3

    Major Features

    • Include PHP5 support
    • Some important security fixes (see Fixes below)
    • Enhanced uClibc support -- no patch required.
    • Enhanced uClinux support. Patch available for uClinux.

    Minor Features

    • httpClient supports single threaded operation.
    • Add new compact libminiStdc++ library to replace libstdc++. This reduces default memory footprint with glibc considerably.
    • Merge Subversion initialization command setupTree into the configure command.
    • Add to the top level Makefile and configure program the ability to autoconfigure.
    • Improve comments in configure, configuration template files and in the default configuration files. The make.rules file is now common across all operating systems.
    • Eliminate the need for LD_LIBRARY_PATH unless debugging in the tree. The "make run" target and many other internal build commands automatically set the library path where required.
    • Version the appWeb library.
    • Include packaging file lists in the source release.

    Fixes

    • Fix location of the libraries needed by PHP when creating a distribution package
    • Fix for URLs that have trailing "." or " " in Windows. Fix prevents returning the page as pure text. This bug affected windows systems only for handlers that are matching by extension. This typically means ESP and PHP pages configured to match URLs by extension. If using URL prefix matching, the bug does not appear.
    • Fix the 'h' formatting option for the CustomLog directive. This outputs the remote host name in the access log
    • Fix session timeouts. Session timeouts did not renew when subsequent session activity occurred. Timeouts will now cause a session to be deleted when there is no activity on the session for the timeout period.
    • Security fix for Windows allowing access to secured URLs by mixing case. (Thanks Ziv Kamir)
    • Fix for HEAD, and TRACE not being handled correctly by some handlers. (Thanks again Ziv)
    • Security fix for user message disclosing too much information when denying access. (Ziv)
    • Fix for VirtualHosts (including SSL virtual hosts) incorrectly parsing authorization configuration directives. (Ziv)
    • Fix when using BLD_FEATURE_ROMFS on Windows. Was still accessing file system routines. (Black&White)

    New Features in 1.1.2

    Major Features

    • Enhanced cross-compiling support. Configure program supports --build, --host and the setting of CFLAGS, IFLAGS, LDFLAGS, CC, LD, AR, RANLIB, CC_FOR_BUILD, LD_FOR_BUILD.
    • More documentation via README.TXT and FILES.TXT files in many directories.
    • Small libc, uclibc support
    • Uclinux support

    Minor Features

    • Merged per O/S configuration files into a single file.

    Fixes

    • Corrected the Windows Start Menu shortcut
    • Rebuild OpenSSL with msvcrt.dll rather than msvcr71.dll
    • Fix some errors in the README.HTML and converted to README.TXT
    • Modify the source distribution appWeb.conf to not load libcompat
    • Fixed handling of URLs with upper case extensions (e.g. file.HTML)

    New Features in 1.1.1

    Major Features

    • Enhanced Embedded Server Pages (ESP) allowing post-back to same page
    • Integrated Session handling including C and Javascript APIs.
    • Include a more feature-rich PHP module and upgrade PHP version.
    • Enhanced C-API (thanks Nick Ivanter)
    • Authorization APIs for modifying user and group auth details at run-time
    • Added a fully static appWeb program
    • First pass Solaris port (thanks Peter Gravestock)
    • Experimental fFile upload (Nick again)

    Minor Features

    • "make install" for installing directly from source
    • Support full static linking with AppWeb libraries and building static versions.
    • Add LoadModulePath directive to make it easier to maintain module paths
    • Removed Matrix SSL handler. This is now being handled directly by PeerSec. Thanks guys. See (http://www.matrixssl.org)
    • Speed up building on Windows with Cygwin
    • Enhanced GoAhead WebServer API compatibility (thanks Art & Logic)
    • Extended build system, configure command and bld script.
    • Upgrade OpenSSL versions

    Fixes

    • Fix for ESP pages with 8-bit characters in scripts. (Thanks Michael Miller)
    • Fix duplicate environment variables in simpleEgi sample. (Thanks Nick)
    • Fix some build circular dependencies. (Thanks Nick)
    • Fix incomplete requests not handling keep alive correctly.
    • Don't close keep-alive connections for requests returning 304 (not modified) ]
    • Fix mprStrCmpAnyCase routine.
    • Fix Content-Length handling when the length is zero.
    • Fix MaRequest:getCrackedCookie. Could corrupt memory.
    • Fix when using ROMed web pages (BLD_FEATURE_ROMFS)
    • Fix some visual studio project files that referenced libraries of the wrong build type.

    Compatibility Changes

    • None

    New Features in 1.1

    Major Features

    • PHP module for fast embedded execution of PHP applications and scripts
    • First pass source code MACOSX port (Thanks Edward Dale http://www.scopmt.com)
    • Greatly enhanced build system supporting granular selection of build features.

    Minor Features

    • Support full static linking with AppWeb libraries and building static versions.
    • Add LoadModulePath directive to make it easier to maintain module paths
    • Removed Matrix SSL handler. This is now being handled directly by PeerSec. Thanks guys. See (http://www.matrixssl.org)
    • Speed up building on Windows with Cygwin

    Fixes

    • Fix for ESP pages with 8-bit characters in scripts. (Thanks Michael Miller)
    • Fix duplicate environment variables in simpleEgi sample. (Thanks Nick)
    • Fix some build circular dependencies. (Thanks Nick)
    • Fix incomplete requests not handling keep alive correctly.
    • Don't close keep-alive connections for requests returning 304 (not modified) ]
    • Fix mprStrCmpAnyCase routine.
    • Fix Content-Length handling when the length is zero.

    Compatibility Changes


    Top New Features in 1.0.4

    Fixes

    • Fix for URLs that have trailing "." or " " in Windows. Fix prevents returning the page as pure text. This bug affected windows systems only for handlers that are matching by extension. This typically means ESP and PHP pages configured to match URLs by extension. If using URL prefix matching, the bug does not appear.
    • Fix the 'h' formatting option for the CustomLog directive. This outputs the remote host name in the access log.
    • Security fix for Windows allowing access to secured URLs by mixing case. (Thanks Ziv Kamir)
    • Fix for HEAD, and TRACE not being handled correctly by some handlers. (Thanks again Ziv)
    • Security fix for user message disclosing too much information when denying access. (Ziv)
    • Fix for VirtualHosts (including SSL virtual hosts) incorrectly parsing authorization configuration directives. (Ziv)

    topNew Features in 1.0.3

    Fixes

    • Fix for digest handing on Windows. (Thanks lhearin)
    • Fix for formatting of secure cookies.
    • Enhance keep-alive for request errors.
    • Remove the MatrixSSL handler (now supplied directly in the MatrixSSL distribution -- see http://www.matrixssl.org).

    New Features in 1.0.2

    Fixes

    • Fixes for Windows PHP handling. Define the SCRIPT_FILENAME environment variable. NOTE: users must change the cgi_pathinfo setting in their /WINDOWS/PHP.INI file to be set to "1". This instructs PHP to operate according to the standards (Thanks Barry Drake).
    • Fix for launching Firefox / Firebird by double-clicking on the Windows tray icon. (Thanks Kenny M.).
    • Fix for bad DocumentIndex directive if occuring after the ScriptAlias directive for CGI files. (Thanks again Kenny).
    • Several fixes for memory leaks when compiling Multithreaded. (Thanks Nicolas Ferre).

    New Features in 1.0.1

    Documentation

    • Few small fixes.

    Fixes

    • Test if a URL maps to a Windows device file. Fixes a crash condition on Windows NT, 9X and 2000.
    • Fixed setting of Content-Length when the length of the content is not known. Changes to rq->setHeaderFlags
    • Fix handling of poorly formed OPTIONS requests.

    New Features in 1.0

    Major Features

    • Extensive push to test AppWeb to its limits with extreme load and long "soak" testing.

    Minor Features

    • Support the Action directive to make it easier to configure CGI programs that cannot use "#!/path" in the first line of the script.
    • Fix and simplify configuration for CGI Perl, Python and PHP. New Action and AddType directives to the rescue.
    • Test suite extended for CGI programs and for long POST data requests.

    Performance

    • Boost performance for Windows socket handling
    • Boost performance for HTTP requests with long POST data.

    Documentation

    • Few small fixes.

    Fixes

    • Fix a CGI multi-threaded bug where returning CGI data would interfere with subsequent Keep-Alive request data
    • Fix MPR_FEATURE_MALLOC_HOOK when using the fast memory allocator
    • Some fixes for Matrix SSL
    • Disable log file rotation -- Security risk in current default configuration. (Can be re-enabled in source code)
    • Fix a race condition with the socket handling code on Windows

    New features in 0.9.1

    Major Features

    • Full support for Matrix SSL (small footprint embedded SSL)
    • Cookie support
    • Add setHeader API to allow handlers to define and override HTTP headers

    Minor Features

    • Add support for TRACE and OPTIONS HTTP methods
    • Tighten handler checking to only respond to supported HTTP methods
    • Allow ESP pages to post back forms to themselves. Test on REQUEST_METHOD == "POST" to determine if the page is being displayed for the first time or whether the form is being submitted. This eliminates the need for EGI forms in many cases. One ESP page can be used to display and process the data.
    • Improved debug trace for httpClient and the appWeb servers.
    • Improved unit test for CGI and

    Documentation

    • Lots of small fixes.

    Architecture

    • Enhanced post data handling. The postData handler method is now called after the run method. It will be called as required to push post data to the handler.
    • Post data pull mode support. Handlers can request to pull the post data rather than having it pushed to them. The Request::setPullPost will enable pull mode. The Request::readPostData API can be called in the handler to pull the post data as required.

    Fixes

    • Fix error with poorly form HTTP headers in some cases.
    • Fix attempting to start winAppWeb.exe when installing only the source code on Windows.
    • Fix setResponseCode API to remove assert on non-200 response codes.
    • Lots of minor fixes.
    • Append to the access log on restarts.

    Compatibility Changes

    • The postData method and usage in the AppWeb handler interface has bee reworked.

    New features in 0.9.0

    General

    • SSL is now supported "out of the box".
    • GoAhead WebServer compatibility module (compatModule) now supported.
    • C Language API and samples complete.
    • Automatically launch browser after install to display documentation.
    • Run as a windows service and automatically install as a service on Windows

    Performance

    • Shrink code on all platforms (Now from 120K to 300K).
    • Compile without using exceptions -- further code size reduction.
    • Performance gains. Throughput exceeds 3,500 requests per second (P4 2.4 GHZ running both client and server on Linux)

    Documentation

    • Documentation arrives !!
    • Extensive overviews, guides, how-to documents, samples, references and APIs
    • Samples are now divided into C and C++ samples with lots of extra samples including event loop integration samples.
    • The installation now offers to install the documentation as a separate component.
    • Documented C Language API.
    • Documented C++ Language API.
    • Lots more code comments.

    Architecture

    • New SSL Provider interface.
    • Enhanced module loading interface.

    Fixes

    • Fix AppWeb not starting on system reboot on Linux.
    • Fix build errors when compiling with various FEATURE combinations specified via bld.h and configure.
    • Fixed issues with Visual Studio.NET upgrading Visual Studio 6 project files.
    • Fix building source when installed stand-alone without the binary install.
    • Fixed bug handling empty password and group authorization files.
    • Fix windows link errors 4217, 4049
    • Fix windows bug where aliases without drive specs were not handled correctly.
    • Fix bug escaping and descaping URLs.
    • Fix bug with windows event processing under heavy load where an event could get lost.
    • Lots of minor fixes.

    Compatibility Changes

    • The module loading API has changed to allow modules to parse the configuration file.
    • sslHandler has been renamed sslModule.
    • The SSL provider interfaces has been rewritten.

    New Features in Mbedthis AppWeb 0.8.1

    Dynamic Content

    • Embedded Server Pages
    • Embedded JavaScript
    • Embedded Gateway Interface (in-memory CGI)
    • CGI/1.1

    Security

    • Secure Sockets Layer (SSL)
    • Basic and Digest Authentication
    • Directory and URL location based authorization
    • Sandbox limits
    • Access and access violation logging

    Modularity

    • Dynamic loading of modules
    • Extensible URL handlers
    • Extensible / replaceable authorization, SSL and script

    Easy to Use

    • Apache-style configuration file
    • Debugging and trace logging
    • Packaged installations for Linux and Windows
    • Run as a service / daemon

    Other Features

    • HTTP server and client access program
    • Named and IP based virtual hosts
    • Listen on multiple ports
    • Compile web pages and files into C code for execution from ROM

    Standards

    • HTTP/1.1
    • CGI/1.1
    • Apache configuration file compatibility

    Performance

    • Multithreaded with high performance thread pool
    • Request throughput (> 3,500 requests per second)
    • Scales on multi-cpu systems
    • Small memory footprint even under heavy load (from 400K)

    Developer Features

    • HTTP server and client libraries
    • Shared and static libraries supplied
    • C and C++ APIs
    • Operate single-threaded or multithreaded (Compile or run-time selectable)
    • Easy, intuitive programming model
    • Integrate with common event mechanism: Windows Messages, Unix select, dedicated thread
    • Coding minimized as most features can be specified via the configuration file
    • Cookbook of samples (cut and paste to get going)
    • SMP safe
    • Extensive debug trace logging

    © Mbedthis Software LLC, 2003-2204. All rights reserved. Mbedthis is a trademark of Mbedthis Software LLC.