diff options
Diffstat (limited to 'opensuse/tdebase/ksysguardd-openslp.diff')
-rw-r--r-- | opensuse/tdebase/ksysguardd-openslp.diff | 288 |
1 files changed, 0 insertions, 288 deletions
diff --git a/opensuse/tdebase/ksysguardd-openslp.diff b/opensuse/tdebase/ksysguardd-openslp.diff deleted file mode 100644 index 4cb0e3795..000000000 --- a/opensuse/tdebase/ksysguardd-openslp.diff +++ /dev/null @@ -1,288 +0,0 @@ ---- ksysguard/configure.in.in -+++ ksysguard/configure.in.in -@@ -45,5 +45,34 @@ - AC_SUBST(LIBHOSTS) - AC_SUBST(LIBSENSORS) - -+# check for SLP -+dnl define the configure option that disables slp -+AC_ARG_ENABLE(slp, [ --disable-slp don't require libslp (ksysguard do not find daemons) ], with_slp=$enableval, with_slp=yes) -+if test "$with_slp" = "yes"; then -+AC_MSG_CHECKING(for SLP support) -+save_slptest_LIBS="$LIBS" -+save_slptest_LDFLAGS="$LDFLAGS" -+save_slptest_CPPFLAGS="$CPPFLAGS" -+LDFLAGS="$all_libraries $LDFLAGS" -+CPPFLAGS="$CPPFLAGS $all_includes" -+LIBS="-lslp" -+AC_TRY_LINK( [ -+ #include <slp.h> -+ ],[ -+ SLPOpen(0, SLP_FALSE, (SLPHandle*) 0); -+ ],[ -+ AC_DEFINE(HAVE_SLP,1,[Define if SLP is available]) -+ LIB_SLP="-lslp" -+ AC_MSG_RESULT(yes) -+ ],[ -+ AC_MSG_RESULT(no) -+ LIB_SLP="" -+]) -+CPPFLAGS=$save_slptest_CPPFLAGS -+LDFLAGS=$save_slptest_LDFLAGS -+LIBS=$save_slptest_LIBS -+fi -+AC_SUBST(LIB_SLP) -+ - dnl Check for dell laptop support - AM_CONDITIONAL(supports_i8k, test -f /proc/i8k) ---- ksysguard/example/ksysguarddrc -+++ ksysguard/example/ksysguarddrc -@@ -1,5 +1,8 @@ - # /etc/ksysguardd.conf - -+# refresh SLP registration -+SLPrefresh=1800 -+ - # LogFiles: the list of all available logfiles - LogFiles=messages:/var/log/messages,kern:/var/log/kern.log,daemon:/var/log/daemon.log - ---- ksysguard/gui/Makefile.am -+++ ksysguard/gui/Makefile.am -@@ -31,7 +31,7 @@ - ksysguard_LDADD = \ - ksgrd/libksgrd.la \ - SensorDisplayLib/libsensordisplays.la \ -- $(LIB_KDEUI) $(LIB_KIO) $(LIB_KDNSSD) -+ $(LIB_KDEUI) $(LIB_KIO) $(LIB_KDNSSD) $(LIB_SLP) - ksysguard_LDFLAGS = $(all_libraries) $(KDE_RPATH) - - kpm_SOURCES = kpm.c ---- ksysguard/gui/ksysguard.cc -+++ ksysguard/gui/ksysguard.cc -@@ -34,6 +34,8 @@ - #include <stdlib.h> - #include <unistd.h> - -+#include <qregexp.h> -+ - #include <kaboutdata.h> - #include <kaction.h> - #include <kapplication.h> -@@ -280,6 +282,46 @@ - mSplitter->setSizes( sizes ); - } - -+#if HAVE_SLP -+ -+SLPBoolean MySLPSrvURLCallback( SLPHandle phslp, -+ const char* srvurl, -+ unsigned short lifetime, -+ SLPError errcode, -+ void* cookie ) -+{ -+ QRegExp r("^service:ksysguardd.kde://(\\w+):(.*)$"); -+ -+ if ( r.search(srvurl) >= 0 ){ -+ QString host( r.cap(1) ); -+ int port = r.cap(2).toInt() ; -+ -+ if ( !host.isEmpty() && port > 0 ) -+ KSGRD::SensorMgr->engage( host, "", "", port ); -+ }; -+ return SLP_TRUE; -+} -+ -+void TopLevel::rescanSLP( bool enableErrorPopup ) -+{ -+ SLPHandle phslp; -+ SLPError result; -+ result = SLPOpen( NULL, SLP_FALSE, &phslp); -+ if (result != SLP_OK) -+ qWarning( "SLPOpen failed" ); // TODO: KMessagebox -+ else { -+ result = SLPFindSrvs( phslp, -+ "service:ksysguardd.kde", -+ "", // TODO: Scope selector -+ "", // all services -+ MySLPSrvURLCallback, -+ this ); -+ if (result != SLP_OK) -+ qWarning( "unable to register SLP service" ); // TODO: KMessageBox -+ } -+} -+#endif -+ - void TopLevel::initStatusBar() - { - KSGRD::SensorMgr->engage( "localhost", "", "ksysguardd" ); -@@ -363,6 +405,10 @@ - KSGRD::SensorMgr->sendRequest( "localhost", "mem/swap/used", - (KSGRD::SensorClient*)this, 4 ); - } -+ -+#if HAVE_SLP -+ rescanSLP(); -+#endif - } - - bool TopLevel::queryClose() ---- ksysguard/gui/ksysguard.h -+++ ksysguard/gui/ksysguard.h -@@ -24,6 +24,8 @@ - #ifndef KSG_KSYSGUARD_H - #define KSG_KSYSGUARD_H - -+#include <config.h> -+ - #include <qevent.h> - - #include <dcopclient.h> -@@ -34,6 +36,10 @@ - - #include <ksgrd/SensorClient.h> - -+#if HAVE_SLP -+#include <slp.h> -+#endif -+ - class KRecentFilesAction; - class KToggleAction; - -@@ -77,6 +83,9 @@ - virtual void customEvent( QCustomEvent* ); - virtual void timerEvent( QTimerEvent* ); - virtual bool queryClose(); -+#if HAVE_SLP -+ virtual void rescanSLP( bool enableErrorPopup = FALSE ); -+#endif - - protected slots: - void connectHost(); ---- ksysguard/ksysguardd/Makefile.am -+++ ksysguard/ksysguardd/Makefile.am -@@ -31,5 +31,5 @@ - bin_PROGRAMS = ksysguardd - - ksysguardd_SOURCES = Command.c conf.c ksysguardd.c PWUIDCache.c --ksysguardd_LDFLAGS = $(all_libraries) -+ksysguardd_LDFLAGS = $(all_libraries) $(LIB_SLP) - ksysguardd_LDADD = $(top_builddir)/ksysguard/ksysguardd/$(UNAME)/libksysguardd.a ../CContLib/libccont.a -lkdefakes_nonpic $(LIBHOSTS) $(LIB_DNSSD) $(LIB_KINFO) ---- ksysguard/ksysguardd/conf.c -+++ ksysguard/ksysguardd/conf.c -@@ -56,6 +56,7 @@ - char *begin, *token, *tmp; - ConfigLogFile *confLog; - -+ confSLPrefresh = 0; - LogFileList = new_ctnr(); - SensorList = new_ctnr(); - -@@ -93,6 +94,10 @@ - if ( line[ strlen( line ) - 1 ] == '\n' ) - line[ strlen( line ) - 1 ] = '\0'; - -+ if ( !strncmp( line, "SLPrefresh=", 11 ) ) { -+ confSLPrefresh = atoi( line + 11 ); -+ }; -+ - if ( !strncmp( line, "RegisterDomain",14) && (begin = strchr( line, '=' )) ) RegisterDomain=strdup(begin+1); - - if ( !strncmp( line, "LogFiles", 8 ) && (begin = strchr( line, '=' )) ) { ---- ksysguard/ksysguardd/conf.h -+++ ksysguard/ksysguardd/conf.h -@@ -30,6 +30,8 @@ - - extern char* RegisterDomain; - -+short confSLPrefresh; -+ - void parseConfigFile( const char *filename ); - void freeConfigFile(); - ---- ksysguard/ksysguardd/ksysguardd.c -+++ ksysguard/ksysguardd/ksysguardd.c -@@ -43,6 +43,10 @@ - #ifdef HAVE_DNSSD - #include <dns_sd.h> - #endif -+#if HAVE_SLP -+#include <slp.h> -+#endif -+ - #include "modules.h" - - #include "ksysguardd.h" -@@ -348,6 +352,62 @@ - #endif - - -+#if HAVE_SLP -+void mySLPRegReport(SLPHandle hslp, SLPError errcode, void *cookie) -+{ -+ if (errcode) -+ log_error( "SLP (de)registration error" ); -+} -+ -+void register_slp(); -+ -+void refresh_slp() -+{ -+ register_slp(); -+} -+ -+void register_slp() -+{ -+ SLPHandle phslp; -+ SLPError result; -+ int slp_timeout = confSLPrefresh; -+ struct sigaction act, oact; -+ -+ if ( slp_timeout < 120 ) /* do not bomb the slp server with wrong config */ -+ slp_timeout = 120 ; -+ if ( slp_timeout > SLP_LIFETIME_MAXIMUM ) -+ slp_timeout = SLP_LIFETIME_MAXIMUM; -+ -+ result = SLPOpen( NULL, SLP_FALSE, &phslp); -+ if (result != SLP_OK) -+ log_error( "SLPOpen failed" ); -+ else { -+ char hostname[1024]; -+ char SLPServiceUrl[2048]; -+ gethostname( hostname, 1023 ); -+ snprintf( SLPServiceUrl, 1023, "service:ksysguardd.kde://%s:%i", hostname, SocketPort ); -+ -+ result = SLPReg( phslp, -+ SLPServiceUrl, -+ slp_timeout, -+ 0, -+ "", -+ SLP_TRUE, -+ mySLPRegReport, -+ 0 ); -+ -+ if (result != SLP_OK) -+ log_error( "unable to register SLP service" ); -+ SLPClose( phslp ); -+ -+ act.sa_handler = refresh_slp; -+ if (0 != sigaction(SIGALRM, &act, &oact)) -+ log_error("Error establishing signal handler for SLP"); -+ alarm(slp_timeout - 15); -+ } -+} -+#endif -+ - int createServerSocket() - { - int i = 1; -@@ -402,6 +462,10 @@ - ServiceSocket = DNSServiceRefSockFD(Ref); - #endif - -+#if HAVE_SLP -+ if ( BindToAllInterfaces ) -+ register_slp(); -+#endif - return newSocket; - } - |