Changeset View
Changeset View
Standalone View
Standalone View
head/lib/libsdp/session.c
Show First 20 Lines • Show All 174 Lines • ▼ Show 20 Lines | |||||
int32_t | int32_t | ||||
sdp_error(void *xss) | sdp_error(void *xss) | ||||
{ | { | ||||
sdp_session_p ss = (sdp_session_p) xss; | sdp_session_p ss = (sdp_session_p) xss; | ||||
return ((ss != NULL)? ss->error : EINVAL); | return ((ss != NULL)? ss->error : EINVAL); | ||||
} | } | ||||
int32_t | |||||
sdp_get_lcaddr(void *xss, bdaddr_t *l) | |||||
{ | |||||
sdp_session_p ss = (sdp_session_p) xss; | |||||
struct sockaddr_l2cap sa; | |||||
socklen_t size; | |||||
if (l == NULL || ss == NULL || ss->flags & SDP_SESSION_LOCAL) { | |||||
ss->error = EINVAL; | |||||
goto fail; | |||||
} | |||||
size = sizeof(sa); | |||||
if (getsockname(ss->s, (struct sockaddr *)&sa, &size) == 0) { | |||||
bdaddr_copy(l, &sa.l2cap_bdaddr); | |||||
ss->error = 0; | |||||
} else | |||||
ss->error = errno; | |||||
fail: | |||||
return ((ss->error == 0) ? 0 : -1); | |||||
} |