HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/bin/iirf/ReleaseNotes.txt
Wed, 17 Aug 2011  09:42

v2.1.2.0

1. workitem 31280 - empty server variables should eval to empty string

2. workitem 12809 - need x64 build.

   Actually this was delivered a couple  releases ago.

3. workitem 30598 - Modifier [PH] isn't working properly

4. workitem 30566 - IIRF does not recognize deleted IIRF.ini

5. workitem 31034 - installer for x64 failed

   This was originally fixed in v2.1.1.27.

6. workitem 30847 - redirectrule with anchor clashes with case-fold



Sun, 17 Apr 2011  15:25

v2.1.1.26

workitems implemented:

1. workitem 30215 - allow URL encoding in the replacement string.

2. workitem 30216 - don't spam the event log when IIRF.ini is missing;
   new directive EventsForIniOpen for use in IirfGlobal.ini . Also,
   different handling of event logs - use a state cache.

3. Changeset 85335 - the makefile now builds the Setup project.

4. workitem 30105 - bug in proxying requests to Oracle SSO server.

5. workitem 30306 - correctly handle proxying when a
       message body is present.

6. workitem 30382 - minor glitch in msi log output on SelectWebSiteDlg.

7. workitem 30373 - Setup: IIRF won't install on IIS7 without IIS6 Role
       Services. Fixing this requires an upgrade to Wix v3.5.

8. workitem 30384 - Setup: fix GetWebSites() for IIS7

9. workitem 30385 - Setup: fix SetWebsitePropsForUninstall_CA() for IIS7

10. workitem 30563 - Setup: fix {Start,Shutdown}IisSites_CA for IIS7

11. workitem 30565 - Setup: fix {Add,Remove}Extension_CA for IIS7

12. workitem 30399 - implement TIME_XXX server variables.


------------------------------------------------------------------

Thu, 06 Jan 2011  23:10

v2.1.1.25

1. workitem 28629 - IIRF v2.1.1.23 crash when proxying large POST
   message

2. workitem 29172 - using multiple RewriteHeader directives in a single
   ini file did not work properly

3. workitem 28722 - IIRF added data to URL

4. workitem 27626 - bad error message

5. workitem 28074 - header corruption when Proxying a request

6. workitem 29164 - poorly formatted headers when Proxying to a resource
   that issues a 302 redirect

7. workitem 27659 - memory corruption in ReplaceServerVariables can lead
   to IIS crash

8. workitem 27900 - expanded ini line length limit from 1024 to 4096
   chars

9. many documentation updates and fixes

10. proper x64 build environment.


------------------------------------------------------------------

Sun, 30 May 2010  10:37

v2.1.1.22

1. workitem 27224 - bad pointer doing default values for RewriteMap
   substitutions.

2. eliminated test ini files from Release zips

------------------------------------------------------------------

Fri, 07 May 2010  07:14

v2.1.1.20

1. workitem 26976 - update the fix for updating a URL
   with interim values.

------------------------------------------------------------------

Wed, 05 May 2010  20:36

v2.1.1.18

1. fix a bug in handling of RewriteCond, that was introduced
   with v2.1.1.17.

------------------------------------------------------------------

Wed, 05 May 2010  17:03

v2.1.1.17

1. workitem 26935 - [P] modifier.  Mostly a doc issue.

2. workitem 14017 - OPTIONS verb.

3. workitem 26942 - fix RewriteBase handling.

4. workitem 26969 - correct handling of RewriteHeader for
   method and url headers.

5. workitem 26976 - update URL with interim values

6. workitem 26974 - ProxyPass fails when ProxyPassReverse is missing.


------------------------------------------------------------------

Thu, 29 Apr 2010  02:17

v2.1.1.14

1. more install and uninstall problems fixed.

------------------------------------------------------------------

Wed, 28 Apr 2010  12:52

v2.1.1.13

1. workitem 26472 - uninstall fails with error.

2. workitem 26919 - uninstall doesn't.

------------------------------------------------------------------

Wed, 28 Apr 2010  11:50

v2.1.1.12

1. workitem 26902 - .iirf URLs return bad headers.

2. workitem 26910 - REQUEST_URI

------------------------------------------------------------------

Tue, 27 Apr 2010  15:46

v2.1.1.11

1. workitem 23532 - ProxyPassReverse directive

2. workitem 26761 - handling long URLs  (beyond 2048 chars)

3. stricter parsing of ini files.  use _stricmp rather than _strnicmp.
   The problem was, ProxyPassReverse was being interpreted as
   ProxyPass.

4. workitem 26899 - don't proxy .iirf URLs

------------------------------------------------------------------

Mon, 19 Apr 2010  22:02

v2.1.1.9

1. workitem 26801 - incorrect logic in IsDuplicateRule.

2. workitem 26811 - incorrect logic handling RedirectRule with no
   [R] modifier.

3. workitem 26822 - eliminate double-slash with RewriteBase ON
   for redirectrule in vdir root.

------------------------------------------------------------------

Sat, 17 Apr 2010  12:32

v2.1.1.8

1. Correct the fix for workitem 25703 - Proxy
   with Transfer-Encoding: chunked.


------------------------------------------------------------------

Tue, 06 Apr 2010  09:29

v2.1.1.7

1. Update PCRE to v8.02

2. workitem 26708 - Support [P] option on RewriteRule.

3. workitem 26720 - Eliminate warning when using [U].
   Also, correct documentation regarding [U].


------------------------------------------------------------------

Mon, 05 Apr 2010  15:52

v2.1.1.6

1. workitem 26705 - Lexicograhpic comparisons in RewriteCond

------------------------------------------------------------------
Mon, 05 Apr 2010  15:07

v2.1.1.5

1. workitem 26701 - allow RewriteRule to do Redirects, once again

2. workitem 26704 - document the differences between mod_rewrite and
   IIRF.

------------------------------------------------------------------
Sun, 04 Apr 2010  23:50

v2.1.1.4

1. allow explicit paths in the RewriteBase directive.

------------------------------------------------------------------

Sun, 04 Apr 2010  20:50

v2.1.1.3

1. workitem 26699 - crash on init in IIRF v2.1.1.2, related to the
   new RewriteBase directive.

------------------------------------------------------------------

Sat, 03 Apr 2010  23:07

v2.1.1.2

1. workitem 25426 - RewriteBase directive (initial)

2. workitem 26693 - apply QSA to RewriteHeader

3. myriad doc updates

------------------------------------------------------------------

Thu, 25 Mar 2010  10:17

v2.1.0.16

1. workitem 25703 - correctly handle chunked encoding through
   ProxyPass.


------------------------------------------------------------------

Wed, 24 Mar 2010  11:42

v2.1.0.15

1. http://iirf.codeplex.com/Thread/View.aspx?ThreadId=85408  - long
   paths.

2. workitem 26381 - include example for CakePHP in the docs.
   Also, myriad other doc updates.

3. workitem 25950 - handle proxied POST content larger than 48k.

4. workitem 26146 - properly pass request headers across ProxyPass


------------------------------------------------------------------


Mon, 15 Feb 2010  14:58

v2.1.0.13

1. workitem 25951 - ProxyTimeouts directive, to set timeouts
   used in ProxyPass

2. workitem 26212 - NoIterate modifier on rules



------------------------------------------------------------------


Sun, 31 Jan 2010  02:41

v2.1.0.10

1. Replace StatusUrl directive with StatusInquiry directive.
   See workitem 25982.

2. more doc updates, to cover this change.


------------------------------------------------------------------

Sat, 30 Jan 2010  17:10

v2.1.0.9

1. allow more flexibility in the StatusUrl directive,
   and make the url-path argument optional.

2. Update to documentation, small tweaks and improvements.


------------------------------------------------------------------

Fri, 18 Dec 2009  11:14

v2.1.0.7

1. ain't it always the case?  fix logic for detecting multiple
   occurrences of directives in the logfiles.

2. fix logging so that the log "header" is always emitted regardless of
   the ordering of RewriteLogLevel and RewriteLog in the ini file .

3. replace in the source code, all "Site" with "Vdir".  No externally
   visible change due to this.  It was just confusing to read the
   source code.

------------------------------------------------------------------

Sat, 12 Dec 2009  17:32

v2.1.0.6

1. detect and warn on multiple occurrences of various one-time-only
   directives in the ini files.  Ex: RewriteLogLevel, RewriteEngine,
   CondSubstringBackrefFlag.

2. Remove the StrictParsing directive.  This was a hack, designed to
   allow people to write bad rules.  It shouldn't be there. Now, broken
   rules will generate warnings as they should.  Also removed the
   documentation for this hack.

------------------------------------------------------------------


Sat, 05 Dec 2009  07:00

v2.1.0.2

1. RewriteMap directive (code and doc)

2. fix -s special pattern


------------------------------------------------------------------

Thu, 03 Dec 2009  16:15

v2.0.1.15

1. IncludeIni directive

2. bug fix for -f flag

3. IIRF.dll gets windows file metadata (built with IIRF.rc file)

4. stacktraces in the logfile in the event of crashes.

5. MSI installer


------------------------------------------------------------------

Sat, 22 Aug 2009  13:57

v2.0k preview

1. gFilterConfig->EngineOff = FALSE in Rewriter.c

------------------------------------------------------------------
Tue, 18 Aug 2009  18:48

v2.0j preview

1. default StatusUrl /iirfstatus when no ini file is found.


------------------------------------------------------------------


Thu, 16 Jul 2009  20:35

v2.0f preview

1. Multi-site capability.  workitem 8669

2. ProxyPass directive.

3. StatusUrl directive, specifies HTTP URL for status inquiries.
   workitem 23459.

4. URL Decoding (optional)

5. RewriteEngine directive - workitem 23458.

6. [QSA] modifier.  workitem 19486.

7. [G] = Gone modifier

8. [NC] as synonym for [I] (case insensitivity)

9. various bug fixes


------------------------------------------------------------------

v1.2.14

1. Fixed a bug where the case-folding flag was a backslash,
   resulting in bad case folding for %{REQUEST_FILENAME} in a
   RewriteCond, for example.  The new case-folding flag
   character is #.

2. Fixed a bug where a string like %100 (with a subscript out of
   range) in a replacement string caused the filter to crash.

3. Made reading of the config files much more robust.  Broken INI
   files no longer crash the filter. (great feature!)

4. Corrected logging of filter priority changes in the ini file.

5. using escaped URLs in the replacement pattern works now.

6. Requesting a very long path no longer causes IIRF to crash  with a
   "Buffer too small" error.


------------------------------------------------------------------

v1.2.13

1. fixed a minor bug in log message formatting where the code was using
   sizeof(message[0])/sizeof(message) instead of
   sizeof(message)/sizeof(message[0]).
   This was not a buffer overflow problem, because the code uses
   safe string routines. But it meant that log messages were not
   properly formatted.

2. Added Case Conversion in substitution string. Cool!

3. Compiled with PCRE v7.6, which fixes several security issues
   with PCRE.

4. Corrected linker options to prevent conflicting libraries
   (CMT).

------------------------------------------------------------------
v1.2.12a
1. added handling to allow escaping of % character in the
   replacement string.  This would allow a replacement string
   to include %26, for example, to pass an ampersand.  %%
   escapes a %, and $$ escapes a $.   This was work item 9910.

v1.2.12b

2. workitem 9858.  Fixed a memory leak which occurred when a chain of
   RewriteCond's evaluated to false.
   http://www.codeplex.com/IIRF/WorkItem/View.aspx?WorkItemId=9858

v1.2.12c

3. changed LogMsg() values for various messages to allow LogLevel
   setting of 1 to be used on high-volume websites.

4. memory leak in ReplaceServerVariables.  Previously had never
   free'd myCopy.  This is now fixed. See work item 9204.
   http://www.codeplex.com/IIRF/WorkItem/View.aspx?WorkItemId=9024
   and also 10528:
   http://www.codeplex.com/IIRF/WorkItem/View.aspx?WorkItemId=10528

5. Default compile is now /O2, for faster execution and smaller
   memory consumption.

v1.2.12d

6. changed diagnostics in GetServerVariable_AutoFree() to handle
   case where the server var is not set yet.  This is to comply
   with URL normalization recommendations for IIS6 and 5.  First
   we try the IIS6 way, which will give us no joy on IIS5. The
   diagnostic (log) message now reflects this.


------------------------------------------------------------------
v1.2.11

1. fixed a bug with handling of the pattern when dealing with
   $10 or above in the replacement string. (skipping the second
   digit of the number).

2. Fixed a bug where old values of OriginalUrl and RequestMethod
   were hanging around in context.  This fix involved re-working
   logic in onUrlMap (thanks to rdlejo).

3. included support for a new directive:  RewriteFilterPriority ,
   which sets the filter priority.  Check the readme for
   details. This is helpful for sites that have PHP or other
   ISAPIs that require IIRF to be set to HIGH priority.

4. added support for including server variables in the
   replacement pattern for a RewriteRule.  eg %{QUERY_STRING} in
   the replacement pattern embeds the query string into the
   output (rewritten) URL.

v1.2.11c:

5. added lmiller's fix to support https in redirections. Now we
   redirect using the same protocol as the original request,
   rather than redirecting only to http://

   IIRF now logs the priority level as a string in addition to the
   numerical constant.

v1.2.11d:

6. Corrected the makefile to remove unnecessary dependency on
   $(PSDK)\lib\AdvAPI32.Lib .  Previously this library was used
   for RegOpenKeyEx(), but since v1.1, IIRF has used an ini
   file, not the registry, for settings.

7. The RewriteLog directive now supports logfile (stub) names
   that include spaces.  Leading and trailing spaces are
   stripped.  This was issue 8433 on Codeplex.com/IIRF.


------------------------------------------------------------------
v1.2.10

1. It is now possible to chain multiple RewriteCond statements
   together using logical OR or logical AND operations.

2. RewriteCond now supports the special patterns: -d, -f, -s and
   their negations (prepend with !). These test if a directory
   exists, a file exists, and if a file is of non-zero size,
   respectively.

3. IsDuplicateRule() incorrectly flagged as duplicates, two
   RewriteRules that had different RewriteCond's.  This is now
   corrected, and handles chained RewriteCond's.

4. Combining modifier flags on a RewriteRule wasn't really
   working, due to errors in parsing logic. This is now
   corrected.

5. The minimum value for IterationLimit is now 1 (changed from
   8).

6. Fixed some log statements (for loglevel >=4) which were
   overflowing because of insufficient buffer sizes.


------------------------------------------------------------------
v1.2.9

1. Ha ha ha !  Contrary to the release notes, I didn't actually
   implement the [U] flag in v1.2.8.  However, it is now
   implemented in 1.2.9.  The use of the [U] flag not only sets
   the HTTP_X_REWRITE_URL Server Variable, but also tells IIS to
   log the original, pre-rewrite URL in the IIS log file.  This
   is known as "unmangling" the URL.  Essentally the
   search-engine friendly URLs (pre-rewrite) get logged in the
   IIS logs.  Please check the README for details on the [U]
   flag.


------------------------------------------------------------------
v1.2.8

1. Implemented additional modifier flags: [NF] [F] [L] [U] [I],
   and also an expansion of the existing [R] flag (added in
   1.2.4) to include [R=code], to support 404 (Not Found), 403
   (Forbidden), and additional redirect codes beyond 302.  Also
   added some tests to exercise and demonstrate these modifier
   flags.

2. reverted to fopen() rather than fopen_s() for the ini
   file in the filter, because fopen_s() implies exclusive
   access to the ini file, and this was failing when the ini
   file was held open in a text editor.  I had moved to
   fopen_s() because fopen() is deprecated in vc8, for security
   reasons.  But shared access (fopen()) is particularly useful
   when iteratively configuring the ini file: set the ini file,
   then watch it reload, test the urls, etc. So back to fopen()
   it is.  This is only for the ini file, not for the logfile.

   Because I use the old (deprecated) library routine, there is
   a compiler warning when you build IIRF.

3. Corrected a log buffer formatting error.  When detecting a
   change in a file, the name of the file was sometimes not
   correct - due to lack of proper null-termination.

4. Inserted validation checks and better logging for
   MaxMatchCount and IterationLimit directives.

5. Inserted a check of the log file directory specified by the
   RewriteLog directive.  If the log file directory is the same
   as the ini file directory, IIRF logs a WARNING message which
   advises you to not do this.  See the readme for more details
   on why you don't want to do this.

6. Corrected a bug where there is no RewriteLog directive in
   the ini file.  The code was testing for a null log file name =="",
   rather than =='\0'.  This meant the app was trying to open a
   file with no name, for logging.  IIRF no longer does this.

------------------------------------------------------------------
v1.2.6

1. removed the newline from log messages - which was introduced when
   converting to the ctime_s() routine with the change to ms vc8.

2. swapped from fopen_s() to _fsopen() for the log files.  This
   allows others to read the logfile while it is being written.
   fopen() also does this, but the behavior of fopen_s() is different.

3. AwaitIniChangeAndReinit(): raised the log level to 4, for
   logging messages when detecting a change in a file. Changes
   can occur frequently and generally we don't want to hear
   about them in the logfile, unless we are troubleshooting the
   file watcher mechanism itself.  For changes in the actual ini
   file, that log level is still "1", because it is generally an
   event of interest.


------------------------------------------------------------------
v1.2.5

1. Compiled on MS VC8, the C++ compiler that ships with Visual
   Studio 2005. Changed makefiles to do this. Also compiled
   with Visual-C++ 2005 Express, the free version of Visual C++.

2. Replaced all instances of deprecated CRT routines with the
   _s (secure) versions.  These include _itoa_s, strncpy_s,
   sprintf_s, fopen_s, strtok_s, and numerous others.

3. Packaged up PCRE-5.0 differently in the zip archive, to make
   building easier.


------------------------------------------------------------------
v1.2.4

1. Implemented the [R] modifier for redirection (HTTP 302).
   Added a test directory to demonstrate redirection.

2. Fixed a really bad design in the TestDriver that prevented
   it from ever exiting.  What was I thinking here?

3. Modified the output messages generated by TestDriver.exe.
   There is now additional text that indicates REWRITE or
   REDIRECT as appropriate.

4. Also modified the LogMsg() routine so that log messages are not
   duplicated duplicated when run from the TestDriver.exe.

------------------------------------------------------------------
v1.2.3

1. Corrected a race condition on exit, having to do with the
   inifile Watcher thread.  This involved a change to the
   CreateFile() call which opens the directory for
   ReadDirectoryChangesW.  The CreateFile() now  passes
   FILE_FLAG_OVERLAPPED to allow async operations.  When the
   ISAPI is terminating (DLL_PROCESS_DETACH), the main thread
   closes the dir handle, which causes    ReadDirectoryChangesW
   to wake up in the inifile Watcher thread.  The thread then
   exits properly.

2. Corrected a couple of string pointer manipulation problems in
   ReplaceServerVariables().  These bugs were causing garbage to
   sometimes appear in the output of RewriteCond test
   strings. This sometimes caused RewriteCond to evaluate
   incorrectly.



------------------------------------------------------------------
v1.2.2

1. Added more flexibility to the TestDriver, so that you can
   organize tests into multiple independent directories.

2. Added some tests to demonstrate techniques.  See the tests subdirectory.

3. changed the makefile to compile with /Zi, which includes
   debug information in the executable image.


------------------------------------------------------------------
v1.2.1

1. The RewriteCond was obliterating matches for the associated
   RewriteRule.  This is fixed now.

2. Updated the readme with additional examples. Fixed a few
   errors in the readme as well (stale info about reading
   logging settings from Registry, etc).



------------------------------------------------------------------
v1.2

1. The filter watches for changes in the ini file, and
   re-initializes when the ini file changes.



------------------------------------------------------------------
v1.1


1. The Readme doc stated that the directives in the ini file
   were case-sensitive.  They are not.  So

     ReWriteRule

   is the same as
     RewriteRule

   is the same as
     REWRITERULE


2. A new directive, RewriteCond, is now supported.  See the
   Readme doc for how to use it.


3. Logging settings moved from the registry to the ini file.
   RewriteLog and RewriteLogLevel are the directives.  (not case
   sensitive)


4. The Logfilename specified in the ini file is used as the
   rootname, this filter appends the pid and ".log" to the
   provided name to get the final filename.  This is necessary
   for multiple worker processes in IIS6.  Example:

   RewriteLog c:\temp\iirf

   gives a net logfilename of

       c:\temp\iirf.1672.log

   if the process ID of the w3wp.exe is 1672.
   You will get multiple logfiles if you have multiple worker
   processes.


5. The logging system no longer opens and closes the file for
   each action.  instead the log is fflushed for every log
   statement.  This is still a not insignificant performance hit.