From: Hendrik S. <po...@he...> - 2008-12-09 07:12:57
|
This reverts commit 139683f9ca864a8e4fcfaf3a454c293539547903. This accidently broke the API and will be recommitted at a later point. After applying this and may the earlier 7-patch patchset, a version 1.4.1, 1.4a or 1.5 should be released as API-fix version with a clear statement not to use broken version 1.4. --- include/openobex/obex_const.h | 18 -------------- lib/usbobex.c | 53 ----------------------------------------- lib/usbobex.h | 9 ------- 3 files changed, 0 insertions(+), 80 deletions(-) diff --git a/include/openobex/obex_const.h b/include/openobex/obex_const.h index df03a98..ea29195 100644 --- a/include/openobex/obex_const.h +++ b/include/openobex/obex_const.h @@ -51,22 +51,6 @@ typedef struct { void * customdata; } obex_ctrans_t; -/** USB-specific OBEX service information - * provided by optional Service Identification Functional Descriptor - * (CDC WMC specification section 6.5.2.5) - */ -typedef struct { - /** Role bit mask: bit 0 is set if client, unset if server */ - uint8_t role; - /** Service UUID */ - uint8_t uuid[16]; - /** Service version */ - uint16_t version; - /** Set if the service provides/expects - * an OBEX Default Server (spec section 6.5.2.5.2) */ - int is_default_uuid; -} obex_usb_intf_service_t; - /** USB-specific OBEX interface information */ typedef struct { /** Manufacturer, e.g. Nokia */ @@ -83,8 +67,6 @@ typedef struct { char *data_interface_idle; /** Active data interface description, typically empty */ char *data_interface_active; - /** Service information descriptor, may be NULL if absent */ - obex_usb_intf_service_t *service; /** Internal information for the transport layer in the library */ struct obex_usb_intf_transport_t *intf; } obex_usb_intf_t; diff --git a/lib/usbobex.c b/lib/usbobex.c index 3d1f619..b067bac 100644 --- a/lib/usbobex.c +++ b/lib/usbobex.c @@ -124,7 +124,6 @@ static int find_obex_data_interface(unsigned char *buffer, int buflen, struct us union_header = (struct cdc_union_desc *)buffer; break; case CDC_OBEX_TYPE: /* maybe check version */ - case CDC_OBEX_SERVICE_ID_TYPE: /* This one is handled later */ case CDC_HEADER_TYPE: break; /* for now we ignore it */ default: @@ -203,8 +202,6 @@ static struct obex_usb_intf_transport_t *check_intf(struct usb_device *dev, next->control_interface = dev->config[c].interface[i].altsetting[a].bInterfaceNumber; next->control_interface_description = dev->config[c].interface[i].altsetting[a].iInterface; next->control_setting = dev->config[c].interface[i].altsetting[a].bAlternateSetting; - next->extra_descriptors = buffer; - next->extra_descriptors_len = buflen; err = find_obex_data_interface(buffer, buflen, dev->config[c], next); if (err) @@ -222,52 +219,6 @@ static struct obex_usb_intf_transport_t *check_intf(struct usb_device *dev, } /* - * Helper function to usbobex_find_interfaces - */ -static void find_obex_service_descriptor(unsigned char *buffer, int buflen, obex_usb_intf_service_t **service) -{ - if (!buffer) { - DEBUG(2, "Weird descriptor references"); - return ; - } - while (buflen > 0) { - if (buffer[1] != USB_DT_CS_INTERFACE) { - DEBUG(2, "skipping garbage"); - goto next_desc; - } - switch (buffer[2]) { - case CDC_OBEX_SERVICE_ID_TYPE: /* we've found it */ - if (buflen < 22) /* Check descriptor size */ - DEBUG(2, "Invalid service id descriptor"); - else if (*service == NULL) { - *service = malloc(sizeof(obex_usb_intf_service_t)); - if (*service != NULL) { - (*service)->role = buffer[3]; - memcpy((*service)->uuid, buffer+4, 16); - (*service)->version = (buffer[20]<<8)|(buffer[21]); - if (memcmp((*service)->uuid, WMC_DEFAULT_OBEX_SERVER_UUID, 16) == 0 ) - (*service)->is_default_uuid = 1; - else - (*service)->is_default_uuid = 0; - } - } - break; - case CDC_OBEX_TYPE: /* maybe check version */ - case CDC_UNION_TYPE: - case CDC_HEADER_TYPE: - break; - default: - DEBUG(2, "Ignoring extra header, type %d, length %d", buffer[2], buffer[0]); - break; - } -next_desc: - buflen -= buffer[0]; - buffer += buffer[0]; - } -} - - -/* * Function usbobex_find_interfaces () * * Find available USBOBEX interfaces on the system @@ -334,9 +285,6 @@ int usbobex_find_interfaces(obex_interface_t **interfaces) current->data_interface_idle_description); get_intf_string(usb_handle, &intf_array[num].usb.data_interface_active, current->data_interface_active_description); - find_obex_service_descriptor(current->extra_descriptors, - current->extra_descriptors_len, - &intf_array[num].usb.service); usb_close(usb_handle); current = current->next; num++; } @@ -372,7 +320,6 @@ void usbobex_free_interfaces(int num, obex_interface_t *intf) free(intf[i].usb.control_interface); free(intf[i].usb.data_interface_idle); free(intf[i].usb.data_interface_active); - free(intf[i].usb.service); free(intf[i].usb.intf); } diff --git a/lib/usbobex.h b/lib/usbobex.h index f3ffbd4..d0e1dfe 100644 --- a/lib/usbobex.h +++ b/lib/usbobex.h @@ -37,8 +37,6 @@ struct obex_usb_intf_transport_t { * If non-zero, use usb_get_string_simple() from * libusb to retrieve human-readable description */ - unsigned char *extra_descriptors; /* Extra master interface descriptors */ - int extra_descriptors_len; /* Length of extra descriptors */ int data_interface; /* OBEX data/slave interface */ int data_idle_setting; /* OBEX data/slave idle setting */ int data_interface_idle_description; /* OBEX data/slave interface string descriptor number @@ -76,18 +74,11 @@ struct cdc_union_desc { #define CDC_UNION_TYPE 0x06 #define CDC_COUNTRY_TYPE 0x07 #define CDC_OBEX_TYPE 0x15 -#define CDC_OBEX_SERVICE_ID_TYPE 0x19 /* Interface descriptor */ #define USB_DT_CS_INTERFACE 0x24 #define CDC_DATA_INTERFACE_TYPE 0x0a -#define WMC_DEFAULT_OBEX_SERVER_UUID ((const uint8_t []) \ -{ 0x02, 0xae, 0xb3, 0x20, \ -0xf6, 0x49, 0x11, 0xda, \ -0x97, 0x4d, 0x08, 0x00, \ -0x20, 0x0c, 0x9a, 0x66 } ) - #define USB_MAX_STRING_SIZE 256 #define USB_OBEX_TIMEOUT 10000 /* 10 seconds */ -- 1.5.6.5 |
From: Marcel H. <ma...@ho...> - 2008-12-09 12:06:52
|
Hi Hendrik, > >> This reverts commit 139683f9ca864a8e4fcfaf3a454c293539547903. > >> This accidently broke the API and will be recommitted at a later point. > >> After applying this and may the earlier 7-patch patchset, a version 1.4.1, > >> 1.4a or 1.5 should be released as API-fix version with a clear statement not > >> to use broken version 1.4. > > > > I am lost here. Please send a clean set of patches that I can apply with > > git-am. And make sure they are in the right order. > > Then I am also lost about how to use git. The patches were created using > 1. git checkout master > 2. git branch api > 3. git checkout api > 4. (2 times) git revert <commit> > 5. git format-patch -o ../patches master > 6. Open KMail, create new messages, insert file (see point 5), move > email headers from message body to real fields if you are in doubt and have a broken mail client, then just attach the files created by git-format-patch. > git-am sometimes complains about whitespace that git-format-patch just > previously created. That just sucks :-( > The right place to complain would be git-commit but that ones doesn't. > Additionally, I am not sure that the complains are always valid. > > BTW: Doing step 4 on the right commit ids will produce the same result > on your side as I have in my local branch for that. Have your tried gitorious.org or github.org or something similar for just giving me a tree to pull from? Regards Marcel |
From: Hendrik S. <po...@he...> - 2008-12-09 12:13:53
|
Marcel Holtmann schrieb: > if you are in doubt and have a broken mail client, then just attach the > files created by git-format-patch. I'll do that so you can compare. > Have your tried gitorious.org or github.org or something similar for > just giving me a tree to pull from? I'll consider it. HS |
From: Marcel H. <ma...@ho...> - 2008-12-09 12:18:27
|
Hi Hendrik, > This reverts commit 139683f9ca864a8e4fcfaf3a454c293539547903. > This accidently broke the API and will be recommitted at a later point. > After applying this and may the earlier 7-patch patchset, a version 1.4.1, > 1.4a or 1.5 should be released as API-fix version with a clear statement not > to use broken version 1.4. I am lost here. Please send a clean set of patches that I can apply with git-am. And make sure they are in the right order. Regards Marcel |
From: Hendrik S. <po...@he...> - 2008-12-09 12:13:55
|
Marcel Holtmann schrieb: >> This reverts commit 139683f9ca864a8e4fcfaf3a454c293539547903. >> This accidently broke the API and will be recommitted at a later point. >> After applying this and may the earlier 7-patch patchset, a version 1.4.1, >> 1.4a or 1.5 should be released as API-fix version with a clear statement not >> to use broken version 1.4. > > I am lost here. Please send a clean set of patches that I can apply with > git-am. And make sure they are in the right order. Then I am also lost about how to use git. The patches were created using 1. git checkout master 2. git branch api 3. git checkout api 4. (2 times) git revert <commit> 5. git format-patch -o ../patches master 6. Open KMail, create new messages, insert file (see point 5), move email headers from message body to real fields Point 6 is like described in linux/Documentation/email-clients.txt. If this messes it up, I am lost. git-am sometimes complains about whitespace that git-format-patch just previously created. That just sucks :-( The right place to complain would be git-commit but that ones doesn't. Additionally, I am not sure that the complains are always valid. BTW: Doing step 4 on the right commit ids will produce the same result on your side as I have in my local branch for that. HS |
From: Hendrik S. <po...@he...> - 2008-12-11 08:08:46
|
Am Tuesday 09 December 2008 13:06:42 schrieb Marcel Holtmann: > Have your tried gitorious.org or github.org or something similar for > just giving me a tree to pull from? Done so, now @gitorious.org For the previously posted patch set, you can pull the "updates" branch of git://gitorious.org/openobex/mainline.git Additionally, for reverting the ABI breakage caused by Alex' patch, revert the commits 978e72d013cf12201c6c3ffc51de90e0b498f736 and 139683f9ca864a8e4fcfaf3a454c293539547903 (in this order) from your master branch (or maybe Alex also some a tree to pull this from?). HS |
From: Marcel H. <ma...@ho...> - 2008-12-24 00:29:14
|
Hi Hendrik, > > Have your tried gitorious.org or github.org or something similar for > > just giving me a tree to pull from? > > Done so, now @gitorious.org > > For the previously posted patch set, you can pull the "updates" branch of > git://gitorious.org/openobex/mainline.git so these are now pulled and pushed back upstream. > Additionally, for reverting the ABI breakage caused by Alex' patch, revert the > commits > 978e72d013cf12201c6c3ffc51de90e0b498f736 > and > 139683f9ca864a8e4fcfaf3a454c293539547903 > (in this order) from your master branch (or maybe Alex also some a tree to > pull this from?). Will look into that later today. Regards Marcel |
From: Alex K. <ak...@se...> - 2008-12-27 14:00:26
Attachments:
interface-discovery-api.patch
|
2008/12/24 Marcel Holtmann <ma...@ho...>: >> Additionally, for reverting the ABI breakage caused by Alex' patch, revert the >> commits >> 978e72d013cf12201c6c3ffc51de90e0b498f736 >> and >> 139683f9ca864a8e4fcfaf3a454c293539547903 >> (in this order) from your master branch (or maybe Alex also some a tree to >> pull this from?). > > Will look into that later today. Hi Marcel, another option to reverting that patch would be to change the interface discovery API in a way that prevents similar ABI breakage from happening in the future. I think that's a better option because the version which broke the ABI has been out for a while now, therefore reverting the patch, and then reintroducing it later would just further confuse things. I've attached the patch for this, please review. Oh, and there was another patch with fixes for FreeBSD: http://www.mail-archive.com/ope...@li.../msg01130.html -- Alexander |
From: Alex K. <ak...@se...> - 2009-01-27 14:42:06
|
2008/12/27 Alex Kanavin <ak...@se...>: >>> Additionally, for reverting the ABI breakage caused by Alex' patch, revert the >>> commits >>> 978e72d013cf12201c6c3ffc51de90e0b498f736 >>> and >>> 139683f9ca864a8e4fcfaf3a454c293539547903 >>> (in this order) from your master branch (or maybe Alex also some a tree to >>> pull this from?). >> >> Will look into that later today. > another option to reverting that patch would be to change the > interface discovery API in a way that prevents similar ABI breakage > from happening in the future. I think that's a better option because > the version which broke the ABI has been out for a while now, > therefore reverting the patch, and then reintroducing it later would > just further confuse things. I've attached the patch for this, please > review. Oh, and there was another patch with fixes for FreeBSD: > http://www.mail-archive.com/ope...@li.../msg01130.html Hmm, so "later today" never happened - just to remind you that the ABI breakage issue still stands, I would really like to resolve this. -- Alexander |