diff options
author | Liong Sauw Ming <ming@teluu.com> | 2017-01-11 11:13:57 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2017-01-11 11:13:57 +0000 |
commit | e84480e373875d189847567be741a0091d52a5db (patch) | |
tree | 99a5dbc39cce35193c9281df554a5218ee483eda | |
parent | 9842aad980028b1de110e5bd18b99e1469ceeb74 (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.hpp | 11 | ||||
-rw-r--r-- | pjsip/src/pjsua2/endpoint.cpp | 20 |
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 && |