diff options
author | Robert Xu <robxu9@gmail.com> | 2012-03-31 14:28:06 -0400 |
---|---|---|
committer | Robert Xu <robxu9@gmail.com> | 2012-03-31 14:28:06 -0400 |
commit | 59dd46ef985a719579132efa6a9aa49bfeeae112 (patch) | |
tree | 93d8c721ff263e67aaf59e364496862872ded8fb /opensuse/core/tdelibs.old/disable-samba-dialog-without-smb.diff | |
parent | c141f0bc29b6e2eeda5ca08a043d26546a1427f9 (diff) | |
download | tde-packaging-59dd46ef985a719579132efa6a9aa49bfeeae112.tar.gz tde-packaging-59dd46ef985a719579132efa6a9aa49bfeeae112.zip |
better late than never, hm...
Diffstat (limited to 'opensuse/core/tdelibs.old/disable-samba-dialog-without-smb.diff')
-rw-r--r-- | opensuse/core/tdelibs.old/disable-samba-dialog-without-smb.diff | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/opensuse/core/tdelibs.old/disable-samba-dialog-without-smb.diff b/opensuse/core/tdelibs.old/disable-samba-dialog-without-smb.diff new file mode 100644 index 000000000..cd0c29927 --- /dev/null +++ b/opensuse/core/tdelibs.old/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; |