Mantis - obex-data-server
Расширенный вид
155 OPP большая всегда 2009-01-29 07:27 2009-10-21 20:13
закрыт 0.4.2  
нет 0.4.5  
0000155: ODS does not response the cancel request if the opponent is in a suspended state
Here is my problamatic situation.

I tried to send a file using OPP to other phone. When the request is reached to the remote phone, it went into a suspended mode waiting for a user's determination whether to accept the file. At this moment I cancelled the file transmission via "cancel" dbus call to ODS.

But at this moment the opponent phone seems that it does not send any response to the ODS. Therefore ODS can not perform the cancel procedure cause it does not get to the "ods_obex_writestream". ODS just waits for the non-answering response.

This situation happens when the remote target is a Samsung phone with its secure mode set on.

In short, my question is how to cancel the ongoing request even the opponent does not send a response, i.e., ODS does not get an "OBEX_EV_STREAMEMPTY" signal.

I attach a ODS log below indicating the cancel call timing.

Thanks in advance.
** Message: LOCK
** Message: event: 8
** Message: obex_writestream
** Message: writestream from File: 9
** Message: event: 8
** Message: obex_writestream
** Message: writestream from File: 9
** Message: event: 0

** (obex-data-server:923): WARNING **: PROGRESS: 8132
** Message: UNLOCK

>> Here ods_session_cancel is called <<

** Message: LOCK

>> But no progress <<
дублирует 0000111закрыт skirsdeda calling Method org.openobex.Session.Cancel() fails when org.openobex.Session.SendFile() is sending to Sony Ericsson mobiles 
2009-01-29 07:27 Jo Новый вопрос
2009-01-29 13:10 skirsdeda Связь добавлена дублирует 0000111
2009-01-29 13:17 skirsdeda Комментарий добавлен: 0000527
2009-01-30 01:48 Jo Комментарий добавлен: 0000528
2009-08-22 04:46 skirsdeda Состояние новый => назначен
2009-08-22 04:46 skirsdeda Ответственный => skirsdeda
2009-08-22 04:46 skirsdeda Целевая версия => 0.4.5
2009-08-22 21:10 skirsdeda Комментарий добавлен: 0000658
2009-08-22 21:10 skirsdeda Состояние назначен => отработан
2009-08-22 21:10 skirsdeda Решение открыт => решен
2009-08-22 21:43 skirsdeda Решен в версии => 0.4.5
2009-10-21 20:13 skirsdeda Состояние отработан => закрыт

2009-01-29 13:17   
This is a known bug. The problem is that when remote device is in suspended state (asks user to accept/reject), it usually does not listen to incoming data. Therefore, even if ods sends ABORT command, remote device does not respond. The only way to fix this is by implementing a timeout system in ods. When Cancel is called, a timeout would start and if remote device does not respond in the specified time frame, ods would just drop connection and emit ErrorOccurred signal with Timeout error.
2009-01-30 01:48   
Haha, exactly the same bug :) I confirmed.
2009-08-22 21:10   
should be fixed in svn