Thank you for the response.  I had expected horrible performance from an 
external filter, but it is surprisingly fast.  Fortunately, I don't have 
to scale up to more than a few users for now.  I'm all ready to start 
coding an output filter, but given the investment in time and the little 
time remaining, I would like to get this external filter working.  All the 
same, I'll purchase the book tonight. 

  Since the entity bodies are heavily binary, my filter treats all 
responses as a byte array and does no text or string operations.  In case, 
anyone finds it useful, I've excerpted the error.log showing the call to 
the external filter.  The non-timestamped log entries were written by the 
external filter.

Mark Zetts



[Thu Apr 19 18:12:02 2007] [debug] mod_proxy_http.c(54): proxy: HTTP: 
canonicalising URL //gis.orem.org/servlet/com.esri.esrimap.Esrimap
[Thu Apr 19 18:12:02 2007] [debug] proxy_util.c(1378): [client 0.0.0.0] 
proxy: http: found worker http://gis.orem.org for 
http://gis.orem.org/servlet/com.esri.esrimap.Esrimap?ServiceName=catalog&CustomStream=True&ClientLocale=en_US&ClientVersion=3.1
[Thu Apr 19 18:12:02 2007] [debug] mod_proxy.c(777): Running scheme http 
handler (attempt 0)
[Thu Apr 19 18:12:02 2007] [debug] mod_proxy_http.c(1662): proxy: HTTP: 
serving URL 
http://gis.orem.org/servlet/com.esri.esrimap.Esrimap?ServiceName=catalog&CustomStream=True&ClientLocale=en_US&ClientVersion=3.1
[Thu Apr 19 18:12:02 2007] [debug] proxy_util.c(1798): proxy: HTTP: has 
acquired connection for (gis.orem.org)
[Thu Apr 19 18:12:02 2007] [debug] proxy_util.c(1859): proxy: connecting 
http://gis.orem.org/servlet/com.esri.esrimap.Esrimap?ServiceName=catalog&CustomStream=True&ClientLocale=en_US&ClientVersion=3.1
 
to gis.orem.org:80
[Thu Apr 19 18:12:02 2007] [debug] proxy_util.c(1955): proxy: connected 
/servlet/com.esri.esrimap.Esrimap?ServiceName=catalog&CustomStream=True&ClientLocale=en_US&ClientVersion=3.1
 
to gis.orem.org:80
[Thu Apr 19 18:12:02 2007] [debug] proxy_util.c(2146): proxy: HTTP: 
connection complete to 198.60.110.7:80 (gis.orem.org)
[Thu Apr 19 18:12:02 2007] [debug] mod_proxy_http.c(1448): proxy: start 
body send
[Thu Apr 19 18:12:02 2007] [debug] mod_ext_filter.c(628): [client 0.0.0.0] 
filtering `/CivilLand/servlet/com.esri.esrimap.Esrimap' of type 
`(unspecified)' through `G:/Program_Files/Apache Software 
Foundation/Apache2.2/bin/vdlfilter.exe', cfg ExtFilterOptions 
DebugLevel=99 LogStderr PreservesContentLength ExtFilterInType */* 
ExtFilterOuttype (unchanged)

 In = 0  ------------
 Read = 0     st_size = 0 
Out -------------------------------------------------
[Thu Apr 19 18:12:02 2007] [debug] mod_ext_filter.c(820): [client 0.0.0.0] 
apr_file_read(child output), len 0
[Thu Apr 19 18:12:02 2007] [debug] mod_ext_filter.c(820): [client 0.0.0.0] 
(70014)End of file found: apr_file_read(child output), len -1
[Thu Apr 19 18:12:02 2007] [debug] mod_ext_filter.c(664): [client 0.0.0.0] 
(70014)End of file found: apr_file_read(child output), len -1
[Thu Apr 19 18:12:02 2007] [error] [client 0.0.0.0] (70014)End of file 
found: ef_unified_filter() failed
[Thu Apr 19 18:12:02 2007] [debug] mod_ext_filter.c(820): [client 0.0.0.0] 
(70014)End of file found: apr_file_read(child output), len -1
[Thu Apr 19 18:12:02 2007] [debug] mod_proxy_http.c(1537): proxy: end body 
send
[Thu Apr 19 18:12:02 2007] [debug] proxy_util.c(1816): proxy: HTTP: has 
released connection for (gis.orem.org)
[Thu Apr 19 18:12:02 2007] [debug] mod_ext_filter.c(820): [client 0.0.0.0] 
(70014)End of file found: apr_file_read(child output), len -1







"Joshua Slive" <[EMAIL PROTECTED]> 
Sent by: [EMAIL PROTECTED]
04/26/2007 01:35 PM
Please respond to
users@httpd.apache.org


To
users@httpd.apache.org
cc

Subject
Re: [EMAIL PROTECTED] Reverse Proxy and an External Filter






On 4/26/07, Mark Zetts <[EMAIL PROTECTED]> wrote:
>
>   Running Apache 2.2.4 on Windows 2003 server, I have two problems with 
an
> external filter written in C.  The Apache server is running as a reverse
> proxy.

Dicey situation, that.  I doubt that mod_external_filter is very well
tested under windows. And even if it was, the fork overhead under
windows is high enough to make performance a real issue. If this is
anything more than a toy, you'd probably be much better off writing a
real output filter. (Check out Nick Kew's new book if you need help
with that.)

Other than that, I've never tried mod_ext_filter on windows. But I'd
start by looking at the standard windows cgi stuff. For example, make
sure your stdin and stdout are both in binary mode.

Joshua.

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [EMAIL PROTECTED]
   "   from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to