diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2009-03-02 15:48:45 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2009-03-02 15:48:45 +0000 |
commit | c205201320f80d9e25e554566da5b7f11203f871 (patch) | |
tree | 9c36ccb99099beae87670633c72e63358c95df80 /pjlib/src/pj/sock_symbian.cpp | |
parent | 33e9dc9f2613a86b0fcfea7d669d1b83934d45fd (diff) |
Ticket #732:
- Added new Symbian specific API in PJLIB, pj_symbianos_set_connection_status(), to let PJLIB knows the connection status.
- Added connection status checks before Symbian socket operations.
- Added loop limiter in Symbian busy_sleep() to avoid the possibility of infinite loop.
- Added sample of connection monitor in Symbian sample application (ua.cpp).
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2481 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib/src/pj/sock_symbian.cpp')
-rw-r--r-- | pjlib/src/pj/sock_symbian.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/pjlib/src/pj/sock_symbian.cpp b/pjlib/src/pj/sock_symbian.cpp index a1bd0a30..a0ca80e0 100644 --- a/pjlib/src/pj/sock_symbian.cpp +++ b/pjlib/src/pj/sock_symbian.cpp @@ -463,6 +463,9 @@ PJ_DEF(const pj_str_t*) pj_gethostname(void) TRequestStatus reqStatus; THostName tmpName; + // Return empty hostname if access point is marked as down by app. + PJ_SYMBIAN_CHECK_CONNECTION2(&hostname); + resv.GetHostName(tmpName, reqStatus); User::WaitForRequest(reqStatus); @@ -488,6 +491,9 @@ PJ_DEF(pj_status_t) pj_sock_socket(int af, /* Sanity checks. */ PJ_ASSERT_RETURN(p_sock!=NULL, PJ_EINVAL); + // Return failure if access point is marked as down by app. + PJ_SYMBIAN_CHECK_CONNECTION(); + /* Set proto if none is specified. */ if (proto == 0) { if (type == pj_SOCK_STREAM()) @@ -642,6 +648,9 @@ PJ_DEF(pj_status_t) pj_sock_send(pj_sock_t sock, PJ_CHECK_STACK(); PJ_ASSERT_RETURN(sock && buf && len, PJ_EINVAL); + // Return failure if access point is marked as down by app. + PJ_SYMBIAN_CHECK_CONNECTION(); + CPjSocket *pjSock = (CPjSocket*)sock; RSocket &rSock = pjSock->Socket(); @@ -678,6 +687,9 @@ PJ_DEF(pj_status_t) pj_sock_sendto(pj_sock_t sock, PJ_CHECK_STACK(); PJ_ASSERT_RETURN(sock && buf && len, PJ_EINVAL); + // Return failure if access point is marked as down by app. + PJ_SYMBIAN_CHECK_CONNECTION(); + CPjSocket *pjSock = (CPjSocket*)sock; RSocket &rSock = pjSock->Socket(); @@ -717,6 +729,9 @@ PJ_DEF(pj_status_t) pj_sock_recv(pj_sock_t sock, PJ_ASSERT_RETURN(sock && buf && len, PJ_EINVAL); PJ_ASSERT_RETURN(*len > 0, PJ_EINVAL); + // Return failure if access point is marked as down by app. + PJ_SYMBIAN_CHECK_CONNECTION(); + CPjSocket *pjSock = (CPjSocket*)sock; RSocket &rSock = pjSock->Socket(); @@ -771,6 +786,9 @@ PJ_DEF(pj_status_t) pj_sock_recvfrom(pj_sock_t sock, PJ_ASSERT_RETURN(*len > 0, PJ_EINVAL); PJ_ASSERT_RETURN(*fromlen >= (int)sizeof(pj_sockaddr_in), PJ_EINVAL); + // Return failure if access point is marked as down by app. + PJ_SYMBIAN_CHECK_CONNECTION(); + CPjSocket *pjSock = (CPjSocket*)sock; RSocket &rSock = pjSock->Socket(); @@ -868,6 +886,9 @@ PJ_DEF(pj_status_t) pj_sock_connect( pj_sock_t sock, PJ_ASSERT_RETURN(((pj_sockaddr*)addr)->addr.sa_family == PJ_AF_INET, PJ_EINVAL); + // Return failure if access point is marked as down by app. + PJ_SYMBIAN_CHECK_CONNECTION(); + CPjSocket *pjSock = (CPjSocket*)sock; RSocket &rSock = pjSock->Socket(); |