head 1.3; access; symbols pkgsrc-2013Q2:1.3.0.2 pkgsrc-2013Q2-base:1.3 pkgsrc-2012Q4:1.2.0.28 pkgsrc-2012Q4-base:1.2 pkgsrc-2012Q3:1.2.0.26 pkgsrc-2012Q3-base:1.2 pkgsrc-2012Q2:1.2.0.24 pkgsrc-2012Q2-base:1.2 pkgsrc-2012Q1:1.2.0.22 pkgsrc-2012Q1-base:1.2 pkgsrc-2011Q4:1.2.0.20 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q3:1.2.0.18 pkgsrc-2011Q3-base:1.2 pkgsrc-2011Q2:1.2.0.16 pkgsrc-2011Q2-base:1.2 pkgsrc-2011Q1:1.2.0.14 pkgsrc-2011Q1-base:1.2 pkgsrc-2010Q4:1.2.0.12 pkgsrc-2010Q4-base:1.2 pkgsrc-2010Q3:1.2.0.10 pkgsrc-2010Q3-base:1.2 pkgsrc-2010Q2:1.2.0.8 pkgsrc-2010Q2-base:1.2 pkgsrc-2010Q1:1.2.0.6 pkgsrc-2010Q1-base:1.2 pkgsrc-2009Q4:1.2.0.4 pkgsrc-2009Q4-base:1.2 pkgsrc-2009Q3:1.2.0.2 pkgsrc-2009Q3-base:1.2 pkgsrc-2009Q2:1.1.0.28 pkgsrc-2009Q2-base:1.1 pkgsrc-2009Q1:1.1.0.26 pkgsrc-2009Q1-base:1.1 pkgsrc-2008Q4:1.1.0.24 pkgsrc-2008Q4-base:1.1 pkgsrc-2008Q3:1.1.0.22 pkgsrc-2008Q3-base:1.1 cube-native-xorg:1.1.0.20 cube-native-xorg-base:1.1 pkgsrc-2008Q2:1.1.0.18 pkgsrc-2008Q2-base:1.1 cwrapper:1.1.0.16 pkgsrc-2008Q1:1.1.0.14 pkgsrc-2008Q1-base:1.1 pkgsrc-2007Q4:1.1.0.12 pkgsrc-2007Q4-base:1.1 pkgsrc-2007Q3:1.1.0.10 pkgsrc-2007Q3-base:1.1 pkgsrc-2007Q2:1.1.0.8 pkgsrc-2007Q2-base:1.1 pkgsrc-2007Q1:1.1.0.6 pkgsrc-2007Q1-base:1.1 pkgsrc-2006Q4:1.1.0.4 pkgsrc-2006Q4-base:1.1 pkgsrc-2006Q3:1.1.0.2 pkgsrc-2006Q3-base:1.1; locks; strict; comment @# @; 1.3 date 2013.03.15.08.18.43; author plunky; state dead; branches; next 1.2; 1.2 date 2009.07.20.05.56.03; author hasso; state Exp; branches; next 1.1; 1.1 date 2006.07.17.12.29.57; author xtraeme; state Exp; branches; next ; desc @@ 1.3 log @Update to ObexFTP 0.24 There is a new maintainer, Hendrik Sattler and the sources are held at gitorius.org. Build is changed to CMake and although it does not appear in the ChangeLog below, I forwarded all the NetBSD related patches that pkgsrc had (and more in fact, to get it working) although I would still say that obexapp is the better program. From the ChangeLog: ObexFTP 0.24 (released 2013-03-05) ---------------------------------- * Maintainer changed from Christian to Hendrik * change build system to using CMake * integrate obexfs-0.12 * fix build for OpenOBEX-1.7 ObexFTP 0.23 (released 2009-02-17) ---------------------------------- * allow win32 to use hci src names * adding a simpler connect wrapper * show OBEX_HandleInput errors * catch errors and let the user know * print timeout stats if available * sdp unregister more verbose * upgrading btkit * fix for win32 without bt * replacing deprecated automake vars * sizeof() fixes * removing bdaddr_t reference from obexftpd.c * adding bootstrap helper * concurrency bug in extconf.rb generated Makefile (fix by Alin Năstac) * switching from POD to asciidoc * clearing gnu-style implicit rules ObexFTP 0.22 (released 2008-06-15) ---------------------------------- * added proper unicode support * added support for transparent OBEX-over-AT mode * rewritten at-command function * added specific error messages * refactored to flexible bt_kit layer * fixed cache root duplicates * fixed off-by-one and unfreed mem in cache layer * added pkg-config file * added example code * switched to doxygen * added python binding callbacks * portable packed structs * enabled linux hci dev names for source selection * Python binding uses distutils now, tested by Adam Williamson * removed exit from bt discovery * Better autodetection for possible language bindings * reworked win32 support * Motorola SLVR L2 cobex fix by Andrey Rahmatullin * now using AC_HELP_STRING for compat with autoconf <=2.57 * added hci selection support, drafted by Manuel Naranjo * switched obexftp cli to new discovery api * prefer PCSUITE over FTP, req. by Martin Storsjö for Series 60 2nd Ed. * fixed compile error with >=swig-1.3.28 * renamed sdp browse function * fixed month/day swapping in atotime, spotted by Dr. Johannes Zellner * added BFC compatibility for newer Siemens phones * added PCSOFTWARE uuid support for SHARP phones * added motorola support * end bfb mode properly * added CPROT=0 support from 3GPP 27.007 * fixed ericsson init * fixed invalid conn_id in disconnect rep. by Alan J. McFarlane * better create flag handling in setpath * Changed LDADD to LIBADD sug. by Sergey Vlasov * obexftpd clean up by Hendrik Sattler * 64-bit fixes by Hendrik Sattler * Removed all (dangerous) obex_headerdata_t casts * Reorganized all swig-dependant Makefiles * Applied cobex write patch from Simon Ruggier * Applied from Frode Isaksen ObexFTP 0.21 (released 2006-06-27) ---------------------------------- 2006-05-26 Christian W. Zuckschwerdt * Fixes to obexftpd suggested by Hendrik Sattler 2006-05-24 Christian W. Zuckschwerdt * Added ruby binding * Added preliminary discovery function @ text @$NetBSD: patch-aj,v 1.2 2009/07/20 05:56:03 hasso Exp $ --- apps/bt_discovery.c.orig 2006-01-11 17:27:35.000000000 +0000 +++ apps/bt_discovery.c @@@@ -10,6 +10,205 @@@@ #include #include +#if defined(__NetBSD__) || defined(__DragonFly__) +#include +#include +#include +#include + +#include "bt_discovery.h" + +/* + * Parse protocol descriptor list for the RFCOMM channel + * + * seq8 len8 2 + * seq8 len8 2 + * uuid16 value16 3 L2CAP + * seq8 len8 2 + * uuid16 value16 3 RFCOMM + * uint8 value8 2 channel + * === + * 14 + */ + +static int32_t +parse_rfcomm_channel(sdp_attr_t *a) +{ + uint8_t *ptr = a->value; + uint8_t *end = a->value + a->vlen; + int32_t type, len, uuid, channel; + + if (end - ptr < 14) + return (-1); + + SDP_GET8(type, ptr); + switch (type) { + case SDP_DATA_SEQ8: + SDP_GET8(len, ptr); + break; + + case SDP_DATA_SEQ16: + SDP_GET16(len, ptr); + break; + + case SDP_DATA_SEQ32: + SDP_GET32(len, ptr); + break; + + default: + return (-1); + } + if (ptr + len > end) + return (-1); + + /* Protocol */ + SDP_GET8(type, ptr); + switch (type) { + case SDP_DATA_SEQ8: + SDP_GET8(len, ptr); + break; + + case SDP_DATA_SEQ16: + SDP_GET16(len, ptr); + break; + + case SDP_DATA_SEQ32: + SDP_GET32(len, ptr); + break; + + default: + return (-1); + } + if (ptr + len > end) + return (-1); + + /* UUID */ + if (ptr + 3 > end) + return (-1); + SDP_GET8(type, ptr); + switch (type) { + case SDP_DATA_UUID16: + SDP_GET16(uuid, ptr); + if (uuid != SDP_UUID_PROTOCOL_L2CAP) + return (-1); + break; + + case SDP_DATA_UUID32: /* XXX FIXME can we have 32-bit UUID */ + case SDP_DATA_UUID128: /* XXX FIXME can we have 128-bit UUID */ + default: + return (-1); + } + + /* Protocol */ + SDP_GET8(type, ptr); + switch (type) { + case SDP_DATA_SEQ8: + SDP_GET8(len, ptr); + break; + + case SDP_DATA_SEQ16: + SDP_GET16(len, ptr); + break; + + case SDP_DATA_SEQ32: + SDP_GET32(len, ptr); + break; + + default: + return (-1); + } + if (ptr + len > end) + return (-1); + + /* UUID */ + if (ptr + 3 > end) + return (-1); + SDP_GET8(type, ptr); + switch (type) { + case SDP_DATA_UUID16: + SDP_GET16(uuid, ptr); + if (uuid != SDP_UUID_PROTOCOL_RFCOMM) + return (-1); + break; + + case SDP_DATA_UUID32: /* XXX FIXME can we have 32-bit UUID */ + case SDP_DATA_UUID128: /* XXX FIXME can we have 128-bit UUID */ + default: + return (-1); + } + + /* channel */ + if (ptr + 2 > end) + return (-1); + + SDP_GET8(type, ptr); + if (type != SDP_DATA_UINT8) + return (-1); + + SDP_GET8(channel, ptr); + + return (channel); +} + +int +discover_bt(char *addr, char **res_bdaddr, int *res_channel) +{ + bdaddr_t laddr, raddr; + uint8_t buffer[256]; + sdp_attr_t proto = { SDP_ATTR_INVALID, 0, sizeof(buffer), buffer }; + uint16_t serv = SDP_SERVICE_CLASS_OBEX_FILE_TRANSFER; + uint32_t attr = SDP_ATTR_RANGE(SDP_ATTR_PROTOCOL_DESCRIPTOR_LIST, + SDP_ATTR_PROTOCOL_DESCRIPTOR_LIST); + void *ss; + + /* + * Convert given address to bdaddr. If not bdaddr, + * look it up in hosts database. + * + * XXX original does an inquiry if no name is given, + * XXX and matches against the name given or uses + * XXX the first device found. Consider that. + */ + if (addr == NULL) + errx(1, "must have address"); + + if (!bt_aton(addr, &raddr)) { + struct hostent *he = NULL; + + if ((he = bt_gethostbyname(addr)) == NULL) + errx(1, "%s: %s", + addr, hstrerror(h_errno)); + + bdaddr_copy(&raddr, (bdaddr_t *)he->h_addr); + } + + *res_bdaddr = strdup(bt_ntoa(&raddr, NULL)); + fprintf(stderr, "Browsing %s ...\n", *res_bdaddr); + + /* + * Connect to remote SDP server to find the channel + * number to use for the OBEX_FILE_TRANSFER service + */ + bdaddr_copy(&laddr, BDADDR_ANY); + ss = sdp_open(&laddr, &raddr); + if (ss == NULL || (errno = sdp_error(ss)) != 0) + err(1, "%s", addr); + + if (sdp_search(ss, 1, &serv, 1, &attr, 1, &proto) != 0) + errx(1, "sdp_search", strerror(sdp_error(ss))); + + if (proto.flags != SDP_ATTR_OK) + errx(1, "sdp_search: File Transfer not available"); + + sdp_close(ss); + + *res_channel = parse_rfcomm_channel(&proto); + if (*res_channel == -1) + errx(1, "sdp_search: No Channel #"); + + return 0; +} +#else #include #include #include @@@@ -146,6 +345,7 @@@@ int discover_bt(char *addr, char **res_b return 0; } +#endif #else #include "bt_discovery.h" @ 1.2 log @Bluetooth support for DragonFly. Bump PKGREVISION. PR pkg/41640. @ text @d1 1 a1 1 $NetBSD: patch-aj,v 1.1 2006/07/17 12:29:57 xtraeme Exp $ @ 1.1 log @Update to 0.20 (latest stable version): Changes: * Motorola support, tested with models v710/e815 * object caching and directory parsing (for things like ObexFS) * Nokia support via IrDA and Bluetooth * Siemens S65 support * Everything but data goes to stderr for more simple redirection. * VMO converter (gsm and wav) split into seperate package. * Ericsson and Siemens cable support unified (still testing). pkgsrc changes: * NetBSD bluetooth support, thanks to Iain Hibbert for finishing it. @ text @d1 1 a1 1 $NetBSD$ d9 1 a9 1 +#ifdef __NetBSD__ @