I had to do some tricks to get ntlm auth to work on solaris. Here are the things:
- to compile: I had to replace all occurences of u_int16_t and u_int3_t by their solaris equivalents uint16_t and uint32_t (this is a known issue for these types). Maybe a small something like this when solaris is detected should do the trick as well:
typedef uint16_t u_int16_t;
typedef uint32_t u_int32_t;
- to use: the ntlm plugin didn't capture my ntlm usernames passed to squid. The reason seems to be in the fact that apparently UTF-16LE to UTF8 comparison needs to happen (don't ask me why), but it doesn't ...
So, to force the conversion, I removed the check
int f = WSWAP(a->flags);
if (f & WSWAP(0x0001)) {
in src/authplugins/ntlm.cpp (and the else part as well of course), and now my usernames are correctly captured.
Franky