diff options
Diffstat (limited to 'obexd')
-rw-r--r-- | obexd/src/obex.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/obexd/src/obex.c b/obexd/src/obex.c index 788bffc6c..be79a778e 100644 --- a/obexd/src/obex.c +++ b/obexd/src/obex.c @@ -864,6 +864,17 @@ static void cmd_put(GObex *obex, GObexPacket *req, gpointer user_data) return; } + /* OPP session don't require CONNECT, in which case just call connect + * callback to register the transfer. + */ + if (!os->service_data && os->service->service == OBEX_OPP) { + os->service_data = os->service->connect(os, &err); + if (err < 0) { + os_set_response(os, err); + return; + } + } + parse_type(os, req); if (os->driver == NULL) { |