diff -cr apache_1.3.3.orig/src/include/httpd.h apache_1.3.3/src/include/httpd.h *** apache_1.3.3.orig/src/include/httpd.h Wed Oct 7 18:19:06 1998 --- apache_1.3.3/src/include/httpd.h Tue Nov 17 00:22:36 1998 *************** *** 532,538 **** ((x) == HTTP_NOT_IMPLEMENTED)) ! #define METHODS 8 #define M_GET 0 #define M_PUT 1 #define M_POST 2 --- 532,538 ---- ((x) == HTTP_NOT_IMPLEMENTED)) ! #define METHODS 9 #define M_GET 0 #define M_PUT 1 #define M_POST 2 *************** *** 540,546 **** #define M_CONNECT 4 #define M_OPTIONS 5 #define M_TRACE 6 ! #define M_INVALID 7 #define CGI_MAGIC_TYPE "application/x-httpd-cgi" #define INCLUDES_MAGIC_TYPE "text/x-server-parsed-html" --- 540,547 ---- #define M_CONNECT 4 #define M_OPTIONS 5 #define M_TRACE 6 ! #define M_MOVE 7 ! #define M_INVALID 8 #define CGI_MAGIC_TYPE "application/x-httpd-cgi" #define INCLUDES_MAGIC_TYPE "text/x-server-parsed-html" diff -cr apache_1.3.3.orig/src/main/http_core.c apache_1.3.3/src/main/http_core.c *** apache_1.3.3.orig/src/main/http_core.c Thu Oct 1 13:52:28 1998 --- apache_1.3.3/src/main/http_core.c Tue Nov 17 00:19:25 1998 *************** *** 1086,1091 **** --- 1086,1094 ---- else if (!strcmp(method, "OPTIONS")) { limited |= (1 << M_OPTIONS); } + else if (!strcmp(method, "MOVE")) { + limited |= (1 << M_MOVE); + } else { return ap_pstrcat(cmd->pool, "unknown method \"", method, "\" in ", NULL); *************** *** 2741,2746 **** --- 2744,2752 ---- return ap_send_http_options(r); } if (r->method_number == M_PUT) { + return METHOD_NOT_ALLOWED; + } + if (r->method_number == M_MOVE) { return METHOD_NOT_ALLOWED; } diff -cr apache_1.3.3.orig/src/main/http_protocol.c apache_1.3.3/src/main/http_protocol.c *** apache_1.3.3.orig/src/main/http_protocol.c Wed Oct 7 04:06:09 1998 --- apache_1.3.3/src/main/http_protocol.c Tue Nov 17 00:55:17 1998 *************** *** 696,701 **** --- 696,703 ---- r->method_number = M_OPTIONS; else if (!strcmp(r->method, "TRACE")) r->method_number = M_TRACE; + else if (!strcmp(r->method, "MOVE")) + r->method_number = M_MOVE; else r->method_number = M_INVALID; /* Will eventually croak. */ *************** *** 1242,1248 **** (r->allowed & (1 << M_PUT)) ? ", PUT" : "", (r->allowed & (1 << M_DELETE)) ? ", DELETE" : "", (r->allowed & (1 << M_OPTIONS)) ? ", OPTIONS" : "", ! ", TRACE", NULL); } --- 1244,1251 ---- (r->allowed & (1 << M_PUT)) ? ", PUT" : "", (r->allowed & (1 << M_DELETE)) ? ", DELETE" : "", (r->allowed & (1 << M_OPTIONS)) ? ", OPTIONS" : "", ! (r->allowed & (1 << M_TRACE)) ? ", TRACE" : "", ! ", MOVE", NULL); } diff -cr apache_1.3.3.orig/src/modules/standard/mod_actions.c apache_1.3.3/src/modules/standard/mod_actions.c *** apache_1.3.3.orig/src/modules/standard/mod_actions.c Fri Aug 7 02:30:53 1998 --- apache_1.3.3/src/modules/standard/mod_actions.c Tue Nov 17 00:40:15 1998 *************** *** 86,91 **** --- 86,92 ---- char *post; /* Added with Script POST */ char *put; /* Added with Script PUT */ char *delete; /* Added with Script DELETE */ + char *move; /* Added with Script MOVE */ } action_dir_config; module action_module; *************** *** 100,105 **** --- 101,107 ---- new->post = NULL; new->put = NULL; new->delete = NULL; + new->move = NULL; return new; } *************** *** 118,123 **** --- 120,126 ---- new->post = add->post ? add->post : base->post; new->put = add->put ? add->put : base->put; new->delete = add->delete ? add->delete : base->delete; + new->move = add->move ? add->move : base->move; return new; } *************** *** 140,145 **** --- 143,150 ---- m->put = script; else if (!strcmp(method, "DELETE")) m->delete = script; + else if (!strcmp(method, "MOVE")) + m->move = script; else return "Unknown method type for Script"; *************** *** 171,176 **** --- 176,183 ---- r->allowed |= (1 << M_PUT); if (conf->delete) r->allowed |= (1 << M_DELETE); + if (conf->move) + r->allowed |= (1 << M_MOVE); /* First, check for the method-handling scripts */ if ((r->method_number == M_GET) && r->args && conf->get) *************** *** 181,186 **** --- 188,195 ---- script = conf->put; else if ((r->method_number == M_DELETE) && conf->delete) script = conf->delete; + else if ((r->method_number == M_MOVE) && conf->move) + script = conf->move; /* Check for looping, which can happen if the CGI script isn't */ if (script && r->prev && r->prev->prev)