| 1 | |
|---|
| 2 | Please note that this file is no longer maintained. Please refer to the |
|---|
| 3 | changes files in doc/ |
|---|
| 4 | |
|---|
| 5 | Change log for Varnish 1.0.4 |
|---|
| 6 | |
|---|
| 7 | Changes between 1.0.3 and 1.0.4 |
|---|
| 8 | |
|---|
| 9 | varnishd |
|---|
| 10 | |
|---|
| 11 | ⢠The request workflow has been redesigned to simplify request processing and |
|---|
| 12 | eliminate code duplication. All codepaths which need to speak HTTP now |
|---|
| 13 | share a single implementation of the protocol. Some new VCL hooks have been |
|---|
| 14 | added, though they aren't much use yet. The only real user-visible change |
|---|
| 15 | should be that Varnish now handles persistent backend connections correctly |
|---|
| 16 | (see ticket #56). |
|---|
| 17 | |
|---|
| 18 | ⢠Support for multiple listen addresses has been added. |
|---|
| 19 | |
|---|
| 20 | ⢠An "include" facility has been added to VCL, allowing VCL code to pull in |
|---|
| 21 | code fragments from multiple files. |
|---|
| 22 | |
|---|
| 23 | ⢠Multiple definitions of the same VCL function are now concatenated into one |
|---|
| 24 | in the order in which they appear in the source. This simplifies the |
|---|
| 25 | mechanism for falling back to the built-in default for cases which aren't |
|---|
| 26 | handled in custom code, and facilitates modularization. |
|---|
| 27 | |
|---|
| 28 | ⢠The code used to format management command arguments before passing them on |
|---|
| 29 | to the child process would underestimate the amount of space needed to hold |
|---|
| 30 | each argument once quotes and special characters were properly escaped, |
|---|
| 31 | resulting in a buffer overflow. This has been corrected. |
|---|
| 32 | |
|---|
| 33 | ⢠The VCL compiler has been overhauled. Several memory leaks have been |
|---|
| 34 | plugged, and error detection and reporting has been improved throughout. |
|---|
| 35 | Parts of the compiler have been refactored to simplify future extension of |
|---|
| 36 | the language. |
|---|
| 37 | |
|---|
| 38 | ⢠A bug in the VCL compiler which resulted in incorrect parsing of the |
|---|
| 39 | decrement (-=) operator has been fixed. |
|---|
| 40 | |
|---|
| 41 | ⢠A new -C command-line option has been added which causes varnishd to |
|---|
| 42 | compile the VCL code (either from a file specified with -f or the built-in |
|---|
| 43 | default), print the resulting C code and exit. |
|---|
| 44 | |
|---|
| 45 | ⢠When processing a backend response using chunked encoding, if a chunk |
|---|
| 46 | header crosses a read buffer boundary, read additional bytes from the |
|---|
| 47 | backend connection until the chunk header is complete. |
|---|
| 48 | |
|---|
| 49 | ⢠A new ping_interval run-time parameter controls how often the management |
|---|
| 50 | process checks that the worker process is alive. |
|---|
| 51 | |
|---|
| 52 | ⢠A bug which would cause the worker process to dereference a NULL pointer |
|---|
| 53 | and crash if the backend did not respond has been fixed. |
|---|
| 54 | |
|---|
| 55 | ⢠In some cases, such as when they are used by AJAX applications to |
|---|
| 56 | circumvent Internet Explorer's over-eager disk cache, it may be desirable |
|---|
| 57 | to cache POST requests. However, the code path responsible for delivering |
|---|
| 58 | objects from cache would only transmit the response body when replying to a |
|---|
| 59 | GET request. This has been extended to also apply to POST. |
|---|
| 60 | |
|---|
| 61 | This should be revisited at a later date to allow VCL code to control |
|---|
| 62 | whether the body is delivered. |
|---|
| 63 | |
|---|
| 64 | ⢠Varnish now respects Cache-control: s-maxage, and prefers it to |
|---|
| 65 | Cache-control: max-age if both are present. |
|---|
| 66 | |
|---|
| 67 | This should be revisited at a later date to allow VCL code to control which |
|---|
| 68 | headers are used and how they are interpreted. |
|---|
| 69 | |
|---|
| 70 | ⢠When loading a new VCL script, the management process will now load the |
|---|
| 71 | compiled object to verify that it links correctly before instructing the |
|---|
| 72 | worker process to load it. |
|---|
| 73 | |
|---|
| 74 | ⢠A new -P command-line options has been added which causes varnishd to |
|---|
| 75 | create a PID file. |
|---|
| 76 | |
|---|
| 77 | ⢠The sendfile_threshold run-time parameter's default value has been set to |
|---|
| 78 | infinity after a variety of sendfile()-related bugs were discovered on |
|---|
| 79 | several platforms. |
|---|
| 80 | |
|---|
| 81 | varnishlog |
|---|
| 82 | |
|---|
| 83 | ⢠When grouping log entries by request, varnishlog attempts to collapse the |
|---|
| 84 | log entry for a call to a VCL function with the log entry for the |
|---|
| 85 | corresponding return from VCL. When two VCL calls were made in succession, |
|---|
| 86 | varnishlog would incorrectly omit the newline between the two calls (see |
|---|
| 87 | ticket #95). |
|---|
| 88 | |
|---|
| 89 | ⢠New -D and -P command-line options have been added to daemonize and create |
|---|
| 90 | a pidfile, respectively. |
|---|
| 91 | |
|---|
| 92 | varnishncsa |
|---|
| 93 | |
|---|
| 94 | ⢠The formatting callback has been largely rewritten for clarity, robustness |
|---|
| 95 | and efficiency. |
|---|
| 96 | |
|---|
| 97 | If a request included a Host: header, construct and output an absolute URL. |
|---|
| 98 | This makes varnishncsa output from servers which handle multiple virtual |
|---|
| 99 | hosts far more useful. |
|---|
| 100 | |
|---|
| 101 | Documentation |
|---|
| 102 | |
|---|
| 103 | ⢠The documentationâespecially the VCL documentationâhas been greatly |
|---|
| 104 | extended and improved. |
|---|
| 105 | |
|---|
| 106 | Build system |
|---|
| 107 | |
|---|
| 108 | ⢠The name and location of the curses or ncurses library is now correctly |
|---|
| 109 | detected by the configure script instead of being hardcoded into affected |
|---|
| 110 | Makefiles. This allows Varnish to build correctly on a wider range of |
|---|
| 111 | platforms. |
|---|
| 112 | |
|---|
| 113 | ⢠Compatibility shims for clock_gettime() are now correctly applied where |
|---|
| 114 | needed, allowing Varnish to build on MacOS X. |
|---|
| 115 | |
|---|
| 116 | ⢠The autogen.sh script will now correctly detect and warn about automake |
|---|
| 117 | versions which are known not to work correctly. |
|---|
| 118 | |
|---|