Index: securesite.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/securesite/securesite.inc,v
retrieving revision 1.30.2.13
diff -u -p -r1.30.2.13 securesite.inc
--- securesite.inc	9 Mar 2009 14:48:27 -0000	1.30.2.13
+++ securesite.inc	11 Nov 2009 16:44:43 -0000
@@ -11,14 +11,21 @@
  */
 function _securesite_boot($type) {
   global $user;
+  if (!empty($_SERVER['HTTP_AUTHORIZATION'])) {
+      $authorization = substr($_SERVER['HTTP_AUTHORIZATION'], 6);
+  }
   switch ($type) {
     case SECURESITE_DIGEST:
+      $_SERVER['PHP_AUTH_DIGEST'] = isset($authorization) ? $authorization : '';
       $edit = _securesite_parse_directives($_SERVER['PHP_AUTH_DIGEST']);
       $edit['name'] = $edit['username'];
       $edit['pass'] = NULL;
       $function = '_securesite_digest_auth';
       break;
     case SECURESITE_BASIC:
+      list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = 
+        isset($authorization) ? explode(':', base64_decode($authorization), 2) : '';
+      
       $edit['name'] = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : '';
       $edit['pass'] = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
       $function = '_securesite_plain_auth';
@@ -187,8 +203,6 @@ function _securesite_user_login($edit, $
     user_authenticate_finalize($edit);
     // Clear the guest session.
     unset($_SESSION['securesite_guest']);
-    // Mark the session so Secure Site will be triggered on log-out.
-    $_SESSION['securesite_login'] = TRUE;
     // Prevent a log-in/log-out loop by redirecting off the log-out page.
     if ($_GET['q'] == 'logout') {
       drupal_goto();
@@ -211,7 +225,6 @@ function _securesite_guest_login($edit) 
     unset($_SESSION['securesite_denied']);
     // Mark this session to prevent re-login (note: guests can't log out).
     $_SESSION['securesite_guest'] = $edit['name'];
-    $_SESSION['securesite_login'] = TRUE;
     // Prevent a 403 error by redirecting off the logout page.
     if ($_GET['q'] == 'logout') {
       drupal_goto();
Index: securesite.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/securesite/securesite.module,v
retrieving revision 1.43.2.12
diff -u -p -r1.43.2.12 securesite.module
--- securesite.module	15 Jul 2009 18:17:32 -0000	1.43.2.12
+++ securesite.module	11 Nov 2009 16:44:43 -0000
@@ -214,7 +214,7 @@ function securesite_user($op, &$edit, &$
       break;
     case 'logout':
       $types = variable_get('securesite_type', array(SECURESITE_BASIC));
-      if ((in_array(SECURESITE_BASIC, $types) || in_array(SECURESITE_DIGEST, $types)) && !empty($_SESSION['securesite_login'])) {
+      if (in_array(SECURESITE_BASIC, $types) || in_array(SECURESITE_DIGEST, $types)) {
         module_load_include('inc', 'securesite');
         // Load the anonymous user.
         $user = drupal_anonymous_user();
@@ -226,7 +226,7 @@ function securesite_user($op, &$edit, &$
           session_set_save_handler('sess_open', 'sess_close', 'sess_read', 'sess_write', 'sess_destroy_sid', 'sess_gc');
           session_start();
           $_SESSION['securesite_repeat'] = TRUE;
-        }
+        }        
         // Clear stored credentials.
         _securesite_dialog(array_pop($types));
       }
