diff --git a/src/ca/cacChannel.cpp b/src/ca/cacChannel.cpp index a2e87943d..926b68d0f 100644 --- a/src/ca/cacChannel.cpp +++ b/src/ca/cacChannel.cpp @@ -62,14 +62,14 @@ bool cacChannel::connected () const void cacChannel::hostName ( char *pBuf, unsigned bufLength ) const { if ( bufLength ) { - localHostNameAtLoadTime.copy ( pBuf, bufLength ); + pLocalHostNameAtLoadTime->copy ( pBuf, bufLength ); } } // deprecated - please do not use const char * cacChannel::pHostName () const { - return localHostNameAtLoadTime.pointer (); + return pLocalHostNameAtLoadTime->pointer (); } diff --git a/src/ca/localHostName.cpp b/src/ca/localHostName.cpp index 8ec4208d9..ab05a130e 100644 --- a/src/ca/localHostName.cpp +++ b/src/ca/localHostName.cpp @@ -16,7 +16,7 @@ #include "localHostName.h" -localHostName localHostNameAtLoadTime; +epicsSingleton < localHostName > pLocalHostNameAtLoadTime; localHostName::localHostName () { diff --git a/src/ca/localHostName.h b/src/ca/localHostName.h index 3f535bb43..2a9de4006 100644 --- a/src/ca/localHostName.h +++ b/src/ca/localHostName.h @@ -15,6 +15,17 @@ #include +#ifdef epicsExportSharedSymbols +# define localHostNameh_restore_epicsExportSharedSymbols +# undef epicsExportSharedSymbols +#endif + +#include "epicsSingleton.h" + +#ifdef localHostNameh_restore_epicsExportSharedSymbols +# define epicsExportSharedSymbols +#endif + class localHostName { public: localHostName (); @@ -28,7 +39,7 @@ private: char cache [128]; }; -extern localHostName localHostNameAtLoadTime; +extern epicsSingleton < localHostName > pLocalHostNameAtLoadTime; inline unsigned localHostName::stringLength () const { diff --git a/src/ca/tcpiiu.cpp b/src/ca/tcpiiu.cpp index 4f746e27b..ad42bf4fe 100644 --- a/src/ca/tcpiiu.cpp +++ b/src/ca/tcpiiu.cpp @@ -827,7 +827,7 @@ void tcpiiu::hostNameSetRequest ( epicsGuard < cacMutex > & ) return; } - const char *pName = localHostNameAtLoadTime.pointer (); + const char * pName = pLocalHostNameAtLoadTime->pointer (); unsigned size = strlen ( pName ) + 1u; unsigned postSize = CA_MESSAGE_ALIGN ( size ); assert ( postSize < 0xffff );