Merge pull request #2216 from jwillemsen/jwi-cxxversionchecks
[ACE_TAO.git] / ACE / protocols / ace / INet / SSL_X509Cert.inl
blobb278e35b521ebff5200c2e849c5fdd0b27d9e79b
1 // -*- C++ -*-
2 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
4 namespace ACE
6   namespace INet
7   {
9     ACE_INLINE
10     SSL_X509Cert::SSL_X509Cert ()
11       : ssl_cert_ (0)
12       {
13       }
15     ACE_INLINE
16     SSL_X509Cert::SSL_X509Cert (::X509* ssl_cert)
17       : ssl_cert_ (0)
18       {
19         *this = ssl_cert;
20       }
22     ACE_INLINE
23     SSL_X509Cert::SSL_X509Cert (const SSL_X509Cert& cert)
24       {
25         *this = cert;
26       }
28     ACE_INLINE
29     SSL_X509Cert::~SSL_X509Cert ()
30       {
31       }
33     ACE_INLINE
34     SSL_X509Cert& SSL_X509Cert::operator= (::X509* ssl_cert)
35       {
36         if (this->ssl_cert_ != 0)
37           ::X509_free (this->ssl_cert_);
39         if (ssl_cert != 0)
40           {
41 #if OPENSSL_VERSION_NUMBER >= 0x10100000L
42             ::X509_up_ref(ssl_cert);
43 #else
44             CRYPTO_add (&(ssl_cert->references),
45                         1,
46                         CRYPTO_LOCK_X509);
47 #endif
48           }
49         this->ssl_cert_ = ssl_cert;
50         return *this;
51       }
53     ACE_INLINE
54     SSL_X509Cert& SSL_X509Cert::operator= (const SSL_X509Cert& ssl_cert)
55       {
56         return (*this = &(const_cast<SSL_X509Cert&> (ssl_cert)));
57       }
59     ACE_INLINE
60     ::X509* SSL_X509Cert::operator & ()
61       {
62         return this->ssl_cert_;
63       }
65   }
68 ACE_END_VERSIONED_NAMESPACE_DECL