On Wed, 2020-02-26 at 16:02 +0000, António Mendes wrote:
> Hello again Thomas.
> 
> After read more documentation and follow your guidelines, I achieved
> my objective but if you can, I would appreciate a second opinion in
> the developed code, if you don't mind...

Hi,


You call nm_remote_connection_commit_changes_async(). That will
basically send the D-Bus request via D-Bus (to Update).

Usually, you would have your application to wait for the response from
commit_changes_async(). 

NMClient is build around GDBusConnection and thus GMainContext. That
means, when you start an async operation, you need to run/iterate the
maincontext for the response callback to be invoked. I think [1] is a
very good introduction to understand how this works.

>From the provided code it's not clear whether you are iterating the
main context (as you have to). However your networkManager() function
doesn't give the caller a way to know when the callback was invoked
(and whether it can stop waiting).


On a minor note, nm_remote_connection_commit_changes_finish() returns a
GVariant on success. You must free that. Also, you don't pass a
user_data argument to nm_remote_connection_commit_changes_async(),
so the g_object_unref(op) is wrong.


[1] 
https://developer.gnome.org/programming-guidelines/stable/main-contexts.html.en


best,
Thomas

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to