Fix bug #9 and #10 -- by making error statuses persistent, the win32 password problem goes away, as does the reprompting on bad password attempts. Nice.

This commit is contained in:
Ron Pedde 2006-03-31 07:29:51 +00:00
parent cbf607fd2e
commit 3b31d22c02
1 changed files with 9 additions and 3 deletions

View File

@ -1011,11 +1011,17 @@ int ws_returnerror(WS_CONNINFO *pwsc,int error, char *description) {
/* we'll force a close here unless the user agent is /* we'll force a close here unless the user agent is
iTunes, which seems to get pissy about it */ iTunes, which seems to get pissy about it */
useragent = ws_getarg(&pwsc->request_headers,"User-Agent"); useragent = ws_getarg(&pwsc->request_headers,"User-Agent");
if((!useragent) || (strncmp(useragent,"iTunes",6))) { if((useragent) && (strncmp(useragent,"iTunes",6) == 0) && (error == 401)) {
pwsc->close=1; ws_addarg(&pwsc->response_headers,"Connection","keep-alive");
ws_addarg(&pwsc->response_headers,"Connection","close"); ws_addarg(&pwsc->response_headers,"Content-Length","2");
ws_emitheaders(pwsc);
ws_writefd(pwsc,"\r\n");
return 0;
} }
pwsc->close=1;
ws_addarg(&pwsc->response_headers,"Connection","close");
ws_emitheaders(pwsc); ws_emitheaders(pwsc);
ws_writefd(pwsc,"<HTML>\r\n<TITLE>"); ws_writefd(pwsc,"<HTML>\r\n<TITLE>");