From owner-freebsd-bluetooth@FreeBSD.ORG Fri Jun 16 20:15:06 2006 Return-Path: X-Original-To: freebsd-bluetooth@freebsd.org Delivered-To: freebsd-bluetooth@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9C34A16A47A for ; Fri, 16 Jun 2006 20:15:06 +0000 (UTC) (envelope-from plunky@rya-online.net) Received: from mail.ukfsn.org (s2.ukfsn.org [217.158.120.143]) by mx1.FreeBSD.org (Postfix) with ESMTP id DC7C543D49 for ; Fri, 16 Jun 2006 20:15:05 +0000 (GMT) (envelope-from plunky@rya-online.net) Received: from rya-online.net (du213-130-141-8.as15444.net [213.130.141.8]) by mail.ukfsn.org (Postfix) with SMTP id CEB92E6AA7; Fri, 16 Jun 2006 21:04:40 +0100 (BST) Received: (nullmailer pid 22778 invoked by uid 1000); Fri, 16 Jun 2006 19:43:10 -0000 Date: Fri, 16 Jun 2006 20:43:10 +0100 (BST) To: Maksim Yevmenkin In-Reply-To: <4492E9FA.2030708@savvis.net> References: <1150200307.649295.228.nullmailer@galant.ukfsn.org> <44904A60.6080105@savvis.net> <1150322381.757072.1713.nullmailer@galant.ukfsn.org> <4492E9FA.2030708@savvis.net> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1397750121-1150486990=:22008" Message-Id: <1150486990.380039.25644.nullmailer@galant.ukfsn.org> From: Iain Hibbert Cc: freebsd-bluetooth@freebsd.org Subject: Re: SDP X-BeenThere: freebsd-bluetooth@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Using Bluetooth in FreeBSD environments List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Jun 2006 20:15:06 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-1397750121-1150486990=:22008 Content-Type: TEXT/PLAIN; charset=US-ASCII On Fri, 16 Jun 2006, Maksim Yevmenkin wrote: > > > sdp(3) client knows *exactly* what the format of the > > > attributes should be. so, sdp(3) library should provide simple api to > > > locate > > > given element of given type in raw data and extract data from it. imo, > > > more > > > intelligent parsing could require sdp(3) to actually know about the > > > profile > > > client is trying use. > > > > Yes was thinking along those lines.. the client would provide a structure > > detailing how to parse the required attributes where to put the values. > > may be. so far i have not seen a need for that. I looked at the BlueZ implementation and for the sdp query function, they parse the flat results and return a linked list then have a bunch of extra functions that extract specific values. See attached file for example in use to find SPP (ie RFCOMM channel) It does look neater, but I'm not sure I like the exact concept. iain --0-1397750121-1150486990=:22008 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=sdp.c Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: cups/sdp.c Content-Disposition: attachment; filename=sdp.c LyoNCiAqDQogKiAgQmx1ZVogLSBCbHVldG9vdGggcHJvdG9jb2wgc3RhY2sg Zm9yIExpbnV4DQogKg0KICogIENvcHlyaWdodCAoQykgMjAwMy0yMDA0ICBN YXJjZWwgSG9sdG1hbm4gPG1hcmNlbEBob2x0bWFubi5vcmc+DQogKg0KICoN CiAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KICogIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVy c2lvbiAyIGFzDQogKiAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247DQogKg0KICogIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBS RVNTDQogKiAgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksDQogKiAg RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ TkdFTUVOVCBPRiBUSElSRCBQQVJUWSBSSUdIVFMuDQogKiAgSU4gTk8gRVZF TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIoUykgQU5EIEFVVEhPUihT KSBCRSBMSUFCTEUgRk9SIEFOWQ0KICogIENMQUlNLCBPUiBBTlkgU1BFQ0lB TCBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMsIE9SIEFOWSBE QU1BR0VTIA0KICogIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBP RiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiANCiAqICBB Q1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElP VVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiANCiAqICBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRX QVJFLg0KICoNCiAqICBBTEwgTElBQklMSVRZLCBJTkNMVURJTkcgTElBQklM SVRZIEZPUiBJTkZSSU5HRU1FTlQgT0YgQU5ZIFBBVEVOVFMsIA0KICogIENP UFlSSUdIVFMsIFRSQURFTUFSS1MgT1IgT1RIRVIgUklHSFRTLCBSRUxBVElO RyBUTyBVU0UgT0YgVEhJUyANCiAqICBTT0ZUV0FSRSBJUyBESVNDTEFJTUVE Lg0KICoNCiAqDQogKiAgJElkOiBzZHAuYyx2IDEuMyAyMDA0LzA1LzAyIDIx OjU1OjM2IGhvbHRtYW5uIEV4cCAkDQogKi8NCg0KI2lmZGVmIEhBVkVfQ09O RklHX0gNCiNpbmNsdWRlIDxjb25maWcuaD4NCiNlbmRpZg0KDQojaW5jbHVk ZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDxlcnJuby5oPg0KI2luY2x1ZGUgPHVu aXN0ZC5oPg0KI2luY2x1ZGUgPHNpZ25hbC5oPg0KI2luY2x1ZGUgPHN5cy9z b2NrZXQuaD4NCg0KI2luY2x1ZGUgPGJsdWV0b290aC9ibHVldG9vdGguaD4N CiNpbmNsdWRlIDxibHVldG9vdGgvc2RwLmg+DQojaW5jbHVkZSA8Ymx1ZXRv b3RoL3NkcF9saWIuaD4NCg0KaW50IHNkcF9zZWFyY2hfaGNycChzZHBfc2Vz c2lvbl90ICpzZHAsIHVuc2lnbmVkIHNob3J0ICpjdHJsX3BzbSwgdW5zaWdu ZWQgc2hvcnQgKmRhdGFfcHNtKQ0Kew0KCXNkcF9saXN0X3QgKnNyY2gsICph dHRycywgKnJzcDsNCgl1dWlkX3Qgc3ZjbGFzczsNCgl1aW50MTZfdCBhdHRy MSwgYXR0cjI7DQoJaW50IGVycjsNCg0KCWlmICghc2RwKQ0KCQlyZXR1cm4g LTE7DQoNCglzZHBfdXVpZDE2X2NyZWF0ZSgmc3ZjbGFzcywgSENSX1BSSU5U X1NWQ0xBU1NfSUQpOw0KCXNyY2ggPSBzZHBfbGlzdF9hcHBlbmQoTlVMTCwg JnN2Y2xhc3MpOw0KDQoJYXR0cjEgPSBTRFBfQVRUUl9QUk9UT19ERVNDX0xJ U1Q7DQoJYXR0cnMgPSBzZHBfbGlzdF9hcHBlbmQoTlVMTCwgJmF0dHIxKTsN CglhdHRyMiA9IFNEUF9BVFRSX0FERF9QUk9UT19ERVNDX0xJU1Q7DQoJYXR0 cnMgPSBzZHBfbGlzdF9hcHBlbmQoYXR0cnMsICZhdHRyMik7DQoNCgllcnIg PSBzZHBfc2VydmljZV9zZWFyY2hfYXR0cl9yZXEoc2RwLCBzcmNoLCBTRFBf QVRUUl9SRVFfSU5ESVZJRFVBTCwgYXR0cnMsICZyc3ApOw0KCWlmIChlcnIp DQoJCXJldHVybiAtMTsNCg0KCWZvciAoOyByc3A7IHJzcCA9IHJzcC0+bmV4 dCkgew0KCQlzZHBfcmVjb3JkX3QgKnJlYyA9IChzZHBfcmVjb3JkX3QgKikg cnNwLT5kYXRhOw0KCQlzZHBfbGlzdF90ICpwcm90b3M7DQoNCgkJaWYgKCFz ZHBfZ2V0X2FjY2Vzc19wcm90b3MocmVjLCAmcHJvdG9zKSkgew0KCQkJdW5z aWduZWQgc2hvcnQgcHNtID0gc2RwX2dldF9wcm90b19wb3J0KHByb3Rvcywg TDJDQVBfVVVJRCk7DQoJCQlpZiAocHNtID4gMCkgew0KCQkJCSpjdHJsX3Bz bSA9IHBzbTsNCgkJCX0NCgkJfQ0KDQoJCWlmICghc2RwX2dldF9hZGRfYWNj ZXNzX3Byb3RvcyhyZWMsICZwcm90b3MpKSB7DQoJCQl1bnNpZ25lZCBzaG9y dCBwc20gPSBzZHBfZ2V0X3Byb3RvX3BvcnQocHJvdG9zLCBMMkNBUF9VVUlE KTsNCgkJCWlmIChwc20gPiAwICYmICpjdHJsX3BzbSA+IDApIHsNCgkJCQkq ZGF0YV9wc20gPSBwc207DQoJCQkJcmV0dXJuIDA7DQoJCQl9DQoJCX0NCgl9 DQoNCglyZXR1cm4gLTE7DQp9DQoNCmludCBzZHBfc2VhcmNoX3NwcChzZHBf c2Vzc2lvbl90ICpzZHAsIHVpbnQ4X3QgKmNoYW5uZWwpDQp7DQoJc2RwX2xp c3RfdCAqc3JjaCwgKmF0dHJzLCAqcnNwOw0KCXV1aWRfdCBzdmNsYXNzOw0K CXVpbnQxNl90IGF0dHI7DQoJaW50IGVycjsNCg0KCWlmICghc2RwKQ0KCQly ZXR1cm4gLTE7DQoNCglzZHBfdXVpZDE2X2NyZWF0ZSgmc3ZjbGFzcywgU0VS SUFMX1BPUlRfU1ZDTEFTU19JRCk7DQoJc3JjaCA9IHNkcF9saXN0X2FwcGVu ZChOVUxMLCAmc3ZjbGFzcyk7DQoNCglhdHRyID0gU0RQX0FUVFJfUFJPVE9f REVTQ19MSVNUOw0KCWF0dHJzID0gc2RwX2xpc3RfYXBwZW5kKE5VTEwsICZh dHRyKTsNCg0KCWVyciA9IHNkcF9zZXJ2aWNlX3NlYXJjaF9hdHRyX3JlcShz ZHAsIHNyY2gsIFNEUF9BVFRSX1JFUV9JTkRJVklEVUFMLCBhdHRycywgJnJz cCk7DQoJaWYgKGVycikNCgkJcmV0dXJuIC0xOw0KDQoJZm9yICg7IHJzcDsg cnNwID0gcnNwLT5uZXh0KSB7DQoJCXNkcF9yZWNvcmRfdCAqcmVjID0gKHNk cF9yZWNvcmRfdCAqKSByc3AtPmRhdGE7DQoJCXNkcF9saXN0X3QgKnByb3Rv czsNCg0KCQlpZiAoIXNkcF9nZXRfYWNjZXNzX3Byb3RvcyhyZWMsICZwcm90 b3MpKSB7DQoJCQl1aW50OF90IGNoID0gc2RwX2dldF9wcm90b19wb3J0KHBy b3RvcywgUkZDT01NX1VVSUQpOw0KCQkJaWYgKGNoID4gMCkgew0KCQkJCSpj aGFubmVsID0gY2g7DQoJCQkJcmV0dXJuIDA7DQoJCQl9DQoJCX0NCgl9DQoN CglyZXR1cm4gLTE7DQp9DQo= --0-1397750121-1150486990=:22008--