diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2019-01-16 16:43:26 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2019-01-16 22:11:48 +0100 |
commit | a89f127d146c6e39113ccba9e7e114bd88145cca (patch) | |
tree | 28edd57110604ef5d4d965f5ce8bd905705d2a93 /sal | |
parent | edb68441362a540f4d41c05bc81ec5969207ee7c (diff) |
Avoid unnecessary string copying in osl_getDottedInetAddrOfSocketAddr
Change-Id: I57aea80f0489c4176990d7233a4c218e5199a993
Reviewed-on: https://gerrit.libreoffice.org/66467
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'sal')
-rw-r--r-- | sal/osl/unx/socket.cxx | 39 |
1 files changed, 10 insertions, 29 deletions
diff --git a/sal/osl/unx/socket.cxx b/sal/osl/unx/socket.cxx index 454ff463d70f..a77b3f364bf0 100644 --- a/sal/osl/unx/socket.cxx +++ b/sal/osl/unx/socket.cxx @@ -278,9 +278,6 @@ static oslSocketAddr osl_psz_resolveHostname ( static sal_Int32 osl_psz_getServicePort ( const sal_Char* pszServicename, const sal_Char* pszProtocol); -static oslSocketResult osl_psz_getDottedInetAddrOfSocketAddr ( - oslSocketAddr Addr, sal_Char *pBuffer, sal_uInt32 BufferSize); - static void osl_psz_getLastSocketErrorDescription ( oslSocket Socket, sal_Char* pBuffer, sal_uInt32 BufferSize); @@ -1110,38 +1107,22 @@ oslSocketResult SAL_CALL osl_getHostnameOfSocketAddr(oslSocketAddr Addr, rtl_uSt oslSocketResult SAL_CALL osl_getDottedInetAddrOfSocketAddr(oslSocketAddr Addr, rtl_uString **ustrDottedInetAddr) { - oslSocketResult Result; - sal_Char pszDottedInetAddr[1024]; - - pszDottedInetAddr[0] = '\0'; - - Result = osl_psz_getDottedInetAddrOfSocketAddr(Addr,pszDottedInetAddr,sizeof(pszDottedInetAddr)); - - rtl_uString_newFromAscii(ustrDottedInetAddr,pszDottedInetAddr); - - return Result; + if( !Addr ) + { + return osl_Socket_Error; + } -} + struct sockaddr_in* pSystemInetAddr = reinterpret_cast<sockaddr_in *>(&Addr->m_sockaddr); -oslSocketResult osl_psz_getDottedInetAddrOfSocketAddr(oslSocketAddr pAddr, - sal_Char *pBuffer, sal_uInt32 BufferSize) -{ - SAL_WARN_IF( !pAddr, "sal.osl", "undefined address" ); - - if( pAddr ) + if (pSystemInetAddr->sin_family != FAMILY_TO_NATIVE(osl_Socket_FamilyInet)) { - struct sockaddr_in* pSystemInetAddr = reinterpret_cast<sockaddr_in *>(&pAddr->m_sockaddr); + return osl_Socket_Error; + } - if (pSystemInetAddr->sin_family == FAMILY_TO_NATIVE(osl_Socket_FamilyInet)) - { - strncpy(pBuffer, inet_ntoa(pSystemInetAddr->sin_addr), BufferSize); - pBuffer[BufferSize - 1] = '\0'; + rtl_uString_newFromAscii(ustrDottedInetAddr,inet_ntoa(pSystemInetAddr->sin_addr)); - return osl_Socket_Ok; - } - } + return osl_Socket_Ok; - return osl_Socket_Error; } oslSocket SAL_CALL osl_createSocket( |