ver 4.47: Add support for RFKILL unblock handling. Add support for serial proxy configurations. Add support for caching service class updates. Fix issues with updating SDP service records. Fix usage of limited discoverable mode. Remove deprecated methods and signals for AudioSource. ver 4.46: Add support for A2DP sink role. Fix clearing svc_cache before the adapter is up. Fix various pointer after free usages. Fix various memory leaks. ver 4.45: Fix UDEV_DATADIR fallback if pkg-config fails. Fix adapter cleanup and setup prototypes. Fix double-free with out-of-range devices. Fix inband ring setting to be per-headset. Fix handling of Maemo CSD startup. ver 4.44: Add some missing manual pages. Fix missing number prefix when installing udev rules. Fix program prefix used in Bluetooth udev rules. Fix three-way calling indicator order. Fix downgrade/upgrade of callheld indicator. Fix +CIEV sending when indicator value changes. Fix signal handling for Maemo telephony driver. Fix parsing issues with messages from Maemo CSD. Fix issue with duplicate active calls. ver 4.43: Add support for udev based on-demand startup. Fix verbose error reporting of CUPS backend. Fix various string length issues. Fix issues with Maemo telephony driver. Fix another device setup and temporary flag issue. Fix and update example agent implementation. ver 4.42: Add TI WL1271 to Texas Instruments chip list. Add special udev mode to bluetoothd. Fix regression when there is no agent registered. Fix error return when bonding socket hang up. Fix SCO server socket for HFP handsfree role. Fix shutdown on SCO socket before closing. Fix shutdown on A2DP audio stream channel before closing. Fix issue with asserting on AVDTP reference count bugs. Fix authorization denied issue with certain headsets. Fix AVRCP UNITINFO and SUBUNIT INFO responses. Fix discovery cancel issues in case SDP discovery fails. ver 4.41: Fix pairing even if the ACL gets dropped before successful SDP. Fix regression which caused device to be removed after pairing. Fix HSP record fetching when remote device doesn't support it. Fix SDP discovery canceling when clearing hs->pending. Fix headset never connecting on the first attempt. Fix headset state tracking if bt_search_service() fails. Fix maximum headset connection count check. Fix AVDTP Discover timeout handling. Fix also UI_SET_KEYBIT for the new pause and play key codes. ver 4.40: Add telephony driver for oFono telephony stack. Add support for Dell specific HID proxy switching. Add support for running hid2hci from udev. Add mapping for AVRCP Play and Pause to dedicated key codes. Fix AVRCP keycodes to better match existing X keymap support. Fix various quoting issues within telephony support. Fix memory allocation issue when generating PDUs for SDP. Fix race condition on device removal. Fix non-cancelable issue with CreateDevice method. Fix non-working CancelDiscovery method call. ver 4.39: Add workaround for dealing with unknown inquiry complete. Fix discovering when using software scheduler. Fix wrong NoInputNoOutput IO capability string. Fix race condition with agent during pairing. Fix agent cancellation for security mode 3 acceptor failure. Fix temporary flag removal when device creation fails. Fix hciattach to use ppoll instead of poll. Fix service class update when adapter is down. Fix service classes race condition during startup. Fix release of audio client before freeing the device. ver 4.38: Add support for builtin plugins. Add framework for adapter operations. Add constants for Enhanced Retransmission modes. Fix HCI socket leak in device_remove_bonding. Fix various format string issues. Fix crashes with various free functions. Fix issues with Headset and A2DP drivers to load again. Fix sending AVRCP button released passthrough messages Fix bug which prevent input devices to work after restart. Fix issue with interpretation of UUID-128 as channel. ver 4.37: Add version value for Bluetooth 3.0 devices. Add additional L2CAP extended feature mask bits. Add support for loading plugins in priority order. Add support for more detailed usage of disconnect watches. Add support for AVRCP volume control. Add saturated clipping of SBC decoder output to 16-bit. Fix potentially infinite recursion of adapter_up. Fix SCO handling in the case of an incoming call. Fix input service to use confirm callback. Fix cleanup of temporary device entries from storage. ver 4.36: Add proper tracking of AVCTP connect attempts. Add support to channel pattern in Serial interface. Fix A2DP sink crash if removing device while connecting. Fix error handling if HFP indicators aren't initialized. Fix segfault while handling an incoming SCO connection. Fix Serial.Disconnect to abort connection attempt. ver 4.35: Add support for Handsfree profile headset role. Add additional checks for open SEIDs from clients. Fix device removal while audio IPC client is connected. Fix device removal when an authorization request is pending. Fix incoming AVDTP connect while authorization in progress. Fix disconnection timers for audio support. Fix various potential NULL pointer deferences. Fix callheld indicator value for multiple calls. Fix voice number type usage. Fix GDBus watch handling. ver 4.34: Add support for version checks of plugins. Add support for class property on adapter interface. Add support for second SDP attempt after connection reset. Add support for more detailed audio states. Add support for HFP+A2DP auto connection feature. Add support for new and improved audio IPC. Add program for testing audio IPC interface. Fix various AVDTP qualification related issues. Fix broken SDP AttributeIdList parsing. Fix invalid memory access of SDP URL handling. Fix local class of device race conditions. Fix issue with periodic inquiry on startup. Fix missing temporary devices in some situations. Fix SBC alignment issue for encoding with four subbands. ver 4.33: Add Paired property to the DeviceFound signals. Add support for Headset profile 1.2 version. Fix broken network configuration when IPv6 is disabled. Fix network regression that caused disconnection. Fix SDP truncation of strings with NULL values. Fix service discovery handling of CUPS helper. ver 4.32: Fix broken SDP record handling. Fix SDP data buffer parsing. Fix more SDP memory leaks. Fix read scan enable calls. Fix A2DP stream handling. ver 4.31: Add support for new BtIO helper library. Fix AVDTP session close issue. Fix SDP memory leaks. Fix various uninitialized memory issues. Fix duplicate signal emissions. Fix property changes request handling. Fix class of device storage handling. ver 4.30: Add CID field to L2CAP socket address structure. Fix reset of authentication requirements after bonding. Fix storing of link keys when using dedicated bonding. Fix storing of pre-Bluetooth 2.1 link keys. Fix resetting trust settings on every reboot. Fix handling of local name changes. Fix memory leaks in hciconfig and hcitool ver 4.29: Use AVRCP version 1.0 for now. Decrease AVDTP idle timeout to one second. Delay AVRCP connection when remote device connects A2DP. Add workaround for AVDTP stream setup with broken headsets. Add missing three-way calling feature bit for Handsfree. Fix handsfree callheld indicator updating. Fix parsing of all AT commands within the buffer. Fix authentication replies when disconnected. Fix handling of debug combination keys. Fix handling of changed combination keys. Fix handling of link keys when using no bonding. Fix handling of invalid/unknown authentication requirements. Fix closing of L2CAP raw socket used for dedicated bonding. ver 4.28: Add AVDTP signal fragmentation support. Add more SBC performance optimizations. Add more SBC audio quality improvements. Use native byte order for audio plugins. Set the adapter alias only after checking the EIR data. Fix auto-disconnect issue with explicit A2DP connections. Fix invalid memory access of ALSA plugin. Fix compilation with -Wsign-compare. ver 4.27: Add more SBC optimization (MMX and ARM NEON). Add BT_SECURITY and BT_DEFER_SETUP definitions. Add support for deferred connection setup. Add support for fragmentation of data packets. Add option to trigger dedicated bonding. Follow MITM requirements from remote device. Require MITM for dedicated bonding if capabilities allow it. Fix IO capabilities for non-pairing and pairing cases. Fix no-bonding connections in non-bondable mode. Fix new pairing detection with SSP. Fix bonding with pre-2.1 devices and newer kernels. Fix LIAC setting while toggling Pairable property. Fix device creation for incoming security mode 3 connects. Fix crash within A2DP with bogus pointer. Fix issue with sdp_copy_record() function. Fix crash with extract_des() if sdp_uuid_extract() fails. ver 4.26: Use of constant shift in SBC quantization code. Add possibility to analyze 4 blocks at once in encoder. Fix correct handling of frame sizes in the encoder. Fix for big endian problems in SBC codec. Fix audio client socket to always be non-blocking. Update telephony support for Maemo. ver 4.25: Fix receiving data over the audio control socket. Fix subbands selection for joint-stereo in SBC encoder. Add new SBC analysis filter function. ver 4.24: Fix signal emissions when removing adapters. Fix missing adapter signals on exit. Add support for bringing adapters down on exit. Add support for RememberPowered option. Add support for verbose compiler warnings. Add more options to SBC encoder. ver 4.23: Update audio IPC for better codec handling. Fix bitstream optimization for SBC encoder. Fix length header values of IPC messages. Fix multiple coding style violations. Fix FindDevice to handle temporary devices. Add configuration option for DeviceID. Add support for InitiallyPowered option. Add missing signals for manager properties. Add telephony support for Maemo. ver 4.22: Add deny statements to D-Bus access policy. Add support for LegacyPairing property. Add support for global properties. Add more commands to telephony testing script. Add sender checks for serial and network interfaces. Remove deprecated methods and signals from input interface. Remove deprecated methods and signals from network interface. Remove OffMode option and always use device down. ver 4.21: Fix adapter initialization logic. Fix adapter setup and start security manager early. Fix usage issue with first_init variable. ver 4.20: Cleanup session handling. Cleanup mode setting handling. Fix issue with concurrent audio clients. Fix issue with HFP/HSP suspending. Fix AT result code syntax handling. Add Handsfree support for AT+NREC. Add PairableTimeout adapter property. ver 4.19: Fix installation of manual pages for old daemons. Fix D-Bus signal emmissions for CreateDevice. Fix issues with UUID probing. Fix +BSRF syntax issue. Add Pairable adapter property. Add sdp_copy_record() library function. ver 4.18: Fix release before close issue with RFCOMM TTYs. Fix Connected property on input interface. Fix DeviceFound signals during initial name resolving. Fix service discovery handling. Fix duplicate UUID detection. Fix SBC gain mismatch and decoding handling. Add more options to SBC encoder and decoder. Add special any adapter object for service interface. Add variable prefix to adapter and device object paths. ver 4.17: Fix SBC encoder not writing last frame. Fix missing timer for A2DP suspend. Add more supported devices to hid2hci utility. Add additional functionality to Handsfree support. ver 4.16: Fix wrong parameter usage of watch callbacks. Fix parameters for callback upon path removal. Fix unloading of adapter drivers. ver 4.15: Fix various A2DP state machine issues. Fix some issues with the Handsfree error reporting. Fix format string warnings with recent GCC versions. Remove dependency on GModule. ver 4.14: Fix types of property arrays. Fix potential crash with input devices. Fix PS3 BD remote input event generation. Allow dynamic adapter driver registration. Update udev rules. ver 4.13: Fix service discovery and UUID handling. Fix bonding issues with Simple Pairing. Fix file descriptor misuse of SCO connections. Fix various memory leaks in the device handling. Fix AVCTP disconnect handling. Fix GStreamer modes for MP3 encoding. Add operator selection to Handsfree support. ver 4.12: Fix crash with missing icon value. Fix error checks of HAL plugin. Fix SCO server socket cleanup on exit. Fix memory leaks from DBusPendingCall. Fix handling of pending authorization requests. Fix missing protocol UUIDs in record pattern. ver 4.11: Change SCO server socket into a generic one. Add test script for dummy telephony plugin. Fix uninitialized reply of multiple GetProperties methods. ver 4.10: Fix memory leaks with HAL messages. Add more advanced handsfree features. Add properties to audio, input and network interfaces. Stop device discovery timer on device removal. ver 4.9: Fix signals for Powered and Discoverable properties. Fix handling of Alias and Icon properties. Fix duplicate entries for service UUIDs. ver 4.8: Fix retrieving of formfactor value. Fix retrieving of local and remote extended features. Fix potential NULL pointer dereference during pairing. Fix crash with browsing due to a remotely initated pairing. ver 4.7: Fix pairing and service discovery logic. Fix crashes during suspend and resume. Fix race condition within devdown mode. Add RequestSession and ReleaseSession methods. Add Powered and Discoverable properties. Add Devices property and deprecate ListDevices. Add workaround for a broken carkit from Nokia. ver 4.6: Fix Device ID record handling. Fix service browsing and storage. Fix authentication and encryption for input devices. Fix adapter name initialization. ver 4.5: Fix initialization issue with new adapters. Send HID authentication request without blocking. Hide the verbose SDP debug behind SDP_DEBUG. Add extra UUIDs for service discovery. Add SCO server socket listener. Add authorization support to service plugin. ver 4.4: Add temporary fix for the CUPS compile issue. Add service-api.txt to distribution. Mention the variable prefix of an object path ver 4.3: Add dummy driver for telephony support. Add support for discovery sessions. Add service plugin for external services. Various cleanups. ver 4.2: Avoid memory copies in A2DP write routine. Fix broken logic with Simple Pairing check and old kernels. Allow non-bondable and outgoing SDP without agent. Only remove the bonding for non-temporary devices. Cleanup various unnecessary includes. Make more unexported functions static. Add basic infrastructure for gtk-doc support. ver 4.1: Add 30 seconds timeout to BNEP connection setup phase. Avoid memory copies in A2DP write routine for ALSA. Make sure to include compat/sdp.h in the distribution. ver 4.0: Initial public release. ver 3.36: Add init routines for TI BRF chips. Add extra attributes to the serial port record. Add example record for headset audio gateway record. Use Handsfree version 0x0105 for the gateway role. Fix SDP record registration with specific record handles. Fix BCSP sent/receive handling. Fix various includes for cross-compilation. Allow link mode settings for outgoing connections. Allow bonding during periodic inquiry. ver 3.35: Add two additional company identifiers. Add UUID-128 support for service discovery. Fix usage of friendly names for service discovery. Fix authorization when experiemental is disabled. Fix uninitialized variable in passkey request handling. Enable output of timestamps for l2test and rctest. ver 3.34: Replace various SDP functions with safe versions. Add additional length validation for incoming SDP packets. Use safe function versions for SDP client handling. Fix issue with RemoveDevice during discovery procedure. Fix collect for non-persistent service records. ver 3.33: Add functions for reading and writing the link policy settings. Add definition for authentication requirements. Add support for handling Simple Pairing. Add Simple Pairing support to Agent interface. Add ReleaseMode method to Adapter interface. Add DiscoverServices method to Device interface. Remove obsolete code and cleanup the repository. Move over to use the libgdbus API. Enable PIE by default if supported. ver 3.32: Add OCF constants for synchronous flow control enabling. Add support for switching HID proxy devices from Dell. Add more Bluetooth client/server helper functions. Add support for input service idle timeout option. Fix BNEP reconnection handling. Fix return value for snd_pcm_hw_params() calls. Use upper-case addresses for object paths. Remove HAL support helpers. Remove inotify support. Remove service daemon activation handling. Remove uneeded D-Bus API extension. ver 3.31: Create device object for all pairing cases. Convert authorization to internal function calls. Add initial support for Headset Audio Gateway role. Add generic Bluetooth helper functions for GLib. Fix endiannes handling of connection handles. Don't optimize when debug is enabled. ver 3.30: Convert audio service into a plugin. Convert input service into a plugin. Convert serial service into a plugin. Convert network service into a plugin. Emit old device signals when a property is changed. Fix missing DiscoverDevices and CancelDiscovery methods. Add another company identifier. Add basic support for Bluetooth sessions. Add avinfo utility for AVDTP/A2DP classification. Remove build option for deprecated sdpd binary. ver 3.29: Introduce new D-Bus based API. Add more SBC optimizations. Add support for PS3 remote devices. Fix alignment trap in SDP server. Fix memory leak in sdp_get_uuidseq_attr function. ver 3.28: Add support for MCAP UUIDs. Add support for role switch for audio service. Add disconnect timer for audio service. Add disconnect detection to ALSA plugin. Add more SBC optimizations. Fix alignment issue of SDP server. Remove support for SDP parsing via expat. ver 3.27: Update uinput.h with extra key definitions. Add support for input connect/disconnect callbacks. Add ifdefs around some baud rate definitions. Add another company identifier. Add proper HFP service level connection handling. Add basic headset automatic disconnect support. Add support for new SBC API. Fix SBC decoder noise at high bitpools. Use 32-bit multipliers for further SBC optimization. Check for RFCOMM connection state in SCO connect callback. Make use of parameters selected in ALSA plugin. ver 3.26: Fix compilation issues with UCHAR_MAX, USHRT_MAX and UINT_MAX. Improve handling of different audio transports. Enable services by default and keep old daemons disabled. ver 3.25: Add limited support for Handsfree profile. Add limited support for MPEG12/MP3 codec. Add basic support for UNITINFO and SUBUNITINFO. Add more SBC optimizations. Fix external service (un)registration. Allow GetInfo and GetAddress to fail. ver 3.24: Add definitions for MDP. Add TCP connection support for serial proxy. Add fix for Logitech HID proxy switching. Add missing macros, MIN, MAX, ABS and CLAMP. Add more SBC encoder optimizations. Add initial mechanism to handle headset commands. Fix connecting to handsfree profile headsets. Use proper function for checking signal name. ver 3.23: Fix remote name request handling bug. Fix key search function to honor the mmap area size. Fix Avahi integration of network service. Add new plugin communication for audio service. Enable basic AVRCP support by default. More optimizations to the SBC library. Create common error definitions. ver 3.22: Add missing include file from audio service. Add SBC conformance test utility. Add basic uinput support for AVRCP. Fix L2CAP socket leak in audio service. Fix buffer usage in GStreamer plugin. Fix remote name request event handling. ver 3.21: Add constant for Bluetooth socket options level. Add initial AVRCP support. Add A2DP sink support to GStreamer plugin. Fix interoperability with A2DP suspend. Fix sign error in 8-subband encoder. Fix handling of service classes length size. Store Extended Inquiry Response data information. Publish device id information through EIR. Support higher baud rates for Ericcson based chips. ver 3.20: Fix GStreamer plugin file type detection. Fix potential infinite loop in inotify support. Fix D-Bus signatures for dict handling. Fix issues with service activation. Fix SDP failure handling of audio service. Fix various memory leaks in input service. Add secure device creation method to input service. Add service information methods to serial service. Add config file support to network service. Add scripting capability to network service. Add special on-mode handling. Add optimization for SBC encoder. Add tweaks for D-Bus 1.1.x libraries. Add support for inquiry transmit power level. ver 3.19: Limit range of bitpool announced while in ACP side. Use poll instead of usleep to wait for worker thread. Use default event mask from the specification. Add L2CAP mode constants. Add HID proxy support for Logitech diNovo Edge dongle. Add refresh option to re-request device names. Show correct connection link type. ver 3.18: Don't allocate memory for the Bluetooth base UUID. Implement proper locking for headsets. Fix various A2DP SEP locking issues. Fix and cleanup audio stream handling. Fix stream starting if suspend request is pending. Fix A2DP and AVDTP endianess problems. Add network timeout and retransmission support. Add more detailed decoding of EIR elements. ver 3.17: Fix supported commands bit calculation. Fix crashes in audio and network services. Check PAN source and destination roles. Only export the needed symbols for the plugins. ver 3.16: Update company identifier list. Add support for headsets with SCO audio over HCI. Add support for auto-create through ALSA plugin. Add support for ALSA plugin parameters. Add GStreamer plugin with SBC decoder and encoder. Fix network service NAP, GN and PANU servers. Set EIR information from SDP database. ver 3.15: Add A2DP support to the audio service. Add proxy support to the serial service. Extract main service class for later use. Set service classes value from SDP database. ver 3.14: Add missing signals for the adapter interface. Add definitions and functions for Simple Pairing. Add basic commands for Simple Pairing. Add correct Simple Pairing and EIR interaction. Add missing properties for remote information. Add EPoX endian quirk to the input service. Fix HID descriptor import and storage functions. Fix handling of adapters in raw mode. Fix remote device listing methods. ver 3.13: Fix some issues with the headset support. Fix concurrent pending connection attempts. Fix usage of devname instead of netdev. Add identifier for Nokia SyncML records. Add command for reading the CSR chip revision. Add generic CSR radio test support. Update HCI command table. ver 3.12: Add missing HCI command text descriptions Add missing HCI commands structures. Add missing HCI event structures. Add common bachk() function. Add support for limited discovery mode. Add support for setting of event mask. Add GetRemoteServiceIdentifiers method. Add skeleton for local D-Bus server. Add headset gain control methods. Fix various headset implementation issues. Fix various serial port service issues. Fix various input service issues. Let CUPS plugin discover printers in range. Improve the BCM2035 UART init routine. Ignore connection events for non-ACL links. ver 3.11: Update API documentation. Minimize SDP root records and browse groups. Use same decoder for text and URL strings. Fix URL data size handling. Fix SDP pattern extraction for XML. Fix network connection persistent state. Add network connection helper methods. Add initial version of serial port support. Add class of device tracking. ver 3.10.1: Add option to disable installation of manual pages. Fix input service encryption setup. Fix serial service methods. Fix network service connection handling. Provide a simple init script. ver 3.10: Add initial version of network service. Add initial version of serial service. Add initial version of input service. Add initial version of audio service. Add authorization framework. Add integer based SBC library. Add version code for Bluetooth 2.1 specification. Add ESCO_LINK connection type constant. Export sdp_uuid32_to_uuid128() function. ver 3.9: Add RemoteDeviceDisconnectRequested signal. Add updated service framework. Add embedded GLib library. Add support for using system GLib library. Create internal SDP server library. ver 3.8: Sort discovered devices list based on their RSSI. Send DiscoverableTimeoutChanged signal. Fix local and remote name validity checking. Add ListRemoteDevices and ListRecentRemoteDevices methods. Add basic integration of confirmation concept. Add support for service record description via XML. Add support for external commands to the RFCOMM utility. Add experimental service and authorization API. Add functions for registering binary records. ver 3.7: Fix class of device handling. Fix error replies with pairing and security mode 3. Fix disconnect method for RFCOMM connections. Add match pattern for service searches. Add support for prioritized watches. Add additional PDU length checks. Fix CSRC value for partial responses. ver 3.6.1: Fix IO channel race conditions. Fix pairing issues on big endian systems. Fix pairing issues with page timeout errors. Fix pairing state for security mode 3 requests. Switch to user as default security manager mode. ver 3.6: Update D-Bus based RFCOMM interface support. Use L2CAP raw sockets for HCI connection creation. Add periodic discovery support to the D-Bus interface. Add initial support for device names via EIR. Add proper UTF-8 validation of device names. Add support for the J-Three keyboard. Fix issues with the asynchronous API for SDP. ver 3.5: Fix and cleanup watch functionality. Add support for periodic inquiry mode. Add support for asynchronous SDP requests. Add more request owner tracking. Add asynchronous API for SDP. Document pageto and discovto options. ver 3.4: Improve error reporting for failed HCI commands. Improve handling of CancelBonding. Fixed bonding reply message when disconnected. Fix UUID128 string lookup handling. Fix malloc() versus bt_malloc() usage. ver 3.3: Don't change inquiry mode for Bluetooth 1.1 adapters. Add udev rules for Bluetooth serial PCMCIA cards. Add Cancel and Release methods for passkey agents. Add GetRemoteClass method. Convert to using ppoll() and pselect(). Initialize allocated memory to zero. Remove bcm203x firmware loader. Remove kernel specific timeouts. Add additional private data field for SDP sessions. Add host controller to host flow control defines. Add host number of completed packets defines. Initialize various memory to zero before usage. ver 3.2: Only check for the low-level D-Bus library. Update possible device minor classes. Fix timeout for pending reply. Add more Inquiry with RSSI quirks. Sleep only 100 msecs for device detection. Don't send BondingCreated on link key renewal. Allow storing of all UTF-8 remote device names. Create storage filenames with a generic function. Fix handling of SDP strings. Add adapter type for SDIO cards. Add features bit for link supervision timeout. ver 3.1: Add missing placeholders for feature bits. Fix handling of raw mode devices. Fix busy loop in UUID extraction routine. Remove inquiry mode setting. Remove auth and encrypt settings. ver 3.0: Implement the new BlueZ D-Bus API. Fix broken behavior with EVT_CMD_STATUS. Add features bit for pause encryption. Add additional EIR error code. Add more company identifiers. Add another Phonebook Access identifier. Update sniff subrating data structures. ver 2.25: Use %jx instead of %llx for uint64_t and int64_t. Allow null-terminated text strings. Add UUID for N-Gage games. Add UUID for Apple Macintosh Attributes. Add Apple attributes and iSync records. Add definitions for Apple Agent. Add support for the Handsfree Audio Gateway service. Add support for choosing a specific record handle. Add support for dialup/telephone connections. Add definitions for Apple Agent. Add support for record handle on service registration. ver 2.24: Fix display of SDP text and data strings. Add support for device scan property. Add support for additional access protocols. Update the D-Bus policy configuration file. ver 2.23: Update the new D-Bus interface. Make dfutool ready for big endian architectures. Add support for AVRCP specific service records. Add support for writing complex BCCMD commands. Add the new BCCMD interface utility. Add MicroBCSP implementation from CSR. Add constants and definitions for sniff subrating. Add support for allocation of binary text elements. Add HCI emulation tool. Add fake HID support for old EPoX presenters. Reject connections from unknown HID devices. Fix service discovery deadlocks with Samsung D600 phones. ver 2.22: Remove D-Bus 0.23 support. Add initial version of the new D-Bus interface. Add support for extended inquiry response commands. Add support for the Logitech diNovo Media Desktop Laser. Add compile time buffer checks (FORTIFY SOURCE). Decode reserved LMP feature bits. Fix errno overwrite problems. Fix profile descriptor problem with Samsung phones. ver 2.21: Move create_dirs() and create_file() into the textfile library. Let textfile_put() also replace the last key value pair. Fix memory leaks with textfile_get() usage. Fix infinite loops and false positive matches. Don't retrieve stored link keys for RAW devices. Document the putkey and delkey commands. Show supported commands also in clear text. Support volatile changes of the BD_ADDR for CSR chips. Add support for identification of supported commands. Add missing OCF declarations for the security filter. Add two new company identifiers. ver 2.20: Add UUIDs for video distribution profile. Add UUIDs for phonebook access profile. Add attribute identifier for supported repositories. Add definitions for extended inquiry response. Add functions for extended inquiry response. Add support for extended inquiry response. Add support for HotSync service record. Add support for ActiveSync service record. Add ActiveSync networking support. Fix D-Bus crashes with new API versions. ver 2.19: Fix the GCC 4.0 warnings. Fix the routing for dealing with raw devices. Fix off by one memory allocation error. Fix security problem with escape characters in device name. Add per device service record functions. Send D-Bus signals for inquiry results and remote name resolves. Add support for device specific SDP records. ver 2.18: Support D-Bus 0.23 and 0.33 API versions. Support reading of complex BCCMD values. Support minimum and maximum encryption key length. Add support for reading and writing the inquiry scan type. Add definitions for connection accept timeout and scan enable. Add support for inquiry scan type. Add tool for the CSR BCCMD interface. Add first draft of the Audio/Video control utility. Add disconnect timer support for the A2DP ALSA plugin. Make SBC parameters configurable. Replace non-printable characters in device names. Remove hci_vhci.h header file. Remove hci_uart.h header file. ver 2.17: Set the storage directory through ${localstatedir}. Add the textfile library for ASCII based file access. Add support for return link keys event. Add support for voice setting configuration. Add support for page scan timeout configuration. Add support for storing and deleting of stored link keys. Add support for searching for services with UUID-128. Add support for retrieving all possible service records. Add support for a raw mode view of service records. Add support for HID information caching in hidd. Add support for authentication in pand and dund. Add support for changing BD_ADDR of CSR chips. Add pskey utility for changing CSR persistent storage values. Add the firmware upgrade utility. Add connection caching for the A2DP ALSA plugin. Add functions for stored link keys. Add definitions for PIN type and unit key. Add SDP_WAIT_ON_CLOSE flag for sdp_connect(). Include stdio.h in bluetooth.h header file. Include sys/socket.h in the header files. ver 2.16: Store link keys in ASCII based file format. Support device name caching. Support zero length data sizes in l2test. Change default l2ping data size to 44 bytes. Hide the server record and the public browse group root. Read BD_ADDR if not set and if it is a raw device. Add SDP language attributes. Add support for browsing the L2CAP group. Add support for stored pin codes for outgoing connections. Add support for local commands and extended features. Add support for reading CSR panic and fault codes. Add config option for setting the inquiry mode. Add OUI decoding support. Use unlimited inquiry responses as default. Use cached device names for PIN request. Use the clock offset when getting the remote names. Add function for reading local supported commands. Add function for reading local extended features. Add function for reading remote extended features. Add function for getting the remote name with a clock offset. Add function for extracting the OUI from a BD_ADDR. Add inquiry info structure with RSSI and page scan mode. Fix buffer allocation for features to string conversion. Support inquiry with unlimited number of responses. ver 2.15: Enable the RFCOMM service level security. Add deprecated functions for reading the name. Add command for reading the clock offset. Add command for reading the clock. Add function for reading the clock. Add function for reading the local Bluetooth address. Add function for reading the local supported features. Don't configure raw devices. Don't set inquiry scan or page scan on raw devices. Don't show extended information for raw devices. Support L2CAP signal sizes bigger than 2048 bytes. Cleanup of the socket handling code of the test programs. Use better way for unaligned access. Remove sdp_internal.h and its usage. ver 2.14: Make use of additional connection information. Use library function for reading the RSSI. Use library function for reading the link quality. Use library function for reading the transmit power level. Use library functions for the link supervision timeout. Add tool for changing the device address. Add function for reading the RSSI. Add function for reading the link quality. Add function for reading the transmit power level. Add functions for the link supervision timeout. Remove deprecated functions. Update AM_PATH_BLUEZ macro. ver 2.13: Use file permission 0600 for the link key file. Add support for HID attribute descriptions. Add support for Device ID attributes. Add Device ID and HID attribute definitions. Update the UUID constants and its translations. Update L2CAP socket option definitions. Update connection information definitions. Various whitespace cleanups. ver 2.12: Inherit the device specific options from the default. Use --device for selecting the source device. Add --nosdp option for devices with resource limitation. Add support and parameter option for secure mode. Add a lot of build ids and hardware revisions. Add service classes and profile ids for WAP. Add simple AM_PATH_BLUEZ macro. Update UUID translation tables. Correct kernel interface for CMTP and HIDP support. ver 2.11: Initial support for the kernel security manager. Various cleanups to avoid inclusion of kernel headers. Fix output when the CUPS backend is called without arguments. Fix problems with a 64 bit userland. Use Bluetooth library functions if available. Use standard numbering scheme of SDP record handles. Use bit zero for vendor packets in the filter type bitmask. Add SIM Access types for service discovery. Add more audio/video profile translations. Add another company identifier. Add the missing HCI error codes. Add RFCOMM socket options. Add definition for the SECURE link mode. Add functions for reading and writing the inquiry mode. Add functions for AFH related settings and information. Add version identifier for the Bluetooth 2.0 specification. Add a master option to the hidd. Add support for changing the link key of a connection. Add support for requesting encryption on keyboards. Add support for revision information of Digianswer devices. Add support for the Zoom, IBM and TDK PCMCIA cards. Add checks for the OpenOBEX and the ALSA libraries. Add experimental mRouter support. ver 2.10: Use a define for the configuration directory. Fix string initialization for flags translation. Fix and extend the unaligned access macros. Make compiling with debug information optional. Don't override CFLAGS from configure. Check for usb_get_busses() and usb_interrupt_read(). Add optional support for compiling with PIE. Make installation of the init scripts optional. Make compiling with debug information optional. Don't override CFLAGS from configure. ver 2.9: Retry SDP connect if busy in the CUPS backend. Use packet type and allow role switch in hcitool. Use the functions from the USB library for hid2hci. Add Broadcom firmware loader. Add EPoX endian quirk for buggy keyboards. Add L2CAP info type and info result definitions. Add value for L2CAP_CONF_RFC_MODE. Change RSSI value to signed instead of unsigned. Allow UUID32 values as protocol identifiers. Update the autoconf/automake scripts. ver 2.8: Use LIBS and LDADD instead of LDFLAGS. Use HIDP subclass field for HID boot protocol. Set olen before calling getsockopt() in pand. Restore signals for dev-up script. Add PID file support for pand. Add size parameter to expand_name() in hcid. Add support for audio source and audio sink SDP records. Add support for HID virtual cable unplug. Add support for AmbiCom BT2000C card. Add defines and UUID's for audio/video profiles. Add AVDTP protocol identifier. Add HIDP subclass field. Add PKGConfig support. Fix the event code of inquiry with RSSI. Remove dummy SDP library. ver 2.7: Fix display of decoded LMP features. Update company identifiers. Add AFH related types. Add first bits from EDR prototyping specification. Add support for inquiry with RSSI. Add HCRP related SDP functions. Add HIDP header file. Add support for getting the AFH channel map. Add support for AFH mode. Add support for inquiry mode. Add Bluetooth backend for CUPS. Add the hid2hci utility. Add the hidd utility. Add the pand utility. Add the dund utility. More endian bug fixes. Give udev some time to create the RFCOMM device nodes. Release the TTY if no device node is found. New startup script for the Bluetooth subsystem. Update to the autoconf stuff. ver 2.6: Change default prefix to /usr. Add manpages for hcid and hcid.conf. Add the sdpd server daemon. Add the sdptool utility. Add the ciptool utility. Add new company identifiers. Add BNEP and CMTP header files. Add the SDP library. Use R2 for default value of pscan_rep_mode. ver 2.5: Add decoding of Bluetooth 1.2 features. Add link manager version parameter for Bluetooth 1.2. Add new company identifiers. Add D-Bus support for PIN request. Support for transmit power level. Support for park, sniff and hold mode. Support for role switch. Support for reading the clock offset. Support for requesting authentication. Support for setting connection encryption. Show revision information for Broadcom devices. Replace unprintable characters in device name. Use R1 for default value of pscan_rep_mode. Fix some 64-bit problems. Fix some endian problems. Report an error on PIN helper failure. Update bluepin script for GTK2. ver 2.4: Increase number of inquiry responses. Support for transmit power level. Display all 8 bytes of the features. Add support for reading and writing of IAC. Correct decoding class of device. Use Ericsson revision command for ST Microelectronics devices. Display AVM firmware version with 'revision' command. New code for CSR specific revision information. Support for ST Microelectronics specific initialization. Support for 3Com card version 3.0. Support for TDK, IBM and Socket cards. Support for initial baud rate. Update man pages. Fixes for some memory leaks. ver 2.3: Added const qualifiers to appropriate function arguments. Minor fixes. CSR firmware version is now displayed by 'revision' command. Voice command is working properly on big endian machines. Added support for Texas Bluetooth modules. Added support for high UART baud rates on Ericsson modules. BCSP initialization fixes. Support for role switch command (hcitool). RFCOMM config file parser fixes. Update man pages. Removed GLib dependency. ver 2.2: Updated RFCOMM header file. Additional HCI command and event defines. Support for voice settings (hciconfig). Minor hcitool fixes. Improved configure script. Added Headset testing tool. Updated man pages. RPM package. ver 2.1.1: Resurrect hci_remote_name. ver 2.1: Added hci_{read, write}_class_of_dev(). Added hci_{read, write}_current_iac_lap(). Added hci_write_local_name(). Added RFCOMM header file. Minor fixes. Improved BCSP initialization (hciattach). Support for displaying link quality (hcitool). Support for changing link supervision timeout (hcitool). New RFCOMM TTY configuration tool (rfcomm). Minor fixes and updates. ver 2.0: Additional company IDs. BCSP initialization (hciattach). Minor hciconfig fixes. ver 2.0-pr13: Support for multiple pairing modes. Link key database handling fixes. ver 2.0-pre12: Removed max link key limit. Keys never expire. Link key database is always updated. Reread PIN on SIGHUP (hcid). Bluetooth script starts SDPd, if installed. Other minor fixes. ver 2.0-pre11: Improved link key management and more verbose logging (hcid). Fixed scan command (hcitool). ver 2.0-pre10: Fix hci_inquiry function to return errors and accept user buffers. New functions hci_devba, hci_devid, hci_for_each_dev and hci_get_route. Additional company IDs. Makefile and other minor fixes. Support for reading RSSI, remote name and changing connection type (hcitool). Device initialization fixes (hcid). Other minor fixes and improvements. Build environment cleanup and fixes. ver 2.0-pre9: Improved bluepin. Working X authentication. Improved hcitool. New flexible cmd syntax, additional commands. Human readable display of the device features. LMP features to string translation support. Additional HCI command and event defines. Extended hci_filter API. ver 2.0-pre8: Additional HCI ioctls and defines. All strings and buffers are allocated dynamically. ba2str, str2ba automatically swap bdaddress. Additional hciconfig commands. Support for ACL and SCO MTU ioctls. Support for Inventel and COM1 UART based devices. Minor hcitool fixes. Improved l2test. New L2CAP test modes. Minor fixes and cleanup. ver 2.0-pre7: Bluetooth libraries and header files is now a separate package. New build environment uses automake and libtool. Massive header files cleanup. Bluetooth utilities is now a separate package. New build environment uses automake. Moved all config files and security data to /etc/bluetooth. Various cleanups. ver 2.0-pre6: API cleanup and additions. Improved hcitool. l2test minor output fixes. hciattach opt to display list of supported devices. ver 2.0-pre4: HCI filter enhancements. ver 2.0-pre3: Cleanup. ver 2.0-pre2: Additional HCI library functions. Improved CSR baud rate initialization. PCMCIA scripts fixes and enhancements. Documentation update. ver 2.0-pre1: New UART initialization utility. Hot plugging support for UART based PCMCIA devices. SCO testing utility. New authentication utility (bluepin). Minor fixes and improvements.