Viewing Issue Advanced Details
440 [weblancet] General minor have not tried 2010-04-26 12:08 2010-04-26 12:08
justinas  
 
normal  
new  
open  
none    
none  
Neveikia vertimai su '
Nu tiesiog neveikia
There are no notes attached to this issue.




Viewing Issue Advanced Details
433 [obex-data-server] General major sometimes 2010-04-18 11:24 2010-04-19 00:07
crevette  
 
normal  
new 0.4.5  
open  
none    
none  
obex-data-server crashed with SIGSEGV in g_main_context_dispatch() after transfer
There is a crasher that make o-d-s crash after a transfer, the stacktrace is not complete because some glib symbols were missing, I'm waiting a better one from reporters.

.
Thread 1 (process 1421):
#0 obex_io_callback (io_channel=0x938c348, cond=<value optimized out>,
    data=0x938e978) at src/ods-session.c:193
    session = (OdsSession *) 0x0
    error = (GError *) 0x0
    ret = <value optimized out>
    __FUNCTION__ = "obex_io_callback"
0000001 0x00299e6b in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
0000002 0x002555e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
No symbol table info available.
0000003 0x002592d8 in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
0000004 0x00259817 in g_main_loop_run () from /lib/libglib-2.0.so.0
No symbol table info available.
0000005 0x08051b5d in main (argc=2, argv=0xbf91e594) at src/ods-main.c:195
    session_connection = <value optimized out>
    error = (GError *) 0x0
    context = <value optimized out>
    sa = {__sigaction_handler = {sa_handler = 0x80515f0 <sig_term>,
    sa_sigaction = 0x80515f0 <sig_term>}, sa_mask = {__val = {
      0 <repeats 32 times>}}, sa_flags = 0, sa_restorer = 0}
    no_daemon = 1
    system_bus = 0
    show_version = 0
    log = 0
    debug = 0
    options = {{long_name = 0x8064775 "no-daemon", short_name = 110 'n',
    flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0xbf91e4c8,
    description = 0x806477f "Do not daemonize", arg_description = 0x0}, {
    long_name = 0x8064790 "system-bus", short_name = 115 's', flags = 0,
    arg = G_OPTION_ARG_NONE, arg_data = 0xbf91e4c4,
    description = 0x8064888 "Use system bus instead of the default session bus", arg_description = 0x0}, {long_name = 0x80647b2 "log", short_name = 108 'l',
    flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0xbf91e4bc,
    description = 0x806479b "Log all messages to syslog",
    arg_description = 0x0}, {long_name = 0x80647b6 "debug",
    short_name = 100 'd', flags = 0, arg = G_OPTION_ARG_NONE,
    arg_data = 0xbf91e4b8,
    description = 0x80647bc "Enable debugging messages",
    arg_description = 0x0}, {long_name = 0x80647d6 "version",
    short_name = 118 'v', flags = 0, arg = G_OPTION_ARG_NONE,
    arg_data = 0xbf91e4c0,
    description = 0x80648bc "Show version of obex-data-server and exit immediately", arg_description = 0x0}, {long_name = 0x0, short_name = 0 '\0',
    flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0,
    arg_description = 0x0}}
Downstream bug:
https://bugs.launchpad.net/ubuntu/+source/obex-data-server/+bug/559876 [^]
Notes
(0001242)
skirsdeda   
2010-04-19 00:07   
This is probably fixed in svn already. If someone can test with svn version, it would be great but there is high probability that it's already fixed. I just need to do a new release (probably in the beginning of may).




Viewing Issue Advanced Details
223 [obex-data-server] General feature N/A 2009-11-10 10:27 2010-03-17 14:00
skirsdeda  
 
normal  
new 0.4.5  
open  
none    
none  
Not possible to change timeout period
It should be possible to change timeout period. Not sure if it should be done globally with configure or possible to change at runtime as well...
Notes
(0000853)
heston_james   
2009-11-20 15:22   
Hey Tadas,

After playing around with the latest SVN build this morning this is certainly a feature I'd like to see implemented as I think the timeout may cause issues with our application. We use the client side of ODS.

When implementing this would it be possible to have it so that the timeout can be set to '0' to disable the timeout feature so the connection remains open perminantly?

The reason this causes issues for us is because for instance, if we try to send a file to a Sony handset, and the user doesn't accept the message within 15 seconds the prompt remains on their screen however the connection has been dropped by ODS so when they finally do click 'accept' on the file, they get an error on the phone and the file is not sent.

I can understand the benefits for some people but for me being able to turn off the timeout would be helpful.

Heston
(0000854)
skirsdeda   
2009-11-20 16:39   
Ok, I understand why this would be useful for you. I'll definitely implement it.
(0000855)
heston_james   
2009-11-24 15:20   
Hey Tadas, that's great news. Tell me, is there any quick way for me to hack the source code to disable the time out feature? I'm keen to test the other bug fixes in the latest build but am unable to operate it in a live environment whilst it's timing out.

I took a look through the course code but couldn't find where it was defined.

Cheers,

Heston
(0000857)
skirsdeda   
2009-11-26 18:57   
Try deleting:
ods-obex.c (lines 151-152 and 247-248)
(0001176)
heston_james   
2010-03-16 11:56   
Hey Tadas,

Can we take a look at implementing something to look at this? I've really keen to use the latest ods build because of all the stability fixes you've been making however without being able to disable this timeout feature I cannot.

I've tried various things to remove the feature myself but keep getting compilation errors.

Thanks my man, I hope you're well!

Heston
(0001177)
skirsdeda   
2010-03-16 13:42   
I just have to find some time to work on this. It's the highest priority in my ods todo list:)
(0001178)
heston_james   
2010-03-17 14:00   
Great stuff Tadas,

I look forward to seeing it! I know how hard it can be to find the time for these kinds of things :-D

Heston




Viewing Issue Advanced Details
401 [obex-data-server] General crash always 2010-03-15 22:13 2010-03-16 13:40
Peri Noid  
skirsdeda  
normal  
resolved 0.4.5  
no change required  
none    
none  
obex-data-server crashes after BT transmission is finished
I'm using obex-data-server invoked by kbluetooth to transfer data to my mobile. unfortunately, everytime I try to transfer a file, after transmission is finished, obex-data-server crashes. Here is a part from dmesg:

obex-data-serve[8803]: segfault at c ip 0805feef sp bfde3480 error 4 in obex-data-server[8048000+1f000]
obex-data-serve[10198]: segfault at 14 ip 0805fef2 sp bf904df0 error 4 in obex-data-server[8048000+1f000]
obex-data-serve[10377]: segfault at 1d8 ip b784a246 sp bfc4fb60 error 4 in libgobject-2.0.so.0.2200.4[b7825000+36000]
obex-data-serve[10395]: segfault at c ip 0805feef sp bf93a060 error 4 in obex-data-server[8048000+1f000]
obex-data-serve[10510]: segfault at c ip 0805feef sp bfec1790 error 4 in obex-data-server (deleted)[8048000+1f000]
obex-data-serve[10553]: segfault at f0 ip b7780246 sp bf9c1990 error 4 in libgobject-2.0.so.0.2200.4[b775b000+36000]
obex-data-serve[10690]: segfault at c ip 0805feef sp bfd7e4c0 error 4 in obex-data-server[8048000+1f000]
obex-data-serve[10711]: segfault at 3f40 ip b7819246 sp bfc6fda0 error 4 in libgobject-2.0.so.0.2200.4[b77f4000+36000]
obex-data-serve[10888]: segfault at c ip 0805feef sp bffc74b0 error 4 in obex-data-server[8048000+1f000]

and obex-data-server dies. In an attachment you can find a strace from one of such executions. I can reproduce it every time. I don't think it is a kbluetooth problem, therefore I'm reporting it here. If you are sure it's just the other way, I'll report it to the KDE team.
obex-data-server.log.gz (11 KB) 2010-03-15 22:13
Notes
(0001174)
skirsdeda   
2010-03-16 03:55   
Please get the newest obex-data-server from svn (svn://muiline.com/obex-data-server/trunk) [^] and get some proper debugging info (detailed info at http://wiki.muiline.com/obex-data-server/reporting_bugs) [^]
(0001175)
Peri Noid   
2010-03-16 10:19   
OK. Seems to work fine on svn version. Status should be changed to resolved.




Viewing Issue Advanced Details
351 [weblancet] General major always 2010-02-03 16:24 2010-02-03 16:25
justinas  
justinas  
normal  
assigned  
open  
none    
none  
Reikia momentinio nuotrauku ikelimo image plugin'ui
Reikia kad prie ten kur galima irasyti img URL butu galimybe tiesiai nusiusti nuotrauka i serveri ir kad laukelyje atsirastu URL be browsinimo
There are no notes attached to this issue.




Viewing Issue Advanced Details
246 [obex-data-server] General major always 2009-12-14 15:45 2010-01-09 10:31
live4love  
skirsdeda  
normal  
feedback 0.4.4  
reopened  
none    
none  
obex-data-server can not receive file through bluetooth with size large than 512 bytes
When I send a file with size >= 512 from phone to PC through bluetooth, obex-data-server will fail to receive it.

bluetooth-applet show following logging when it start.
** Message: adding killswitch idx 1 state 1
** Message: Reading of RFKILL events failed
** Message: killswitch 1 is 1
** Message: killswitches state 1
** (bluetooth-applet:3529): DEBUG: Unhandled UUID 00005005-0000-1000-8000-0002ee000001 (0x5005)
** Message: killswitch 1 is 1
** Message: killswitches state 1


obex-data-server console displays while transtering:

** Message: server socket created
** Message: Server created by: :1.40

** (obex-data-server:3465): WARNING **: Server path: /mypath
** Message: Client connecting

** (obex-data-server:3465): WARNING **: Session path: /mypath
** Message: Bluetooth address: 00:13:70:22:12:42
** Message: Creating server session
** Message: io callback
** Message: event: 1
** Message: event: 2
** Message: CMD_CONNECT requested
** Message: Version: 0x10. Flags: 0x00 OBEX packet length: 4000

** Message: Resizing stream chunks to 3800

** Message: event: 3
** Message: io callback
** Message: event: 1
** Message: event: 11
** Message: CMD_PUT requested at REQCHECK
** Message: header: 1
** Message: HDR_NAME: tbig
** Message: header: 195
** Message: HDR_LENGTH: 512
** Message: header: 66
** Message: ret=-1
** Message: event: 3
** Message: io callback
** Message: server session closed
** Message: closing connection



It is tested on
ubuntu 9.10 32bit (kernel 2.6.31-16)
bluetooth dongle BCM2035
obex-data-server 0.4.4-2build1(installed by default in ubuntu 9.10)

Phone: Nokia 3230
It is okay to receive file with size < 512bytes from phone.(See attachment)
It is okay to send file from PC to phone, with any size.
It is okay to receive file from phone through obexpushd instead of obex-data-server, with any size.
It is okay to send/receive file using obex-data-server with another Phone SonyEricsson 700.

I think it should not be an issue on the phone, because I test it works anywhere else.


obex_success (1 KB) 2009-12-14 15:45
Notes
(0000871)
skirsdeda   
2009-12-14 17:16   
It seems that your phone sends TYPE header which obex-data-server cosiders invalid. I will try to put more debugging info in this case so that I could actually see why this header is considered to be invalid. I'll let you know when I have an improved version.
(0000941)
skirsdeda   
2010-01-03 19:08   
Could you please try the newest code from svn? You could do this in console:
svn co svn://muiline.com/obex-data-server/trunk [^] obex-data-server
cd obex-data-server
./autogen.sh
make
killall obex-data-server
./src/obex-data-server --no-daemon

Then try sending again and send me obex-data-server output (even if it works, I want to see how that invalid header looks like). I really have no way of testing this so your cooperation would be much appreciated :)
(0000976)
live4love   
2010-01-09 09:59   
(edited on: 2010-01-09 10:14)
skirsdeda, thanks for your work. The svn version is okay to send file with any size.
A limitation is, after obex-data-server(svn version) started, I have to restart bluetooth before any transferring.

Logging from obex-data-server:


1.start obex-data-server(svn)

obex-data-server 0.4.6svn
Using Session bus

2.restart bluetooth. Run /etc/init.d/bluetooth stop, then start.

server socket created
Server created by: :1.23
**Warning: Server path: /mypath

3. transfer bigfile - success

Client connecting
**Warning: Session path: /mypath
Bluetooth address: 00:13:70:22:12:42
Creating server session
Used MTUs: RX=32767, TX=32767
io callback
CMD_CONNECT requested
Version: 0x10. Flags: 0x00 OBEX packet length: 4000
Resizing stream chunks to 3800
io callback
CMD_PUT requested at REQCHECK
header: 1
HDR_NAME: bigfile
header: 195
HDR_LENGTH: 612
header: 66
HDR_TYPE invalid: text/plain�K�
header: 68
HDR_TIME
path: /mypath
ret=0
TransferStarted emitted at obex_request_put
Suspending request
LOCK ods_server_session_accept
UNLOCK ods_server_session_accept
Suspend result: 1
io callback
There is some data
CMD_PUT requested
io callback
server session closed
closing connection

4. transfer more large file (mp3) - success

Client connecting
**Warning: Session path: /mypath
Bluetooth address: 00:13:70:22:12:42
Creating server session
Used MTUs: RX=32767, TX=32767
io callback
CMD_CONNECT requested
Version: 0x10. Flags: 0x00 OBEX packet length: 4000
Resizing stream chunks to 3800
io callback
CMD_PUT requested at REQCHECK
header: 1
HDR_NAME: QUEEN2.MP3
header: 195
HDR_LENGTH: 940826
header: 66
HDR_TYPE invalid: audio/mpeg�K�
header: 68
HDR_TIME
path: /mypath
ret=0
TransferStarted emitted at obex_request_put
Suspending request
LOCK ods_server_session_accept
UNLOCK ods_server_session_accept
Suspend result: 1
io callback
io callback
io callback
io callback
io callback
io callback

...

There is some data
io callback
io callback
io callback
io callback
There is some data
CMD_PUT requested
io callback
server session closed
closing connection


5. transfer small file - success

Client connecting
**Warning: Session path: /mypath
Bluetooth address: 00:13:70:22:12:42
Creating server session
Used MTUs: RX=32767, TX=32767
io callback
CMD_CONNECT requested
Version: 0x10. Flags: 0x00 OBEX packet length: 4000
Resizing stream chunks to 3800
io callback
CMD_PUT requested at REQCHECK
header: 1
HDR_NAME: smallfile
header: 195
HDR_LENGTH: 511
header: 68
HDR_TIME
path: /mypath
ret=0
TransferStarted emitted at obex_request_put
Suspending request
LOCK ods_server_session_accept
UNLOCK ods_server_session_accept
Suspend result: 1
io callback
There is some data
CMD_PUT requested
io callback
server session closed
closing connection





Notes:
For large file, HDR_TYPE shows garbled text. But the transferring can finish without any exception.I wonder the garbled text is generated by my Nokia phone in Chinese.

For step 2: I have to restart bluetooth before any transferring, otherwise connections from phone to PC will always fail, sometimes connection succeed but transferring fail(even for small file, see following logging).

Client connecting
**Warning: Session path: /mypath
Bluetooth address: 00:13:70:22:12:42
Creating server session
Used MTUs: RX=32767, TX=32767
io callback
CMD_CONNECT requested
Version: 0x10. Flags: 0x00 OBEX packet length: 4000
Resizing stream chunks to 3800
io callback
CMD_PUT requested at REQCHECK
header: 1
HDR_NAME: smallfile
header: 195
HDR_LENGTH: 511
header: 68
HDR_TIME
path: /mypath
ret=0
TransferStarted emitted at obex_request_put
Suspending request
Suspend timeout (15s), rejecting incoming file
Suspend result: -1
io callback
server session closed
closing connection

(0000977)
live4love   
2010-01-09 10:31   
Another logging from obex-data-server(svn version) for SonyEricssion phone, succeed to transfer a big file:

Client connecting
**Warning: Session path: /mypath
Bluetooth address: 00:18:13:B4:B0:EC
Creating server session
Used MTUs: RX=32767, TX=32767
io callback
CMD_CONNECT requested
Version: 0x10. Flags: 0x00 OBEX packet length: 4096
Resizing stream chunks to 3896
io callback
io callback
There is some data
Writing to buf
CMD_PUT requested at REQCHECK
header: 1
HDR_NAME: bigfile.
header: 195
HDR_LENGTH: 612
path: /mypath
ret=0
TransferStarted emitted at obex_request_put
Suspending request
LOCK ods_server_session_accept
UNLOCK ods_server_session_accept
Suspend result: 1
io callback
CMD_PUT requested
io callback
server session closed
closing connection




Viewing Issue Advanced Details
242 [obex-data-server] General major always 2009-12-09 15:53 2009-12-11 16:11
cgarcia  
 
normal  
new 0.4.5  
open  
none    
none  
delete not compliant with obex specification

I have debugged a communication problem (with a own-developed client) until finding that the server does not follows the OBEX specification for deleting files, potentially causing data transmissions to be incorrectly handled as if they were file deletions. Since I have previously used the same client and never found a problem (both with other linux and Windows/Mac obex servers) I suspect that this may cause incompatibilities with many other clients out there, depending on their design.

I detected the problem in the 0.4.4 version ship with ubuntu karmic, but it is still present in the subversion trunk (I have not tested previous versions). The problem is due to the following: the function ods_obex_srv_put() in ods-obex.c considers that the PUT request is a file deletion (is_delete = TRUE) unless the client has previously sent any of the following headers: OBEX_HDR_BODY, OBEX_HDR_TYPE or OBEX_HDR_LENGTH. Since my client do not sends the type nor the length (unknown at transmission start) and it does not sends a body header in the first packet, obex-data-server incorrectly interpretes this as a file deletion and aborts the data transmission.

The OBEX specification (at least 1.2) says about delete:

"A PUT operation with NO Body or End-of-Body headers whatsoever should be treated as a delete request. Similarly, a PUT operation with an empty End-of-Body header requests the recipient to create an empty object. This definition may not make sense or apply to every implementation (in other words devices are not required to support delete operations or empty objects)."

That is, it mentions the complete "PUT operation" (not the first packet) and includes a "whatsoever" word. In another section, the specification is even more clear about this fact:

"A PUT request consists of one or more request packets, the last of which has the Final bit set in the opcode. The implementer may choose whether to include an object Body header in the first packet, or wait until the response to the initial packet is received before sending any object body chunks."

I was one of those implementers choosing not to send a body header in the first packet. My current workarround in order to improve the compatibility with previous obex-data-server versions it will be to include a OBEX_HDR_TYPE.
Notes
(0000868)
skirsdeda   
2009-12-11 16:11   
I could try rewriting code so that decision whether file should be deleted would be made at the end of PUT request. This would definitely be a correct way to handle this.




Viewing Issue Advanced Details
233 [obex-data-server] FTP major random 2009-12-03 21:19 2009-12-04 13:06
walmis  
 
normal  
new 0.4.5  
open  
none    
none  
File corruption when transferring with nautilus
Sometimes when transferring multiple files with nautilus some files come out corrupted. In the case of images, the bottom part is cut off, if multiple images are corrupted, those images are cut off at the exactly same place.

Can't seem to reproduce when transferring files one by one, only when bunch of files are selected and copied.

Nautilus: 2.26
gvfs: 1.4.1
ods: 0.4.5
http://ubuntuforums.org/showthread.php?t=1330074 [^]
out.log (217 KB) 2009-12-03 21:19
Atvaizd058.jpg (160 KB) 2009-12-03 21:20
Notes
(0000858)
skirsdeda   
2009-12-04 13:06   
Unrelated bug from log: modification time is not set correctly after receiving file.




Viewing Issue Advanced Details
227 [obex-data-server] General major always 2009-11-22 22:31 2009-11-26 18:49
drgr33n  
 
normal  
new 0.4.5  
open  
none    
none  
Failing to compile on my machine.
First error was stdlib.h was not included in src/ods-common.c.

My next error is im getting undefined reference to `OBEX_FindInterfaces' in ods-obex.c.

I'm not sure how to fix this but I can see that OBEX_FindInterfaces is declared in obex.h.

Here's the error output ..

src/ods-obex.o: In function `ods_obex_setup_usbtransport':
/root/software/build/bluez/obex-data-server/src/ods-obex.c:408: undefined reference to `OBEX_FindInterfaces'
collect2: ld returned 1 exit status

Notes
(0000856)
skirsdeda   
2009-11-26 18:49   
I need some more info for this. You could try attaching here output from "./configure --disable-silent-rules" and "make".




Viewing Issue Advanced Details
215 [obex-data-server] General minor always 2009-10-22 04:02 2009-10-22 19:02
mikeyrb  
skirsdeda  
normal  
resolved 0.4.5  
fixed  
none    
none  
USE_USB guards don't protect missing usb.h
Not entirely sure which package usb.h comes in, but in any case, I did configure with usb disabled and I get build errors because of usb.h. If you move '#ifdef USE_USB' above the includes (but below '#include "config.h"'), all is well.

This occurs in ods-usb.c and ods-usb.h.
Notes
(0000821)
skirsdeda   
2009-10-22 19:02   
Fixed in svn. Thanks for bug report.




Viewing Issue Advanced Details
95 [obex-data-server] General feature N/A 2008-05-23 22:29 2009-10-21 21:14
vcgomes  
 
normal  
closed 0.3.1  
won't fix  
none    
none  
Use ODS as a standalone server
In some enviroments it could be useful that ODS act as a standalone server, that is, without another client process that uses its DBus interface to initialize a server.
There are two main alterations that have to be made so this can work:
  1. Remove some dependencies from DBusGMethodInvocation, so some methods can be called from inside ods itself.
  2. Add some support for configuration files, so there is no need to use DBus to create a new server or disable some interfaces (e.g.: use ODS as only an OPP server)
ods-new-storage.patch (24 KB) 2008-05-28 01:18
storage2.patch (18 KB) 2008-05-31 00:38
Notes
(0000276)
heston_james   
2008-05-25 19:50   
Do you not think it would just be better to include a server script in with the package rather than modifying the ODS itself?

By making the server a seperate script we won't complicate the ods code, retain a focus on what ods 'should' be, a high level API. Also the server app would act as a well formed example of how to implement the API into an application.

At the moment ODS comes with a server test script in the /test directory, what benefits do you see to building this code into ods itself? I think it would probably just over complicate the ODS code, limit flexibility for the end developers and blur the definition of what ods is.

Heston
(0000277)
vcgomes   
2008-05-26 17:45   
The rationale behind my suggestion is that in some cases we want to hide some functionalities from the user (e.g. disabling ftp, the server is started at a fixed directory, etc.).

I was thinking about adding a configuration file, so the packager would be able to disable the start of some servers (FTP, OPP, etc) at run-time and if specified start some servers by default.

Do you have any idea on how to implement this in a cleaner way?

Vinicius
(0000278)
skirsdeda   
2008-05-26 19:16   
Sounds good to me. We can implement a special GObject which would auto-start OPP/FTP servers and would be optional (when building ods). It might use a configuration file or whatever fits the purpose best.
(0000280)
heston_james   
2008-05-27 10:53   
Yeah, if we go down this route then a config file probably makes good sense to allow people to enable and disable the servers which are started and thier respective system paths, this way non-programming folk will still be able to take advantage of it.
(0000287)
vcgomes   
2008-05-28 01:19   
Hi,

I implemented a version of what we were discussing, feel free to test and comment ;-) as far as I tested it's working. Patch is attached.

Vinicius
(0000300)
skirsdeda   
2008-05-30 17:57   
Several points:
1) ods-standalone.{c/h} should be ods-config.{c/h} and ManagerSettings/ServerSettings should reside there. ManagerSettings should probably be renamed. This is so that we can use config file for other purposes.
2) instead of g_error_free(err);err = NULL; use g_clear_error(&err);

BTW, I updated mode lines in svn..
(0000304)
vcgomes   
2008-05-31 00:38   
Hi,

1) Ok
2) Nice hint, I am not very familiar with GLib/GObject.

new patch in storage2.patch




Viewing Issue Advanced Details
163 [obex-data-server] General crash always 2009-07-16 10:59 2009-10-21 20:13
Liskni_si  
skirsdeda  
normal  
closed 0.4.4  
fixed  
none    
none  
ods dies when connecting to non-existing device
When CreateBluetoothSession is called with target address that's not reachable (a bluetooth phone that is off, for example), ods dies after a few seconds instead of emitting SessionConnectError.
Notes
(0000637)
skirsdeda   
2009-07-16 11:18   
Sounds like a serious bug, what version of bluez do you have?
(0000638)
Liskni_si   
2009-07-16 11:43   
bluez 4.42-2 from Debian unstable
(0000639)
skirsdeda   
2009-07-16 11:52   
Maybe you could also try running ods with gdb and get stacktrace when ods dies.
(0000640)
Liskni_si   
2009-07-16 12:17   
Well, it looks like dbus is closing its connection to ods. I don't know why, but it doesn't seem to be your problem, then.
(0000641)
Liskni_si   
2009-07-16 12:50   
Okay, tracked it. You use strerror in sdp_connect_watch and I have cs_CZ.ISO-8859-2 here. DBus rejects the message with latin2 charset and disconnects ods afterwards. Any idea what's the correct solution for this?
(0000642)
skirsdeda   
2009-07-16 16:49   
Now we have setlocale(LC_ALL, "") in ods-main.c, however locales should only be used for filenames (if I remember correctly). Filenames are handled with LC_CTYPE while strerror uses LC_MESSAGES setting so maybe we could change setlocale(LC_ALL, "") to setlocale(LC_CTYPE, ""), that way we should get correct filenames and avoid translations from strerror().
(0000643)
Liskni_si   
2009-07-16 16:53   
Yep, that makes sense.
(0000644)
skirsdeda   
2009-07-16 17:07   
I commited this change to subversion. Try checking out svn://muiline.com/obex-data-server/trunk [^] and running it instead of system version.
(0000645)
Liskni_si   
2009-07-16 17:14   
I confirm that it works ok now. Thanks a lot.
(0000646)
skirsdeda   
2009-07-16 17:19   
Great. I still need to double-check if I haven't broken smth and the it can go to 0.4.5 release. Big thanks for your bug-tracking abilities :)




Viewing Issue Advanced Details
161 [obex-data-server] General minor always 2009-03-23 21:10 2009-10-21 20:13
heston_james  
skirsdeda  
normal  
closed 0.4.4  
fixed  
none    
none  
Access Denied when calling method.
Hi Tadas,

I'm recieving this error today when trying to use ODS on a newly built system, have you seen this error before? any suggestions on what might be causing it? I can connect and use BlueZ API's no problem at all.

I'm trying to roll this for a system which we're installing for the client on wednesday so need to get it fixed ASAP.

Many thanks mate,

Heston
Traceback (most recent call last):
  File "myapp.py", line 294, in <module>
    daemon.run()
  File "myapp.py", line 192, in run
    self.my_obex_manager = manager(bus, self.my_adapters, self.my_remote_devices)
  File "/myapp/src/model/obex/manager.py", line 64, in __init__
    self.__logger.info("Using obex-data-server version: %s" % self.__manager.GetVersion())
  File "/var/lib/python-support/python2.5/dbus/proxies.py", line 68, in __call__
    return self._proxy_method(*args, **keywords)
  File "/var/lib/python-support/python2.5/dbus/proxies.py", line 140, in __call__
    **keywords)
  File "/var/lib/python-support/python2.5/dbus/connection.py", line 607, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 1 matched rules; type="method_call", sender=":1.2" (uid=0 pid=3798 comm="python myapp.py --no-daemon ") interface="org.openobex.Manager" member="GetVersion" error name="(unset)" requested_reply=0 destination=":1.1" (uid=0 pid=3797 comm="obex-data-server --no-daemon --system-bus "))
Org.OpenObex.tar.gz (23 KB) 2009-04-17 13:09
Notes
(0000609)
skirsdeda   
2009-04-16 18:08   
Can't really tell why this happens, maybe it's system specific. I haven't seen such error myself.

BTW, sorry for not answering for such a long time, I'm rather busy until june.
(0000611)
surfzoid   
2009-04-17 13:09   
Hi
Since now Mantis allow me to post i will report here some more info about this bug i have too :
From Monodevelop i have this short stackstrace, but can provide a more
complete one :
The session : /org/openobex/session0, get the stackstrace :
org.openobex.Error.ConnectionRefused, with error : Connection refused
HandleSessionClosed

From ods no-daemon i get :

[eric@SurfzoidPC obex-data-server-0.4.4]$ obex-data-server --no-daemon
** Message: obex-data-server 0.4.4
** Message: Using Session bus
** Message: Parsed[0]: ftp
** Message: FTP uuid selected, first checking for Nokia OBEX PC Suite
Services uuid
** Message: Connected SDP session
** Message: SDP search process
** Message: SDP search completed
** Message: no SDP records found
** Message: Using standard OBEX FTP uuid
** Message: SDP search process
** Message: SDP search completed
** Message: getting RFCOMM channel
** Message: Connect in progress
** Message: Failed to connect
** Message: session closed
** Message: Removing listened DBUS name :1.115 (object: /org/openobex/session0)
** Message: Removed from listened DBUS names list

There are other people in the same case and beleve it is a bluez problem :

http://forums.fedoraforum.org/showthread.php?t=207734 [^]

I attached one of my sample who use mono + gtk-sharp + ndesk-dbus, to connect to a remote bt device and list folder through obexftp
(0000612)
surfzoid   
2009-04-17 14:17   
Some other intersting info who make doub to say Bluez is the badboy,
My phone is corectly paired and trusted, when i start the bluetoothd daemon/service i see in syslog :
bluetoothd[14629]: probe failed with driver input-headset for device /org/bluez/14629/hci0/dev_00_16_20_C9_B4_B1

when i try to create btsession through ods i get the folowing error in syslog :

Apr 17 13:04:02 SurfzoidPC bluetooth: Starting hidd
Apr 17 13:04:03 SurfzoidPC obex-data-server: sdp_extract_seqtype: Unexpected end of packet
Apr 17 13:04:03 SurfzoidPC hidd[9952]: Bluetooth HID daemon
Apr 17 13:04:03 SurfzoidPC bluetoothd[2258]: link_key_request (sba=00:0A:3A:6D:57:B7, dba=00:16:20:C9:B4:B1)

then my sample get the conect refused error

now more interesting , if i try to create an USBsession i get the folowing syslog entry :

Apr 17 13:14:05 SurfzoidPC klogd: usb 4-4: usbfs: interface 1 claimed by cdc_acm while 'obex-data-serve' sets config 0000001

Imediatly my sample give the folowing error :

The session : /org/openobex/session13, get the stackstrace : org.openobex.Error.Failed, with error : USB setup failed

also i have same kind of error with obexftp, gnome-bluetooth, blueman ..

So can we conclude the problem came from openobex only, or it is a simple "hasard", since obexftp don't use ods.
(0000613)
skirsdeda   
2009-04-17 14:25   
What is the device you are trying to connect to and with what software it actually works?
(0000614)
surfzoid   
2009-04-17 15:23   
Bt and usb to a K750i SE phone, i'm the author of csobexftp and have it working in the past, but with my recent system, none software can connect
(0000615)
skirsdeda   
2009-04-17 18:04   
Unless you can prove otherwise, I consider this is you phone's fault. ods just reports to you that the device rejected connection.
(0000616)
surfzoid   
2009-04-17 21:31   
Nope, after a big clean of all obex, bluez, bluetooth file and rpm on my system, then just urpmi obex-data-server, i have a successfull session created, the problem with my sample is now, in your doc web page you say, "Dictionary<string, string> RetrieveFolderListing();" but if i look at your source code, the session xml file definition have a simple string.
So it was the doc or the XML the error ?
(0000617)
surfzoid   
2009-04-17 21:32   
I forget , at this time only USB not yet reinstalled and checked bluetooth
(0000618)
surfzoid   
2009-04-17 22:55   
Bluetooth also okay now, i have cleaned evry thingh to be sure , after the only diff is the result type of "RetrieveFolderListing()"
(0000619)
surfzoid   
2009-04-18 23:46   
The doc have always a dictionary as return type for RetrieveFolderListing, also to be lean, is there another cast problem in the doc ?

I looked at http://svn.muiline.com/obex-data-server/tags/REL-0_4_4/dbus-api.txt?view=co [^]
(0000621)
heston_james   
2009-05-07 12:20   
Tadas,

Back to the original problem I posted about; sorry for my late reply too, I've been away from work for a while. :-D I hope you're well?

This appears to be caused by a DBUS system.conf issue in the newer version of DBUS which is available on my apt repo, which is version 1.2.1-5. If I replace the system.conf with the one from version 1.2.1-3 then it appears to work just fine :-)

My guess that this is down to the new default security policy which comes with dbus, some changes perhaps need to be made to obex-data-server.conf to compensate for that?

This may well be a platform dependant thing, I'm running on Debian and perhaps the package maintainer has decided to mess around with the config file?

Cheers Tadas,

Heston
(0000634)
skirsdeda   
2009-06-02 16:29   
I updated obex-data-server.conf DBus config in svn. Can someone try and confirm that it works?
(0000635)
heston_james   
2009-06-08 11:48   
Tadas, I can confirm that this seems to work nicely! Thanks a great deal.
(0000636)
skirsdeda   
2009-06-08 13:23   
Great :)




Viewing Issue Advanced Details
158 [obex-data-server] FTP minor always 2009-02-14 13:39 2009-10-21 20:13
skirsdeda  
skirsdeda  
normal  
closed 0.4.4  
fixed  
none    
none  
Server does not support GET folder listing when using NAME header
FTP spec allows sending NAME header along with TYPE=x-obex/folder-listing. Name header specifies which folder to use without using SETPATH to go to that folder first.
Notes
(0000590)
skirsdeda   
2009-02-14 22:44   
Fixed in svn rev 2597.




Viewing Issue Advanced Details
139 [obex-data-server] General feature N/A 2008-10-04 13:44 2009-10-21 20:13
heston_james  
skirsdeda  
low  
closed 0.3.4  
fixed  
none    
none  
Implement logging
This is a really minor feature/improvement idea that I've had for some time now and thought I would get your opinions on.

We curently just print all obex-data-server output to the command line, however, as the vast majority of people will likely end up running it as a daemon we have no way of watching or tracking what ods is doing when in lights-out mode.

I'm proposing we perhaps look at a logging module, like log4c which can have a rotating file handler attached to it so when running in daemon mode ods logs its output to /var/log/obex-data-server.log and rotates out as it grows.

I've never dealt with logging in C before so dont really know how plausable this is, however I've used log4j on JAVA projects in the past and found it a very clean way of handling this.

Cheers guys,

Heston
http://log4c.sourceforge.net/ [^]
Notes
(0000435)
skirsdeda   
2008-10-06 15:24   
(edited on: 2008-10-06 15:31)
No need to use log4c or anything like that. Glib has all the necessary infrastructure (see http://library.gnome.org/devel/glib/stable/glib-Message-Logging.html [^] ). We just need to add a log_handler and it will just work.

(0000436)
heston_james   
2008-10-06 16:29   
Oh Great! that certainly makes life simpler. I think we should just look at a simple rotating file handler then, that should work nicely. :-)
(0000457)
skirsdeda   
2008-10-09 23:32   
Marking this as low priority. This can be done after 0.4 is out.
(0000462)
Jo   
2008-10-10 03:03   
Quick question here.
Tadas, do you plan to release the ODS 0.3.5 or directly go to the release of ODS 4.0?
(0000463)
skirsdeda   
2008-10-10 03:13   
Because of my lack of time and because ods svn is already being used widely, I plan to skip 0.3.5 and go straight for 0.4.
(0000466)
heston_james   
2008-10-10 12:49   
Yeah low priority is fine, its not in the least bit important.
(0000653)
skirsdeda   
2009-08-17 00:44   
Added logging functionality in svn. Now it's possible to enable/disable debugging messages and log to syslog.




Viewing Issue Advanced Details
155 [obex-data-server] OPP major always 2009-01-29 07:27 2009-10-21 20:13
Jo  
skirsdeda  
normal  
closed 0.4.2  
fixed  
none    
none  
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 <<
Notes
(0000527)
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.
(0000528)
Jo   
2009-01-30 01:48   
Haha, exactly the same bug :) I confirmed.
(0000658)
skirsdeda   
2009-08-22 21:10   
should be fixed in svn




Viewing Issue Advanced Details
111 [obex-data-server] General minor always 2008-07-25 14:50 2009-10-21 20:13
pwachend  
skirsdeda  
normal  
closed 0.3.1  
fixed  
none    
none  
calling Method org.openobex.Session.Cancel() fails when org.openobex.Session.SendFile() is sending to Sony Ericsson mobiles
Hello,
I hope I'm right here.
I'm using rev 1656 of ods from svn.
org.openobex.Session.SendFile() ist started und trys to send data to my Sony Erricson Mobile over an OPP session.
If I don't accept/cancel the connection the Operation never get's an timeout.
Calling the session.Cancel() Method to stop the Sendjob fails with
DBusException: org.freedesktop.DBus.Error.NoReply

In the Additional Information is the output of obex-data-server --no-daemon while the pytonscript is running. The last ** Message: LOCK appearse after calling the Cancel() method of org.openobex.Session

Using an Nokia mobile Phone, I don't even need to call the Cancel() function,
because org.openobex.Error.ConnectionTimeout Error is droped after 30s.
It's seems that the differt implementations of OPP, are interrupting the send processes at differnt points for the user request.

Sorry for my bad english, Regards,
Paul

P.S.: where is the Connect() signal gone?
** Message: obex-data-server 0.4svn
** Message: Using Session bus
** Message: Parsed[0]: opp, Parsed[1]: 6
** Message: Connecting to 00:12:EE:58:72:1C using channel 6
** Message: Connect in progress
** Message: LOCK
** Message: UNLOCK
** Message: LOCK
** Message: UNLOCK
** Message: LOCK
** Message: UNLOCK
** Message: LOCK
** Message: UNLOCK
** Message: LOCK
** Message: UNLOCK
** Message: Connected
** Message: Session created by: :1.36
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 0, response OK, Success
** Message: LOCK
** Message: event: 8
** Message: obex_writestream
** Message: writestream from File: 7
** Message: event: 8
** Message: obex_writestream
** Message: writestream from File: 7
** Message: event: 0

** (obex-data-server:24366): WARNING **: PROGRESS: 7792
** Message: UNLOCK
** Message: LOCK
Notes
(0000383)
pwachend   
2008-07-25 15:16   
same behavior in rev 1674 (after bugfix for bug id 51) :-(
(0000384)
skirsdeda   
2008-07-25 15:19   
Thanks for bug report.
No real timeout mechanism is implemented in ods yet, although Cancel should not return DBus timeout. I'll look into that..

Connected signal is gone, because it was causing some race conditions. Now you have to use SessionConnected and SessionConnectError signals from Manager object.
(0000438)
pwachend   
2008-10-07 17:06   
in rev 1999 this problem is still persistent. Same behavior when calling SendFileExt(). Is it possible that these functions set some global lock, so that the Cancle() Function is waiting for its release instead of stopping the send process?

I thing a possibility to cancle an running send process would realy make sence.
(0000439)
heston_james   
2008-10-07 17:22   
Paul,

I think the reason this wasnt fixed by bug 51 is becuase bug 51 was designed to cancel the connection process to the phone.

With Nokia devices when you see the 'recieve data from someone?' message with accept or decline the RFCOMM connection has not yet been established, whereas, with Sony Ericson devices the RFCOMM connection is accepted automaticaly by the device and instead it haults and propts the user for acceptance of the file.

You're quite right though, the documentation states:

        void Cancel()

            Cancels any operation that is in progress.

So, the cancel should cancel the currently in progress file transmition.

Tadas, is this something we should perhaps consider as another one to be completed ready for 0.4?

Cheers,

Heston
(0000440)
pwachend   
2008-10-08 14:18   
Hi Heston,
I did a little closer look on this effect. It seem calling the Cancle() function allways produce an org.freedesktop.DBus.Error.NoReply Error after a longer timeout.
This happens on Sony Erricson and Nokia Phone when calling Cancel() on an connected session object.
The problem seems to have nothing to do with the ods_session_cancel and ods_session_cancel_internal functions in ods-session.c as the Error remains constant after commenting everything but "return True;" out.
Unfortunately my c is very rusty and I have no experience in c dbus programing (I'm connecting to the ods dbus-api over python), but if you can give me a little hint, where this timeout is rooted I'll try my best to fix this.
(0000441)
heston_james   
2008-10-08 15:05   
Hi Paul,

My C is pretty rusty too ;-) I'm a python man myself. Thats is very strange that you get the timeout even when the function isnt doing anything. My guess would be that the method is meant to be returning something which it isnt.

Let me take a little look at the source now and see if I can spot anything.

Paul, if you get chance, join us on the IRC channel.

Heston
(0000442)
heston_james   
2008-10-08 15:19   
Ok, taking a look at this now.

Like I say, my C is a little rusty but it looks as if the Cancel() methods should be asynchronous but its currently not set to return a value.

Whilst we're using "return True;" at the moment I believe this is only for the internal C methods and to have the actual dbus method return properly, and not cause the NoReply error we should be using something like:

    dbus_g_method_return (context);
    return TRUE;

If you look into the other asynchronous methods, such as SendFile() you'll notice that these all call the dbus_g_method_return() to make the method return immediatly.

Unfortunatly I dont have a system available to build ODS on here so I'm not able to patch and test but I would think that is where you need to be looking.

Heston
(0000443)
heston_james   
2008-10-08 15:21   
In addition, in cases where the cancel cannot be performed perhaps we need to use dbus_g_method_return_error (context, error); to return the error which occurred.
(0000445)
pwachend   
2008-10-08 17:59   
ok an kind of ugly hack is something like this:

diff ods-session.c ods-session.c.org:
2023,2024c2023,2024
< session->priv->state = ODS_SESSION_STATE_OPEN;
< g_signal_emit (session, signals[CANCELLED], 0);
---
> } else {
> ODS_SESSION_UNLOCK (session);
2026,2028d2025
<
< ODS_SESSION_UNLOCK (session);
< dbus_g_method_return(context);


this gives the possibility to cancel the send process... but isn't really satisfying.
I'll try to make a better fix when I understand dbus c programming a little bit better.
(0000448)
heston_james   
2008-10-09 12:12   
Paul,

Glad to see you made a little progress on this. Tell me, when you say 'but isn't really satisfying' what do you mean? What more are you trying to achieve other than canceling the send process?

Cheers,

Heston
(0000451)
skirsdeda   
2008-10-09 20:39   
I'm a little confused with this. This is how I understand what you are trying to do:
1) send a file using ods to a phone
2) don't do anything on the phone (neither accept, nor cancel)
3) call ods Session.Cancel function.
Is this correct?

Have in mind that what Cancel function does is interrupt OBEX request by sending CMD_ABORT command. If you don't accept/cancel transfer in remote device then that device is effectively blocking any OBEX data (hence it doesn't receive CMD_ABORT command).
The way how ods should act in such situation would be something like this:
1) When session is started, timeout callback would be added to mainloop
2) In timeout callback (which would be called in predefined time spans) we would check if no data was received from remote device during that time span. If so, session would be disconnected. And this is technically not CANCELLING but rather disconnecting because of a timeout, hence this bug (if I'm understanding it correctly) has nothing to do with Cancel function. It has to do with timeouts which are not yet implemented in ods since this is some tedious programming and it helps only in very uncommon situations.

Cheers,
Tadas
(0000452)
heston_james   
2008-10-09 20:46   
Tadas,

The issue I think Paul has been having here is that with a Sony Erricson and many Samsung handsets, when you call SendFile() we get a TransferStarted() signal emmited but the send process then hangs untill the user accepts the file on thier phone.

Paul wants to be able to call Cancel() on that transmition at this point and disconnect the session, whereas at the moment when trying to call disconnect it wont work because the session is 'busy'.

Does that make sense?

Heston
(0000467)
pwachend   
2008-10-10 14:12   
Right, thats the Problem. With the fix above It's possible to Call the Cancle() Function, but when calling Disconnect() after Cancle() an "org.openobex.Error.Busy: Another operation in progress" Error is dropped.
(0000468)
pwachend   
2008-10-10 14:24   
But I don't understand why this happens:
session->priv->state = ODS_SESSION_STATE_OPEN is set and the DBus Function session.IsBusy() return 0 (False) before Calling Disconnect().

Perhaps I'll find the Problem, when I've a little more time for this at the weekend. But I'd be very thankful, if you give me an other hint, where to search.
(0000488)
skirsdeda   
2008-10-23 23:17   
Could you attach your patch in a unified diff format please.
(0000492)
pwachend   
2008-10-24 11:26   
something like:

--- ods-session.c (revision 1999)
+++ ods-session.c (working copy)
@@ -2020,8 +2020,11 @@
                g_assert (!session->priv->dbus_context);
                session->priv->dbus_context = context;
                /* will return at obex_event{EV_ABORT} */
- } else {
- ODS_SESSION_UNLOCK (session);
+ session->priv->state = ODS_SESSION_STATE_OPEN;
+ g_signal_emit (session, signals[CANCELLED], 0);
        }
+
+ ODS_SESSION_UNLOCK (session);
+ dbus_g_method_return(context);
        return TRUE;
 }


???
(0000493)
pwachend   
2008-10-24 13:27   
or for the newest svn version:

# diff -u ods-session.orginal ods-session.c
--- ods-session.orginal 2008-10-24 11:12:18.000000000 +0200
+++ ods-session.c 2008-10-24 11:17:55.000000000 +0200
@@ -2163,8 +2163,10 @@
                /* set dbus context */
                session->priv->dbus_context = context;
                /* will return at obex_event{EV_ABORT} */
- } else {
- ODS_SESSION_UNLOCK (session);
- }
+ session->priv->state = ODS_SESSION_STATE_OPEN;
+ g_signal_emit (session, signals[CANCELLED], 0);
+ }
+ ODS_SESSION_UNLOCK (session);
+ dbus_g_method_return(context);
        return TRUE;
 }
(0000509)
skirsdeda   
2008-11-29 17:07   
This is now partly fixed in svn. Cancel will send a reply, however the actual cancelling won't happen. This will be completely fixed when I implement timeout mechanism in ods.
(0000656)
skirsdeda   
2009-08-19 01:33   
(edited on: 2009-08-19 01:39)
Implementation ideas for session timeout mechanism:
1. Add timeout at the end of ods_obex_send function
2. timeout (if any) has to be removed at the beginning of obex_event function
3. Add pointer to obex_event function into OdsObexContext struct
4. When timeout happens, it should call obex_event function with phony arguments (ABORT / RSP_TIMEOUT ?) and immediately disconnect underlying transport

server_session timeout mechanism:
when busy (ongoing put request), add timeout when waiting for STREAMAVAIL event. If timeout happens, RSP_TIMEOUT response should be sent to client, underlying transport should be disconnected and server_session finalized. In the beginning of STREAMAVAIL event timeout (if any) has to be removed.

(0000657)
skirsdeda   
2009-08-22 21:09   
session timeouts now implemented in subversion. Needs a lot of testing though.




Viewing Issue Advanced Details
206 [obex-data-server] General minor have not tried 2009-10-09 00:41 2009-10-21 20:13
skirsdeda  
skirsdeda  
normal  
closed 0.4.4  
fixed  
none    
none  
man page outdated
man page should be updated with new logging options and other stuff
There are no notes attached to this issue.




Viewing Issue Advanced Details
172 [obex-data-server] General minor have not tried 2009-08-26 22:39 2009-10-21 20:13
skirsdeda  
skirsdeda  
normal  
closed 0.4.4  
fixed  
none    
none  
README file is empty
Fill in with basic info.
There are no notes attached to this issue.




Viewing Issue Advanced Details
171 [obex-data-server] General feature always 2009-08-22 21:42 2009-10-21 20:13
skirsdeda  
skirsdeda  
normal  
closed 0.4.4  
fixed  
none    
none  
Implement server side timeouts
Timeouts should be implemented in ods-server-session when waiting for Accept/Reject calls.
There are no notes attached to this issue.




Viewing Issue Advanced Details
28 [obex-data-server] General feature always 2007-12-11 17:30 2009-10-21 20:13
skirsdeda  
skirsdeda  
low  
closed  
fixed  
none    
none  
Implement support for other transports
USB cable transport would be quite useful, other transports are very low priority.
usb-transport.patch (21 KB) 2008-10-08 19:12
usb-transport-1.patch (18 KB) 2008-10-09 23:34
usb-transport-2.patch (18 KB) 2008-10-10 00:01
setup-usbtransport-fix.patch (1 KB) 2008-10-16 23:38
Notes
(0000112)
hadess   
2008-03-02 20:23   
For the USB transport, I see no way to get the "identifier" for a device other than listing the devices using libusb ourselves or using OBEX_FindInterfaces().

That means that obex-data-server should add a function to list the devices openobex knows about.

array{string} ListUsbDevices();

And we'd add:

object CreateUsbSession(int interface_index);

And I believe usbobex_find_interfaces() in usbobex.c (openobex) would need to be fixed to allow itself to be called multiple times.
(0000113)
hadess   
2008-03-02 20:58   
libgphoto uses this info from the bus:
sprintf (info.path, "usb:%s,%s", bus->dirname, dev->filename);

So we can use that given a few openobex changes.

ods API:
object CreateUsbSession(string port); # Port is "usb:XXX,YYY"

We would discover the dirname, filename using either libusb or HAL[1], ods woud parse the string, create a obex_usb_intf_transport_t from it, and use OBEX_InterfaceConnect().

[1]: http://bugs.freedesktop.org/show_bug.cgi?id=9215 [^]
(0000134)
skirsdeda   
2008-03-06 19:21   
Firstly, ods only uses fd (socket) transport in openobex (because Server,Session and ServerSession objects are transport agnostic), so OBEX_InterfaceConnect and OBEX_FindInterfaces functionality has to be reimplemented in ods.

It would be nice if ListUsbDevices() would work by querying HAL instead of using libusb, since AFAIK using libusb requires iterating through _all_ usb interfaces to find the needed ones. BTW, I looked at HAL info for my mobile (Sony Ericsson) and it has all the needed information to find interface for obex transfers.
(0000151)
hadess   
2008-03-07 18:50   
See also:
http://blogs.gnome.org/jamesh/2007/06/18/investigating-obex-over-usb/ [^]
(0000446)
alexbk   
2008-10-08 19:28   
I've written and tested a patch that implements support in
obex-data-server for USB transport. The comments from Tadas are:

"1) We should use only FD transport from openobex library. That way we can use the same session/server/server_session code for all real transports (bluetooth, usb, etc.)"

USB is an exception here, because there is no file descriptor associated with an USB OBEX interface. To have one, a kernel driver would be needed, and kernel developers have said that they don't want such a driver, and prefer all OBEX stuff to be done in userspace. Thus, OpenOBEX is using libusb and its iterative API, and that's why the patch introduces usb-specific session code.

"2) All USB interface code should be either copied from openobex (there's not that much actually) or it should be written from scratch. For desktop use-cases using HAL would be much better than plain libusb. HAL detects OBEX USB interfaces quite well (at least for the devices that I have) and it is pretty easy to use HAL."

HAL could (and should) be used for detecting OBEX interfaces when they appear, however the lack of a file descriptor means that OpenOBEX interface discovery code must be used from upper layer (ods) before opening a USB OBEX session.
(0000449)
skirsdeda   
2008-10-09 19:59   
I took a closer look at the patch and here are my new comments:
1) Let's not break GObject conventions and not split ods_session_new into ods_fdsession_new and ods_usbsession_new. Just add usb_inface_num argument to ods_session_new.
2) Why is ods_process_usb_input public and why it is added to mainloop from ods_obex_send function? Can't this be done in usb transport initialization (ods_session_setup_usbtransport)?
3) No need to split ods_manager_session_list_add into ods_manager_session_list_add_btsession and ods_manager_session_list_add_usbsession. Again, just add usb_interface_number arg to ods_manager_session_list_add.
4) No need to define create_usb_session_full, client_usb_connected_cb (they are called only in one place!). No need for OdsManagerCreateUsbSessionData either.
5) ods_manager_get_usb_interfaces_num leaks *handle and *obex_intf.
6) ods_manager_get_usb_interface_info leaks *handle (in second error check) and *obex_intf.
(0000458)
alexbk   
2008-10-09 23:54   
I have attached a new version of the patch:
1) 3) 4) fixed
5) 6) *handle leaking fixed, obex_intf is not leaked because it is deallocated in OBEX_Cleanup()

2) Libusb does not provide a way to set up a callback data reader function, similar to obex_io_callback. So we need to explicitly make such a function call but only when we expect data to be read - right after OBEX_Request in ods_obex_send. ods_process_usb_input is in ods-session.c (it is using some private things from ods-session.c) so I made it public to make it visible from ods-obex.c - let me know if there's a better way to do that.
(0000459)
alexbk   
2008-10-10 00:01   
And even newer one, to resolve a svn conflict :)
(0000460)
skirsdeda   
2008-10-10 01:52   
Thanks for new version of patch, I'll look at it once again and if everything is fine it can be pushed to svn.
(0000469)
skirsdeda   
2008-10-11 19:11   
Patch applied in svn rev 2027. I decided to add one more argument to CreateUsbSession(), namely profile. Although FTP is definitely the most common case, but some syncing profiles can also be used through USB OBEX AFAIK. BTW, I only looked at helper functions but didn't try testing actual USB session yet.

So the next thing for transport support should probably be USB servers.
(0000471)
alexbk   
2008-10-12 09:53   
Looks good, thanks a lot. As for USB servers, they are not supported by libusb yet, so I think we can close this issue.
(0000473)
Thoemy   
2008-10-16 23:37   
I tried revision 2060 but connecting to my Nokia phone failed without a error message.
The attached patch fixes this problem. I don't know if it causes any other problems.

Unfortunately RetrieveFolderListing() does not work. The calling python script says "dbus.exceptions.DBusException: org.openobex.Error.Failed: Operation failed (unexpected response)" and the daemon writes this "** Message: obex_request_done: command 3, response 76 (Unknown response)".
Same problem with ChangeCurrentFolder() and CreateFolder(). But SendFile() and GetCapability() works.

The obexftp command lists the files on the phone without problems. So I guess the problem is somewhere in ods. I tried to find the problem myself, but so far I had no luck. Hopefully you can fix the problem or point me into the right direction. Any more information I can provide?

GetCapability output:
<?xml version="1.0" ?>
<!DOCTYPE Capability SYSTEM "obex-capability.dtd">
<Capability Version="1.0">
<General>
<Manufacturer>Nokia</Manufacturer>
<Model>RH-12</Model>
<SN>355040000513165</SN>
<SW Version="V 05.24" Date="20041125T120000"/>
<HW Version="0721"/>
<Language>de</Language>
<Memory>
<MemType>DEV</MemType>
<!-- DEV memory -->
<Free>4288512</Free>
<Used>3317760</Used>
</Memory>
<Memory>
<MemType>MMC</MemType>
<!-- MMC memory -->
<Free>1515520</Free>
<Used>517775360</Used>
</Memory>
<Memory>
<MemType>APPL</MemType>
<!-- APPL memory -->
<Free>3053884</Free>
<Used>UNAVAILABLE</Used>
<CaseSenN/>
</Memory>
</General>
<Inbox>
<Object>
<Type>text/x-vCard</Type>
<Name-Ext>vcf</Name-Ext>
</Object>
<Object>
<Type>text/x-vCalendar</Type>
<Name-Ext>vcs</Name-Ext>
</Object>
</Inbox>
<Service>
<Name>Folder-Browsing</Name>
<UUID>F9EC7BC4-953c-11d2-984E-525400DC9E09</UUID>
<Version>1.0</Version>
<Object>
<Type>x-obex/folder-listing</Type>
</Object>
<Access>
<Protocol>IrDA</Protocol>
<Target>F9EC7BC4-953c-11d2-984E-525400DC9E09</Target>
</Access>
<Ext>
<XNam>Images</XNam>
<XVal>Folder=Fotos\</XVal>
<XVal>MemType=DEV</XVal>
</Ext>
<Ext>
<XNam>Videos</XNam>
<XVal>Folder=Videoclips\</XVal>
<XVal>MemType=DEV</XVal>
</Ext>
<Ext>
<XNam>Music</XNam>
<XVal>Folder=Musikdat.\</XVal>
<XVal>MemType=DEV</XVal>
</Ext>
<Ext>
<XNam>Graphics</XNam>
<XVal>Folder=Grafiken\</XVal>
<XVal>MemType=DEV</XVal>
</Ext>
<Ext>
<XNam>Tones</XNam>
<XVal>Folder=Töne\</XVal>
<XVal>MemType=DEV</XVal>
</Ext>
<Ext>
<XNam>Recordings</XNam>
<XVal>Folder=Aufnahmen\</XVal>
<XVal>MemType=DEV</XVal>
</Ext>
<Ext>
<XNam>MMC</XNam>
<XVal>Folder=Speicherk.\</XVal>
<XVal>MemType=MMC</XVal>
</Ext>
</Service>
<Service>
<Name>Infolog</Name>
<Object>
<Type>x-irmc/info.log</Type>
<Name-Ext>log</Name-Ext>
</Object>
</Service>
<Service>
<Name>SyncML</Name>
<UUID>SYNCML-SYNC</UUID>
<Version>1.1</Version>
<Object>
<Type>application/vnd.syncml+wbxml</Type>
</Object>
</Service>
</Capability>
(0000474)
skirsdeda   
2008-10-17 01:02   
Please also post the output of obexftp
(0000476)
skirsdeda   
2008-10-17 15:32   
Did some changes in svn revision 2067 and included provided patch. Hopefully this fixes RetrieveFolderListing() and others since they were returning OBEX response PRECONDITION FAILED (probably because no target UUID was sent along with Connect command). I don't have a proper way to test this ATM so please test :)
(0000478)
alexbk   
2008-10-17 17:40   
I was testing this with a Nokia Series 60 phone, while Thoemy is using a Series 40 phone - they run completely different operating systems and OBEX implementations. I can't test the changes at the moment, but they seem quite safe to me, and shouldn't break Series 60 support.
(0000483)
Thoemy   
2008-10-17 23:53   
(edited on: 2008-10-18 00:21)
RetrieveFolderListing() works! Thank you! I will do further tests and report any problems I can find.

Do you still need the obexftp output?

(0000484)
skirsdeda   
2008-10-18 10:42   
Don't need obexftp output anymore.. Great that it works though :)

Yet I have tried several Sony Ericsson phones and their USB interfaces provide no info, connect fails :(
(0000659)
skirsdeda   
2009-08-25 23:55   
as of svn rev 2856, TTY server support has been added.




Viewing Issue Advanced Details
213 [obex-data-server] General minor have not tried 2009-10-18 16:49 2009-10-21 20:13
skirsdeda  
 
normal  
new 0.4.5  
open  
none    
none  
Check dbus service file when running in system bus
When running in system bus (ods -s), check dbus .service file on startup so that ods would have -s arg in .service file!
There are no notes attached to this issue.




Viewing Issue Advanced Details
214 [obex-data-server] General feature always 2009-10-19 18:04 2009-10-19 20:13
maximi89  
 
normal  
closed 0.4.3  
no change required  
none    
none  
obex-data-server doesn't support object exchange
obex-data-server doesn't support object exchange, but ods-test-server works very well...

[maximi89@gateway ~]$ python /usr/share/doc/obex-data-server-0.4.3/ods-server-test.py --ask-to-accept opp /tmp/
Server object: /org/openobex/server2
Started


but obex-data-server doesn't work, the ods-test-server works alone...

[maximi89@gateway ~]$ gconftool-2 --recursive-list /desktop/gnome/file_sharing
 bluetooth_obexpush_enabled = true
http://bugs.muiline.com/view.php?id=162 [^]


[maximi89@gateway ~]$ gconftool-2 --recursive-list /desktop/gnome/file_sharing
 bluetooth_obexpush_enabled = true
 bluetooth_accept_files = bonded_and_trusted
 bluetooth_enabled = false
 bluetooth_notify = true
 enabled = false
 require_password = never
 bluetooth_require_pairing = true
 bluetooth_allow_write = false


[maximi89@gateway ~]$ sudo hcitool info 00:1A:1B:96:93:22
Requesting information ...
    BD Address: 00:1A:1B:96:93:22
    OUI Company: Motorola Mobile Devices (00-1A-1B)
    Device Name: Archer's L6
    LMP Version: 1.2 (0x2) LMP Subversion: 0x309
    Manufacturer: Broadcom Corporation (15)
    Features: 0xff 0xfe 0x0d 0x00 0x08 0x08 0x00 0x00
        <3-slot packets> <5-slot packets> <encryption> <slot offset>
        <timing accuracy> <role switch> <hold mode> <sniff mode>
        <RSSI> <channel quality> <SCO link> <HV2 packets>
        <HV3 packets> <u-law log> <A-law log> <CVSD> <power control>
        <transparent SCO> <AFH cap. slave> <AFH cap. master>

TRANSFIERE DATOS
> ACL data: handle 1 flags 0x02 dlen 34
    L2CAP(d): cid 0x0040 len 30 [psm 1]
        SDP SSA Req: tid 0x1 len 0x19
          pat uuid-16 0x1105 (OBEXObjPush)
          max 128
          aid(s) 0x0000 (SrvRecHndl) 0x0001 (SrvClassIDList) 0x0002 (SrvRecState) 0x0006 (LangBaseAttrIDList) 0x0009 (BTProfileDescList)
          cont 00
< ACL data: handle 1 flags 0x02 dlen 14
    L2CAP(d): cid 0x0040 len 10 [psm 1]
        SDP SSA Rsp: tid 0x1 len 0x5
          count 2
          cont 00

NO TRANSFIERE
> ACL data: handle 1 flags 0x02 dlen 34
    L2CAP(d): cid 0x0040 len 30 [psm 1]
        SDP SSA Req: tid 0x1 len 0x19
          pat uuid-16 0x1105 (OBEXObjPush)
          max 128
          aid(s) 0x0000 (SrvRecHndl) 0x0001 (SrvClassIDList) 0x0002 (SrvRecState) 0x0006 (LangBaseAttrIDList) 0x0009 (BTProfileDescList)
          cont 00
< ACL data: handle 1 flags 0x02 dlen 45
    L2CAP(d): cid 0x0040 len 41 [psm 1]
        SDP SSA Rsp: tid 0x1 len 0x24
          count 33
          record #0
              aid 0x0000 (SrvRecHndl)
                 uint 0x10008
              aid 0x0001 (SrvClassIDList)
                 < uuid-16 0x1105 (OBEXObjPush) >
              aid 0x0009 (BTProfileDescList)
                 < < uuid-16 0x1105 (OBEXObjPush) uint 0x100 > >
          cont 00


There are no notes attached to this issue.




Viewing Issue Advanced Details
162 [obex-data-server] General major always 2009-05-29 12:07 2009-10-19 20:13
maximi89  
 
normal  
closed 0.4.4  
no change required  
none    
none  
obex-data-server can't respond to petitions of bluetooth devices
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=530826 [^]

when a device try to contact to a computer with obex-data-server running, nothing happens, because this don't don't responde nothing, but sending files works good... using bluez-gnome like say the link

maximi89@Maximiliano:~$ sudo hcidump
[sudo] password for maximi89:
HCI sniffer - Bluetooth packet analyzer ver 1.42
device: hci0 snap_len: 1028 filter: 0xffffffff
> HCI Event: Connect Request (0x04) plen 10
< HCI Command: Accept Connection Request (0x01|0x0009) plen 7
> HCI Event: Command Status (0x0f) plen 4
> HCI Event: Role Change (0x12) plen 8
> HCI Event: Connect Complete (0x03) plen 11
< HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
> HCI Event: Max Slots Change (0x1b) plen 3
> HCI Event: Command Status (0x0f) plen 4
> HCI Event: Connection Packet Type Changed (0x1d) plen 5
< HCI Command: Remote Name Request (0x01|0x0019) plen 10
> HCI Event: Command Status (0x0f) plen 4
> HCI Event: Read Remote Supported Features (0x0b) plen 11
> HCI Event: Remote Name Req Complete (0x07) plen 255
> ACL data: handle 1 flags 0x02 dlen 12
    L2CAP(s): Connect req: psm 1 scid 0x0040
< ACL data: handle 1 flags 0x02 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 1 status 0
      Connection pending - No futher information available
< ACL data: handle 1 flags 0x02 dlen 10
    L2CAP(s): Info req: type 2
> HCI Event: Number of Completed Packets (0x13) plen 5
> HCI Event: Number of Completed Packets (0x13) plen 5
> ACL data: handle 1 flags 0x02 dlen 16
    L2CAP(s): Info rsp: type 2 result 0
      Extended feature mask 0x0000
< ACL data: handle 1 flags 0x02 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 0 status 0
      Connection successful
> HCI Event: Number of Completed Packets (0x13) plen 5
> ACL data: handle 1 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 4
      MTU 1024
< ACL data: handle 1 flags 0x02 dlen 18
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 4
      MTU 1024
< ACL data: handle 1 flags 0x02 dlen 12
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 0
> HCI Event: Number of Completed Packets (0x13) plen 5
> HCI Event: Number of Completed Packets (0x13) plen 5
> ACL data: handle 1 flags 0x02 dlen 14
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 0
      Success
> ACL data: handle 1 flags 0x02 dlen 34
    L2CAP(d): cid 0x0040 len 30 [psm 1]
        SDP SSA Req: tid 0x1 len 0x19
          pat uuid-16 0x1105 (OBEXObjPush)
          max 128
          aid(s) 0x0000 (SrvRecHndl) 0x0001 (SrvClassIDList) 0x0002 (SrvRecState) 0x0006 (LangBaseAttrIDList) 0x0009 (BTProfileDescList)
          cont 00
< ACL data: handle 1 flags 0x02 dlen 14
    L2CAP(d): cid 0x0040 len 10 [psm 1]
        SDP SSA Rsp: tid 0x1 len 0x5
          count 2
          cont 00
> HCI Event: Number of Completed Packets (0x13) plen 5
> ACL data: handle 1 flags 0x02 dlen 12
    L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040
< ACL data: handle 1 flags 0x02 dlen 12
    L2CAP(s): Disconn rsp: dcid 0x0040 scid 0x0040
> HCI Event: Number of Completed Packets (0x13) plen 5
> HCI Event: Disconn Complete (0x05) plen 4



maximi89@Maximiliano:~$ obex-data-server --no-daemon
** Message: obex-data-server 0.4.4
** Message: Using Session bus


i try with gnome-obex-server and works great.
Notes
(0000622)
skirsdeda   
2009-05-29 14:56   
From original bug:
>> I was trying gnome-obex-server and gnome-obex-send of gnome-bluetooth
>> works very well, but obex-data-server 0.4.4-1, is called by
>> bluetooth-applet, if you send a file from this program, and you cancel
>> the transfers, the
>> connection still alive and if you accept of phone recently in that
>> moment the phone understand the conecction was closed, also if you
>> send from phone, this fails with no conecction detected, because
>> obex-data-server don't understand nothing when the conecction coming,
(0000623)
skirsdeda   
2009-05-29 14:57   
Sorry, but I can't really understand what is the problem from neither of these descriptions. Could you try explaining all the steps needed to reproduce this in a clear understandable way.
(0000624)
maximi89   
2009-05-29 22:43   
sorry, i'm not english native, but that description say in others words:
gnome-obex-server works, but have problems for cancel coming files.

and obex-data-server don't do nothing, i use "bluez-hcidump" for see what happen, and from all devices i have, a Motorola L6i and from Samsung YP-T10 all fails with "impossible to connect".
When i send files using obex-data-server this works well, so the problem is only receiving files from Bluetooth, if you need any thing more, tell me, i can send you all you need if you tell me how.

Greetings!
(0000625)
maximi89   
2009-05-29 22:45   
may be that are relationed with this:

http://git.kernel.org/?p=linux/kernel/git/holtmann/bluetooth-testing.git;a=commitdiff;h=aa3972ded9bbc34642693ea4bc262b9eb7f8fef3 [^]
(0000626)
skirsdeda   
2009-05-29 22:52   
Yes, that is possible. But anyway, if ods doesn't work while gnome-obex-server works, it's strange.
(0000627)
maximi89   
2009-05-31 11:58   
Filippo from Debian Bug Track discovered

maximi89@Maximiliano:~/obex-data-server-0.4.4$ python test/ods-server-test.py opp /tmp
Server object: /org/openobex/server0
Started
Session created: /org/openobex/serversession0
Session Bluetooth address: 00:XX:XX:XX:X3:2X
>>/org/openobex/serversession0<< Transfer started (blink 182 - the rock show.mp3, /tmp/blink 182 - the rock show.mp3, 2688313)
>>/org/openobex/serversession0<< All transfer info:
>>/org/openobex/serversession0<< -- OBEXCommand = PUT
>>/org/openobex/serversession0<< -- Size = 2688313
>>/org/openobex/serversession0<< -- Type = audio/mp3
>>/org/openobex/serversession0<< -- LocalPath = /tmp/blink 182 - the rock show.mp3
>>/org/openobex/serversession0<< -- RemoteFilename = blink 182 - the rock show.mp3
>>/org/openobex/serversession0<< Progress: 0 %
>>/org/openobex/serversession0<< Progress: 0 %
>>/org/openobex/serversession0<< Progress: 0 %
>>/org/openobex/serversession0<< Progress: 0 %


Maximiliano:/home/maximi89# udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[1243760130.024623] add /devices/pci0000:00/0000:00:02.0/usb2/2-2/2-2:1.0/bluetooth/hci0/hci0:1 (bluetooth)
UDEV [1243760130.025408] add /devices/pci0000:00/0000:00:02.0/usb2/2-2/2-2:1.0/bluetooth/hci0/hci0:1 (bluetooth)
KERNEL[1243760134.102009] remove /devices/pci0000:00/0000:00:02.0/usb2/2-2/2-2:1.0/bluetooth/hci0/hci0:1 (bluetooth)
UDEV [1243760134.102761] remove /devices/pci0000:00/0000:00:02.0/usb2/2-2/2-2:1.0/bluetooth/hci0/hci0:1 (bluetooth)

hcidump
http://pastebin.ca/1442004 [^]
(0000628)
skirsdeda   
2009-05-31 16:03   
It just doesn't look like something caused by ods. If it really works for you with the same kernel/bluetooth dongle using gnome-obex-server then just post hcidump for the working situation.
(0000629)
maximi89   
2009-05-31 17:45   
You mean the hcidump when running "python test/ods-server-test.py opp /tmp"?
or "obex-data-server"?


this is running "python test/ods-server-test.py opp /tmp"
hcidump
http://pastebin.ca/1442004 [^]

this is running normally obex-data-server
hcidump
http://pastebin.ca/1442349 [^]
(0000630)
skirsdeda   
2009-05-31 17:47   
>> I was trying gnome-obex-server and gnome-obex-send of gnome-bluetooth
>> works very well

Running what works well for you.
(0000631)
skirsdeda   
2009-05-31 18:16   
I just realised something. By saying "running normally obex-data-server" do you mean that you run ONLY obex-data-server WITHOUT ods-server-test.py or bluetooth-applet (gnome-bluetooth)??
Beware that obex-data-server DOES NOT WORK standalone!
(0000632)
maximi89   
2009-06-01 03:49   
Sorry, when i run it, i try running hcidump, ODS and bluetooth-applet, the second time, was only hcidump and ODS with --no-daemon option.

third time, hcidump and ods-server-test.py, now i going try with that you tell me.
ods-server-test.py and obex-data-server.

the test result all fine, the bug is from bluez-gnome project.

because when i run bluetooth-applet that need call automatic the server for receive files.
that happens, ODS run when bluetooth-applet are called, but can't receive files, this means:
Bluetooth-applet don't call DBUS correctly?

Thanks you for your time, ODS are running very well, bluez-gnome are buggy.
(0000633)
skirsdeda   
2009-06-01 06:19   
In recent versions, gnome-bluetooth/bluez-gnome developers have removed ods support in favor of gnome-user-share. Search for "File Sharing" (or smth like that) in your menu to find gnome-user-share configuration and enable Bluetooth file sharing there (it will enable ods).
(0000812)
maximi89   
2009-10-19 18:04   
System > Preferences > Share personal files

[maximi89@gateway ~]$ gconftool-2 --recursive-list /desktop/gnome/file_sharing
 bluetooth_obexpush_enabled = true
 bluetooth_accept_files = bonded_and_trusted
 bluetooth_enabled = false
 bluetooth_notify = true
 enabled = false
 require_password = never
 bluetooth_require_pairing = true
 bluetooth_allow_write = false
(0000813)
skirsdeda   
2009-10-19 18:20   
So what is the problem again?
(0000814)
skirsdeda   
2009-10-19 18:22   
bluetooth_enabled = false (should be true probably)
bluetooth_allow_write = false (should also be true)
(0000815)
maximi89   
2009-10-19 19:57   
how can i change that's to true?

ok, the problem seems to be a bug in gnome-user-share or a mistake in the configuration, like you see that could be more probably....
(0000816)
skirsdeda   
2009-10-19 19:58   
there's gnome-user-share gui where you can change options or you can change these options using gconftool
(0000817)
maximi89   
2009-10-19 20:11   
yes, i believe that could be a bug in the gnome-user-share

[maximi89@gateway ~]$ gconftool-2 -a /desktop/gnome/file_sharing
 bluetooth_obexpush_enabled = true
 bluetooth_accept_files = bonded_and_trusted
 bluetooth_enabled = false
 bluetooth_notify = true
 enabled = false
 require_password = never
 bluetooth_require_pairing = true
 bluetooth_allow_write = false

this is my actual configuration, and now works, the line :
 bluetooth_enabled = false
only works for share from computer to out...


but the thing doesn't works to me was from phone to computer, now it works, i'm lookintg this in a bug in gnome project

https://bugzilla.gnome.org/show_bug.cgi?id=584582 [^]

thanks

you can close this bug :)




Viewing Issue Advanced Details
160 [obex-data-server] General feature N/A 2009-03-12 13:17 2009-05-07 12:10
heston_james  
 
normal  
new 0.4.4  
open  
none    
none  
Ability to send files from memory.
Morning Tadas,

I've been working on a concept here which requires us to push files to a remote device however the file doesn't exist on the FS only in memory as a binary string. This comes about because the environment the app will run on only has a read-only FS so all content which is being sent to the remote device only exists in memory.

I feel it might be nice to have a method in ODS which allows us to pass the binary string to ODS and send that file to the remote device without us having to write it to the FS first.

What are your thoughts on this?

Thanks mate, I hope you're well :-)

Heston
Notes
(0000610)
skirsdeda   
2009-04-16 18:11   
It's a big no-no to send binary data through DBus. This is really a feature that would be nice to have and it has been discussed a lot of times before, but we are limited by DBus architecture in this case.
(0000620)
heston_james   
2009-05-07 12:10   
O.K. Tadas that seems fair enough to me, don't want to upset the DBUS guys, you know what they're like ;-)

I can work around this, just wanted to try and minimize my disk writes but it's no major deal.

Heston




Viewing Issue Advanced Details
3 [weblancet] General minor always 2007-01-23 21:45 2009-03-23 08:09
skirsdeda  
justinas  
normal  
resolved  
fixed  
none    
none  
Translation'ai veikia neoptimaliai
Dabar kiekvienai frazei ishverti reikia kreiptis i DB. Vietoj to geriau prefetchinti vertimus (t.y. viska ishversti ir laikyti $GLOBALS variable). Tai galima igivendinti su funkcija Translate::Prefetch() (egzistuoja lazeriai branche).

Kita vertus, geriau butu viska optimizuot nerashant daug kodo. Galbut butu imanoma padaryti, kad smartyje naudojant {_}{/_} bloka butu translatinami tik visi blokai vienu kartu (nzn ar ishvis imanoma taip suimplementuot smartyje).
Notes
(0000608)
justinas   
2009-03-23 08:09   
su smarchiu taip padaryti deja neimanoma.

reik kur imanoma naudoti prefetch.




Viewing Issue Advanced Details
12 [weblancet DB] General minor always 2007-02-20 01:54 2009-03-23 08:00
skirsdeda  
justinas  
normal  
resolved  
fixed  
none    
none  
Sutvarkyti security checkinima
Dabar 'auto' branche prihardcodinta stebuklingu security check'inimu. Reikia nuspresti kas gali buti panaudota (ir kaip) generic branche (weblancet_db). Ir atatinkamai reikia sumerginti.
Notes
(0000607)
justinas   
2009-03-23 08:00   
oj koks senas bugas. jau seniai isspresta grazhiai controlleriuose




Viewing Issue Advanced Details
22 [weblancet] General minor always 2007-11-30 12:34 2009-03-23 07:51
justinas  
vygantas  
normal  
resolved  
fixed  
none    
none  
Perkelinejant item'a su Move($newId) nesutvarko level ir position'u.
Kai perkelinejamas item'as su ta Move funkcija, jei jis perkeliamas i kita level'i tai duombazej nepasikeicia niekas. Taip pat reikia istestuoti kaip ten su pozicijojm, man rodos nesitvarko.
Notes
(0000606)
justinas   
2009-03-23 07:51   
jau isspresta, graziai, su kazkokiu setSubTreeLevel




Viewing Issue Advanced Details
106 [weblancet] General major always 2008-07-08 13:46 2009-03-23 07:44
justinas  
vygantas  
normal  
resolved  
fixed  
none    
none  
nesudeti visi actionai i weblancet_clean ir web;ancet_b_vupraktika
nesudeti info i weblancet_clean ir praktika del to negalima kai kuriu elementu istrinti ir t.t.
Notes
(0000605)
justinas   
2009-03-23 07:44   
viskas ten sutvarkyta




Viewing Issue Advanced Details
105 [weblancet] General minor always 2008-07-08 13:44 2009-03-23 07:41
justinas  
justinas  
normal  
resolved  
fixed  
none    
none  
meniu neteisingai atvaizduojamas
REikia apdaryti kad uppercasintu meniu pavadinimus ir kazkodel nerodo meniu punkto kai buna mouseover.
Notes
(0000604)
justinas   
2009-03-23 07:41   
net neaisku prie kokio cia projekto




Viewing Issue Advanced Details
10 [weblancet] General major always 2007-02-20 01:48 2009-03-23 07:39
skirsdeda  
justinas  
urgent  
resolved  
fixed  
none    
none  
Suimplementuoti 'Override' direktorija
Panaikinti 'Templates' direktorija ir vietoj to naudoti 'Override' direktorija, kur butu galima overridinti ne tik templatus bet ir klases.
Notes
(0000010)
skirsdeda   
2007-02-20 23:56   
Reikia kuo greichiau shita padaryt, bo nebus imanoma ishlaikyt esamo branchu vienodumo. Dabar isheina kad padarai pakeitima pvz lazeriuose ir reikia merginti ishkart i wl_db, auto ir wl_trunk.
(0000017)
justinas   
2007-10-23 15:59   
Is esmes jau padaryta tik pakolkas Override direktorija vadinasi Templates be to reikia visus branchus sumerginti i trunk'a.
(0000603)
justinas   
2009-03-23 07:39   
suimplementuota




Viewing Issue Advanced Details
66 [weblancet] General minor always 2008-03-28 18:07 2009-03-23 07:38
alumnai  
justinas  
normal  
resolved  
fixed  
none    
none  
Image manager in TinyMCE
If you import image, then delete it and import another one with the same name it shows the old image, not new, so you need to rename new image and can't upload with the same that was there before.
Notes
(0000602)
justinas   
2009-03-23 07:38   
new image manager does the job well




Viewing Issue Advanced Details
64 [weblancet] General minor always 2008-03-28 17:47 2009-03-23 07:37
alumnai  
justinas  
normal  
resolved  
fixed  
none    
none  
Importing Images into content with TinyMCE
When i try to put in any king of image (.jpg .png etc.) writing url manualy, the image does not appear in content. The editor just writes extra parameters and the image doesn't appear.

/UserFiles/Images/kontaktai_image.jpg&Width=560&Height=200&Method=5
Notes
(0000601)
justinas   
2009-03-23 07:37   
now it works just perfectly on svn




Viewing Issue Advanced Details
110 [weblancet] General minor always 2008-07-23 10:40 2009-03-23 07:36
inga  
justinas  
normal  
resolved  
fixed  
none    
none  
nesimato pakeitimu sukurtu atskiruose straipsniuose,
Prie projekto Subertres, redaguojant atskirus staripsnius pvz. is Produktų katalogas, nesimato pakeitimu "pakeitimų peržiūroje", matos itik vidiniuose elementuose kada keista...
Notes
(0000600)
justinas   
2009-03-23 07:36   
sutvakyta jau, bent jau europraktikoj




Viewing Issue Advanced Details
133 [europraktika] minor have not tried 2008-09-23 22:03 2009-03-23 07:35
inga  
justinas  
normal  
resolved  
fixed  
none    
none  
europraktika
Prisijungus su studentu Tadas Matiejunas, issiunciau laiska imonei, pirma akrta paluzo ir neuzsikrve, tada antra karta viskas ok, prikabinau faila, o tada studentas jau negali pasirinkti pasiulymo - paspaudzia -sutinku, ir niekas nesidaro.

Notes
(0000599)
justinas   
2009-03-23 07:35   
viskas sutvarkyta




Viewing Issue Advanced Details
134 [europraktika] minor have not tried 2008-09-24 19:21 2009-03-23 07:34
inga  
justinas  
normal  
resolved  
fixed  
none    
none  
išsikriapo puslapis kuriant skelbimą organziacijose
prisijungaint prie organziacijų (t.y. sukūriau naują ) ir rašaupraktiksos kelkbim, bet tas langas labai išsimėtė. pvz. save mygtukas į viršų užšukęs ir pan.

vienas laukas per platus ir pan.
Notes
(0000598)
justinas   
2009-03-23 07:34   
pakeisti dizainai visiškai




Viewing Issue Advanced Details
130 [europraktika] minor have not tried 2008-09-08 10:21 2009-03-23 07:34
inga  
justinas  
normal  
resolved  
fixed  
none    
none  
Studento prisijungimo pirmas langas
Prisijungus studentui prie IS, nedingsta pagrindinio puslapio mygtukai, ir dabartiniu esanciu nereikia. bus kur atsiunte Deimante penktadieni

Apacioje mygtuke turi vietoj anglisko uzraso buti lietuviskas - Erasmus informacnė sistema, Gauminos logotpas - lietuviskas,

Virš prisijungimo duomenų kur juo įvesti, turi būti užrašas - VU informacinė sistema

Studento darbinis laukas - pagrindiniame lauke prisijungimas

Jūs esate prisijungę -> prie VU IS prisijungęs/ usi Studentas Studentauskas

Jūsų paraiškos statusas -> Jūsų virtuali darbo vieta

žemiau parašyti

Erasmus praktikos etapai:

užrašas: dabartinis etapas: su aprašymais atsiranda tik kai užpildomas CV.

Dabartinis etapas: - šriftas turi būti tuo gražiu šriftu.
Dabartinio etapo aprašus įdėti į rėmelius. - kaip anketose būna laukas informacijai parašyti.

Jūsų praktikos dokumentai -> Praktikos paieškos dokumentai
(išvardinti sąrašas)
ir taip pat išsiskiria dokumentai pagal Deimantės pateiktą sąrašą
Praktikos vietos paieška -> patvirtinta praktikos vieta

Paraiškos Europraktikos mob. stipendijai gauti pateikimas -> skirta praktikos stipendija
Praktikos plano pateikimas -> suderintas praktikos planas


erasmus prktikos etapai:






Notes
(0000597)
justinas   
2009-03-23 07:34   
pakeistas visas dizainas




Viewing Issue Advanced Details
104 [weblancet] General major always 2008-07-08 13:20 2009-03-23 07:32
justinas  
vygantas  
high  
resolved  
fixed  
none    
none  
Neprisijungia prie TVS
Neprisijungia prie TVS jeigu esi katik atsijunges ir URL buna ?Action=Security/Logout
Notes
(0000596)
justinas   
2009-03-23 07:32   
jau veikia, ismeta action'a




Viewing Issue Advanced Details
97 [weblancet] General tweak always 2008-05-26 11:13 2009-03-23 07:32
justinas  
justinas  
urgent  
resolved  
fixed  
none    
none  
Reikia padaryti kad WebLancet keshuodamas view'a uzkeshuotu ir jo paduodamus slot'us
nes dabar jei atidaromas keshuoptas view'as jo slotai neatvaizduojami.
Notes
(0000595)
justinas   
2009-03-23 07:32   
keshuojama jau




Viewing Issue Advanced Details
157 [obex-data-server] General major always 2009-02-10 10:43 2009-03-05 12:28
yelo3  
skirsdeda  
normal  
assigned 0.4.3  
open  
none    
none  
nokia: BT hang when copying files
versions 0.4.3 and 0.4.4
I'm using gvfs to mount and browse my nokia 6630. Then I use gnome-terminal to access it.

whenever I copy a file to my home directory (and also other destinations) the terminal hangs (the same if using nautilus) without any type of debuggung infirmation. To make it come back I have to disable BT on my nokia phone.

I don't know how to obtain further debug, can you help me?
thanks
ods.log (9 KB) 2009-02-10 14:32
ods-session-test.py (5 KB) 2009-02-10 23:39
obex.debug (32 KB) 2009-02-12 22:43
Notes
(0000540)
skirsdeda   
2009-02-10 13:38   
By "terminal" do you mean you are running obex-data-server --no-daemon? The best you can do is post output from this and optionally you could get a backtrace from gdb (so that we would see the place in code where it hangs).
(0000541)
yelo3   
2009-02-10 14:15   
Well, no. I'm using gvfs to mount, and the directory ~/.gvfs from the terminal.

Is is possible to use obex-data-server to browse the phone, so that I can identify if the problem is in o-d-s or gvfs?
(0000542)
skirsdeda   
2009-02-10 14:20   
(edited on: 2009-02-10 14:21)
you do it like this:
1) killall obex-data-server
2) obex-data-server -n
In another terminal:
3) /usr/libexec/gvfsd -r

Then you copy the output of both ods and gvfsd.

(0000543)
yelo3   
2009-02-10 14:27   
I managed to start it using --no-daemon as you suggested.
(0000544)
yelo3   
2009-02-10 14:32   
Now, how can I get a backrace from gdb?
(0000545)
skirsdeda   
2009-02-10 14:39   
gdb obex-data-server
>run -n

When it "hangs", you press Ctrl+c and
>bt

This will give you backtrace. However obex-data-server has to have debug symbols compiled into it (using --enable-debug).
(0000546)
yelo3   
2009-02-10 15:05   
I don't think I have --enable-debug but anyway this is what I get. Should I recompile with it?

^C Message: io callback
---Type <return> to continue, or q <return> to quit---bt
Program received signal SIGINT, Interrupt.
[Switching to Thread 0xb7b36710 (LWP 13641)]
0xb7f57430 in __kernel_vsyscall ()
(gdb) bt
#0 0xb7f57430 in __kernel_vsyscall ()
0000001 0xb7cd2a3b in poll () from /lib/tls/i686/cmov/libc.so.6
0000002 0xb7e969cb in g_poll () from /usr/lib/libglib-2.0.so.0
0000003 0xb7e89172 in ?? () from /usr/lib/libglib-2.0.so.0
0000004 0xb7e89802 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
0000005 0x080518eb in ?? ()
0000006 0xb7c0f775 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
0000007 0x0804ce81 in ?? ()
(0000547)
skirsdeda   
2009-02-10 15:09   
No need for --enable-debug in this situation. It seems that what actually hangs is gvfs obexftp backend itself. So output of '/usr/libexec/gvfsd -r' would be more helpful in this case.
(0000548)
yelo3   
2009-02-10 15:15   
and this is the output of gvfsd -r:

- do_query_info
backend_dbus_handler org.gtk.vfs.Mount:QueryInfo
Queued new job 0x98025f8 (GVfsJobQueryInfo)
+ do_query_info, filename: /C:/Nokia/Sounds/Digital/Lo chiamavano trinità.mp3
+ _query_file_info_helper, filename: /C:/Nokia/Sounds/Digital/Lo chiamavano trinità.mp3
- _query_file_info_helper
send_reply(0x98025f8), failed=0 ()
backend_dbus_handler org.gtk.vfs.Mount:QueryInfo
Queued new job 0x9802648 (GVfsJobQueryInfo)
- do_query_info
+ do_query_info, filename: /C:/Nokia/Sounds/Digital/Lo chiamavano trinità.mp3
+ _query_file_info_helper, filename: /C:/Nokia/Sounds/Digital/Lo chiamavano trinità.mp3
- _query_file_info_helper
send_reply(0x9802648), failed=0 ()
- do_query_info
backend_dbus_handler org.gtk.vfs.Mount:OpenForRead
Queued new job 0x9805090 (GVfsJobOpenForRead)
+ do_open_for_read, filename: /C:/Nokia/Sounds/Digital/Lo chiamavano trinità.mp3
+ _query_file_info_helper, filename: /C:/Nokia/Sounds/Digital/Lo chiamavano trinità.mp3
- _query_file_info_helper
(0000549)
yelo3   
2009-02-10 15:17   
Which when I disconnect BT ends with:
** Message: ErrorOccurred
** Message: Error name: org.openobex.Error.LinkError
** Message: Error message: Connection error
** Message: link lost to remote device
(0000550)
yelo3   
2009-02-10 15:22   
the gvfsd stacktrace is the same of obex-data-server
(0000551)
skirsdeda   
2009-02-10 15:32   
It seems that you have non-english character in filename ('à'). Does the same thing happen with filenames without non-engligh characters?
(0000552)
yelo3   
2009-02-10 15:38   
I tried to transfer "roma3.bmp" with the same results (I've not tried the backtraces, only the hangs)

is it possible that the problem is the name of "C:" directory?
Are you sure that it is a gvfs prpblem?
Can I test file trasfter without using gvfs?
(0000553)
skirsdeda   
2009-02-10 15:41   
"C:" directory is definitely not causing this problem.
Now I'm not so sure it's gvfs problem :)
You could test without gvfs. It will be a bit trickier. I'll post you the instructions soon.
(0000554)
yelo3   
2009-02-10 15:51   
Thank you very much! I really enjoy this quick support.
I hope it's not gvfs, since the support there is really slow
(0000555)
skirsdeda   
2009-02-10 16:02   
I have attached ods-session-test.py script here. You will need to edit it before running.
Open it and change:
bt_address to you device's bluetooth address
folder_to_go_to to some folder in your device (only one level, so you could use 'C:' for example)
file_to_send to some local file (full path)

Then run this script without any arguments, e.g. ./ods-session-test.py
It will test all the capabilities of your device in one go.
(0000556)
yelo3   
2009-02-10 16:39   
I removed the exit() at line 28 because it caused the exit of the program after printing "0"

now the output is:
0
Session object: /org/openobex/session0

nothing else
(0000557)
yelo3   
2009-02-10 16:43   
and this in obex-data-server

** Message: obex-data-server 0.4.4
** Message: Using Session bus
** Message: Parsed[0]: ftp
** Message: FTP uuid selected, first checking for Nokia OBEX PC Suite Services uuid
** Message: Connected SDP session
** Message: SDP search process
** Message: SDP search completed
** Message: getting RFCOMM channel
** Message: Connect in progress
** Message: Connected
** Message: Session created by: :1.106
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 0, response 32 (OK, Success)
** Message: Version: 0x10. Flags: 0x00 OBEX packet length: 65535

** Message: session_connect_result_cb
(0000558)
skirsdeda   
2009-02-10 19:09   
So now I have the suspicion that OBEX Connect command fails because it sends default FTP uuid. This PC Suite service might require it's own UUID in connect command. I'll try to implement this and let you know when it's done.
(0000559)
yelo3   
2009-02-10 19:21   
Don't know if it helps, but when using syncml I have to pass the identifier "PC Suite"
(0000560)
skirsdeda   
2009-02-10 21:38   
Please check with newest ods svn. Now it should use correct UUID for OBEX Connect.
(0000561)
yelo3   
2009-02-10 22:38   
Now it does not connect: I tried 2 times

** Message: obex-data-server 0.4.4
** Message: Using Session bus
** Message: Parsed[0]: ftp
** Message: FTP uuid selected, first checking for Nokia OBEX PC Suite Services uuid
** Message: Connected SDP session
** Message: SDP search process
** Message: SDP search completed
** Message: getting RFCOMM channel
** Message: Connect in progress
** Message: Connected
** Message: Using Nokia PC Suite services UUID for CMD_CONNECT
** Message: Session created by: :1.238
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 0, response 68 (Not found)
** Message: session_connect_result_cb
** Message: session closed
** Message: Removing listened DBUS name :1.238 (object: /org/openobex/session0)
** Message: Parsed[0]: ftpistened DBUS names list
** Message: FTP uuid selected, first checking for Nokia OBEX PC Suite Services uuid
** Message: Connected SDP session
** Message: SDP search process
** Message: SDP search completed
** Message: getting RFCOMM channel
** Message: Connect in progress
** Message: Connected
** Message: Using Nokia PC Suite services UUID for CMD_CONNECT
** Message: Session created by: :1.242
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 0, response 68 (Not found)
** Message: session_connect_result_cb
** Message: session closed
** Message: Removing listened DBUS name :1.242 (object: /org/openobex/session1)
** Message: Removed from listened DBUS names list
** Message: closing connection
(0000562)
skirsdeda   
2009-02-10 22:55   
FAIL :)
But with ods 0.4.4 using nautilus you get folder listings, right? It's only file sending that doesn't work.
(0000563)
yelo3   
2009-02-10 22:59   
with the ubuntu package 0.4.4-0ubuntu1 I can browse well. Also sending files works, using both copy/paste and the bluetooth applet. Only retreiving the file does not work
(0000564)
skirsdeda   
2009-02-10 23:02   
Try running ods-session-test.py with using ods 0.4.4. The problem is probably in gvfs..
(0000565)
yelo3   
2009-02-10 23:12   
As I've already told you, ods-session-test.py has 2 problems:
- it exits after checking the USB connections
- it hangs waiting for the 'connected' event

could you please see if you made an error in the code?
(0000566)
skirsdeda   
2009-02-10 23:39   
Sorry, I'm stupid today :D

Reattached fixed ods-session-test.py.
(0000567)
yelo3   
2009-02-10 23:44   
Hang when transferring file:

Session object: /org/openobex/session4
Connected
>>> RetrieveFolderListing()
<?xml version="1.0"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"
  [ <!ATTLIST folder mem-type CDATA #IMPLIED>
  <!ATTLIST folder label CDATA #IMPLIED> ]>
<folder-listing version="1.0">
   <folder name="C:" user-perm="RW" mem-type="DEV" label="Memoria telefono"/>
   <folder name="E:" user-perm="RW" mem-type="MMC" label="Memory card"/>
</folder-listing>
>>> GetCurrentPath()
/
>>> ChangeCurrentFolder(C:)
>>> RetrieveFolderListing()
<?xml version="1.0"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"
  [ <!ATTLIST folder mem-type CDATA #IMPLIED>
  <!ATTLIST folder label CDATA #IMPLIED> ]>
<folder-listing version="1.0">
   <parent-folder />
   <folder name="cache" modified="20050101T192432Z" user-perm="RWD" mem-type="DEV"/>
   <folder name="LOGS" modified="20050101T192434Z" user-perm="RWD" mem-type="DEV"/>
   <folder name="mmsvar" modified="20050101T192430Z" user-perm="RWD" mem-type="DEV"/>
   <folder name="Nokia" modified="20050101T192430Z" user-perm="RWD" mem-type="DEV"/>
</folder-listing>
>>> CreateFolder(Nonsense)
>>> GetCurrentPath()
C:/Nonsense/
>>> ChangeCurrentFolderBackward()
>>> GetCurrentPath()
C:/
>>> DeleteRemoteFile(Nonsense)
>>> SendFile(/home/yelo3/gmon.out)
>>> IsBusy()
1
Transfer started (gmon.out, /home/yelo3/gmon.out, 45747)
>>> GetTransferInfo()
-- Size = 45747
-- RemoteFilename = gmon.out
-- LocalPath = /home/yelo3/gmon.out
-- Time = 200
Progress: 100 %
Progress: 100 %
Transfer completed
>>> IsBusy()
0
>>> CopyRemoteFile(gmon.out, /home/yelo3/gmon_1.out)
Progress: 0 %
(0000568)
skirsdeda   
2009-02-10 23:48   
And ods output for that?
(0000569)
yelo3   
2009-02-10 23:52   
Really similar: it ends with lots of
** Message: io callback
(0000570)
skirsdeda   
2009-02-10 23:57   
Ok, then just try running ods-session-test with a file larger than 65535 bytes.
(0000571)
yelo3   
2009-02-11 00:07   
Again the file (6 Mb) is transferred but cannot be retreived
(0000572)
skirsdeda   
2009-02-11 00:24   
What a sad day today :( When fixing ods-session-test I discovered SEGFAULT in openobex and I still can't figure out this bug. The only thing that strikes me is that your Nokia requires 65535 packet length (which is a maximum and is rarely used). I remember testing ods with this packet length by sending from ods to ods and there were some hangs AFAIK. That's why ods uses 32767 byte packet length. To sum up, this bug will need some peculiar investigation :) Thanks for your superb cooperation, I'll let you know when I figure smth out.
(0000573)
yelo3   
2009-02-11 00:41   
I also had one segfault using the svn version... That's why I really hate C in favour to C# or Java!
anyway where did you see that my nokia requires 65535 packets? the result with a larger file was exactly the same

At home I have other nokia phones to test, but I'll be back on friday. In this time we can still continue to test my 6630. Anyway I remember that in the past the gnome-vfs-obexftp backend used to work, so I don't think my nokia is broken
(0000574)
skirsdeda   
2009-02-11 00:44   
You can see in ods.log that your Nokia suggests 65535 packet length when connecting.
(0000575)
skirsdeda   
2009-02-11 00:53   
BTW, I also favour C# and Java but we have to wait at least 10 years until libraries are developed using high level languages :) And having in mind that Apple uses objective C exclusively (and GNOME prefers pure C), maybe even more years :D
(0000576)
yelo3   
2009-02-11 01:00   
I think C# is quite complete now. It has glib, gtk, dbus...
Could this app be written using it? or the usb & bt libraries are not present in c#?
(0000577)
skirsdeda   
2009-02-11 02:00   
While Bluez DBus API could be used in C#, no C# bindings exist for libbluetooth, openobex and libusb. And openobex has such a bad design that writing any bindings for it would be plain stupid :D
(0000578)
yelo3   
2009-02-11 13:25   
just for a test I used windows with nokia pc suite, and it worked.

I also tried on linux using obexftp
obexftp -b "Nokia 6630" -B 12 -g E:/gmon.out
which worked too
(0000579)
skirsdeda   
2009-02-11 13:46   
It worked with obexftp probably because it doesn't care about packet length. It probably uses the same default all the time.
(0000580)
yelo3   
2009-02-11 13:50   
Where can I change packet length in the source, so that I can test if it works?
(0000581)
yelo3   
2009-02-11 14:07   
... I changed the file and this time worked... (I'm running svn now)
it seems related on the file content maybe?

I was able to retreive a text file of 9 bytes (there are some errors but it worked) the two files have the same content!!!

this is the final part of the output of ods-test:
>>> CopyRemoteFile(test.txt, /home/yelo3/test_1.txt)
Progress: 0 %
Transfer started (test.txt, /home/yelo3/test_1.txt, 0)
>>> GetTransferInfo()
-- Size = 0
-- RemoteFilename =
-- LocalPath =
Progress
Transfer completed
>>> DeleteRemoteFile(test.txt)
>>> SendFile(/home/yelo3/test.txt)
>>> Cancel()
Failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Progress
Transfer completed
>>> ChangeCurrentFolderToRoot()
Failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
>>> GetCurrentPath()
Failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
False
>>> GetCapability()
Failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
False
>>> Disconnect()
Failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.





and this is obex-data-server -n:
** Message: obex-data-server 0.4.4
** Message: Using Session bus
** Message: Parsed[0]: ftp
** Message: FTP uuid selected, first checking for Nokia OBEX PC Suite Services uuid
** Message: Connected SDP session
** Message: SDP search process
** Message: SDP search completed
** Message: getting RFCOMM channel
** Message: Connect in progress
** Message: Connected
** Message: Session created by: :1.234
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 0, response 32 (OK, Success)
** Message: Version: 0x10. Flags: 0x00 OBEX packet length: 65535

** Message: session_connect_result_cb
** Message: LOCK ods_session_get_by_type
** Message: io callback
** Message: event: 9
** Message: There is some data
** Message: Writing to buf
** Message: event: 9
** Message: event: 3
** Message: obex_request_done: command 3, response 32 (OK, Success)
** Message: UNLOCK obex_request_done
** Message: LOCK ods_session_setpath
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 5, response 32 (OK, Success)
** Message: UNLOCK obex_request_done
** Message: LOCK ods_session_get_by_type
** Message: io callback
** Message: event: 9
** Message: There is some data
** Message: Writing to buf
** Message: event: 9
** Message: event: 3
** Message: obex_request_done: command 3, response 32 (OK, Success)
** Message: UNLOCK obex_request_done
** Message: LOCK ods_session_setpath
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 5, response 32 (OK, Success)
** Message: UNLOCK obex_request_done
** Message: LOCK ods_session_setpath
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 5, response 32 (OK, Success)
** Message: UNLOCK obex_request_done
** Message: LOCK ods_session_delete_remote_file
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 2, response 32 (OK, Success)
** Message: UNLOCK obex_request_done
** Message: LOCK ods_session_send_file_ext
** Message: event: 8
** Message: obex_writestream
** Message: writestream from File: 7
** Message: event: 8
** Message: obex_writestream
** Message: writestream from File: 7
** Message: read 0 bytes (EOF)
** Message: UNLOCK ods_session_send_file_ext
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 2, response 32 (OK, Success)
** Message: LOCK ods_session_copy_remote_file_full
** Message: UNLOCK ods_session_copy_remote_file_full
** Message: io callback
** Message: event: 0

** (obex-data-server:12690): WARNING **: PROGRESS: 0
** Message: io callback
** Message: event: 9
** Message: There is some data
** Message: event: 9
** Message: event: 3
** Message: obex_request_done: command 3, response 32 (OK, Success)

** (obex-data-server:12690): WARNING **: MODTIME: -1
** Message: LOCK ods_session_delete_remote_file
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 2, response 32 (OK, Success)
** Message: UNLOCK obex_request_done
** Message: LOCK ods_session_send_file_ext
** Message: event: 8
** Message: obex_writestream
** Message: writestream from File: 7
** Message: event: 8
** Message: obex_writestream
** Message: writestream from File: 7
** Message: read 0 bytes (EOF)
** Message: UNLOCK ods_session_send_file_ext
** Message: LOCK ods_session_cancel
** Message: io callback
** Message: event: 3
** Message: obex_request_done: command 2, response 32 (OK, Success)
** Message: LOCK ods_session_setpath
(0000582)
yelo3   
2009-02-11 14:13   
It also works with jpg files.
(0000583)
yelo3   
2009-02-11 14:24   
Alsu using gvfs works, but lets me do only 1 transfer, then it hangs.

Maybe it's exactly the same thing which happens using the yout test script: after the transfert nothing else will work.
(0000584)
yelo3   
2009-02-11 14:31   
It also works with 0.4.4-0ubuntu1 ubuntu original............
I really can't understand!!!! I did exactly the same operations of yesterday from nautilus!
(still only 1 file copy works)
(0000585)
skirsdeda   
2009-02-12 18:44   
I tested with maximum packet length and something very wrong happens inside openobex. The only way to fix this is to actually analyze what's happening there and believe me, openobex code base is really difficult to understand :)
(0000586)
yelo3   
2009-02-12 18:50   
My tests were done without any change in packet length. I'm using plain ubuntu packages.
Are you are able to understand what happens when the file transfert ends, and why dbus will not answer
(0000587)
skirsdeda   
2009-02-12 21:23   
It turns out that openobex fails to receive packets larger than 43344 bytes! I don't know where this magic number comes from yet :) openobex is just a huge pain in the ass.
(0000588)
skirsdeda   
2009-02-12 21:36   
(edited on: 2009-02-12 21:47)
You could confirm this by compiling openobex with debug output enabled. You would have to get openobex source and do smth like this:
./bootstrap
./configure --prefix=/usr --enable-debug
then change OBEX_DEBUG to 4 in config.h
make
make install

Then ods output will have openobex debug output as well.

(0000589)
yelo3   
2009-02-12 22:43   
I downloaded openobex-1.4 from bluez site
./bootstrap was not present, so I passed to ./configure etc.

I executed the usual things and collected the output (I killed obex-data-server as soon as the first dbus error), which I will attach now
(0000594)
yelo3   
2009-03-05 12:28   
Just to inform you, also fedora 11 alpha has this issue




Viewing Issue Advanced Details
159 [obex-data-server] FTP minor always 2009-03-02 11:12 2009-03-05 03:35
baybal  
skirsdeda  
normal  
assigned  
open  
none    
none  
Evil characters handling in ftp
ods doesn't work with a whole set of evil chars like .~ and so on
Notes
(0000591)
skirsdeda   
2009-03-05 02:05   
Could you be more precise. How those evil characters should work and where?
(0000592)
baybal   
2009-03-05 03:07   
When I trying to obex push files with characters like "~?" ods don't want to receive it.
(0000593)
skirsdeda   
2009-03-05 03:35   
OK, I'll see what I can do about this.




Viewing Issue Advanced Details
156 [obex-data-server] General minor always 2009-02-06 17:51 2009-02-08 17:25
yelo3  
skirsdeda  
normal  
closed 0.4.2  
fixed  
none    
none  
can't browse nokia phone 6630, channel 10 used istead of channel 12
Nokia phones can't be browsed using bluetooth channel 10. Channel 12 should be used instead.
bt-browse (3 KB) 2009-02-06 19:56
Notes
(0000531)
skirsdeda   
2009-02-06 19:26   
Channels are used according to SDP records exposed by remote device. Please provide the output of 'sdptool browse <bluetooth_address>' for your device so that this can be investigated properly. There already is an exception for some Nokia devices when connecting to FTP, maybe your mobile needs another case to be introduced.
(0000532)
yelo3   
2009-02-06 20:13   
in ods-bluez.c in the function sdp_get_channel the channel is retreived using the constant RFCOMM_UUID. Maybe this is the wrong file

Can you point me at the code where the exception is made? thanks
(0000533)
skirsdeda   
2009-02-06 20:25   
(edited on: 2009-02-06 21:23)
This is just parsing of SDP record. The actual exception is at ods_bluez_get_client_socket (we first try to search for OBEX_NOKIAFTP_UUID, if this is not found we use standard FTP_UUID).

(0000534)
skirsdeda   
2009-02-06 21:34   
This is actually a bug. The code that switches to NOKIAFTP_UUID actually doesn't work. But it's easy to fix.
(0000535)
skirsdeda   
2009-02-06 23:16   
Try newest svn, I hope I fixed it. And huge thanks for finding this bug, because I wouldn't have noticed..
(0000537)
yelo3   
2009-02-08 15:32   
Can I have the single patch so I can build a package for my distribution?
(0000538)
skirsdeda   
2009-02-08 16:27   
I'll make a 0.4.3 release today. Or do you still need a single patch?




Viewing Issue Advanced Details
153 [obex-data-server] General major N/A 2009-01-27 04:41 2009-02-08 17:25
cosimoc  
skirsdeda  
normal  
closed 0.4.2  
fixed  
none    
none  
RemoteCopy and RemoteMove methods haven't been added to the DBus XML descriptor.
SSIA, patch attached.
remote-methods.patch (2 KB) 2009-01-27 04:41
Notes
(0000525)
skirsdeda   
2009-01-27 13:27   
Fixex in svn rev 2473. Sorry for such a stupid bug :)




Viewing Issue Advanced Details
150 [obex-data-server] General feature always 2008-12-01 07:35 2009-02-08 17:25
Jo  
skirsdeda  
normal  
closed 0.4.2  
fixed  
none    
none  
How can we differentiate the signals from PUT or GET requesst?
ODS OBEX server sends TransferStarted, TransferProgress, TransferCompleted signals to the host application if OBEX client requests GET or PUT operation. But there is no way for the host application to know which operation the client requested, i.e, GET or PUT. Therefore the host application can not notify the user which operation has made.

I think if ODS sends one more information in TransferStarted singal about the operand type, subsequent signals can be differentiated accordingly.
Notes
(0000515)
skirsdeda   
2008-12-01 11:37   
I could put this info in transfer info, then you would have to call GetTransferInfo after getting TransferStarted signal.
(0000516)
Jo   
2008-12-01 11:49   
That's a good idea. I will test it immediately if the code is available.
(0000529)
Jo   
2009-02-06 13:03   
Hi, Tadas,
How do you think about the following patch in ods_obex_transfer_get_info function, ods-obex.c? As you said we can distinguish the obex command type after receiving TS signal using GetTransferInfo dbus call.

--
    if (obex_context->obex_cmd==OBEX_CMD_GET)
        g_hash_table_insert (info, "OBEXCommand", g_strdup("GET"));
    else if (obex_context->obex_cmd==OBEX_CMD_PUT)
        g_hash_table_insert (info, "OBEXCommand", g_strdup("PUT"));
    else
        g_hash_table_insert (info, "OBEXCommand", g_strdup("Not Available"));
(0000530)
skirsdeda   
2009-02-06 14:20   
Yes, this is perfectly fine. I just forgot about this bug.. I'll submit a fix soonish :)
(0000536)
skirsdeda   
2009-02-06 23:29   
Fixed in svn rev 2529 (ditched the "NotAvailable" (just doesn't add OBEXCommand if it's neither PUT nor GET)




Viewing Issue Advanced Details
148 [obex-data-server] General major always 2008-11-20 03:56 2009-02-08 17:25
Jo  
skirsdeda  
normal  
closed 0.4.2  
fixed  
none    
none  
After calling CancelSessionConnect, unable to reconnect OBEX server for about 1 minute.
If we cancel the client connection while the OBEX server is waiting to determine whethere to accept or reject our connection, ODS and our application terminates the onging connection without problems. But if we try the connection again to the same target, the connection fails for about 1 minutes. After that period we can connect it normally.

I attach the ODS logs below.
(1st client connect and cancel connect)
** Message: Parsed[0]: ftp
** Message: Connected SDP session
** Message: SDP search process
** Message: SDP search process
** Message: SDP search completed
** Message: getting RFCOMM channel
** Message: Connect in progress
** Message: session closed
** Message: Removing listened DBUS name :1.78 (object: /org/openobex/session6)

(2nd client connect trial)
** Message: Parsed[0]: ftp
** Message: Connected SDP session
** Message: SDP search process
** Message: SDP search process
** Message: SDP search completed
** Message: getting RFCOMM channel
** Message: session closed
** Message: Removing listened DBUS name :1.78 (object: /org/openobex/session7)
Notes
(0000507)
skirsdeda   
2008-11-27 19:53   
Fixed in svn revision 2265. Check if it works.




Viewing Issue Advanced Details
147 [obex-data-server] General minor always 2008-11-14 14:37 2009-02-08 17:25
skirsdeda  
skirsdeda  
normal  
closed 0.4.2  
fixed  
none    
none  
ServerSession.Cancel does not work correctly
When calling ServerSession.Cancel during incoming transfer, it does not send reply because OBEX_EV_ABORT never happens.
Notes
(0000505)
skirsdeda   
2008-11-14 14:59   
Also affected incoming transfer in Sessions. Fixed in svn revision 2186.




Viewing Issue Advanced Details
146 [obex-data-server] General crash have not tried 2008-11-13 20:54 2009-02-08 17:25
skirsdeda  
skirsdeda  
high  
closed 0.4.2  
fixed  
none    
none  
Crash when trying to close ServerSession
If ServerSession suspends request to wait for Accept/Reject and client app disconnects from the bus, ods fails to properly close ServerSession.
Notes
(0000504)
skirsdeda   
2008-11-14 14:32   
Fixed in svn rev 2185




Viewing Issue Advanced Details
152 [obex-data-server] General feature N/A 2009-01-23 20:06 2009-02-08 16:51
cosimoc  
skirsdeda  
normal  
closed 0.4.2  
no change required  
none    
none  
Should emit a signal when the directory is created
obex-data-server should emit a signal when a new directory is created, just like it emits TransferCompleted when a file has been copied.
This is needed for the gvfs obexftp server, as when we upload a directory with SendFile, we need to cd into it to recursively copy children.
Notes
(0000522)
skirsdeda   
2009-01-24 01:08   
Makes sense. This should be easy to implement.
(0000523)
cosimoc   
2009-01-27 04:18   
I found out this is not important for the obexftp gvfs backend anymore, as my issues were caused by another bug in the backend. It could still be nice to have as a separate signal, but I'd rather have a full featured monitor API instead.
(0000524)
skirsdeda   
2009-01-27 13:17   
Unfortunately there is no way of implementing monitoring with OBEX protocol. It's just not possible.
(0000539)
skirsdeda   
2009-02-08 16:51   
Actually there is no need for such signal because CreateFolder returns only after operation has finished (either suceeded or failed). All other non-transfer methods have the same behaviour. This has now been clarified in dbus-api.txt.




Viewing Issue Advanced Details
151 [obex-data-server] FTP major always 2008-12-02 07:43 2009-02-07 00:12
Jo  
skirsdeda  
normal  
closed 0.4.2  
fixed  
none    
none  
"local_file_test" for GET operation fails if I pass a location to save a file.
Using the newest ODS code from SVN, if I call "ods_session_copy_remote_file" ODS now checks the local path using g_file_test but the local path means the path where received file will be saved as explained in "dbus-api.txt" file. So if I pass a location at which I want to save a received file, g_file_test fails because the location is empty currently. Previous ODS only checks if the local_path is "\0". I wonder if the meaning of the local_path has changed.
Notes
(0000518)
skirsdeda   
2008-12-02 13:06   
Sorry, this is my mistake. Will be fixed.
(0000519)
skirsdeda   
2009-01-16 17:05   
Sorry for a long delay. This one is fixed in svn now.




Viewing Issue Advanced Details
154 [obex-data-server] General minor have not tried 2009-01-28 16:59 2009-01-28 23:29
hadess  
 
normal  
closed  
no change required  
none    
none  
Export USB Serial number
If the USB serial number is exported, we can use it to easily match against devices using HAL, for the gvfs USB ObexFTP support.

Patch attached.
ods-export-usb-serial.patch (1 KB) 2009-01-28 16:59
Notes
(0000526)
hadess   
2009-01-28 17:09   
Never mind, I'm an idiot, feel free to close.




Viewing Issue Advanced Details
145 [obex-data-server] General feature always 2008-10-30 03:14 2009-01-18 17:16
Jo  
 
normal  
assigned 0.4.1  
open  
none    
none  
Two level security mode support in ODS
Recently I have read bluetooth obex specifications (GOEP, OPP, FTP) regarding the security mode. There are two levels of security check for the object exchange.

1. OBEX authentication
When the client tries to connect to a OBEX server, server may ask the user whethre to accept the incoming connection or not. ODS should suspend the client connection waiting for the accept/reject response from the user.
This feature is not used in OPP but should be implemented in FTP according to the spec. So I think ODS should have one more step of authentication for the initial FTP conneciton.

2. File authentication
Currently ODS suspends when a client pushes a file to a server but I think ODS should also be able to suspend when a client pulls a file form a server, e.g., FTP get operation. I didn't check the spec but confirmed this feature in commercial phones.

How do you think about this, Tadas?
Notes
(0000496)
skirsdeda   
2008-10-30 20:43   
1. I don't think that the first situation is important for us. CreateBluetoothServer has require_pairing argument which ensures that the devices are paired prior to doing any OBEX transfers. If devices are paired already, it should be considered safe to accept transfers from that device.
2. That is possible, but again for FTP require_pairing should be set.

Does this make sense to you?
(0000500)
Jo   
2008-11-03 16:55   
1. Regardless of the pairing status, the client device should be asked for the OBEX authentication unless it is authorized locally in FTP server side. Pairing does not mean the client device is always trusted. So I think asking user whenever there comes a new OBEX session makes sense.
2. Same reason :)
(0000501)
skirsdeda   
2008-11-11 17:10   
I just realized that it might be possible to implement this quite easily by letting Bluez handle the authorization.
(0000502)
Jo   
2008-11-12 10:42   
That's a good news.
Do you mean OBEX authorization and all put/get/delete authorization stuffs might be possible through BlueZ?
I totally agree that a common authorization module should exist for all those procedures.
(0000503)
Jo   
2008-11-12 11:38   
By the way, the openobex 1.4 was released :)
(0000508)
skirsdeda   
2008-11-29 17:01   
Unfortunately, it is not possible to do this via Bluez API because ods uses plain libbluetooth to store SDP records. We have to think of some other way...
(0000520)
Jo   
2009-01-17 10:13   
Welcome back, Tadas.

Recently I have worked around for the authorization/authentication procedures for the BT profiles relevent to OBEX and noticed that OBEX authentication is a mandatory requirement to support in GOEP based profiles. It's written in chapter 2.4, GOEP and the detailed spec is in OBEX protocol spec. But it's not implemented in openobex 1.4. I asked to the openobex mailing list and found that obexpushd 0.8 supports OBEX authentication procedure without guarantee. The maintainer of obexpushd, Hendrik, wrote a patch for it and sent to the openobex community. So basically OBEX authentication is not supported in current openobex and I misunderstood it in this bug report.

The one I asked in this bug report is the authorization procedure which bluez provides through a dbus authorization agent. When I tried to use the "RequestAuthorization" API, bluez couldn't find the relevent record because it's not registered by "AddRecord" dbus call as you have wrote in the previous comment. For now I have modified the bluez service.c file locally and passed the required uuid and name filed. However I think if ODS registers the SDP by the dbus call it will be a no problem, which is not easy though :)

Thanks and hope you spend a wonderful time in Oslo.
(0000521)
skirsdeda   
2009-01-18 17:16   
Refactoring ods to use XML records would require quiet some effort. I'd rather if bluez dbus interface supported authorization procedures for binary SDP records. I haven't really investigated how authorization is implemented in bluez so it's still difficult to say which option is the best.

And thanks for welcoming :)




Viewing Issue Advanced Details
149 [obex-data-server] General minor always 2008-11-25 08:34 2008-12-02 07:23
Jo  
 
normal  
new 0.4.2  
open  
none    
none  
TransferCompleted signal is emitted even the connection is rejected.
When a OBEX client connects to a server with the auto_accept as false, the server user is prompted asking whether to accept the incoming connection or not. If the user rejects the conneciton, the OBEX session is removed successfully. But the TransferCompleted signal is sent to the client and the client misbehaves in my casse :)

So I think TransferCompleted signal should not be emitted if the server user have rejected the connection, i.e., ODS needs to check the acceptance condition at the OBEX_CMD_PUT case.
Notes
(0000506)
skirsdeda   
2008-11-25 21:55   
I am not so sure that this is a good idea. Basically the transfer ends either with ErrorOccurred or TransferCompleted signals. You are proposing to introduce one more case where none of these signals would be emitted upon transfer completion. Unless you can convince me to do this, I would recommend changing your code.
(0000510)
Jo   
2008-12-01 03:43   
Hi,
I add more remarks and logs about the situation in more tail.
If the OBEX server user rejects the incoming client OPP file transfer request, ODS sends series of signals as the dbus-monitor logs below. ODS sends TransferCompleted signal after series of TransferStarted and TransferProgress signals as a normal transfer success case, even though the server has rejected the request. The server application would understand that the TransferCompleted signal does not mean the transfer success cause the application has rejected it. But the TransferCompleted signal itself does not say anything about the result of the client request.

That's why I think ODS should not send TransferCompleted signal in this case rather shoud send ErrorOccurred in this case.

By the way, I verified that the bug: 0000148 has been fixed.

--
signal sender=:1.88 -> dest=(null destination) path=/org/openobex/server1; interface=org.openobex.Server; member=SessionCreated
   object path "/org/openobex/serversession0"
signal sender=:1.88 -> dest=(null destination) path=/org/openobex/serversession0; interface=org.openobex.ServerSession; member=TransferStarted
   string "test.jpg"
   string ""
   uint64 88679
signal sender=:1.88 -> dest=(null destination) path=/org/openobex/serversession0; interface=org.openobex.ServerSession; member=TransferProgress
   uint64 0
signal sender=:1.88 -> dest=(null destination) path=/org/openobex/serversession0; interface=org.openobex.ServerSession; member=TransferProgress
   uint64 0
signal sender=:1.88 -> dest=(null destination) path=/org/openobex/serversession0; interface=org.openobex.ServerSession; member=TransferCompleted
signal sender=:1.88 -> dest=(null destination) path=/org/openobex/serversession0; interface=org.openobex.ServerSession; member=Disconnected
signal sender=:1.88 -> dest=(null destination) path=/org/openobex/server1; interface=org.openobex.Server; member=SessionRemoved
   object path "/org/openobex/serversession0"
--
(0000511)
skirsdeda   
2008-12-01 03:54   
Which ods version or svn revision are you using here?
(0000513)
Jo   
2008-12-01 06:19   
I'm using ODS release 0.4.2 with openobex 1.4.
(0000514)
skirsdeda   
2008-12-01 11:35   
I did some work on this after 0.4.2, so get newest ods from svn.
(0000517)
Jo   
2008-12-02 07:23   
I tested with the newest ODS version in SVN.
There has been lots of changes during this short period of time :)
Seeing the logs below from dbus-monitor tool, Cancelled singnal is emitted before the TransferCompleted singal followed by Disconnected signal. I think ErrorOccurred signal or no signal is better in this initial cancelling case because actual transfer has rejused by the server. But if this stream of signal flow breaks current ODS signaling mechanism I would change my application code using previous information.

--
signal sender=:1.145 -> dest=(null destination) path=/org/openobex/server1; interface=org.openobex.Server; member=SessionCreated
   object path "/org/openobex/serversession3"
signal sender=:1.145 -> dest=(null destination) path=/org/openobex/serversession3; interface=org.openobex.ServerSession; member=TransferStarted
   string "apple.bmp"
   string "/tmp/apple.bmp"
   uint64 116216

signal sender=:1.145 -> dest=(null destination) path=/org/openobex/serversession3; interface=org.openobex.ServerSession; member=Cancelled
signal sender=:1.145 -> dest=(null destination) path=/org/openobex/serversession3; interface=org.openobex.ServerSession; member=TransferCompleted
signal sender=:1.145 -> dest=(null destination) path=/org/openobex/serversession3; interface=org.openobex.ServerSession; member=Disconnected
signal sender=:1.145 -> dest=(null destination) path=/org/openobex/server1; interface=org.openobex.Server; member=SessionRemoved
   object path "/org/openobex/serversession3"
--




Viewing Issue Advanced Details
144 [obex-data-server] FTP crash always 2008-10-30 02:42 2008-11-01 20:16
Jo  
skirsdeda  
normal  
closed  
fixed  
none    
none  
Trying to print NULL pointer in ARM build environment
Same crash reported below.
In case of folder listing, it seems that the remote variable is NULL and incurs a crash when we try to print it in ARM build.
The file is ods-obex.c and the line is followed:

g_message ("name: %s, type: %s", obex_context->remote, obex_context->type);

cheers,
Notes
(0000497)
skirsdeda   
2008-10-31 23:36   
Fixed in svn rev 2142




Viewing Issue Advanced Details
143 [obex-data-server] General crash always 2008-10-27 15:55 2008-11-01 20:16
ajay  
skirsdeda  
normal  
closed 0.4.1  
fixed  
none    
none  
Crash due to NULL pointer access ( ARM Build) in g_message in file ods-manager.c
When testing on ARM9 Target using Montavista toolchain (v5t) the library crashes when using the Test Application (ods-dbus-test). The crash happens when trying to Push a File via OPP profile with no server channel specified as command line arugments for the Test App(ods-dbus-test).


The crash seems to happen due to NULL pointer access of parsed[1], since the Server channel is not specified. Commenting off the line seems to solve the issue.

Line 687 in ods-manager.c
g_message ("Parsed[0]: %s, Parsed[1]: %s", parsed[0], parsed[1]);
Notes
(0000495)
skirsdeda   
2008-10-27 16:15   
Check if newest svn version works ok.




Viewing Issue Advanced Details
24 [obex-data-server] FTP feature N/A 2007-11-30 16:58 2008-11-01 19:41
skirsdeda  
skirsdeda  
normal  
assigned  
open  
none    
none  
implement CMD_ACTION
implement CMD_ACTION for FTP (described in Errata for OBEX specification 1.3)
Notes
(0000052)
hadess   
2008-01-24 02:45   
This would be needed to implement copy and move (especially move in terms of "rename") in the gvfs backend.
(0000053)
skirsdeda   
2008-01-24 02:51   
Yes, but this feature was never included in OBEX specification. It's in errata for OBEX spec 1.3. Therefore, there are virtually no implementations that support this. Quite easy to implement though.
(0000499)
skirsdeda   
2008-11-01 19:41   
Initial client support included in Session object (RemoteCopy and RemoteMove methods) in svn rev 2143.




Viewing Issue Advanced Details
84 [obex-data-server] General feature always 2008-05-21 20:54 2008-11-01 17:01
cktakahasi  
skirsdeda  
low  
closed 0.3.1  
won't fix  
none    
none  
Send TransferProgress signal based on the percentage of the data sent
For big files, TransferProgress signal is sent many times and it doesn't provide meaningful information. I suggest send the D-Bus signal based on the percentage of the sent data to avoid excessive signals on the BUS.

See the log below(file size 6.73M):
...
>>/org/openobex/serversession6<< Progress: 97 %
>>/org/openobex/serversession6<< Progress: 97 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 98 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 99 %
>>/org/openobex/serversession6<< Progress: 100 %


17 D-Bus signals are sent to represent just 1%
Notes
(0000281)
heston_james   
2008-05-27 11:00   
I'm not quite sure how this issue could be tackled, from what I can see the progress update is issued by the obex library and represents bytes that have been transfered.

Whilst we could do some internal calculations in ods so that the signal is emmited only once for each percentage you have to bare in mind that with smaller files you currently have the adverse effect that it increments in much larger chunchs. such as: 30% - 66% - 92%

What are your thoughts on how this should be implemented? Perhaps just register the percentage before we emit it the first time, and then perform a sanity check to ensure its not been sent before?

Heston
(0000498)
skirsdeda   
2008-11-01 17:01   
Sometimes there is no way to know what the percentage is, because we don't know the size of the object being sent. Secondly, it isn't worth breaking API for something that changes nothing.




Viewing Issue Advanced Details
129 [obex-data-server] General feature sometimes 2008-09-06 08:45 2008-10-25 22:09
Jo  
skirsdeda  
urgent  
closed 0.3.4  
fixed  
none    
none  
Application sometimes misses consecutive ODS signals.
1. As an ODS client (session)
ODS emits the "Connected" signal right after the "SessionCreated" signal. The application sometimes doesn't catch the "Connected" signal and hangs especially when the bonding procedure is performed just before.
2. As an ODS server (server-session)
ODS emits the "TransferStarted" signal right after the "Connected" signal and the application misses the "TransferStarted" signal and hangs too.

I run the ODS and bluez on a mobile phone platform. In a normal situation when the pairing is done previously, the OPP operates well. But when there are heavy IO overheads, e.g., just after the bonding procedure, the application sometimes misses a signal from ODS.

I think if the ODS emits the second signal after getting a feedback from the application about the first signal this problem won't happen. The simple g_signal_emit functions seems not to assure the reception of the signals. In a tentative measure, I make the ODS sleep for a short period of time before sending the second signal and this works. Do you have a better suggestion or plan to handle this problem?
Notes
(0000410)
skirsdeda   
2008-09-12 19:47   
The first scenario was fixed by changing API and emitting SessionConnected in Manager object. This is available in SVN and will be included in 0.4 release.

Second scenario wasn't previously reported so we need to figure something out.
(0000416)
Jo   
2008-09-19 09:10   
When we try to send a file to a non-paired device via OPP, we first perform bonding procedure and start the transmission right after that. If the mobile device does lots of I/O related jobs, the device sometimes misses the TransferStarted signal. This doesn't happen if the pairing procedure has already performed before the OPP transfer trial has made.

I'm really anticipating the ODS 0.3.5 or 0.4 release :)
Thanks a lot!
(0000417)
heston_james   
2008-09-20 13:22   
Jo,

Just out of interest, which mobile platform are you running this on?

Cheers,

Heston
(0000425)
Jo   
2008-09-29 05:48   
(edited on: 2008-09-29 06:01)
Sorry for the delayed reply.
I'm running bluez + ODS on a linux(2.6.26) based mobile platform, one of LiMo candidate. It is not perfectly stabilized yet but running well :)
I'm sorry but I can't say about our current project status in more detail.

(0000426)
heston_james   
2008-09-29 11:58   
Hey Jo,

No problem about the slow reply :-) Sounds interesting, I can appreciate that you've got to keep certain things quiet.

There seems to be a large amount of work on mobile based linux at the moment, its all quite exciting, it'll be interesting to see where it all goes :-)

Cheers,

Heston
(0000490)
skirsdeda   
2008-10-23 23:25   
A fix is now in svn. See 0000140 for more info.




Viewing Issue Advanced Details
142 [obex-data-server] General minor sometimes 2008-10-20 13:53 2008-10-25 22:09
Jo  
skirsdeda  
normal  
closed 0.3.4  
fixed  
none    
none  
About the necessity of using "g_assert" in ODS
Hi, it's great to see the release of 0.4 ODS today :)

I'll report here a minor stability issue regarding the "g_assert" function which is used several times in ODS sesseion and server session functions. The problematic code, I think, is the following line.

g_assert (!session->priv->dbus_context);

For examble, if the "Cancel" dbus call is invoked two times consecutively, the assertion fails and ODS dies. I know this is not a normal case but I have experienced several times before writing applications. Nowadays I double-check not to call multiple times in my application but I think ODS will be more robust if we don't use g_assert. We may use dbus_g_method_return_error function with a proper error code inside a conditional statement. This issue is also present in 0.4 version.

Cheers.
Notes
(0000487)
skirsdeda   
2008-10-21 13:00   
Yes, I agree with that.
(0000491)
skirsdeda   
2008-10-23 23:39   
Fixed in svn revision 2103.




Viewing Issue Advanced Details
140 [obex-data-server] OPP minor have not tried 2008-10-08 17:11 2008-10-25 22:09
hadess  
skirsdeda  
normal  
closed  
fixed  
none    
none  
ods trunk hangs when ask accept
Launch the test server, and ask whether to accept. Send a file using some particular phones:
$ ./ods-server-test.py --ask-to-accept opp /tmp/
Server object: /org/openobex/server0
Started
Session created: /org/openobex/serversession0
Session Bluetooth address: 00:1C:D6:86:B1:4C
<hangs here>

This is the same issue I reported a couple of weeks ago with dwmw2's phone. Michael, on the GNOME bugzilla can reproduce the problem as well.

See http://bugzilla.gnome.org/show_bug.cgi?id=555531 [^]
log (6 KB) 2008-10-18 16:38
Notes
(0000444)
monreal   
2008-10-08 17:26   
Some more information,

$ ./ods-server-test.py --ask-to-accept opp /tmp/

hangs as described above.

$ ./ods-server-test.py opp /tmp/

works fine.

Tested with two phones:

Nokia 6300 (s40): just hangs at "0%", I can press cancel
SE k750i: hangs without any way to cancel, I have to remove the battery :(
(0000450)
skirsdeda   
2008-10-09 20:16   
(edited on: 2008-10-09 20:18)
Sorry, but I can't make any sense from this bug. I need more information. The only code that acts differently according to auto_accept setting is just a few lines. Before that, there should be "suspending request" message in ods output. Without ods output I can't really do anything since this stuff works for me.

So what I need you to do is:
1) run ./obex-data-server --no-daemon
2) run ./ods-server-test.py --ask-to-accept opp /tmp
3) start sending file from phone
4) post me output of obex-data-server and ods-server-test.py when it hangs. Ideally, you could also run obex-data-server with gdb and see at which place in code it actually hangs.

(0000485)
monreal   
2008-10-18 16:39   
Log of the commands above (+gdb) attached.

Note: tested with the 6300 only (don't have the SE with me atm) and ods trunk. The transfer now stops at 11%, not at 0% as before.
(0000486)
skirsdeda   
2008-10-18 17:39   
Thanks for output, it is now clear what happens. The problem is that application (in this case ods-server-test) misses TransferStarted signal and this has already been reported. I'll make this one top priority for 0.4.1 release. I hope this can be solved without changing API by ensuring some time between ServerSession creation and TransferStarted emission.
(0000489)
skirsdeda   
2008-10-23 23:23   
A fix for missing TransferStarted is in svn rev 2102.

I added a timeout between emitting Server.SessionCreated and ServerSession.TransferStarted. The current timeout is set to 250 milliseconds. Please check if this is sufficient.
(0000494)
skirsdeda   
2008-10-25 17:17   
TransferStarted wasn't being emitted at all as it turns out. This was because obex_context->report_progress was being set incorrectly in ServerSession. This should be fixed in svn revision 2114.




Viewing Issue Advanced Details
112 [obex-data-server] OPP feature always 2008-07-28 14:54 2008-10-17 20:00
plemagour i686  
skirsdeda gentoo 2008.0  
normal linux 2.6.23  
assigned 0.3.4  
open  
none    
none  
No function exists to pull a business card from an OPP server
The CopyRemoteFile function used to get a file from a FTP server takes two parameters : remote_filename and local_path.

In the OPP case, we should be able to call a function without any remote_filename option. That function should ask the OPP server for the default business card.

Here is an extract from the OPP profile specification :

"In the Object Push Profile (OPP), the Push Client only pulls data from the Push Server when it is getting the Default Get Object (owner's business card).
If there is no Default Get Object, the Push Server will respond with the error
response code "NOT FOUND".

The Push Client must use the Type Header when getting the Default Get
Object from the Push Server.
The Name Header is not used when getting the Default Get Object from the
Push Server. If the Push Client sends a non-empty Name header, the Push
Server should respond with the response code "FORBIDDEN"
"
Notes
(0000388)
heston_james   
2008-07-28 15:16   
Skirs,

I'm not sure whats currently implemented with regards to this but this is obviously a two way process so we need to implement CopyRemoteFileByType() into the session object as discussed in IRC, but also, we need to look at whether the Server object needs to be ammended to allow us to specify a "Default Get Object" on our ODS server in case that a client requests the "Default Get Object" from us.

Heston
(0000396)
skirsdeda   
2008-08-04 23:25   
CopyRemoteFileByType(string type, string local_path) implemented in svn rev 1725. Will be also available in 0.3.5 release. Leaving opened since, as Heston pointed out, this has to be fixed server-side wise too.




Viewing Issue Advanced Details
51 [obex-data-server] General feature have not tried 2008-02-25 16:53 2008-10-17 19:59
hadess  
skirsdeda  
normal  
closed  
fixed  
none    
none  
No way to cancel CreateBluetoothSession
Creating a session can take a little while, so it would be good if it could be cancelled.
Notes
(0000087)
skirsdeda   
2008-02-25 22:03   
Good idea. Before implementing such functionality I have to hunt down one nasty memory bug in ods-bluez.c (0000046).
(0000381)
skirsdeda   
2008-07-25 03:51   
Fixed in svn rev 1673




Viewing Issue Advanced Details
39 [obex-data-server] General feature always 2008-01-24 07:17 2008-10-17 19:59
hadess  
skirsdeda  
normal  
closed 0.3  
fixed  
none    
none  
No capabilties information in ObexFTP server
$ obexftp --bluetooth 00:16:41:FC:0E:69 --capability
Browsing 00:16:41:FC:0E:69 ...
Connecting...done
Receiving "(null)"... failed: (null)
Disconnecting...done

It would certainly be useful if it showed the space left and used.
Notes
(0000055)
skirsdeda   
2008-01-24 15:44   
Yes, definitely.
(0000057)
skirsdeda   
2008-01-24 16:42   
Maybe we could collect some examples from real devices for starters..
(0000058)
hadess   
2008-01-24 17:06   
There's loads of capabilities listings in the gnome-vfs-obexftp repository, under tests/capabilities. See this launchpad directory (pardon the URL):
http://codebrowse.launchpad.net/~jamesh/gnome-vfs-obexftp/devel/files/james%40jamesh.id.au-20070714105344-rfpan8fzk8d4l0n2?file_id=capabilities-20070614054418-41pkjj2e1agpmjcp-1 [^]

There's the corresponding folder listings in tests/folder-listings/
(0000059)
skirsdeda   
2008-01-24 17:07   
nice
(0000389)
skirsdeda   
2008-07-29 22:17   
fixed in svn rev 1700. Support for capability and imaging-capabilities added. Capability objects are served from /etc/obex-data-server/capability.xml and .../imaging_capabilities.xml files. These variables can be used in capability.xml file:
{$ODS_VER} - replaced by ods version
{$MEM_FREE} - replaced with free space on filesystem where server's root folder exists
{$MEM_USED} - used space




Viewing Issue Advanced Details
29 [obex-data-server] General feature always 2007-12-11 17:52 2008-10-17 19:59
skirsdeda  
skirsdeda  
low  
closed  
fixed  
none    
none  
Implement BIP support
BIP should be implemented as third supported profile
Notes
(0000374)
skirsdeda   
2008-07-21 15:23   
As of svn revision 1645 we have BIP Initiator supporting ImagePush and RemoteDisplay. RemoteDisplay functionality not tested yet.
(0000377)
heston_james   
2008-07-21 18:17   
*whispers... do we have a configure flag to disable the requirement for imagemagick?
(0000379)
skirsdeda   
2008-07-21 18:32   
As of svn revision 1648 ods has --disable-image-magick (which disables ImageMagick and gthread dependencies)
(0000404)
skirsdeda   
2008-08-23 22:05   
As of svn revistion 1764 ods has support for BIP Initiator and responder (Image Push and Remote Display features). Will be released in 0.4. Other features will be worked on when I get a device supporting them (as Responder, ods probably won't support any other features).




Viewing Issue Advanced Details
19 [obex-data-server] General block always 2007-11-24 03:36 2008-10-17 19:59
skirsdeda  
skirsdeda  
high  
closed 0.2  
fixed  
none    
none  
DBus timeout for CreateBluetoothSession
If session connecting takes longer time (e.g. devices aren't paired yet), CreateBluetoothSession function times out. To fix this, CreateBluetoothSession should return immediately. OdsSession object should be initialized with invalid fd first and only after socket is connected, it would be assigned to OdsSession object and CONNECTED signal would be emitted.
Notes
(0000038)
skirsdeda   
2008-01-22 01:10   
To maintain Session independence from transport stuff, Session should have public fd property which would be initialized to -1 first. When assigned a valid value, Session would emit CONNECTED signal.
(0000063)
skirsdeda   
2008-01-28 19:10   
Suggested API change for Manager:
METHODS
string CreateBluetoothSession(string address, string pattern)
     Returns path of Session object instantly (Session is connected after this function returns. Either Connected signal is emitted (Session object) if connection was successful or SessionDisconnected signal is emitted (Manager object) if connecting failed.
SIGNALS
void SessionConnected(object path)
      Signals when session is connected and usable (instead of SessionCreated signal, since sessions are now created even before attempting to connect).

void SessionDisconnected(object path, string error_name, string error_message)
      Signals when session is disconnected or fails to connect initially. error_name and error_message are used only for initial connection failure.
(0000069)
skirsdeda   
2008-02-02 19:42   
Now I'm thinking that it would be better to introduce Timeout error, which would happen just before DBus timeout so that obex-data-server can do proper cleanup.
(0000158)
RobertRawlins   
2008-03-11 20:10   
That sounds like a good solution to me, at the moment I get the timeout thrown by dbus but like you say, this doesnt invoke any time of clean up. Iether that or catch the dbus connection and do your cleanup then rethrow your own? make sense?

Robert
(0000244)
heston_james   
2008-05-14 10:22   
This little bug should be fixed along with the fix for detecting rfcomm timeouts and refusales so we should be killing two birds with one stone when that fix comes along. Because we'll be returning the empty session object immediatly from CreateBluetoothSession() then dbus wont kick up a fuss waiting for a reply whilst we're connecting the RFCOMM sockets.

I'll be working on that fix today so we'll see how things progress, I'll start screaming and waving my arms in the air when I get stuck (which is quite likely).

Heston
(0000354)
heston_james   
2008-07-07 15:12   
Tadas, this bug is now effectivly resolved due to the changes made for bug 0000053.




Viewing Issue Advanced Details
52 [obex-data-server] General minor N/A 2008-02-26 21:50 2008-10-17 19:59
skirsdeda  
skirsdeda  
high  
closed  
fixed  
none    
none  
No way to choose hci device for CreateBluetoothSession
While this is easy to implement..
choose_hci_device.patch (10 KB) 2008-03-07 02:18
Notes
(0000094)
skirsdeda   
2008-03-01 02:16   
Let's change CreateBluetoothSession to:

object CreateBluetoothSession(string target_address, string source_addess, string pattern)
(0000144)
skirsdeda   
2008-03-07 02:18   
Attached a patch for the impatient ones :) Apply against svn version of obex-data-server.
(0000146)
RobertRawlins   
2008-03-07 12:58   
I've applied the patch and given this its first