summaryrefslogtreecommitdiffstats
path: root/hcid/dbus-sdp.c
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2006-08-29 17:16:12 +0000
committerClaudio Takahasi <claudio.takahasi@openbossa.org>2006-08-29 17:16:12 +0000
commita68204dbb9f7cfee00d44315282124628ef4cded (patch)
tree8feb20792cba87865fc59b415674f817a1b3edea /hcid/dbus-sdp.c
parent250ed56dd4ec7aa5175b53304edc7db4524a5e72 (diff)
changed sdp error handling
Diffstat (limited to 'hcid/dbus-sdp.c')
-rw-r--r--hcid/dbus-sdp.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/hcid/dbus-sdp.c b/hcid/dbus-sdp.c
index 15ef33c0..3bfe5a4d 100644
--- a/hcid/dbus-sdp.c
+++ b/hcid/dbus-sdp.c
@@ -504,13 +504,13 @@ static void search_completed_cb(uint8_t type, uint16_t err, uint8_t *rsp, size_t
if (!ctxt)
return;
- if (err) {
- error("SDP error: %s(%d)", strerror(err), err);
- error_failed(ctxt->conn, ctxt->rq, err);
+ if (type == SDP_ERROR_RSP) {
+ error_sdp_failed(ctxt->conn, ctxt->rq, err);
return;
}
- if (type != SDP_SVC_SEARCH_ATTR_RSP || !rsp) {
+ /* check response PDU ID */
+ if (type != SDP_SVC_SEARCH_ATTR_RSP) {
error("SDP error: %s(%d)", strerror(EPROTO), EPROTO);
error_failed(ctxt->conn, ctxt->rq, EPROTO);
return;
@@ -525,6 +525,10 @@ static void search_completed_cb(uint8_t type, uint16_t err, uint8_t *rsp, size_t
dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
DBUS_TYPE_STRING_AS_STRING, &array_iter);
+ /*
+ * FIXME: check rsp? How check for I/O error or wrong transaction id?
+ * check the type value(Zero) is not reasonable!
+ */
pdata = rsp;
scanned = sdp_extract_seqtype(pdata, &dataType, &seqlen);