Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-7191275

Cleanup OS specific blocks in PlainDatagramSocketImpl.c to support more unix-like platforms

    XMLWordPrintable

Details

    • b56
    • generic
    • generic
    • Not verified

    Backports

      Description

        In source code "jdk\src\solaris\native\java\net\PlainDatagramSocketImpl.c",
        there are several macros in the form of:

          #ifdef AF_INET6
          #if defined(__solaris__) || defined(MACOSX)
               // code for solaris and macosx (unix) [1]
          #endif
          #ifdef __linux__
               // code for linux
          #endif
          #else
               // code for non AF_INET6
          #endif /* AF_INET6 */

        The code blocks enclosed by the macro are method invocations of
        mcast_set_if_by_addr_v6(), mcast_set_if_by_addr_v4(),
        mcast_set_loop_v4(), mcast_set_loop_v6(), setHopLimit() and setTTL().

        Other unix-like os, i.e. AIX, BSD and some others need the exact calling
        sequence coded in block [1]. This CR proposes to a adopt the following
        pattern:

          #ifdef AF_INET6
          #ifdef __linux__
               // code for linux
          #else /* __linux__ not defined */
               // code for UNIX
          #endif /* __linux__ */
          #else
               // non AF_INET6
          #endif /* AF_INET6 */

        see the full discussion on the net-dev mailing list:
          http://mail.openjdk.java.net/pipermail/net-dev/2012-August/004620.html

        Attachments

          Issue Links

            Activity

              People

                chegar Chris Hegarty
                chegar Chris Hegarty
                Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: