Re: [squid-users] problems with spellcheck in owa with squid reverse proxy

From: Adrian Chadd <adrian@dont-contact.us>
Date: Thu, 22 Feb 2007 14:44:29 +0800

On Thu, Feb 22, 2007, Brett Lymn wrote:
>
> Hi,
>
> I am having a problem with getting the spellcheck functionality of the
> Microsoft OWA working with a Squid 2.6STABLE9 reverse proxy. When you
> attempt to spellcheck a mail message OWA pops up a box saying the
> message is being checked and then sometime later pops up another
> message box saying "The spelling in this item can't be checked. Try
> again later". The obvious things tried:
>
> 1) the reverse proxy seems to function fine for everything else, just
> the spellcheck seems to be broken
>
> 2) all the settings on the OWA settings seem correct, it allows basic
> authentication for accessing the spellcheck - in fact the spell check
> runs and spits stuff back (see later)
>
> 3) This all works fine if I don't have the the reverse proxy in the
> loop - I have set up an internal machine as a test rproxy, the spell
> check fails, just pointing the browser at the origin server directly
> and the spell check works fine.
>
> 4) the browser is configured to talk direct to the machine(s) - both
> rproxy and origin server
>
> Here is a lightly edited sniff of the traffic between the reverse
> proxy machine (squid) and the OWA origin server (exchange). Looking
> at this you can see that there is a post to the owaspell.dll that
> passes the contents of the message, a reply is generated giving
> options for the misspelt words but the client behaves as though this
> response never arrives. Has anyone any clues they can hit me with?

Yup! Squid is currently sending a HTTP/1.0 request and getting a HTTP/1.1
reply back.

Henrik's got some basic chunked reply parsing stuff in the Squid-2 development
branch (http://www.squid-cache.org/Versions/v2/HEAD/ i believe) which
might handle this case better.

Let me know if it works better!

Adrian

>
> The sniff:
>
> squid -> exchange HTTP POST /exchweb/bin/spell/owaspell.dll HTTP/1.0
>
> 0: 0000 0c07 ac03 0800 20d2 0a45 0800 4500 ........ ..E..E.
> 16: 0293 4a24 4000 4006 b920 96cf 035d 96cf ..J$@.@.. ...]..
> 32: 0425 b33b 0050 a0d5 69be 8ccf 10e6 5018 .%.;.P..i.....P.
> 48: c1e8 f628 0000 504f 5354 202f 6578 6368 ...(..POST /exch
> 64: 7765 622f 6269 6e2f 7370 656c 6c2f 6f77 web/bin/spell/ow
> 80: 6173 7065 6c6c 2e64 6c6c 2048 5454 502f aspell.dll HTTP/
> 96: 312e 300d 0a41 6363 6570 743a 202a 2f2a 1.0..Accept: */*
> 112: 0d0a 5265 6665 7265 723a 2068 7474 703a ..Referer: http:
> 128: 2f2f 3135 302e 3230 372e 332e 3933 2f65 //150.207.3.93/e
> 144: 7863 6861 6e67 652f 6272 6574 742e 6c79 xchange/brett.ly
> 160: 6d6e 2f3f 636d 643d 7370 656c 6c63 6865 mn/?cmd=spellche
> 176: 636b 0d0a 7365 6e64 6572 726f 726f 6666 ck..senderroroff
> 192: 7365 7473 3a20 540d 0a69 676e 6f72 656d sets: T..ignorem
> 224: 7065 6c6c 6c61 6e67 3a20 656e 2d61 750d pelllang: en-au.
> 240: 0a43 6f6e 7465 6e74 2d54 7970 653a 2074 .Content-Type: t
> 256: 6578 742f 706c 6169 6e3b 2063 6861 7273 ext/plain; chars
> 272: 6574 3d75 7466 2d38 0d0a 4163 6365 7074 et=utf-8..Accept
> 288: 2d4c 616e 6775 6167 653a 2065 6e2d 6175 -Language: en-au
> 304: 0d0a 6967 6e6f 7265 616c 6c63 6170 733a ..ignoreallcaps:
> 320: 2046 0d0a 4163 6365 7074 2d45 6e63 6f64 F..Accept-Encod
> 336: 696e 673a 2067 7a69 702c 2064 6566 6c61 ing: gzip, defla
> 352: 7465 0d0a 5573 6572 2d41 6765 6e74 3a20 te..User-Agent:
> 368: 4d6f 7a69 6c6c 612f 342e 3020 2863 6f6d Mozilla/4.0 (com
> 384: 7061 7469 626c 653b 204d 5349 4520 362e patible; MSIE 6.
> 400: 303b 2057 696e 646f 7773 204e 5420 352e 0; Windows NT 5.
> 432: 2031 2e31 2e34 3332 3229 0d0a 486f 7374 1.1.4322)..Host
> 448: 3a20 3135 302e 3230 372e 332e 3933 0d0a : 150.207.3.93..
> 464: 436f 6e74 656e 742d 4c65 6e67 7468 3a20 Content-Length:
> 480: 3134 0d0a 4175 7468 6f72 697a 6174 696f 14..Authorizatio
> 496: 6e3a 2042 6173 6963 20XX XXXX XXXX XXXX n: Basic XXXXXXX
> 512: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXXXXXXXXXXXXXX
> 528: XXXX XXXX XXXX 0a56 6961 3a20 312e 3120 XXXXX..Via: 1.1
> 544: 7371 7569 643a 3830 2028 7371 7569 642f squid:80 (squid/
> 560: 322e 362e 5354 4142 4c45 3929 0d0a 582d 2.6.STABLE9)..X-
> 576: 466f 7277 6172 6465 642d 466f 723a 2031 Forwarded-For: 1
> 592: 3530 2e32 3037 2e31 382e 3937 0d0a 4361 50.207.18.97..Ca
> 608: 6368 652d 436f 6e74 726f 6c3a 206e 6f2d che-Control: no-
> 624: 6361 6368 652c 206d 6178 2d61 6765 3d32 cache, max-age=2
> 640: 3539 3230 300d 0a43 6f6e 6e65 6374 696f 59200..Connectio
> 656: 6e3a 206b 6565 702d 616c 6976 650d 0a0d n: keep-alive...
> 672: 0a .
>
> squid -> exchange HTTP tesata teratat
>
> 0: 0000 0c07 ac03 0800 20d2 0a45 0800 4500 ........ ..E..E.
> 16: 0036 4a25 4000 4006 bb7c 96cf 035d 96cf .6J%@.@..|...]..
> 32: 0425 b33b 0050 a0d5 6c29 8ccf 10e6 5018 .%.;.P..l)....P.
> 48: c1e8 b57d 0000 7465 7361 7461 2074 6572 ...}..tesata ter
> 64: 6174 6174 atat
>
> exchange -> squid HTTP R port=45883
>
> 0: 0800 20d2 0a45 000e d797 78ff 0800 4500 .. ..E....x...E.
> 16: 0028 cc9a 4000 7e06 fb14 96cf 0425 96cf .(..@.~......%..
> 32: 035d 0050 b33b 8ccf 10e6 a0d5 6c37 5010 .].P.;......l7P.
> 48: fd86 1edf 0000 0000 0000 0000 ............
>
> exchange -> squid HTTP HTTP/1.1 200 OK
>
> 0: 0800 20d2 0a45 000e d797 78ff 0800 4500 .. ..E....x...E.
> 16: 00f7 cc9b 4000 7e06 fa44 96cf 0425 96cf ....@.~.úD...%..
> 32: 035d 0050 b33b 8ccf 10e6 a0d5 6c37 5018 .].P.;......l7P.
> 48: fd86 1541 0000 4854 5450 2f31 2e31 2032 ...A..HTTP/1.1 2
> 64: 3030 204f 4b0d 0a43 6f6e 6e65 6374 696f 00 OK..Connectio
> 80: 6e3a 206b 6565 702d 616c 6976 650d 0a44 n: keep-alive..D
> 96: 6174 653a 2054 6875 2c20 3232 2046 6562 ate: Thu, 22 Feb
> 112: 2032 3030 3720 3035 3a35 323a 3336 2047 2007 05:52:36 G
> 128: 4d54 0d0a 5365 7276 6572 3a20 4d69 6372 MT..Server: Micr
> 144: 6f73 6f66 742d 4949 532f 362e 300d 0a58 osoft-IIS/6.0..X
> 160: 2d50 6f77 6572 6564 2d42 793a 2041 5350 -Powered-By: ASP
> 176: 2e4e 4554 0d0a 436f 6e74 656e 742d 7479 .NET..Content-ty
> 192: 7065 3a20 7465 7874 2f78 6d6c 0d0a 5472 pe: text/xml..Tr
> 208: 616e 7366 6572 2d45 6e63 6f64 696e 673a ansfer-Encoding:
> 224: 2063 6875 6e6b 6564 0d0a 4361 6368 652d chunked..Cache-
> 240: 436f 6e74 726f 6c3a 206e 6f2d 6361 6368 Control: no-cach
> 256: 650d 0a0d 0a e....
> squid -> exchange HTTP C port=45883
>
> 0: 0000 0c07 ac03 0800 20d2 0a45 0800 4500 ........ ..E..E.
> 16: 0028 4a26 4000 4006 bb89 96cf 035d 96cf .(J&@.@......]..
> 32: 0425 b33b 0050 a0d5 6c37 8ccf 11b5 5010 .%.;.P..l7....P.
> 48: c119 5a7d 0000 ..Z}..
>
> exchange -> squid HTTP (body)
>
> 0: 0800 20d2 0a45 000e d797 78ff 0800 4500 .. ..E....x...E.
> 16: 01f4 cc9d 4000 7e06 f945 96cf 0425 96cf ....@.~.ùE...%..
> 32: 035d 0050 b33b 8ccf 11b5 a0d5 6c37 5018 .].P.;......l7P.
> 48: fd86 d6e2 0000 3163 300d 0a3c 7370 656c ......1c0..<spel
> 64: 6c63 6865 636b 7265 7375 6c74 733e 3c66 lcheckresults><f
> 80: 6c61 6767 6564 776f 7264 733e 3c66 773e laggedwords><fw>
> 96: 3c77 6f72 643e 7465 7361 7461 3c2f 776f <word>tesata</wo
> 128: 576f 7264 3c2f 7479 7065 3e3c 6f66 6673 Word</type><offs
> 144: 6574 3e30 3c2f 6f66 6673 6574 3e3c 2f66 et>0</offset></f
> 160: 773e 3c66 773e 3c77 6f72 643e 7465 7261 w><fw><word>tera
> 176: 7461 743c 2f77 6f72 643e 3c74 7970 653e tat</word><type>
> 192: 556e 6b6e 6f77 6e57 6f72 643c 2f74 7970 UnknownWord</typ
> 208: 653e 3c6f 6666 7365 743e 373c 2f6f 6666 e><offset>7</off
> 224: 7365 743e 3c2f 6677 3e3c 2f66 6c61 6767 set></fw></flagg
> 240: 6564 776f 7264 733e 3c73 7567 6765 7374 edwords><suggest
> 256: 696f 6e73 3e3c 736c 3e3c 776f 7264 3e74 ions><sl><word>t
> 272: 6572 6174 6174 3c2f 776f 7264 3e3c 7375 eratat</word><su
> 288: 673e 7465 7261 7461 3c2f 7375 673e 3c73 g>terata</sug><s
> 304: 7567 3e74 6172 6174 613c 2f73 7567 3e3c ug>tarata</sug><
> 320: 7375 673e 7465 7261 7761 7474 3c2f 7375 sug>terawatt</su
> 336: 673e 3c2f 736c 3e3c 736c 3e3c 776f 7264 g></sl><sl><word
> 352: 3e74 6573 6174 613c 2f77 6f72 643e 3c73 >tesata</word><s
> 368: 7567 3e74 6573 7461 7461 3c2f 7375 673e ug>testata</sug>
> 384: 3c73 7567 3e74 6573 7461 3c2f 7375 673e <sug>testa</sug>
> 400: 3c73 7567 3e74 6572 6174 613c 2f73 7567 <sug>terata</sug
> 416: 3e3c 7375 673e 7465 7374 6165 3c2f 7375 ><sug>testae</su
> 432: 673e 3c73 7567 3e74 6573 7461 7465 3c2f g><sug>testate</
> 448: 7375 673e 3c73 7567 3e74 6573 7465 3c2f sug><sug>teste</
> 464: 7375 673e 3c2f 736c 3e3c 2f73 7567 6765 sug></sl></sugge
> 480: 7374 696f 6e73 3e3c 2f73 7065 6c6c 6368 stions></spellch
> 496: 6563 6b72 6573 756c 7473 3e0d 0a30 0d0a eckresults>..0..
> 512: 0d0a ..
>
> squid -> exchange HTTP C port=45883
>
> 0: 0000 0c07 ac03 0800 20d2 0a45 0800 4500 ........ ..E..E.
> 16: 0028 4a27 4000 4006 bb88 96cf 035d 96cf .(J'@.@......]..
> 32: 0425 b33b 0050 a0d5 6c37 8ccf 1381 5010 .%.;.P..l7....P.
>
>
> --
> Brett Lymn

-- 
- Xenion - http://www.xenion.com.au/ - VPS Hosting - Commercial Squid Support -
- $25/pm entry-level bandwidth-capped VPSes available in WA -
Received on Wed Feb 21 2007 - 23:37:02 MST

This archive was generated by hypermail pre-2.1.9 : Thu Mar 01 2007 - 12:00:01 MST