- pull up ck-xinit-session changes for #502258 from from F11 branch
This commit is contained in:
parent
2ded5f684f
commit
90cfdacff2
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright Red Hat, Inc. 2007.
|
* Copyright Red Hat, Inc. 2007,2009.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -40,16 +40,72 @@
|
|||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <paths.h>
|
#include <paths.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <ck-connector.h>
|
#include <ck-connector.h>
|
||||||
|
#include <dbus/dbus.h>
|
||||||
|
|
||||||
|
static void
|
||||||
|
setbusenv(const char *var, const char *val)
|
||||||
|
{
|
||||||
|
DBusConnection *conn;
|
||||||
|
DBusMessage *req, *rep;
|
||||||
|
DBusMessageIter iter, sub, subsub;
|
||||||
|
DBusError error;
|
||||||
|
|
||||||
|
dbus_error_init (&error);
|
||||||
|
|
||||||
|
conn = dbus_bus_get(DBUS_BUS_SESSION, &error);
|
||||||
|
if (conn == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
req = dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL);
|
||||||
|
if (req == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
memset(&iter, 0, sizeof(iter));
|
||||||
|
memset(&sub, 0, sizeof(sub));
|
||||||
|
memset(&subsub, 0, sizeof(subsub));
|
||||||
|
dbus_message_iter_init_append(req, &iter);
|
||||||
|
if (!dbus_message_set_destination(req, DBUS_SERVICE_DBUS) ||
|
||||||
|
!dbus_message_set_path(req, DBUS_PATH_DBUS) ||
|
||||||
|
!dbus_message_set_interface(req, DBUS_INTERFACE_DBUS) ||
|
||||||
|
!dbus_message_set_member(req, "UpdateActivationEnvironment") ||
|
||||||
|
!dbus_message_iter_open_container(&iter,
|
||||||
|
DBUS_TYPE_ARRAY,
|
||||||
|
DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING
|
||||||
|
DBUS_TYPE_STRING_AS_STRING
|
||||||
|
DBUS_TYPE_STRING_AS_STRING
|
||||||
|
DBUS_DICT_ENTRY_END_CHAR_AS_STRING,
|
||||||
|
&sub) ||
|
||||||
|
!dbus_message_iter_open_container(&sub,
|
||||||
|
DBUS_TYPE_DICT_ENTRY,
|
||||||
|
NULL,
|
||||||
|
&subsub) ||
|
||||||
|
!dbus_message_iter_append_basic(&subsub, DBUS_TYPE_STRING, &var) ||
|
||||||
|
!dbus_message_iter_append_basic(&subsub, DBUS_TYPE_STRING, &val) ||
|
||||||
|
!dbus_message_iter_close_container(&sub, &subsub) ||
|
||||||
|
!dbus_message_iter_close_container(&iter, &sub)) {
|
||||||
|
dbus_message_unref(req);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
rep = dbus_connection_send_with_reply_and_block(conn, req,
|
||||||
|
30000, &error);
|
||||||
|
dbus_message_unref(req);
|
||||||
|
if (rep) {
|
||||||
|
dbus_message_unref(rep);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
CkConnector *ckc = NULL;
|
CkConnector *ckc = NULL;
|
||||||
DBusError error;
|
DBusError error;
|
||||||
const char *shell;
|
const char *shell, *cookie;
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
@ -63,8 +119,9 @@ main(int argc, char **argv)
|
|||||||
syslog(LOG_ERR, "error forking child");
|
syslog(LOG_ERR, "error forking child");
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
setenv("XDG_SESSION_COOKIE",
|
cookie = ck_connector_get_cookie(ckc);
|
||||||
ck_connector_get_cookie(ckc), 1);
|
setenv("XDG_SESSION_COOKIE", cookie, 1);
|
||||||
|
setbusenv("XDG_SESSION_COOKIE", cookie);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
waitpid(pid, &status, 0);
|
waitpid(pid, &status, 0);
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Summary: X.Org X11 X Window System xinit startup scripts
|
Summary: X.Org X11 X Window System xinit startup scripts
|
||||||
Name: xorg-x11-%{pkgname}
|
Name: xorg-x11-%{pkgname}
|
||||||
Version: 1.0.9
|
Version: 1.0.9
|
||||||
Release: 10%{?dist}
|
Release: 11%{?dist}
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: User Interface/X
|
Group: User Interface/X
|
||||||
URL: http://www.x.org
|
URL: http://www.x.org
|
||||||
@ -131,6 +131,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_datadir}/xsessions/xinit-compat.desktop
|
%{_datadir}/xsessions/xinit-compat.desktop
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jun 17 2009 Nalin Dahyabhai <nalin@redhat.com> - 1.0.9-11
|
||||||
|
- pull up ck-xinit-session changes for #502258 from from F11 branch
|
||||||
|
|
||||||
* Sun Jun 14 2009 Matthias Clasen <mclasen@redhat.com> - 1.0.9-10
|
* Sun Jun 14 2009 Matthias Clasen <mclasen@redhat.com> - 1.0.9-10
|
||||||
- Don't own /etc/X11, since its already owned by filesystem
|
- Don't own /etc/X11, since its already owned by filesystem
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user