*
*/
+#include <config.h>
+
#define STRSAFE_NO_DEPRECATE
#include "dbus-sysdeps.h"
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)
{
}
/**
- * Log an informative message. Intended for use primarily by
- * the system bus.
+ * Log a message to the system log file (e.g. syslog on Unix).
*
+ * @param severity a severity value
* @param msg a printf-style format string
* @param args arguments for the format string
+ *
*/
void
-_dbus_log_info (const char *msg, va_list args)
+_dbus_system_log (DBusSystemLogSeverity severity, const char *msg, ...)
{
- // FIXME!
+ va_list args;
+
+ va_start (args, msg);
+
+ _dbus_system_logv (severity, msg, args);
+
+ va_end (args);
}
/**
- * Log a security-related message. Intended for use primarily by
- * the system bus.
+ * Log a message to the system log file (e.g. syslog on Unix).
*
+ * @param severity a severity value
* @param msg a printf-style format string
* @param args arguments for the format string
+ *
+ * If the FATAL severity is given, this function will terminate the program
+ * with an error code.
*/
void
-_dbus_log_security (const char *msg, va_list args)
+_dbus_system_logv (DBusSystemLogSeverity severity, const char *msg, va_list args)
{
// FIXME!
}
_dbus_unix_user_is_at_console (dbus_uid_t uid,
DBusError *error)
{
+ dbus_set_error (error, DBUS_ERROR_NOT_SUPPORTED,
+ "UNIX user IDs not supported on Windows\n");
return FALSE;
}