I'm implementing a GUI for ConnMan in EFL and I've noticed a strange behavior:
1 - launch an agent that returns error (net.connman.Agent.Error.Canceled)
2 - call Connect() on a service that triggers RequestInput
3 - return an error from agent.
4 - Connect() is not notified
Problem seems to be it calls __connman_service_return_error() that will call:
__connman_service_set_hidden_data(service, user_data);
reply_pending(service, error);
but in __connman_service_set_hidden_data(service, user_data) it does:
DBusMessage *pending = user_data;
service->pending = pending;
however my log shows user_data is NULL. Then effectivly "set hidden
data" is removing pending call, then no Connect() is aborted. See log:
connmand[24834]: src/service.c:request_input_cb() RequestInput return, 0x1419400
connmand[24834]: src/service.c:request_input_cb() error:
net.connman.Agent.Error.Canceled
connmand[24834]: src/service.c:__connman_service_return_error()
service 0x1419400 error 22 user_data (nil)
connmand[24834]: src/service.c:__connman_service_set_hidden_data()
service 0x1419400 pending (nil)
connmand[24834]: src/service.c:check_pending_msg() service 0x1419400
pending msg 0x13feda0 already exists
(no log for reply_pending() as it does not have it)
I'm not aware why user_data is NULL or why it's doing "set hidden
data" before replying with error.
If I change set hidden data *AFTER* reply_pending(), then it works as
in the attached patch.
--
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN: [email protected]
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202
0001-On-error-reply-before-setting-hidden-data.patch
Description: Binary data
_______________________________________________ connman mailing list [email protected] http://lists.connman.net/listinfo/connman
