OSDN Git Service
Bruna Moreira [Thu, 9 Dec 2010 13:09:13 +0000 (09:09 -0400)]
Check the security level on a per request base
Check security level on attribute server on each request, and update the
"encrypted" flag.
Johan Hedberg [Thu, 9 Dec 2010 13:09:39 +0000 (15:09 +0200)]
Fix HFP response and hold (AT+BTRH) command response
Since no telephony driver supports this command at the moment the
correct behavior is to always return an error. Therefore, a new
"not supported" value is needed for the respective state variable.
Gustavo F. Padovan [Wed, 8 Dec 2010 20:26:01 +0000 (18:26 -0200)]
Add btd_error_already_connected()
Gustavo F. Padovan [Wed, 8 Dec 2010 20:26:00 +0000 (18:26 -0200)]
convert error to btd_error_not_supported()
Gustavo F. Padovan [Wed, 8 Dec 2010 20:25:59 +0000 (18:25 -0200)]
convert error to btd_error_not_connected()
Gustavo F. Padovan [Wed, 8 Dec 2010 20:25:58 +0000 (18:25 -0200)]
convert error to btd_error_busy()
Gustavo F. Padovan [Wed, 8 Dec 2010 20:25:57 +0000 (18:25 -0200)]
convert errors to btd_error_does_not_exist()
Gustavo F. Padovan [Wed, 8 Dec 2010 20:25:56 +0000 (18:25 -0200)]
convert errors to btd_error_not_authorized()
Gustavo F. Padovan [Wed, 8 Dec 2010 20:25:55 +0000 (18:25 -0200)]
Fix coding styling issues in src/error.c
Lucas De Marchi [Sat, 27 Nov 2010 19:39:01 +0000 (17:39 -0200)]
gdbus: explicitly compare pointers to NULL
This patch was generated by the following semantic patch
(http://coccinelle.lip6.fr/)
// <smpl>
@fix disable is_null,isnt_null1@
expression *E;
@@
- !E
+ E == NULL
// </smpl>
Johan Hedberg [Wed, 8 Dec 2010 08:28:55 +0000 (10:28 +0200)]
Fix bt_extract_eir_name to use GLib memory allocation
The string returned by bt_extract_eir_name is freed using g_free so
GLib's own allocators should be used instead of libc ones.
Gustavo F. Padovan [Wed, 8 Dec 2010 01:02:06 +0000 (23:02 -0200)]
Revert use of new error function for Blocked
The error message says a lot about what the user need to do, I'm reverting
this change and will fix in the next patch series about the DBus error
handling.
Claudio Takahasi [Tue, 7 Dec 2010 22:20:37 +0000 (19:20 -0300)]
Remove fixed item from TODO
Read by UUID is already supported by attribute server and gatttool.
Johan Hedberg [Tue, 7 Dec 2010 22:03:34 +0000 (00:03 +0200)]
Make device type evaluation more readable
Claudio Takahasi [Fri, 3 Dec 2010 14:28:52 +0000 (11:28 -0300)]
Make bt_name2class static on glib-helper
Claudio Takahasi [Fri, 3 Dec 2010 14:28:51 +0000 (11:28 -0300)]
glib-helper: fix coding style issues
Claudio Takahasi [Tue, 7 Dec 2010 21:33:15 +0000 (18:33 -0300)]
Make EIR type an optional argument for bt_extract_eir_name
Claudio Takahasi [Tue, 7 Dec 2010 21:31:53 +0000 (18:31 -0300)]
Check if the remote LE is connectable when creating a device
Before issue Discover All Primary Service the advertising event type
needs to be evaluated to avoid connection attempts to non-connectable
devices. For non-connectable devices, CreateDevice creates the device
instance however no Services/UUIDs will be exposed.
Claudio Takahasi [Tue, 7 Dec 2010 21:30:40 +0000 (18:30 -0300)]
Add device type to identify LE, BR/EDR or dual mode devices
If EIR Flags field is sent in the advertising data, it can be used
to detect the operation mode. If the remote device is dual mode,
GAP operation mode defines that it shall follow the connectable
mode for BR/EDR and non-connectable mode for LE. This patch forces
service discovery protocol prior to Discover All Primary Services.
Claudio Takahasi [Tue, 7 Dec 2010 21:41:38 +0000 (18:41 -0300)]
Remove automatic battery state change on attribute example
Legacy code implemented to test Indication and Notification
Gustavo F. Padovan [Mon, 6 Dec 2010 19:10:48 +0000 (17:10 -0200)]
Add btd_error_not_authorized()
Gustavo F. Padovan [Mon, 6 Dec 2010 19:10:47 +0000 (17:10 -0200)]
Add btd_error_does_not_exist()
Gustavo F. Padovan [Mon, 6 Dec 2010 19:10:46 +0000 (17:10 -0200)]
Add btd_error_busy()
Gustavo F. Padovan [Mon, 6 Dec 2010 19:10:45 +0000 (17:10 -0200)]
Add btd_error_not_available()
Gustavo F. Padovan [Mon, 6 Dec 2010 19:10:44 +0000 (17:10 -0200)]
Add btd_error_in_progress()
Gustavo F. Padovan [Mon, 6 Dec 2010 19:10:43 +0000 (17:10 -0200)]
Add btd_error_not_connected()
Gustavo F. Padovan [Mon, 6 Dec 2010 19:10:42 +0000 (17:10 -0200)]
Add btd_error_not_supported()
Gustavo F. Padovan [Mon, 6 Dec 2010 19:10:41 +0000 (17:10 -0200)]
Add btd_error_already_exists()
Gustavo F. Padovan [Mon, 6 Dec 2010 19:10:40 +0000 (17:10 -0200)]
Create btd_error_invalid_args()
DBus error handling in BlueZ is a mess. This is the first patch to unify
all DBus error handling like in ConnMan and oFono. This unifies all
.InvalidArguments errors.
Vinicius Costa Gomes [Fri, 3 Dec 2010 18:28:48 +0000 (15:28 -0300)]
Fix writing to GAttrib socket without POLLOUT event
If the GIOChannel is in the buffered state (the default) the watch
function is called without receiving a POLLOUT from the socket. GLib
adds a G_IO_OUT condition just because there is space in the GIOChannel
internal buffer.
The solution is disabling the internal buffer, which in turn, makes the
call of g_io_channel_flush() useless.
Anderson Lizardo [Fri, 3 Dec 2010 18:26:22 +0000 (14:26 -0400)]
Check authentication permissions on attribute server
Attributes may require encryption for certain operations. This commit
adds checks to the attribute server which verify whether the current
connection is encrypted (by checking the security level) and the
attribute being accessed requires authentication. If encryption
requirements are not satisfied, the "Insufficient Encryption" error is
returned by the server.
Note that currently there is no actual distinction between
authentication and encryption. Currently, if an attribute requires
authentication, it is only checked whether the link is encrypted. Core
Specification, as of version 4.0, does not specify an explicit
"encryption" permission (see Vol. 3, Part F, 3.2.5 "Attribute
Permissions").
Bruna Moreira [Fri, 3 Dec 2010 18:26:21 +0000 (14:26 -0400)]
Check attribute permissions in attribute server
The attribute server must verify if the operation (read/write) is
permitted before running the request, and send "Read Not Permitted" or
"Write Not Permitted" error response to client if appropriate.
Bruna Moreira [Fri, 3 Dec 2010 18:26:20 +0000 (14:26 -0400)]
Initial attribute permission implementation
Add enums for attribute read/write requirements, which may be "none",
"authentication required" or "authorization required". Additionally, a
"not permitted" requirement means that operation is not permitted,
allowing read-only or write-only attributes.
The attrib_db_add() API was changed to allow setting these requirements,
and the example server was changed to set requirements for its
attributes.
Luiz Augusto von Dentz [Thu, 2 Dec 2010 08:46:04 +0000 (10:46 +0200)]
Fix deinitializing telephony backend when it wasn't initialized
Telephony driver is now deinitialized on headset adapter driver remove so
telephony_exit should not be called on plugin exit anymore.
Marcel Holtmann [Tue, 30 Nov 2010 14:55:09 +0000 (15:55 +0100)]
Release 4.81
Luiz Augusto von Dentz [Tue, 30 Nov 2010 12:38:29 +0000 (14:38 +0200)]
Fix not canceling pending calls on maemo6 telephony driver exit
This happens when the driver exit is called quickly after init due to
adapter power changes.
Luiz Augusto von Dentz [Tue, 30 Nov 2010 12:26:14 +0000 (14:26 +0200)]
Use specific members in D-Bus match rules on telephony maemo6 driver
This reduces the amount of unnecessary wake-ups without breaking anything
Luiz Augusto von Dentz [Tue, 30 Nov 2010 12:26:13 +0000 (14:26 +0200)]
Fix interface name of modem states on maemo6 telephony driver
Daniel Orstadius [Tue, 30 Nov 2010 11:27:57 +0000 (13:27 +0200)]
Initialize adapter services list
In case service records have been added to bluetoothd before a new
adapter is registered, the records which are shared by all adapters
(indicated by having the address set to BDADDR_ANY) need to be added
to the services list of the new adapter. This patch adds a function
for this on adapter initialization.
The issue could be reproduced by running bluetoothd and obexd on a
PC and briefly removing the BT dongle. The service records from
obexd would not be present in the adapter's local list (which is
used to set the class of device).
Sheldon Demario [Mon, 29 Nov 2010 18:36:29 +0000 (13:36 -0500)]
Emit Connect signal for LE capable devices
Sheldon Demario [Mon, 29 Nov 2010 12:44:22 +0000 (07:44 -0500)]
Attrib server should truncate attribute value to pdu length
When the size of attribute value is greater than pdu size, it should be
truncated to the pdu length - 2
Claudio Takahasi [Wed, 24 Nov 2010 02:30:47 +0000 (00:30 -0200)]
Don't trigger the discovering when registering the client
Discover All Primary Services should not be trigged by the attribute
client when a given device is registered. Discover services is now done
by the device entity.
Claudio Takahasi [Wed, 24 Nov 2010 02:30:46 +0000 (00:30 -0200)]
Fix memory leak of sdp list in the attribute client
Claudio Takahasi [Wed, 24 Nov 2010 02:30:45 +0000 (00:30 -0200)]
Return a D-Bus error if device_browse fails
If Discover All Primary Services or SDP search fails, the CreateDevice
caller will not receive a response. Error reproducible when a Discover
All Primary Services is sent over a LE link and the kernel doesn't
address properly the connections in the channel ID 4.
Claudio Takahasi [Wed, 24 Nov 2010 02:30:44 +0000 (00:30 -0200)]
Check the device type when creating the device
For CreateDevice, if the remote device is LE capable, Discover All
Primary Services shall be issued instead of SDP queries. The logic
to define if the remote is LE capable shall be based on the result
of the interleaved discovery results. Meaning, the remote device
is classified as LE capable only if an advertising event from this
device was collected during the discovery.
Limitation: Advertising event data is not being considered yet to
infer the remote properties and CreateDevice needs to be called
during the discovery session.
Claudio Takahasi [Wed, 24 Nov 2010 02:30:43 +0000 (00:30 -0200)]
Implement primary service search when creating a device
Discover primary services implemented inside the device entity to allow
proper integration of attribute plugin. Implements a single entry point
to the attribute plugin no matter the transport(BR/EDR or LE), the device
probe callback is called for both types.
Add a new function to discover all primary services without additional
calls to fetch the remaining primary services, sub-procedure iterations
is handled inside this function.
The next action are: clean the attribute client removing implicity service
and characteristics discovery, issue the Discover Primary Service based on
the remote properties and fetch the characteristic on demand.
Claudio Takahasi [Mon, 29 Nov 2010 13:24:13 +0000 (10:24 -0300)]
Removed unused define
Claudio Takahasi [Mon, 29 Nov 2010 13:24:14 +0000 (10:24 -0300)]
hcid header cleanup
Johan Hedberg [Sun, 28 Nov 2010 19:13:59 +0000 (21:13 +0200)]
Remove unused scan_mode variable
Johan Hedberg [Sun, 28 Nov 2010 18:23:43 +0000 (20:23 +0200)]
Use existing bit functions from hci.h
Johan Hedberg [Sun, 28 Nov 2010 11:40:38 +0000 (13:40 +0200)]
Remove unused includes
Johan Hedberg [Sun, 28 Nov 2010 11:19:53 +0000 (13:19 +0200)]
Remove unused define
Johan Hedberg [Sat, 27 Nov 2010 16:03:09 +0000 (18:03 +0200)]
Use address instead of object path in device logs
Johan Hedberg [Sat, 27 Nov 2010 15:39:37 +0000 (17:39 +0200)]
Improve hciops logging
Johan Hedberg [Sat, 27 Nov 2010 15:00:03 +0000 (17:00 +0200)]
Improve agent PIN length error log
Johan Hedberg [Sat, 27 Nov 2010 14:51:37 +0000 (16:51 +0200)]
Use hci_send_cmd instead of hci_send_req for authentication
In addition to blocking the mainloop hci_send_req changes the socket
filters which makes it unusable for the per-adapter HCI socket in
hciops.c. Using hci_send_cmd makes much more sense here.
Rafal Michalski [Thu, 25 Nov 2010 10:06:55 +0000 (11:06 +0100)]
Fix crash after simultaneous authentication requests
Previously simultaneous authentication requests to the same device caused
bluetoothd crash. Now if ongoing authentication occurs error is returned,
preventing from simultaneous requests to the same device.
Claudio Takahasi [Wed, 24 Nov 2010 18:16:56 +0000 (15:16 -0300)]
sdpd header cleanup
Luiz Augusto von Dentz [Thu, 25 Nov 2010 16:07:02 +0000 (18:07 +0200)]
Fix telephony maemo6 driver deinitialization
Remove all match rules and unregister its interface when telephony_exit
is called.
Luiz Augusto von Dentz [Thu, 25 Nov 2010 15:22:30 +0000 (17:22 +0200)]
Fix telephony dummy driver
Make it unregister its interface on telephony_exit
Luiz Augusto von Dentz [Thu, 25 Nov 2010 15:22:29 +0000 (17:22 +0200)]
Fix not deinitializing telephony driver when there is no adapter powered
This changes hook telephony driver de/initialization to powered state so
telephony drivers can now free their resources when there is no adapter
active in the system.
Sheldon Demario [Tue, 23 Nov 2010 12:37:19 +0000 (07:37 -0500)]
Extend discover characteristic by UUID in gatttool to fetch all values
If the number of characteristics returned exceeds the MTU size, it will
be needed to ask for more data until the handle range is entirely
searched.
Suraj Sumangala [Tue, 23 Nov 2010 10:59:23 +0000 (16:29 +0530)]
hciattach: download configuration at user requested baud rate
This patch support downloading configuration for Atheros AR300x HCI UART
chip at user requested baud rate instead of the initial baud rate.
Suraj Sumangala [Tue, 23 Nov 2010 10:39:43 +0000 (16:09 +0530)]
hciattach: make set_speed return error if any operation fails
This patch lets set_speed function changing UART baud rate to return an
error code if any one operation fails instead of returning only the last
operation's status.
Wade Brown [Mon, 22 Nov 2010 23:03:12 +0000 (23:03 +0000)]
Add a runtime option to set the BCSP communication rate
Jose Antonio Santos Cadenas [Mon, 22 Nov 2010 19:05:56 +0000 (20:05 +0100)]
Fix typo in adapter documentation
Jose Antonio Santos Cadenas [Mon, 22 Nov 2010 14:55:12 +0000 (15:55 +0100)]
Fix MDL and MCL reference counting in IO watchers
When a io_watcher is added to an MDL or an MCL channel, its reference
should be incremented because the watcher should keep its own reference
the the structure.
Also a destroy function is added in order to decrement the reference
once the watcher is removed.
Santiago Carot-Nemesio [Mon, 22 Nov 2010 08:10:46 +0000 (09:10 +0100)]
Do not increment mdl reference in reconnections
Marcel Holtmann [Sun, 21 Nov 2010 19:12:19 +0000 (20:12 +0100)]
Release 4.80
Johan Hedberg [Sun, 21 Nov 2010 19:01:20 +0000 (20:01 +0100)]
Make LE_LINK define private to hcitool.c for now
The value 0x03 isn't something that exists in the core spec, so it
shouldn't be used in the same API as SCO/ACL link types. Since there are
some experimental kernel patches that use it this patch makes it private
to hcitool.c.
Johan Hedberg [Fri, 19 Nov 2010 19:01:04 +0000 (21:01 +0200)]
Fix possible race condition when initializing adapters
Due to a possible kernel bug, sometimes the very first HCI commands that
the kernel sends might go unnoticed. Therefore check for this when one
of the last commands (read_local_name) that the kernel sends completes.
Luiz Augusto von Dentz [Fri, 19 Nov 2010 15:19:23 +0000 (17:19 +0200)]
Fix not indicating disconnected state when connecting to avdtp
This cause parts of code such as audio/sink.c to keeps its internal state
as connecting and thus prevent any other connection attempt to succeed.
Luiz Augusto von Dentz [Fri, 19 Nov 2010 15:12:49 +0000 (17:12 +0200)]
Fix not dropping avdtp session reference when cancelling stream setup
This will indicate to the session that there is no need to proceed with
stream configuration and that it should disconnect.
Luiz Augusto von Dentz [Fri, 19 Nov 2010 15:30:24 +0000 (17:30 +0200)]
Fix possible crashes when attempting to connect avdtp
Since the connections can be cancelled while still not complete the
GIOChannel must be stored in order to be properly closed when freeing
avdtp session or stream and thus avoid any callbacks to be called after
that.
Luiz Augusto von Dentz [Fri, 19 Nov 2010 15:11:00 +0000 (17:11 +0200)]
Add debug logs for state changes on sink
Luiz Augusto von Dentz [Thu, 18 Nov 2010 16:29:11 +0000 (18:29 +0200)]
Fix reference count of a2dp stream setup
Each callback should have a reference to the setup and once the callback
is removed the setup should be unreferenced which wasn't always the case.
Luiz Augusto von Dentz [Thu, 18 Nov 2010 15:45:52 +0000 (17:45 +0200)]
Fix abort not being send when the state is idle
The spec clearly suggested that abort can be send while on idle state:
"AVDTP_ABORT_CMD can be sent or received in IDLE state. In the event that
an AVDTP_ABORT_CMD is received in IDLE state, ACP or INT shall reply with
an AVDTP_ABORT_RSP, no state change is required."
In fact abort is the only way to cancel set_configuration and open
commands.
Luiz Augusto von Dentz [Mon, 15 Nov 2010 01:08:35 +0000 (01:08 +0000)]
Fix not removing all timers when user request to disconnect audio
This timers can trigger reconnections which is not a desirable behavior
Luiz Augusto von Dentz [Mon, 15 Nov 2010 13:35:22 +0000 (13:35 +0000)]
Cleanup a2dp_cancel code
If the id doesn't match any data we should not try to free anything since
obviously there is nothing to free.
Luiz Augusto von Dentz [Fri, 12 Nov 2010 15:39:51 +0000 (17:39 +0200)]
Cleanup a2dp setup code
Johan Hedberg [Fri, 19 Nov 2010 15:39:15 +0000 (17:39 +0200)]
Fix minor typo
Anderson Lizardo [Fri, 19 Nov 2010 14:59:19 +0000 (10:59 -0400)]
Avoid reallocations of services UUID array
The array of service UUIDs used by the DeviceFound signal contains the
same information from the GSList of services. Instead of reallocating
this array on each signal, store it on the remote_dev_info structure and
only reallocate it if there are new UUIDs.
Anderson Lizardo [Fri, 19 Nov 2010 14:50:40 +0000 (10:50 -0400)]
Merge service UUIDs from different BR/EDR EIR data
For LE devices, service UUIDs present in advertising data are merged
into a single list. This change makes the same thing for BR/EDR devices.
Bruna Moreira [Fri, 19 Nov 2010 13:57:28 +0000 (09:57 -0400)]
Extract flags from advertising data
These flags will be used to decide if GATT service discovery will happen
over LE (for single mode devices) or BR/EDR (for dual mode and non-LE
devices).
Sheldon Demario [Fri, 19 Nov 2010 13:34:57 +0000 (08:34 -0500)]
Implement Characteristic Value Read using UUID in the gatttool
Sub-procedure used to read a Characteristic Value when the client
only knows the characteristic UUID and doesn't know the handle.
More than one handle and attribute value pair can be returned,
it is up to the user define the handles range based on the service
handles range.
Usage example:
$gatttool --char-read --uuid=2a00 -i hcix -b xx:xx:xx:xx:xx:xx
Suraj Sumangala [Fri, 19 Nov 2010 05:51:43 +0000 (11:21 +0530)]
hciattach: send hci commands after hci socket bring up
This patch makes The Atheros AR300x specific initialization code
to send power management command over HCI socket after bringing up
the device.
Claudio Takahasi [Thu, 18 Nov 2010 18:07:34 +0000 (16:07 -0200)]
Implement Discover Primary Service by Service UUID in the gatttool
Implement only the first interaction of the discovery procedure. If the
response doesn't fit in the MTU, "start" and "end" options can be used
to discover the handles ranges of the remaining primary service instances.
UUID16 and UUID128 are supported in the uuid option.
Usage example:
$gatttool -i hcix -b xx:xx:xx:xx:xx:xx --uuid=1801 --primary
Claudio Takahasi [Wed, 17 Nov 2010 18:09:45 +0000 (16:09 -0200)]
Add an extra parameter in the discovery primary to specify the UUID
Extends discover primary function to perform discover by UUID. UUID
parameter defines which procedure will be executed: Discover All
Primary Services or Discover Primary Service by Service UUID.
Claudio Takahasi [Wed, 17 Nov 2010 18:09:44 +0000 (16:09 -0200)]
Extend bt_string2uuid to convert hex strings to UUID16
Convert four or six(0x) digits length hexadecimal strings to UUID16.
Claudio Takahasi [Thu, 18 Nov 2010 18:02:33 +0000 (16:02 -0200)]
Implement Find by Type Value Request in the atttribute server
GATT Discover Primary Service by Service UUID sub-procedure is based
on ATT Find By Type Value Request/Response.
Implement an extra verification for broken requests: "Ending Handle"
different than 0xFFFF. The Group End Handle may be greater than the
"Ending Handle" in the Find By Type Value Request. Forces the "Ending
Handle" in the response to 0xFFFF to avoid another request from the
clients. 0xFFFF means that the sub-procedure is complete.
Claudio Takahasi [Thu, 18 Nov 2010 17:48:44 +0000 (15:48 -0200)]
Add Find By Type Value Response encoding/decoding functions
Find by type operation is used by Discover Primary Service by Service
UUID. Find By Type Value Response shall contain one or more group handles.
Keith Mok [Thu, 18 Nov 2010 13:33:16 +0000 (21:33 +0800)]
Add iwmmxt optimization for sbc for pxa series cpu
Add iwmmxt optimization for sbc for pxa series cpu.
Benchmarked on ARM PXA platform:
=== Before (4 bands) ====
$ time ./sbcenc_orig -s 4 long.au > /dev/null
real 0m 2.44s
user 0m 2.39s
sys 0m 0.05s
=== After (4 bands) ====
$ time ./sbcenc -s 4 long.au > /dev/null
real 0m 1.59s
user 0m 1.49s
sys 0m 0.10s
=== Before (8 bands) ====
$ time ./sbcenc_orig -s 8 long.au > /dev/null
real 0m 4.05s
user 0m 3.98s
sys 0m 0.07s
=== After (8 bands) ====
$ time ./sbcenc -s 8 long.au > /dev/null
real 0m 1.48s
user 0m 1.41s
sys 0m 0.06s
=== Before (a2dp usage) ====
$ time ./sbcenc_orig -b53 -s8 -j long.au > /dev/null
real 0m 4.51s
user 0m 4.41s
sys 0m 0.10s
=== After (a2dp usage) ====
$ time ./sbcenc -b53 -s8 -j long.au > /dev/null
real 0m 2.05s
user 0m 1.99s
sys 0m 0.06s
Johan Hedberg [Thu, 18 Nov 2010 15:03:10 +0000 (17:03 +0200)]
Fix C++ style comment
Jose Antonio Santos Cadenas [Tue, 16 Nov 2010 11:50:58 +0000 (12:50 +0100)]
Check if the mcl insiede the device is correctly set before use it
Santiago Carot-Nemesio [Tue, 16 Nov 2010 11:44:18 +0000 (12:44 +0100)]
Check if MCAP Instance is already released when a callbacks comes back.
Jose Antonio Santos Cadenas [Tue, 16 Nov 2010 09:42:14 +0000 (10:42 +0100)]
Fixes to echo
Jose Antonio Santos Cadenas [Tue, 16 Nov 2010 09:10:56 +0000 (10:10 +0100)]
Remove magic number to check ECHO MDEPs in HDP
Santiago Carot-Nemesio [Tue, 16 Nov 2010 09:09:30 +0000 (10:09 +0100)]
Return proper response code if there is an error creating echo channel
Santiago Carot-Nemesio [Tue, 16 Nov 2010 08:59:13 +0000 (09:59 +0100)]
Fix dereference to NULL pointers during data channels creation
Santiago Carot-Nemesio [Mon, 15 Nov 2010 13:08:49 +0000 (14:08 +0100)]
Code refactorization in MCAP