summaryrefslogtreecommitdiff
path: root/sal
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2019-01-16 16:43:26 +0100
committerStephan Bergmann <sbergman@redhat.com>2019-01-16 22:11:48 +0100
commita89f127d146c6e39113ccba9e7e114bd88145cca (patch)
tree28edd57110604ef5d4d965f5ce8bd905705d2a93 /sal
parentedb68441362a540f4d41c05bc81ec5969207ee7c (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.cxx39
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(