December 31st, 2008
If you are familiar with WebDAV or even Subversion and use Windows XP/Vista, you will appreciate this tidbit of information.
You can browse a WebDAV server in Windows XP and Vista using Windows Explorer. There is a problem though, Windows XP and Vista will try to use NTLM authentication (Active Directory) to authenticate with the server. If you configure your Apache WebDAV server with either no, basic or digest authentication, then you will hit a roadblock. Luckily Microsoft created the KB907306 patch. Unlucky for myself, other websites refer to the patch number missing the last digit ‘6′. This will drive you crazy when you know you should be able to copy/paste the KB number in Google and quickly find the download page on microsoft.com. Other documents will say to search for KB90730. You should be searching for KB907306. You can search for “Software Update for Web Folders“, but you will also get a lot of other search results that are not nearly as helpful. Hopefully this blog post will save some folks the aggravation.
Now that you’re here, there is no need to search! The patch is available from the following link: http://www.microsoft.com/downloads/details.aspx?FamilyID=17c36612-632e-4c04-9382-987622ed1d64&DisplayLang=en
Filed under: Apache, Subversion, Web Dev
— angelo @ 5:45 pm — no comments
Tags: Apache, KB90730, KB907306, microsoft, ntlm, patch, Subversion, vista, webdav, windows, xp
December 31st, 2008
I’ve been working with the php CURL library and found that it would not return an error if the server returned a 500 error. After looking up 3 different status codes that I wasn’t very familiar with, I created the following function. It is very complete and includes additional WebDAV, Apache and Microsoft codes.
function http_status_code_string($code, $include_code=false)
{
// Source: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
switch( $code )
{
// 1xx Informational
case 100: $string = 'Continue'; break;
case 101: $string = 'Switching Protocols'; break;
case 102: $string = 'Processing'; break; // WebDAV
case 122: $string = 'Request-URI too long'; break; // Microsoft
// 2xx Success
case 200: $string = 'OK'; break;
case 201: $string = 'Created'; break;
case 202: $string = 'Accepted'; break;
case 203: $string = 'Non-Authoritative Information'; break; // HTTP/1.1
case 204: $string = 'No Content'; break;
case 205: $string = 'Reset Content'; break;
case 206: $string = 'Partial Content'; break;
case 207: $string = 'Multi-Status'; break; // WebDAV
// 3xx Redirection
case 300: $string = 'Multiple Choices'; break;
case 301: $string = 'Moved Permanently'; break;
case 302: $string = 'Found'; break;
case 303: $string = 'See Other'; break; //HTTP/1.1
case 304: $string = 'Not Modified'; break;
case 305: $string = 'Use Proxy'; break; // HTTP/1.1
case 306: $string = 'Switch Proxy'; break; // Depreciated
case 307: $string = 'Temporary Redirect'; break; // HTTP/1.1
// 4xx Client Error
case 400: $string = 'Bad Request'; break;
case 401: $string = 'Unauthorized'; break;
case 402: $string = 'Payment Required'; break;
case 403: $string = 'Forbidden'; break;
case 404: $string = 'Not Found'; break;
case 405: $string = 'Method Not Allowed'; break;
case 406: $string = 'Not Acceptable'; break;
case 407: $string = 'Proxy Authentication Required'; break;
case 408: $string = 'Request Timeout'; break;
case 409: $string = 'Conflict'; break;
case 410: $string = 'Gone'; break;
case 411: $string = 'Length Required'; break;
case 412: $string = 'Precondition Failed'; break;
case 413: $string = 'Request Entity Too Large'; break;
case 414: $string = 'Request-URI Too Long'; break;
case 415: $string = 'Unsupported Media Type'; break;
case 416: $string = 'Requested Range Not Satisfiable'; break;
case 417: $string = 'Expectation Failed'; break;
case 422: $string = 'Unprocessable Entity'; break; // WebDAV
case 423: $string = 'Locked'; break; // WebDAV
case 424: $string = 'Failed Dependency'; break; // WebDAV
case 425: $string = 'Unordered Collection'; break; // WebDAV
case 426: $string = 'Upgrade Required'; break;
case 449: $string = 'Retry With'; break; // Microsoft
case 450: $string = 'Blocked'; break; // Microsoft
// 5xx Server Error
case 500: $string = 'Internal Server Error'; break;
case 501: $string = 'Not Implemented'; break;
case 502: $string = 'Bad Gateway'; break;
case 503: $string = 'Service Unavailable'; break;
case 504: $string = 'Gateway Timeout'; break;
case 505: $string = 'HTTP Version Not Supported'; break;
case 506: $string = 'Variant Also Negotiates'; break;
case 507: $string = 'Insufficient Storage'; break; // WebDAV
case 509: $string = 'Bandwidth Limit Exceeded'; break; // Apache
case 510: $string = 'Not Extended'; break;
// Unknown code:
default: $string = 'Unknown'; break;
}
if( $include_code )
return $code . ' '.$string;
return $string;
}
HTTP Code values are taken from the Wikipedia entry found here: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
Filed under: PHP
— angelo @ 4:23 pm — no comments
Tags: codes, function, http, http codes, PHP, status codes