diff options
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.patch | 41 |
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: + { |