summaryrefslogtreecommitdiffstats
path: root/opensuse/tdelibs/disable-samba-dialog-without-smb.diff
diff options
context:
space:
mode:
authorRobert Xu <robxu9@gmail.com>2011-08-13 12:58:51 -0400
committerRobert Xu <robxu9@gmail.com>2011-08-13 12:58:51 -0400
commit46130378aea5fff80803409c2573e2ea31472cb9 (patch)
treecb5da908105e6577da7676f84ba9c7fbaba4fb52 /opensuse/tdelibs/disable-samba-dialog-without-smb.diff
parent53f2819f9af035a38ca08df1ede9e6cd24aa79ef (diff)
downloadtde-packaging-46130378aea5fff80803409c2573e2ea31472cb9.tar.gz
tde-packaging-46130378aea5fff80803409c2573e2ea31472cb9.zip
add dbus-1-tqt and libdbus-1-tqt-0; add unmodified tdelibs from kdelibs3
Diffstat (limited to 'opensuse/tdelibs/disable-samba-dialog-without-smb.diff')
-rw-r--r--opensuse/tdelibs/disable-samba-dialog-without-smb.diff66
1 files changed, 66 insertions, 0 deletions
diff --git a/opensuse/tdelibs/disable-samba-dialog-without-smb.diff b/opensuse/tdelibs/disable-samba-dialog-without-smb.diff
new file mode 100644
index 000000000..cd0c29927
--- /dev/null
+++ b/opensuse/tdelibs/disable-samba-dialog-without-smb.diff
@@ -0,0 +1,66 @@
+Index: kio/kio/kfileshare.cpp
+===================================================================
+--- kio/kio/kfileshare.cpp.orig
++++ kio/kio/kfileshare.cpp
+@@ -291,4 +291,24 @@ bool KFileShare::setShared( const QStrin
+ return ok;
+ }
+
++bool KFileShare::sambaActive()
++{
++ // rcsmb is not executable by users, try ourselves
++ int status = system( "/sbin/checkproc -p /var/run/samba/smbd.pid /usr/sbin/smbd" );
++ return status != -1 && WIFEXITED( status ) && WEXITSTATUS( status ) == 0;
++}
++
++bool KFileShare::nfsActive()
++{
++ // rcnfsserver is not executable by users, try ourselves
++ int status = system( "/sbin/checkproc /usr/sbin/rpc.mountd" );
++ if( status != -1 && WIFEXITED( status ) && WEXITSTATUS( status ) == 0 )
++ {
++ status = system( "/sbin/checkproc -n nfsd" );
++ if( status != -1 && WIFEXITED( status ) && WEXITSTATUS( status ) == 0 )
++ return true;
++ }
++ return false;
++}
++
+ #include "kfileshare.moc"
+Index: kio/kio/kfileshare.h
+===================================================================
+--- kio/kio/kfileshare.h.orig
++++ kio/kio/kfileshare.h
+@@ -131,6 +131,18 @@ public:
+ * Returns whether NFS is enabled
+ */
+ static bool nfsEnabled();
++
++ /**
++ * Returns whether Samba is active (service is running)
++ * @internal
++ */
++ static bool sambaActive();
++
++ /**
++ * Returns whether NFS is active (service is running)
++ * @internal
++ */
++ static bool nfsActive();
+
+ private:
+ static Authorization s_authorization;
+Index: kio/kfile/kfilesharedlg.cpp
+===================================================================
+--- kio/kfile/kfilesharedlg.cpp.orig
++++ kio/kfile/kfilesharedlg.cpp
+@@ -167,6 +167,9 @@ void KFileSharePropsPlugin::init()
+ vbox->addWidget( m_pbConfig, 0, Qt::AlignHCenter );
+
+ vbox->addStretch( 10 );
++
++ if( !KFileShare::sambaActive() && !KFileShare::nfsActive())
++ m_widget->setEnabled( false );
+ }
+ }
+ break;