summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2017-01-11 11:13:57 +0000
committerLiong Sauw Ming <ming@teluu.com>2017-01-11 11:13:57 +0000
commite84480e373875d189847567be741a0091d52a5db (patch)
tree99a5dbc39cce35193c9281df554a5218ee483eda
parent9842aad980028b1de110e5bd18b99e1469ceeb74 (diff)
Re #1960: Use boolean field to indicate whether the info is empty (instead of relying on bzero and memcmp)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5522 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjsip/include/pjsua2/endpoint.hpp11
-rw-r--r--pjsip/src/pjsua2/endpoint.cpp20
2 files changed, 21 insertions, 10 deletions
diff --git a/pjsip/include/pjsua2/endpoint.hpp b/pjsip/include/pjsua2/endpoint.hpp
index da777868..d9f10959 100644
--- a/pjsip/include/pjsua2/endpoint.hpp
+++ b/pjsip/include/pjsua2/endpoint.hpp
@@ -164,6 +164,11 @@ struct SslCertInfo
public:
/**
+ * Constructor.
+ */
+ SslCertInfo();
+
+ /**
* Check if the info is set with empty values.
*
* @return True if the info is empty.
@@ -174,6 +179,9 @@ public:
* Convert from pjsip
*/
void fromPj(const pj_ssl_cert_info &info);
+
+private:
+ bool empty;
};
/**
@@ -255,6 +263,9 @@ public:
* Convert from pjsip
*/
void fromPj(const pjsip_tls_state_info &info);
+
+private:
+ bool empty;
};
/**
diff --git a/pjsip/src/pjsua2/endpoint.cpp b/pjsip/src/pjsua2/endpoint.cpp
index 163e292f..eff73fdd 100644
--- a/pjsip/src/pjsua2/endpoint.cpp
+++ b/pjsip/src/pjsua2/endpoint.cpp
@@ -45,16 +45,13 @@ Endpoint *Endpoint::instance_;
///////////////////////////////////////////////////////////////////////////////
TlsInfo::TlsInfo()
+ : empty(true)
{
- pj_bzero(this, sizeof(TlsInfo));
}
bool TlsInfo::isEmpty() const
{
- TlsInfo dummy;
-
- pj_bzero(&dummy, sizeof(dummy));
- return ((pj_memcmp(this, &dummy, sizeof(dummy)) == 0)? true: false);
+ return empty;
}
void TlsInfo::fromPj(const pjsip_tls_state_info &info)
@@ -65,6 +62,7 @@ void TlsInfo::fromPj(const pjsip_tls_state_info &info)
const char *verif_msgs[32];
unsigned verif_msg_cnt;
+ empty = false;
established = PJ2BOOL(ssock_info->established);
protocol = ssock_info->proto;
cipher = ssock_info->cipher;
@@ -89,16 +87,19 @@ void TlsInfo::fromPj(const pjsip_tls_state_info &info)
#endif
}
-bool SslCertInfo::isEmpty() const
+SslCertInfo::SslCertInfo()
+ : empty(true)
{
- SslCertInfo dummy;
+}
- pj_bzero(&dummy, sizeof(dummy));
- return ((pj_memcmp(this, &dummy, sizeof(dummy)) == 0)? true: false);
+bool SslCertInfo::isEmpty() const
+{
+ return empty;
}
void SslCertInfo::fromPj(const pj_ssl_cert_info &info)
{
+ empty = false;
version = info.version;
pj_memcpy(serialNo, info.serial_no, sizeof(info.serial_no));
subjectCn = pj2Str(info.subject.cn);
@@ -637,7 +638,6 @@ void Endpoint::on_transport_state( pjsip_transport *tp,
prm.type = tp->type_name;
prm.state = state;
prm.lastError = info ? info->status : PJ_SUCCESS;
- pj_bzero(&prm.tlsInfo, sizeof(TlsInfo));
#if defined(PJSIP_HAS_TLS_TRANSPORT) && PJSIP_HAS_TLS_TRANSPORT!=0
if (!pj_ansi_stricmp(tp->type_name, "tls") && info->ext_info &&