System-wide wireless connection bug

Andrey Borzenkov arvidjaar at gmail.com
Wed Mar 9 19:32:12 CET 2011


2011/3/9 Lamarque Vieira Souza <lamarque at gmail.com>:
> Hi,
>
> What is the status of your work on system connections implementation? Does
> it still have the problems you mentioned below? I see you have been working
> in a git branch:
>
> http://quickgit.kde.org/index.php?p=clones%2Fnetworkmanagement%2Fgokcen%2Fnetworkmanagement.git&a=shortlog&h=refs/heads/systemwide
>
> with several modifications for networkmanagement besides system connections.

I was testing this branch and I do not remember any issue with
wireless - I think I could see both wired and wireless system
connections.

> Do you plan to push those changes to master?
>

This branch does not support user settings as of now. What are plans
regarding NM 0.9? It dropped user settings completely; may be it makes
sense to target this branch at NM 0.9 support? This obsoletes user
settings problem completely.

> Em Friday 19 November 2010, Gökçen Eraslan escreveu:
>
>> Hello,
>
>>
>
>> I've found another bug in KNM and prepared a patch for that. Problem is: I
>
>> can see wired system-wide connections in plasma applet but I can't see
>
>> wireless system-wide connections.
>
>>
>
>> Steps to reproduce:
>
>> 1- Add a system-wide wireless connection (using nm-applet unfortunately)
>
>> 2- Try to connect it from KNM plasma applet.
>
>>
>
>> Reason is that:
>
>>
>
>> * kded module gets a system-wide wireless connection and calls
>
>> NMDBusSettingsConnectionProvider::initialiseAndRegisterRemoteConnection
>
>> method, in this method an empty Connection is created:
>
>>
>
>> 00096 Knm::Connection * connection = new Knm::Connection(QUuid(),
>
>> Knm::Connection::Wired);
>
>>
>
>> At this point, connection type is wired but the setting gathered from NM
>
>> DBus interface is for a wireless connection. After that, empty connection
>
>> gets filled with ConnectionDbus class:
>
>>
>
>> 00097 ConnectionDbus dbusConverter(connection);
>
>> 00098 dbusConverter.fromDbusMap(connectionIface->GetSettings());
>
>>
>
>> and in fromDbusMap method:
>
>>
>
>> 00227 m_connection->setType(type);
>
>>
>
>> is called. type of connection is changed using setType method, but
>> Settings
>
>> objects of the connection are still for a wired connection because
>
>> Connection is initialized with Knm::Connection::Wired parameter. After
>
>> that,
>
>> ConnectionDbus class tries change the settings :
>
>>
>
>> 00228
>
>> 00229 // all other settings
>
>> 00230 foreach (Setting * setting, m_connection->settings()) {
>
>> 00231 if (settings.contains(setting->name())) {
>
>> 00232 SettingDbus * sd = dbusFor(setting);
>
>> 00233 sd->fromMap(settings.value(setting->name()));
>
>> 00234 }
>
>> 00235 }
>
>>
>
>> but since the settings are all in wired type, this does not work and
>
>> connection has the wired settings. And in:
>
>> WirelessNetworkInterfaceActivatableProvider::handleAdd method:
>
>>
>
>> 00093 Knm::WirelessSetting * wirelessSetting =
>
>> dynamic_cast<Knm::WirelessSetting *>(addedConnection-
>
>>
>
>> >setting(Knm::Setting::Wireless));
>
>>
>
>> 00094
>
>> 00095 if (wirelessSetting) {
>
>>
>
>> it's checked whether the connection has a setting named 802-11-wireless,
>
>> but it doesn't since settings are still in wired type.
>
>>
>
>> setType method of Connection class is wrong and must be changed since it
>
>> just changes the type and does not change Settings objects created in init
>
>> method.
>
>>
>
>> Here is the attached patch to regenerate Settings objects of connection
>
>> when setType is called with a second parameter regenerateSettings. An
>
>> alternative solution would be making ConnectionDbus and Connection classes
>
>> friends, so ConnectionDbus::fromDbusMap method can create new Settings
>
>> objects itself.
>
>>
>
>> Cheers.
>
> --
>
> Lamarque V. Souza
>
> http://www.geographicguide.com/brazil.htm
>
> Linux User #57137 - http://counter.li.org/
>
> http://www.kde-mg.org
>
> _______________________________________________
> kde-networkmanager mailing list
> kde-networkmanager at kde.org
> https://mail.kde.org/mailman/listinfo/kde-networkmanager
>
>


More information about the kde-networkmanager mailing list