diff -u obex-data-server-0.3.1/debian/changelog obex-data-server-0.3.1/debian/changelog --- obex-data-server-0.3.1/debian/changelog +++ obex-data-server-0.3.1/debian/changelog @@ -1,3 +1,16 @@ +obex-data-server (0.3.1-0ubuntu2~test2) hardy; urgency=low + + * Added missing diff for ods-manager.h from Whoopie's patch to + 001_nokia_obexftp.patch (LP: #211252). + + -- Kenny Millington Sun, 10 Aug 2008 14:03:22 +0100 + +obex-data-server (0.3.1-0ubuntu2~test1) hardy; urgency=low + + * Add 001_nokia_obexftp.patch to fix obexftp issues with some Nokia phones (LP: #211252). + + -- Kenny Millington Sun, 10 Aug 2008 08:08:25 +0100 + obex-data-server (0.3.1-0ubuntu1) hardy; urgency=low * New upstream release (LP: #210344) only in patch2: unchanged: --- obex-data-server-0.3.1.orig/debian/patches/001_nokia_obexftp.patch +++ obex-data-server-0.3.1/debian/patches/001_nokia_obexftp.patch @@ -0,0 +1,112 @@ +diff -Nur -x '*.orig' -x '*~' obex-data-server-0.3.1/src/ods-bluez.c obex-data-server-0.3.1.new/src/ods-bluez.c +--- obex-data-server-0.3.1/src/ods-bluez.c 2008-03-07 15:01:31.000000000 +0000 ++++ obex-data-server-0.3.1.new/src/ods-bluez.c 2008-08-10 14:01:40.000000000 +0100 +@@ -356,11 +356,24 @@ + DBUS_TYPE_G_UINT_ARRAY, &handle_array, + G_TYPE_INVALID); + ++ /* check if we were looking for Nokia specific FTP service and failed */ ++ if (handle_array->len == 0 && !strcmp (cb_data->uuid, OBEX_NOKIAFTP_UUID)) { ++ g_free (cb_data->uuid); ++ cb_data->uuid = g_strdup (OBEX_FTP_UUID); ++ dbus_g_proxy_begin_call (proxy, ++ "GetRemoteServiceHandles", ++ (DBusGProxyCallNotify) get_remote_service_handles_cb, ++ cb_data, NULL, ++ G_TYPE_STRING, cb_data->address, ++ G_TYPE_STRING, cb_data->uuid, ++ G_TYPE_INVALID); ++ return; ++ } ++ /* service search failed */ + if (!ret || handle_array->len == 0) { +- /* It means that Host is down */ + g_clear_error (&error); + g_set_error (&error, ODS_ERROR, ODS_ERROR_CONNECTION_ATTEMPT_FAILED, +- "Host down"); ++ "Service search failed"); + cb (-1, error, cb_data->data); + cb_data_free (cb_data); + g_clear_error (&error); +@@ -407,8 +420,21 @@ + cb_data = g_new0 (GetClientSocketData, 1); + cb_data->cb = func; + cb_data->address = g_strdup (address); +- cb_data->uuid = g_strdup (uuid); + cb_data->data = data; ++ /* From Johan Hedberg: ++ * ++ * some Nokia Symbian phones have two OBEX FTP services: one ++ * identified with the normal UUID and another with a Nokia specific ++ * 128 bit UUID. The service found behind the normal identifier is ++ * very limited in features on these phones while the other one ++ * supports full OBEX FTP (don't ask me why). ++ */ ++ /* if FTP was requested, use NOKIAFTP instead, ++ * if it isn't found we retreat to FTP in get_remote_service_handles_cb */ ++ if (!strcmp (uuid, OBEX_FTP_UUID)) ++ cb_data->uuid = g_strdup (OBEX_NOKIAFTP_UUID); ++ else ++ cb_data->uuid = g_strdup (uuid); + + /* Discover channel for needed service only if we don't know it yet */ + if (channel == 0) { +diff -Nur -x '*.orig' -x '*~' obex-data-server-0.3.1/src/ods-common.h obex-data-server-0.3.1.new/src/ods-common.h +--- obex-data-server-0.3.1/src/ods-common.h 2008-03-07 15:02:14.000000000 +0000 ++++ obex-data-server-0.3.1.new/src/ods-common.h 2008-08-10 14:01:40.000000000 +0100 +@@ -35,6 +35,25 @@ + ODS_SERVICE_PBAP + }; + ++/** Standard folder browsing service UUID */ ++#define OBEX_FTP_UUID \ ++ "\xF9\xEC\x7B\xC4\x95\x3C\x11\xD2\x98\x4E\x52\x54\x00\xDC\x9E\x09" ++/** Length of OBEX_FTP_UUID */ ++#define OBEX_FTP_UUID_LEN 16 ++ ++/** Nokia OBEX PC Suite Services (used instead of standard FTP for some devices) */ ++#define OBEX_NOKIAFTP_UUID \ ++ "\x00\x00\x50\x05\x00\x00\x10\x00\x80\x00\x00\x02\xEE\x00\x00\x01" ++/** Length of OBEX_NOKIAFTP_UUID */ ++#define OBEX_NOKIAFTP_UUID_LEN 16 ++ ++/** Phone Book Access Profile UUID */ ++#define OBEX_PBAP_UUID \ ++ "\x79\x61\x35\xF0\xF0\xC5\x11\xD8\x09\x66\x08\x00\x20\x0C\x9A\x66" ++/** Length of OBEX_PBAP_UUID */ ++#define OBEX_PBAP_UUID_LEN 16 ++ ++ + #define ODS_OPP_RFCOMM_CHANNEL 9 + #define ODS_FTP_RFCOMM_CHANNEL 10 + #define ODS_PBAP_RFCOMM_CHANNEL 15 +diff -Nur -x '*.orig' -x '*~' obex-data-server-0.3.1/src/ods-manager.h obex-data-server-0.3.1.new/src/ods-manager.h +--- obex-data-server-0.3.1/src/ods-manager.h 2008-03-07 15:00:08.000000000 +0000 ++++ obex-data-server-0.3.1.new/src/ods-manager.h 2008-08-10 14:02:38.000000000 +0100 +@@ -24,6 +24,7 @@ + + #include + #include ++#include "ods-common.h" + + G_BEGIN_DECLS + +@@ -34,18 +35,6 @@ + #define ODS_MANAGER_FTP_STR "ftp" + #define ODS_MANAGER_PBAP_STR "pbap" + +-/** Standard folder browsing service UUID */ +-#define OBEX_FTP_UUID \ +- "\xF9\xEC\x7B\xC4\x95\x3C\x11\xD2\x98\x4E\x52\x54\x00\xDC\x9E\x09" +-/** Length of OBEX_FTP_UUID */ +-#define OBEX_FTP_UUID_LEN 16 +- +-/** Phone Book Access Profile UUID */ +-#define OBEX_PBAP_UUID \ +- "\x79\x61\x35\xF0\xF0\xC5\x11\xD8\x09\x66\x08\x00\x20\x0C\x9A\x66" +-/** Length of OBEX_PBAP_UUID */ +-#define OBEX_PBAP_UUID_LEN 16 +- + #define ODS_TYPE_MANAGER (ods_manager_get_type ()) + #define ODS_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ODS_TYPE_MANAGER, OdsManager)) + #define ODS_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), ODS_TYPE_MANAGER, OdsManagerClass))