A quick perusal didn't find anything "wrong", but you can remove some code:
You don't need (and shouldn't have) the nsIHttpAuthenticator.idl in your source tree. Necko already contains and exports that file.
Hm, I cannot find it in Mozilla or Gecko SDK distributions (v. 1.4). Should it be there?
You don't need the registrationproc and unregistrationproc hooks... they are optional in the modulecomponentinfo, and you can just set them to null.
I don't think you need the CLASSINFO stuff. The necko implementations of nsIHttpAuthenticator don't use CI, and it doesn't look like anyone uses it in a scriptable context.
I did what you suggested (and updated the archive at http://negotiateauth.mozdev.org/negoauth.tar.gz) but with no success. Here is what I'm doing:
cd /tmp
wget \ http://ftp.mozilla.org/pub/mozilla/releases/mozilla1.4/gecko-sdk-i686-pc-linux-gnu-1.4.tar.gz
wget \ http://ftp.mozilla.org/pub/mozilla/releases/mozilla1.4/mozilla-i686-pc-linux-gnu-1.4.tar.gz
wget \
http://negotiateauth.mozdev.org/negoauth.tar.gz
tar xzf gecko-sdk-i686-pc-linux-gnu-1.4.tar.gz tar xzf mozilla-i686-pc-linux-gnu-1.4.tar.gz tar xzf negoauth.tar.gz cd mozilla-1.4/xpcom/sample/negoauth make -f Makefile.gecko cp libhttpgssapiauth.so /tmp/mozilla/components cd /tmp/mozilla ./run-mozilla.sh ./regxpcom
I believe this should work, but obviously doesn't:
./run-mozilla.sh ./xpcshell
js> const Neg=new Components.Constructor("@mozilla.org/network/http-authenticator;1?scheme=negotiate", "nsIHttpAuthenticator");
uncaught exception: [Exception... "Invalid ClassID or ContractID" nsresult: "0x80570017 (NS_ERROR_XPC_BAD_CID)" location: "JS frame :: typein :: <TOP_LEVEL> :: line 1" data: no]
I'm not sure if the .so library is correctly built, is it possible that it must be created by using some special options for compiler and/or linker? Or is there anything else I could try?
Thank you very much for your patience,
-- Dan
