? sites/all/modules/devel
? sites/default/files
? sites/default/private
? sites/default/settings.php
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.1089
diff -u -p -r1.1089 user.module
--- modules/user/user.module	7 Dec 2009 03:45:16 -0000	1.1089
+++ modules/user/user.module	10 Dec 2009 04:38:39 -0000
@@ -1770,17 +1770,18 @@ function user_login($form, &$form_state)
  * table. If a distributed authentication module is successful, it
  * should set $form_state['uid'] to a user ID.
  *
- * We use three validators instead of one since external authentication
- * modules usually only need to alter the second validator.
+ * We use four validators instead of one since external authentication
+ * modules usually only need to alter the third validator.
  *
  * @see user_login_name_validate()
+ * @see user_login_cookie_validate()
  * @see user_login_authenticate_validate()
  * @see user_login_final_validate()
  * @return array
  *   A simple list of validate functions.
  */
 function user_login_default_validators() {
-  return array('user_login_name_validate', 'user_login_authenticate_validate', 'user_login_final_validate');
+  return array('user_login_name_validate', 'user_login_cookie_validate', 'user_login_authenticate_validate', 'user_login_final_validate');
 }
 
 /**
@@ -1794,6 +1795,16 @@ function user_login_name_validate($form,
 }
 
 /**
+ * A FAPI validate handler. Sets an error if cookies are not supported.
+ */
+function user_login_cookie_validate($form, &$form_state) {
+  if (!$_COOKIE) {
+    $domain = ini_get('session.cookie_domain') ? ltrim(ini_get('session.cookie_domain'), '.') : $_SERVER['HTTP_HOST'];
+    form_set_error('', t('It seems your browser does not accept cookies. To log into this site, you need to accept cookies from the domain %domain.', array('%domain' => $domain)));
+  }
+}
+
+/**
  * A validate handler on the login form. Check supplied username/password
  * against local users table. If successful, $form_state['uid']
  * is set to the matching user ID.
@@ -1920,6 +1931,7 @@ function user_authenticate($name, $passw
  */
 function user_login_finalize(&$edit = array()) {
   global $user;
+  
   watchdog('user', 'Session opened for %name.', array('%name' => $user->name));
   // Update the user table timestamp noting user has logged in.
   // This is also used to invalidate one-time login links.
@@ -1944,6 +1956,7 @@ function user_login_finalize(&$edit = ar
  */
 function user_login_submit($form, &$form_state) {
   global $user;
+  
   $user = user_load($form_state['uid']);
   user_login_finalize();
 
