Bug 10216

Summary: ISAPI + SSL = status 200 as 500 after correct reply
Product: Apache httpd-2 Reporter: Jiri Novak <jira.novak>
Component: mod_sslAssignee: Apache HTTPD Bugs Mailing List <bugs>
Status: CLOSED FIXED    
Severity: normal    
Priority: P3    
Version: 2.0.39   
Target Milestone: ---   
Hardware: Other   
OS: All   

Description Jiri Novak 2002-06-25 14:41:59 UTC
When I use ISAPI Extenstion and SSL, Apache attach after correct ISAPI reply 
page with title: 200 OK

------------------------------------------------------------------------
OK
The server encountered an internal error or misconfiguration and was unable to 
complete your request.

Please contact the server administrator, jira.novak@gecapital.com and inform 
them of the time the error occurred, and anything you might have done that may 
have caused the error.

More information about this error may be available in the server error log.

Apache/2.0.39 Server at ssl666cgcfge Port 443
------------------------------------------------------------------------

This is message for status 500, but it is status 200!

Any idea?
Thanx
Jiri
Comment 1 Jiri Novak 2002-06-25 14:50:26 UTC
Primary, I need load and CACHE any cgi script (windows library) without 
unloading. I'm windows programer so I don't know other option except ISAPI... 
Any help please?
Comment 2 Jiri Novak 2002-06-26 07:19:03 UTC
I traced SSL is without influence...
Comment 3 Jiri Novak 2002-06-26 10:05:29 UTC
Hi again boys.

I changed line 1532 in "mod_isapi.c" from 

    /* Set the status (for logging) */
    if (cid->ecb->dwHttpStatusCode) {
        cid->r->status = cid->ecb->dwHttpStatusCode;
    }

to

    /* Set the status (for logging) */
    if (cid->ecb->dwHttpStatusCode && cid->ecb->dwHttpStatusCode!=200) {
        cid->r->status = cid->ecb->dwHttpStatusCode;
    }

I don't check what you do with "cid->r->status" variable,
but it resolve my problem.

Ave, GeniuZ
Comment 4 William A. Rowe Jr. 2002-11-04 13:52:10 UTC
  Have just committed a bugfix for this report.

  Rather than Status!=200 tests, we will simply track response_sent, and
  once it has been sent, we will return 0 (assuring the server core module
  that it's been handled.)  This also assures that if the ISAPI module wants
  to return the 200, or 500, or redirect, and completely handles it internally,
  that this bug won't appear again.