Return-Path: Delivered-To: apmail-jakarta-tomcat-dev-archive@jakarta.apache.org Received: (qmail 14759 invoked by uid 500); 21 Mar 2001 18:37:35 -0000 Mailing-List: contact tomcat-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: tomcat-dev@jakarta.apache.org Delivered-To: mailing list tomcat-dev@jakarta.apache.org Delivered-To: moderator for tomcat-dev@jakarta.apache.org Received: (qmail 83572 invoked from network); 21 Mar 2001 16:24:23 -0000 X-Originating-IP: [216.143.106.254] From: "Srinivasa Reddy Gumbula" To: tomcat-dev@jakarta.apache.org, shachor@il.ibm.com, shachor@tx.technion.ac.il Subject: Re: Sorry! was: RE: ISAPI Filter: Bug? in jk_isapi_plugin.c found andfixed Date: Wed, 21 Mar 2001 16:23:57 Mime-Version: 1.0 Content-Type: text/plain; format=flowed Message-ID: X-OriginalArrivalTime: 21 Mar 2001 16:23:58.0083 (UTC) FILETIME=[54B08D30:01C0B223] X-Spam-Rating: h31.sny.collab.net 1.6.2 0/1000/N Hi! Following the idea of the jason I fix the defect. Since I cannot send the attachment. I am putting the code that needs to be changed. In the HttpFilterProc add these two lines after p->SetHeader(pfc, "url", extension_uri); p->AddHeader(pfc, "TOMCATURI:",uri); p->AddHeader(pfc, "TOMCATWORKER:",worker); And replace the else block of if(from_filt){ } with the following code in the init_ws_service: else { // code added by srini char *uri = (char*)malloc(1024*sizeof(char)); char *worker = (char*)malloc(1024*sizeof(char)); int bufSize; jk_log(logger, JK_LOG_DEBUG, "filter_ext_record_t is NULL:\n"); private_data->lpEcb->GetServerVariable(private_data->lpEcb->ConnID,"HTTP_TOMCATURI",uri,&bufSize); jk_log(logger, JK_LOG_DEBUG, "uri %s:\n",uri); private_data->lpEcb->GetServerVariable(private_data->lpEcb->ConnID,"HTTP_TOMCATWORKER",worker,&bufSize); jk_log(logger, JK_LOG_DEBUG, "worker %s:\n",worker); if(uri[0]!='\0'){ char *t = strchr(uri, '?'); if(t) { *t = '\0'; t++; if(!strlen(t)) { t = NULL; } s->query_string = t; s->req_uri = uri; *worker_name = worker; jk_log(logger, JK_LOG_DEBUG, "worker_name %s: \n",*worker_name); jk_log(logger, JK_LOG_DEBUG, "s->req_uri %s: \n",s->req_uri); } } else { s->query_string = private_data->lpEcb->lpszQueryString; *worker_name = JK_AJP12_WORKER_NAME; GET_SERVER_VARIABLE_VALUE("URL", s->req_uri); } //end } Thanks, Srini. ----------------- Jason, Send me (shachor@il.ibm.com and shachor@tx.technion.ac.il) the bug fix directly and I will check it in Also, thank you very much for the class A bug report + fix. Gal Shachor Jason Reid wrote: > >Ok, well, I guess I can't attach the source code to the >bugfix. That's pretty embarrassing. Sorry to flood the >list. > >For anyone that wants the modified source file, I can email it >directly. > > > Jason Reid > Technical Consultant > AGENCY.COM > 100 Woodbridge Center Drive, Suite 102 > Woodbridge, NJ 07095 > Email: jreid@agency.com > > > "Do not meddle in the affairs of programmers, > for they are subtle and quick to anger." > > > -----Original Message----- > > From: Jason Reid [] > > Sent: Friday, May 12, 2000 10:02 AM > > To: 'tomcat-dev@jakarta.apache.org' > > Subject: FW: ISAPI Filter: Bug? in jk_isapi_plugin.c found and fixed > > > > > > Hi, I tried sending this directly to Gal Schacor, > > but the message was unable to be successfully > > delivered, so I decided to forward it onto > > Tomcat-Dev. > > > > > Jason Reid > > Technical Consultant > > AGENCY.COM > > 100 Woodbridge Center Drive, Suite 102 > > Woodbridge, NJ 07095 > > Email: jreid@agency.com > > > > > > "Do not meddle in the affairs of programmers, > > for they are subtle and quick to anger." > > > > > > -----Original Message----- > > From: Jason Reid > > Sent: Friday, May 12, 2000 9:49 AM > > To: 'schacor@il.ibm.com' > > Subject: ISAPI Filter: Bug? in jk_isapi_plugin.c found and fixed > > > > > > Hi, > > > > I recently posted a message to tomcat-dev describing a > > problem I had with IIS + Tomcat...that message has been > > attached to the end of this one. > > > > Anyway, I traced the behavior to the isapi filter, > > did some logging, and found what I think was the problem. > > In the comments, you say that the plugin uses a TLS to > > pass values from the filter to the extension. > > > > In the filter, the filter_ext_record_t rec was always > > being successfully stored in the Tls. However, in the > > extension (function init_ws_service), sometimes the > > TlsGetValue would return NULL. > > > > Now, I don't know very much about programming C in > > Windows, and I know even less about doing ISAPI Filters > > and Extensions (yesterday was actually the first time > > I'd even seen one!). But I was left to assume that > > perhaps a separate thread was invoking the extension then > > had invoked the filter? And in that case, I gathered, > > the TlsGetValue would not find the filter_ext_record that > > had been previously stored. > > > > I went through Microsoft's Knowledge base, and found an > > article on passing information from a Filter to an Extension. > > One technique they suggested was the use of shared memory > > blocks...I didn't want to introduce that sort of complexity. > > However, for simple data values, the article said you could > > also just add an Http header in the filter, which could be > > read by the extension. So I hacked in behavior for the > > filter to add two headers, TOMCATURI and TOMCATWORKER > > as a substitute for the values kept in the filter_ext_record. > > I also modified init_ws_service to accept an LPEXTENSION_CONTROL_BLOCK > > parameter, which it could use to get at the headers. > > > > Using this technique for passing information, I was able to make > > the bug disappear. > > > > I've attached the modified jk_isapi_plugin.c for your perusal. > > If it looks a bit like a late-night hack, that's because it > > is one :) > > > > > Jason Reid > > Technical Consultant > > AGENCY.COM > > 100 Woodbridge Center Drive, Suite 102 > > Woodbridge, NJ 07095 > > Email: jreid@agency.com > > > > > > "Do not meddle in the affairs of programmers, > > for they are subtle and quick to anger." > > > > > > -----Original Message----- > > From: Jason Reid > > Sent: Thursday, May 11, 2000 3:57 PM > > To: 'tomcat-dev@jakarta.apache.org' > > Subject: FW: Somewhat reproducable bug with POST > > > > > > I posted this problem to tomcat-users a few days ago, but couldn't > > really get any help. After delving into the problem a little bit > > more, I think I was able to isolate the bad behavior to the > > isapi_redirect.dll. > > > > On some occasions, when I try to post to a servlet running alongside > > IIS, I get a 404 error. If I do a refresh/repost of form data, > > the servlet executes fine the second time. > > > > After delving into the Ajp12 handler source, I discovered that I > > could log the AJP details. > > > > I then visited the web application, and was able to capture the > > logs of the error and then the subsequent success. The AJP logs > > for the two were identical, except for the URIs. For the good > > request, the 2 URI lines that were logged looked like: > > > > AJP: URI: /app/servlet/controller/SubscriberProfile CP:null LP:null > > > > For the bad request, however, the log showed: > > > > AJP: URI: /jakarta/isapi_redirect.dll CP:null LP:null > > > > Anyway, this bug is pretty much a showstopper for me, so I'm going > > to delve into the C code and see if I can't turn anything up. > > If, however, this catches the eye of anyone who is already familiar > > with the code, and you have an idea of what might be occurring, I'd > > appreciate any help you could give me. > > > > > > > Jason Reid > > Technical Consultant > > AGENCY.COM > > 100 Woodbridge Center Drive, Suite 102 > > Woodbridge, NJ 07095 > > Email: jreid@agency.com > > > > > > "Do not meddle in the affairs of programmers, > > for they are subtle and quick to anger." > > > > > > -----Original Message----- > > From: Jason Reid > > Sent: Monday, May 08, 2000 7:14 PM > > To: 'tomcat-user@jakarta.apache.org' > > Subject: Somewhat reproducable bug with POST > > > > > > I have Tomcat 3.1 hooked into IIS. > > > > One "super-servlet" intercepts all requests made into > > my system, reads the extra path info, and then dispatches > > the request to another servlet. > > > > Many of my servlets have their doGet() display a > > page, with a form action that points to the servlet's > > doPost(). This doPost(), after checking the input, > > would dispatch the request to another servlet, or it > > may simply call its own doGet(). > > > > Sometimes, however, when on the page displayed by the > > original doGet, form submission does not work as planned. > > Instead, I will get a message of the following form: > > > > Error: 400 > > Location: /jakarta/isapi_redirect.dll > > HTTP method POST is not supported by this URL > > > > If I do a refresh right after getting this message, it > > works fine. It's also not entirely reproducable...sometimes > > the process works without a hitch, sometimes it doesn't. Oh, > > and it only seems to happen under the various flavors of IE. > > > > I have tried everything that I can think of...I've tried > > modifying the "super-servlet", the individual processing > > servlets themselves...nothing seems to work. I was wondering > > if anyone could help me find the cause of this bug...does > > anyone know under what conditions this sort of message would > > be returned? Any help would be greatly appreciated...I'm at my > > wits end. > > > > > Jason Reid > > Technical Consultant > > AGENCY.COM > > 100 Woodbridge Center Drive, Suite 102 > > Woodbridge, NJ 07095 > > Email: jreid@agency.com > > > > > > "Do not meddle in the affairs of programmers, > > for they are subtle and quick to anger." > > > > > > > >--------------------------------------------------------------------- >To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org >For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com