Hello Jukka,
Is the Agent request input happens via a dictionary ?
I was able to register a agent handler & getting RequestInput from the ConnMan.
However I am unable to send out the passphrase out.
static DBusHandlerResult request_passkey_message(DBusConnection *conn,
DBusMessage *msg)
{
DBusMessage *reply;
DBusError derr, error;
const char *device;
char passkey[17] = "micromax";
const char *psk = "micromax";
reply = dbus_message_new_method_return(msg);
if (!reply)
return DBUS_HANDLER_RESULT_NEED_MEMORY;
dbus_error_init(&derr);
if (!dbus_message_get_args(msg, &derr, DBUS_TYPE_OBJECT_PATH, &device,
DBUS_TYPE_INVALID)) {
fprintf(stderr, "%s", derr.message);
dbus_error_free(&derr);
return error_message(conn, msg, "net.connman.Error.Rejected",
"Wrong signature");
}
if (device)
printf("Device: %s\n", device);
//memset(passkey, 0, sizeof(passkey));
printf("Passkey sent over: %s\n", psk);
dbus_message_append_args(reply, DBUS_TYPE_STRING, &psk,
DBUS_TYPE_INVALID);
dbus_connection_send(conn, reply, NULL);
printf("reply success\n");
dbus_message_unref(reply);
return DBUS_HANDLER_RESULT_HANDLED;
}
I guess the passkey is currently sent out as a string & the ConnMan may not be
able to accept it.
Not sure how to convert the input into a dictionary & append my passphrase into
it.
I am able to print the service properly.
Please help me on this. Thanks.
Regards,
<Ram>
-----Original Message-----
From: connman [mailto:[email protected]] On Behalf Of Jukka Rissanen
Sent: Tuesday, March 17, 2015 7:53 PM
To: [email protected]
Subject: Re: connman connection policy
On ti, 2015-03-17 at 10:25 +0000, Kallumari Nagaraja Rao, RammohanX
wrote:
> This is what I tried doing it, I am very new to these stuffs :(
>
> DBusMessage * agent_update_passphrase(DBusConnection *connection, char
> * serv_str, char * pass) {
> DBusMessage *message, *reply;
> DBusError error;
> DBusMessageIter iter;
> DBusMessageIter args;
> static char *path = NULL;
> char *property = "Passphrase";
> int type = DBUS_TYPE_STRING;
> char *param = AGENT_PATH;
>
> path = g_strdup_printf("/net/connman/service/%s", serv_str);
> message = dbus_message_new_method_call( CONNMAN_SERVICE,
>
> path,
>
> CONNMAN_AGENT_INTERFACE,
>
> "RequestInput" );
This is wrong. ConnMan will call RequestInput method so you will need to create
a listener in your application for that. You are not suppose to call
RequestInput in ConnMan as there will not be such method there.
Jukka
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman