summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-base/kdebase/files/ksmserver-3.5.8-gdm_interop_197133.patch')
-rw-r--r--kde-base/kdebase/files/ksmserver-3.5.8-gdm_interop_197133.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/kde-base/kdebase/files/ksmserver-3.5.8-gdm_interop_197133.patch b/kde-base/kdebase/files/ksmserver-3.5.8-gdm_interop_197133.patch
new file mode 100644
index 000000000000..5fdc9af1a2e0
--- /dev/null
+++ b/kde-base/kdebase/files/ksmserver-3.5.8-gdm_interop_197133.patch
@@ -0,0 +1,41 @@
+--- branches/KDE/3.5/kdebase/kdmlib/dmctl.cpp 2006/10/31 11:38:26 600659
++++ branches/KDE/3.5/kdebase/kdmlib/dmctl.cpp 2007/11/01 22:10:25 731815
+@@ -65,21 +65,28 @@
+ if ((fd = ::socket( PF_UNIX, SOCK_STREAM, 0 )) < 0)
+ return;
+ sa.sun_family = AF_UNIX;
+- if (DMType == GDM)
+- strcpy( sa.sun_path, "/tmp/.gdm_socket" );
+- else {
++ if (DMType == GDM) {
++ strcpy( sa.sun_path, "/var/run/gdm_socket" );
++ if (::connect( fd, (struct sockaddr *)&sa, sizeof(sa) )) {
++ strcpy( sa.sun_path, "/tmp/.gdm_socket" );
++ if (::connect( fd, (struct sockaddr *)&sa, sizeof(sa) )) {
++ ::close( fd );
++ fd = -1;
++ break;
++ }
++ }
++ GDMAuthenticate();
++ } else {
+ if ((ptr = strchr( dpy, ':' )))
+ ptr = strchr( ptr, '.' );
+ snprintf( sa.sun_path, sizeof(sa.sun_path),
+ "%s/dmctl-%.*s/socket",
+- ctl, ptr ? ptr - dpy : 512, dpy );
+- }
+- if (::connect( fd, (struct sockaddr *)&sa, sizeof(sa) )) {
+- ::close( fd );
+- fd = -1;
++ ctl, ptr ? int(ptr - dpy) : 512, dpy );
++ if (::connect( fd, (struct sockaddr *)&sa, sizeof(sa) )) {
++ ::close( fd );
++ fd = -1;
++ }
+ }
+- if (DMType == GDM)
+- GDMAuthenticate();
+ break;
+ case OldKDM:
+ {