Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37833619
en ru br
Репозитории ALT
5.1: 3.5.10-alt4
4.1: 3.5.10-alt2.M41.1
4.0: 3.5.9-alt0.M40.1
3.0: 3.4.1-alt4
+backports:3.5.6-alt2.0.M30
www.altlinux.org/Changes

Группа :: Графические оболочки/KDE
Пакет: kdenetwork

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: kinetd-3.5.7-alt-optimize.patch
Скачать


--- kdenetwork-3.5.7/krfb/kinetd/kinetd.h~	2005-09-10 12:20:14 +0400
+++ kdenetwork-3.5.7/krfb/kinetd/kinetd.h	2007-09-17 15:39:19 +0400
@@ -82,7 +82,7 @@ public:
 	QDateTime serviceLifetimeEnd();
 	bool isEnabled();
 	int port();
-	QStringList processServiceTemplate(const QString &a);
+	QStringList processServiceTemplate(const QString &a, unsigned int num=0);
 	bool setPort(int port = -1, int autoProbeRange = 1);
 	void refreshRegistration();
 
--- kdenetwork-3.5.7/krfb/kinetd/kinetd.cpp~	2006-10-01 21:26:23 +0400
+++ kdenetwork-3.5.7/krfb/kinetd/kinetd.cpp	2007-09-17 15:50:12 +0400
@@ -167,12 +167,12 @@ void PortListener::loadConfig(KService::
 		for (QStringList::iterator it=attrs.begin();
 		it!=attrs.end();it++) {
 		    QString key = (*it).section('=',0,0);
-		    QString value =  processServiceTemplate((*it).section('=',1))[0];
+		    QString value =  processServiceTemplate((*it).section('=',1),1)[0];
 		    if (!key.isEmpty()) m_dnssdData[key]=value;
 		    }
 	}
 	if (vdname.isValid() && vdtype.isValid()) {
-		m_dnssdName = processServiceTemplate(vdname.toString())[0];
+		m_dnssdName = processServiceTemplate(vdname.toString(),1)[0];
 		m_dnssdType = vdtype.toString();
 		m_dnssdRegister = true;
 		kdDebug() << "DNS-SD register is enabled\n";
@@ -246,11 +246,12 @@ int PortListener::port() {
 	return m_port;
 }
 
-QStringList PortListener::processServiceTemplate(const QString &a) {
+QStringList PortListener::processServiceTemplate(const QString &a, unsigned int num) {
+	unsigned int n = 0;
 	QStringList l;
 	QValueVector<KInetInterface> v = KInetInterface::getAllInterfaces(false);
 	QValueVector<KInetInterface>::Iterator it = v.begin();
-	while (it != v.end()) {
+	while (it != v.end() && (num == 0 || n < num)) {
 		KInetSocketAddress *address = (*(it++)).address();
 		if (!address)
 			continue;
@@ -262,6 +263,7 @@ QStringList PortListener::processService
 			 .replace(QRegExp("%u"), KServiceRegistry::encodeAttributeValue(u.loginName()))
 			 .replace(QRegExp("%i"), KServiceRegistry::encodeAttributeValue(m_uuid))
 			 .replace(QRegExp("%f"), KServiceRegistry::encodeAttributeValue(u.fullName())));
+		n++;
 	}
 	return l;
 }
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin