about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorzedshaw <zedshaw@19e92222-5c0b-0410-8929-a290d50e31e9>2006-06-30 20:42:12 +0000
committerzedshaw <zedshaw@19e92222-5c0b-0410-8929-a290d50e31e9>2006-06-30 20:42:12 +0000
commitddd5c9a46cfbb471f83a50d0a890a55628c22738 (patch)
treed8fbc0cbca12883202224dec4ded0333b4b291c8
parent7d0f10c2427f37f2f08366c5d6add01973238f1a (diff)
downloadunicorn-ddd5c9a46cfbb471f83a50d0a890a55628c22738.tar.gz
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@267 19e92222-5c0b-0410-8929-a290d50e31e9
-rw-r--r--COPYING55
-rw-r--r--bin/mongrel_rails6
-rw-r--r--ext/http11/http11.c4
-rw-r--r--ext/http11/http11_parser.c94
-rw-r--r--ext/http11/http11_parser.h4
-rw-r--r--ext/http11/http11_parser.rl4
-rw-r--r--lib/mongrel.rb5
-rw-r--r--lib/mongrel/camping.rb5
-rw-r--r--lib/mongrel/cgi.rb5
-rw-r--r--lib/mongrel/command.rb5
-rw-r--r--lib/mongrel/debug.rb5
-rw-r--r--lib/mongrel/handlers.rb6
-rw-r--r--lib/mongrel/init.rb5
-rw-r--r--lib/mongrel/rails.rb5
-rw-r--r--lib/mongrel/stats.rb5
-rw-r--r--lib/mongrel/tcphack.rb5
-rw-r--r--test/test_command.rb5
-rw-r--r--test/test_conditional.rb5
-rw-r--r--test/test_configurator.rb5
-rw-r--r--test/test_debug.rb5
-rw-r--r--test/test_handlers.rb5
-rw-r--r--test/test_http11.rb5
-rw-r--r--test/test_redirect_handler.rb6
-rw-r--r--test/test_request_progress.rb5
-rw-r--r--test/test_response.rb5
-rw-r--r--test/test_stats.rb5
-rw-r--r--test/test_uriclassifier.rb5
-rw-r--r--test/test_ws.rb5
-rw-r--r--test/testhelp.rb6
29 files changed, 240 insertions, 45 deletions
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..e7ada7d
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,55 @@
+Mongrel Web Server (Mongrel) is copyrighted free software by Zed A. Shaw
+<zedshaw at zedshaw dot com> You can redistribute it and/or modify it under
+either the terms of the GPL or the conditions below:
+
+1. You may make and give away verbatim copies of the source form of the
+   software without restriction, provided that you duplicate all of the
+   original copyright notices and associated disclaimers.
+
+2. You may modify your copy of the software in any way, provided that
+   you do at least ONE of the following:
+
+     a) place your modifications in the Public Domain or otherwise make them
+     Freely Available, such as by posting said modifications to Usenet or an
+     equivalent medium, or by allowing the author to include your
+     modifications in the software.
+
+     b) use the modified software only within your corporation or
+        organization.
+
+     c) rename any non-standard executables so the names do not conflict with
+     standard executables, which must also be provided.
+
+     d) make other distribution arrangements with the author.
+
+3. You may distribute the software in object code or executable
+   form, provided that you do at least ONE of the following:
+
+     a) distribute the executables and library files of the software,
+     together with instructions (in the manual page or equivalent) on where
+     to get the original distribution.
+
+     b) accompany the distribution with the machine-readable source of the
+     software.
+
+     c) give non-standard executables non-standard names, with
+        instructions on where to get the original software distribution.
+
+     d) make other distribution arrangements with the author.
+
+4. You may modify and include the part of the software into any other
+   software (possibly commercial).  But some files in the distribution
+   are not written by the author, so that they are not under this terms.
+
+5. The scripts and library files supplied as input to or produced as
+   output from the software do not automatically fall under the
+   copyright of the software, but belong to whomever generated them,
+   and may be sold commercially, and may be aggregated with this
+   software.
+
+6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+   PURPOSE.
+
+
diff --git a/bin/mongrel_rails b/bin/mongrel_rails
index 1244a43..69d953c 100644
--- a/bin/mongrel_rails
+++ b/bin/mongrel_rails
@@ -1,3 +1,9 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
+
 require 'rubygems'
 require 'yaml'
 require 'mongrel'
diff --git a/ext/http11/http11.c b/ext/http11/http11.c
index 80eab8c..f3f688b 100644
--- a/ext/http11/http11.c
+++ b/ext/http11/http11.c
@@ -1,3 +1,7 @@
+/**
+ * Copyright (c) 2005 Zed A. Shaw
+ * You can redistribute it and/or modify it under the same terms as Ruby.
+ */
 #include "ruby.h"
 #include "ext_help.h"
 #include <assert.h>
diff --git a/ext/http11/http11_parser.c b/ext/http11/http11_parser.c
index b69773a..33c6c20 100644
--- a/ext/http11/http11_parser.c
+++ b/ext/http11/http11_parser.c
@@ -1,4 +1,8 @@
 #line 1 "ext/http11/http11_parser.rl"
+/**
+ * Copyright (c) 2005 Zed A. Shaw
+ * You can redistribute it and/or modify it under the same terms as Ruby.
+ */
 #include "http11_parser.h"
 #include <stdio.h>
 #include <assert.h>
@@ -11,28 +15,28 @@
 #define PTR_TO(F) (buffer + parser->F)
 
 /** machine **/
-#line 102 "ext/http11/http11_parser.rl"
+#line 106 "ext/http11/http11_parser.rl"
 
 
 /** Data **/
 
-#line 20 "ext/http11/http11_parser.c"
+#line 24 "ext/http11/http11_parser.c"
 static int http_parser_start = 0;
 
 static int http_parser_first_final = 51;
 
 static int http_parser_error = 1;
 
-#line 106 "ext/http11/http11_parser.rl"
+#line 110 "ext/http11/http11_parser.rl"
 
 int http_parser_init(http_parser *parser)  {
     int cs = 0;
     
-#line 32 "ext/http11/http11_parser.c"
+#line 36 "ext/http11/http11_parser.c"
         {
         cs = http_parser_start;
         }
-#line 110 "ext/http11/http11_parser.rl"
+#line 114 "ext/http11/http11_parser.rl"
     parser->cs = cs;
     parser->body_start = 0;
     parser->content_len = 0;
@@ -60,7 +64,7 @@ size_t http_parser_execute(http_parser *parser, const char *buffer, size_t len,
 
 
     
-#line 64 "ext/http11/http11_parser.c"
+#line 68 "ext/http11/http11_parser.c"
         {
         p -= 1;
         if ( ++p == pe )
@@ -84,14 +88,14 @@ case 0:
 st1:
         goto _out1;
 tr14:
-#line 16 "ext/http11/http11_parser.rl"
+#line 20 "ext/http11/http11_parser.rl"
         {MARK(mark, p); }
         goto st2;
 st2:
         if ( ++p == pe )
                 goto _out2;
 case 2:
-#line 95 "ext/http11/http11_parser.c"
+#line 99 "ext/http11/http11_parser.c"
         switch( (*p) ) {
                 case 32: goto tr18;
                 case 36: goto st32;
@@ -107,7 +111,7 @@ case 2:
                 goto st32;
         goto st1;
 tr18:
-#line 29 "ext/http11/http11_parser.rl"
+#line 33 "ext/http11/http11_parser.rl"
         {
                if(parser->request_method != NULL)
                               parser->request_method(parser->data, PTR_TO(mark), LEN(mark, p));
@@ -117,7 +121,7 @@ st3:
         if ( ++p == pe )
                 goto _out3;
 case 3:
-#line 121 "ext/http11/http11_parser.c"
+#line 125 "ext/http11/http11_parser.c"
         switch( (*p) ) {
                 case 42: goto tr10;
                 case 43: goto tr11;
@@ -134,26 +138,26 @@ case 3:
                 goto tr11;
         goto st1;
 tr10:
-#line 16 "ext/http11/http11_parser.rl"
+#line 20 "ext/http11/http11_parser.rl"
         {MARK(mark, p); }
         goto st4;
 st4:
         if ( ++p == pe )
                 goto _out4;
 case 4:
-#line 145 "ext/http11/http11_parser.c"
+#line 149 "ext/http11/http11_parser.c"
         if ( (*p) == 32 )
                 goto tr20;
         goto st1;
 tr20:
-#line 33 "ext/http11/http11_parser.rl"
+#line 37 "ext/http11/http11_parser.rl"
         {
                if(parser->request_uri != NULL)
                               parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
         }
         goto st5;
 tr32:
-#line 37 "ext/http11/http11_parser.rl"
+#line 41 "ext/http11/http11_parser.rl"
         {
                if(parser->query_string != NULL)
                               parser->query_string(parser->data, PTR_TO(mark), LEN(mark, p));
@@ -163,19 +167,19 @@ st5:
         if ( ++p == pe )
                 goto _out5;
 case 5:
-#line 167 "ext/http11/http11_parser.c"
+#line 171 "ext/http11/http11_parser.c"
         if ( (*p) == 72 )
                 goto tr3;
         goto st1;
 tr3:
-#line 16 "ext/http11/http11_parser.rl"
+#line 20 "ext/http11/http11_parser.rl"
         {MARK(mark, p); }
         goto st6;
 st6:
         if ( ++p == pe )
                 goto _out6;
 case 6:
-#line 179 "ext/http11/http11_parser.c"
+#line 183 "ext/http11/http11_parser.c"
         if ( (*p) == 84 )
                 goto st7;
         goto st1;
@@ -233,14 +237,14 @@ case 13:
                 goto st13;
         goto st1;
 tr23:
-#line 42 "ext/http11/http11_parser.rl"
+#line 46 "ext/http11/http11_parser.rl"
         {        
                if(parser->http_version != NULL)
                               parser->http_version(parser->data, PTR_TO(mark), LEN(mark, p));
         }
         goto st14;
 tr35:
-#line 24 "ext/http11/http11_parser.rl"
+#line 28 "ext/http11/http11_parser.rl"
         {
                if(parser->http_field != NULL) {
                               parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
@@ -251,7 +255,7 @@ st14:
         if ( ++p == pe )
                 goto _out14;
 case 14:
-#line 255 "ext/http11/http11_parser.c"
+#line 259 "ext/http11/http11_parser.c"
         if ( (*p) == 10 )
                 goto st15;
         goto st1;
@@ -291,7 +295,7 @@ case 16:
                 goto tr26;
         goto st1;
 tr26:
-#line 47 "ext/http11/http11_parser.rl"
+#line 51 "ext/http11/http11_parser.rl"
         {
                parser->body_start = p - buffer + 1;
                if(parser->header_done != NULL)
@@ -303,17 +307,17 @@ st51:
         if ( ++p == pe )
                 goto _out51;
 case 51:
-#line 307 "ext/http11/http11_parser.c"
+#line 311 "ext/http11/http11_parser.c"
         goto st1;
 tr22:
-#line 18 "ext/http11/http11_parser.rl"
+#line 22 "ext/http11/http11_parser.rl"
         { MARK(field_start, p); }
         goto st17;
 st17:
         if ( ++p == pe )
                 goto _out17;
 case 17:
-#line 317 "ext/http11/http11_parser.c"
+#line 321 "ext/http11/http11_parser.c"
         switch( (*p) ) {
                 case 33: goto st17;
                 case 58: goto tr16;
@@ -339,7 +343,7 @@ case 17:
                 goto st17;
         goto st1;
 tr16:
-#line 19 "ext/http11/http11_parser.rl"
+#line 23 "ext/http11/http11_parser.rl"
         {
                parser->field_len = LEN(field_start, p);
         }
@@ -348,7 +352,7 @@ st18:
         if ( ++p == pe )
                 goto _out18;
 case 18:
-#line 352 "ext/http11/http11_parser.c"
+#line 356 "ext/http11/http11_parser.c"
         if ( (*p) == 32 )
                 goto st19;
         goto st1;
@@ -360,26 +364,26 @@ case 19:
                 goto tr35;
         goto tr38;
 tr38:
-#line 23 "ext/http11/http11_parser.rl"
+#line 27 "ext/http11/http11_parser.rl"
         { MARK(mark, p); }
         goto st20;
 st20:
         if ( ++p == pe )
                 goto _out20;
 case 20:
-#line 371 "ext/http11/http11_parser.c"
+#line 375 "ext/http11/http11_parser.c"
         if ( (*p) == 13 )
                 goto tr35;
         goto st20;
 tr11:
-#line 16 "ext/http11/http11_parser.rl"
+#line 20 "ext/http11/http11_parser.rl"
         {MARK(mark, p); }
         goto st21;
 st21:
         if ( ++p == pe )
                 goto _out21;
 case 21:
-#line 383 "ext/http11/http11_parser.c"
+#line 387 "ext/http11/http11_parser.c"
         switch( (*p) ) {
                 case 43: goto st21;
                 case 58: goto st22;
@@ -397,14 +401,14 @@ case 21:
                 goto st21;
         goto st1;
 tr13:
-#line 16 "ext/http11/http11_parser.rl"
+#line 20 "ext/http11/http11_parser.rl"
         {MARK(mark, p); }
         goto st22;
 st22:
         if ( ++p == pe )
                 goto _out22;
 case 22:
-#line 408 "ext/http11/http11_parser.c"
+#line 412 "ext/http11/http11_parser.c"
         switch( (*p) ) {
                 case 32: goto tr20;
                 case 37: goto st23;
@@ -445,14 +449,14 @@ case 24:
                 goto st22;
         goto st1;
 tr12:
-#line 16 "ext/http11/http11_parser.rl"
+#line 20 "ext/http11/http11_parser.rl"
         {MARK(mark, p); }
         goto st25;
 st25:
         if ( ++p == pe )
                 goto _out25;
 case 25:
-#line 456 "ext/http11/http11_parser.c"
+#line 460 "ext/http11/http11_parser.c"
         switch( (*p) ) {
                 case 32: goto tr20;
                 case 37: goto st26;
@@ -494,7 +498,7 @@ case 27:
                 goto st25;
         goto st1;
 tr30:
-#line 33 "ext/http11/http11_parser.rl"
+#line 37 "ext/http11/http11_parser.rl"
         {
                if(parser->request_uri != NULL)
                               parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
@@ -504,7 +508,7 @@ st28:
         if ( ++p == pe )
                 goto _out28;
 case 28:
-#line 508 "ext/http11/http11_parser.c"
+#line 512 "ext/http11/http11_parser.c"
         switch( (*p) ) {
                 case 32: goto tr32;
                 case 37: goto tr37;
@@ -519,14 +523,14 @@ case 28:
                 goto st1;
         goto tr36;
 tr36:
-#line 16 "ext/http11/http11_parser.rl"
+#line 20 "ext/http11/http11_parser.rl"
         {MARK(mark, p); }
         goto st29;
 st29:
         if ( ++p == pe )
                 goto _out29;
 case 29:
-#line 530 "ext/http11/http11_parser.c"
+#line 534 "ext/http11/http11_parser.c"
         switch( (*p) ) {
                 case 32: goto tr32;
                 case 37: goto st30;
@@ -541,14 +545,14 @@ case 29:
                 goto st1;
         goto st29;
 tr37:
-#line 16 "ext/http11/http11_parser.rl"
+#line 20 "ext/http11/http11_parser.rl"
         {MARK(mark, p); }
         goto st30;
 st30:
         if ( ++p == pe )
                 goto _out30;
 case 30:
-#line 552 "ext/http11/http11_parser.c"
+#line 556 "ext/http11/http11_parser.c"
         if ( (*p) < 65 ) {
                 if ( 48 <= (*p) && (*p) <= 57 )
                         goto st31;
@@ -957,7 +961,7 @@ case 50:
 
         _out: {}
         }
-#line 137 "ext/http11/http11_parser.rl"
+#line 141 "ext/http11/http11_parser.rl"
 
     parser->cs = cs;
     parser->nread += p - (buffer + off);
@@ -972,8 +976,8 @@ case 50:
     if(parser->body_start) {
         /* final \r\n combo encountered so stop right here */
         
-#line 976 "ext/http11/http11_parser.c"
-#line 151 "ext/http11/http11_parser.rl"
+#line 980 "ext/http11/http11_parser.c"
+#line 155 "ext/http11/http11_parser.rl"
         parser->nread++;
     }
 
@@ -985,8 +989,8 @@ int http_parser_finish(http_parser *parser)
         int cs = parser->cs;
 
         
-#line 989 "ext/http11/http11_parser.c"
-#line 162 "ext/http11/http11_parser.rl"
+#line 993 "ext/http11/http11_parser.c"
+#line 166 "ext/http11/http11_parser.rl"
 
         parser->cs = cs;
 
diff --git a/ext/http11/http11_parser.h b/ext/http11/http11_parser.h
index 11c0907..c993738 100644
--- a/ext/http11/http11_parser.h
+++ b/ext/http11/http11_parser.h
@@ -1,3 +1,7 @@
+/**
+ * Copyright (c) 2005 Zed A. Shaw
+ * You can redistribute it and/or modify it under the same terms as Ruby.
+ */
 
 #ifndef http11_parser_h
 #define http11_parser_h
diff --git a/ext/http11/http11_parser.rl b/ext/http11/http11_parser.rl
index 0bc59ef..902d678 100644
--- a/ext/http11/http11_parser.rl
+++ b/ext/http11/http11_parser.rl
@@ -1,3 +1,7 @@
+/**
+ * Copyright (c) 2005 Zed A. Shaw
+ * You can redistribute it and/or modify it under the same terms as Ruby.
+ */
 #include "http11_parser.h"
 #include <stdio.h>
 #include <assert.h>
diff --git a/lib/mongrel.rb b/lib/mongrel.rb
index c4449b2..03b053a 100644
--- a/lib/mongrel.rb
+++ b/lib/mongrel.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'socket'
 require 'http11'
diff --git a/lib/mongrel/camping.rb b/lib/mongrel/camping.rb
index 9fb8eed..da497a0 100644
--- a/lib/mongrel/camping.rb
+++ b/lib/mongrel/camping.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'mongrel'
 
diff --git a/lib/mongrel/cgi.rb b/lib/mongrel/cgi.rb
index 300f533..0c941b9 100644
--- a/lib/mongrel/cgi.rb
+++ b/lib/mongrel/cgi.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'cgi'
 
diff --git a/lib/mongrel/command.rb b/lib/mongrel/command.rb
index 7d10a43..64969b4 100644
--- a/lib/mongrel/command.rb
+++ b/lib/mongrel/command.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'rubygems'
 require 'singleton'
diff --git a/lib/mongrel/debug.rb b/lib/mongrel/debug.rb
index 01d7404..66f974d 100644
--- a/lib/mongrel/debug.rb
+++ b/lib/mongrel/debug.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'logger'
 require 'set'
diff --git a/lib/mongrel/handlers.rb b/lib/mongrel/handlers.rb
index 0c4d0e3..fede2db 100644
--- a/lib/mongrel/handlers.rb
+++ b/lib/mongrel/handlers.rb
@@ -1,3 +1,9 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
+
 require 'mongrel/stats'
 require 'zlib'
 
diff --git a/lib/mongrel/init.rb b/lib/mongrel/init.rb
index d6ffaa8..7199d0c 100644
--- a/lib/mongrel/init.rb
+++ b/lib/mongrel/init.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'rubygems'
 require 'gem_plugin'
diff --git a/lib/mongrel/rails.rb b/lib/mongrel/rails.rb
index 35841c8..df4397a 100644
--- a/lib/mongrel/rails.rb
+++ b/lib/mongrel/rails.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'mongrel'
 require 'cgi'
diff --git a/lib/mongrel/stats.rb b/lib/mongrel/stats.rb
index 57ea60f..eec6ff9 100644
--- a/lib/mongrel/stats.rb
+++ b/lib/mongrel/stats.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 # A very simple little class for doing some basic fast statistics sampling.
 # You feed it either samples of numeric data you want measured or you call
diff --git a/lib/mongrel/tcphack.rb b/lib/mongrel/tcphack.rb
index 0cabe42..634f9dd 100644
--- a/lib/mongrel/tcphack.rb
+++ b/lib/mongrel/tcphack.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 
 # A modification proposed by Sean Treadway that increases the default accept
diff --git a/test/test_command.rb b/test/test_command.rb
index 9b8e760..4db9c1f 100644
--- a/test/test_command.rb
+++ b/test/test_command.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'test/unit'
 require 'mongrel'
diff --git a/test/test_conditional.rb b/test/test_conditional.rb
index 1a56b1a..511570e 100644
--- a/test/test_conditional.rb
+++ b/test/test_conditional.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'test/unit'
 require 'net/http'
diff --git a/test/test_configurator.rb b/test/test_configurator.rb
index 1056a50..4e4d963 100644
--- a/test/test_configurator.rb
+++ b/test/test_configurator.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'test/unit'
 require 'mongrel'
diff --git a/test/test_debug.rb b/test/test_debug.rb
index d210246..950ff84 100644
--- a/test/test_debug.rb
+++ b/test/test_debug.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'fileutils'
 FileUtils.mkdir_p "log/mongrel_debug"
diff --git a/test/test_handlers.rb b/test/test_handlers.rb
index bb5b7c5..7df0f15 100644
--- a/test/test_handlers.rb
+++ b/test/test_handlers.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'test/unit'
 require 'net/http'
diff --git a/test/test_http11.rb b/test/test_http11.rb
index 3d25f3a..adf88b7 100644
--- a/test/test_http11.rb
+++ b/test/test_http11.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'test/unit'
 require 'http11'
diff --git a/test/test_redirect_handler.rb b/test/test_redirect_handler.rb
index a1fe67d..dc81647 100644
--- a/test/test_redirect_handler.rb
+++ b/test/test_redirect_handler.rb
@@ -1,3 +1,9 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
+
 require 'test/unit'
 require 'mongrel'
 require 'net/http'
diff --git a/test/test_request_progress.rb b/test/test_request_progress.rb
index da2e72e..5e45cea 100644
--- a/test/test_request_progress.rb
+++ b/test/test_request_progress.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'test/unit'
 require 'mongrel'
diff --git a/test/test_response.rb b/test/test_response.rb
index d277975..b68c1ef 100644
--- a/test/test_response.rb
+++ b/test/test_response.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'test/unit'
 require 'mongrel'
diff --git a/test/test_stats.rb b/test/test_stats.rb
index 48ac9e5..a0f9c1b 100644
--- a/test/test_stats.rb
+++ b/test/test_stats.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'test/unit'
 require 'mongrel/stats'
diff --git a/test/test_uriclassifier.rb b/test/test_uriclassifier.rb
index d132d7a..f7c2608 100644
--- a/test/test_uriclassifier.rb
+++ b/test/test_uriclassifier.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'test/unit'
 require 'net/http'
diff --git a/test/test_ws.rb b/test/test_ws.rb
index 974a00c..09deb5b 100644
--- a/test/test_ws.rb
+++ b/test/test_ws.rb
@@ -1,3 +1,8 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
 
 require 'test/unit'
 require 'net/http'
diff --git a/test/testhelp.rb b/test/testhelp.rb
index b5d0a9b..78956a9 100644
--- a/test/testhelp.rb
+++ b/test/testhelp.rb
@@ -1,3 +1,9 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
+
 def redirect_test_io
   orig_err = STDERR.dup
   orig_out = STDOUT.dup