diff options
author | Szymon Janc <szymon.janc@tieto.com> | 2012-04-13 12:11:42 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-04-13 13:21:55 +0300 |
commit | 0e6d3c9bbdc19ffa85b9b404d2bb31d8b81b3df0 (patch) | |
tree | 4f506abf79b99755cdbe6c92c6e6deddfcb3b442 /src/sdp-client.c | |
parent | b063ca7c0d2f88a3ee348598b5f3062405fc0406 (diff) | |
download | bluez-0e6d3c9bbdc19ffa85b9b404d2bb31d8b81b3df0.tar.gz |
sdp-client: Add ability to clear cached session
This will be usefull for disconnecting SDP L2CAP channel before cached
session timeout fires.
Diffstat (limited to 'src/sdp-client.c')
-rw-r--r-- | src/sdp-client.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/sdp-client.c b/src/sdp-client.c index 3e78dde12..55e59c27b 100644 --- a/src/sdp-client.c +++ b/src/sdp-client.c @@ -61,7 +61,7 @@ static gboolean cached_session_expired(gpointer user_data) return FALSE; } -static sdp_session_t *get_sdp_session(const bdaddr_t *src, const bdaddr_t *dst) +static sdp_session_t *get_cached_sdp_session(const bdaddr_t *src, const bdaddr_t *dst) { GSList *l; @@ -82,6 +82,17 @@ static sdp_session_t *get_sdp_session(const bdaddr_t *src, const bdaddr_t *dst) return session; } + return NULL; +} + +static sdp_session_t *get_sdp_session(const bdaddr_t *src, const bdaddr_t *dst) +{ + sdp_session_t *session; + + session = get_cached_sdp_session(src, dst); + if (session) + return session; + return sdp_connect(src, dst, SDP_NON_BLOCKING); } @@ -366,3 +377,12 @@ int bt_cancel_discovery(const bdaddr_t *src, const bdaddr_t *dst) return 0; } + +void bt_clear_cached_session(const bdaddr_t *src, const bdaddr_t *dst) +{ + sdp_session_t *session; + + session = get_cached_sdp_session(src, dst); + if (session) + sdp_close(session); +} |