[Libreoffice-commits] core.git: include/osl

Stephan Bergmann (via logerrit) logerrit at kemper.freedesktop.org
Tue May 25 10:54:46 UTC 2021


 include/osl/socket.h |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

New commits:
commit 0a126b4c661d65860fd2de92f8cc49bdb65a957c
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Tue May 25 09:58:33 2021 +0200
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Tue May 25 12:54:04 2021 +0200

    Deprecate osl_demultiplexSocketEvents et al
    
    The oslSocketSet/osl_*SocketSet/osl_demultiplexSocketEvents functionality is
    based on the POSIX fd_set/FD_*/select functionality, which suffers from the
    issue that it has undefined behavior for file descriptors with numerical values
    greater than or equal to FD_SETSIZE.  (And this can be a real issue e.g. on
    Linux, where tools::extendApplicationEnvironment in
    tools/source/misc/extendapplicationenvironment.cxx bumps the soft RLIMIT_NOFILE
    to the hard limit---so that file descriptors can likely have large values---,
    but where the GNU C library sets FD_SETSIZE to only 1024 and ignores larger
    descriptors.)
    
    This functionality is unused at least by LO itself, and also likely unused by
    third-party code.  So instead of fixing the Unix-based implementation in
    sal/osl/unx/socket.cxx (by e.g. switching it from select to poll), just mark the
    functionality as deprecated (with the option of eventually removing the
    functionality completely from sal/osl/{unx,w32}/socket.cxx, leaving just stubs
    in sal/osl/all/compat.cxx).
    
    Change-Id: I2b97f8a37b45f298da9328660006f3c14361c9a8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116089
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/include/osl/socket.h b/include/osl/socket.h
index 0492dd3179ab..8e2a0066d17e 100644
--- a/include/osl/socket.h
+++ b/include/osl/socket.h
@@ -611,22 +611,30 @@ SAL_DLLPUBLIC oslSocketError SAL_CALL osl_getLastSocketError(
                             oslSocket Socket);
 
 /** Type for the representation of socket sets.
+
+    @deprecated
 */
 typedef struct oslSocketSetImpl * oslSocketSet;
 
 /** Creates a set of sockets to be used with osl_demultiplexSocketEvents().
 
     @return A oslSocketSet or 0 if creation failed.
+
+    @deprecated
 */
 SAL_DLLPUBLIC oslSocketSet SAL_CALL osl_createSocketSet(void);
 
 /** Destroys an oslSocketSet.
+
+    @deprecated
 */
 SAL_DLLPUBLIC void SAL_CALL osl_destroySocketSet(oslSocketSet Set);
 
 /** Clears the set from all previously added sockets.
 
     @param Set the set to be cleared.
+
+    @deprecated
 */
 SAL_DLLPUBLIC void SAL_CALL osl_clearSocketSet(oslSocketSet Set);
 
@@ -635,6 +643,8 @@ SAL_DLLPUBLIC void SAL_CALL osl_clearSocketSet(oslSocketSet Set);
 
     @param Set the set were the socket is added.
     @param Socket the socket to be added.
+
+    @deprecated
 */
 SAL_DLLPUBLIC void SAL_CALL osl_addToSocketSet(oslSocketSet Set, oslSocket Socket);
 
@@ -642,6 +652,8 @@ SAL_DLLPUBLIC void SAL_CALL osl_addToSocketSet(oslSocketSet Set, oslSocket Socke
 
     @param Set the set were the socket is removed from.
     @param Socket the socket to be removed.
+
+    @deprecated
 */
 SAL_DLLPUBLIC void SAL_CALL osl_removeFromSocketSet(oslSocketSet Set, oslSocket Socket);
 
@@ -651,6 +663,8 @@ SAL_DLLPUBLIC void SAL_CALL osl_removeFromSocketSet(oslSocketSet Set, oslSocket
     @param Socket check if this socket is in the set.
 
     @retval sal_True if socket is in the set.
+
+    @deprecated
 */
 SAL_DLLPUBLIC sal_Bool SAL_CALL osl_isInSocketSet(oslSocketSet Set, oslSocket Socket);
 
@@ -667,6 +681,8 @@ SAL_DLLPUBLIC sal_Bool SAL_CALL osl_isInSocketSet(oslSocketSet Set, oslSocket So
 
     @return -1 on errors, otherwise the number of sockets with pending events. In case of timeout, the
         number might be 0.
+
+    @deprecated
 */
 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_demultiplexSocketEvents(
                             oslSocketSet IncomingSet,


More information about the Libreoffice-commits mailing list