return TRUE;
}
-/** Checks if user is at the console
-*
-* @param username user to check
-* @param error return location for errors
-* @returns #TRUE is the user is at the consolei and there are no errors
-*/
-dbus_bool_t
-_dbus_user_at_console(const char *username,
- DBusError *error)
-{
-#ifdef DBUS_WINCE
- return TRUE;
-#else
- dbus_bool_t retval = FALSE;
- wchar_t *wusername;
- DWORD sid_length;
- PSID user_sid, console_user_sid;
- HWINSTA winsta;
-
- wusername = _dbus_win_utf8_to_utf16 (username, error);
- if (!wusername)
- return FALSE;
-
- // TODO remove
- if (!_dbus_win_account_to_sid (wusername, &user_sid, error))
- goto out0;
-
- /* Now we have the SID for username. Get the SID of the
- * user at the "console" (window station WinSta0)
- */
- if (!(winsta = OpenWindowStation ("WinSta0", FALSE, READ_CONTROL)))
- {
- _dbus_win_set_error_from_win_error (error, GetLastError ());
- goto out2;
- }
-
- sid_length = 0;
- GetUserObjectInformation (winsta, UOI_USER_SID,
- NULL, 0, &sid_length);
- if (sid_length == 0)
- {
- /* Nobody is logged on */
- goto out2;
- }
-
- if (sid_length < 0 || sid_length > 1000)
- {
- dbus_set_error_const (error, DBUS_ERROR_FAILED, "Invalid SID length");
- goto out3;
- }
-
- console_user_sid = dbus_malloc (sid_length);
- if (!console_user_sid)
- {
- _DBUS_SET_OOM (error);
- goto out3;
- }
-
- if (!GetUserObjectInformation (winsta, UOI_USER_SID,
- console_user_sid, sid_length, &sid_length))
- {
- _dbus_win_set_error_from_win_error (error, GetLastError ());
- goto out4;
- }
-
- if (!IsValidSid (console_user_sid))
- {
- dbus_set_error_const (error, DBUS_ERROR_FAILED, "Invalid SID");
- goto out4;
- }
-
- retval = EqualSid (user_sid, console_user_sid);
-
-out4:
- dbus_free (console_user_sid);
-out3:
- CloseWindowStation (winsta);
-out2:
- dbus_free (user_sid);
-out0:
- dbus_free (wusername);
-
- return retval;
-#endif //DBUS_WINCE
-}
-
void
_dbus_init_system_log (void)
{