Permalink
Commits on Nov 20, 2016
  1. bug24329: avoid races in constructor initialization

    %Testing: make stress-aserve
    
    Avoid calls to make-instance when the class is defined later in the file
    or in a file loaded later.  Add make-instance-foo functions for these
    classes.
    
    Add a separate make-instance-foo function for each set of keyword arguments
    desired by the caller, to allow the make-instance call to be optimized.
    
    When a compiled function is loaded containing a make-instance call for a
    class that is not yet loaded, a load-form creates a constructor object
    that needs to be initialized the first time it is used.  Since the
    initialization involves modifying several places in memory, it must
    not be done simultaneously in several threads.
    
    Change-Id: I60663fb63d4b4fa050607f9bac6bfb2bfc90491b
    Reviewed-on: https://gerrit.franz.com:9080/6737
    Reviewed-by: Martin Mikelsons <mm@franz.com>
    Reviewed-by: Duane Rettig <duane@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Reviewed-by: Robert Rorschach <rfr@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Martin Mikelsons committed with dklayer Nov 14, 2016
Commits on Nov 17, 2016
  1. incf defpatch version for ACL 10.0

    The aserve.008 for 10.0 was really v9.  Release a new v10 patch that
    is consistent and exactly the same as aserve.008.
    
    Change-Id: If08a2499861a6ed027d0472659cf42e527a18c27
    Reviewed-on: https://gerrit.franz.com:9080/6758
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    dklayer committed Nov 17, 2016
  2. v1.15: webactions update parsed time after parse

    bug24343 - the parsed time was being updated before the parse
    was complete and if a second process wanted to use this parsed
    object it would mistakenly assume that the object had been updated
    already.
    
    No tests as this was seen by a user in their code and is
    not easy to reproduce as the timing hazard is small.  User
    tested this fix and reports that their problem no longer exists.
    
    Change-Id: I1dc14535fdc3b8174bfb9287ae68ebcb8014ac1b
    Reviewed-on: https://gerrit.franz.com:9080/6741
    Reviewed-by: John Foderaro <jkf@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    John Foderaro committed with dklayer Oct 28, 2016
Commits on Nov 3, 2016
  1. v1.3.44 - add :test-ssl argument to start

    If an ssl server is being started and :test-ssl is true then
    check before start returns if the certificates are valid and if
    not signal an error.
    
    test added: yes
    tests run: yes
    
    <release-note>
    Added a :test-ssl argument to net.aserve:start enabling
    a user to test immediately if they've suppplied a valid certificate
    for an incoming http SSL request.
    </release-note>
    
    Documention changes made to aserve.html.
    
    Change-Id: I8f2b1eeae9a756d0ad0a5c2b77b10e1708f6525a
    Reviewed-on: https://gerrit.franz.com:9080/6607
    Reviewed-by: John Foderaro <jkf@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    John Foderaro committed with dklayer Oct 28, 2016
Commits on Oct 31, 2016
  1. Update check for :deflate module.

    The original check used sys::(...) syntax, which is hard to emulate in
    CL readers that don't have it.
    
    Update format string for the no-deflate warning to conform to CL ANS.
    
    Change-Id: I453f8e5e735b82473b235ce9ce79ff84fd02c499
    Reviewed-on: https://gerrit.franz.com:9080/6614
    Reviewed-by: Duane Rettig <duane@franz.com>
    Reviewed-by: John Foderaro <jkf@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Reviewed-by: Martin Mikelsons <mm@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    xach committed with dklayer Oct 21, 2016
  2. Add -backtrace-on-error to lisp arguments

    So errors are easier to diagnose in make output.
    
    Change-Id: I922d973e8cf7cdb578a0eb2278623957eaa831c7
    Reviewed-on: https://gerrit.franz.com:9080/6630
    Reviewed-by: Martin Mikelsons <mm@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    dklayer committed Oct 31, 2016
  3. Fix typo in comment

    Change-Id: Ibf81b6540e4042e8a4dddcdf87faf512662fad9f
    Reviewed-on: https://gerrit.franz.com:9080/6631
    Reviewed-by: Martin Mikelsons <mm@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    dklayer committed Oct 31, 2016
Commits on Oct 27, 2016
  1. [bug24269] Don't log if client closes connection

    The client is free to close the connection at any time and
    if it closes the connection before Aserve has finished writing
    then Aserve will now silently close its side as well without
    writing a message to the log file.
    
    %Testing:
      Manually tested to verify that a log message wasn't emitted
      when client closed connection early
    
    Change-Id: I4e96a03a80bb3d346fd08e93eaf9b72200beee05
    Reviewed-on: https://gerrit.franz.com:9080/6571
    Reviewed-by: John Foderaro <jkf@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    John Foderaro committed with dklayer Oct 24, 2016
Commits on Oct 20, 2016
  1. Remove duplicate keep-alive option in docs

    Change-Id: I74f209c3452154541a8086141046bb646bd2a2d3
    Reviewed-on: https://gerrit.franz.com:9080/6545
    Reviewed-by: John Foderaro <jkf@franz.com>
    Reviewed-by: David Margolies <dm@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    kidd committed with dklayer Oct 18, 2016
Commits on Oct 9, 2016
  1. rfe14295: Add API to stream request body in server

    Add macro with-body-input-stream and function get-body-input-stream.
    These are not exported because they must be used with detailed
    knowledge of how other Aserve internals interact with a request body.
    
    Add tests for new functions.
    Add defpatch for 10.0 v7    (1.3.42)
    
    Change-Id: I05b6a026816e075fa7cb85a86fc793e1ccd0136f
    Reviewed-on: https://gerrit.franz.com:9080/6410
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Martin Mikelsons committed with dklayer Sep 29, 2016
Commits on Aug 4, 2016
  1. v1.3.41: bump version and update defpatch for 10.0

    Change-Id: I42ce097235bebb25537571190d1aa6b53bc13920
    Reviewed-on: https://gerrit.franz.com:9080/6072
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    dklayer committed Aug 4, 2016
Commits on Aug 1, 2016
  1. rfe14185: update copyrights

    Change-Id: Ib9d79d62a4702273b0146378e2bb42c864dd10aa
    Reviewed-on: https://gerrit.franz.com:9080/6002
    Reviewed-by: Robert Rorschach <rfr@franz.com>
    Reviewed-by: Duane Rettig <duane@franz.com>
    Reviewed-by: Martin Mikelsons <mm@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    dklayer committed Jul 27, 2016
Commits on Jul 26, 2016
  1. Fix multi-directory clp file rewriting

    Problem:
    URLs that get rewritten by the clp file parser have been set to root
    at the destination directory. This means clp files in subdirectories
    that have relative url references are having those references mis-written.
    
    This commit fixes the problem by keeping track of the pathname position of
    the clp file being parsed relative to the webaction's destination-directory.
    
    * webactions/clpage.cl: Pass pathname of clp file being parsed to
    wa_link for relative-path fixup.
    
    * webactions/clpcode/wa.cl: Pass any pathname in the args to
    locate-action-path, which now has a (as unyet undocumented) new
    :filename keyword arg.
    
    * webactions/test/siteb/: Test for this change.
    
    * webactions/test/t-webactions.cl: Add new test.
    
    * webactions/webact.cl: Give locate-action-path a :filename keyword
    argument, and set the relative path based on the filename's position
    relative to the webaction's destination-directory.
    
    Change-Id: I9bad6953b70f5a46106f382f22d1bcdb4e132a51
    Reviewed-on: https://gerrit.franz.com:9080/5894
    Reviewed-by: Martin Mikelsons <mm@franz.com>
    Reviewed-by: John Foderaro <jkf@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Charles Cox committed with dklayer Jul 10, 2016
Commits on Jul 12, 2016
  1. v1.3.40: Add methods for socket-bytes-read|written

    Add methods for socket-bytes-read|written to aserve streams, so
    programs can introspect their traffic.
    
    %Testing: make test, though no new tests
    
    Change-Id: I3c65bef70fb8289115c310014603e1913c141fa9
    Reviewed-on: https://gerrit.franz.com:9080/5642
    Reviewed-by: Gary Warren King <gwking@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Gary King committed with dklayer May 3, 2016
  2. Make ACL 10.0 the default

    Change-Id: Ibfcc279f6618ab7893e5cd39bbe9753efd31afc5
    Reviewed-on: https://gerrit.franz.com:9080/5892
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    dklayer committed Jul 12, 2016
Commits on Jul 11, 2016
  1. Remove comment re: *http-io-timeout*

    The comment about it being applicable only to ACL 6.1 is wrong, remove
    it.
    
    Change-Id: Ia758252908d8eebee86ce010f92c09cce3f5d1f3
    Reviewed-on: https://gerrit.franz.com:9080/5641
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Gary King committed with dklayer Dec 1, 2015
Commits on May 16, 2016
  1. Fix processing of chunked requests sent over SSL

    When processing a chunked HTTP request, the server used to rely
    on the socket library to perform the dechunking operation.
    The problem is that this is not currently implemented for SSL
    sockets (see rfe8891). To remedy that, the server now uses its
    own implementation of a dechunking stream. This is the same method
    that is used to decode chunked replies in the client code.
    In addition, trailing headers received with a chunked request are
    now correctly processed (these were previously ignored, even for
    non-SSL requests).
    
    See bug23851 for more details regarding problems with chunked HTTPS
    requests.
    
    Changes:
        * main.cl: Version 1 3 39
        (get-request-body-retrieve): use a dechunking stream instead of
        turning on dechunking at the socket level. Process trailing
        headers.
    
        * makefile: added (require :tester) in the test.mp target.
    
        * packages.cl: Defpatch 10.0 (4)
    
        * test/t-aserve.cl (test-chunked-request): a new test for
        chunked requests with trailing headers.
    
    Change-Id: I7ceea4567767aaf6687390228d5e09d6d0f13745
    Tadeusz Sznuk committed with dklayer Apr 29, 2016
Commits on Apr 9, 2016
  1. Remove CVS Ids; fix copyright

    Change-Id: Ic04e4e39501c80936743dd54a07f143e5ab3566b
    dklayer committed Apr 9, 2016
Commits on Mar 31, 2016
  1. [bug23838] call make-ssl-client-stream with :method keyword

       client.cl
    make-http-client-request -- Call make-ssl-client-stream with
       :method keyword instead of :ssl-method [bug23838]
    
       main.cl
    Version 1 3 38
    
       packages.cl
    Defpatch 10.0 (3)  9.0 (20)  8.2 (31)
    Martin Mikelsons committed Mar 31, 2016
Commits on Dec 3, 2015
  1. add docstring to *http-io-timeout*

    Change-Id: I3f709e1db1943f688a1f618156580a8e111601d9
    John Foderaro committed Dec 3, 2015
Commits on Oct 20, 2015
  1. conditionalize for lisps without deflate

    Change-Id: Ib36cc4ee0607f201be96489173bede870f04dfba
    John Foderaro committed Oct 20, 2015
Commits on Oct 16, 2015
  1. modify patch headers

    Change-Id: I41c747a8dd00829ef1f2cf8aeba666b5b39975aa
    John Foderaro committed Oct 16, 2015
Commits on Oct 15, 2015
  1. split http-copy-file into two functions

    Change-Id: I35ff1e6c4e78af610e8db3ecd69aba6dde4e9489
    John Foderaro committed Oct 15, 2015
  2. 1.3.37 add support for setting trailers

    add functions to set trailers.
    update documentation, adding trailer setting functions
    regularize header names to always be keywords in the correct case
    for the lisp.
    John Foderaro committed Jul 28, 2015
Commits on Sep 17, 2015
  1. webactions 1.14: Print ipaddr for webaction no map

    When a request comes in that is fielded by a webaction project and
    there is no map for the request, include the source IP in the error
    message.
    Kevin Layer committed Sep 6, 2015
  2. Include local makefiles if they exist

    If they exist:
     - makefile.local is included at the top of makefile
     - makefile.last is included at the end of makefile
    
    This allows for the customization of rules in makefile.
    Kevin Layer committed Sep 6, 2015
Commits on Sep 16, 2015
  1. patches: aserve 1.3.36; webactions 1.13

    The code for both patches is already in ACL 10.0.
    These changes are for the upcoming ACL 9.0 patch.
    
    Change-Id: I5898c8b0b3f3de678ee4d2047c7f860b3e9f5650
    dklayer committed Sep 16, 2015
Commits on Jul 31, 2015
  1. Allow server string to be specified plus other items

            (all changes by Charley Cox)
    
        	* webactions/webact.cl (webaction-project): Change
        	use-http-only-cookies default to nil.
        	(webaction): Change use-http-only-cookes initform to nil.
    
        	* publish.cl (*file-type-to-mime-type*): Add "mp4".
        	(send-response-headers): Use *server-fmt* instead of hardwired
        	server ID.
    
        	* main.cl (*server-fmt*): Make server id be variable so that it
        	can be suppressed.
    
    Change-Id: I834c5301c99d9d3eb9858b08acad5cddc72b5521
    John Foderaro committed Jul 31, 2015
  2. Add http-only cookies

    	* webactions/webact.cl (webaction): Add use-http-only-cookies slot to
    	webaction class.
    	(webaction-project):  Add :use-http-only-cookies argument.
    
    	* webactions/doc/webactions.html : Describe :use-http-only-cookies
    	to webaction-project.  Note that we are not providing a
    	description of what http-only does or what it is for.
    
    	* webactions/clpage.cl (process-entity): Create httponly cookie
    	per webaction parameter.
    
    	* publish.cl (set-cookie-header): add :http-only argument.
    
    	* packages.cl (:net.aserve.client): add new exported symbol
    	cookie-item-http-only
    
    	* doc/aserve.html: Describe http-only option.  Note that we
    	are not providing a description of what http-only does or what it
    	is for.
    
    	* client.cl (cookie-item): Add http-only slot.
    	(save-cookie): Transfer httponly cookie-flag to saved cookie.
    
    Change-Id: I066c18a483f8dca367617060c43fd192e91a61b7
    cox-charley committed with John Foderaro Jul 11, 2015
Commits on Jul 27, 2015
  1. rfe13851: add MAX-LISTENERS arg to START

    The LISTENERS argument of START determines only the number of HTTP
    worker threads the server is going to start with. Under load the
    server may create more workers which may lead to resource management
    problems down the road.
    
    For this reason, a new argument, MAX-LISTENERS was added to START.
    When it is specified, it must be an integer denoting the hard limit on
    the number of workers. The previous behavior corresponds to
    MAX-LISTENERS being NIL (the default).
    
    Change-Id: I1c25b08e8f30521519435bf763698e7562bf5a95
    Gabor Melis committed with dklayer Jul 27, 2015
  2. rfe13850: increase max header size to 8192

    ... to match Apache. It was previously 4096, but with the increased
    value it is less likely that we get bug reports when, for example, a
    set of cookies exceed the header size limit.
    
    Change-Id: I929b98910e88b1ed6b63f4d4b58467b87bddc0bc
    Gabor Melis committed with dklayer Jul 27, 2015
Commits on Jul 17, 2015
  1. bug23328 get current source to compile on 8.1

    client.cl
      make-http-client-request: Avoid crl- args in call to
        make-ssl-client-stream on 8.1.
    
    main.cl
      start: Avoid crl- args in call to make-ssl-derver-stream on 8.1.
    
    packages.cl
      Unbind some functions to avoid error when compiling or loading
      on top of older 8.1 version.
    
    publish.cl
      Avoid calling string+ in 8.1.
    Martin Mikelsons committed Jul 17, 2015
Commits on May 26, 2015
  1. bug23208 Adjust default n to avoid issues from too many threads

    test/t-aserve.cl
      test-aserve-n - Adjust default value of :n keyword arg.
           If n is nil, do not run any.
      Adjust comment at end of file.
    Martin Mikelsons committed with dklayer May 26, 2015
Commits on May 14, 2015
  1. bug23200: server leak in test suite

    test/t-aserve.cl
      test-aserve-n: Revise default for argument n (the old #+- did
           not make any sense).
      test-expect-header-responses: Add call to shutdown. [bug23200]
    
    Change-Id: Id7a397685d0ed88cdf191c8f427239041619ac0f
    Martin Mikelsons committed with dklayer May 13, 2015
Commits on May 11, 2015
  1. [bug23176] Avoid some closure-related consing. v1.3.34

    client.cl
      client-request-read-sequence: Replace flet with macrolet to avoid
        a closure (that fails to be stack allocated for some reason).
        Repace handler-case with handler-bind, and call a named function
        instead of a closure.  [bug23176]
    
    main.cl
      v1.3.34
    Martin Mikelsons committed with dklayer May 8, 2015