summaryrefslogtreecommitdiff
path: root/pjlib/src/pj/sock_symbian.cpp
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2009-03-02 15:48:45 +0000
committerNanang Izzuddin <nanang@teluu.com>2009-03-02 15:48:45 +0000
commitc205201320f80d9e25e554566da5b7f11203f871 (patch)
tree9c36ccb99099beae87670633c72e63358c95df80 /pjlib/src/pj/sock_symbian.cpp
parent33e9dc9f2613a86b0fcfea7d669d1b83934d45fd (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.cpp21
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();