diff --git a/obexd/plugins/syncevolution.c b/obexd/plugins/syncevolution.c
index e3b06f4..b0cd626 100644
--- a/obexd/plugins/syncevolution.c
+++ b/obexd/plugins/syncevolution.c
{
DBusConnection *conn;
struct synce_context *context;
+ char *address;
manager_register_session(os);
context = g_new0(struct synce_context, 1);
context->dbus_conn = conn;
context->lasterr = -EAGAIN;
- context->id = obex_get_id(os);
context->os = os;
+ if (obex_getpeername(os, &address) == 0) {
+ context->id = g_strdup_printf("%s+%d", address,
+ SYNCEVOLUTION_CHANNEL);
+ g_free(address);
+ }
+
if (err)
*err = 0;
diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index 7f31c5d..a88306d 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
return os->action_id;
}
-/* TODO: find a way to do this for tty or fix syncevolution */
-char *obex_get_id(struct obex_session *os)
-{
- GError *gerr = NULL;
- char address[18];
- uint8_t channel;
-
- bt_io_get(os->io, BT_IO_RFCOMM, &gerr,
- BT_IO_OPT_DEST, address,
- BT_IO_OPT_CHANNEL, &channel,
- BT_IO_OPT_INVALID);
- if (gerr)
- return NULL;
-
- return g_strdup_printf("%s+%d", address, channel);
-}
-
ssize_t obex_get_apparam(struct obex_session *os, const uint8_t **buffer)
{
*buffer = os->apparam;
diff --git a/obexd/src/obex.h b/obexd/src/obex.h
index 3ec49a9..7f07fd2 100644
--- a/obexd/src/obex.h
+++ b/obexd/src/obex.h
int obex_move(struct obex_session *os, const char *source,
const char *destination);
uint8_t obex_get_action_id(struct obex_session *os);
-char *obex_get_id(struct obex_session *os);
ssize_t obex_get_apparam(struct obex_session *os, const uint8_t **buffer);
ssize_t obex_get_non_header_data(struct obex_session *os,
const uint8_t **data);