Vlad: Home:   Demo User Fri, 12 Mar 2010 18:54:43
Home
About
    Reading
    Shooting
    Pictures
Forums
Software
    vTranslator
    OSSWEB
    OSSMON
    Maverix
    LMBOX
    Naviserver
News
Weather
  AboutNewsModulesDocsDownloadDemo  

Naviserver News

  ======================================
NaviServer 4.99.2, released XXXX-XX-XX
======================================

New Features:

    * New lazy Tcl interpreter initialization option. Saves memory and speeds
      intialisation of interp on first use by defining procs on-demand.
      See: tcl/lazyloader parameter below.
    * New module nsproxy executes Tcl scripts via pool of external
      processes. Useful to keep buggy/non-thread-safe code issolated from
      main server process. See also: ns_job.
    * Log filter callbacks (Tcl and C) may be added to the error log stream
      to handle particular kinds of log messages by e.g. logging to a seperate
      file.
    * New limits feature. Connection limits can be bundled together into a
      named set of limits and then applied to a subset of the URL
      hierarchy. The max number of connection threads running and waiting to
      run a URL, the max upload file size, and the max time a connection
      should wait to run are all configurable.
      See ns/limits parameters below.
    * ns_cache_create now takes a -maxentry switch limits the max size of an
      entry allowed into the cache to prevent wasteful cache flushes.
    * ns_cache_create now takes a -timeout switch which is the default timeout
      for one thread to wait for another to complete an ns_cache_eval command,
      if the -timeout switch is not given to the ns_cache_eval command itself.
    * Time values passed to commands such as the -timeout switch of
      ns_cache_eval now distinguish between an absolute time in the future and
      an offset from the current time. A heuristic is used: large values are
      absolute times in the future.
    * A new [ns_cache_eval -force ...] switch replaces any existing cached value
      whether it is up to date or not.
    * A new ns_cache_stats -contents switch dumps the expirey and size of each
      entry in the cache cache. Useful when developing / testing to check
      utilisation.
    * The new [ns_conn keepalive ?bool?] sub-command dissables or requests
      keepalive behaviour for the current connection.
    * ns_getcsv now takes a -delimiter switch.
    * New [ns_ictl threads] and [ns_ictl cancel tid] commands to list
      and cancle threads with active Tcl interps using the Tcl asynchronous
      notification mechanism.
      Warning: Tcl releases before 2006-07-11 are buggy and may crash(?).
    * ns_parseargs: default values can now be specified with a leading '='
      which signifies the value should be eval'ed to generate the default.
    * Commands which timeout now set a NS_TIMEOUT Tcl error code, which if not
      caught is reported as an HTTP 503 Unavailable response.
    * Handle png images, as well as existing gif and jpg with new ns_img*
      commands.
    * New [ns_mutex eval script] to safely handle unlocking on error.
    * Thread commands now takes names as well as thread-object references.
    * New options jobsperthread and jobtimeout for ns_job command to perform
      automatic job threads exit in case of idle or max number of jobs reached
    * Updated ns_perm module to support missing checkpass and sepass commands
    * ns_http was ported from Aolserver 4.5 and uses new task API
    * ADP parser was ported from AS 4.5 and also used for processing .tcl files
    * New option acceptsize for driver to tell how many connection can be accepted at once,
      this improves performance significantly in case of large number of incoming connections
    * New Ns_Sls* and ns_sls commands supporting socket-local-storage (data which persists for 
      the lifetime of an open TCP connection)
    * ns_httpget now supports chunked encoding in results

Bug Fixes:

    * Fix path attribute of HTP Cookie string.
    * Make sure upload stats lock is unloacked after use.
    * Fix crash in writer thread logging already freed data.
    * Fix crashes in cache code due to incorrect expired entry flushing fixed.
    * Only add cache commands to virtual server interps.
    * Don't inflate flush-stats on cache eval error.
    * Custom error documents (return redirects) now send back the correct HTTP
    * response code. Used to always report 200, success.
    * Make unsetting an environment variable work cross platform.
    * Fix bug where executable name was freed before use.
    * Don't delete bound Unix domain sockets.
    * Fix typo in ns_setexpires command.
    * Windows: block SIGPIPE.
    * Windows: fix stdin, stdout, stderr channel initialisation.
    * Fix infinite loop in spooler thread code.
    * Message line-breaking of email bodies sent with ns_sendmail now works
      correctly for non ASCII data.
    * Logging facilities will now support files over 2 Gb
    * Fixed ns_sendmail for cases when message body is large and it fails to
      send all body because of nonblocking socket mode
    * New command ns_mutex trylock which wroks similar to the sameC API function
    * New command ns_filestat which is similar to file stat but uses direct system 
      call instead of Tcl VFS

Configuration Changes:

    Please update your server configuration files to take account of the
    following new features and changes.

    * Fastpath static page configuration is now a global setting rather then
      per-server:

      ns_section "ns/fastpath"
      ns_param mmap          flase    ;# Use mmap(2) to read files from disk.
      ns_param cache         false    ;# Cache file contents in memory.
      ns_param cachemaxsize  10240000 ;# Size of file cache, if enabled.
      ns_param cachemaxentry 8192     ;# Don't cache files larger than this.

    * Global thread stacksize configuration deprecated. Server now uses OS
      default. Only explicitly set the stacksize to some smaller than default
      value if you need to save memory because your server has a lot of
      threads, and you know for certain this won't cause problems with deeply
      nested Tcl or ADP scripts.

      ns_section "ns/parameters"      ;# or "ns/threads"
      ns_param stacksize     100000   ;# DON'T DO THIS.

    * The dnscachemaxentries config param has been renamed dnscachemaxsize to
      more accurately reflect what the setting does. A new setting
      dnswaittimeout has been added:

      ns_section "ns/parameters"
      ns_param dnscache        true   ;# Enable the DNS query cache.
      ns_param dnscachemaxsize 512000 ;# Max memory for cache.
      ns_param dnscachetimeout 60     ;# Minutes to cache a DNS query.
      ns_param dnstimeout      5      ;# Seconds to wait for query answer.

    * The buffer size used by the writer thread is now configurable:

      ns_section "ns/server/server1/module/nssock"
      ns_param writerbufsize   8192   ;# Read from file in bufsize chunks.

    * The Tcl lazy loader may be enabled with the following parameter:

      ns_section "ns/server/server1/tcl"
      ns_param lazyloader      false  ;# Define procs in thread-interps on
      demand.

    * New sections for server limits:

      ns_section "ns/limits"
      ns_param default         "Default Limits" ;# Defines a limit.

      ns_section "ns/limit/default"
      ns_param maxrun          100       ;# Conn threads running for limit.
      ns_param maxwait         100       ;# Conn threads waiting for limit.
      ns_param maxupload       102400000 ;# Max size of file upload in bytes.
      ns_param timeout         60        ;# Total seconds to wait for resources.

      ns_section "ns/server/server1/limits"
      ns_param default         "GET  /*" ;# Map default limit to URL.
      ns_param default         "POST /*"
      ns_param default         "HEAD /*"


Code Changes:

   * Experimental event driven IO API, Ns_Event*().
   * New Ns_RegisterAtShutdown() proc handles notification of shutdown and
     wait for completion with timeout.
   * Make Ns_RegisterProxy() public, add ns_register_proxy command.
   * Vectored IO support:

       Ns_ConnSend() now sends all given buffers. Used to send 16 and silently
       discard the rest.

       Increase max iov buffs sent at once.

       Expose iov functionality to higher layers with Ns_ConnWriteVChars(),
       which handles character data, and Ns_ConnWriteV(), which manages data
       streaming.

       ns_write now takes a vector of buffers.

   * Use *DStingSetLength() rather than *DStringTrunc() throughout code to try
     and prevent excess malloc/free activity.

   The following routines have been removed, deprecated or dissabled.

   * Removed: Ns_RegisterServerShutdown(), Ns_RegisterAtServerShutdown(),
     Ns_RegisterShutdown().
     See: Ns_RegisterAtShutdown().
   * Dissabled: Ns_LogSetLogFlushProc(), Ns_SetNsLogProc().
     See: Ns_AddLogfilter(), Ns_RemoveLofFilter().

   IMPORTANT API changes: (length, nsend) parameters are now Tcl_WideInt, so it requires
   to recompile all modules that use those functions:
        
        int Ns_ConnSendChannel(Ns_Conn *conn, Tcl_Channel chan, Tcl_WideInt nsend)
        int Ns_ConnSendFp(Ns_Conn *conn, FILE *fp, Tcl_WideInt nsend)
        int Ns_ConnSendFd(Ns_Conn *conn, int fd, Tcl_WideInt nsend)
        
        void Ns_ConnSetRequiredHeaders(Ns_Conn *conn, CONST char *type, Tcl_WideInt length)
        void Ns_ConnSetLengthHeader(Ns_Conn *conn, Tcl_WideInt length)
        int Ns_ConnReturnOpenChannel(Ns_Conn *conn, int status, CONST char *type,
                         Tcl_Channel chan, Tcl_WideInt length)
        int Ns_ConnReturnOpenFile(Ns_Conn *conn, int status, CONST char *type,
                      FILE *fp, Tcl_WideInt length)
        int Ns_ConnReturnOpenFd(Ns_Conn *conn, int status, CONST char *type,
                    int fd, Tcl_WideInt length)


======================================
NaviServer 4.99.1, released 2006-01-02
======================================

This is just a part of numerous additions, improvements and
fixes since 4.99.0 release. For the complete set, please consult
the ChangeLog file.

New Features:

    * HTTP Range requests for streaming media and resuming downloads 
    * Full Chunked encoding support for Fastpath, Adp and Tcl scripts
    * Using temporary files for large uploads when content exceeds 
      pre-configured maxsize parameter
    * New spooler thread for handling large file uploads
    * New [ns_upload_stats] command to gather upload statistics
    * New spooler thread for handling large file uploads
    * Added ns_conn responseversion to manually set response protocol
      and version to have full control about returned HTTP format
    * Add C-level support for TclVFS (all IO on files done with Tcl wrappers)
    * Add new command [ns_atprestartup].
    * Add new command [ns_runonce] which ensures that the given script is
      run only once, either globally or per virtual server, during the 
      lifetime of the server process.
    * New autogen/TEA3 compatible configuration
    * Add new command [ns_logctl severity]
    * Added many new test (this is an evolving effort)
    * Added support of binder as a separate process
    * Added [ns_info started] and [ns_info shutdownpending] commands
    * Add new Tcl command [ns_register_fastpath]
    * Added Tcl interface to C-level cache routines.
    * Added first traces of documentation based on Tcl doctools
    * New simplified deployment directory structure

Code Changes:

    * New function Ns_ConnPrintfHeaders() for adding NTTP headers in
      printf style
    * Allocate interps efficiently, max 1 per-thread per-server
    * Add Ns_TclLogErrorInfo and allow admin to configure which 
      conenction headers to log for Tcl errors
    * Remove [ns_markfordelete] command and roll into ns_ictl as
      [ns_ictl markfordelete]
    * Make Tcl send panic messages to the server log.

======================================
NaviServer 4.99.0, released 2005-07-05
======================================

New Features:

    * Byte code for Tcl pages are cached if nscache module present
    * Add support for mass virtual hosting #1159471
    * ns_uuencode et all now do full base64 encoding
    * New introspection commands for procs, filters and traces #1161597
    * C and Tcl API for HTTP cookies #1145957
    * Add -bytes option to ns_conncptofp command
    * New command ns_conn channel #1156141
    * Add new watchdog feature to restart the server if it crashes
    * Add ns_sha1 cryptographic hash command
    * C and Tcl API for setting response code of current connection
    * ns_accesslog can change configuration at runtime
    * New C and Tcl API for parsing command options and arguments
    * Server can now run as root if instructed to
    * Add new command ns_atstartup
    * New routines for listening on UDP and UNIX domain sockets
    * Add -localhost -localport options to ns_sockopen

Bug Fixes:

    * Add locking to non multi-thread safe timegm()
    * Fix infinite loop in DNS routines
    * Call comm drivers DriverClose command when socket is released
    * Fix crash bug in nslog on NULL rollfmt
    * Fix URL decoding of '+' characters #1145277
    * Report correct MIME type for xml documents #1145927
    * Fix crash in channel detach code #1143586
    * Make ns_sendmail handle dropped connections
    * Fix crash on startup when resolving localhost
    * Preserve nsdb exception messages generated by driver

Code Changes:

    * New function Ns_ConnPrintfHeaders()
    * Use GCC compiler code checks #1215725
    * Remove GNU implementations of getopt and poll
    * Cleanup up autoconf and use autoheader
    * Clean up test harness and add lots of tests
    * New Tcl callback infrastructure #1162223
    * New convenience functions for handling Tcl object types
    * New function Ns_TclPrintfResult() for formatting Tcl results
    * No more support for defunct AOLpress
    * Remove support for old connid argument in much code #1156107
    * Modules nspd and nsext moved from core to external modules
    * Objectified TclX keyed lists