diff -ru multisync/plugins/irmc_sync/src/irmc_obex.c multisync-conn/plugins/irmc_sync/src/irmc_obex.c --- multisync/plugins/irmc_sync/src/irmc_obex.c 2004-02-09 19:53:31.000000000 +0100 +++ multisync-conn/plugins/irmc_sync/src/irmc_obex.c 2005-12-15 21:51:40.546407332 +0100 @@ -117,6 +117,9 @@ void client_done(obex_t *handle, obex_object_t *object, gint obex_cmd, gint obex_rsp) { + obex_headerdata_t hv; + uint8_t hi; + uint32_t hlen; obexdata_t *ud; ud = OBEX_GetUserData(handle); @@ -124,6 +127,14 @@ switch(obex_cmd) { case OBEX_CMD_CONNECT: + /* save the connection id */ + ud->connection_id = 0xffffffff; + while(OBEX_ObjectGetNextHeader(handle, object, &hi, &hv, &hlen)) { + if(hi == OBEX_HDR_CONNECTION) { + fprintf(stderr, "%s() Found connection number: %d\n", __func__, hv.bq4); + ud->connection_id = hv.bq4; + } + } break; case OBEX_CMD_DISCONNECT: break; @@ -692,6 +703,10 @@ userdata = (obexdata_t*) OBEX_GetUserData(handle); if ((object = OBEX_ObjectNew(handle, OBEX_CMD_PUT))) { + if(userdata->connection_id != 0xffffffff) + (void) OBEX_ObjectAddHeader(handle, object, OBEX_HDR_CONNECTION, + (obex_headerdata_t) userdata->connection_id, + sizeof(uint32_t), OBEX_FL_FIT_ONE_PACKET); hd.bq4 = body_size; OBEX_ObjectAddHeader(handle, object, OBEX_HDR_LENGTH, hd, 4, 0); /* Add unicode name header*/ @@ -736,6 +751,10 @@ userdata = (obexdata_t*) OBEX_GetUserData(handle); if((object = OBEX_ObjectNew(handle, OBEX_CMD_GET))) { + if(userdata->connection_id != 0xffffffff) + (void) OBEX_ObjectAddHeader(handle, object, OBEX_HDR_CONNECTION, + (obex_headerdata_t) userdata->connection_id, + sizeof(uint32_t), OBEX_FL_FIT_ONE_PACKET); /* Add unicode name header*/ namesize = OBEX_CharToUnicode(unicodename, name, 1024); hd.bs = unicodename; diff -ru multisync/plugins/irmc_sync/src/irmc_obex.h multisync-conn/plugins/irmc_sync/src/irmc_obex.h --- multisync/plugins/irmc_sync/src/irmc_obex.h 2004-02-09 19:53:31.000000000 +0100 +++ multisync-conn/plugins/irmc_sync/src/irmc_obex.h 2005-12-15 21:51:33.625513368 +0100 @@ -63,6 +63,7 @@ int connected; struct termios oldtio; cobex_t cobex; // Data for OBEX over cable + uint32_t connection_id; /* set to 0xffffffff if unused */ } obexdata_t;