ntlm-test-helper: fix
authorDan Winship <danw@gnome.org>
Sun, 30 Dec 2012 23:12:59 +0000 (18:12 -0500)
committerDan Winship <danw@gnome.org>
Wed, 2 Jan 2013 20:33:00 +0000 (15:33 -0500)
We need to set SOUP_NTLM_AUTH_DEBUG to an empty string (to tell
SoupAuthNTLM to always use built-in NTLM), not leave it unset, which
will let SoupAuthNTLM use the real ntlm_auth binary.

(The effect of this bug was that instead of always using built-in
NTLM, ntlm-test-helper would first try to use ntlm_auth, and fail
because there were no cached credentials, and then fall back to
built-in NTLM, which meant that we were testing the fallback codepath
even in the supposed-to-be-non-fallback case. Unless your username was
"alice" or "bob" and you had a working winbind configuration, in which
case the tests would just fail.)

Also, fix up ntlm-test a bit, so that if ntlm-test-helper for some
reason tries to authenticate as someone other than alice or bob, it
recognizes this, rather than considering everyone who isn't alice to
be bob.

tests/ntlm-test-helper.c
tests/ntlm-test.c

index 60dd049..f2450ca 100644 (file)
@@ -39,7 +39,7 @@ main (int argc, char **argv)
        SoupAuth *auth;
 
        /* Don't recurse */
-       g_unsetenv ("SOUP_NTLM_AUTH_DEBUG");
+       g_setenv ("SOUP_NTLM_AUTH_DEBUG", "", TRUE);
 
        setlocale (LC_ALL, "");
 
index ce08f99..e2dc23a 100644 (file)
@@ -28,7 +28,7 @@ static const char *state_name[] = {
 
 #define NTLM_CHALLENGE "TlRMTVNTUAACAAAADAAMADAAAAABAoEAASNFZ4mrze8AAAAAAAAAAGIAYgA8AAAARABPAE0AQQBJAE4AAgAMAEQATwBNAEEASQBOAAEADABTAEUAUgBWAEUAUgAEABQAZABvAG0AYQBpAG4ALgBjAG8AbQADACIAcwBlAHIAdgBlAHIALgBkAG8AbQBhAGkAbgAuAGMAbwBtAAAAAAA="
 
-#define NTLM_RESPONSE_USER(response) ((response)[86] == 'E' ? NTLM_AUTHENTICATED_ALICE : NTLM_AUTHENTICATED_BOB)
+#define NTLM_RESPONSE_USER(response) ((response)[86] == 'E' ? NTLM_AUTHENTICATED_ALICE : ((response)[86] == 'I' ? NTLM_AUTHENTICATED_BOB : NTLM_UNAUTHENTICATED))
 
 static void
 clear_state (gpointer connections, GObject *ex_connection)