summaryrefslogtreecommitdiffstats
path: root/ChangeLog
blob: 54abd796aed1a4d44b751e931da18c27fc515101 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
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.