You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.0 KiB
67 lines
2.0 KiB
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;
|